杜秀麗 范志宇 呂亞娜 邱少明
1(大連大學通信與網(wǎng)絡重點實驗室 遼寧 大連 116622) 2(大連大學信息工程學院 遼寧 大連 116622)
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡的異構性和復雜性不斷增強,而網(wǎng)絡的規(guī)劃、設計和運行都是以分析和預測網(wǎng)絡流量的特性為前提的。網(wǎng)絡流量預測對增強網(wǎng)絡性能、解決網(wǎng)絡擁堵、防止網(wǎng)絡入侵有著重要的作用。經(jīng)過大量的研究發(fā)現(xiàn):網(wǎng)絡流量表現(xiàn)出自相似特征、非平穩(wěn)特征、長時間相關特征和突發(fā)性特征等[1-2]。
網(wǎng)絡流量預測方法主要有兩類:平穩(wěn)預測方法和非平穩(wěn)預測方法。平穩(wěn)預測方法中馬爾可夫(Markov)模型[3]很容易構建,可以清晰地描述出整個過程,但增加模型的參數(shù)時將會存在很大的計算量。自回歸(Auto Regressive,AR)模型和自回歸滑動平均(Auto Regressive Moving Average,ARMA)模型[4]理論計算方法簡單且求解速度快,但無法有效描述網(wǎng)絡流量的非平穩(wěn)特性。自回歸積分滑動平均(Auto Regressive Integrated Moving Average,ARIMA)模型[5]只能對流量變化不大或者流量變化存在規(guī)律的網(wǎng)絡流量進行預測。
網(wǎng)絡流量非平穩(wěn)預測方法中,基于支持向量機(Support Vector Machine,SVM)的網(wǎng)絡流量預測方法[6-7]能夠解決網(wǎng)絡流量預測中小樣本、非線性、高維和局部極值等問題,但訓練樣本和自身網(wǎng)絡參數(shù)對預測結果的好壞影響很大。由于網(wǎng)絡流量在時頻域具有稀疏性,研究者將壓縮感知技術[8-9]引入網(wǎng)絡流量測量和預測中,將網(wǎng)絡流量預測問題轉變成重新構造網(wǎng)絡流量的問題,提高了預測的準確性。但是壓縮感知中網(wǎng)絡流量的分析和觀測矩陣的設計還有待進一步提高。為了能夠進一步解決網(wǎng)絡流量非線性的問題,專家學者們開始致力于研究基于深度學習的網(wǎng)絡流量預測方法[10]。Azzouni等[11]在此基礎上,提出了基于長短期記憶循環(huán)神經(jīng)網(wǎng)絡(Long Short Term Memory,LSTM)的網(wǎng)絡流量預測方法,提高了預測的準確性。但長短期記憶循環(huán)神經(jīng)網(wǎng)絡對網(wǎng)絡流量學習是按照單一方向進行的,導致越早學習部分特征遺忘得越多,起到的作用越小,忽略了天與天之間上下雙向的聯(lián)系,從而影響最終的預測結果。
針對以上存在的問題,為了能夠進一步提高網(wǎng)絡流量預測的準確性,本文提出一種基于雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡(Bi-directional Long Short Term Memory,BiLSTM)的網(wǎng)絡流量預測方法。對網(wǎng)絡流量序列進行雙向學習,避免單向學習導致較早學習部分,特征提取和記憶效果差的問題。同時雙向學習可以充分挖掘網(wǎng)絡流量天與天之間雙向的聯(lián)系,完整地學習到網(wǎng)絡流量的整體特征,更好地進行網(wǎng)絡流量預測。
長短期記憶循環(huán)神經(jīng)網(wǎng)絡是由Hochreiter等[12]提出,Graves等[13]進行優(yōu)化和推廣的一種改良后的循環(huán)神經(jīng)網(wǎng)絡。LSTM神經(jīng)網(wǎng)絡中擁有時間記憶單元,能夠對時間序列中長短期依賴的信息進行學習,從而對時間序列中的間隔和延遲事件進行處理和預測,因此可以利用LSTM神經(jīng)網(wǎng)絡[14]對網(wǎng)絡流量進行預測。
LSTM神經(jīng)網(wǎng)絡具有獨特的門限管理機制,一個能夠正常工作、操控和保護神經(jīng)元的LSTM網(wǎng)絡具有三個門:輸入門(Input gate)、遺忘門(Forget gate)和輸出門(Output gate)。輸入門從外部獲取新的數(shù)據(jù),同時對其進行處理。遺忘門決定網(wǎng)絡單元細胞狀態(tài)的遺忘程度,從而保留下來最具有特征的記憶細胞狀態(tài)。輸出門對LSTM單元計算出的結果進行選擇性輸出。LSTM單元的細胞狀態(tài)是網(wǎng)絡的靈魂,細胞狀態(tài)信息可以在網(wǎng)絡中進行傳送,不會影響到神經(jīng)元的狀態(tài)。LSTM典型的網(wǎng)絡結構如圖1所示。
圖1 LSTM單元結構
it=σ(Wu[ht-1,xt]+bu)
(1)
ft=σ(Wf[ht-1,xt]+bf)
(2)
Ot=σ(Wo[ht-1,xt]+bo)
(3)
(4)
(5)
ht=Ot×tanh(Ct)
(6)
其中所有的W和b均為參數(shù),σ表示sigmoid激活函數(shù),如式(7)所示。tanh表示雙曲正切激活函數(shù),如式(8)所示。
(7)
(8)
網(wǎng)絡流量預測是根據(jù)先前已知網(wǎng)絡流量數(shù)據(jù)預測未來網(wǎng)絡流量,它廣泛用于網(wǎng)絡規(guī)劃、資源管理和網(wǎng)絡安全中。Azzouni等[11]提出了一種基于LSTM的RNN框架,該框架可以有效地訓練用于大規(guī)模流量預測的網(wǎng)絡模型。訓練和比較各種參數(shù)的LSTM模型后發(fā)現(xiàn)LSTM模型可以快速收斂,并且可以為相對較小的模型提供更好的預測性能。通過真實網(wǎng)絡流量數(shù)據(jù)進行驗證,證明了LSTM模型性能優(yōu)于傳統(tǒng)的線性方法,非常適合于網(wǎng)絡流量預測。但LSTM網(wǎng)絡本身對時間序列學習時存在早期特征記憶效果差、難以充分挖掘整個網(wǎng)絡流量特征等問題,為此進一步研究后,本文提出一種基于雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡的網(wǎng)絡流量預測方法。
基于LSTM的網(wǎng)絡流量預測方法在一定程度上提高了網(wǎng)絡流量預測的準確性,但該方法在對網(wǎng)絡流量進行學習時存在單一方向性等問題,忽略了網(wǎng)絡流量天與天之間雙向的聯(lián)系,難以充分利用整個網(wǎng)絡流量序列存在的特征。針對以上問題,為了能夠進一步提高網(wǎng)絡流量預測的準確性,本文提出一種基于雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡的網(wǎng)絡流量預測方法。對網(wǎng)絡流量序列進行雙向的學習,避免單向學習導致較早學習部分特征提取和記憶效果差的問題。雙向學習可以充分挖掘網(wǎng)絡流量天與天之間雙向的聯(lián)系,完整地學習到網(wǎng)絡流量的整體特征。
BiLSTM神經(jīng)網(wǎng)絡[15-16]是在LSTM神經(jīng)網(wǎng)絡的基礎上改良而來的,由正向LSTM和反向LSTM神經(jīng)網(wǎng)絡融合而成。BiLSTM同時考慮了序列過去的特征和未來的特征,使用兩個LSTM、一個正向輸入序列、一個反向輸入序列,再將兩者的輸出按照一定的權重結合起來作為最終的結果。BiLSTM[17-18]的隱藏層由正向LSTM細胞狀態(tài)和反向LSTM細胞狀態(tài)兩部分組成。流量序列通過輸入層進入隱藏層分別參與正向計算和反向計算,最終輸出結果由輸出層按照一定的權重融合正向LSTM輸出結果和反向LSTM輸出結果得到。BiLSTM的網(wǎng)絡結構如圖2所示。其中xt表示網(wǎng)絡的輸入,yt表示網(wǎng)絡的輸出。
圖2 BiLSTM網(wǎng)絡結構
本文提出的基于BiLSTM的網(wǎng)絡流量預測方法繼承了LSTM預測方法的優(yōu)點,同時彌補了LSTM預測方法的不足。BiLSTM預測模型如圖3所示。
圖3 BiLSTM預測模型
基于BiLSTM的網(wǎng)絡流量預測算法分為訓練和預測兩個階段。
1) 訓練階段。BiLSTM預測模型訓練過程如圖4所示。
圖4 BiLSTM訓練流程
具體步驟如下:
步驟1利用滑動窗口技術對采集到的網(wǎng)絡流量原始數(shù)據(jù)進行處理,在數(shù)據(jù)歸一化后,進行數(shù)據(jù)劃分,得到網(wǎng)絡流量訓練集。
步驟2選定訓練樣本數(shù),設定訓練目標值與最大訓練次數(shù)。
步驟3對BiLSTM網(wǎng)絡流量預測模型的各個參數(shù)進行初始化。
步驟4判斷訓練計數(shù)值是否大于設定的最大訓練次數(shù),如果大于,執(zhí)行步驟9,否則繼續(xù)往下,執(zhí)行步驟5。
步驟5將訓練集的數(shù)據(jù)輸入到BiLSTM模型中,根據(jù)式(1)到式(6)進行前向計算。
步驟6BiLSTM的正向和反向LSTM網(wǎng)絡的輸出加權融合得到預測結果。
步驟7將預測結果與真實值進行比較,計算預測誤差值。
步驟8如果預測誤差值小于設定的目標誤差值,繼續(xù)執(zhí)行步驟9。否則執(zhí)行基于時間的反向傳播算法(Back Propagation Trough Time,BPTT)對網(wǎng)絡參數(shù)值進行更新,同時訓練計數(shù)值加1,返回步驟4。
步驟9完成對BiLSTM網(wǎng)絡的訓練。
2) 預測階段。流量預測過程如圖5所示。
圖5 BiLSTM預測流程
詳細步驟如下:
步驟1利用滑動窗口技術對采集到的網(wǎng)絡流量原始數(shù)據(jù)進行處理,在數(shù)據(jù)歸一化后,進行數(shù)據(jù)劃分,得到網(wǎng)絡流量測試集。
步驟2將測試集的數(shù)據(jù)輸入到BiLSTM預測模型中,根據(jù)式(1)到式(6)分別進行前向計算。
步驟3BiLSTM網(wǎng)絡內部,正向和反向LSTM網(wǎng)絡的輸出加權融合得到預測結果。
網(wǎng)絡流量在1天和1星期內表現(xiàn)出較強的周期性和自相似性,利用該特性,選取1星期內的流量數(shù)據(jù)進行學習,對第8天的網(wǎng)絡流量進行預測,從而驗證提出方法的有效性。網(wǎng)絡流量在1 s和0.1 s不同時間尺度下表現(xiàn)出突發(fā)性,由于突發(fā)性是具有自相似性的網(wǎng)絡流量的一個明顯特征[19],是長相關性引發(fā)的直接結果。長相關性是指:一個時間依賴的隨機過程,在非常大的時間范圍內或者在不同時間尺度下都表現(xiàn)出顯著的相關性。長相關性反映了自相似過程的持續(xù)現(xiàn)象,是自相似性的一個重要特征。所以對網(wǎng)絡流量進行分析,可以轉為研究網(wǎng)絡流量的自相似性。
本文所用的網(wǎng)絡流量原始數(shù)據(jù)集來自WIDE backbone數(shù)據(jù)庫,從該數(shù)據(jù)庫下載了2019年1月1日到1月8日連續(xù)8天,每天13時00分00秒到13時15分00秒的網(wǎng)絡流量原始數(shù)據(jù)。通過Wireshark網(wǎng)絡封包分析軟件,按照時間間隔1 s和0.1 s分別提取和統(tǒng)計每天的網(wǎng)絡流量數(shù)據(jù),得到不同時間尺度下連續(xù)8天的網(wǎng)絡流量原始數(shù)據(jù)。網(wǎng)絡流量部分原始數(shù)據(jù)如圖6所示。將原始網(wǎng)絡流量數(shù)據(jù)輸入,利用滑動窗口方法進行截取處理。為了消除網(wǎng)絡流量指標之間的量綱影響,對網(wǎng)絡流量真實數(shù)據(jù)進行歸一化處理,以解決網(wǎng)絡流量數(shù)據(jù)指標之間的可比性。實驗所使用的電腦環(huán)境為Intel(R) Core(TM) i7-4790 CPU @3.60 GHz,16.00 GB RAM dell,MATLAB 2014a。
圖6 網(wǎng)絡流量原始數(shù)據(jù)
為測試本文提出的基于BiLSTM的網(wǎng)絡流量預測方法的真實有效性,經(jīng)過大量實驗,選定BiLSTM網(wǎng)絡的參數(shù)為:輸入層神經(jīng)元個數(shù)60,隱含層神經(jīng)元個數(shù)100,輸出層神經(jīng)元個數(shù)10,訓練5 000次,學習率0.001。分別對比BiLSTM和LSTM兩種方法在1 s和0.1 s不同時間尺度下,訓練集和測試集上的預測結果。兩種預測方法在一周連續(xù)7天,不同時間尺度數(shù)據(jù)集下,訓練集上的測試結果分別如圖7和圖8所示。
圖7 1 s時間尺度下訓練集上測試結果
圖8 0.1 s時間尺度下訓練集上測試結果
從兩圖中可以看出,兩種預測方法在不同時間尺度的訓練集下,通過已知的前60步流量數(shù)據(jù)預測未知的后10步,BiLSTM預測方法由于在LSTM預測方法的基礎上引入了對網(wǎng)絡流量序列天與天之間進行雙向學習的思想,因此在訓練集上的測試結果相比LSTM預測方法的測試結果更加接近真實值。
圖9和圖10是時間尺度分別為1 s和0.1 s,兩種預測方法在測試集下的預測結果。從兩圖中可以看出,在不同時間尺度下,通過已知的前60步預測未知的后10步,BiLSTM預測方法繼承了LSTM預測方法的優(yōu)點,同時彌補了LSTM預測方法的不足,因此在測試集上的預測結果更加收斂于真實流量數(shù)據(jù)。通過對兩種方法在不同時間尺度下,訓練集和測試集上預測結果的對比,驗證了本文所改進的網(wǎng)絡流量預測方法的有效性。
圖9 1 s時間尺度下預測結果
圖10 0.1 s時間尺度下預測結果
(9)
(10)
(11)
表1和表2分別表示了兩種網(wǎng)絡流量預測方法在1 s和0.1 s不同時間尺度下,在訓練集上分別進行大量測試實驗,將得到的預測結果與真實進行比較,計算后得到的多組實驗的平均相對誤差、平均絕對誤差和最小均方誤差的平均值。
表1 1 s時間尺度下網(wǎng)絡流量測試結果
表2 0.1 s時間尺度下網(wǎng)絡流量測試結果
通過在不同時間尺度下,訓練集上測試結果的對比可以看出,BiLSTM預測方法由于在LSTM預測方法的基礎上引入了對網(wǎng)絡流量序列天與天之間進行雙向學習的思想,彌補了原方法存在的不足,最終預測結果的MAPE提高了0.491%,MAE和MSE相比原算法分別提高了22%和30%。
表3和表4分別表示了兩種網(wǎng)絡流量預測方法在1 s和0.1 s不同時間尺度下,在測試集上,分別進行大量預測實驗后,將得到的預測結果與真實值進行比較,計算后得到的多組實驗的MAPE、MAE和MSE的平均值。
表3 1 s時間尺度下網(wǎng)絡流量預測結果
表4 0.1 s時間尺度下網(wǎng)絡流量預測結果
在不同時間尺度下,對比測試集上的預測結果可以看出,BiLSTM預測結果比LSTM預測結果的MAPE提高了1.848%,MAE和MSE相比原算法分別提高了30%和47%。通過兩種預測方法分別在1 s和0.1 s不同時間尺度下,訓練集和測試集上預測結果MAPE、MAE和MSE的對比,進一步驗證了本文提出基于BiLSTM的網(wǎng)絡流量預測方法是有效的,且預測效果優(yōu)于基于LSTM的網(wǎng)絡流量預測方法。
本文針對基于LSTM的網(wǎng)絡流量預測方法存在學習單一方向性,越早學習部分特征記憶效果越差,難以充分利用整個網(wǎng)絡流量特征等問題,提出一種基于BiLSTM的網(wǎng)絡流量預測方法,對流量序列進行雙向學習,充分挖掘網(wǎng)絡流量的整體特征。采用真實網(wǎng)絡流量數(shù)據(jù)庫,對1 s和0.1 s不同時間尺度下的網(wǎng)絡流量進行預測,分析結果表明:改進后的方法相比原方法具有更好的預測精度,MAPE提高了1.848%。