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

華為雲開發者社群發表於2020-08-10

通訊作為一個堪比水電氣甚至影響更大的一種社會基礎服務,特別是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),

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

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) 由於通訊領域的業務的重要性,所有結果如何“盡力”保證質量底線,甚至具有良好的可解釋性,挑戰更大。

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

 

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

相關文章