楊偉業(yè),陳 漾
(國網(wǎng)浙江省電力有限公司緊水灘水力發(fā)電廠,浙江 麗水)
我們在這篇論文中,提出了一種時間序列異常監(jiān)測的新范式——基于流形學(xué)習(xí)的多模態(tài)時間序列異常監(jiān)測方法,從一種直觀的數(shù)據(jù)對齊的角度上去實現(xiàn)時間序列異常監(jiān)測任務(wù),使得多模態(tài)的時間序列不會被當(dāng)作彼此的異常點,同時也能保證盡可能地監(jiān)測到各個模態(tài)對應(yīng)的異常點。并且使用了魯棒的時間序列異常監(jiān)測策略[3],解決了類似于GAN 中的“模式崩潰”的問題。
流形學(xué)習(xí)是表示學(xué)習(xí)中核心的一部分,流形學(xué)習(xí)有許多經(jīng)典的模型,最經(jīng)典的例如前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò),它們都有著非常強大的編碼能力以及降維能力,能夠保證將數(shù)據(jù)降維到低維空間的同時不失去一些主要的信息。transformer 是基于全局注意力機制的網(wǎng)絡(luò),不僅能夠調(diào)動計算資源的并行能力,并且擁有極高的精度,因此我們使用transformer 作為我們的特征壓縮函數(shù)。
我們的數(shù)據(jù)集稱之為“power”數(shù)據(jù)集,由水輪發(fā)電機組的94 個傳感器的溫度數(shù)據(jù)組成。一次開機所記錄的數(shù)據(jù)可以參考圖1。
圖1 power 數(shù)據(jù)集示例
可以很明顯地看到,所有的傳感器所記錄的溫度數(shù)據(jù)都經(jīng)歷了先上升后趨于平穩(wěn)的過程,其中上升的過程我們稱之為“升溫階段”,平穩(wěn)的過程我們稱之為“平穩(wěn)階段”,并且我們將每一個過程都當(dāng)作為一個“模態(tài)”,因此可以說我們的數(shù)據(jù)是“多模態(tài)”的。
在這一節(jié)中,我們將通過實驗證明一系列時間序列異常監(jiān)測sota 模型無法適用于多模態(tài)的時間序列數(shù)據(jù)集。 我們準(zhǔn)備的模型分別為 Anomaly Transformer、GANF 以 及MTGFlow, 第 一 個 基 于“association discrepency”,而后兩個都是基于概率密度,數(shù)據(jù)集均為我們自己的多模態(tài)時間序列數(shù)據(jù)集“power”。
無論是Anonaly Transformer 還是GANF 或者M(jìn)TG Flow,這三個模型均把一開始梯度大的部分,也就是“升溫階段”識別為異常的時間點,這是錯誤的。
我們經(jīng)過分析,Anomaly Transformer 僅僅使用“association discrepency”作為評判指標(biāo),而GANF 以及MTG Flow 均僅使用“negative log likelihood”作為評判指標(biāo),而“升溫階段”以及“平穩(wěn)階段”這兩個模態(tài)是屬于不同的特征空間的,因此單一的評判指標(biāo)是無法泛化在不同的特征空間上的。
接下來我們將從微分動態(tài)時間彎曲、流形對齊、整體3 個部分介紹基于流形學(xué)習(xí)的模型。
微分動態(tài)時間彎曲是在最原始的版本上考慮到時間序列的導(dǎo)數(shù),從而建模序列之間更加自然的一一對應(yīng)的關(guān)系,下面我們將簡要介紹。
給定兩個時間序列,第一個序列Q 為Q=q1,q2,...,qi,...qn,第二個序列C 為C=c1,c2,...,cj,...,cm,我們想要構(gòu)建一個n*m 的臨近圖矩陣來建模兩個時間序列之間的對應(yīng)關(guān)系,具體的操作步驟參考偽代碼1(見表1)。
表1 偽代碼1
其中distance_matrix()為計算q 與c 之間的歐幾里得距離,即distance(q,c)[i,j] = deriative()為近似計算時間序列導(dǎo)數(shù)的函數(shù),具體表達(dá)式為,對于時間序列Q 中的某一點qi:
由于這樣得到的導(dǎo)數(shù)序列比原始序列的長度少一列,所以我們在導(dǎo)數(shù)序列的最開始復(fù)制一項
為了壓縮高維數(shù)據(jù)并且保留高維數(shù)據(jù)的一些主要特征,我們使用流形對齊的策略,兩個壓縮映射函數(shù)F1(Q)和F2(C),分別將Q 和C 映射到d 維空間,并且d<<dq 且d<<dc。規(guī)定以下的損失函數(shù),使得低維特征能夠保留高維特征的主要信息:
其中,μ 為信息保留超參數(shù);W(Q,C)為時間序列Q 和C 的微分動態(tài)時間彎曲圖鄰近矩陣;W (Q) 和W(C)分別為Q 和C 的k 鄰近圖矩陣。損失函數(shù)的第一項是為了保持不同時間序列之間的關(guān)系,第二項和第三項是為了分別保持原有時間序列的幾何結(jié)構(gòu),μ 為超參數(shù),用來控制各項信息的保留程度。
在這一部分我們將之前所述的微分動態(tài)時間彎曲以及流形對齊結(jié)合起來,構(gòu)成了我們算法的主要框架,具體可以參考偽代碼2。
現(xiàn)實世界的數(shù)據(jù)集中必然包含異常的數(shù)據(jù),為了訓(xùn)練模型人工地去剔除這些異常數(shù)據(jù)是不切實際的,尤其是對于那些大型的時間序列數(shù)據(jù)集。因此,為了使得模型的訓(xùn)練更加魯棒,我們采用文獻(xiàn)[3]中提到的“梯度蒸餾”方法,非常樸素地減少了異常數(shù)據(jù)對于模型訓(xùn)練的影響,具體的做法見偽代碼2(見表2)。
表2 偽代碼2
該做法的核心思想:近似地將整個訓(xùn)練集中異常數(shù)據(jù)的占比當(dāng)作訓(xùn)練模型時一個批次數(shù)據(jù)中異常數(shù)據(jù)的占比,并且在模型訓(xùn)練梯度下降的過程中,對應(yīng)的損失函數(shù)最大的數(shù)據(jù)的梯度剔除,用剩余的認(rèn)為是正常的數(shù)據(jù)的梯度來更新模型的參數(shù)。這樣保證了大部分的異常數(shù)據(jù)不會參與到模型的訓(xùn)練過程中,從而可以從一定程度上保證數(shù)據(jù)被降維到正確的空間。
我們經(jīng)過實驗發(fā)現(xiàn),盡管經(jīng)過了梯度蒸餾,模型還是會有“欺騙”的操作:無論是正常的數(shù)據(jù)還是異常的數(shù)據(jù),模型都將其映射到低維空間中一個固定的點。生成器所生成的數(shù)據(jù)具有高度的相似性。而SNGAN[4]通過譜歸一化的操作很好地解決了這個問題,因此,我們在模型中也加入了譜歸一化層,使得正常數(shù)據(jù)和異常數(shù)據(jù)經(jīng)過降維之后有很高的區(qū)分性。
對于流形壓縮函數(shù)F1(Q)以及F2(C),我們均采用transformer 的encoder 模塊,具體的結(jié)構(gòu)如圖2 所示。
圖2 壓縮函數(shù)網(wǎng)絡(luò)結(jié)構(gòu)
對于流形壓縮函數(shù),我們使用超參數(shù)N 為6,使用Adam 作為優(yōu)化器,學(xué)習(xí)率為0.0001,采用warm up為500 個iteration,采用學(xué)習(xí)率余弦退火,基于RTX 2070super 的GPU 環(huán)境。根據(jù)訓(xùn)練集的估計,我們采用損失函數(shù)的前5%作為閾值,來進(jìn)行異常點的挑選。
基于流形學(xué)習(xí)的模型,能夠?qū)ⅰ捌椒€(wěn)階段”部分的異常點監(jiān)測出來,這驗證了我們的模型對于多模態(tài)時間序列異常監(jiān)測任務(wù)的適用性。實驗結(jié)果查看圖3,黑色加粗位置就是識別到“平穩(wěn)階段”的異常點。
圖3 流形學(xué)習(xí)模型的異常監(jiān)測
從總體上來說,我們發(fā)現(xiàn)了目前水輪發(fā)電機組溫度時序數(shù)據(jù)多模態(tài)異常監(jiān)測的難題,提出了一個基于流形學(xué)習(xí)數(shù)據(jù)對齊的時間序列異常監(jiān)測模型,驗證了升溫階段和平穩(wěn)階段的異常監(jiān)測,結(jié)合梯度蒸餾、譜歸一化的魯棒監(jiān)測規(guī)則,使得模型的訓(xùn)練不再過度依賴于純凈的數(shù)據(jù)集。
雖然我們的模型是用于多模態(tài)時間序列異常監(jiān)測的模型,但是核心的思想還是非常樸素:僅僅從數(shù)據(jù)對齊的角度去解決時間序列異常監(jiān)測的問題。模型在我們自己的power 數(shù)據(jù)集很有效果,但是現(xiàn)實中的很多時間序列數(shù)據(jù)集要比我們的power 數(shù)據(jù)集復(fù)雜的多,因此我們未來將發(fā)掘更多的多模態(tài)時間序列數(shù)據(jù)集,并且依次驗證我們的模型在這些多模態(tài)數(shù)據(jù)集上的有效性。