張翼英,王鵬凱,柳依陽,武延年,郭曉艷
(1.天津科技大學人工智能學院,天津 300457;2.深圳市國電科技通信有限公司,深圳 518109;3.國網天津市電力公司信息通信公司,天津 300000)
光通信設備是電力通信網絡以及各類主干網絡的核心基礎設備,保障該設備的穩定運行對于通信網絡具有重要意義.近年來,隨著大數據和人工智能的發展,數據驅動的智能運維技術[1]成為相關領域的研究重點.針對光通信設備的智能運維技術研究,國內外的研究人員從多個角度對設備告警日志的壓縮以及序列模式挖掘[2-6](如基于數據增強和深度學習模型的告警預測[7-8]、基于告警信息的故障預測與診斷[9-10]等方面)開展研究.這些研究在一定程度上消除了光通信設備傳統運維方式的弊端.然而,在光通信設備的實際運行過程中,設備出現異常狀態的概率比較小,正樣本和異常樣本存在極端不平衡的情況,從而導致基于分類模型的泛化性能較差.
異常檢測作為一種單一分類技術(one-class classification,OCC),通過檢測樣本點是否符合已有正樣本的數據分布,實現樣本點的劃分.異常檢測算法包括基于概率統計的方法、基于最近鄰的方法以及基于聚類的方法[11].基于概率統計的方法對分布模型的依賴程度較高.基于最近鄰的方法和基于聚類的方法需要進行樣本間的相似性計算,這種方式受到樣本點多維數據分布差異的影響,采用不同的相似性度量方式在特定的 OCC任務中往往有不同的結果[12],從而影響算法的準確率.此外,基于深度學習和構建樣本超球體[13]的異常檢測方法,利用多層網絡結構以及核函數等非線性映射,將原始特征變換為抽象特征,并利用判別函數實現異常樣本點的識別.雖然這種方法在某些任務中取得了較好的效果,但是由于其“黑盒”特性,導致其具有決策風險,不適用于需要較高可靠度的通信及工業領域的異常檢測.
本文的研究思路是通過比較實時告警日志樣本點與設備健康狀態下的代表性樣本點之間的相似性是否超出異常判定的閾值,實現日志模式的異常檢測.這種方法的檢測效果取決于特定工況條件下的代表性樣本點的選取以及樣本間的相似性度量方法.通過對設備健康狀態下的歷史告警日志樣本集進行密度峰值聚類分析[14](clustering by fast search and find density peaks,DPC),取類別簇中心樣本點作為健康狀態下的代表性樣本點,并考慮特征的分布以及每條告警的重要性定義特征的組合權重,實現特征加權處理;最后采用加權線性修正函數(W-ReLU)計算樣本點與代表性樣本點的異常度,消除部分特征變化對計算結果的影響.以此提高日志異常檢測的準確率,并降低誤警率.
光通信設備由各種類型的單板以及電源、風扇等輔助設備組成,是一種典型的具有復雜結構的技術密集型系統設備.該設備在運行時,其健康狀態受到設備自身和外界環境因素的影響較大.運維人員主要通過分析網管系統的各種監控日志對其健康狀態進行判斷.然而,由于日志關聯性[15]以及告警門限的人為設置等因素,日志中的大多數信息對于判斷設備的實時健康狀態沒有意義,因此采用人工分析的方式難以確定設備是否健康.
對監控數據的變化情況進行分析.在光通信設備無出廠缺陷、安裝配置符合部署規范以及運行壽命期處于穩定的條件下,當日志特征發生變化時,其可能的原因包括兩種:一種是設備的運行工況特性發生變化,即網絡承載的業務量和負載等產生變化;另一種是設備在某一工況特性下,出現了性能劣化和故障等異常狀態.設備的運行狀態與監控數據的變化關系如圖1所示.

圖1 設備運行狀態與監控日志異常分析Fig.1 Abnormal analysis of equipment operation status and monitoring logs
因此,在對設備的運行狀態進行異常檢測時,首先要排除運行工況發生變化而導致的告警模式異常的情況,即確定設備的實時工況特性,然后再分析告警模式與當前工況條件下的健康狀態告警模式是否相同.當兩者差異較大時,表明設備的運行狀態發生了異常.
本文提出的告警日志模式異常檢測方法包括離線模型構建和實時異常檢測.在離線模型構建階段,對健康狀態下的樣本點進行DPC聚類分析以及統計分析,得到模型參數;在實時異常檢測階段,基于DPC聚類原則確定設備的當前工況,然后計算當前工況條件下的樣本點異常度,判斷設備是否異常,從而實現多工況條件下的告警模式異常檢測,總體架構如圖2所示.

圖2 設備實時異常檢測總體架構Fig.2 Framework of real-time abnormal detection for equipment
2.1.1 離線模型構建
(1)對健康狀態下的歷史告警日志按照固定大小的滑動時間窗口進行劃分,統計劃分后的日志子集中各類告警的數量,將日志子集表征為特征向量,得到健康狀態下的歷史樣本集合.
(2)對歷史樣本集合中的樣本點進行DPC聚類,取聚類簇中心構建基準健康狀態矩陣,并將每個樣本點歸類.
(3)基于組合權重法確定每個工況條件下的特征權重,并基于所有樣本點異常度的均值統計值確定判定閾值.
2.1.2 實時異常檢測
(1)計算待測樣本點與基準健康狀態矩陣中每個向量的距離,取距離最小值所對應的簇中心作為待測樣本點的健康基線,實現工況識別.
(2)計算待測樣本點的加權線性修正函數值,得到樣本點異常度,若其大于閾值,則判定為異常,否則判定為正常.
告警日志是一種結構化的時間序列數據,包含告警名稱、告警等級以及產生時間等字段.為了滿足異常檢測實時性的要求,需要對一段時間內的告警模型進行分析.滑動窗口機制是一種針對序列數據的處理方法,能夠根據序列的產生時間或者元素個數來對全量序列數據進行劃分[16].因此,本文設計了滑動時間窗口對歷史告警日志數據進行劃分,圖3所示為產生3個告警日志子集的實例.

圖3 滑動時間窗口對歷史告警日志的序列劃分Fig.3 Sequence division of historical alarm logs by sliding time window
滑動時間窗口的屬性包括窗口的長度和步長,窗口長度表示每次劃分的時間跨度,步長表示每次滑動的時間間隔.一般設置步長小于窗口長度,以獲取較多的日志子集,并保證每條告警都被劃分到相應的日志子集中.
在完成告警日志子集劃分之后,對其進行向量化表示.首先對已知的告警類型按照每種類型所反映的不同信息維度,將告警日志劃分為連接域、配置域、主設備域、性能域和輔助設備域 5種不同的日志類型,然后統計日志子集中不同日志類型的數量.將不同類型的告警數量作為特征值進行向量化表示,向量中每個維度的變量表示及其含義見表1.

表1 光通信設備監控日志類型劃分Tab.1 Classification of monitoring logs for optical communication equipment
對光通信設備在不同工況條件下的告警特征變化情況進行分析.假設在某一工況條件下,設備正常運行時,日志的特征向量存在一個最優值,此時設備狀態是最健康的,那么在多工況條件下,設備的健康狀態則對應一個最優值特征向量集合.本文基于健康基線[17]的概念,定義基準健康狀態矩陣,對設備在多工況條件下的健康狀態進行模式表達.
假設光通信設備在運行時存在 m種工況特性,在某一工況特性 c的條件下,設備的健康基線為表示在工況特性c下第 i個特征的最優值.基準健康狀態矩陣Dm×k可表示為

該矩陣存儲了設備在不同工況條件下的健康基線向量集合,因此基準健康狀態矩陣實際上是代表性日志特征向量的集合.本文基于 DPC算法對健康狀態下的樣本點進行聚類分析,并取各個類別的聚類中心構建基準健康狀態矩陣.
DPC算法的偽代碼(密度峰值聚類算法):
輸入:訓練數據集 D = ( X1, X2,… , Xn);截斷距離rc.
輸出:每個樣本點Xi的局部密度ρi和聚類中心距離δi;每個點的類別.
1.for i:1→ n-1.
2.for j:i+1→n.
3.計算Xi與Xj的距離.
4.for i:1→ n.
5.計算Xi的局部密度ρi.
6.計算Xj的聚類中心距離δi.
7.以ρi為橫坐標、δi為縱坐標畫出決策圖,選擇具有較大ρi和δi的數據點作為聚類簇中心.
8.將其余點歸類為距離最近且局部密度比自身大的數據點所在的簇.
DPC聚類首先需要計算樣本點的局部密度,對于連續型的特征變量,可采用高斯核函數計算樣本點的局部密度iρ,公式為

式中:IS表示特征集,rij表示樣本點 i和樣本點 j的歐氏距離,rc為截斷距離.基于 DPC聚類得到的簇中心具有局部密度最大和類間距離最大的特點,因此DPC聚類可以從正樣本中學習健康狀態的代表性日志特征向量.
設備的異常度可以通過計算樣本點與健康基線之間的相似性得到.然而,傳統的相似性度量方法大多基于向量之間的各種距離度量,這種方法沒有考慮不同特征的權重因子,也沒有考慮特征的不同變化對異常度量化值的影響,因此并不能準確地反映設備當前狀態與健康狀態相比的異常程度.針對上述問題,本文提出一種 W-ReLU非線性映射模型,對設備的異常度進行量化評估.
2.4.1 組合權重計算
在日志的多維特征中,不同特征的變化對設備健康狀態具有不同的影響,因此需要對原始樣本點進行加權處理,即對設備健康狀態影響較大的日志特征賦予更大的權重.本文所設計的組合權重wi的計算公式為

式中:σi為特征xi的標準差;為特征xi的平均值;k為特征維度;Nc為工況特性c下正樣本點的個數;為待測樣本點的特征值;l(a)為告警a反映設備狀態的重要性,設定 l(a)= { 1 , 2,3,4}分別對應 4種具有不同等級的告警重要性;和分別為第i個維度的待測樣本點日志子集和設備當前工況c條件下的全體日志集合.
特征權重由兩部分組成,包括特征的分布權重和重要性權重.分布權重由特征值的反變異系數決定,這里定義反變異系數為變異系數[18]的倒數.在歷史數據中,若某一維度的特征值分布較為集中,則在異常檢測中具有較高的權重.特征的重要性權重由待測樣本點的告警重要性的均值決定.在實際應用中,通過比例參數θ調整兩者的比例.
2.4.2 W-ReLU非線性映射模型
衡量兩個樣本點之間的差異可以使用各種相似性度量函數,然而大多數相似性度量方法考慮了所有特征值的絕對值,樣本間的相似性并不具備可解釋性.對于告警日志特征而言,特征值越小越好,因此待測樣本點的某些特征值小于健康基線值時,表明該樣本點在這些特征上沒有出現異常,樣本點的異常度映射需要對這些特征值的差異進行屏蔽.
線性修正函數 ReLU是一種非線性映射函數[19],該函數能夠較好地模擬生物神經元的特性,并且計算簡單,因此被廣泛用于神經網絡的激活函數.本文利用該函數對樣本點的異常度進行映射,對樣本點中特征值小于健康基線值的特征進行屏蔽,并且通過加權處理提高重要特征對異常度的影響.
設xi、分別表示待測樣本和健康基線的第i個特征值,wi表示第i個特征的組合權重,則待測樣本點n在工況特性c條件下的異常度的計算公式為

2.4.3 異常判定閾值
假設在某一工況條件下,所有健康狀態下的樣本點的異常度服從某一概率分布,當觀測數據足夠多時,用樣本點異常度的均值代替期望.當待測樣本點的異常度超過設備處于健康狀態下樣本點的異常度期望值時,表明待測樣本點可能為異常樣本點.因此,異常判定閾值可以通過計算已有健康狀態下的樣本點異常度均值并加入經驗參數進行確定,公式為

式中:為異常判定的閾值,Nc為在工況特性c下的正常樣本點個數,為在工況c條件下第i個健康狀態樣本點的異常度,γ為經驗參數.當實時觀測日志樣本點的異常度超過閾值時,判定設備狀態異常,此時通過人工對異常狀態進行驗證,并根據驗證結果調整當前工況下的經驗參數,并對閾值進行更新.
對本文方法的時間復雜度進行分析.設歷史告警個數為 n,分析離線模型構建階段,統計歷史告警中每個類型的告警數量的時間復雜度 O(n).對樣本點進行 DPC聚類的時間復雜度為 O(n2),計算特征權重的時間復雜度 O(n),判定閾值的確定需要計算每個樣本點與類別中心的異常度,因此該階段的時間復雜度為O(n2).
分析實時異常檢測階段.在日志子集劃分階段,設滑動時間窗口內的告警日志數量為ns.統計當前時間窗口內每個類型告警數量的時間復雜度 O(ns).確定設備當前運行工況,需要計算樣本點與多個簇中心的距離并排序,這部分的時間復雜度與工況類別個數有關,在給定基準健康狀態矩陣的情況下,可以認為其時間復雜度為 O(1).計算待測樣本點的異常度,并判斷當前樣本點的異常度是否超過判定閾值.該階段的時間復雜度 O(ns)與滑動時間窗口參數設置有關.
為了驗證本文方法的有效性,利用北京某電力通信公司網管系統采集的SDH設備近1個月的設備監控告警日志數據,構建離線模型,用已有的異常狀態告警記錄作為算法的測試集,驗證本文方法對同一設備在不同運行狀態下異常檢測的有效性.表2所示為部分原始告警日志數據的示例.

表2 設備監控告警日志數據示例Tab.2 Example of equipment monitoring alarm log data
實驗驗證了本文所設計的組合權重方法以及 WReLU模型計算設備異常度的有效性,并對比了本文算法和其他異常檢測算法的準確率和誤警率.準確率是算法識別正確的異常樣本點占全部異常樣本點的比例,誤警率是將正常樣本點誤識別為異常樣本點的數量占全部正常樣本點的比例.
對健康狀態下的告警日志按照固定時間長度的窗口進行劃分.這里為了模擬多工況環境,每個樣本點都從設備閑時和忙時兩種工況條件下采集,設定時間窗口的大小為 2h,經過數據預處理,共得到 144個閑時工況樣本點和96個忙時工況樣本點.
按照式(5)對每個樣本點的各個維度進行歸一化處理,以消除不同量綱對聚類結果的影響.

對歸一化后的樣本點進行 DPC聚類分析,結果如圖4所示.本實驗采用高斯核函數定義某點的局部密度,并設定截斷距離,使每個樣本點的平均鄰居個數為全體數據點總數的2%.

圖4 基于DPC算法的日志特征聚類分析Fig.4 Cluster analysis of log features based on DPC algorithm
DPC聚類能夠準確地將所有樣本點劃分為兩類,右上角的兩個點具有較高的局部密度和較大的聚類中心距離,因此代表兩種工況條件下告警日志特征的健康基線.設定比例參數θ=0.4,分別計算兩種工況條件下的組合權重(表3).

表3 兩種工況條件下的健康基線及組合權重Tab.3 Health baseline and feature weights under two working conditions
采集該設備在閑時和忙時兩種工況條件下各 12個樣本點,每種工況條件下都包含兩種異常情況,分別采用均值權重法、變異系數權重法、組合權重法進行異常度的計算,實驗結果如圖5所示.
由圖5可知:在兩種工況條件下,本文所提出的組合權重法能夠較為明顯地檢測出異常樣本點,即閑時工況條件下的樣本點5、樣本點9和忙時工況條件下的樣本點 4、樣本點 11,表現出較為明顯的異常度增大.然而,采用變異系數權重法和均值權重法出現了未檢出和誤識別的情況,這是由于變異系數權重法對正樣本中離散程度較大的特征賦予更大的權重,導致健康狀態下某些樣本點的異常度偏大.在設定各個特征權重相同的情況下,設備異常度不能很好地反映重要日志特征的變化.因此,本文采用的組合權重法能夠削弱不重要特征的變化,提高重要特征對異常度的影響.

圖5 兩種工況條件下不同特征權重對比Fig.5 Comparison of different feature weights under two working conditions
健康狀態下的樣本點應該具有較低的異常度和較為穩定的數據分布.為了衡量不同相似性度量方法的穩定性,對兩種工況條件下所有健康狀態的樣本點分別計算每個樣本點與對應工況條件下健康基線的不同距離度量,實驗結果如圖6所示.

圖6 兩種工況條件下的不同距離度量方法對比Fig.6 Comparison of different distance measurement methods under two working conditions
在兩種工況條件下,對于健康狀態下的樣本點,馬氏距離具有較大的波動性.這是由于馬氏距離雖然考慮了特征間的相互關系,但對于部分沒有出現異常的特征,馬氏距離受到這些特征的變化影響較大,因此這種相似性度量方式不穩定.雖然余弦相似度具有更高的穩定性,但在忙時工況下,這種相似性度量方式出現了失效的情況,表現出對日志特征的變化不敏感.這是由于余弦相似度更加關注特征維度之間的差異,而并非數值的差異.歐氏距離和本文方法雖然都更加關注特征值的差異,但歐氏距離的分布顯然具有更大的方差.這是由于歐氏距離同樣也受到沒有出現異常的特征變化的影響,若某一樣本點的特征值都低于健康基線,很明顯,該樣本點是正常的,而該樣本點與健康基線的歐氏距離可能較大,顯然不符合實際的設備健康狀態.采用本文的相似性度量方式得到的異常度最小,符合正常樣本點的類別特性,并且具有較高的穩定性,能夠較好地衡量樣本點所對應設備的當前狀態.
通過對比本文方法和支持向量數據描述(SVDD)[20]、局部離群因子[21]兩種異常檢測算法的準確率和誤警率,評估本文所提方法的異常檢測性能(表4).

表4 不同算法的異常檢測性能對比Tab.4 Comparison of abnormaldetection performance of different algorithms
兩種對比算法的參數通過不斷調優,以保證對異常數據點具有較高的準確率.本文方法和支持向量數據描述算法用健康狀態下的樣本作為模型訓練集,用包含故障注入實驗檢測數據在內的樣本點作為測試集;而局部離群因子算法直接對全體樣本進行異常檢測.
與其他兩種異常檢測算法相比,本文對告警日志的異常檢測具有最高的準確率和較低的誤警率.支持向量數據描述算法將不同工況條件下的所有樣本首先進行核函數映射,在高維空間中劃分出一個超球體來描述正常樣本空間,這種方法一方面沒有考慮告警重要性的影響,另一方面由于設備運行工況的動態變化,導致模型所劃分出的超球體空間偏大.局部離群因子算法對每個樣本點計算離群因子,這種方法考慮數據的局部密度信息,在實際的設備運行過程中,其告警日志特征會隨著設備實時運行工況而產生變化,當樣本點的某些維度特征值變化較大時,也會導致異常檢測的誤警率上升.
本文針對光通信設備的智能運維問題,提出了基于 W-ReLU的設備多工況狀態異常檢測方法.與已有的異常檢測算法相比,該方法對基于健康狀態下的監控告警日志數據進行離線模型構建.在實時異常檢測中,僅需計算生產環境下待測樣本點的異常度是否超過閾值進行異常判定,避免了對全量樣本點進行距離計算導致效率低下的問題,實現了在類別不平衡條件下的高效率異常檢測.并且隨著告警數量的增加,該方法具有較好的迭代更新能力.
對基于監控日志的設備異常檢測問題,本文根據滑動時間窗口內各類型的告警數量進行向量化表示.時間窗口的大小以及不同的日志子集劃分方法對異常檢測模型的影響,以及告警特征與設備異常度的非線性映射關系,仍需要進一步研究.