摘 要:智能運維系統涉及多種維度的監測指標,系統的重要功能是異常信息檢測和原因自動化分析。本研究基于變分循環網絡建立了異常信息時序定位算法,利用蒙特卡洛樹搜索(Monte Carlo Tree Search,MCTS)設計針對多維因素的根因分析優化方法。利用系統實際監測數據訓練算法模型,并對其性能進行檢驗。結果顯示,與對照組相比,設計算法在精確率、召回率等方面具有優勢。
關鍵詞:智能運維;多維監測指標;異常定位算法;性能試驗
中圖分類號:TP 31" " " " " " " " " " " " " " 文獻標志碼:A
智能運維系統中的異常信息發生在監測時段內,但是監測模型對時間與異常之間的關聯性反映不足。構建一種能夠識別異常現象以及對應發生時刻的算法模型具有突出的實踐價值。同時,多維監測指標對異常信息的影響程度存在主次之分,算法模型應該具備分析根本原因的功能。
1 基于變分循環網絡的異常定位算法
1.1 異常定位算法的實施流程
智能運維系統中存在多種維度的監測指標,當部分指標在監測時間內出現異常時,要求算法工具能夠在相關的時間序列內檢測出異常時刻。假設時刻t為監測時序中的一個時間節點,數據集{xt-N,…,xt-1,xt}為時刻t之前的歷史監測數據。基于變分循環網絡(Variational Recurrent Neural Network,VRNN)的異常定位算法可用于檢測異常時刻,其實施流程為利用最小化損失函數訓練多維監測指標數據,形成異常定位模型。計算模型重建概率,判斷重建概率是否大于設定的閾值,當判斷結果為大于時說明數據異常。
1.2 基于VRNN網絡的異常定位算法建模
在異常檢測中,變分自編碼器(VAE)的使用十分廣泛,但是以VAE為基礎的檢測方法并沒有考慮時間序列內時間的相關性,而VRNN網絡以VAE和長短期記憶(LSTM)網絡為基礎,VAE網絡模塊分布在每個時刻t上,長短期記憶網絡的狀態變量(記為ht-1)是VAE網絡模塊在時刻t的重要條件。在此基礎上,VRNN網絡模型能夠反映監測數據的時序特征,進而定位異常數據對應的時間點,其網絡結構如圖1所示。其中,xt和zt分別為VAE模型在時刻t的輸入變量和隱藏變量[1]。xt為矢量數據,如果以智能運維系統中的數據為標量,就需要對其進行矢量化表示,可采用滑動窗口技術實現。
VAE是VRNN的重要基礎,因此VRNN中也存在隱蔽變量z,其先驗分布參數的數學表達如公式(1)所示。
φtprior(ht-1)=zt~N(μztprior,(σztprior)2I),[μztprior,σztprior] (1)
式中:zt為隱藏變量z隨時間的先驗分布;μztprior,σztprior為zt中的參數,分別為該分布的均值和標準差;函數φtprior為神經網絡,其輸入參數為ht-1;I為指示策略;N為采樣集。
該先驗分布表達式在智能運維監測數據和時間序列之間建立了關聯。從公式(1)可知,φtprior主要取決于2個參數。將ht-1的非線性映射結果記為h't-1,其運算過程如公式(2)所示。
h't-1=ReLU(linear(ht-1)) (2)
式中:linear()、ReLU()分別為線性變換函數、一種非線性激活函數;μztprior,σztprior2個參數的計算方法均與h't-1有統計學意義,具體計算過程如公式(3)、公式(4)所示。
μztprior=linear(h't-1) (3)
μztprior=Softplus(linear(h't-1)) (4)
式中:Softplus為另一種非線性激活函數。求解標準差可通過該激活函數和ε(服從標準正態分布的變量)導出σx和σz。
VRNN網絡能夠重新構建xt,重構過程與隱藏變量在前一時刻的狀態變量以及其隨時間的先驗分布有統計學意義,其解碼過程與VAE網絡模塊的解碼原理基本一致。以高斯分布描述經過重建的xt,采集隱藏變量的近似后驗分布樣本,通過 VRNN 解碼網絡的映射變換獲取xt重建時的參數分布,重構過程如公式(5)所示。
xt|zt~N(μσ2I),[μ,σ]=φτdec(φτz(zt),ht-1) (5)
式中:當以高斯分布表示重構的xt時,需要引入對應的均值參數和標準差參數μ、σ;φτz(zt)為神經網絡的特征提取階段,用于從隱藏變量中提取有效的特征點;φτdec()為神經網絡模型的解碼階段,以重構的xt為數據,經過解碼后生成參數分布。Softplus、ReLU這2種激活函數可構建出神經網絡特征提取階段和解碼階段的函數表達式[2]。VRNN網絡模型在迭代的過程中需要更新隱藏狀態,參數ht也隨之變化,ht與ht-1之間的關系如公式(6)所示。
ht=fθ(φτx(xt),φτz(zt),ht-1) (6)
式中:fθ為LSTM網絡的運行機制。
通過以上分析可知,VRNN網絡兼顧了長短期記憶網絡的時序特征和變分自編碼器的隱藏變量,形成了具備時序特征的建模能力。
2 優化根因分析算法
在智能運維系統的多維指標監測中,除了定位異常指標及其發生的時間點,還需在此基礎上進一步分析異常的原因,根因分析算法用于確定系統運維數據異常的根本原因。傳統的根因分析算法采用MCTS原理,但是該算法在實際使用中存在一定的局限性,因此本研究以該算法為基礎,建立了一種優化的根因分析算法,實現過程如下。
2.1 定義算法中的符號
智能運維系統的監測指標通常具有多個維度,即使確定了指標異常的具體時間點,但是各屬性在異常現象中的作用有所差異,問題也無法解決。因此只有確定根因屬性的組合,才能為異常問題的解決創造條件[3]。智能運維系統的監測數據由事件、時間戳以及屬性值組成。事件包括多個屬性,例如所在省份(記為P)、通信頻道(記為C)、數據中心(記為D)以及運行商類型(記為I)。1個事件記為E(P,I,D,C),示例為(北京,電信,DC1,Channel3)。時間戳為系統檢測出的事件發生的具體時間點。將根因分析算法中的異常屬性組合記為e=(p,i,d,c),其中的4個屬性為各自對應屬性集中的1個元素。將所有屬性組合e組成1個集合,將該集合記為LEAF,元素e在時間尺度下的實際值記為v(e),其對應值記為Value。
2.2 計算潛在分數
為了以形象化的方式表示多維監測指標,在分析過程中引入數據立方體(Data Cube)模型,其作用為支持多維度數據查詢。根因集合中存在多個元素,其中任一元素的變化都會在數據立方體中產生影響,使后者發生一定程度的變化。
元素e是否屬于集合LEAF的判斷條件為e中是否存在通配符*,如果存在,則e不屬于LEAF。將元素e在數據立方體中的子代元素記為e',而元素e'i屬于子代元素集合,記為e'i∈Desc'(e)[4]。當元素e發生變化時,將其變化量記為h(e),如公式(7)所示。
h(e)=f(e)-v(e) (7)
式中:f(e)為對元素e的預測值,可將元素e相應歷史數據的均值賦值給f(e);v(e)為智能運維監控系統在數據立方體下的實測結果;作為e的子代元素,ei'的預測值為f(ei'),其在元素e中占有一定的比例,該比例關系記為a(ei'),其計算過程如公式(8)所示。
(8)
但是需要注意,在不同維度拆分下元素e存在很多可能性,例如當e'=(p1,i1,d1),則e有可能是(p1,i1,*)、(p1,*,d1)或者(*,i1,d1)。因此,當對不同維度、不同集合的某一元素進行推導時,得到的a(ei)也存在差異。
潛在分數的計算闡明了根因集合中的元素對根因分析的整體影響程度。該計算方法對確定根因集合中的元素具有重要的作用,對比元素的潛在分數計算結果與實際觀測值f(ei'),2種數值越接近,相應的集合成為根因集合的可能性越大[5]。
潛在分數的計算結果在0~1,當2個潛在的根因集合中均存在多個元素時,要綜合計算集合的潛在分數,此時引入參數解釋力(記為EP),其計算過程如公式(9)所示。
(9)
式中:f(ei)為根因集合中任一元素ei的預測值;v(ei)為f(ei)對應的智能運維系統實測值;f(total)為集合中所有元素預測值之和;v(total)為集合中所有元素觀測值之和。可通過公式(9)對比不同根因集合的解釋力EP值,從而確定最優的根因集合。
2.3 算法優化
將數據立方體記為B,根因分析算法的功能是從B中搜索潛在分數最大的子集。B對應的事件集記為E(B),其中存在n個元素,那么算法需要搜索2n-1次。顯然,隨著元素數量n越來越大,算法的搜索次數將快速增加,會造成極大的搜索負擔。此處以MCTS原理為基礎,構建優化的根因分析算法,目標位縮小搜索空間,減少負擔。
在MCTS算法中,將搜索樹的狀態記為s,與之對應的智能運維系統多維監控指標異常根本原因集合記為S。狀態s由3個變量加以描述,分別為訪問計數、集合S的潛在分數以及狀態s轉換后的新狀態s',前2個變量的數學表示方法為N(s,a)、ps(s)。將狀態s轉化為狀態s'的動作值記為Q(s,a),其計算過程如公式(10)所示。
Q(s,a)=max ps(S(u)),u∈{s'} (10)
式中:u為集合。
MCTS算法通過4個步驟進行根因分析。第一步為選擇。目標是從其自身的搜索樹中選擇需要擴展的數據節點,從搜索樹的根節點開始,遍歷每個節點。當執行此步驟時,應使用上置信界(Upper Confidence Bound,UCB)算法實現對節點的選擇,但是UCB算法會對全部節點進行一次初始化處理,此時如果以相同概率初始化全部節點,就會浪費時間和空間,因此此處采用漸進展開策略選取擴展節點。逐層計算每個元素的潛在得分ps(e),元素e根據計算結果排序,后以排定的次序再利用UCB算法得到高分元素。通過上述步驟,就能夠在合理、有效的時間范圍內及時尋找到具有最高潛在分數的節點。第二步為添加。這一步驟的目的是拓展MCTS,增加新狀態s'。s'應滿足表達式S(s')=S(s)∩{e*},在該表達式中,e*為集合,是從集合{e1,e2,…,en}中選擇的子集,以剩余元素的潛在得分為選取e*中子元素的標準。第三步為計算。計算各元素的ps、N及Q。第四步為反饋。從MCTS的根節點到狀態節點s',形成搜索路徑,更新該路徑上所有節點的訪問計數和動作值。
2.4 基于Apriori算法的分層剪枝方法
分層剪枝的作用是進一步降低算法的計算量,通過剪枝操作將不可能成為根因的元素集合排除在搜索范圍之外。分層剪枝方法基于Apriori算法,屬于數據挖掘領域的關聯規則學習算法,具有先驗功能。假設B中存在一層數據,將該層記為l,運用MCTS原理從中獲取最大潛在分數集合,將該集合記為BSet(l,B)。由于父元素和子元素的潛在分數水平具有一定的繼承性,父元素得分高說明子元素的得分也較高,因此可將集合BSet(l,B)以外的元素全部進行修剪,l+1層中將不再出現潛在分數較低的子元素,由此便簡化了搜索樹。
3 算法性能試驗及結果分析
3.1 試驗數據源介紹
以真實的智能運維系統為數據源,采集A、B、C這3種數據集,采集時長為70天,采集頻率為1次/min,因此每個數據集中包括100 800條運維數據。將前55天的數據作為模型訓練的樣本集,后15天的數據作為模型檢驗的數據集。數據集可形成四階數據立方體,每層的根因集合元素數量≤5個,因此4層數據最多包括20種異常根因。智能運維系統樣本數據示例見表1。
3.2 算法性能優劣的評價指標
算法有異常定位和根因分析2種功能,性能評價的指標均為召回率(Recall)、精確率(Precision)、F-score,其對應的計算過程如公式(11)~公式(13)所示。
(11)
(12)
(13)
式中:TP為被模型預測為正類的正樣本;FP為被模型預測為正類的負樣本;FN為被模型預測為負類的正樣本;F-score為召回率和精確率的加權調和平均值。
3.3 試驗方法以及結果分析
3.3.1 算法異常定位性能試驗
3.3.1.1 設置試驗對照組
為了檢驗文章提出的算法對多維指標異常檢測與定位的性能,將異常檢測中的經典算法Dount(基于VAE的Web應用周期性KPI無監督異常檢測)和Opprentice算法作為試驗對照組。
3.3.1.2 試驗結果及分析
3種算法對樣本數據的異常檢測結果見表2。從表2可知,本研究提出的改進算法在精確率、召回率以及F-score這3項性能指標的得分上均高于Dount算法和Opprentice算法,并且在3種數據集上表現出穩定性。
3.3.2 算法根因分析性能試驗
為檢驗算法在根因分析中的性能,同樣設置2個對照組,分別為HotSpot算法和Adtributor算法,將B作為性能檢測的數據源,得到的試驗結果見表3。從表3可知,本文提出的根因分析優化算法在精確率和召回率2項指標上全面優于HotSpot算法和Adtributor算法。
4 結語
針對智能運維系統多維監測指標的異常定位算法應具備異常信息檢測以及根因分析的功能。變分循環網絡能夠整合長短期記憶網絡和變分自編碼器,可從時序變化層面監測系統中的異常情況。在根因分析方面,經過符號定義、潛在分數計算以及分層剪枝等操作,以MCTS算法為基礎設計出優化方法,縮小了搜索空間,降低了算法的計算量。試驗結果表明本研究提出的新算法具有良好的性能。
參考文獻
[1]王雅鑫,趙月愛.基于KL退火的VRNN視頻異常預測算法研究[J].太原師范學院學報(自然科學版),2023,22(1):38-44.
[2]管延霞,劉遜韻,劉運韜,等.面向多智能體博弈的并行蒙特卡洛樹搜索算法研究[J].計算機工程與科學,2022,44(12):2128-2133.
[3]宋英健,侯榮旭,孫嘉榮,等.動態混合局面評估MCTS算法在愛恩斯坦棋中的應用[J].沈陽工程學院學報(自然科學版),2022,18(3):72-76.
[4]趙曉杰,陳曄.面向計算機實驗室智能運維的網絡設備視覺識別算法研究[J].西安文理學院學報(自然科學版),2023,26(2):39-43.
[5]賈靜茹,包健,劉濤,等.智能運維體系在超大型數據中心中的實踐[J].長江信息通信,2022,35(9):133-136.