提高IT運維效率,深度解讀京東雲AIOps落地實踐(異常檢測篇(二))

語言: CN / TW / HK

作者:張憲波、張靜、李東江

如何提高IT運維效率是眾多運維人員的難題,這不僅是對內容繁雜、持續變化、支援不同的業務需求加以描述、載入和維護,更要對運維和業務運維需求、過程、結果的管控,以及對整個管理資訊系統執行狀態的管控。京東雲AIOps的時間序列異常檢測識別故障對系統效率大大提升。它能基於深度學習對運維時序單指標和多指標指標進行異常檢測,快速發現線上業務問題,為運維人員降本增效。

基於深度學習對運維時序單指標和多指標指標進行異常檢測,快速發現線上業務問題

時間序列異常檢測識別故障對系統的正常執行頗為重要,準確率高的異常檢測對系統的穩定性具有重要意義。時間序列的異常檢測已經研究了幾十年,業界提出了各種有效檢測方法。我們提出了一種基於深度學習的時間序列異常檢測模型。該模型由三條並行管道組成,每條管道包含一個卷積單元,該卷積單元與改進的注意力機制串聯,負責時間和空間特徵提取。在京東內部多個數據集對所提出的模型進行評估,結果證明了所提出模型的有效性,所改進的注意力機制的在運維多指標異常檢測上有較好的表現。

為了確保系統穩定執行,需要用一個或者多個指標來評價系統是否在正常執行,常用的評價指標有單變數時間序列(UTS)和多變數時間序列(MTS)。例如,交易量和網路流量是關於線上支付的兩個常用監測指標。挖掘時間序列的異常值對於系統的穩定性以及根因分析都具有重要意義,及時發現這些異常值,可以有效的降低故障的發生的概率。

現有的時間序列異常檢測分析方法大致可分為基於深度學習的方法、基於非深度學習的方法和傳統方法。自迴歸移動(AR)及其變數如自迴歸平均模型(ARMA)和自迴歸求和滑動平均模型模型(ARIMA)是分析時間序列的一些基本方法。動態時間規整(DTW)是另一種基於距離的經典異常檢測方法,其變種如 DTW-I、 DTW-D 和 DTW-A為常用的baseline方法。異常檢測也可以簡單看成二分類問題,所以機器學習演算法,如隱馬爾可夫模型(HMM) ,k 最近鄰(k-NN)和支援向量機(SVM) ,也是用於異常檢測的常用演算法。

上述方法為時間序列分析打下了基礎,然而,為了更好地適應特定的實際領域,非深度學習方法不能適應計算機系統複雜和動態的變化,這也是非深度學習方法的一個侷限性。深度學習具有強大的特徵提取和行為預測能力,這使得深度學習可以很好的適應異常檢測,特別是對於有大量輸入資訊和動態特徵的情況。

卷積神經網路(CNN)是實現深度學習的最常使用的框架之一,並逐漸成為影象處理方面的主流技術。除了卷積神經網路(CNN)之外,遞迴神經網路(RNN)因其對歷史資訊的記憶能力而在時間序列的異常檢測有著很好的表現能力。基於類似的 RNN 設計,其變種長短期記憶人工神經網路(LSTM)和門控遞迴單元(GRU)在時間序列異常檢測問題上具有更好的效能。

基於 DL的時間序列異常檢測模型,如 MC-DCNN ,ALSTM-FCN ,C-LSTM ,TapNet 等在業界被頻繁使用。與基於非深度學習的方法相比,這些模型需要很少的先驗知識,但能夠獲得更好的檢測結果,特別是當涉及到複雜和傳統方法難以解決的情況時,深度學習方法能夠很好的處理。

注意力機制已成為業界演算法同學的一個廣泛選擇,基於深度學習的框架結合注意機制往往獲得更好的效能。它也被用於異常檢測任務,我們對現有的時間序列分析注意機制進行了細微的改進,以更好地適應實際應用。

我們提出了多注意綜合卷積網路(Mac-net)異常檢測模型。時間序列以快照的形式儲存輸入到 Mac-net模型中,Mac-net模型由三條平行的卷積注意管道和一個全連線組成。卷積注意管道包括 CNN 單元和改進注意力單元。CNN 單元負責空間特徵提取,注意單元負責時間特徵提取。我們改進的注意力機制將大部分權重分配給重要的歷史輸入,同時抑制其他較不重要的輸入,從而優化權重分配。

模型要檢測的時間序列可以是 UTS 或 MTS,這三個並行管道設計為多尺度感知器。我們設計的注意力機制可以很好地捕捉時間序列異常序列的內在特徵,通過更多地關注與當前序列嚴重偏離的歷史序列來進行預測,主要是因為這些序列在識別異常與否時比其他序列貢獻更大。

我們的模型創新點主要體現在以下兩個方面: 提出了一種新的基於深度學習的網路結構 Mac-net,並設計了一種專門用於時間序列分析的放大注意機制,使用公共資料集和京東資料集進行了實驗評估,證明了 Mac-net 的有效性和可擴充套件性。詳細模型技術細節如下:

我們首先簡要介紹時間序列的異常檢測,然後詳細說明了 Mac-net 模型的設計細節,以及我們所提出的放大注意機制的演算法實現。

時間序列的異常檢測

假設一個時間序列的週期為X = (x0,x1,...,xt-1,xt),其中t是當前序列的時間戳,而元素 xi,i ∈[0,t] 是在時間戳 i 處的 m 維觀測值,因此,X 是一個矩陣X∈Rmxn。具體來說,如果 m = 1,X 是 UTS,如果 m > 1,則是 MTS。異常檢測是確定當前序列 xt 是否異常。我們採用時間序列的快照影象作為輸入,為 CNN 處理提供了方便。簡單來說,我們檢測的是包含 xt 的子序列,而不是單個點。

Mac-net模型

Mac-net 模型的總體架構,包括兩個主要塊,即三個平行的管道和全連線(FC)層。其中,並行管道負責特徵提取,CNN 單元提取空間特徵,注意力單元提取時間資訊,實現權重分配。每個 CNN 單元包括卷積層、批歸一化層、啟用層和Dropout層。這三條管道的卷積層都有16個核心,它們的步長為1。這三個管道的核心大小分別為2x2、3x3和5x5。除了核心大小之外,所有其他設定在三個管道中保持不變,我們使用 ReLU 作為啟用函式,Dropout率為0.4。

圖1 Mac-net 的體系結構示意圖

輸入為 h + 1快照圖片,包括一個當前序列和 h 歷史序列,並同時輸入到三個並行管道中。每個通道地輸出相加並取平均值以進行最終檢測。並行管道具有不同的核心大小,因而具有不同的感知域。時間序列的快照照片不同於一般的人像照片。儘管在快照圖片中有多條曲線(UTS 的一條曲線) ,但圖片的大部分割槽域是空白的,這意味著圖片值矩陣中的大多數數字為零,如下圖2所示,在這種情況下,單一大小的卷積核心可能無法獲得全面的洞察力。三條平行管道的混合可以很好地克服這一問題。不同大小的卷積核可以互補地工作,並提供全面的感知。根據我們的實驗結果可得, 2x2、3x3和5x5的組合效果最好。每個 CNN 單元后面跟著一個注意力單元。

圖2 (a) UTS 輸入序列,(b)值矩陣

最後將每個管道的注意力輸出的結果輸入到後面的全連線層中。由於每個管道的卷積核大小不一致,所有管道輸出的結果直接求和是不行的。在注意力機制後面加個全連線層,以統一輸出形狀,從而使求和成為可能。總和的平均值最終輸入到統一的全連線層。後面包括兩個全連線層,分別是32個和2個神經元。最終輸出結果是當前時間序列是否為異常。

放大注意力機制

注意機制最初被提出用於機器翻譯,並很快成為整合在深度學習體系結構中的主要設計方法。注意機制的基本思想是模仿生物系統,即使感知到大量的資訊,它們也會有意識地關注感知的某些部分。常用的注意機制如加性注意機制、放縮點積注意機制等需要額外的查詢引數和關鍵矩陣計算,這肯定會增加計算開銷。此外,這些注意機制計算出的權重被簡單地分配給每個元素。為了進一步加強重要因素對注意的影響,同時抑制那些不相關的片段,在深入研究內在時間序列的基礎上,我們提出了一種放大注意機制。

注意力機制最常用的形式之一,如(1)所示,是縮放點的產生。

當:

縮放後的點生成,“柔和”地最大化了那些具有較大相似性的元素所產生的效果。對於時間序列而言,與待檢測時間序列偏差最大的歷史序列對最終決策的貢獻最大。以下圖3中的UTS輸入為例。紅色虛線框是要檢測的序列,藍色虛線框為所需的歷史序列。顯然xt-2與xt的偏差最大。根據實際經驗,與xt-1和xt-3相比,xt-2被認為是識別xt異常狀態的優先參考。鑑於這種先驗知識,在抑制分配給其他權重的同時,放大分配給xt-2的權重是非常必要的。因此,我們試圖減少分配給那些不太重要的部分的權重。

圖3 UTS輸入樣例

紅色段xt將被檢測,藍色段xt-1、xt-2和xt-3是作為輔助參考的歷史資料段。

實現放大注意力機制有三個主要步驟。首先得到表示歷史片段 xt-h ~ xt-1與當前片段 xt 相似性的相似向量 S = (st-h,st-h+1,... ,st-1)。所需的歷史片段數 h,可以根據異常模式確定,通常可以通過試驗確定。在我們的示例中,h 被設定為10,這意味著當前檢測需要過去的10張歷史快照照片。相似度計算方法有很多種,我們選擇了餘弦距離,如(3)所示

如上所述,我們的目標是挑選出偏離 xt 最多的片段,即相似向量的最小元素。

其次,根據相似性結果得到權重向量w。與直接將相似性結果 放softmax運算的縮放點生成不同,我們使用log代替exp運算,並將權重向量分成兩部分。正如我們所提到的,我們加大了重要歷史片段對模型結果所產生的影響。我們使用log操作,因為當輸入在[0,1]內時,值的變化比exp嚴重得多。

基於以上公式(4),smin是最終識別的最有價值的資訊。同時,[st-h,smin-1]和[smin+1,st-1]不那麼重要。為了擴大對重要序列片段的關注,我們將權重計算範圍縮小到[smin,sh-1],因為這一子時段包括xt的最近相鄰的序列。[st-h,smin-1]被賦值為一個很小的值,因為它們遠離xt。

注意力機制的最後一步是得到結果的乘積乘以權重矩陣並歸約,即注意力輸出=reduce_sum(x’· w) 表I給出了注意機制的演算法過程。

表一 放大注意機制演算法

由於在 Mac-net 中有三個管道,我們得到三個獨立的注意力輸出,即 、 和。這三個注意力輸出的平均值作為並行管道的最終輸出,輸入到全連線中進行最終輸出。

通過我們京東內部資料和公共資料集實驗評估來證明 Mac-net 在異常檢測任務中的有效性。我們首先在兩個 UTS 公共資料集和兩個 MTS 公共資料集上評估模型。為了進一步說明該方法在實踐中有良好的擴充套件性和有效性,我們還使用了我們京東內部兩個資料集作為測試集。

資料集

我們使用兩個 UTS 公共資料集和兩個 MTS 公共資料集來演示 Mac-net 的異常檢測效能。注意,一些公共資料集最初並非用於異常檢測,而是用於時間序列的二分類。儘管如此,異常檢測基本上是一項二分類的任務。因此,進行這些實驗具有一定的有效性。

兩個 UTS 資料集是從 Numenta Anomaly Benchmark (NAB)資料集中選擇的。這兩個 MTS 資料集收集來自不同領域的各種 MTS。我們選擇了SelfRegulationSCP2和Wafer,因為它們的維數和類別與我們的實際情況相似。除了公共資料集,我們選取了兩個京東內部模型落地的資料集 A 和 B。下圖4顯示了兩個資料集的正常序列(標有 a 的藍框)和異常序列(標有 b 的紅框)。

圖4 資料集 A 和 B 的(a)正常和(b)異常序列的顯示

模型評估

Mac-net模型 首先在上述六個資料集上進行了測試,來證明我們提出的放大注意力機制具有效果提升作用。檢測結果見表二。我們選取精確度,召回率,以及 F1-score(F1)作為評估指標,公式如下,其中 tp、 fp 和 fn 代表真正的陽性、假陽性和假陰性。

從表二中我們可以看出,Mac-net 在所有測試資料集上獲得了最佳效能。

表二 MAC-NET 在六種資料集上的評價結果

通過模型評估證明了我們的注意機制對現有方法的有一定的提升。同時我們構造了兩個比較模型 Abl-mdl-1和 Abl-mdl-2。Abl-mdl-1和 Abl-mdl-2都與 Mac-net 共享相同的架構,只是注意力單元不同。Abl-mdl-1用縮放點產生取代 Mac-net 中的擴大注意機制,Abl-mdl-2用 LSTM 層(16個單元)取代擴大注意機制。從結果可以看出,我們的注意機制優於常用的注意機制和 LSTM 操作。放大注意力機制是基於時間序列的內在特徵設計的,並試圖以最優方式分配權重。

除了更好的檢測精確度外,我們還評估了我們的模型與兩個模型(Abl-mdl-1和Abl-mdl-2)的收斂速度,如下圖5所示。兩個基於注意力的模型,即Mac-net和Abl-mdl-1,都實現了最快的收斂,而Abl-mdl-2則較慢。與其他兩個模型相比,在15-20個時期的訓練期間,Mac-net震動更少,即到了更穩定的狀態。

圖5 Mac網路、Abl-mdl-1和Abl-mdl-2的收斂速度

Multi-Attention Integrated Convolutional Network for Anomaly Detection of Time Series. ICCAE.

ieeexplore檢索: http://ieeexplore.ieee.org/document/9762449

團隊介紹:

京東科技從2018年開始建設智慧運維,基於京東多年一線運維經驗,以大資料和人工智慧技術為抓手,形成以應用為中心的一體化智慧運維解決方案。利用京東內部歷年大促場景的資料積累,對演算法進行不斷的優化訓練,在監控、資料庫、網路、資源排程等多個縱向場景取得突破,可移植性強,自研通用化智慧基線演算法學件10+,自研通用化異常檢測演算法學件10+,場景化異常檢測演算法方案5+,具備多種自研通用化根因定位演算法學件,可以自動觸發多維實時根因定位 ,從上萬維度屬性值中定位到根因維度,自研5種以上增量式學習模板提取與相關分析演算法學件,運維知識圖譜內涵蓋節點30W+,以應用為中心向外延伸出的圖譜關係達90W+,賦能根因分析快速精準查詢呼叫。發表IEEE國際會議論文(AIOps方向)8篇,申請40餘項智慧運維專利。