趙澤玲, 馮海林, 齊小剛, 劉美麗
(西安電子科技大學 數學與統計學院, 西安 710126)
隨著通信技術(如5G)的快速發展以及網絡業務的不斷拓寬, 通信網絡中的告警數據量呈指數級增長, 一旦網絡發生中斷或異常, 將會嚴重影響人們的生產、 生活, 為維持具有高水平可用性和可靠性的網絡系統, 必須要求高水平的網絡管理技術. 為應對網絡告警數據量的指數級增長、 網絡規模的持續擴大以及不斷增加的網絡操作復雜性, 必須提高通信網絡的自動化和智能化, 將機器學習(machine learning, ML)算法部署到通信網絡是目前的主要趨勢[1].
相比于機器學習的引入, 在傳統的通信網絡管理領域, 告警相關性分析主要分為基于案例的方法、 基于因果模型的方法、 基于相似性的方法和基于數據挖掘的方法. 數據挖掘中的關聯規則挖掘算法和序列模式挖掘算法在分析網絡告警數據的相關性以及追溯網絡故障根源方面的應用最普遍. Li等[2]將關聯規則挖掘用于告警關聯分析系統中, 以尋找告警事件之間的相關性; Wang等[3]利用序列模式挖掘算法建立了拍打規則和父子規則, 以揭示電信網絡中大量告警的操作模式; Solmaz等[4]應用關聯規則挖掘技術確定告警相關性, 并基于拓撲圖形的方法識別告警的根本原因.
由于告警數據多為無標記數據, 告警特征多用于定量分析, 因此傳統方法多通過神經網絡、 聚類等為關聯規則算法提供權值[5-7], 在多維特征空間中快速定位導致網絡異常的主要特征值組合研究較少[8]. 當數據規模較小時, 管理人員可通過手動發現有影響的特征值組合. 但當數據量巨大時, 采用人工的方式總結其中的規律十分困難, 因此, 需要借助機器學習中的相關算法挖掘數據的特征, 定位導致網絡異常的具體特征值. 但引入機器學習需要有標簽的告警數據, 因此本文通過對數據的分析處理, 利用關聯規則生成可讀的規則并構建出決策樹, 然后使用決策樹對新數據進行分析.
近年來, 機器學習已被廣泛應用于通信網絡[9-12]. 機器學習是一個多領域交叉的龐大體系, 包括監督學習、 半監督學習和無監督學習. 監督學習中輸入向量和目標輸出向量組成的樣本被輸入到機器學習模型中, 以推斷出一個映射輸入和輸出的函數, 算法包含分類[13-14]、 人工神經網絡[15]、 深度學習等[16]. 半監督學習算法考慮利用少量的標記樣本和大量的未標記樣本進行訓練和分類, 包括生成模型算法等. 無監督學習使用未標記的數據集進行訓練, 算法有聚類[17]、 關聯規則等.
決策樹是機器學習中常見的方法, 被用于解決分類問題, 目標是從大量的樣本數據特征中找到分類決策路徑. 在對通信網絡進行告警數據分析時, 決策樹具有易于通過可視化操作對模型進行解釋、 易于通過靜態測試對模型進行評測以及操作簡等優點, 因此, 決策樹的應用可對網絡告警特征基于樹結構進行決策, 進一步分析影響網絡異常的告警特征因素, 從而實現網絡故障的溯源分析. 決策樹算法在機器學習中廣泛使用[18]. Xu等[19]提出了一種新的特征轉換方法, 即決策樹算法的動態特征捆綁; 文帥川等[20]通過構建二叉決策樹模型開發推理機機制實現故障定位; 針對缺失網絡告警信息, 許鴻飛等[21]應用決策樹算法對告警信息中缺失的屬性值進行填充; Dorgo等[22]利用決策樹分類器提出了一種設計告警信息進行故障檢測的方法, 而不是過濾或修改現有的告警信息; Mijumbi等[23]提出了一種用于自動操作和恢復的分析算法, 決策樹用于創建告警之間的模式作為關聯規則. 決策樹算法具有構造速度快、 分類精度高以及自適應性強等特點, 可用于網絡故障管理. 本文利用決策樹算法, 對告警數據中的特征信息進行分析, 找出對根源信息影響較大的特征, 從而輔助網絡管理人員有針對性地了解特征信息, 快速解決網絡異常問題.
為客戶提供高質量、 高水平的網絡通信服務對網絡運營商十分重要. 當通信網絡出現故障或異常時, 極大可能會映射到網絡業務中, 使各類業務受到沖擊, 從而導致通信網絡事故, 影響客戶的使用. 網絡故障是網絡運行過程中發生的異?,F象, 導致設備無法支持正常的網絡運行. 設備類型包括PTN(packet transport network),BSC(base station controller),ONU(optical network unit)等, 其中PTN設備是用在接入層和匯聚層的光傳輸設備, 在固網和移動回傳中用于傳輸語音業務和數據業務; 通信BSC是指基站控制器, 為基站收發臺和移動交換中心之間交換信息提供接口.
通常, 網絡故障首先以告警的形式從設備發出傳送到網絡管理系統(network management system, NMS), 然后NMS對監控到的數據進行管理和分析, 同時, NMS會在第一時間處理告警信息并安排專業人員進行設備檢修. 移動運營商收集、 處理NMS報告的大量原始告警數據, 這些數據不僅包括由網絡設備生成的告警信息, 還包括NMS統計的其他信息, 收集到的數據信息分為告警數據、 派單數據、 拓撲數據. 其中告警數據表示網絡狀態的癥狀信息; 派單數據表示故障設備的檢修信息; 拓撲數據表示網絡節點間的鏈路關系. 數據收集過程如圖1所示.

圖1 數據收集過程Fig.1 Data collection process
在通信網絡中, NMS監控到的由網絡設備產生的告警數據規模龐大且復雜多變, 因此通過分析告警數據獲得各類告警信息之間的從屬關系, 并從中挖掘能反映故障的根源告警對網絡管理人員十分必要, 而對海量告警數據進行數據預處理, 壓縮告警, 減輕網絡管理人員的工作量是首要任務. 數據預處理過程如圖2所示.
1) 數據合并: 單個告警集多數以5 h為時間單位, 不足以支撐實驗分析, 因此需將一系列的告警集合并生成大數據集, 如圖2(A)所示.
2) 地域劃分: 告警的相關性分析一般只考慮了時間上的相關性, 對合并后的告警按地域劃分, 對每個城域的告警進行單獨分析, 如圖2(B)所示.
3) 告警時長處理: 根據派單數據依次計算派單數據中相鄰告警發生、 清除時間的時間差, 根據派單數據時間確定告警數據相鄰告警的時間差, 如圖2(C)所示.
4) 特征提取, 缺失值、 冗余值處理: 針對告警信息特征繁多、 重復性和缺失性的特點, 對其進行特征提取、 刪除缺失值和冗余值操作, 如圖2(D)所示.
算法1TimeDiff算法.
輸入:TTs,TTe,TAs,TAe: 派單數據和告警數據的告警開始、 結束時間;
輸出:TdTA;
步驟1)TdTA=[ ]
步驟2) forTTsti∈TTsdo
步驟3) Time difference:TTdsi=TTsti+1-TTsti,i=0,1,2,…
步驟4) forTTeti∈TTedo
步驟5) Time difference:TTdei=TTeti+1-TTeti,i=0,1,2,…
步驟6)ws=[TTdsmin,TTdsmax],we=[TTdemin,TTdemax]
步驟7) forTAstj∈TAsdo
步驟8)TAdsj=TTstj+1-TTstj,j=0,1,2,…
步驟9) forTAetj∈TAedo
步驟10)TAdej=TTetj+1-TTetj,j=0,1,2,…
步驟11) whileTAdsj∈wsandTAdej∈wethen
步驟12) addTAjtoTdTA
步驟13) continue
步驟14) ReturnTdTA.

圖2 數據預處理過程Fig.2 Data pre-processing process
NMS的歷史告警信息具有缺失性、 冗余性、 無標記和時空分布性等特征, 因此要構建決策樹需先得到標記數據, 可根據告警相關性分析方法獲得根源告警信息進而為數據添加標簽, 分析步驟如圖3所示.

圖3 告警數據關聯分析步驟Fig.3 Alarm data correlation analysis steps
告警數據中的關聯規則算法主要分為經典關聯規則挖掘算法和序列模式挖掘算法, 但預處理后的數據不能直接用于關聯分析, 需將清洗后的數據根據需求轉換為事務數據集的形式, 典型的數據轉換方法有固定時間窗口法、 動態滑動窗口法和DBSCAN(density-based spatial clustering of applications with noise)聚類算法等. 采用前兩種方法生成告警事務集, 需人為設定窗口的寬度和滑動步長, 雖然簡便易用, 但設定的窗口過小或過大, 都可能導致一次性引發的告警未被劃歸到一個告警事務集中或有過多不相關告警被歸并到同一告警事務集中, 從而降低窗口內告警事件關聯的整體相關性, 影響關聯規則的準確度. DBSCAN聚類生成事務集將相似度大的告警劃分為同一類別時, 會自適應地調整時間窗規模, 使各告警更具關聯性, 也可加入其他告警信息進行事務集劃分, 進一步增強各告警的相關聯性.
關聯規則是用來反映一條告警與其他告警的相互依存性和關聯性, 用于從大量告警數據中挖掘出告警項之間的有效相關關系. 關聯規則的目標是發現頻繁項集, 發現滿足最小支持度的所有項集, 從而進一步發現強關聯規則, 從頻繁項集中篩選出滿足高置信度的規則.
定義1支持度定義為關聯的告警數據在告警事務集中出現的次數占告警事務集D的比例, 公式為

(1)
其中X,Y表示兩條不同的告警.
定義2置信度定義為一條告警數據出現后, 另一條告警出現的概率, 或者稱為條件概率.規則的置信度為

(2)
告警關聯分析在告警事務集合D中發現既滿足最小支持度又滿足最小置信度的告警關聯規則, 即發現強關聯告警關聯事件.強關聯告警事件中各告警通過置信度互相影響, 根據置信度確定的最主要告警, 稱為根源告警, 其他統一稱為非根源告警.得到根源告警后, 結合派單數據, 即管理員對網絡異常進行的檢修信息, 以及歷史經驗對根源告警進行匹配, 從而確定最終根源告警集.根源告警集包含的根源告警和非根源告警為決策樹添加標記.
要構建決策樹, 需先對提取后的由NMS采集到的數據特征進一步歸一化處理, 使告警數據格式統一, 方便生成決策樹. 在分析多維特征對告警的影響時, 在告警數據集S={F,Y}中, 其中特征集F={告警級別,告警對象類型,對設備影響,對業務影響,告警邏輯分類},Y={根源信息}為分類標準.通信網絡中,F的特征對告警數據的根源故障挖掘均有一定影響.通常告警影響越嚴重, 越有可能是根源告警或接近根源故障.告警級別越高越嚴重, 對設備和業務的影響程度越大, 對根源告警越有影響, 告警邏輯分類越接近物理邏輯, 越有可能是根源告警或者越接近根源故障.因此, 需找出影響根源告警或根源故障的最主要特征及特征值.各告警特征內部的特征值是離散且相互獨立的, 因此可用One-Hot編碼將特征數字化. 對告警原因進行分析時, 主要是對告警標題這一特征進行分析, 因為告警標題內含有告警原因. 一維特征在執行決策樹算法時無法進行決策分支, 因此需對告警標題進行升維, 若是該告警表示為1, 否則表示為0, 如表1所示, 此時告警數據集中F為告警原因, 即F={B3_EXC,ETH_LOS,CE,…}.

表1 告警原因升維
告警數據關聯分析得到標記數據且對告警特征One-Hot編碼、 升維后開始構建決策樹. 構建決策樹的關鍵是如何在5類特征中選擇最優劃分特征. 在劃分過程中, 需盡可能實現節點的高“純度”. 信息熵(information entropy)和基尼指數(Gini index)是度量告警集純度的常用指標. 假設告警數據集S中第k類樣本所占比例為pk(k=1,2,…,|m|), CART(classification and regression tree)算法使用基尼指數選擇劃分特征,S的基尼值定義為

(3)
與信息熵相同, Gini(S)值越小, 則S的純度越高.對離散特征f有N個可能的取值{f1,f2,…,fN}, 用f對S劃分時會產生N個分支節點,Sn用于描述包含在S中全部在特征f上取值為fn的樣本的第n個分支節點, 以此對S進行劃分得到的基尼指數表示為

(4)
與信息增益相反, 使用基尼指數作為指標時, 應該選擇基尼指數最小的特征作為最優劃分特征, 即

(5)
信息熵復雜度為O(log2n), 基尼指數復雜度為O(n2), 由于對數函數計算復雜度較高, 因此, 在告警數據量十分龐大的情況下不利于實現, 基尼指數的提出恰好解決了該問題.基本決策樹的構造方法忽略了噪聲的問題, 決策樹在決策分支過程中可能會學習過好, 即產生過擬合現象, 降低決策樹的分類性能.引入剪枝技術可克服告警噪聲數據對決策分類的不良影響, 同時保證準確率.
算法2DecisionTree_pruning.
輸入: 告警特征多維化的數據集(S,f);
輸出: Decision tree [ ];
BuildTrees:
步驟1) for attributesfinSdo
步驟2) calculate the Gini (attributes) by formula (4)
步驟3) if Gini (f) satisfy formula (5) then
步驟4) partition (S,f)
步驟5) end for
步驟6) until all partition processed
PrunDepth:
步驟7) create function depth_score (train_score, test_score)
步驟8) best_score=0, para=[apara,bpara]
步驟9) foriin para do
步驟10) score calculate depth_score
步驟11) if score 步驟12) best_score=score 步驟13) end for 步驟14) best_para=depth_score[best_score]. 決策樹在訓練告警數據集樣本時, 會出現幾乎所有特征都產生分支的情形, 因而進行剪枝十分必要, 如步驟7)先構建depth_score函數計算得分數據, 當決策樹達到best_score時, 將不再進行分裂, 得到最佳參數best_para, 從而在一定程度上防止過擬合. 用決策樹性能指標分類正確率(得分)作為決策樹分類器的評價指標, 計算的準確率為 (6) 將收集到的原始告警數據經過預處理操作后, 每個區域的告警數量都會得到壓縮, 從而節約了后續研究的時間, 提高了準確率, 圖4為各區域預處理后的告警數量、 基于地域和時間關聯分析得到根源信息的告警量與原始告警量的對比結果及相對原始告警的壓縮率曲線. 由圖4可見, 10個地區告警數據預處理后的壓縮率約為70%, 基于地域和時間關聯分析后壓縮率約為90%. a. 小店區; b. 杏花嶺區; c. 萬柏林區; d. 迎澤區; e. 太原市區; f. 尖草坪區; g. 普源區; h. 清徐縣; i. 古交市; j. 陽曲縣.圖4 各地區相對原始告警的告警量及壓縮率Fig.4 Alarm volume and compression rate of each region relative to original alarms 對壓縮后的告警數據進行相關性分析后, 將挖掘出的強關聯規則與歷史案例和派單數據進行匹配判斷根源信息, 得到部分強關聯事件及根源信息列于表2. 表2 部分強關聯事件以及根源信息 圖5 剪枝后決策樹Fig.5 Post-pruning decision tree 對根源告警信息以及特征進行決策樹算法分析, 用函數depth_score限定決策樹分裂, 在一定程度上防止過擬合提高算法得分. 圖5為max_depth=5時達到best_score輸出的決策樹. 其中根源告警包含的告警原因主要為B3_EXC,ETH_LOS,ELAN_AUTO_LOOP,CE和NE五種. ETH_LOS為網口連接丟失告警, 表示以太網端口接收不到以太網信號, 在告警邏輯分類中為通信告警, B3_EXC和ELAN_AUTO_LOOP的告警邏輯分類也為通信告警. 因此, 從告警邏輯分類看, 實驗結果表明根源告警多為通信告警, 由根源告警衍生的告警所屬邏輯分類則以鏈路告警、 協議告警和硬件告警居多, 如圖6所示. 分析多維特征對告警的影響時, 獲取告警邏輯分類等5個特征的分類重要性, 通過對10個地區的告警數據建立決策樹模型得到結果, 圖7為小店區、 杏花嶺區與太原市區3個地區的5個特征的特征重要性, 其中告警邏輯分類、 告警對象類型對根源信息影響較大且穩定. 表3列出了逐次加入各特征時決策樹分類的正確率. 由表3可見, 在告警對象類型加入告警邏輯分類特征后, 準確率變化最大, 約為5%. 圖6 告警邏輯分類中的衍生關系Fig.6 Derivative relations in alarm logic classification 圖7 3個地區5個特征的影響比較Fig.7 Comparison of impact of five features in three regions 表3 加入特征的正確率 綜上所述, 本文針對通信網絡中網絡異常原因分析的問題, 提出了一種基于決策樹進行告警數據特征分析的方法. 首先將告警數據按地域進行劃分, 在對時間相關性進行分析的同時加強了對空間地域相關性的分析, 再對依據地域、 空間相關性分析后得到的根源信息建立決策樹, 以對多維特征進行分析, 找出影響告警產生的特征. 本文得到的最主要特征為告警邏輯分類和告警對象類型, 以通信告警居多, 可根據特征值提前采取措施, 以減少網絡異常的出現并降低由網絡異常帶來的損失.

3 結果與分析





