摘要:該論文針對多維時序數據的異常檢測問題,提出了基於GAN和AutoEncoder的深度神經網絡算法,並取得了當前State of the Art (SOTA)的檢測效果。論文是雲數據庫創新LAB在軌跡分析層面取得的關鍵技術成果之一。
本文分享自華為雲社區《ICDE'21 DAEMON論文解讀》,作者:雲數據庫創新Lab。
導讀
本文( DAEMON: Unsupervised Anomaly Detection and Interpretation for Multivariate Time Series)是由華為雲數據庫創新Lab聯合電子科技大學數據與智能實驗室發表在頂會ICDE’21的文章。該文章針對多維時序數據的異常檢測問題,提出了基於GAN和AutoEncoder的深度神經網絡算法,並取得了當前State of the Art (SOTA)的檢測效果。ICDE是CCF推薦的A類國際學術會議,是數據庫和數據挖掘領域頂級學術會議之一。該論文是華為雲數據庫創新LAB在軌跡分析層面取得的關鍵技術成果之一。
1. 摘要
隨着IoT時代的到來,越來越多的傳感器采集的時序數據被存儲在數據庫中,而怎么樣處理這些海量數據以挖掘其中的價值是近些年來學術界和工業界熱門的研究點。本文研究了多指標時序數據的異常檢測問題,以診斷產生時序數據的實體可能存在的異常。
本文的主要貢獻如下:
- 提出了DAEMON算法,其算法基於自編碼器和GAN結構,自編碼器用於重構輸入時序數據,GAN結構分別用於約束自編碼器的中間輸出以及自編碼器的重構輸出以使自編碼器結構的訓練過程更加魯棒並且減少過擬合。
- 本文提出了利用多維異常檢測的重構結果進行根因定位的方式
- DAEMON算法能夠在測試數據集上擊敗現有算法
2. 背景
3. 算法設計
圖.1 DAEMON的網絡結構
A. 算法結構簡介
DAEMON算法的總體網絡結構如圖.1所示,包含了三個網絡模塊,變分自編碼器G_AGA(其中包含編碼器G_EGE和解碼器G_DGD,編碼器和解碼器同時作為兩個GAN結構中的生成器), 對應編碼器的GAN結構判別器D_EDE以及對應解碼器的GAN結構判別器D_DDD。
下面簡述一下各個網絡結構的具體功能
B. 數據預處理
- 數據清洗:利用spectral residual算法首先清理掉訓練數據集中可能存在的異常點,這樣一來,VAE將會更准確的學習到時間序列的正常分布。
- 數據歸一化:本文利用MINMAX歸一化方式對訓練以及測試數據進行歸一化。
C. 線下訓練過程
DAEMON的網絡包含三個模塊,一個變分自編碼器,兩個GAN結構的判別器。由於GAN結構網絡需要異步訓練,因此,DAEMON結構對應了三個異步的訓練過程,每個訓練規程都對應了各自的優化器以及損失函數。
下面分別介紹各個模塊:
GAN結構1:GAN結構1中,生成器對應的是變分自編碼器的編碼器部分G_EGE,而判別器對應的是D_EDE,此GAN結構的目的是約束生成器的分布q(z)q(z) 。由GAN的標准損失函數公式可以推導出生成器和判別器的損失函數分別為
GAN結構2:GAN結構2中,生成器對應的是變分自編碼器中的解碼器部分G_DGD,判別器對應的是D_DDD,此GAN結構的目的是進一步約束自編碼器的輸出以讓自編碼器更好的學習時序數據的正常分布。和上面相似,生成器和判別器的損失函數為
變分自編碼器模塊:變分自編碼器用於數據的重構,其自身的損失函數用輸入和輸出的一范數距離定義
注意。GAN結構1,2中的判別器損失函數都只涉及到判別器本身,在訓練的時候,可以直接用(1),(3)進行訓練,而生成器的損失函數和變分自編碼器的損失函數同時涉及到一個公共的模塊,即變分自編碼器本身,因此,在訓練自編碼器網絡時,實際上要同時訓練三個損失函數,具體的方法為,令三個損失函數的加權和為變分自編碼器的損失函數,即
在線下訓練時,依次針對公式(1),(3),(6)進行訓練。
D. 在線檢測過程
在線數據W_{x_t}Wxt輸入到檢測器后,得到重構W'_{x_t}Wxt′,之后把被檢測點x_txt和被檢測點的重構x'_txt′做比較以求取異常得分,即
E. 根因分析
從公式(7)中可以看出,異常得分實際上是由每一個維度的誤差所加和得出的,因此,在根因定位的時候,直接從S_{x_t}^jSxtj中找出最大的kk個得分對應的指標既可視為根因可能出現的位置。
4. 實驗
4.1 環境設定
在仿真中,作者對比了四個常用且公開的時序異常檢測數據集,即SMD, SMAP, MSL, SWaT數據集。下面是各個數據集的具體指標。
作者在仿真中對比的指標為precision, recall以及F1-score。
在對比算法方面,作者對比了8種現有的算法,其中VAE算法是DAEMON去掉GAN結構后的結構,目的是為了測試GAN約束的有效性。為了體現本文GAN結構的有效性以及創新型,作者還對比了另外兩種利用GAN結構的異常檢測算法GANomaly以及BeatGAN。其次,OmniAnomaly是業界著名AIOps團隊,北大的裴丹教授團隊發表在KDD上的異常檢測算法。
下表是作者公布的參數設置
4.2 檢測結果
仿真對比結果如下表所示
可以看到,在四個公開數據集上,DAEMON都能達到SOTA的效果。
4.3 時間消耗
同時,從訓練時間和檢測時間來看,DAEMON算法也能在現有算法中達到中上的水平
圖.2 訓練檢測時間對比
4.4 根因定位
最后,作者對比了根因定位的准確性,DAEMON也能在對比算法中達到SOTA的性能
圖.3 根因定位准確性對比
5. 應用
本算法已經被集成在華為雲時序存儲與分析組件GaussDB for Influx中,用於監控指標的異常檢測與根因定位。
圖.4 DAEMON應用場景
6. 總結
在論文中,作者針對多維時序異常檢測問題提出了基於變分自編碼器以及GAN的DAEMON算法,經過測試,DAEMON算法可以在公開數據集上達到SOTA的性能,並且也能達到SOTA的根因定位能力。其次,DAEMON的訓練,檢測時間效率也能在現有算法中達到中上水平。
華為雲數據庫創新lab官網:https://www.huaweicloud.com/lab/clouddb/home.html