?

基于組合注意力模型EAAT的云KPI數據預測方法

2023-12-16 04:48丁建立龔子恒
南京信息工程大學學報 2023年6期
關鍵詞:時序集群預測

丁建立 龔子恒

云KPI數據;時序預測方法;經驗小波變換;組合注意力模型;雙向長短時記憶網絡

0 引言

近十年來,基于預測和變換的時間序列的機器學習方法引起了科學界和工業界的廣泛關注,其中廣受關注的時間序列應用之一是云計算集群的KPI(Key Performance Indicator,KPI)指標的預測.云集群的KPI指標指云計算集群中一些關鍵的監控指標[1],比如承擔云計算集群主要計算功能和業務供給的服務器、集群的CPU和內存資源,本質上屬于時間序列數據.隨著數據中心對云計算集群環境安全性的要求日益增加,對這些KPI數據的預測準確度的要求也隨之提高,如何準確預測云計算集群中的KPI數據的動向和變化,從而提升云計算集群的高可用性,是云計算集群高效運維需面對的問題[2].云計算集群的KPI數據變化多樣,特征各不相同,線性、平穩性以及周期性常常針對不同的數據集單獨分析,但綜合分析后的預測準確性并不理想[3].傳統模型存在各種欠缺(表1),急需一種能提高預測準確性的通用型綜合分析方法.

表1 傳統模型優缺點對比

2013年,Gilles等[11]在降低高噪聲電信號數據的復雜度時首次提出經驗小波變換EWT(Empirical Wavelet Transform,EWT),將數據分解成各個內在模態函數IMFs(Intrinsic Mode Functions,IMFs),大大提高了數據處理能力.為提高云計算集群中CPU和內存使用率等關鍵時序數據的預測精度,本文基于經驗小波變換進一步處理得到云KPI數據的低中高頻IMFs,根據分解得到的低中高頻IMFs特征,分別運用ARIMA[4]、Autoformer[9]、TPA-BiLSTM[10](Temporal Pattern Attention-Bidirectional Long Short-Term Memory)模型對不同IMFs進行預測,建立一種應用性更強、預測精度更高的時序數據預測算法EWT-ARIMA-Auto-TPA(EAAT)方法.本文創新點如下:

1)在EWT基礎上提出3分類模型,使用EWT方法將原始序列數據分解為低中高頻3類IMFs,根據3類IMFs不同的特點,選用最合適的預測模型進行預測.

2)將中高頻IMFs分成中頻和高頻分開討論:針對高頻IMFs中噪聲較多的問題,引入TPA模型,增強模型對特征的處理能力,并與BiLSTM相結合,在噪聲較多的數據中也能有更好的結果;在中頻IMFs中引入最新的基于深度分解架構和自相關機制的Autoformer模型進行分析.

3)將注意力機制模型Autoformer加入組合模型,規避了其在應對噪聲較多、周期較差的數據集上的不利情況,將其長處應用于有一定周期和規律的中頻IMFs中,進一步提高了預測精度.

本文內容總體安排如下:首先分析已有分類集成模型的優缺點,說明2分類組合模型的局限性,以及3分類等組合模型的必要性;然后提出基于EAAT方法的模型架構;最后在谷歌和亞馬遜的4個數據集上驗證了結果.無論數據是否具有周期性或者穩定性,EAAT比單個模型在效果上均有較大提升,比EWT-IF-LSTM模型在均方根誤差上最大降低了11.26%,驗證了EAAT效果確實好于傳統的2分類模型,如EWT-ARIMA-LSTM、EWT-ARIMA-TPA.

1 組合注意力模型EAAT預測方法

1.1 EAAT的構建背景

預測建模技術已被廣泛用于云計算集群KPI數據的預測之中,如自回歸移動集成平均模型(ARIMA)[4]、循環神經網絡(RNN)[12]、長短期記憶網絡(LSTM)[5]等.文獻[6-7]將Transformer類注意力模型引入時間序列預測;Zhou等[8]提出稀疏注意力機制Informer,在長時序數據預測中取得了較好的效果;Wu等[9]提出自相關機制Autoformer,結合數據分解機制,在周期性和趨勢性較好的長時序數據預測上于2021年取得了最佳效果.但單個模型常常難以從非線性和非平穩數據中提取特征,很難適應復雜多變的時序數據,容易發生局部優化和過擬合等現象,其準確性往往得不到保證.因此,很多研究利用集成學習的方法對單個模型進行組合,從而提高對云計算集群KPI數據預測的準確率.Baig等[13]將工作負載分為線性和非線性兩種類型,并應用ARIMA和RNN的組合模型進行分類預測;Bi等[14]專注于識別和預測云負載中的模式問題,提出一種基于資源使用情況的聚類方法來識別周期性任務和非周期性任務.但是上述工作只考慮數據的線性或者周期性,并沒有進一步對數據分解和分析以挖掘更深層的特征,對于非線性、非平穩、噪聲較高的數據,ARIMA和LSTM等2分類組合模型的準確率難以進一步提高.為了對數據進一步分解和研究,文獻[15]提出EMD-CNN-BiLSTM的混合預測模型用于風力數據的預測,文獻[16]提出EMD-ARIMA的混合預測模型用于水流數據的預測,文獻[17]用EWT將數據分解為低頻和中高頻的IMFs,用LSTM或GRU模型對IMFs進行預測,并最終合成,從而提高了預測效果.上述模型使用EMD(Empirical Mode Decomposition,EMD)或EWT對數據分解,降低了數據復雜程度以提高效果,區分了低頻和中高頻IMFs,但沒有用多種模型進行組合和嘗試.同時,低中高頻IMFs本身具有不同的特點,中頻IMFs沒有低頻IMFs那么大的波動和趨勢性,也沒有高頻IMFs中那么多噪聲和不確定信息,可以單獨對其進行預測.因此,用EWT進行數據分解,并運用多種模型分類處理低中高頻IMFs的方法具有一定的可行性.本文用EWT對時間序列數據進行處理,分解為低中高頻3類IMFs,然后用最合適的模型進行預測.低頻IMFs噪聲較小、波動較大、趨勢較好,適宜用傳統的ARIMA模型進行預測;中頻IMFs可以看出原數據中短期的變化規律,有一定的周期性和規律性,適宜用針對周期規律的Autoformer進行提取和預測;高頻IMFs有大量的噪聲和隨機性因素,適宜用TPA-BiLSTM進行處理和預測.

1.2 基于經驗小波變換EWT的云KPI提取和分析

云集群KPI數據如CPU和內存等,缺少周期性和規律性并存在大量噪聲.為了準確地預測非平穩數據,必須首先對非平穩數據進行分解.在已有研究[6]中,經驗模態分解(EMD)在處理非線性和非平穩時間序列方面得到了廣泛的應用.但EMD等方法分解得到的分量過多且伴隨模態混亂問題.與其他方法相比,EWT的主要優點是能夠自適應地分割時序數據,傅里葉頻譜將信號直接分解成頻率分量,并在一段時間內以頻域分布模式表示數據.EWT方法能通過序列分解方式,有效地獲取云平臺中各種類型的KPI時間序列的內在模態變量IMFs,因此具備了通用性和普適性.在應用預測模型之前,EWT通過分解和提取云服務機群KPI時序數據的信息來獲得更高的預測精度.

(1)

(2)

其中,函數α(γ,ωn)=β((1/2γωn)(|ω|-(1-γ)ωn)),函數β(x)一般需要符合以下條件:

(3)

一般取β(x)=x4(35-84x+70x2-20x3).

式(1)、(2)中γ是為了確保2個連續的變換中不存在重疊的分量,取

(4)

(5)

(6)

(7)

(8)

對處理后的信號進行重構得到逆經驗小波變換IEWT的函數:

(9)

實驗中對每個分量的預測結果記為低頻預測結果f0′(t)和中高頻分量fk′(t),最終預測結果為f′(t).如果IMF數量k取較大值時,幾個中頻信號會存在數據近乎相似、趨勢相仿而信息較少的情況.本文實驗中k取值為3,分解出的3個IMF分量f0(t)、f1(t)、f2(t)分別記為低頻、中頻、高頻分量.

如圖1中的Google集群2011數據集中某合成的時序數據(編號為mean CPU usage rate),通過對其進行EWT分解可以得到3個IMF分量,其中第1個分量IMF1反映原信號的低頻部分,包含原信號的長期變化趨勢等信息;第2個IMF2分量反映原信號的中頻部分,可以看出原信號中短期的變化規律;噪聲及某些突變部分在IMF3的高頻分量中被體現出來.

圖1 谷歌某數據集進行EWT變換的結果Fig.1 Results of empirical wavelet transform for a data set in Google

圖2 LSTM原理Fig.2 Schematic diagram of LSTM

1.3 BiLSTM結合TPA模型的云KPI高頻信息處理

長短時記憶LSTM(Long Short-Term Memory)網絡是常用的改進的RNN網絡[5],通過網絡的記憶能力可將信息保存很長一段時間.LSTM在一個獨立重復單元中存在4個運算單元.對于每一個輸入的X,LSTM需要決定來自之前細胞狀態的多少信息應該被移除.這一功能由Sigmoid函數實現,也被稱為“遺忘門”,表示當前重復模塊的細胞狀態,作為輸入傳遞給下一個重復模塊.對于每個細胞狀態,接受當前細胞,遺忘層輸入一個介于0和1之間的值,表示將要從細胞狀態中移除的信息量.LSTM網絡決定需要包含在細胞狀態中的新信息的數量.將Sigmoid層和tanh層相乘得到的值與遺忘層計算得到的細胞狀態相加,最后每一個單元格都要輸出一個值,通過使用另外一個Sigmoid層和tanh層得到.

LSTM的最終輸出由輸出門和單元狀態決定:

ht=ottanh(ct),

(10)

其中,初始化時c0=0,且h0=0.LSTM的輸入單元為Xt,輸出單元為ht.

傳統的LSTM有一個缺點,它只能學習時間序列數據的前一個上下文,不能學習同一序列數據的后向上下文信息,也不能編碼從后向前的信息.而BiLSTM 通過將時間序列反向,由正反雙向的LSTM組成,能夠更有效地捕捉時間序列雙向的變化.BiLSTM輸出表達式為

ht=concat(htf,htb),

(11)

式中:ht表示BiLSTM 的隱藏狀態向量;concat表示在輸出維度進行拼接操作;htf,htb分別表示前向和后向LSTM的隱藏狀態向量.

對于LSTM網絡而言,每個時刻的輸入都是當前時間所有行為組成的向量,使用BiLSTM的目的在于能夠捕獲不同序列方向的更多的特征信息.通過2個LSTM層以相反的方向處理數據,使得BiLSTM可以同時捕捉正向序列信息和反向序列信息.本文采用BiLSTM 結合TPA模型對云KPI數據的高頻信息進行預測.

EWT分解得到的高頻信號中有較多噪聲以及與時間無關的干擾信息,需要一種在數據沒有較好的周期性和趨勢性時依然能獲得較好效果的模型.

傳統注意力模型如CNN+LSTM+Attention[18]等直接對原始數據的時間序列運用CNN完成特征提取,或者僅僅對單個序列的時序特性加以提取,常常無法兼顧不同序列之間各種錯綜復雜的關系.而在TPA-BiLSTM[17]中使用BiLSTM隱狀態矩陣的行變量,則涵蓋了在各個時間步各個時序下的復雜關系,比傳統CNN-LSTM多用一層一維卷積層,從而對隱狀態矩陣的行向量做特征提取,獲得時序關系和各個變量間更深層的聯系.在最后注意力加權的過程中,注意力向量是對每個有時間特征信號的時間模式矩陣的行向量加權和,使得TPA能從各個時間步中選取最關鍵的信息.在處理信噪比較高且時間步與不同序列間還存在著非平穩非線性的復雜關系的問題時,TPA比傳統模型有更好的效果.TPA-BiLSTM的工作流程如圖3所示.

對輸入序列{Xt}用BiLSTM處理,所得向量ht-w-ht表示BiLSTM對不同時間步輸入所得到的隱藏狀態向量,w即為時序數據長度.定義隱狀態矩陣H=(ht-w,ht-w+1,…,ht-1),其行向量代表每個變量所有時間步下的狀況.圖3中隱狀態矩陣H的框表示不同的一維卷積核,利用一維卷積沿著H的m個特征卷積,提取可變時間模式矩陣HC:

(12)

式中:Cj表示第j個長度為T的濾波器;T表示最大長度,w為其通常取值;*表示卷積運算.然后定義用注意力機制加權從而計算相關性:

(13)

(14)

(15)

式中,n表示輸入變量x的特征數.

將vt與ht線性映射后相加獲得最終預測值:

yt-1+Δ=Wh′h′t=Wh′(Whht+Wvvt),

(16)

式中:yt-1+Δ表示最終預測值;h′為用于生成最終值的中間變量;Δ表示任務預測的時間尺度;Wh′,Wh和Wv為對應變量的不同權重矩陣.

1.4 基于Autoformer分解架構的云KPI中頻信息處理

Autoformer結合自相關機制和獨特的時序分解機制[10],對傳統注意力類模型在時序預測模型中進行了升級并取得2021年最好的效果.一方面,自相關機制計算原始序列和滑動各個步長后序列的自相關系數并做出選擇,基于周期性找到子序列之間的相關性,從傳統注意力的點到點的相關度上升到子序列和子序列的相關度,從而提高計算效率和信息利用率,且具有較低復雜度O(LlogL) 的輸出.另一方面,Autoformer在編碼器部分的主要目的是對復雜的周期項進行建模,通過多層的時序分解模塊,基于滑動平均思想,不斷從原始序列中提取周期項和趨勢項,用于解碼器預測未來的信息.編碼器部分輸入原始時間序列數據,解碼器部分的輸入包括趨勢項和周期項兩個部分.趨勢項由兩部分組成:一部分是通過原始數據經過時序分解出得到的趨勢項,等同于用原始數據近期的趨勢項作為解碼器的初始化;另一部分是0填充的,即尚未得到的未來序列的趨勢項.周期項的組成和趨勢項類似.

Autoformer的解碼器中對趨勢項和周期項分別處理:針對周期項,通過自相關機制與序列的周期特性結合從而聚合有相似特征的子序列;針對趨勢項,通過信息累積的方法逐步提取出趨勢項信息.

圖4為Autoformer模型工作流程.因為對時序數據周期和趨勢的強行提取和加入,使得Autoformer在數據量大,且有季節性和周期性的長時序數據預測中效果較好,而在沒有周期和規律的數據中效果較差.EWT分解得到的中頻信號具有一定的周期性和規律性,因此,本文對中頻部分采用Autoformer的序列分解架構進行預測.

圖4 Autoformer的流程和機制Fig.4 Processes and mechanism of Autoformer

1.5 EAAT總體預測流程

根據EWT與ARIMA、Autoformer、TPA-BiLSTM等模型各自的優勢,將這3個預測模型相結合,以進一步提高數據集數據處理的準確性.該方法的具體操作如下:

第1步:輸入云計算集群中某段待預測的KPI關鍵時序信息,對其進行EWT變換和分解,得到3個IMFs,分別涵蓋了低中高頻信息.噪聲和隨機信息主要集中在高頻IMFs中,中頻IMFs體現短期有周期和規律性的變化,低頻IMFs反映原始數據的長期變化和主要趨勢.

第2步:對噪聲較多的中高頻IMFs使用iForest和線性插值等方法清除異常值,并對清除后的空缺部位進行數據填充,從而確保中高頻IMFs的數據位數保持相對恒定.

第3步:對上面預處理后的低中高頻IMFs分別采用ARIMA、Autoformer、TPA-BiLSTM模型進行模擬訓練和檢測.依據實際狀態調節模擬中的各項參數,以獲得最佳預期狀態.

第4步:將各IMFs計算后的預測結果,經過對EWT的逆變換IEWT加以合并,最后得出該KPI時序的預測結果.

EAAT預測方法的整體框圖如圖5所示.

圖5 基于EAAT的組合模型預測方法Fig.5 Combined model forecasting method of EAAT

2 實驗與評價

2.1 數據集準備和參數設置

實驗數據集選用谷歌和亞馬遜兩大云平臺所監控采集的KPI時序數據集.

谷歌集群數據集2011(https://github.com/google/cluster-data)從2011年5月1日19時開始記錄29 d的CPU資源利用率和每個任務在大約12 500 臺計算機上的內存使用情況.取其中task usage數據集,分別提取mean CPU usage和 assigned memory usage這兩個KPI指標構成新的數據集,按5 min間隔進行采樣,按照任務開始時間進行聚合,數據體現一個數據中心一段時間內總體CPU和內存使用率的變換情況,分別記為第1組和第2組數據集.

亞馬遜KPI監控數據集(https://github.com/numenta/NAB/tree/master/data/realAWSCloudwatch)來自于美國AWS的云監控CloudWatch所采集的云服務器的基礎資源指標數據,共計17種不同類別KPI的監控數據,涵蓋了云服務器的CPU使用率、磁盤I/O以及彈性負載均衡(ELB)的請求數等關鍵監控指標.為了和文獻[15]進行對比,本文選用KPI編號為ec2_cpu_utilization_53ea38和ec2_cpu_utilization_5f5533的監控CPU利用率的數據集,分別記為第3組和第4組數據集.

對上述4組實驗數據集進行切割,其中前80%作為訓練集,后20%作為測試集.數據集長度代表有多少個時刻的數據,CPU和內存的使用率數據都是百分比數據,切割后的數據集長度如表2所示.

表2 實驗用數據集信息

EAAT模型選擇Adam作為優化器,ReLU函數作為各個神經網絡的激活函數,學習率設置為0.001,滑動窗口長度為5.經過多次實驗和調整后,ARIMA選擇五階差分回歸,TPA-BiLSTM神經網絡層設置32個隱層節點,Autoformer和TPA-BiLSTM選擇batch_size為32,輸入長度為80個歷史數據,輸出長度為20個數據,即每次用前80個時刻的數據對后20個時刻的數據進行預測,然后對每個重復預測的時刻取平均值作為預測結果.

2.2 評價指標

本文使用以下3個模型預測量化指標:均方根誤差(RMSE)、平均絕對誤差(MAE)以及平均絕對百分比誤差(MAPE)評估算法性能:

(17)

(18)

(19)

2.3 實驗結果與分析

對4個數據集進行ADF校驗,一般當p值大于0.05時,可以認為序列是不平穩的.實際校驗數值如表3所示.數據集1、4不太平穩,數據集2、3相對平穩;低頻IMFs中多數都不平穩,但具有較好的趨勢性,在中高頻IMFs中數據基本都是平穩的.

表3 數據集ADF檢測的p值

將本文模型和傳統的單一預測模型LSTM、TPA-LSTM、Autoformer以及EWT-LSTM、EWT-ARIMA-LSTM、EWT-ARIMA-TPA作為實驗的對比對象,其中EWT-ARIMA-LSTM和EWT-ARIMA-TPA指中低頻IMFs上使用ARIMA模型、高頻IMFs分別使用LSTM或TPA的模型.測試集上的各模型預測結果如圖6和圖7所示,評價指標結果如表4—7所示,最優結果以加粗說明.

圖6 兩個谷歌數據集的測試集上的預測結果Fig.6 Prediction results on the test set of two Google datasets

圖7 兩個亞馬遜數據集的測試集上的預測結果Fig.7 Predicted results on test set of two Amazon datasets

表5 各模型在數據集2上的效果

2.3.1 谷歌數據集的預測結果

處理后的谷歌兩個數據集包含一個集群中所有機器的CPU和內存使用率的變化情況.由圖6所示可知,在谷歌數據集的測試集上,EAAT方法整體擬合程度和穩定程度都略優于其他組合模型,遠勝于單一的非組合模型.

兩個谷歌數據集聚合了一個集群中所有機器的信息,數據更不平穩,整體誤差較大.由表4、5可知:在3個評價指標上,EAAT方法都優于EWT-LSTM模型;對比EWT-ARIMA-TPA模型,EAAT方法在兩個數據集上RMSE和MAPE指標中效果更優.

2.3.2 亞馬遜數據集的預測結果

處理后的亞馬遜兩個數據集包含一個集群中所有機器的CPU和內存使用率的變化情況.由圖7所示可知:在相對平穩的數據集3(53ea38)中,EAAT方法在穩定性和趨勢性把握上相對最好;在數據集4(5f5533)中,因為該數據集的特殊情況,測試集數據比起訓練集中的數據有一段陡升,所以實際值遠遠高于預測值,所有模型的誤差都相對較大,此時EAAT依舊能在整體上優于其他模型,并在3個評價指標上取得了最好的結果(表6、7).

表6 各模型在數據集3上的效果

表7 各模型在數據集4上的效果

由實驗結果可見:EAAT方法在4個特征各不相同的數據集中,RMSE和MAPE指標均表現最佳,MAE指標也表現較好;在相對不平緩、誤差較大的數據集1和4中,EAAT方法效果提升更加明顯.因此,EAAT方法可以有效提高對時間序列的預測的準確率,且具有廣泛的適用性.

3 結束語

本文通過EWT將到云KPI數據分解成低中高頻3類IMFs,分別運用ARIMA、Autoformer、TPA-BiLSTM模型對低中高頻IMFs進行預測,再經過逆變換IEWT加以合并,最后得出該KPI時序的預測結果,即EAAT預測方法.本文運用EAAT預測方法對從谷歌和亞馬遜服務器資源負載數據提取出的CPU負載時間序列數據進行了預測,結果表明,與單一ARIMA、Autoformer和TPA-LSTM模型預測相比,EAAT在3個評價指標上均有顯著提升,預測效果更佳,在同一數據集中,比EWT-IF-LSTM模型性能更優,驗證了EAAT方法的先進性.

猜你喜歡
時序集群預測
無可預測
選修2-2期中考試預測卷(A卷)
選修2-2期中考試預測卷(B卷)
基于Sentinel-2時序NDVI的麥冬識別研究
海上小型無人機集群的反制裝備需求與應對之策研究
一種無人機集群發射回收裝置的控制系統設計
基于FPGA 的時序信號光纖傳輸系統
Python與Spark集群在收費數據分析中的應用
不必預測未來,只需把握現在
勤快又呆萌的集群機器人
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合