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