朱 江,潘成勝,孔志翔,石懷峰,
(1. 南京信息工程大學電子與信息工程學院,江蘇 南京210044;2. 南京理工大學自動化學院,江蘇 南京210094)
網絡流量預測是網絡管理和規劃的重要依據。準確的流量預測能夠幫助管理者提前制定網絡資源分配策略,有效解決即將到來的擁塞事件[1][2]。因此,建立準確的流量預測模型具有重要的實際意義。
現有網絡流量的預測方法可總結為兩類:適用于線性系統預測的統計方法和非線性預測系統的機器學習方法。典型的時間序列預測模型有自回歸滑動平均(ARMA)和以它為基礎組合改進的模型。例如:Guo等[3]提出利用乘性季節ARIMA模型進行移動通信流量預測。但是,網絡的發展導致網絡流量的復雜性及突發性愈發加強,傳統的泊松分布、高斯分布等線性模型已不能滿足現代網絡流量的特點[4]。隨著人工智能的發展,出現了基于機器學習算法的支持向量回歸(SVR)[5]、極限學習機(ELM)[6]、人工神經網絡(ANN)等非線性模型。前兩個方法雖預測效果不錯,但SVR模型的好壞太依賴于核函數的選取,ELM模型訓練精度的提高完全依賴于隱藏層節點數的增加、且模型穩定性差。Nipun等[7]提出利用LSTM預測網絡流量,LSTM有一定解決RNN(循環神經網絡)長期依賴的能力。但隨著時間序列的過長,輸入信息的變多,單一的LSTM模型訓練難以收斂至全局最優,于是Li[8]等提出CNN融合LSTM的模型進行預測。CNN能將時間序列的高維特征提取出來,LSTM再對所提取的高維特征進行流量的預測。但是,對時間序列的特征而言,不是每個特征的重要程度都一樣,網絡流量突變點附近的特征可能比平穩區域的特征更加重要[9]。針對不同時序特征的重要度不同,有專家提出利用注意力機制(Attention)[10]解決此類問題。注意力機制在機器翻譯、圖像生成描述等領域具有很好的效果[11],對于感興趣的部分往往會分配大量的注意力,獲得更大的權重,從而達到優化模型的效果。
由于網絡流量在不同的時間尺度下具有長相關、混沌等特性[12-14],傳統的網絡流量預測模型無法有效提取流量的這種多分形特性,因此需要將不同特性的流量分量從數據中分離出來再分別進行預測。利用Prophet模型可將時間序列分解為多層的能力,本文提出一種基于Prophet融合粗細粒度特征提取的神經網絡流量預測模型,利用Prophet模型將流量序列分解成非線性項及附加項兩個分量。由于Prophet模型相較于LSTM而言對時間序列的季節性、假期性更為敏感,擅長處理具有大異常值和趨勢變化的日常周期數據[15][16]。所以對附加項建立Prophet模型,對非線性項建立CNN和基于Attention的LSTM模型進行預測。其中,CNN提取序列顯著細粒度特征,基于Attention的LSTM對特征的維度使用Attention(Dimensions Attention)提取序列粗粒度特征,從而實現粗細粒度特征提取的融合,并給重要的特征分配更多的權重以提高其對結果的影響。最后將兩各模型預測出的結果進行相加得到網絡流量的預測值。
基于Prophet模型,本文提出一種融合多粒度特征提取的神經網絡PFMGNet(Prophet Fusion of Multi-grained Network)預測模型,其模型框架如圖1所示。
模型共由四部分組成,詳細介紹如下:
1)首先采用Prophet模型的可分解方法,將網絡流量歷史數據y(t)分解成趨勢項g(t),隨機項ε(t),季節項s(t)和節假日h(t),在本文中,前兩項稱為非線性項A(t),后兩項稱為附加項D(t)。
2) 將附加項D(t)通過Prophet模型預測得到t+i這段時間內的預測值D(t+i),其中i=1,2,…,N。
3) 將非線性項A(t)通過PFMGNet模型預測得到預測值A(t+i),其中i=1,2,…,N。CNN能夠提取序列的細粒度特征,基于Attention的LSTM提取隱藏在細粒度特征中的粗粒度特征,同時能夠有效避免因步長過長造成長期依賴的問題。
4) 將2)、3)中的結果相加得到最終的網絡流量預測結果:
y(t+i)=D(t+i)+A(t+i)i=1,2,…,N
Prophet是一種新型的預測模型,擅長處理具有大異常值和趨勢變化的日常周期數據,其擬合程序運行速度極快。Prophet模型總體運行過程如圖2所示,通過建模與評估模型兩個模塊的循環迭代最終優化出結果。
Prophet模型可將序列分解成三個函數,其中ε(t)為隨機項。
y(t)=g(t)+s(t)+h(t)+ε(t)
(1)
式(1)中g(t)為趨勢項,用來表示時間序列的非線性性趨勢,函數表達式如式(2)所示

(2)
其中,C表示模型容量,k、b分別表示增長率和偏移量,隨著t的增長模型趨向于C。
式(1)中s(t)為季節項,用來表示時間序列的周期性變化(例如日季節性、周季節性),函數表達式如式(3)所示

(3)
其中,P為目標序列的周期,cn為要估計的系數參數,服從cn~Normal(0,σ)分布。
式(1)中h(t)為假期項,表示假期等特殊因素對時間序列造成的影響,函數表達式如式(4)所示

(4)
其中,Di表示假期i對應的日期,Z(t)表示時間t是否是假期,是為1,不是為0。參數k服從k~Normal(0,v),v越小則模型適應波動的能力越小,反之越大。
1D-CNN是用于處理序列數據的一種特殊神經網絡。與2D-CNN不同的是,1D-CNN的卷積核只需朝著一個維度滑動進行卷積。卷積層可以通過訓練得到滿足損失函數最小的一組最優卷積核,利用卷積核實現自動特征提取。池化層能有效減少模型參數,提高神經網絡的訓練速度,并且可以防止模型過擬合,因此在此部分不使用丟棄算法(Dropout)。卷積層與池化層的堆疊形成深度網絡結構,逐層提取高維序列的特征。
為了解決梯度下降和梯度爆炸的問題,LSTM模型在循環神經網絡(RNN)中對循環層進行改進,使用輸入門、遺忘門和輸出門來控制記憶過程。這是一種特殊的時間遞歸網絡模型,適合處理和預測時間序列[17]。由于網絡流量是時間序列且序列之間的信息是相互關聯的,因此選用LSTM模型學習序列的上下文信息。
注意力機制(Attention)通俗而言就是對模型感興趣的部分分配更多的權重。在時間序列的預測問題上,不是每個特征的重要程度都一樣,網絡流量突變點附近的特征可能比平穩區域的特征更加重要。Attention的任務是對于LSTM網絡得到隱層輸出序列a(t),根據權重分配計算不同特征向量對應的概率,不斷更新迭代出較優的權重參數矩陣α(t),將其與特征向量a(t)加權求和后作為Attention的輸出,最后通過全連接層計算出預測的結果。基于注意力機制的LSTM網絡結構如圖3所示。其中,x(t)表示輸入序列,a(t)表示學習得到的輸入序列x(t)的特征,α(t)表示各特征的注意力權重,y(t)表示輸出結果。

圖3 基于Attention的LSTM網絡結構
其中Attention層的權重為

(5)
其中f(a(t))是評價函數,可表達為f(a(t))=WTa(t),W為訓練參數,對Attention層權重求和得到最后的特征向量

(6)
經Prophet模型分解后的A(t)分量作為輸入序列,本文采用單步預測[18],同時引入滑動窗口T,其原理為:通過一系列歷史流量數據(A(t),A(t+1),A(t+2),…,A(t+T-1))來預測未來A(t+T)時刻的流量。模型計算過程如下:
1)卷積部分包含兩個1DCNN和最大池化層,卷積層的卷積核尺寸均為2,1DCNN_1、1DCNN_2的過濾器的個數分別為256和128,1D最大池化層的核尺寸也為2。
2)將數據利用flatten展平,并重復向量4次以進一步填充LSTM層。在LSTM層加入了丟棄算法(Dropout)以防止模型的過擬合,在經過LSTM層后使用全連接層得到注意力權重,對特征賦予權值。這里,LSTM層的輸出單元大小設置為128。
3)在LSTM后加入一個帶激活函數(Relu)的全連接層,最后再加入一個輸出節點給出預測結果實現單步預測。
為了驗證模型的有效性,本文選取一個開放的數據集MAWILab中骨干網一條鏈路的流量作為實驗數據。采集2020年5月1日0點至2020年5月30日23點,周期為1h的平均網絡流量,共720組數據。其中前576組作訓練集,初次訓練選取訓練集中10%的數據作為驗證集,保存好最佳模型后繼續用完整的訓練集進行訓練,后144組作測試集。
預測前先對樣本數據進行歸一化操作,其目的在于消除指標之間的量綱影響,使后面結果分析中的指標處于同一數量。同時,當樣本數值差異太大時,容易造成神經網絡訓練收斂速度變慢。在本文中,利用Python中的MinMaxScaler函數將數據規范在(-1,1)區間,輸出結果前再進行反歸一化操作。t時刻A(t)歸一化的結果為A′(t)

(7)
其中,Amax,Amin分別為流量數據的最大值和最小值。
本研究試驗環境為:Python3.7編程環境,網絡框架使用Keras搭建;操作系統為Windows10 64bit,處理器為Intel(R) Core(TM) i7-9700CPU @ 3.00GHz,內存為32GB。
在本次實驗中,滑動窗口T的大小設置為4,即通過4個歷史網絡流量數據(A(t),A(t+1),A(t+2),A(t+3))來預測未來A(t+4)時刻的流量。優化器選用Adam,學習率設置為0.0001,模型訓練的迭代次數epoch為100,dropout設為0.5。
本文選取了兩種評價指標作為評判模型效果好壞的指標,具體如下:
1)平均絕對百分比誤差(MAPE),MAPE之所以可以描述準確度是因為MAPE本身常用于衡量預測準確性的統計指標,如時間序列的預測。MAPE的取值范圍為[0,+∞),越接近于0說明模型越好。具體公式如下

(8)
2)確定性相關系數(R2score),R2的取值反應模型的優異程度。R2的范圍為[0,1],與MAPE相反,R2的值越接近于1說明模型越好,反之越差。具體公式如下

(9)

3.3.1 Prophet模型分解
利用Prophet模型將流量數據分解,成分分析如圖4所示。模型將序列解成四個部分:趨勢g(t),節假日h(t),周季節性和日季節性,其中,周季節性與日季節性疊加形成季節項s(t)。
由圖4(a)可以看出網絡流量在5月8日達到峰值后開始下降,自5月14日起緩慢上升。圖4(c)中顯示雙休的流量值低于周一至周五的流量值,考慮到這種情況主要因為周一至周五是工作日造成,周六周日人們休息,使用網絡的時間減少導致網絡流量值低。圖4(d)中顯示了一天中的流量分布,可以看出白天的流量值普遍高于夜晚的流量值,在凌晨4點至5點間達到一天的最低值,下午3點左右到達最高,這種網絡流量使用情況的谷值與峰值分布符合實際情況,說明了所選數據的可靠性。

圖4 網絡流量成分分析圖
3.3.2 不同模型對比
為了驗證本文所提模型的優越性,選取模型與其它模型分別從預測精度和時耗兩方面進行對比分析,表1為其對比結果。

表1 不同模型評價指標結果
各模型分別訓練5次后取平均值作為最終結果,分析表1可知:
1) LSTM模型盡管具備一定的長序列特征挖掘能力,但隨著輸入的變長,序列所包含的信息變多,單一的LSTM模型訓練難以收斂至全局最優,造成預測效果變差。雖然R2值與其它模型相差不多,但MAPE較其它模型而言結果很差。另外LSTM模型由于不能并行計算,訓練耗時極長,與傳統預測模型相差幾個量級。
2)ARMA模型在R2指標上表現也不佳,對網絡流量序列進行統計分析,其結果如表2所示。由表2可以看出原始數據全部樣本的偏度為0.7469,峰度為0.0629,這表明數據呈右尾分布,且不符從正態分布。根據ADF檢驗來看,由于假設檢驗值-2.6678大于5%的置信度(-2.8657<-2.6678<-2.5690),說明只有90%的把握認為原假設不存在單位根,因此判定原始流量數據是非平穩的,不適合ARMA這類線性系統預測模型。

表2 網絡流量數據統計分析
3)SVR采用多項式(POLY)核函數。由于SVR的數據量少,因此它的訓練時長也是最快的,且預測效果優于傳統方法的線性預測模型。
4) 本文所采用的PFMGNet模型,較其它模型效果顯著,MAPE指標比LSTM模型減少了25.3%、R2指標比LSTM模型提高了0.106。訓練時耗雖比不上傳統模型,但較其它神經網絡模型也有較大的縮短。
3.3.3 消融實驗
為驗證模型的有效性,選取同一組原始流量數據。分解設置CNN+LSTM和CNN+基于注意力的LSTM進行消融實驗,圖5和表3為消融實驗的結果。

表3 消融實驗模型評價指標結果

圖5 消融實驗模型預測結果圖
可以看出:
1)CNN+LSTM模型雖融合了兩種模型的特點,但對于一些異局部特征附近預測效果很差,且在部分時間段的預測出現了一定的滯后現象。
2)CNN+LSTM+Attention模型由于注意力機制的效果,使模型的特征提取更注重于顯著特征的提取上,根據圖5(b)可看出模型對突變點的預測更加準確(例如圖5(b)中時間點250、580附近的峰值),相較于1)模型一定程度上減少了顯著特征的丟失。
3)根據表1、表3可以看出本文提出的PFMGNet模型在各項精度指標上為最優,且時耗也比其它神經網絡快。通過圖5(c)可看出,PFMGNet模型綜合了2)中模型優點的同時也優化了對序列局部特征的提取,對于實際網絡流量的變化趨勢的預測基本一致。說明模型對于時間序列的季節性分量、節假日因素有著很好的預測效果。另一方面,圖6顯示了Attention作用于特征維度的權重分配,從圖6中可以看出第23維的權重明顯大,為0.214。

圖6 注意力機制的權重匯總圖
通過實驗可以看出,單一的模型不能很好的預測網絡流量,更好的方式是根據網絡流量的特性通過模型的分解、組合后再進行預測。同時結果表明,本文提出的基于Prophet融合多粒度特征提取的模型對于網絡流量的預測具有更好的效果,MAPE評價指標為12.5%,R2分數達到0.716;相較于傳統的LSTM模型,MAPE和R2效果分別優化了25.3%、0.106。當然本模型也有需要改進的地方,比如對于多條鏈路中網絡流量該如何預測,有待進一步研究。