馬 麗,樊 軍
(新疆大學(xué)機(jī)械工程學(xué)院,新疆 烏魯木齊 830047)
移動(dòng)通信網(wǎng)絡(luò)技術(shù)現(xiàn)已成為國民經(jīng)濟(jì)飛速發(fā)展的一大助力。移動(dòng)通信網(wǎng)絡(luò)規(guī)模不斷增大帶來了難以及時(shí)處理的海量告警信息,從而對移動(dòng)通信網(wǎng)絡(luò)的穩(wěn)定性和可靠性產(chǎn)生了直接影響。提前預(yù)測移動(dòng)通信網(wǎng)絡(luò)告警可以避免由此導(dǎo)致的重大經(jīng)濟(jì)損失或安全隱患。目前移動(dòng)通信網(wǎng)絡(luò)告警的研究主要有兩個(gè)方面:(1)海量告警信息引發(fā)故障,對于告警信息進(jìn)行回溯,定位故障源頭。文獻(xiàn)[1]利用BP神經(jīng)網(wǎng)絡(luò)對告警進(jìn)行模式識別分類,定位主要故障點(diǎn);文獻(xiàn)[2]通過挖掘告警數(shù)據(jù)中的時(shí)序關(guān)系來進(jìn)行故障診斷和定位;文獻(xiàn)[3]通過建立父子規(guī)則來挖掘告警關(guān)聯(lián)來進(jìn)行故障定位;文獻(xiàn)[4]將支持向量機(jī)與滑動(dòng)窗口相結(jié)合提取告警事務(wù)對故障進(jìn)行定位;文獻(xiàn)[5]建立故障集合,利用貝葉斯網(wǎng)絡(luò)對通信網(wǎng)絡(luò)故障進(jìn)行定位。(2)根據(jù)歷史告警數(shù)據(jù)預(yù)測未來故障的發(fā)生,如文獻(xiàn)[6]用不同時(shí)針參數(shù)對網(wǎng)絡(luò)系統(tǒng)設(shè)備產(chǎn)生的日志來預(yù)測未來故障;文獻(xiàn)[7]利用已有的故障點(diǎn)通過負(fù)載再分配來預(yù)測故障傳播和影響的區(qū)域;文獻(xiàn)[8]通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)來提取告警日志特征,用長短時(shí)記憶(Long and Short Term Memory,LSTM)預(yù)測未來網(wǎng)絡(luò)故障發(fā)生的概率;文獻(xiàn)[9]利用貝葉斯學(xué)習(xí)算法來確定故障預(yù)測模式來預(yù)測故障即將發(fā)生的時(shí)間段;文獻(xiàn)[10]用兩層時(shí)間窗中報(bào)警事件的統(tǒng)計(jì)量來表示網(wǎng)絡(luò)狀態(tài),并將統(tǒng)計(jì)量作為故障預(yù)測的決策特征用以預(yù)測網(wǎng)絡(luò)故障。
由此可見,移動(dòng)通信網(wǎng)絡(luò)告警主要包括故障點(diǎn)定位和故障預(yù)測兩部分研究,這里根據(jù)歷史告警數(shù)據(jù)和實(shí)時(shí)告警數(shù)據(jù),對未來可能出現(xiàn)的告警進(jìn)行研究。首先,對原始告警數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,完成告警事務(wù)數(shù)據(jù)庫的轉(zhuǎn)換;其次,用層次分析法比較告警級別與告警分析樹最大分支數(shù)的相對重要度,對每個(gè)告警序列進(jìn)行賦權(quán),將告警信息存儲(chǔ)在FP-tree中并對其進(jìn)行挖掘,生成符合要求的加權(quán)告警關(guān)聯(lián)規(guī)則;最后,通過告警關(guān)聯(lián)規(guī)則模式匹配的方式進(jìn)行告警預(yù)測,并通過實(shí)驗(yàn)驗(yàn)證方法的有效性。
廠商定義設(shè)備名稱和設(shè)備類型,運(yùn)營商定義告警級別、告警類型、告警時(shí)間,選取設(shè)備名稱、設(shè)備地址、告警級別、告警類型、告警時(shí)間五個(gè)屬性來表述一條告警事件。刪除告警事件中任一屬性為空數(shù)據(jù),然后將屬性都相同的告警合并成一條記錄,并將告警事件按照時(shí)間序列排序。在同一滑動(dòng)時(shí)間窗口內(nèi),除時(shí)間屬性外其他屬性相同的告警被認(rèn)為是同一告警,在該窗口內(nèi)只記錄一次。同時(shí)完成告警數(shù)據(jù)庫到適用于數(shù)據(jù)挖掘的告警事務(wù)數(shù)據(jù)庫的轉(zhuǎn)化。
層次分析法(AHP)[14]通過專家給出指標(biāo)兩兩之間的相對重要性比較,計(jì)算出他們各自的權(quán)重,根據(jù)分析告警級別和告警分析樹最大分支數(shù)之間的相對重要度來確定告警權(quán)值。
(1)建立告警分析樹獲取所有告警最大分支數(shù),從高到底分成5個(gè)區(qū)間,將告警級別與分析樹最大分支數(shù)進(jìn)行兩兩組合,如圖1所示。
圖1 告警權(quán)重層次分析圖Fig.1 Alarm Weight Analytic Hierarchy Process
(2)將組合內(nèi)的告警級別與告警分析樹最大分支數(shù)進(jìn)行兩兩比較,形成判斷矩陣A=aij。aij表示的是元素Ai相對于Aj的重要程度,用(1~9)標(biāo)度點(diǎn)[15]區(qū)分事物之間重要程度,其取值范圍為{1,3,5,7,9},aji=1/aij,ai=1,i,j=1,…,n。如表1所示。
表1 標(biāo)度的含義Tab.1 Meaning of Scale
圖2 判斷矩陣AFig.2 Judgment Matrix A
(3)元素的重要度取值為(1~5)之間的整數(shù),bij表示為元素Ii相對于元素Ij的重要程度,形成判斷矩陣B=bij。
(4)用根法計(jì)算相對權(quán)值,即:
(5)合成權(quán)值,即:
在關(guān)聯(lián)規(guī)則挖掘中,支持度(Support)[11]是指包含Ii的事務(wù)在數(shù)據(jù)庫D中所占的百分比,即:
式中:Support_count(Ii)—項(xiàng)集支持計(jì)數(shù),且Ii?I,i=1,...,n。
在關(guān)聯(lián)規(guī)則挖掘中,輸出的規(guī)則如I1?I2都滿足置信度閾值。置信度[11](Confidence)是指包含I1和I2的事物數(shù)與包含I1的事物數(shù)之比,即:
只考慮告警項(xiàng)集出現(xiàn)的頻度,沒有考慮每個(gè)告警級別及其它因素對告警重要程度的影響,會(huì)導(dǎo)致產(chǎn)生許多無效的關(guān)聯(lián)規(guī)則[12]。通過分析告警級別與告警分析樹最大分支數(shù)兩個(gè)因素對告警權(quán)值的影響,采用層次分析法[13]為告警序列賦權(quán)。加權(quán)支持度Wsuppor(tIi)可以表示為:
加權(quán)置信度(Wconfidence)可以表示為:
FP-growth是把數(shù)據(jù)集壓縮成保存所有基本信息的FP-tree(頻繁模樹)結(jié)構(gòu),進(jìn)而產(chǎn)生關(guān)聯(lián)規(guī)則。加權(quán)FP-growth基本步驟如下:
(1)掃描事務(wù)數(shù)據(jù)庫,告警事務(wù)按照告警支持計(jì)數(shù)降序排列,過濾低于支持度閾值的告警項(xiàng)集。
(2)將處理后的通信網(wǎng)絡(luò)告警數(shù)據(jù)壓縮到FP-tree中。
(3)構(gòu)造加權(quán)條件FP-tree。
(4)挖掘加權(quán)條件FP-tree,輸出加權(quán)告警頻繁項(xiàng)集,濾去小于加權(quán)置信度的告警關(guān)聯(lián)規(guī)則,生成滿足條件的告警關(guān)聯(lián)規(guī)則模式。
(5)記錄每條告警關(guān)聯(lián)規(guī)則及其加權(quán)支持度、加權(quán)置信度參數(shù)。
(6)將所的結(jié)果保存到告警關(guān)聯(lián)規(guī)則庫。
對實(shí)時(shí)告警數(shù)據(jù)進(jìn)行預(yù)處理后,根據(jù)告警關(guān)聯(lián)規(guī)則模式和實(shí)時(shí)告警數(shù)據(jù),用告警關(guān)聯(lián)規(guī)則模式匹配的方法進(jìn)行實(shí)時(shí)告警預(yù)測。
假設(shè)一條告警關(guān)聯(lián)規(guī)則含n項(xiàng)告警,在指定時(shí)間窗口內(nèi),實(shí)時(shí)告警和一條告警關(guān)聯(lián)規(guī)則內(nèi)告警集合的前(n-1)項(xiàng)匹配,則認(rèn)為該告警關(guān)聯(lián)規(guī)則內(nèi)的第n項(xiàng)告警將在未來某段時(shí)間w發(fā)生,概率為p,其中,w為滑動(dòng)時(shí)間窗口寬度,p為該項(xiàng)規(guī)則的置信度。
(1)首先,對告警數(shù)據(jù)進(jìn)行預(yù)處理。
(2)將告警關(guān)聯(lián)規(guī)則庫存放到數(shù)據(jù)結(jié)構(gòu)中。
(3)輸入實(shí)時(shí)告警數(shù)據(jù),遍歷所有的告警關(guān)聯(lián)規(guī)則,將實(shí)時(shí)告警與告警關(guān)聯(lián)規(guī)則內(nèi)告警集合進(jìn)行匹配。判斷實(shí)時(shí)告警與該告警關(guān)聯(lián)規(guī)則內(nèi)告警集合的前n-1項(xiàng)是否匹配。當(dāng)前讀入告警的發(fā)生時(shí)間與該事務(wù)的第一項(xiàng)的發(fā)生時(shí)間差小于或等于屬于同一事務(wù)的最小時(shí)間窗口。
(4)告警關(guān)聯(lián)規(guī)則內(nèi)告警集合數(shù)量為n,判斷實(shí)時(shí)告警數(shù)據(jù)是否與關(guān)聯(lián)規(guī)則內(nèi)告警集合的前n-1項(xiàng)完全匹配,如果匹配,則輸出第n項(xiàng)告警,輸出的告警將在某段時(shí)間發(fā)生(w)。否則遍歷下一條規(guī)則,再次進(jìn)行匹配,直至遍歷完所有的規(guī)則模式。
(5)將預(yù)測所得集合按照加權(quán)置信度進(jìn)行排列,并輸出每條規(guī)則的支持度與置信度。
驗(yàn)證基于加權(quán)FP-growth 的告警預(yù)測在規(guī)則挖掘階段和告警預(yù)測階段是否都優(yōu)于基于FP-growth告警預(yù)測。
實(shí)驗(yàn)數(shù)據(jù)來源于某市移動(dòng)通信公司連續(xù)7天的通信網(wǎng)絡(luò)告警數(shù)據(jù),包括62090條網(wǎng)絡(luò)告警數(shù)據(jù)、228個(gè)網(wǎng)絡(luò)元素及236個(gè)告警類別。
表2 通信網(wǎng)絡(luò)告警數(shù)據(jù)實(shí)例Tab.2 Example of Communication Network Alarm Data
4.3.1 數(shù)據(jù)預(yù)處理
將預(yù)處理后的通信網(wǎng)絡(luò)告警數(shù)據(jù)分為兩部分,大部分用于關(guān)聯(lián)規(guī)則挖掘,小部分用于告警預(yù)測。
這里對原始告警數(shù)據(jù)進(jìn)行屬性及缺失值處理、過濾無意義告警合并重復(fù)告警處理,如表3所示。
表3 告警數(shù)據(jù)預(yù)處理Tab.3 Alarm Data Preprocessing
預(yù)處理后的告警數(shù)據(jù)中有提示告警、次要告警、重要告警和緊急告警四個(gè)告警等級,四個(gè)告警等級數(shù)量統(tǒng)計(jì)分布,如圖4所示。
圖4 告警數(shù)據(jù)中告警等級所占比例Fig.4 Proportion of Alarm Level Data
圖5 窗口寬度對數(shù)據(jù)挖掘執(zhí)行時(shí)間的影響Fig.5 Effect of Window Width on Execution Ttime of Data Mining
4.3.2 加入權(quán)值的關(guān)聯(lián)規(guī)則
滑動(dòng)時(shí)間窗口寬度的大小會(huì)對算法執(zhí)行時(shí)間產(chǎn)生影響,當(dāng)窗口寬度win<5min時(shí),滑動(dòng)步長小,窗口移動(dòng)速度慢,算法執(zhí)行時(shí)間較長。窗口寬度win >13min時(shí),每個(gè)窗口中包含的告警增多,算法效率下降。窗口寬度在(5~10)min時(shí),算法效率較高。同時(shí)大部分告警序列在10min 之內(nèi)發(fā)生,故而選取時(shí)間窗口寬度為600s,滑動(dòng)步長為480s,進(jìn)行關(guān)聯(lián)規(guī)則挖掘。
由于加權(quán)FP-grwoth算法構(gòu)建加權(quán)FP-tree是通過加權(quán)支持度進(jìn)行剪枝,使得告警數(shù)據(jù)集大幅減少,通過加權(quán)置信度過濾弱關(guān)聯(lián)規(guī)則,保留強(qiáng)關(guān)聯(lián)規(guī)則,減少關(guān)聯(lián)規(guī)則挖掘所需的執(zhí)行時(shí)間。在相同數(shù)據(jù)量下,數(shù)據(jù)挖掘執(zhí)行時(shí)間越短挖掘效率越高,如圖6所示。
4.3.3 實(shí)時(shí)告警預(yù)測
當(dāng)支持度sup<0.2 時(shí),支持度較小,產(chǎn)生較大規(guī)模的關(guān)聯(lián)規(guī)則,無用關(guān)聯(lián)規(guī)則較多,降低了規(guī)則模式匹配時(shí)的效率。當(dāng)支持度sup>0.6時(shí),支持度較大,大幅削減了頻繁項(xiàng)集,雖產(chǎn)生較小規(guī)模的關(guān)聯(lián)規(guī)則,但產(chǎn)生有效關(guān)聯(lián)規(guī)則更少,因此降低了規(guī)則模式匹配時(shí)的精度。在支持度較小的時(shí)候,由于挖掘的有效告警關(guān)聯(lián)規(guī)則較多,所以預(yù)測的也會(huì)較為精確。在不同的支持度下,基于加權(quán)FP-growth 的告警預(yù)測在精確度、F1值等方面都優(yōu)于基于FP-growth的告警預(yù)測,如圖7所示。
圖7 不同支持度下的F1值Fig.7 F1 ValueUnder Different Support
通信網(wǎng)絡(luò)告警預(yù)測可有效避免通信網(wǎng)絡(luò)故障,減輕經(jīng)濟(jì)損失。通過層次分析法為每個(gè)告警序列有效賦權(quán),提出基于加權(quán)FP-growth挖掘告警關(guān)聯(lián)規(guī)則模式,并通過模式匹配方法進(jìn)行告警預(yù)測。通過上述方法對一周的告警數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證,在告警數(shù)量相同時(shí),加權(quán)FP-grwoth挖掘效率高于經(jīng)典關(guān)聯(lián)規(guī)則挖掘效率,在告警數(shù)量為20000條時(shí),挖掘效率取得最大值428條/s。在告警預(yù)測階段,基于加權(quán)關(guān)聯(lián)規(guī)則的告警預(yù)測F1值高于經(jīng)典的關(guān)聯(lián)規(guī)則告警預(yù)測方法,且F1最大值為0.65。此方案在告警預(yù)測中具有較高的價(jià)值,提高了通信網(wǎng)絡(luò)的可靠性和穩(wěn)定性。