天天看點

多角度分析,通訊時序資料的預測與異常檢測挑戰

通訊作為一個堪比水電氣甚至影響更大的一種社會基礎服務,特别是5G建設以後,系統更加複雜。對通訊品質優化,能耗優化,運維優化等挑戰更高。

各種通訊系統中,大量的軟硬體子產品,出于業務、性能、故障等監控的目的,産生并采集了大量與時間相關的各種名額資料。基于這些資料,可以實作各種能力,如預測,異常檢測等,并提供為有價值的服務:比如基于預測實作:流量預測、使用者預測輔助容量規劃,裝置節能,客戶流失管理;基于異常預測實作:故障預警、故障發現、故障關聯過濾,輔助修複等,減少業務損失和人力投入。

問題

1.1)什麼是時序(Time Series)

時序資料,是被測量對象上按特定時間(一般固定周期)持續測量到的數值序列。

數學形式可表示為:

X = {X1, X2, ...}, also is X = {Xt : t∈T}

1.2)什麼是時序預測(Time Series Prediction)

時序預測,是根據一定長度曆史時序,預測将來一步到多步的時間點的時序數值。

Y = f (X),

X = { …, Xt-m-2, Xt-m-1, …, Xt-2, Xt-1}

Y = {Xt, Xt+1, ..., Xt+n, Xt+n+1}

1.3)什麼是時序異常檢測(Time Series Anomaly Detection)

時序異常檢測,是從一條或多條時序中,獨立或者關聯,識别出顯著不同于其他大多數的少數疑似點。

y = f (X),

y ∈ {0,1}

乍看之下,時序資料的異常檢測,輸入資料形式簡單,任務也很明确,一般情況輸入的數量也很小,很容易設計各種算法來做異常檢測,而且有不同類型的大量異常檢測算法可以直接使用或者改進使用。

事實上,要實作一個(套)綜合能力強大,能很好的适合通訊領域的要求的時序資料異常檢測算法,挑戰非常大。

挑戰

1)一般性的挑戰:

a) 普适:能适用不同類型的名額,不同采樣間隔,不同實體/業務含義,不同的曲線波形,不同資料取值範圍,是否有缺失值等。

b) 魯棒:能容忍時序中的一定程度的變化,持續高品質檢測,比如資料分布的小變化如均值方差、周期頻率與幅度,噪音大小等的小變動,比如是否有lag和lag的變動等。

c) 檢測能力強:名額從檢測難度看,有相對容易檢測名額,比如正常時均值不變或者僅有極小方差的,或者名額有一個或較少幾個周期構成的周期性強且異常點明顯的名額;也更有大量名額曲線非常複雜,經過特定的算法計算後,特别是在有樣本标注監督信号的情況下,才能夠分離出異常點,甚至難以分離出異常點。後者對算法檢測能力的強大要求較高,但是,對高難度的名額的檢測和普适甚至無标注下的普适檢測算法會形成沖突。

d) 檢測精度高:異常檢測效果通常可以通過精度、召回、F1值等衡量。既要精度高,又要召回高,很難兩全的;漏報太高則異常檢測的目的無法達到,誤報太高對後續處理特别運維人工參與時幹擾太大。

2)通訊領域中更多的挑戰:

a)針對不同局點、不同網絡、不同業務類型,能夠以較少人力開局和維護;否則對數千局點,每個局點、每套系統,數百數千種類型,數萬數十萬名額,需要數人天甚至數人月,且專業人員才能調試穩定,成本極高。

b)在不同裝置上,如何檢測速度快,消耗資源少;通訊系統不同系統的運作環境差别較大;有無線網絡中網絡邊緣基站的ARM小節點,也有核心網中資料中心的X86叢集。有些名額采樣時間間隔為小時甚至更長,但有些核心系統的名額,以5分鐘,1分鐘,甚至以秒計。

c)裝置上研發的系統,被部署到營運商的環境後,算法研究人員和系統研發人員,都沒有辦法再直接接觸到系統,進行監測優化,基于較少資料實作普适的算法,零接觸的運作與自檢自我維護,提出挑戰。

d)基于時序預測和異常檢測的算法,一般會有後續的動作被執行。這些動作不僅包含生成資料報表用于容量規劃,基于異常檢測發出的運維告警;還可能被使用者在系統類執行某些其他直接影響業務的動作,諸如降級,關斷,線上擴容等。嚴重錯誤的預測和異常檢測結果可能引起不期望甚至不可接受的動作被執行。

下面逐個詳細分析挑戰:

2.1)從資料上看

a) 給定一條時序資料序列,比如[…, 1.9, 2.0, 2.1, 1.9, 2.0,2.1, 99.9],如何了解并利用其中的資訊?如果隻是直接利用原始的數值,可能有些異常,即使有明确的标注也不能被學習和檢測,甚至有明确的規則都不能被定位出來,比如:每天淩晨3點,如果名額超過30.0則是異常。顯然,時序資料中,除了原始名額值本身,要考慮充分利用time,按月曆calendar比如周等可用于周期對齊的資訊,如果使用機器學習模型,會隐式或者做特定編碼輔助顯式的方式表達前後關系、時間資訊,這樣有助于異常檢測。對于時間利用的了解,有些序列隻需要了解和利用到相對規律性周期并表示即可,有些序列則需要了解和利用到月曆時間,因為包含但不限于通訊系統,這些名額的産生的系統受人類社會的活動或強或若的影響。

b) 如何了解時序資料的生成來源?一般的,可以了解為一條時序背後,是一到多個“作用力”的共同作用,産生出不同的變化和振蕩。有些作用力,可能是極度偶發的,無論多強大多“完美”的算法,都難以去分析甚至發現規律。而有些名額中的作用力,更多的表現為統計意義上累加的結果,其可預測性更高,異常可檢測性就更高。是以,在待檢測名額較少,名額預測和異常檢測業務價值較大的場合,通過對名額産生的作用力做業務分析,分析其波動的來源和大小,多個作用力是獨立還是某種相關(正/反),是否具有直覺意義上的規律,就非常重要。

c) 在通訊領域中,為了降低基于名額異常檢測的重複報警,降低誤報率等,通常會嘗試補充除時序本身以外的資訊,其主要包括:名額的靜态配置資訊(比如:是否是某種ratio還是原始實體值;是原始值還是通過某函數甚至綜合多個名額計算出的派生值),多條名額的相關性資訊(人工配置或者自動發現的相關性);名額産生的拓撲資訊(其中拓撲可能是相對靜态的底層實體層,也可能是動态變化的上層各邏輯層)。在這些資訊中,各種資訊的利用各有挑戰:比如ratio中成功率,如果單純的看6個9不一定算高,而3個9不一定算低,還需要結合其原始值(總數和成功數,甚至其他負載名額)來綜合考慮。在拓撲資訊的利用中,不僅僅是如何表示拓撲(比如做圖嵌入等),更大的挑戰在于,如果是邏輯層非常動态的拓撲,維護和準确利用有效拓撲快照非常有挑戰性,從工程上還需要平衡拓撲利用的價值和成本。

d) 在實際工程中,海量的不同層級的采集點上,名額資料如果需要檢測,大部分需要就地檢測,否則通過網絡傳輸和存儲後再計算,對網絡、存儲、計算、時效性上都不可接受。是以,在裝置上的就地檢測,系統不可能緩存太長的資料,也就是說:檢測算法本身,無論是否學習,資料的可見範圍都很小,這對算法要挖掘到長周期規律挑戰極大。

e) 檢測系統介入業務系統的時刻,被檢測名額所代表的業務系統,可能處在其不同的生命周期(新裝期,上升期,成熟期,退出期,等),不同的生命周期展現在名額上,其資料分布特點(均值,方差,周期頻率,周期振幅,周期延遲等)可能有較大差異;當實體系統在擴容,版本更換,配置調整等改變時,其資料分布特征可能也會發生較大差異;通訊系統所服務的使用者,其人群的移動,周邊的環境變化等,也同樣會引起資料分布變化。算法是否具有對短期異常波動和長期模式變化的線上快速判定能力,有很大的挑戰。

f) 從名額特定的多樣性上看,有的名額正常狀态平直(穩定在一個常數,方差為0),有的名額雖有波動但很穩定(滑窗内均值變化極小,方差較小(相對于異常發生時的取值範圍)),有的有明顯的一個到多個周期(可能是簡單的加性關系或者乘性關系,也可能是較為複雜的其他合成關系);有的名額則很難通過可視化或者簡單的基于統計或者分解的方法過濾出潛在異常點。

g) 從原始資料通過某種計算,過濾出能用于門限判定的潛在異常點,有的名額有可分解的趨勢、周期和殘差;有的則完全掩蓋在幅度更大的“噪音”中難以分析。

2.2)從任務上看

a)從最終的異常确認上看:有的異常時基于點來判定,有的異常基于一個序列片段才能判定;有的序列出現方波可能就是異常(正常狀态不可能出現陡升陡降),有的則相反;有的異常必須要基于同比環比做相對比較才能判定,而有的異常基于目前絕對值就可以判斷。

b) 從異常告警發出(确認發出)的時機看,有的異常在第一個疑似異常點發生後就必須報告,而有的異常在必須要在等待若幹個周期後才适合上報(比如具有自愈或者可容忍的閃斷),否則誤報太多。

c)僅從一個名額檢測任務上看,任務的定義可能發生變化,包含但不限于:不同使用者對同類網絡相同名額的門限不同,同一使用者對同一網絡同一名額,不同的運維人員或者不同的時間點對異常的定義可能變化(比如門限的高低,越界的方向);對多種形式的潛在異常(方向,絕對值越限,均值變化,方差變化,波形變化,等)哪些算異常,這個判定标準可能發生變化。

2.3)從算法上看

a)有成百上千種主要的算法及其變體,(非嚴格的分類)包含但不限于:基于統計和規則的,基于度量比較的,基于成分分解的,基于機器學習的,基于機器學習-神經網絡的,基于神經分解的,甚至基于類腦的各種算法(HTM,SNN…)。每種方法有算法複雜性、假設多少的差别,最終都有其适用性限制,很難(實際上沒有)一種算法能夠在可檢測性、各檢測品質名額,在各種場合都表現的很好,而且沒有辦法通過內建就一定穩定提高檢測性能。

b)從主流方法上看,基于統計的方法,基于分解定界的方法,基于機器學習(無論是discriminative還是generative)中直接分類還是先預測後判定,等等各種方法,從邏輯上最終都隐式或者顯式的存在一個門限,這個門限的确定,即使在一個網絡中,也沒有辦法一個值就适合所有。

c)如果要每個KPI做特定優化,工程浩大;如果要盡力一套或者有限套算法覆寫盡可能多的KPI,如何确定這些算法,如何對不同KPI做選擇,存在挑戰。

d)從資料輸入,到檢測結果輸出,可以分為多步完成,以期可控的提升效果;也可以實作為端到端的算法,以友善實作無監督和有監督學習的切換。如果是非端到端的算法,當從無監督算法,試圖利用使用者的有限回報,提升檢測效果的時候,會存在挑戰,首先要确定哪個KPI在什麼時候,通過什麼環節的什麼算法計算的,這些環節如何利用監督資訊,利用監督資訊後對原來的計算流程還相容與否;如何從無監督平滑過渡到有監督,也存在技術挑戰。

e)在使用者提供标注的情況下,标注本身存在挑戰:1)标注不多,2)标注不準,3)标注不全(比如多種異常隻标注部分類型),4)标注不新(分布變化,樣本老化)。且在營運商環境,很難大規模交叉驗證,更不可能算法研究人員的人工介入互動分析。

f) 當分布變化,需要線上學習(純線上學習算法,或者簡單的重訓練),訓練的資源限制(不能因為訓練拖慢甚至中斷檢測),訓練的早停和步長等關鍵的超參數的确定,當資料可見範圍很小的時候如何保持中長期的規律,都非常困難。

g) 當分布變化,模型檢測品質劣化,如何:線上無監督的檢測模型劣化(比如基于置信度校準等技術),發起重訓練,或者降級為基于規則的方法,也是比較難以确定的問題。

h) 由于通訊領域的業務的重要性,所有結果如何“盡力”保證品質底線,甚至具有良好的可解釋性,挑戰更大。

到此為止,筆者在簡單的描述問題後,嘗試從多個角度,來分析通訊領域裡的時序資料的預測和異常檢測(重點是後者)。作為系列文章,後續将繼續分享,業界的主要算法及其改進,特别是針對通訊領域的這些挑戰,設計新的偏神經網絡的算法,來實作:強普适性、高精度、支援分布變化的線上學習、避免或降低标注的無(自)監督算法,以及算法內建。

點我,參與華為雲微話題讨論

繼續閱讀