王春枝,邢紹文,高榕,嚴(yán)靈毓
(湖北工業(yè)大學(xué) 計算機(jī)學(xué)院,武漢 430072)
異常檢測是數(shù)據(jù)挖掘領(lǐng)域的一個活躍的研究課題,其廣泛被用于監(jiān)控工業(yè)、制造業(yè)系統(tǒng)和信息技術(shù)系統(tǒng)等系統(tǒng)中各個傳感器的狀態(tài).從時間數(shù)據(jù)中高效且準(zhǔn)確地識別異常值有助于持續(xù)監(jiān)測傳感器系統(tǒng),并對潛在的事件提供及時警報.
多元時間序列是由同一實體的多個單變量時間序列組成,其中每個單變量時間序列代表系統(tǒng)中一個傳感器的監(jiān)測值.在傳統(tǒng)研究中,異常是由相關(guān)領(lǐng)域的專家根據(jù)單個變量指標(biāo)的特征建立相應(yīng)的閾值來檢測的.隨著系統(tǒng)和數(shù)據(jù)的規(guī)模和復(fù)雜性的急劇增加,One-Class SVM[1]、K-Nearest Neighbors[2]、K-Means[3]等機(jī)器學(xué)習(xí)算法被用于單元時間序列異常檢測.然而,在一個真實的復(fù)雜系統(tǒng)中,一個指標(biāo)的變化會引起其他指標(biāo)的波動.因此,單變量檢測算法在多元時間序列異常檢測任務(wù)中不能擁有令人滿意的表現(xiàn).
隨著深度學(xué)習(xí)的快速發(fā)展,基于深度學(xué)習(xí)的多變量時間序列異常檢測算法得到了巨大的改進(jìn).文獻(xiàn)[4]首次研究用于檢測時間序列異常的無監(jiān)督深度學(xué)習(xí)方法,其采用深度卷積神經(jīng)網(wǎng)絡(luò)來檢測異常.文獻(xiàn)[5]采用的是一個基于重構(gòu)的策略,其主要思想是學(xué)習(xí)一個多元時間序列的穩(wěn)健表示,以重構(gòu)概率來檢測和解釋異常.近幾年,圖神經(jīng)網(wǎng)絡(luò)因其結(jié)構(gòu)優(yōu)勢在傳感器間的固有關(guān)系(即特征維度的依賴關(guān)系)建模中大放異彩.文獻(xiàn)[6]將結(jié)構(gòu)學(xué)習(xí)方法與圖形神經(jīng)網(wǎng)絡(luò)相結(jié)合用于捕獲傳感器之間的相關(guān)性.文獻(xiàn)[7]基于圖注意力網(wǎng)絡(luò)分別對特征依賴性和時間依賴性建模,捕獲到多個特征之間的因果關(guān)系以及時間維度的依賴關(guān)系,使異常檢測得到進(jìn)一步提升.
上述研究工作在一定程度下推動了多元時間序列的異常檢測工作的進(jìn)展,但是仍存在以下挑戰(zhàn):
(1)由于異常數(shù)據(jù)只占整體的小部分,在現(xiàn)有的基于預(yù)測的多元時間序列異常檢測方法中,根據(jù)通?;陬A(yù)測的異常檢測的規(guī)定,假設(shè)訓(xùn)練數(shù)據(jù)僅由正常數(shù)據(jù)組成[6].而無法忽略的是,這些異常數(shù)據(jù)仍然會增加訓(xùn)練數(shù)據(jù)的不可預(yù)測性.因此,本文期望的模型應(yīng)該盡可能地忽略訓(xùn)練數(shù)據(jù)中的異常波動.
(2)時間序列是一種特殊類型的序列數(shù)據(jù),它擁有著其他類型的序列數(shù)據(jù)不具備的特征:趨勢性、季節(jié)性,合理的利用這兩個特征可以協(xié)助我們進(jìn)行正常的預(yù)測.現(xiàn)有的深度學(xué)習(xí)技術(shù)使用通用序列模型進(jìn)行時間相關(guān)性建模,而忽略了它的獨(dú)特特性.
為了應(yīng)對多元時間序列異常檢測中的上述挑戰(zhàn),本文提出了一種基于預(yù)訓(xùn)練交互式圖神經(jīng)網(wǎng)絡(luò)(PT-IGNN).具體而言,PT-IGNN由預(yù)訓(xùn)練模塊、預(yù)測模塊組成.其中,預(yù)訓(xùn)練模塊利用無標(biāo)簽數(shù)據(jù),基于Transformer[8]編碼器進(jìn)行多元時間序列的表示學(xué)習(xí),其目的是削弱訓(xùn)練數(shù)據(jù)中的異常波動帶來的影響.預(yù)測模塊通過GATv2[9]嘗試顯式地建模不同傳感器之間的相關(guān)性,同時對每個時間序列內(nèi)的時間依賴性進(jìn)行建模.為了更好地利用時間序列獨(dú)特的特性,本文基于時間卷積構(gòu)建了一個交互式的樹狀結(jié)構(gòu),不僅實現(xiàn)了更大的感受野,而且避免了TCN[10]只能從上一層的特征中提取時間動態(tài)的能力限制.樹狀結(jié)構(gòu)的天然優(yōu)勢可以將上層的信息將逐漸累積向下傳播,從長期和短期的依賴中學(xué)習(xí)隱藏的時間依賴關(guān)系,促進(jìn)了對時間序列的預(yù)測能力.
本文的主要貢獻(xiàn)總結(jié)如下:
(1)提出了一個多元時間序列的預(yù)訓(xùn)練方案.通過基于改進(jìn)的Transformer編碼器學(xué)習(xí)時序數(shù)據(jù)密集向量表示,削弱訓(xùn)練數(shù)據(jù)中的異常波動帶來的消極影響.
(2)基于時間序列的獨(dú)特特征,提出了一種交互式的樹狀結(jié)構(gòu),通過在不同時間分辨率下迭代提取和交換信息,可以學(xué)習(xí)到具有較高可預(yù)測性的有效表示.
(3)在來自工業(yè)領(lǐng)域的3個真實多元時間序列數(shù)據(jù)集上進(jìn)行的大量實驗表明,本文的模型始終優(yōu)于最先進(jìn)方法.
多元時間序列異常檢測旨在檢測實體層面的異常[5].在本文中,多元時間序列異常檢測的輸入序列由傳感器隨時間變化的傳感器數(shù)據(jù)組成X={x1,x2,…,xn}∈Rn×m,其中n是時間序列的長度,m是產(chǎn)生多元時間序列的傳感器的數(shù)量.
由于時間序列數(shù)據(jù)量比較龐大,本文每次迭代時只取t時刻前w個時間戳的數(shù)據(jù){xt-w,xt-w+1,…,xt-1}∈Rw×m預(yù)測t時刻的值,預(yù)測結(jié)果定義為x^t.本文的目標(biāo)是對測試集中的異常數(shù)據(jù)進(jìn)行檢測,將真實值xt與預(yù)測值x^t的偏差看作異常分?jǐn)?shù),異常分?jǐn)?shù)越大,表示t時刻發(fā)生異常的可能性越大,如果異常分?jǐn)?shù)超過特定的閾值,則判定t時刻發(fā)生了異常.
針對現(xiàn)有基于預(yù)測算法的不足:1). 訓(xùn)練集中的異常數(shù)據(jù)會增加模型的不可預(yù)測性;2). 忽略了多元時間序列中獨(dú)特特性.本文所提出的PT-IGNN由預(yù)訓(xùn)練模塊和預(yù)測模塊組成如圖1所示.預(yù)訓(xùn)練模塊改進(jìn)Transformer的編碼器以更加適合處理含有異常的時間序列數(shù)據(jù),并且設(shè)計了一個去噪的自回歸任務(wù)以提取多元時間序列的密集向量表示.本文在預(yù)測模塊中提出了一個交互式圖神經(jīng)網(wǎng)絡(luò)(IGNN),其由堆疊的特征-時間塊和預(yù)測層組成.每個特征-時間塊由一個特征塊和一個時間塊交錯組成,以在動態(tài)變化的上下文中聯(lián)合提取時間序列的特征維度和時間維度的依賴關(guān)系.特征-時間塊可以進(jìn)一步堆疊以獲得更好的預(yù)測精度.隨后,預(yù)測層利用兩個1×1卷積層來聚合這些特征以進(jìn)行時間序列預(yù)測.為了避免梯度消失的問題,從特征塊的輸入到時間塊的輸出添加了剩余連接,同時在每個特征塊之后添加跳過連接.
圖1 PT-IGNN模型整體架構(gòu)圖Fig.1 The overall architecture of PT-IGNN model
1.2.1 IGNN
特征塊采用GAT的修正版GATv2建模時間序列的特征依賴,GATv2實現(xiàn)了一個通用的近似器注意函數(shù),更適合動態(tài)變化的時間序列任務(wù).時間塊負(fù)責(zé)學(xué)習(xí)時間序列的時間依賴性,其引入了一種交互式的樹狀結(jié)構(gòu),它由多個基本構(gòu)建節(jié)點分層排列.每個節(jié)點將輸入數(shù)據(jù)下采樣為兩個子序列,然后使用不同的卷積模塊提取每個子序列的特征并加入交互學(xué)習(xí)補(bǔ)償下采樣過程中的信息損失.
預(yù)測層由兩個經(jīng)典的卷積層構(gòu)成,根據(jù)最后一個特征-時間塊的融合特征進(jìn)行時間序列預(yù)測.本文使用預(yù)測輸出和觀測數(shù)據(jù)之間的均方誤差作為最小化損失函數(shù).
1.3.1 改進(jìn)的Transformer
考慮到模塊的通用性,本文只使用Transformer編碼器.Transformer最初是為自然語言翻譯任務(wù)提出的強(qiáng)大模型,與離散詞索引的序列更加兼容.為了更適用多元時間序列異常檢測任務(wù),在此提出以下建議的變化如圖2所示,更多對Transformer模型的詳細(xì)描述請參考原始工作[8].
圖2 預(yù)訓(xùn)練模塊所使用的Transformer編碼器Fig.2 Transformer encoder used by the pre-training module
自然語言處理(NLP)中使用Layer Normalization可以取得比使用Batch Normalization明顯的性能提升[8],因為詞嵌入中不會受離群值帶來的影響.然而多元時間序列異常檢測的訓(xùn)練數(shù)據(jù)中是存在離群值的.此外,NLP中批量歸一化的性能較差,主要?dú)w因于樣本長度的極端變化,而在我們考察的數(shù)據(jù)集中,這種變化要小得多.故本文使用Batch Normalization來代替Layer Normalization,因為它可以減輕時間序列中離群值的影響,同時我們觀察到Batch Normalization在所有實驗中表現(xiàn)得更加令人滿意.
Transformer中使用注意力取代了循環(huán)神經(jīng)網(wǎng)絡(luò),導(dǎo)致了位置信息的缺失,模型對輸入的順序不敏感,為了使它意識到時間序列的順序性,需要將位置編碼Wpos∈Rw×d添加到輸入向量中.相比于原工作中提出的確定性的正弦編碼,本文使用了可學(xué)習(xí)的位置編碼,隨著模型一起訓(xùn)練學(xué)習(xí).可學(xué)習(xí)的位置編碼在所有的數(shù)據(jù)集中有著更加突出的表現(xiàn),本文推測它們在學(xué)習(xí)的過程中被投影到高維子空間中,其與時間序列樣本所在的子空間不同且呈現(xiàn)出近似正交的關(guān)系.
Transformer的成功很大程度上得益于self-attention機(jī)制,但是其每層的時間復(fù)雜度和內(nèi)存使用量達(dá)到O(n2)的計算復(fù)雜度,為實際應(yīng)用帶來負(fù)擔(dān).文獻(xiàn)[11]提出的ProbSparse自注意力機(jī)制在時間復(fù)雜度和空間復(fù)雜度方面實現(xiàn)了O(n·logn),并在序列依賴對齊方面具有相當(dāng)?shù)男阅?在本文中,本文引用ProbSparse自注意力來加速預(yù)訓(xùn)練模塊的計算速度.
1.3.2 預(yù)訓(xùn)練
受BERT[12]啟發(fā),本文對訓(xùn)練數(shù)據(jù)設(shè)計了一個無監(jiān)督的去噪自回歸任務(wù),鼓勵模型學(xué)習(xí)變量之間的相互依賴關(guān)系,降低訓(xùn)練數(shù)據(jù)中的異常數(shù)據(jù)帶來的影響.具體來說,本文為每次訓(xùn)練的時間序列X生成一個二進(jìn)制噪聲掩碼M∈Rw×m,通過元素乘法屏蔽部分輸入數(shù)據(jù)Rw×m,并要求模型預(yù)測被屏蔽的值.整個過程直接從時間序列數(shù)據(jù)中學(xué)習(xí),不借助于任何標(biāo)簽以及先驗信息.
正常的時間序列數(shù)據(jù)中很少會出現(xiàn)突然的變化,如果數(shù)據(jù)中遮蔽序列的長度非常短,那么則可以通過復(fù)制前后的值或取區(qū)域平均值來很近似地預(yù)測.所以本文希望能夠控制遮蔽序列的長度,而不是簡單地使用某種分布來獨(dú)立地隨機(jī)設(shè)置噪聲掩碼.本文定義掩蓋的比例為r,即在每個時間步長內(nèi),平均r·m個變量的值將設(shè)置為0.本文使每個長度為w序列為0的掩碼段的長度遵循平均數(shù)為lα的幾何分布,未掩碼段的平均長度為在本文中,因為數(shù)據(jù)含有異常段,一個非常高的掩蓋比例r會使模型無法收斂,最終本文根據(jù)大量實驗結(jié)果選擇了r= 0.1,并在所有的實驗中選擇lα=3.這種輸入掩蔽模式鼓勵模型關(guān)注單個特征的前后片段,以及時間序列中其他變量的當(dāng)代值,從而對變量之間的相關(guān)性進(jìn)行建模,再結(jié)合時間維度的相關(guān)性來平滑訓(xùn)練數(shù)據(jù)中的差異.
其中Wu∈Rd×m,bu∈Rd隨著模型一起學(xué)習(xí),ut∈Rdfort∈{0,…,w}是預(yù)訓(xùn)練模塊的輸入向量,然后加上位置編碼并乘以相應(yīng)的矩陣后作為self-attention層的查詢、鍵和值.最后將編碼器的輸出向量zt∈Rd饋送到一個線性層中以對輸入向量進(jìn)行完整地預(yù)測.為了學(xué)習(xí)模型的參數(shù),本文使用均方誤差作為損失函數(shù).
值得注意的是,本文只計算每個數(shù)據(jù)樣本中被屏蔽部分的預(yù)測值和實際值的誤差,這與其他預(yù)訓(xùn)練模型[12-13]是一致的.
預(yù)訓(xùn)練模塊提取多元時間序列的密集向量表示,在本節(jié)中,本文設(shè)計了一個交互式圖神經(jīng)網(wǎng)絡(luò)用于多元時間序列預(yù)測,其從特征維度和時間維度出發(fā),分別學(xué)習(xí)多元時間序列的特征間依賴關(guān)系和時間依賴關(guān)系.
1.4.1 特征塊
從基于圖的角度,本文將每個傳感器看作圖中的單個節(jié)點.在大多數(shù)情況下,多元時間序列并沒有提供明確的有關(guān)圖形結(jié)構(gòu)的先驗信息,本文引入一個被隨機(jī)初始化的傳感器嵌入向量V={v1,…,vm}∈Rm×dv,其中vi∈Rdv表示傳感器i的特性,隨模型的其余部分一起訓(xùn)練.實際場景中,如果兩個傳感器的行為類似,那么兩個傳感器的行為也類似.理想情況下,經(jīng)過學(xué)習(xí)后的嵌入向量可以很好地表示傳感器的行為特性,故本文將這些嵌入用于計算傳感器之間行為的相似度φ,并在傳感器i與相似度最大的前k個候選傳感器之間建立有向邊.
其中j∈{1,2,…,m}?{i}表示傳感器i可以依賴的候選傳感器.
GAT是用圖進(jìn)行表示學(xué)習(xí)的最先進(jìn)的體系結(jié)構(gòu)之一.在GAT中,每個節(jié)點通過處理它的鄰居能夠?qū)θ我鈭D中節(jié)點之間的關(guān)系進(jìn)行建模.然而,GAT中的注意機(jī)制是一種受限的靜態(tài)注意力:對于任何查詢,它的鄰居節(jié)點的評分對于其他節(jié)點的分?jǐn)?shù)都是單調(diào)的,即注意力分?jǐn)?shù)的排名是不以查詢節(jié)點為條件的[9].在此基礎(chǔ)上,GATv2模型提出了一種比GAT更具表現(xiàn)力的動態(tài)圖注意力變體,即注意力分?jǐn)?shù)會隨著查詢節(jié)點的不同而變化.兩者主要的形式區(qū)別在于計算注意力的公式有所改變.
一般來說,給定一個有n個節(jié)點的圖,輸入的是一組節(jié)點表示{hi∈Rd|i∈{1,…,n}},GAT利用評分函數(shù)e對節(jié)點對進(jìn)行打分,從而避免一些GNN架構(gòu)中鄰居權(quán)重一致的問題.
其中a∈R2d′,W∈Rd×d′是可學(xué)習(xí)的,⊕表示表示兩個節(jié)點表示的連接.節(jié)點i與所有的鄰居節(jié)點計算分值之后,利用softmax進(jìn)行歸一化:
其中L表示節(jié)點i的相鄰節(jié)點數(shù).GAT計算每個節(jié)點的輸出表示如下:
GATv2指出標(biāo)準(zhǔn)的GAT的問題在于scoring function,其中的a,W是依次被用于運(yùn)算的,它們很可能會坍縮成一層的線性層.為了解決這個問題,GATv2修改了注意力中線性變換的計算順序,得到了更具表達(dá)力的注意力,具體改變?nèi)缦拢?/p>
考慮到現(xiàn)實中傳感器間的依賴關(guān)系是復(fù)雜多變的,特征之間包含更復(fù)雜的交互,故本文使用GATv2來建模傳感器間的依賴關(guān)系,消融實驗也證明了GATv2擁有更出色的表現(xiàn).
1.4.2 時間塊
時間序列是一種特殊的序列數(shù)據(jù),為了更好的利用它的特性,本文將多個T-Node節(jié)點排列成一顆深度為h的滿二叉樹結(jié)構(gòu)如圖3(a)所示,即在第h層有2h-1個T-Node節(jié)點.通過不同的層級逐漸下采樣處理,更深層級的特征將包含來自較淺層次的更精細(xì)尺度的時間信息.通過這種方式可以捕獲不同時間尺度下的長短期時間依賴關(guān)系,從而降低異常數(shù)據(jù)的影響,增強(qiáng)原始多元時間序列的可預(yù)測性.
圖3 時間塊整體架構(gòu)圖Fig.3 Temporal block overall architecture diagram
T-Node節(jié)點主要由分裂和交互學(xué)習(xí)兩個部分構(gòu)成如圖3(b)所示.首先根據(jù)下標(biāo)的奇偶性將原始序列下采樣為兩個子序列,這兩個子序列具有比原始序列更大的時間尺度,但保留了大部分信息.為了從每個子序列中提取同構(gòu)和異構(gòu)信息,本文設(shè)計了由兩個一維卷積層構(gòu)成簡單的模塊,然后通過交互學(xué)習(xí)的策略補(bǔ)償下采樣過程中的信息損失.
具體而言,首先將輸入向量根據(jù)下標(biāo)奇偶性劃分為兩個子序列兩個子序列之間的信息交流是通過對仿射變換參數(shù)的相互學(xué)習(xí)來實現(xiàn)的,交互式學(xué)習(xí)過程包括兩個步驟.
第一步,在兩個子序列上進(jìn)行縮放變換,其縮放因子是學(xué)習(xí)得到的.首先,分別使用兩個不同的一維卷積模塊將變換到隱藏狀態(tài),然后通過softmax函數(shù)進(jìn)行歸一化操作,最后分別與和執(zhí)行元素乘積.
其中,θ表示一維卷積模塊,以不同的下標(biāo)作為區(qū)分.⊙是Hadamard乘積.
特別地,與常用于時間序列建模的擴(kuò)展卷積相比,上述的體系結(jié)構(gòu)從兩個下采樣子序列中提取的基本信息,實現(xiàn)了更大的感受野.在完成上述所有的步驟之后,本文按照奇偶順序重新組合樹中所有的葉子結(jié)點,將它們串聯(lián)成一個新的序列表示,最后通過殘差連接添加到原始時間序列中.
綜上,算法1以偽代碼形式簡單的說明了PTIGNN模型的訓(xùn)練過程.
與預(yù)測的損失目標(biāo)類似,本文將時間戳t的預(yù)測值與實際值xt之間的平方偏差作為異常分?jǐn)?shù),表示模型的預(yù)測值與真實值的偏差程度,分?jǐn)?shù)越高的時間戳發(fā)生異常的可能性越大.具體來說,時間戳t的異常得分st為:
如果st超過一個固定的閾值,即認(rèn)為在t時刻發(fā)生了異常.在現(xiàn)有工作中,很多不同的閾值的設(shè)置方法被提出,如被廣泛使用的基于極值理論提出的一種自動選取閾值的方法SPOT[14].由于同一異常檢測模型在不同異常閾值下的檢測性能也不同,我們在所有可能的異常閾值范圍內(nèi)進(jìn)行網(wǎng)格搜索,并從中選取得到最優(yōu)結(jié)果.
本文采用文獻(xiàn)[15]提出的點調(diào)整方法來計算模型的性能,該方法被廣泛用于時間序列異常檢測任務(wù)的評估[5,7,16-18].在實踐中,一個指標(biāo)的異常通常會導(dǎo)致其他指標(biāo)的異常,這將在一段時間內(nèi)形成來連續(xù)的異常段.任何一個異常窗口所包含的時間戳觸發(fā)異常報警都是可以接受的.更具體地說,如果檢測到測試集中某一異常段的任何異常,則認(rèn)為該段的所有異常都可以通過該閾值檢測出來,而異常段以外的點則不做額外處理.
2.1.1 數(shù)據(jù)集
本文在廣泛的收集自現(xiàn)實世界的真實異常檢測數(shù)據(jù)集上評估文中的方法.MSL和SMAP是由NASA收集并發(fā)布的航天器數(shù)據(jù)集[19],每個數(shù)據(jù)集都有一個訓(xùn)練子集和一個測試子集,兩個測試子集都有標(biāo)簽文件,其中標(biāo)記了所有的異常.SMD[5]是一個應(yīng)用服務(wù)器數(shù)據(jù)集,是目前用于評估多元時間序列異常檢測的最大的公共數(shù)據(jù)集.它包含28個不同服務(wù)器,每個服務(wù)器有38個特征,代表服務(wù)器不同的指標(biāo)(CPU負(fù)載、網(wǎng)絡(luò)使用等指標(biāo)),其中前一半的數(shù)據(jù)用于訓(xùn)練,另一半的數(shù)據(jù)作為測試集(表1).
表1 數(shù)據(jù)集的統(tǒng)計信息Tab.1 Statistics of the data set
2.1.2 評價指標(biāo)
本文使用主流的異常檢測評價指標(biāo)Precision(P)、Recall (R)、F1-Score (F1)來評估各個模型的性能,三個指標(biāo)的值越高,表明模型性能越強(qiáng):
其中TP和FP分別代表真正檢測到的異常和錯誤檢測到的異常,F(xiàn)N指錯誤分類的正常樣本.
2.1.3 訓(xùn)練設(shè)置
本文使用PyTorch(V1.9.0與Python 3.8.10)實現(xiàn)了這些算法及其所有變體.所有的實驗都在裝有NVIDIA GeForce RTX 3080 GPU的Windows機(jī)器上運(yùn)行.本文采用PyTorch Geometric library (v2.0.1)中提供的GATv2,其是原作者公開的代碼.對于多元時間序列預(yù)測,在MSL、SMAP數(shù)據(jù)集是使用大小為50、80的滑動窗口,而SMD數(shù)據(jù)集的歷史窗口大小為100.預(yù)訓(xùn)練模塊中,模型維度設(shè)置為128,多頭注意力的頭的數(shù)量設(shè)置為8,本文使用RAdam優(yōu)化器以初始學(xué)習(xí)率0.001對模型進(jìn)行500個epoch的訓(xùn)練.對于預(yù)測模塊,時間塊中樹的高度為3,本文訓(xùn)練模型50個批次,批次大小設(shè)置為64,初始學(xué)習(xí)率為0.0002.此外,采用早停策略和dropout策略防止過擬合,兩個模塊的dropout率分別為0.1、0.4.
為了驗證本文提出多元時間序列異常檢測算法的有效性,選取如下的典型檢測算法作為對比方法:LSTM-NDT[20]、LSTM-VAE[21]、OmniAnomaly[5]、MAD-GAN[22]、GDN[6]、MTAD-GAT[7]、GReLeN[23].MTAD-GAT、GReLeN均是非常優(yōu)秀的模型如表2所示,分別在不同數(shù)據(jù)集上表現(xiàn)出次優(yōu)的性能.本文的模型具有更加出色的泛化能力,在所有數(shù)據(jù)集上一致獲得了最佳F1成績,這是其他基線無法比擬的.具體來說,我們在MSL、SMAP和SMD數(shù)據(jù)集上,與最先進(jìn)的性能相比,分別取得了2.0%、1.5%和0.8%的性能提升.從表2中,我們可以得出以下觀察結(jié)果:
表2 不同模型的性能比較Tab.2 Comparison of performance of different models
(1) LSTM-NDT在MSL與SMD數(shù)據(jù)集上表現(xiàn)最差,而LSTM-VAE在SMAP數(shù)據(jù)集上表現(xiàn)最差.這是合理的,因為LSTM-NDT僅僅考慮了單變量時間序列的時間模式,忽略了傳感器間的依賴關(guān)系,這導(dǎo)致其在含有大量傳感器時無法進(jìn)行準(zhǔn)確的預(yù)測.LSTM-VAE將LSTM和VAE進(jìn)行簡單地結(jié)合,同樣也只對時間依賴關(guān)系進(jìn)行建模,然而,它的性能在兩個數(shù)據(jù)集上明顯優(yōu)于LSTM-NDT模型,這可能是因為LSTM-VAE是一個基于重構(gòu)的模型,相對于基于預(yù)測的模型對時間序列短期的數(shù)據(jù)變化規(guī)律具有更好的捕捉能力.
(2)相反,OmniAnomaly通過隨機(jī)方法建模傳感器間的依賴關(guān)系,MAD-GAN利用對抗訓(xùn)練學(xué)習(xí)傳感器間的依賴關(guān)系,均取得較好的性能.然而它們都忽略了時間維度的低維表示,在時間依賴性建模方面表現(xiàn)不好.這兩種方法都是基于重構(gòu)的模型,在訓(xùn)練學(xué)習(xí)的過程中,它們會盡可能好的重構(gòu)窗口內(nèi)的數(shù)據(jù),而實際上,訓(xùn)練數(shù)據(jù)是含有異常數(shù)據(jù)的.
(3)與上述不同的是,GDN、MTAD-GAT以及GReLeN都是基于圖學(xué)習(xí)的異常檢測方法.GDN未考慮時間序列的時間依賴,這大大影響了其模型的表現(xiàn)能力.MTAD-GAT聯(lián)合了基于預(yù)測和基于重構(gòu)的模型,使用圖注意力網(wǎng)絡(luò)分別學(xué)習(xí)時間維度和特征維度的依賴關(guān)系.但是,它假設(shè)數(shù)據(jù)集中的所有傳感器都是相互依賴的,這不僅忽略了傳感器之間復(fù)雜的部分方向依賴關(guān)系,而且不適合許多實際情況.GReLeN著重于學(xué)習(xí)傳感器之間的潛在依賴關(guān)系,通過將變分自動編碼器與圖神經(jīng)網(wǎng)絡(luò)巧妙地結(jié)合,在兩個數(shù)據(jù)集上取得了次優(yōu)的性能.
本文的模型首先通過預(yù)訓(xùn)練提取多元時間序列的密集向量表示,降低訓(xùn)練數(shù)據(jù)中異常數(shù)據(jù)帶來的負(fù)面影響,增強(qiáng)了異常時間序列的可預(yù)測性.本文同時考慮了時間序列的特征依賴和時間依賴,而且通過了一種交互式的樹狀結(jié)構(gòu)利用了被其他模型忽略時間序列的獨(dú)特性.綜上所有因素,得以使本文的模型優(yōu)于其他模型.
為了進(jìn)一步評估本文的方法中各個組件的有效性,本文設(shè)計了幾組消融對比實驗,以觀察模型性能如何在三個數(shù)據(jù)集上下降.各個模型之間只做以下改變,其他參數(shù)均保持一致.
(1) w/o Pre-Train:移除預(yù)訓(xùn)練模塊,將原始序列投影到一個d維的向量空間之后,直接作為IGNN的輸入數(shù)據(jù).
(2) w/o Feature:移除特征塊,在IGNN中,僅學(xué)習(xí)時間序列的時間依賴關(guān)系.
(3) w/o Temporal:移除時間塊,在IGNN中,僅學(xué)習(xí)時間序列的特征依賴關(guān)系.
對于預(yù)測模塊,為了驗證圖結(jié)構(gòu)學(xué)習(xí)的重要性和交互學(xué)習(xí)的有效性,本文在以下兩種變體上進(jìn)行了實驗.
(4) w/o GATv2:將GATv2替換為GAT,用于學(xué)習(xí)傳感器間的依賴關(guān)系.
(5) w/o Inter-Learn:將公式(9)~(12)替換為如下公式:
從圖4可以看出,預(yù)訓(xùn)練模塊、特征塊和時間塊三者缺少任何一個部分都會導(dǎo)致模型性能的下降.其中,w/o Pre-Train模型的表現(xiàn)力與上一節(jié)中各個檢測方法相比并沒有明顯的優(yōu)勢,而本文完整的模型卻有顯著的提升,這是因為預(yù)訓(xùn)練模塊使時間序列盡可能的“正常”,削弱了異常數(shù)據(jù)給下游預(yù)測任務(wù)帶來的不利影響.w/o Feature模型導(dǎo)致性能下降程度最大,在SMAP數(shù)據(jù)集上尤為明顯,F(xiàn)1分?jǐn)?shù)較完整模型下降了10.65%.這表明學(xué)習(xí)特征間依賴關(guān)系可以提高了模型的性能,特別是對于特征數(shù)目較多數(shù)據(jù)集.w/o Temporal模型不考慮時間序列的時間依賴關(guān)系,也使模型性能大幅下降.w/o GATv2很好地說明了GATv2在處理多元時間序列異常檢測中的優(yōu)越性.w/o Inter-Learn也證明了時間塊中設(shè)計的交互式學(xué)習(xí)是至關(guān)重要的,它可以提高各個數(shù)據(jù)集的檢測精度.
圖4 PT-IGNN和其變體的F1分?jǐn)?shù)Fig.4 F1-score of PT-IGNN and the variants
直觀地說,時間序列異常檢測必須綜合考慮其特征間依賴關(guān)系和時間依賴關(guān)系,才能夠更好的對時間序列做出更符合正常規(guī)律的預(yù)測,從而在異常時刻得出較大的異常得分.同時,我們也可以通過別的方式來促使模型去關(guān)注正常數(shù)據(jù)的規(guī)律,比如本文所使用的預(yù)訓(xùn)練方式.這些實驗表明,移除PTIGNN模型中的任何一個組件,都會導(dǎo)致性能的下降,而綜合考慮全部組件,模型將會達(dá)到最佳性能.
在實踐中,多元時間序列中的異?,F(xiàn)象的發(fā)生是多個傳感器綜合作用的結(jié)果.異常解釋是異常檢測中的一個重要部分,它可以幫助操作者理解和處理異常情況.
與top-k推薦領(lǐng)域內(nèi)的HR指標(biāo)類似,“解釋分?jǐn)?shù)”(IPS)指標(biāo)是異常檢測領(lǐng)域最常用的異常解釋指標(biāo)之一,用來評估分段級別的異常解釋的準(zhǔn)確性[17].直觀上,IPS@P%是在分段級別評估的最高命中率的加權(quán)總和.其中,GTΦ表示導(dǎo)致GΦ內(nèi)的數(shù)據(jù)發(fā)生異常的真實原因,|GTΦ|為GTΦ中的傳感器個數(shù).
與文獻(xiàn)[5,17,24]類似,本文僅在SMD數(shù)據(jù)集上進(jìn)行異常解釋實驗,因為只有SMD提供了導(dǎo)致數(shù)據(jù)異常的真實解釋標(biāo)簽,而且標(biāo)簽沒有按照特定的順序列出,所有標(biāo)簽具有同等的重要性.圖5顯示了將P從100增大到150后,每種方法對所有探測異常的平均解釋精度.由于MAD-GAN未提供標(biāo)準(zhǔn)異常評分,因此不包括在比較中.對于所有的方法,IPS@P%隨著P的增加而增加,因為其包含了更多的真實標(biāo)簽.在不考慮P的情況下,PT-IGNN的性能優(yōu)于其他最先進(jìn)的方法,證明了本文模型的優(yōu)越性.
圖5 PT-IGNN和基線的異常解釋Fig.5 PT-IGNN and baseline anomaly interpretation
多元時間序列異常檢測可以極大地幫助人們及時發(fā)現(xiàn)和排除設(shè)備的異常行為.本文提出基于預(yù)訓(xùn)練的交互式圖神經(jīng)網(wǎng)絡(luò)(PT-IGNN),其首先通過預(yù)訓(xùn)練的策略來削弱訓(xùn)練數(shù)據(jù)中異常數(shù)據(jù)的不利影響,使模型能夠更好的學(xué)習(xí)時間序列的正常模式.然后從時間序列的特征出發(fā),通過GATv2和一種交互式的樹狀結(jié)構(gòu)分別學(xué)習(xí)特征間依賴和時間依賴關(guān)系.此外,基于通用模型的異常解釋實驗證明了PT-IGNN具有良好的異常解釋能力,這可以幫助操作者在實踐中快速定位異常的根源.