摘 ?要:時間序列相關性分析是時間序列數(shù)據(jù)挖掘的重要手段,序列間相互影響與關聯(lián),其隱藏的相關信息可以用于識別、解釋異常問題。目前大多數(shù)方法對隱藏的相關信息分析能力不足,各有缺陷,文章提出了一種多算法融合的方法,通過多種相關系數(shù)組合分析序列間的線性或非線性關系,同時對序列異常檢測后的結果進行波動分析。真實數(shù)據(jù)表明,該方法能夠精確發(fā)現(xiàn)序列間的相關性,實現(xiàn)根因定位。
關鍵詞:時間序列;異常檢測;相關性分析;相關系數(shù);DTW
中圖分類號:O211.61;O151.21 ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)13-0005-04
Abstract:Time series correlation analysis is an important means of time series data mining. The correlation between time series affects and correlates with each other,and the hidden related information can be used to identify and explain abnormal problems. At present,most of the methods have insufficient ability to analyze hidden related information,and each has its own shortcomings. This article proposes a method of multi-algorithm fusion,we analyze the linear or non-linear relationship between time series by a variety of correlation coefficient combination,and the fluctuation analysis of the sequence anomaly detection results is carried out. The real data show that this method can accurately find the correlation between sequences and realize root cause location.
Keywords:time series;anomaly detection;correlation analysis;correlation coefficient;DTW
0 ?引 ?言
時間序列是指將同一統(tǒng)計指標的數(shù)值按其發(fā)生的時間先后順序排列而成的數(shù)列,廣泛存在于各個領域,比如電商平臺的商品銷售記錄、金融市場的股票數(shù)據(jù)、互聯(lián)網公司的監(jiān)控性能指標等。隨著大數(shù)據(jù)時代的到來,時間序列的規(guī)模也日趨增大,對時間序列進行分析,可以揭示事物運動、變化和發(fā)展的內在規(guī)律,對于人們正確認識事物并作出科學的決策具有重要的現(xiàn)實意義。上海鐵路局非常重視大數(shù)據(jù)和算法結合提升業(yè)務和IT運維能力,已經先后在業(yè)務預測、業(yè)務分析、數(shù)據(jù)中心智能運維等方向投入大量研究和項目實踐。筆者作為上海鐵路局大數(shù)據(jù)運維的負責人,全程參與并主導了上述研究和項目的進行,并且已經產生了多項研究成果。
時間序列的異常檢測[1]是檢測與時間序列中其他絕大多數(shù)模式不同的數(shù)據(jù)模式。目前,關于時間序列的異常檢測方法主要分為三大類:第一類是基于規(guī)則的檢測方法,如固定閾值、動態(tài)閾值等;第二類基于統(tǒng)計學[2]的檢測方法,如3Sigma、移動加權平均法、ARIMA[3]等;第三類是基于機器學習的檢測方法,如聚類、AutoEncoder[4]、RF[5]等。本文在對時間序列進行異常檢測時,根據(jù)時間序列的特征選取不同的方法進行異常檢測。
相關性分析[6]常用來研究不同對象屬性之間的相互關系,反映時間序列在某段時間內個數(shù)據(jù)點呈相同或相似波動情況的相關程度,相關方法主要包括相關系數(shù)、協(xié)方差[7]、最大互信息數(shù)[8]、DTW[9]和基于數(shù)據(jù)降維的相似性度量等。時間序列的相關性分析主要可以概括成三個問題:序列間是否相關?序列的波動是否經常一起出現(xiàn)?如果波動經常一起出現(xiàn),波動之間是否存在關聯(lián)性?例如在運維領域[10],當服務發(fā)生故障時,與故障原因相關的許多監(jiān)控指標也會出現(xiàn)異常的波動,這種相關性分析可以幫助運維人員進行故障排查。本項研究已經被用于數(shù)據(jù)中心智能運維項目中,用于實現(xiàn)業(yè)務指標異常時對基礎架構指標的關聯(lián)分析及故障定位。
1 ?相關理論基礎
1.1 ?Spearman相關系數(shù)
在統(tǒng)計學中,斯皮爾曼(Spearman)等級相關系數(shù)[11]用來估計變量X、Y之間的相關性,變量之間的相關性可以用單調函數(shù)來描述,其計算公式為:
其中,N為數(shù)據(jù)個數(shù),d為兩個變量分別排序后成對的變量位置差,與兩個相關變量的具體值無關,僅與其值之間的大小關系有關,適用于不同數(shù)量級時間序列間的相關性分析。
1.2 ?最大互信息系數(shù)
互信息[12]是用來評價一個事件的出現(xiàn)對于另一個事件的出現(xiàn)所貢獻的信息量,計算公式如下:
其中,p(X,Y)為兩個變量之間的聯(lián)合概率,最大互信息系數(shù)(MIC)的想法是針對兩個變量之間的關系,將其以散點的形式離散在二維空間中,查看散點在各區(qū)間的分布計算出聯(lián)合概率,解決互信息中難求聯(lián)合概率的問題。MIC系數(shù)不限定于特定的函數(shù)類型,能夠捕捉變量間各種各樣線性或非線性的關聯(lián)。
1.3 ?動態(tài)時間規(guī)整算法
動態(tài)時間規(guī)整算法(DTW)基于動態(tài)規(guī)劃[13]的思想,可以衡量兩個長度不一致的時間序列的相似度。假設有兩個時間序列Q和C,長度分別為n和m,那么DTW算法計算過程如下:
(1)構建大小為n×m的矩陣D,矩陣元素d(i,j)=dist(qi,cj)為Q與C對應元素間的歐幾里得距離;
(2)在矩陣D中搜索從d(1,1)到d(n,m)的最短路徑作為Q和C的相似度,最短路徑的搜索不是任意的,需滿足以下三個約束條件:單調性,任何一個時間序列的先后順序不能改變,所以所選的路徑必須是隨著時間單調進行的;連續(xù)性,路徑必須是連續(xù)的,即搜索時不能跨過某個點去匹配,只能和自己相鄰的點對齊,保證兩個序列里的所有點都被匹配到;邊界條件確定性,兩個時間序列的發(fā)生有前有后,且其各部分的先后次序不可能改變,因此所選的路徑必定是從左下角d(1,1)出發(fā),往右上角d(n,m)結束。
實際場景下的相關時間序列間通常存在一定的相位差,DTW系數(shù)能夠衡量由于時間錯位或長度不等的時間序列間的相似性。
1.4 ?異常度
異常度是指時間序列中異常點的異常程度,每一個時間序列經過異常檢測后都存在與之對應的異常度曲線,如圖1所示。
因此時間序列的相關性分析可以從原始序列和異常度序列兩個維度進行,通過分析原始序列得到序列間的統(tǒng)計相關性,通過異常度序列可以得到序列間的波動關聯(lián)。
2 ?相關性分析
假設有兩個時間序列Q和C,對Q和C分別進行異常檢測得到各自的異常度曲線Q1和C1,那么Q和C的相關得分如下:
score=w1(coe(Q,C))+(1-w1)(coe(Q1,C1))
其中,w1為權重參數(shù),coe(Q,C)通過Spearman相關系數(shù)、MIC系數(shù)和DTW距離綜合評定。
算法總流程如圖2所示,對于待分析的時間序列,首先需對原始序列進行異常檢測,得到對應的原始值序列和異常度序列,然后利用本文提出的相關性評分機制,融合Spearman相關系數(shù)、MIC系數(shù)和DTW系數(shù)進行相關性評分,分別計算出原始序列間和異常度序列間的相關性,最后通過加權平均得到總的相關性得分。
3 ?實驗過程
3.1 ?實例分析
實驗首先選取了某一交易系統(tǒng)2020年6月4日13:00 —18:02的監(jiān)控數(shù)據(jù),包括交易量、不同服務器下的響應時間、CPU占用率等6個指標。在該時間段內此交易系統(tǒng)發(fā)生了多次故障。
圖3為6個指標在該時間段的時序圖,通過分析性能指標K2~K6與業(yè)務交易量指標K1間的相關性定位故障根因。其中K1是交易量,K2是通道端的響應時間,K3為支付端的響應時間,K4為支付端的CPU占用率,K5為通道端的CPU占用率,K6為支付端的成功率。
我們首先需要對這6個指標進行異常檢測,獲取異常度曲線,如圖4所示。
以K1為主要分析指標,分析K2~K6與K1的相關性,分別計算Spearman相關系數(shù)、MIC系數(shù)和DTW系數(shù),結果如表1所示。
其中,S1、M1、D1表示原始序列的Spearman相關系數(shù)、MIC系數(shù)和DTW系數(shù),S2、M2、D2表示異常度序列的Spearman相關系數(shù)、MIC系數(shù)和DTW系數(shù),R表示本文算法的相關性評分結果,以上系數(shù)及本文算法的結果均表示相關性大小,在0~1之間,值越大,相關性越高。
從表1中可以看出,原始序列曲線特征各異(例如不同的周期性、平穩(wěn)性、趨勢等),相關性分析會受到不同序列數(shù)據(jù)特征的干擾,而本文通過對原始序列進行異常檢測,得到的異常度曲線更能反映不同序列間的相似波動。另外,Spearman相關系數(shù)、MIC系數(shù)和DTW系數(shù)均有其獨特的適用場景及優(yōu)勢,因此本文對這幾種相關系數(shù)進行了融合,從多個角度挖掘出序列間的相關信息,提供實用價值。具體來看,與指標K1相關的Spearman相關系數(shù)和MIC系數(shù)排名為K3、K5、K4、K6、K2,曲線越平穩(wěn),相關系數(shù)越高,因此這兩種系數(shù)需要基于時間序列平穩(wěn)的假設;與指標K1相關的DTW系數(shù)排名為K5、K6、K2、K3、K4,DTW系數(shù)對于時間序列滯前或滯后的容忍度高,但無法識別正負相關性。本文方法相關性評分排名為K5、K2、K3、K4、K6,經驗證,K5為通道端服務器下的CPU指標,K2為通道端的響應時間,K3為支付端的響應時間,與真實故障的根因和傳播方向一致,驗證了本文方法的有效性。
3.2 ?數(shù)據(jù)集驗證
實驗數(shù)據(jù)集選取了某微服務應用系統(tǒng)下半年的真實監(jiān)控數(shù)據(jù),包括1個業(yè)務訪問量指標和4臺服務器下的10個性能指標(CPU、MEM、IO、SWaP、響應時間等),共發(fā)生了30次故障,每次故障均由服務器下的性能指標導致,根因指標由人工標注給出。本文通過對每次故障時間段的訪問量指標和40個性能指標進行相關性分析來定位根因指標。為了驗證本文方法的準確性,我們計算根因定位成功數(shù)量和成功率,公式如下:
success_num=sum(root in top3)
success_rate=
其中,root為人工標注的根因指標,top3為進行相關性分析后與訪問量指標相關性最高的3個指標,success_num表示成功定位的數(shù)量,即滿足top3分析結果中存在人工標注的根因,即為成功定位,success_rate為成功率,total_num=30。并與傳統(tǒng)的Pearson系數(shù)、格蘭杰因果關系檢驗等方法進行對比,對比結果如表2所示。
從表中可以看出,Pearson系數(shù)由于只能衡量時間序列間的線性相關性,成功率遠低于其他方法;Spearman相關系數(shù)、MIC系數(shù)和格蘭杰因果關系檢驗相較于Pearson系數(shù)相對可靠,但受時間序列平穩(wěn)性的影響較大;DTW由于識別正負相關性能力較弱,成功率也較低;本文算法融合了幾種有效的分析手段,成功率最高,算法開放了不同分析方法的權重參數(shù),能夠靈活地應對不同的分析場景。
4 ?應用案例
上海鐵路局在數(shù)據(jù)中心智能運維項目中,對業(yè)務應用的性能指標——訪問量、訪問延時及訪問成功率進行異常檢測,在發(fā)現(xiàn)異常后采用本文的研究成果對上述指標和對應業(yè)務系統(tǒng)基礎架構(如服務器)的性能指標進行關聯(lián)波動相關性分析,從而發(fā)現(xiàn)和應用性能指標最相關的基礎架構性能指標,實現(xiàn)快速的根因定位。
5 ?結 ?論
本文通過對時間序列進行異常檢測提取波動特征,融合Spearman和MIC相關系數(shù)分析序列間的線性或非線性關系,同時利用DTW算法分析序列間的波動關系。經過實驗證明,該方法能從多個角度挖掘出序列間的相關信息,精準地發(fā)現(xiàn)故障根因,提供實用價值。
參考文獻:
[1] 閆偉,張軍.基于時間序列分析的網絡流量異常檢測 [J].吉林大學學報(理學版),2017,55(5):1249-1254.
[2] 曹晨曦,田友琳,張昱堃,等.基于統(tǒng)計方法的異常點檢測在時間序列數(shù)據(jù)上的應用 [J].合肥工業(yè)大學學報(自然科學版),2018,41(9):1284-1288.
[3] 陳小玲.基于ARIMA模型與神經網絡模型的股價預測 [J].經濟數(shù)學,2017,34(4):30-34.
[4] LI Z Y,CHEN W X,PEI D. Robust and Unsupervised KPI Anomaly Detection Based on Conditional Variational Autoencoder [C]//2018 IEEE 37th International Performance Computing and Communications Conference (IPCCC). IEEE,2018.
[5] 張西寧,張雯雯,周融通,等.采用單類隨機森林的異常檢測方法及應用 [J].西安交通大學學報,2020,54(2):1-8+ 157.
[6] 丁小歐,于晟健,王沐賢,等.基于相關性分析的工業(yè)時序數(shù)據(jù)異常檢測 [J].軟件學報,2020,31(3):726-747.
[7] 王特.均值未知的單變量時間序列自協(xié)方差函數(shù)的無偏估計及其應用 [D].濟南:山東大學,2018.
[8] 張春濤,劉學飛,向瑞銀,等.基于最大互信息的混沌時間序列多步預測 [J].控制與決策,2012,27(6):941-944.
[9] ZUO L L,YAN L. A Weighted DTW Approach for Similarity Matching over Uncertain Time Series [J]. Journal of computing and information technology,2018,26(3):179-190.
[10] 宋旭翃,逄鈺.網絡運維數(shù)據(jù)的異常檢測 [J].有線電視技術,2018(2):92-94.
[11] 徐唐先.關于等級相關中斯皮爾曼公式的性質問題 [J].統(tǒng)計與決策,1995(11):22-23.
[12] 趙鴻,柴路,王浩,等.互信息在時間序列分析中的應用 [J].應用科學學報,1996(1):48-52.
[13] KIM S,PARK S,CHU W W. An Index-Based Approach for Similarity Search Supporting Time Warping in Large Sequence Databases [C]//Proceedings of the 17th International Conference on Data Engineering,Washington,DC:IEEE Computer Society,2001:607-614.
[14] 蔣華,張紅福,羅一迪,等.基于KL距離的自適應閾值網絡流量異常檢測 [J].計算機工程,2019,45(4):108-113+ 118.
作者簡介:陳剛(1976.11—),男,漢族,安徽阜陽人,科長,高級工程師,工程碩士,研究方向:大數(shù)據(jù)運維。