孟恒宇,李元祥
(上海交通大學(xué)航空航天學(xué)院,上海 200240)
異常檢測是時序數(shù)據(jù)分析最成熟的應(yīng)用之一,定義為從正常的時間序列中識別不正常的事件或行為的過程[1]。有效的異常檢測被廣泛用于現(xiàn)實世界的多個領(lǐng)域,如量化交易、網(wǎng)絡(luò)安全檢測[2]、汽車自動駕駛[3]和大型工業(yè)設(shè)備的日常維護(hù)等。以在軌航天器為例,由于航天器昂貴且系統(tǒng)復(fù)雜,不能及時檢測到危險可能導(dǎo)致嚴(yán)重甚至無法彌補的損害,異常隨時可能發(fā)展為嚴(yán)重故障。因此,準(zhǔn)確、及時地檢測出異常能夠幫助航天工程師在第一時間給出應(yīng)對措施。
基于重建的異常檢測是目前時序數(shù)據(jù)異常檢測的主流方法。文獻(xiàn)[4]將深度學(xué)習(xí)用于異常檢測任務(wù)中,使用基于長短期記憶(Long-Short Term Memory,LSTM)網(wǎng)絡(luò)的自動編碼器(Auto-Encoder,AE)來檢測時序數(shù)據(jù)異常,該方法被成功應(yīng)用于許多工業(yè)領(lǐng)域[5-7]。基于重建的異常檢測算法首先使用正常數(shù)據(jù)訓(xùn)練自動編碼器來重建序列,然后通過相同的模型重建異常序列,獲得重建誤差序列,最后利用閾值或其他方法分割出異常發(fā)生的子序列。
然而,LSTM序列式傳播的特點導(dǎo)致檢測算法難以實現(xiàn)并行化,大幅增加了計算耗時,尤其是隨著數(shù)據(jù)量指數(shù)級增長,過多的訓(xùn)練耗時會影響模型的及時更新[8-9]。此外,LSTM等深度學(xué)習(xí)的“黑箱”特點使得提取到的特征很難有對應(yīng)的物理含義,如在記錄人為操作的故障數(shù)據(jù)集中,需要找出人為指令與異常的對應(yīng)關(guān)系,此關(guān)系難以體現(xiàn)在LSTM模型中[10]。
近年來,Transformer模型成為完成自然語言處理(Nature Language Processing,NLP)任務(wù)的主要方法。自然語言同樣是一種序列數(shù)據(jù),但其中語義存在跳躍性,這類似于時序數(shù)據(jù)中因人為因素而導(dǎo)致的狀態(tài)變化,而Transformer模型可以很好地處理這一問題。因此,本文以注意力機制作為時序數(shù)據(jù)異常檢測手段,提出一種基于Transformer模型的時序數(shù)據(jù)異常檢測方法——掩膜時序建模(Mask Time Series Modeling,MTSM)。使用自注意力機制并行地重建數(shù)據(jù)以加快速度,通過可視化關(guān)系矩陣分析人為因素與異常發(fā)生的關(guān)系,并在存儲數(shù)據(jù)集和NASA航天器數(shù)據(jù)集上進(jìn)行實驗,比較不同工況下的重建及異常檢測效果。
本節(jié)闡述以Transformer作為特征提取器的自動編碼器工作原理及其優(yōu)點,并介紹從重建誤差序列中獲取異常動態(tài)閾值分隔的過程。
注意力機制起源于人類眼球的注意力[11-12],該機制能夠幫助眼球從繁冗復(fù)雜的圖像細(xì)節(jié)中獲取最重要的部分。廣義的注意力機制是指從大量信息中將權(quán)重分配給重要信息的過程。針對時序數(shù)據(jù),不同時間步的數(shù)據(jù)其重要性應(yīng)當(dāng)是不同的。
假定輸入序列為Χ=[x1,x2,x3],輸出序列為Y=[y1,y2,y3],目標(biāo)為根據(jù)輸入序列X得出輸出序列Y。假定有一組序列對<X,Y>,則自動編碼器的任務(wù)是學(xué)習(xí)該序列對的映射關(guān)系。自動編碼器由編碼器Encoder和解碼器Decoder組成,不同的任務(wù)使用不同的特征提取器[13]。本文以NLP領(lǐng)域的Transformer模型作為自動編碼器的Encoder和Decoder。
Encoder針對不同的輸入xi映射出不同的隱含編碼ci,將這種非線性映射定義為:
Decoder對ci-1做符合要求的解碼,得到輸出序列Y。每一個i時刻的yi根據(jù)ci-1和i時刻之前的y1,y2,…,yi-1來生成,其對應(yīng)的非線性映射函數(shù)定義為:
由此,可以根據(jù)輸入的X序列依次得到輸出的Y序列。可以看出,不同于一般的自動編碼器,不斷更新的隱含編碼ci利用了注意力機制,在計算不同時間步時使用了不同的ci權(quán)重向量,也就是分配了不同的注意力。在計算ci時,第t個輸入xt對yi的權(quán)重計算公式為:
Transformer是完全基于自注意力機制的特征提取器,其兩個關(guān)鍵結(jié)構(gòu)如圖1所示[14]。圖1(a)所示為注意力計算部分,其中,Query和Key經(jīng)過矩陣相乘縮放到0和1之間,再通過Softmax得到注意力得分,之后計算Value的注意力得分加權(quán)和,得到最終輸出。圖1(b)所示為Transformer編碼器結(jié)構(gòu),其中,輸入序列經(jīng)過一層嵌入后成為一個多維序列,經(jīng)過位置嵌入后的數(shù)據(jù)輸入多層的轉(zhuǎn)換層中,每一層轉(zhuǎn)換層由多頭注意力機制、層正則化和前向傳播模塊組成,同時加入了殘差連接。
圖1 注意力計算機制與Transformer編碼器結(jié)構(gòu)Fig.1 Attention computing mechanism and Transformer encoder structure
與傳統(tǒng)序列傳播的LSTM從前到后依次輸入序列不同,嚴(yán)格來說,Transformer沒有方向性,其直接輸入整段序列。此特性可使模型同時學(xué)習(xí)當(dāng)前時間步周圍的時間步信息。
由重建誤差序列可分割出異常子序列[15],如圖2所示。
圖2 基于重建的異常檢測示例Fig.2 Examples of reconstruction-based anomaly detection
文獻(xiàn)[16]提出一種動態(tài)閾值分割方法,其設(shè)yi為原始序列第i時間步的信號值為模型重建出的序列第i時間步的信號值,從而計算得到重建誤差序列動態(tài)閾值分割指根據(jù)ei求出動態(tài)閾值ε,其定義如下:
其中,μ(·)是均值,σ(·)是標(biāo)準(zhǔn)差,z是權(quán)重系數(shù)。每一個時間步的誤差閾值εi是動態(tài)的,取決于之前整個閾值序列ε的最大值,計算公式如下:
在式(5)中,ea是上一個異常發(fā)生之后的所有正常序列,Pj是所有的正常序列,表達(dá)式如下:
可以看出,動態(tài)閾值檢測綜合了均值和標(biāo)準(zhǔn)差,其根據(jù)誤差累積的情況不斷更新閾值,檢測到異常后再更新閾值。在整個過程中,只需要調(diào)整一個參數(shù)即權(quán)重系數(shù)z。目前,該方法已經(jīng)應(yīng)用到NASA實際的生產(chǎn)環(huán)境中。
為提高基于LSTM模型異常檢測的計算效率,同時探索深度模型的特征在物理世界的含義,本文提出以Transformer作為自動編碼器特征提取器的掩膜時序建模(MTSM)方法。
在傳統(tǒng)基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的模型中,對于多數(shù)重建的時間步,通常是從整段時間序列中取一段長度來重建下一步(LSTM信息傳播的步數(shù)是有限的),重建序列即是將分步的預(yù)測拼接成一段完整的序列,如圖3(a)所示,其中,灰色為模型輸入部分,白色為重建部分??梢钥闯?,這一過程是單向的,僅有重建時間步之前的數(shù)據(jù)影響重建這一時間步。而Transformer模型與基于RNN的模型不同,其一次性讀取整段時序數(shù)據(jù),在NLP任務(wù)中,可以從一個單詞的左右文字學(xué)習(xí)這個單詞的作用。因此,本文設(shè)計一種新的數(shù)據(jù)輸入輸出方式,如圖3(b)所示。在獲取一段完整序列并分割成小序列時,不是重建這一段小序列的最后一節(jié)數(shù)據(jù),而是預(yù)測這一段小序列的中間一節(jié)數(shù)據(jù),從而利用重建數(shù)據(jù)左右兩邊的信息來實現(xiàn)重建。
圖3 基于RNN的模型與本文模型的輸入輸出示意圖Fig.3 Schematic diagrams of input and output of RNN-based model and the proposed model
假設(shè)被掩膜(Mask)掉的重建序列長度為L(i一般取1),重建序列之前的輸入序列長度為Li-,重建序列之后的輸入序列為Li+,則每次異常檢測要延遲Li+個時間步才能進(jìn)行。當(dāng)Li+=0時,MSTM的輸入輸出數(shù)據(jù)退化到一般的輸入輸出過程,如圖3(b)所示。這就帶來一個問題,即在在線檢測中,如果需要將目標(biāo)時間步之后的數(shù)據(jù)作為模型的輸入,勢必會影響檢測的實時性。但如果類似NLP,加入之后數(shù)據(jù)可以提升檢測效果的話,則可以在工程上做取舍,即在需要檢測精度高時增長目標(biāo)時間步之后數(shù)據(jù)輸入的長度,而在需要及時性時減少甚至取消這部分輸入。這一點將在下文實驗部分加以討論。
受Mask Language Modelling啟發(fā),本文提出MTSM方法用于時序數(shù)據(jù)的重建。
如圖4所示,對于輸入序列Χ=[x1,x2,…,xn],選擇其中將要重建的時間步(如x4),用[mask]標(biāo)志代替,從接下來的模型中屏蔽掉。經(jīng)過一層位置嵌入后進(jìn)入Transformer編碼器,得到編碼后的序列encoded sequence,即上文提到的memory(但與一般的memory不同,此時的memory不包含要重建的x4),再經(jīng)過一個簡單的decoder之后獲取序列。損失函數(shù)定義為被屏蔽的x4預(yù)測值與真實值之間的關(guān)系。換言之,MTSM是從被Mask的時間步兩邊的數(shù)據(jù)或者說上下文數(shù)據(jù)重建時間步,這充分利用了Transformer無向性的特點。此外,綜合利用上下文信息,也可以提高重建的精度。
圖4 MTSM方法建模過程Fig.4 Modeling process of MTSM method
Transformer的一大優(yōu)點是可以捕捉跨距離的依賴關(guān)系。針對NLP任務(wù),研究者常利用此特性分析某個詞在整句話中的作用,從而捕捉到較為直觀的語義特征。本文利用這一特性進(jìn)行人為指令與異常的關(guān)系提取,以探索異常檢測中的人為因素影響。
首先對人為指令和異常的關(guān)系進(jìn)行解釋。以NASA航天器數(shù)據(jù)集為例,通過一鍵熱編碼(one-hot encoding)的形式記錄地面操作人員的相關(guān)指令。如圖5所示,事實上航天器僅傳回了一個傳感器遙測值,但與此同時NASA將地面操作人員的24種或54種指令的實行情況隨信號的時間步編碼在一起,這樣不僅可以將其作為故障檢測的數(shù)據(jù)集,同時也可以用來分析人為指令在異常發(fā)生中的關(guān)系。假設(shè)信號在102時間步~104時間步發(fā)生異常,計算102時間步與100時間步、101時間步人工指令的相關(guān)系數(shù),如果102時間步與101時間步的相關(guān)系數(shù)較大,則說明101時間步造成了102時間步的異常。
圖5 NASA航天器數(shù)據(jù)集中異常與人為指令的關(guān)系Fig.5 Relationship between anomaly and manual command in NASA spacecraft dataset
關(guān)系提取的具體實現(xiàn)過程如下:將Query的信號數(shù)據(jù)全部掩膜,只將人為指令傳入模型,而輸入保留全部數(shù)據(jù),訓(xùn)練完畢后逐層可視化相關(guān)系數(shù)矩陣,找出異常發(fā)生時哪些時間步的人為指令權(quán)重較大,從而獲得所提取到特征對應(yīng)的物理含義。
本文在存儲數(shù)據(jù)集和NASA航天器數(shù)據(jù)集上進(jìn)行實驗,比較不同工況下的重建及異常檢測效果,并通過可視化關(guān)系矩陣進(jìn)行所提取特征的物理含義分析。
時序數(shù)據(jù)異常檢測數(shù)據(jù)集的標(biāo)注需要昂貴的專家成本,尤其是詳細(xì)標(biāo)注異常發(fā)生的開始和結(jié)束時刻的數(shù)據(jù)集。由于此類數(shù)據(jù)集規(guī)模通常較小,因此基于算法效果檢驗的實驗結(jié)論存在一定偶然性。同時,基于重建誤差的異常檢測要求模型在輸入正常數(shù)據(jù)時重建誤差較小,輸入異常數(shù)據(jù)時重建誤差較大。因此,本文先使用含有不同工況的存儲數(shù)據(jù)集[17-18]進(jìn)行重建效果對比。
本文使用的存儲系統(tǒng)數(shù)據(jù)集來自于Ostwestfalen-Lippe應(yīng)用科學(xué)大學(xué)的智慧工廠項目。這個高存儲系統(tǒng)由4條傳送帶和2條導(dǎo)軌組成,每條傳送帶包含3個感應(yīng)傳感器,共有18個通道。數(shù)據(jù)集提供了4種工況,即無故障(正常)未優(yōu)化、無故障(正常)已優(yōu)化、有故障(異常)未優(yōu)化和有故障(異常)已優(yōu)化?;诖藬?shù)據(jù)集,可以在工況是否異常和是否被優(yōu)化兩個維度上比較算法的優(yōu)缺點。
圖6為存儲數(shù)據(jù)集通道3數(shù)據(jù)的重建結(jié)果對比。通過比較4種不同工況下的重建序列可以看出,優(yōu)化后的數(shù)據(jù)比未優(yōu)化的數(shù)據(jù)更平穩(wěn),雜波更少,異常數(shù)據(jù)比正常數(shù)據(jù)多了一段急劇上下波動的異常。
圖6 存儲系統(tǒng)數(shù)據(jù)集上的重建結(jié)果Fig.6 Reconstruction results comparison of storage system dataset
表1為4個子集上的重建結(jié)果絕對誤差對比??梢钥闯觯琓ransformer方法在有異常的數(shù)據(jù)集上重建的絕對誤差更大,這說明異常發(fā)生時Transformer的表現(xiàn)更魯棒。
表1 存儲系統(tǒng)數(shù)據(jù)集上重建誤差對比Table 1 Reconstruction error comparison in storage system dataset
表2是訓(xùn)練到收斂的平均用時對比,相關(guān)硬件為NVIDIA GTX-1080TI、16 GB內(nèi)存、Intel E5處理器。可以看出,由于Transformer放棄了LSTM的序列式推進(jìn),其注意力機制模塊完全可以并行,因此用時普遍較少,最多可以節(jié)約80.7%的時間。
表2 存儲數(shù)據(jù)集上訓(xùn)練耗時對比Table 2 Training time comparison in storage system datasetmin
3.2.1 NASA航天器數(shù)據(jù)集
NASA開源的專家標(biāo)注的真實世界航天器故障數(shù)據(jù)集[16]包括火星科學(xué)實驗室好奇號(Mars Science Laboratory rover,MSL)和土壤水分主動被動探測衛(wèi)星(Soil Moisture Active Passive,SMAP),共計82個通道、105個故障,數(shù)據(jù)集描述如表3所示。
表3 NASA航天器數(shù)據(jù)集描述Table 3 Description of NASA spacecraft dataset
3.2.2 Point-based指標(biāo)
對于序列數(shù)據(jù)的異常檢測,一種常用的檢測指標(biāo)為Point-based指標(biāo),即當(dāng)預(yù)測異常與真實值有交集時記為True Positive,預(yù)測異常與任何真實值均無交集時記為False Positive,真實值與任何預(yù)測值均無交集時記為False Negative,其中,精確率(Precision)、召回率(Recall)與F1值的計算均與一般的檢測任務(wù)相同。
如上文所述,本文模型的檢測實時性主要取決于重建序列使用的輸入序列長度,尤其是位于重建序列之后的輸入序列長度Li+。此外,Transformer的層數(shù)和有無多頭機制也會對檢測效果造成影響。本節(jié)比較了不同參數(shù)配置對時間消耗的影響(硬件配置同上),如圖7和表4所示??梢钥闯?,本文模型的Point-based指標(biāo)達(dá)到與LSTM相近的效果,并且可以大幅減少時間消耗,與LSTM模型相比節(jié)約了84.4%的時間。同時可以看出,多頭機制在這個時序數(shù)據(jù)任務(wù)中幾乎沒有發(fā)揮作用,這可能是因為數(shù)據(jù)維度過少(只有25維或55維),而一般NLP任務(wù)的詞會嵌入512維度的詞向量空間。
圖7 時間消耗與F1得分對比Fig.7 Comparison of time consumption vs F1 score
表4 圖7實驗的詳細(xì)參數(shù)Table 4 Detailed parameters of the experiment in Fig.7
針對異常在線檢測問題,由實驗數(shù)據(jù)可以看出,設(shè)置Li+即延遲在線檢測時,異常檢測的精度更高。而放棄利用兩邊信息即Li+=0時,雖然檢測的精度有所下降,但是避免了在線檢測的延遲,這也符合之前假設(shè),即利用兩邊的信息可以加強建模,從而提升整體效果,并且輸入數(shù)據(jù)長度越長精度越高。因此,針對在線檢測問題,需要具體考慮不同場景的需要。
3.2.3 Range-based指標(biāo)
文獻(xiàn)[19]指出,Point-based指標(biāo)對時序數(shù)據(jù)并不準(zhǔn)確。圖8所示的3個例子均被記作True Positive。從左到右可以看出:第1個例子有一個真實故障,算法檢測出1個故障;第2個例子有2個真實故障,檢測算法卻混淆為1個;第3個例子有1個真實故障,算法卻識別為2個。
圖8 Range-based時序檢測指標(biāo)示意圖Fig.8 Schematic diagram of Range-based indicator of time series detection
雖然Point-based的精確率和召回率均為100%,但是物理意義不同。因此,文獻(xiàn)[19]提出Range-based指標(biāo),相較于Point-based指標(biāo),其增加了OverlapReward值。第i個真實異常Ri與預(yù)測值集合P的OverlapReward計算如下:
其中:ω(·)是重疊尺寸函數(shù),用于衡量真實異常子序列與預(yù)測異常子序列的重疊大??;γ(·) 是重疊基數(shù)函數(shù),用于衡量一個真實異常子序列與幾個預(yù)測異常子序列對應(yīng),一般與真實異常重合的預(yù)測值越多,得分越低;δ(·)是位置偏置函數(shù),如取前緣優(yōu)先(Front-end Bias)時,預(yù)測異常的前緣與真實異常的前緣越接近則得分越高,取中心優(yōu)先(Middle-end Bias)時,預(yù)測異常的中心與真實異常的中心越接近則得分越高。
表5比較了Range-based的不同位置偏置函數(shù)設(shè)置。如果設(shè)置為前緣優(yōu)先,則Transformers模型優(yōu)勢更明顯,即檢測出異常的前緣相比真實值更接近。設(shè)置為中心優(yōu)先,則Transformer模型也有一定優(yōu)勢。但如果完全不考慮異常的位置,則Transformer模型不占優(yōu)勢,這體現(xiàn)了Transformer模型在高層次語義上的優(yōu)勢。
表5 Range-based F1得分對比Table 5 Comparison of Range-based F1 scores
本文選用一個6層Transformer模型的關(guān)系矩陣進(jìn)行可視化,部分實驗結(jié)果如圖9所示。已知這個序列在1 899時間步~2 099時間步、3 289時間步~3 529時間步和4 286時間步~4 594時間步處發(fā)生異常,可見注意力矩陣的可視化效果非常直觀。對于Anomaly0,1 870時間步處所有的點的相關(guān)性都極強。因此,極大可能1 870時間步處發(fā)出的人為指令造成了之后的故障。對于Anomaly2,可以發(fā)現(xiàn)4 390時間步處點的相關(guān)性更大,這比真實異常開始處有延遲,但對應(yīng)了從4 430時間步開始的預(yù)測異常,可以看出模型將4 430時間步之后認(rèn)為異常并認(rèn)為4 390時間步處的指令依然關(guān)系極大。自上而下,中間層如Layer3提取到的特征就并不直觀,可能是相關(guān)的高層語義特征,而到模型的最后一層Layer5,特征又變得直觀。以上逐層關(guān)系矩陣的變化反映了編碼到解碼的過程[20]。
圖9 關(guān)系矩陣部分可視化結(jié)果Fig.9 Partial visualization results of relation matrix
目前,基于LSTM的異常檢測已經(jīng)被部署到很多實際應(yīng)用場景中。本文針對現(xiàn)有異常檢測方法計算效率低和提取到的特征意義不明顯這兩個問題,提出基于Transformer重建的MTSM方法。實驗結(jié)果表明,與LSTM模型相比,Transformer模型減少了80.7%的訓(xùn)練耗時,并且對應(yīng)了關(guān)系矩陣的物理含義,而Mask的使用則提高了重建和檢測的精度,在重建任務(wù)中建模更魯棒,Range-based檢測指標(biāo)的F1得分達(dá)到了0.582。下一步將繼續(xù)提高重建精度并建立規(guī)模更大的數(shù)據(jù)集,以避免實驗結(jié)論的偶然性。