朱 江,潘成勝,孔志翔,石懷峰,
(1. 南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇 南京210044;2. 南京理工大學(xué)自動(dòng)化學(xué)院,江蘇 南京210094)
網(wǎng)絡(luò)流量預(yù)測是網(wǎng)絡(luò)管理和規(guī)劃的重要依據(jù)。準(zhǔn)確的流量預(yù)測能夠幫助管理者提前制定網(wǎng)絡(luò)資源分配策略,有效解決即將到來的擁塞事件[1][2]。因此,建立準(zhǔn)確的流量預(yù)測模型具有重要的實(shí)際意義。
現(xiàn)有網(wǎng)絡(luò)流量的預(yù)測方法可總結(jié)為兩類:適用于線性系統(tǒng)預(yù)測的統(tǒng)計(jì)方法和非線性預(yù)測系統(tǒng)的機(jī)器學(xué)習(xí)方法。典型的時(shí)間序列預(yù)測模型有自回歸滑動(dòng)平均(ARMA)和以它為基礎(chǔ)組合改進(jìn)的模型。例如:Guo等[3]提出利用乘性季節(jié)ARIMA模型進(jìn)行移動(dòng)通信流量預(yù)測。但是,網(wǎng)絡(luò)的發(fā)展導(dǎo)致網(wǎng)絡(luò)流量的復(fù)雜性及突發(fā)性愈發(fā)加強(qiáng),傳統(tǒng)的泊松分布、高斯分布等線性模型已不能滿足現(xiàn)代網(wǎng)絡(luò)流量的特點(diǎn)[4]。隨著人工智能的發(fā)展,出現(xiàn)了基于機(jī)器學(xué)習(xí)算法的支持向量回歸(SVR)[5]、極限學(xué)習(xí)機(jī)(ELM)[6]、人工神經(jīng)網(wǎng)絡(luò)(ANN)等非線性模型。前兩個(gè)方法雖預(yù)測效果不錯(cuò),但SVR模型的好壞太依賴于核函數(shù)的選取,ELM模型訓(xùn)練精度的提高完全依賴于隱藏層節(jié)點(diǎn)數(shù)的增加、且模型穩(wěn)定性差。Nipun等[7]提出利用LSTM預(yù)測網(wǎng)絡(luò)流量,LSTM有一定解決RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))長期依賴的能力。但隨著時(shí)間序列的過長,輸入信息的變多,單一的LSTM模型訓(xùn)練難以收斂至全局最優(yōu),于是Li[8]等提出CNN融合LSTM的模型進(jìn)行預(yù)測。CNN能將時(shí)間序列的高維特征提取出來,LSTM再對所提取的高維特征進(jìn)行流量的預(yù)測。但是,對時(shí)間序列的特征而言,不是每個(gè)特征的重要程度都一樣,網(wǎng)絡(luò)流量突變點(diǎn)附近的特征可能比平穩(wěn)區(qū)域的特征更加重要[9]。針對不同時(shí)序特征的重要度不同,有專家提出利用注意力機(jī)制(Attention)[10]解決此類問題。注意力機(jī)制在機(jī)器翻譯、圖像生成描述等領(lǐng)域具有很好的效果[11],對于感興趣的部分往往會分配大量的注意力,獲得更大的權(quán)重,從而達(dá)到優(yōu)化模型的效果。
由于網(wǎng)絡(luò)流量在不同的時(shí)間尺度下具有長相關(guān)、混沌等特性[12-14],傳統(tǒng)的網(wǎng)絡(luò)流量預(yù)測模型無法有效提取流量的這種多分形特性,因此需要將不同特性的流量分量從數(shù)據(jù)中分離出來再分別進(jìn)行預(yù)測。利用Prophet模型可將時(shí)間序列分解為多層的能力,本文提出一種基于Prophet融合粗細(xì)粒度特征提取的神經(jīng)網(wǎng)絡(luò)流量預(yù)測模型,利用Prophet模型將流量序列分解成非線性項(xiàng)及附加項(xiàng)兩個(gè)分量。由于Prophet模型相較于LSTM而言對時(shí)間序列的季節(jié)性、假期性更為敏感,擅長處理具有大異常值和趨勢變化的日常周期數(shù)據(jù)[15][16]。所以對附加項(xiàng)建立Prophet模型,對非線性項(xiàng)建立CNN和基于Attention的LSTM模型進(jìn)行預(yù)測。其中,CNN提取序列顯著細(xì)粒度特征,基于Attention的LSTM對特征的維度使用Attention(Dimensions Attention)提取序列粗粒度特征,從而實(shí)現(xiàn)粗細(xì)粒度特征提取的融合,并給重要的特征分配更多的權(quán)重以提高其對結(jié)果的影響。最后將兩各模型預(yù)測出的結(jié)果進(jìn)行相加得到網(wǎng)絡(luò)流量的預(yù)測值。
基于Prophet模型,本文提出一種融合多粒度特征提取的神經(jīng)網(wǎng)絡(luò)PFMGNet(Prophet Fusion of Multi-grained Network)預(yù)測模型,其模型框架如圖1所示。
模型共由四部分組成,詳細(xì)介紹如下:
1)首先采用Prophet模型的可分解方法,將網(wǎng)絡(luò)流量歷史數(shù)據(jù)y(t)分解成趨勢項(xiàng)g(t),隨機(jī)項(xiàng)ε(t),季節(jié)項(xiàng)s(t)和節(jié)假日h(t),在本文中,前兩項(xiàng)稱為非線性項(xiàng)A(t),后兩項(xiàng)稱為附加項(xiàng)D(t)。
2) 將附加項(xiàng)D(t)通過Prophet模型預(yù)測得到t+i這段時(shí)間內(nèi)的預(yù)測值D(t+i),其中i=1,2,…,N。
3) 將非線性項(xiàng)A(t)通過PFMGNet模型預(yù)測得到預(yù)測值A(chǔ)(t+i),其中i=1,2,…,N。CNN能夠提取序列的細(xì)粒度特征,基于Attention的LSTM提取隱藏在細(xì)粒度特征中的粗粒度特征,同時(shí)能夠有效避免因步長過長造成長期依賴的問題。
4) 將2)、3)中的結(jié)果相加得到最終的網(wǎng)絡(luò)流量預(yù)測結(jié)果:
y(t+i)=D(t+i)+A(t+i)i=1,2,…,N
Prophet是一種新型的預(yù)測模型,擅長處理具有大異常值和趨勢變化的日常周期數(shù)據(jù),其擬合程序運(yùn)行速度極快。Prophet模型總體運(yùn)行過程如圖2所示,通過建模與評估模型兩個(gè)模塊的循環(huán)迭代最終優(yōu)化出結(jié)果。
Prophet模型可將序列分解成三個(gè)函數(shù),其中ε(t)為隨機(jī)項(xiàng)。
y(t)=g(t)+s(t)+h(t)+ε(t)
(1)
式(1)中g(shù)(t)為趨勢項(xiàng),用來表示時(shí)間序列的非線性性趨勢,函數(shù)表達(dá)式如式(2)所示
(2)
其中,C表示模型容量,k、b分別表示增長率和偏移量,隨著t的增長模型趨向于C。
式(1)中s(t)為季節(jié)項(xiàng),用來表示時(shí)間序列的周期性變化(例如日季節(jié)性、周季節(jié)性),函數(shù)表達(dá)式如式(3)所示
(3)
其中,P為目標(biāo)序列的周期,cn為要估計(jì)的系數(shù)參數(shù),服從cn~Normal(0,σ)分布。
式(1)中h(t)為假期項(xiàng),表示假期等特殊因素對時(shí)間序列造成的影響,函數(shù)表達(dá)式如式(4)所示
(4)
其中,Di表示假期i對應(yīng)的日期,Z(t)表示時(shí)間t是否是假期,是為1,不是為0。參數(shù)k服從k~Normal(0,v),v越小則模型適應(yīng)波動(dòng)的能力越小,反之越大。
1D-CNN是用于處理序列數(shù)據(jù)的一種特殊神經(jīng)網(wǎng)絡(luò)。與2D-CNN不同的是,1D-CNN的卷積核只需朝著一個(gè)維度滑動(dòng)進(jìn)行卷積。卷積層可以通過訓(xùn)練得到滿足損失函數(shù)最小的一組最優(yōu)卷積核,利用卷積核實(shí)現(xiàn)自動(dòng)特征提取。池化層能有效減少模型參數(shù),提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,并且可以防止模型過擬合,因此在此部分不使用丟棄算法(Dropout)。卷積層與池化層的堆疊形成深度網(wǎng)絡(luò)結(jié)構(gòu),逐層提取高維序列的特征。
為了解決梯度下降和梯度爆炸的問題,LSTM模型在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中對循環(huán)層進(jìn)行改進(jìn),使用輸入門、遺忘門和輸出門來控制記憶過程。這是一種特殊的時(shí)間遞歸網(wǎng)絡(luò)模型,適合處理和預(yù)測時(shí)間序列[17]。由于網(wǎng)絡(luò)流量是時(shí)間序列且序列之間的信息是相互關(guān)聯(lián)的,因此選用LSTM模型學(xué)習(xí)序列的上下文信息。
注意力機(jī)制(Attention)通俗而言就是對模型感興趣的部分分配更多的權(quán)重。在時(shí)間序列的預(yù)測問題上,不是每個(gè)特征的重要程度都一樣,網(wǎng)絡(luò)流量突變點(diǎn)附近的特征可能比平穩(wěn)區(qū)域的特征更加重要。Attention的任務(wù)是對于LSTM網(wǎng)絡(luò)得到隱層輸出序列a(t),根據(jù)權(quán)重分配計(jì)算不同特征向量對應(yīng)的概率,不斷更新迭代出較優(yōu)的權(quán)重參數(shù)矩陣α(t),將其與特征向量a(t)加權(quán)求和后作為Attention的輸出,最后通過全連接層計(jì)算出預(yù)測的結(jié)果?;谧⒁饬C(jī)制的LSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。其中,x(t)表示輸入序列,a(t)表示學(xué)習(xí)得到的輸入序列x(t)的特征,α(t)表示各特征的注意力權(quán)重,y(t)表示輸出結(jié)果。
圖3 基于Attention的LSTM網(wǎng)絡(luò)結(jié)構(gòu)
其中Attention層的權(quán)重為
(5)
其中f(a(t))是評價(jià)函數(shù),可表達(dá)為f(a(t))=WTa(t),W為訓(xùn)練參數(shù),對Attention層權(quán)重求和得到最后的特征向量
(6)
經(jīng)Prophet模型分解后的A(t)分量作為輸入序列,本文采用單步預(yù)測[18],同時(shí)引入滑動(dòng)窗口T,其原理為:通過一系列歷史流量數(shù)據(jù)(A(t),A(t+1),A(t+2),…,A(t+T-1))來預(yù)測未來A(t+T)時(shí)刻的流量。模型計(jì)算過程如下:
1)卷積部分包含兩個(gè)1DCNN和最大池化層,卷積層的卷積核尺寸均為2,1DCNN_1、1DCNN_2的過濾器的個(gè)數(shù)分別為256和128,1D最大池化層的核尺寸也為2。
2)將數(shù)據(jù)利用flatten展平,并重復(fù)向量4次以進(jìn)一步填充LSTM層。在LSTM層加入了丟棄算法(Dropout)以防止模型的過擬合,在經(jīng)過LSTM層后使用全連接層得到注意力權(quán)重,對特征賦予權(quán)值。這里,LSTM層的輸出單元大小設(shè)置為128。
3)在LSTM后加入一個(gè)帶激活函數(shù)(Relu)的全連接層,最后再加入一個(gè)輸出節(jié)點(diǎn)給出預(yù)測結(jié)果實(shí)現(xiàn)單步預(yù)測。
為了驗(yàn)證模型的有效性,本文選取一個(gè)開放的數(shù)據(jù)集MAWILab中骨干網(wǎng)一條鏈路的流量作為實(shí)驗(yàn)數(shù)據(jù)。采集2020年5月1日0點(diǎn)至2020年5月30日23點(diǎn),周期為1h的平均網(wǎng)絡(luò)流量,共720組數(shù)據(jù)。其中前576組作訓(xùn)練集,初次訓(xùn)練選取訓(xùn)練集中10%的數(shù)據(jù)作為驗(yàn)證集,保存好最佳模型后繼續(xù)用完整的訓(xùn)練集進(jìn)行訓(xùn)練,后144組作測試集。
預(yù)測前先對樣本數(shù)據(jù)進(jìn)行歸一化操作,其目的在于消除指標(biāo)之間的量綱影響,使后面結(jié)果分析中的指標(biāo)處于同一數(shù)量。同時(shí),當(dāng)樣本數(shù)值差異太大時(shí),容易造成神經(jīng)網(wǎng)絡(luò)訓(xùn)練收斂速度變慢。在本文中,利用Python中的MinMaxScaler函數(shù)將數(shù)據(jù)規(guī)范在(-1,1)區(qū)間,輸出結(jié)果前再進(jìn)行反歸一化操作。t時(shí)刻A(t)歸一化的結(jié)果為A′(t)
(7)
其中,Amax,Amin分別為流量數(shù)據(jù)的最大值和最小值。
本研究試驗(yàn)環(huán)境為:Python3.7編程環(huán)境,網(wǎng)絡(luò)框架使用Keras搭建;操作系統(tǒng)為Windows10 64bit,處理器為Intel(R) Core(TM) i7-9700CPU @ 3.00GHz,內(nèi)存為32GB。
在本次實(shí)驗(yàn)中,滑動(dòng)窗口T的大小設(shè)置為4,即通過4個(gè)歷史網(wǎng)絡(luò)流量數(shù)據(jù)(A(t),A(t+1),A(t+2),A(t+3))來預(yù)測未來A(t+4)時(shí)刻的流量。優(yōu)化器選用Adam,學(xué)習(xí)率設(shè)置為0.0001,模型訓(xùn)練的迭代次數(shù)epoch為100,dropout設(shè)為0.5。
本文選取了兩種評價(jià)指標(biāo)作為評判模型效果好壞的指標(biāo),具體如下:
1)平均絕對百分比誤差(MAPE),MAPE之所以可以描述準(zhǔn)確度是因?yàn)镸APE本身常用于衡量預(yù)測準(zhǔn)確性的統(tǒng)計(jì)指標(biāo),如時(shí)間序列的預(yù)測。MAPE的取值范圍為[0,+∞),越接近于0說明模型越好。具體公式如下
(8)
2)確定性相關(guān)系數(shù)(R2score),R2的取值反應(yīng)模型的優(yōu)異程度。R2的范圍為[0,1],與MAPE相反,R2的值越接近于1說明模型越好,反之越差。具體公式如下
(9)
3.3.1 Prophet模型分解
利用Prophet模型將流量數(shù)據(jù)分解,成分分析如圖4所示。模型將序列解成四個(gè)部分:趨勢g(t),節(jié)假日h(t),周季節(jié)性和日季節(jié)性,其中,周季節(jié)性與日季節(jié)性疊加形成季節(jié)項(xiàng)s(t)。
由圖4(a)可以看出網(wǎng)絡(luò)流量在5月8日達(dá)到峰值后開始下降,自5月14日起緩慢上升。圖4(c)中顯示雙休的流量值低于周一至周五的流量值,考慮到這種情況主要因?yàn)橹芤恢林芪迨枪ぷ魅赵斐桑芰苋杖藗冃菹?,使用網(wǎng)絡(luò)的時(shí)間減少導(dǎo)致網(wǎng)絡(luò)流量值低。圖4(d)中顯示了一天中的流量分布,可以看出白天的流量值普遍高于夜晚的流量值,在凌晨4點(diǎn)至5點(diǎn)間達(dá)到一天的最低值,下午3點(diǎn)左右到達(dá)最高,這種網(wǎng)絡(luò)流量使用情況的谷值與峰值分布符合實(shí)際情況,說明了所選數(shù)據(jù)的可靠性。
圖4 網(wǎng)絡(luò)流量成分分析圖
3.3.2 不同模型對比
為了驗(yàn)證本文所提模型的優(yōu)越性,選取模型與其它模型分別從預(yù)測精度和時(shí)耗兩方面進(jìn)行對比分析,表1為其對比結(jié)果。
表1 不同模型評價(jià)指標(biāo)結(jié)果
各模型分別訓(xùn)練5次后取平均值作為最終結(jié)果,分析表1可知:
1) LSTM模型盡管具備一定的長序列特征挖掘能力,但隨著輸入的變長,序列所包含的信息變多,單一的LSTM模型訓(xùn)練難以收斂至全局最優(yōu),造成預(yù)測效果變差。雖然R2值與其它模型相差不多,但MAPE較其它模型而言結(jié)果很差。另外LSTM模型由于不能并行計(jì)算,訓(xùn)練耗時(shí)極長,與傳統(tǒng)預(yù)測模型相差幾個(gè)量級。
2)ARMA模型在R2指標(biāo)上表現(xiàn)也不佳,對網(wǎng)絡(luò)流量序列進(jìn)行統(tǒng)計(jì)分析,其結(jié)果如表2所示。由表2可以看出原始數(shù)據(jù)全部樣本的偏度為0.7469,峰度為0.0629,這表明數(shù)據(jù)呈右尾分布,且不符從正態(tài)分布。根據(jù)ADF檢驗(yàn)來看,由于假設(shè)檢驗(yàn)值-2.6678大于5%的置信度(-2.8657<-2.6678<-2.5690),說明只有90%的把握認(rèn)為原假設(shè)不存在單位根,因此判定原始流量數(shù)據(jù)是非平穩(wěn)的,不適合ARMA這類線性系統(tǒng)預(yù)測模型。
表2 網(wǎng)絡(luò)流量數(shù)據(jù)統(tǒng)計(jì)分析
3)SVR采用多項(xiàng)式(POLY)核函數(shù)。由于SVR的數(shù)據(jù)量少,因此它的訓(xùn)練時(shí)長也是最快的,且預(yù)測效果優(yōu)于傳統(tǒng)方法的線性預(yù)測模型。
4) 本文所采用的PFMGNet模型,較其它模型效果顯著,MAPE指標(biāo)比LSTM模型減少了25.3%、R2指標(biāo)比LSTM模型提高了0.106。訓(xùn)練時(shí)耗雖比不上傳統(tǒng)模型,但較其它神經(jīng)網(wǎng)絡(luò)模型也有較大的縮短。
3.3.3 消融實(shí)驗(yàn)
為驗(yàn)證模型的有效性,選取同一組原始流量數(shù)據(jù)。分解設(shè)置CNN+LSTM和CNN+基于注意力的LSTM進(jìn)行消融實(shí)驗(yàn),圖5和表3為消融實(shí)驗(yàn)的結(jié)果。
表3 消融實(shí)驗(yàn)?zāi)P驮u價(jià)指標(biāo)結(jié)果
圖5 消融實(shí)驗(yàn)?zāi)P皖A(yù)測結(jié)果圖
可以看出:
1)CNN+LSTM模型雖融合了兩種模型的特點(diǎn),但對于一些異局部特征附近預(yù)測效果很差,且在部分時(shí)間段的預(yù)測出現(xiàn)了一定的滯后現(xiàn)象。
2)CNN+LSTM+Attention模型由于注意力機(jī)制的效果,使模型的特征提取更注重于顯著特征的提取上,根據(jù)圖5(b)可看出模型對突變點(diǎn)的預(yù)測更加準(zhǔn)確(例如圖5(b)中時(shí)間點(diǎn)250、580附近的峰值),相較于1)模型一定程度上減少了顯著特征的丟失。
3)根據(jù)表1、表3可以看出本文提出的PFMGNet模型在各項(xiàng)精度指標(biāo)上為最優(yōu),且時(shí)耗也比其它神經(jīng)網(wǎng)絡(luò)快。通過圖5(c)可看出,PFMGNet模型綜合了2)中模型優(yōu)點(diǎn)的同時(shí)也優(yōu)化了對序列局部特征的提取,對于實(shí)際網(wǎng)絡(luò)流量的變化趨勢的預(yù)測基本一致。說明模型對于時(shí)間序列的季節(jié)性分量、節(jié)假日因素有著很好的預(yù)測效果。另一方面,圖6顯示了Attention作用于特征維度的權(quán)重分配,從圖6中可以看出第23維的權(quán)重明顯大,為0.214。
圖6 注意力機(jī)制的權(quán)重匯總圖
通過實(shí)驗(yàn)可以看出,單一的模型不能很好的預(yù)測網(wǎng)絡(luò)流量,更好的方式是根據(jù)網(wǎng)絡(luò)流量的特性通過模型的分解、組合后再進(jìn)行預(yù)測。同時(shí)結(jié)果表明,本文提出的基于Prophet融合多粒度特征提取的模型對于網(wǎng)絡(luò)流量的預(yù)測具有更好的效果,MAPE評價(jià)指標(biāo)為12.5%,R2分?jǐn)?shù)達(dá)到0.716;相較于傳統(tǒng)的LSTM模型,MAPE和R2效果分別優(yōu)化了25.3%、0.106。當(dāng)然本模型也有需要改進(jìn)的地方,比如對于多條鏈路中網(wǎng)絡(luò)流量該如何預(yù)測,有待進(jìn)一步研究。