时序转化为图构建高效可解释的时序分析模型
本文簡(jiǎn)要介紹我們剛剛被WSDM2021會(huì)議錄用并即將發(fā)表的論文"Time-Series Event Prediction with Evolutionary State Graph"(論文地址),在文中我們提出了一種將時(shí)序轉(zhuǎn)化為圖進(jìn)行表示建模的方法。同時(shí)我們把所實(shí)現(xiàn)的方法落地為阿里云·SLS的智能巡檢服務(wù),可以應(yīng)用于大規(guī)模的時(shí)間序列異常檢測(cè)與分析,輔助運(yùn)維,運(yùn)營(yíng),研發(fā)等諸多場(chǎng)景。
整體導(dǎo)讀
文章通過真實(shí)場(chǎng)景下數(shù)據(jù)分析,發(fā)現(xiàn)了時(shí)間序列狀態(tài)之間的動(dòng)態(tài)關(guān)系對(duì)于時(shí)序事件預(yù)測(cè)很重要;
文章提出了演化狀態(tài)圖來捕獲時(shí)序狀態(tài)之間的關(guān)系,并提出了EvoNet模型對(duì)演化狀態(tài)圖進(jìn)行建模分析,在提高事件預(yù)測(cè)準(zhǔn)確度的同時(shí),也具備良好的可解釋性;
文章發(fā)表在數(shù)據(jù)挖掘領(lǐng)域頂級(jí)會(huì)議?WSDM 2021?上。
時(shí)間序列的狀態(tài)
如何對(duì)時(shí)間序列進(jìn)行有效的分析在學(xué)術(shù)界有廣泛的研究,例如異常檢測(cè)[2],語音識(shí)別[3]等。工業(yè)界也有非常多的應(yīng)用場(chǎng)景,通常需要模型在進(jìn)行判斷的同時(shí)(例如判斷異常),給出所做判斷的合理解釋,這對(duì)幫助人們進(jìn)行更好的決策有很大的作用。
可解釋的時(shí)間序列分析通常需要我們提取時(shí)間序列中代表性的特征。以前的工作很大一部分從經(jīng)典的特征工程和表示學(xué)習(xí)入手,這些方法具有很好的可解釋性,但主要依靠人的經(jīng)驗(yàn),在復(fù)雜的場(chǎng)景下很難做到通用化。近年來隨著深度學(xué)習(xí)的發(fā)展,許多工作開始嘗試一些復(fù)雜的模型方法來自動(dòng)的挖掘特征。然而,盡管這些方法取得了良好的效果,但由于模型的復(fù)雜度高以及難以對(duì)結(jié)果很好的解釋,許多方法不能很好地滿足實(shí)際工業(yè)落地的需求。
近年來,可解釋的時(shí)序建模多著眼于離散時(shí)序,在時(shí)間軸上將時(shí)序分段,然后從分段中抓出可以用于判斷異常的表示,常見的方法有:
字典方法[3],找時(shí)序分段的特征值
形狀方法[4],找時(shí)序分段的特殊波形
聚類方法[5],找時(shí)序分段的分類特征
這些方法可以有效的捕捉時(shí)序中的狀態(tài),即有表征意義的特征片段。然而,這些方式都是以靜態(tài)的方式捕捉出特征,而忽略了時(shí)間序列是動(dòng)態(tài)演變的?;谝陨媳尘盀槌霭l(fā),為了描述時(shí)間序列的動(dòng)態(tài)信息,同時(shí)讓模型學(xué)習(xí)更好的可解釋性表示,該論文嘗試捕捉時(shí)序狀態(tài)隨時(shí)間的動(dòng)態(tài)變化信息,將相鄰兩時(shí)序段之間的狀態(tài)變化用圖(Graph)這種數(shù)據(jù)結(jié)構(gòu)進(jìn)行表示。整體時(shí)序的演變轉(zhuǎn)化為動(dòng)態(tài)圖的變化,形成一種可推理可解釋的方法用于時(shí)序建模與分析。
時(shí)序狀態(tài)的識(shí)別
這里以時(shí)序聚類為例子,描述時(shí)序狀態(tài)的識(shí)別以及在時(shí)序上的映射。這里時(shí)序狀態(tài)定義為,即將離散出的時(shí)序片段聚成個(gè)特征類,抽取類的特征值。給定時(shí)序片段和時(shí)序狀態(tài),我們可以量化他們之間的距離來表示時(shí)序片段映射到時(shí)序狀態(tài)的權(quán)重,具體為:
,
其中描述時(shí)序片段與時(shí)序狀態(tài)之間的距離。簡(jiǎn)單的,可以采用歐式距離。該距離越小,則識(shí)別的權(quán)重就越大。通過上面的方法,每個(gè)時(shí)序片段可以分別以不同的權(quán)重映射到個(gè)狀態(tài)上。
時(shí)序演化狀態(tài)圖
當(dāng)我們將時(shí)序段識(shí)別成帶權(quán)重的狀態(tài)集后,一種簡(jiǎn)單的方法是將時(shí)間序列視為最可能狀態(tài)的新的序列,然后對(duì)新構(gòu)建序列的馬爾科夫性質(zhì)進(jìn)行建模分析[6]。 但是,一個(gè)時(shí)序段不只會(huì)屬于一個(gè)狀態(tài),而應(yīng)該將其識(shí)別為具有不同權(quán)重的多個(gè)狀態(tài)。因此,這項(xiàng)工作提出了一種新穎的動(dòng)態(tài)圖結(jié)構(gòu)來描述狀態(tài)之間的關(guān)系,并探索狀態(tài)的動(dòng)態(tài)變化如何揭示時(shí)間序列的演化。
論文將演化狀態(tài)圖定義為一系列加權(quán)有向圖。具體地,每個(gè)圖被表示為以表示從時(shí)序段的狀態(tài)到的狀態(tài)的轉(zhuǎn)變。圖中的每個(gè)節(jié)點(diǎn)都表示一個(gè)狀態(tài);每個(gè)邊表示從?到的轉(zhuǎn)移關(guān)系(或簡(jiǎn)稱關(guān)系),對(duì)應(yīng)的轉(zhuǎn)移權(quán)重為。這里觀察到的每個(gè)時(shí)序段的狀態(tài)權(quán)重是獨(dú)立的,那么轉(zhuǎn)移權(quán)重可以由下式計(jì)算:
這是被識(shí)別為狀態(tài)?和被識(shí)別為狀態(tài)的聯(lián)合權(quán)重。相比于構(gòu)建新序列的方法,演化狀態(tài)圖通過對(duì)每個(gè)時(shí)序段中多個(gè)狀態(tài)及其跨段的轉(zhuǎn)移關(guān)系進(jìn)行建模,沿時(shí)間軸保留了來自原始數(shù)據(jù)的更多信息。
上圖展示了一個(gè)預(yù)測(cè)網(wǎng)絡(luò)流量異常的演化狀態(tài)圖的示例,實(shí)線表示寫入流量,虛線表示讀取流量,紅色表示當(dāng)天發(fā)生異常事件。(a) 可視化了四種識(shí)別出的狀態(tài),而 (b) 呈現(xiàn)在四個(gè)不同的時(shí)間間隔(在(a)中標(biāo)記的I,II,III,IV)的演化狀態(tài)圖。 從圖中所示的案例可以看出,當(dāng)發(fā)生異常事件時(shí),狀態(tài)轉(zhuǎn)換(#2→#16)和(#2→#8)在時(shí)間I上更加頻繁。 同樣,狀態(tài)轉(zhuǎn)換(#2→#8)和(#8→#23)在時(shí)間II處很明顯。 這些轉(zhuǎn)變表明,寫入和讀取流量的不平衡(狀態(tài)8和狀態(tài)16)或流量下降(狀態(tài)23)將導(dǎo)致網(wǎng)絡(luò)異常。 在時(shí)間III,在此期間未發(fā)生異常,可以看到狀態(tài)主要停留在#2中。 然后在下一個(gè)時(shí)刻IV出現(xiàn)異常。 因此可以看到狀態(tài)轉(zhuǎn)換#2→#16的明顯增加。
時(shí)序演化狀態(tài)圖網(wǎng)絡(luò)
當(dāng)時(shí)序轉(zhuǎn)化為動(dòng)態(tài)圖·演化狀態(tài)圖之后,如何對(duì)這種動(dòng)態(tài)圖結(jié)構(gòu)進(jìn)行建模分析變?yōu)榱酥饕膯栴},受圖神經(jīng)網(wǎng)絡(luò)(GNN)的啟發(fā)[7],該文的研究者設(shè)計(jì)了兩種機(jī)制來對(duì)演化狀態(tài)圖進(jìn)行建模與分析,即局部信息聚合和時(shí)間圖傳播。
上圖說明了所提出的演化狀態(tài)圖網(wǎng)絡(luò)(EvoNet)的總體結(jié)構(gòu)。對(duì)于給定的時(shí)間序列以及事件,該文首先識(shí)別每個(gè)分段的狀態(tài)并構(gòu)造演化狀態(tài)圖。接下來,該文定義表示向量對(duì)于圖中每個(gè)節(jié)點(diǎn)的信息進(jìn)行編碼,并定義表示向量?用于編碼整個(gè)圖的信息。
基于此,如圖a,EvoNet通過消息傳遞網(wǎng)絡(luò)(message passing)[8]來聚合局部的結(jié)構(gòu)信息:
并使用循環(huán)神經(jīng)網(wǎng)絡(luò)[9] 進(jìn)一步傳播時(shí)間上的節(jié)點(diǎn)以及圖的信息:
然后,EvoNet將學(xué)習(xí)到的特征表示應(yīng)用于下游的時(shí)序任務(wù)。具體的推導(dǎo)邏輯大家可以從原文[1]中獲取,這里不做過多闡述。
特別的,在進(jìn)行時(shí)間上信息聚合的操作中,該研究者們提出在點(diǎn)到點(diǎn)建模的同時(shí),還應(yīng)關(guān)注點(diǎn)到圖的影響,即時(shí)序的演化不僅僅與狀態(tài)與狀態(tài)之間的轉(zhuǎn)變有關(guān),狀態(tài)與整個(gè)時(shí)序片段之間的關(guān)系也有影響。因此,如圖b,作者們采用層次循環(huán)神經(jīng)網(wǎng)絡(luò)機(jī)制,捕捉節(jié)點(diǎn)級(jí)別信息與圖級(jí)別信息隨時(shí)間的影響,通過有時(shí)間注意力機(jī)制(temporal attention)量化不同時(shí)間位置上影響的權(quán)重:
實(shí)驗(yàn)結(jié)果
文章對(duì)來自Kaggle的兩個(gè)公共數(shù)據(jù)集,和來自國(guó)家電網(wǎng)、中國(guó)電信、阿里云的三個(gè)真實(shí)世界數(shù)據(jù)集進(jìn)行時(shí)間序列事件預(yù)測(cè)任務(wù)。實(shí)驗(yàn)結(jié)果如下表所示:
工業(yè)落地實(shí)踐
該文提出的算法已落地為阿里云·SLS的時(shí)間序列智能巡檢服務(wù)。該方法可以提供大規(guī)模秒級(jí)別的實(shí)時(shí)異常檢測(cè),并給出異常判斷初步解釋,輔助于運(yùn)維,運(yùn)營(yíng),風(fēng)控等諸多場(chǎng)景。詳情請(qǐng)見《阿里云SLS·機(jī)器學(xué)習(xí)服務(wù)》。下面展現(xiàn)該文所列舉的一個(gè)例子:
如圖所示,圖a 展現(xiàn)了云服務(wù)主機(jī)(ECS)監(jiān)控下的每秒CPU利用率。紅色表示1分鐘內(nèi)有異常。這個(gè)例子中設(shè)定了10個(gè)狀態(tài)以構(gòu)建演化狀態(tài)圖,并可視化了每個(gè)時(shí)間位置的時(shí)間注意力分?jǐn)?shù)。
1.時(shí)間注意機(jī)制的有效性:如圖b所示,熱力圖可視化了不同時(shí)間位置的注意力得分。我們可以看到注意分?jǐn)?shù)成功地突出了圖a中異常的位置。
2.演化狀態(tài)圖的可解釋性:如圖c-e所示,我們可以看到,時(shí)間位置I的圖中有一個(gè)主要的轉(zhuǎn)移#2→#4→#0,而在時(shí)間位置II的圖中則是#3→#5。請(qǐng)注意,II之后立即發(fā)生異常。當(dāng)我們?cè)跁r(shí)間軸上匯總所有演化狀態(tài)圖時(shí)(圖d)可以發(fā)現(xiàn),過渡#2→#4→#0是圖中的主要路徑,而#3→#5是次要路徑。這些觀察結(jié)果表明,間隔II中發(fā)生的轉(zhuǎn)移#3→#5是異常的。
如圖e所可視化的不同狀態(tài)的平均曲線,可以看到,轉(zhuǎn)移#2→#4→#0表示服務(wù)進(jìn)程,即CPU利用率從0.25上升到0.75,并在保持一段時(shí)間后下降。相反,轉(zhuǎn)移#3→#5表示CPU利用率上升到0.5,然后立即下降。這些觀察結(jié)果表明,這種異??赡苁怯蒀PU的故障引起的。
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的时序转化为图构建高效可解释的时序分析模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信不再提供小程序打开App?借助H5为
- 下一篇: 2020亚太内容分发大会 阿里云荣获“边