徐海兵,郭久明
(邁普通信技術(shù)股份有限公司 科技創(chuàng)新部,四川 成都 610094)
隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)流量的規(guī)模不斷被刷新,高效且合理地利用網(wǎng)絡(luò)資源變得尤為重要。一方面,網(wǎng)絡(luò)資源分配的不合理可能導(dǎo)致部分網(wǎng)絡(luò)資源由于耗盡而無(wú)法正常使用,甚至造成網(wǎng)絡(luò)癱瘓,而其他鏈路資源可能卻處于過(guò)剩的狀態(tài),嚴(yán)重影響了用戶(hù)的上網(wǎng)體驗(yàn);另一方面,雖然在前期合理分配了網(wǎng)絡(luò)資源,但網(wǎng)絡(luò)流量具有突發(fā)性,原本充足的網(wǎng)絡(luò)資源可能出現(xiàn)短缺的情況。為了解決此問(wèn)題,現(xiàn)有軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)[1]控制器會(huì)實(shí)時(shí)檢查鏈路狀況,在一定程度上緩解了網(wǎng)絡(luò)擁塞,但由于調(diào)度時(shí)已經(jīng)發(fā)生了擁塞,無(wú)法滿(mǎn)足更高等級(jí)、更好服務(wù)質(zhì)量的要求。鑒于此,如果能夠精準(zhǔn)預(yù)測(cè)網(wǎng)絡(luò)流量,提前發(fā)現(xiàn)未來(lái)時(shí)刻的網(wǎng)絡(luò)流量變化情況,流量調(diào)度系統(tǒng)則可以提前進(jìn)行合理調(diào)度,有效避免擁塞的發(fā)生。
基于統(tǒng)計(jì)的模型通常先采用差分法對(duì)網(wǎng)絡(luò)流量原始數(shù)據(jù)平穩(wěn)化處理,提取網(wǎng)絡(luò)流量數(shù)據(jù)的自相似特征,然后將平穩(wěn)后的數(shù)據(jù)通過(guò)統(tǒng)計(jì)模型進(jìn)行擬合和檢驗(yàn)[1],例如ARMA、ARIMA[2]等統(tǒng)計(jì)模型。統(tǒng)計(jì)模型本身十分簡(jiǎn)單,只需要內(nèi)生變量而不需要借助其他外生變量,但統(tǒng)計(jì)模型只能捕捉線(xiàn)性關(guān)系,而不能捕捉非線(xiàn)性關(guān)系;同時(shí)要求自身或差分之后的數(shù)據(jù)是平穩(wěn)的,例如無(wú)法用統(tǒng)計(jì)模型預(yù)測(cè)股票類(lèi)型的數(shù)據(jù),因?yàn)閿?shù)據(jù)是非平穩(wěn)的且受政策和新聞等其他事件影響[3]。
基于機(jī)器學(xué)習(xí)的流量預(yù)測(cè)模型包括梯度提升決策樹(shù)[4]、回歸模型[5]以及boosting 模型[6]等,首先需要對(duì)原始的數(shù)據(jù)進(jìn)行分類(lèi)、統(tǒng)計(jì)、補(bǔ)缺、尋找等操作,得到時(shí)間差異序列、時(shí)間趨勢(shì)序列和時(shí)間序列,以此增加樣本特征的多樣性[6]。雖然機(jī)器學(xué)習(xí)模型對(duì)線(xiàn)性或非線(xiàn)性規(guī)律有較強(qiáng)的擬合能力,但需要挖掘盡可能多的樣本特征,增加了模型開(kāi)發(fā)的難度。
為了改善流量預(yù)測(cè)的滯后性,一些文獻(xiàn)提出經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)[7]和集成經(jīng)驗(yàn)?zāi)B(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)[8]的理論方法,其方法為將訪(fǎng)問(wèn)流量數(shù)據(jù)分成若干個(gè)IMF分量和殘余分量Res,之后針對(duì)IMF 分量和Res 分量分別運(yùn)用統(tǒng)計(jì)模型、機(jī)器模型或神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè),最后將各自的預(yù)測(cè)結(jié)果進(jìn)行疊加重構(gòu)[9]。本文針對(duì)該方法進(jìn)行實(shí)驗(yàn),結(jié)果表明該理論方法雖然對(duì)規(guī)律性較強(qiáng)的流量數(shù)據(jù)有較好的滯后性改善,但對(duì)變化幅度較大的流量數(shù)據(jù)存在IMF 分量數(shù)量不確定的問(wèn)題,如果強(qiáng)行指定流量數(shù)據(jù)分解的IMF 數(shù)量,則存在流量預(yù)測(cè)的準(zhǔn)確性不高的問(wèn)題。
由于循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 考慮了時(shí)間序列之前的信息,故非常擅長(zhǎng)處理序列數(shù)據(jù),已在眾多領(lǐng)域(包括語(yǔ)音識(shí)別、文檔識(shí)別、手寫(xiě)識(shí)別及圖像分析)中得到廣泛應(yīng)用[10]。長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)在解決了梯度消失和爆炸問(wèn)題后,能夠更好地進(jìn)行分類(lèi)和預(yù)測(cè)任務(wù)[11]。門(mén)控循環(huán)單元GRU 是LSTM 的一種變體,保持了LSTM 效果的同時(shí)又使結(jié)構(gòu)更加簡(jiǎn)單,能夠很大程度提高訓(xùn)練的效率[12]。
首先對(duì)某公司的互聯(lián)網(wǎng)出口的網(wǎng)絡(luò)流量進(jìn)行聚合形成流量時(shí)間序列,對(duì)流量時(shí)間序列的異常值采用孤立森林算法去除,對(duì)流量時(shí)間序列的缺失值采用線(xiàn)性插值法補(bǔ)齊;然后分別對(duì)最近一天的流量時(shí)間序列、最近第二天的流量時(shí)間序列、最近一周前相同時(shí)間的流量時(shí)間序列分別滑動(dòng)48 個(gè)時(shí)間窗口,最終形成維度為48×3 的樣本特征[[Xt-47,Xt-(47+48),Xt-(47+336)],…,[Xt-1,Xt-49,Xt-337],[Xt,Xt-48,Xt-336]],樣本標(biāo)簽Yt的值等于Xt+1。將樣本特征和樣本標(biāo)簽形成的樣本集劃分為訓(xùn)練集和測(cè)試集,采用K 折交叉驗(yàn)證,在精確性方面采用均方根誤差(Root Mean Square Error,RMSE)和平均百分比誤差(Mean Absolute Percentage Error,MAPE)作為評(píng)估函數(shù)。
其中,n 為測(cè)試集的個(gè)數(shù);Predictedt+1為t+1 時(shí)刻的預(yù)測(cè)值,observedt為t 時(shí)刻的真實(shí)值;自定義差異性的度量函數(shù)DIFF 用來(lái)度量t+1 時(shí)刻預(yù)測(cè)值與t 時(shí)刻真實(shí)值之間的差異性,如果測(cè)試集的波動(dòng)性較強(qiáng)且DIFF 較小,則可能存在滯后性。需要注意的是,針對(duì)波動(dòng)較小的流量曲線(xiàn),則DIFF 的數(shù)值無(wú)法反映滯后性。
測(cè)試集2020.9.29 日20:30:00 到2020.10.01 日00:00:00 之間預(yù)測(cè)值和真實(shí)值如圖1 所示,橫軸代表為流量發(fā)生的時(shí)刻,其上標(biāo)代表星期,如212代表星期二的21:00 時(shí);縱軸代表為流量值的大小,預(yù)測(cè)結(jié)果MAPE=27.55,MSE=238.15,DIFF=43。從準(zhǔn)確性方面來(lái)看,預(yù)測(cè)值與真實(shí)值的趨勢(shì)較為一致,但從細(xì)節(jié)中不難發(fā)現(xiàn)流量極值部分預(yù)測(cè)存在明顯的滯后性,即流量的t+1 的預(yù)測(cè)結(jié)果和t 時(shí)刻的真實(shí)值較為一致。
圖1 GRU 模型測(cè)試結(jié)果
從上文可以看出,基于GRU 的流量預(yù)測(cè)模型雖然在準(zhǔn)確度方面基本滿(mǎn)足要求,但預(yù)測(cè)時(shí)存在較為嚴(yán)重的滯后性問(wèn)題,而流量預(yù)測(cè)的滯后性無(wú)論是對(duì)智能網(wǎng)絡(luò)的故障預(yù)測(cè)還是針對(duì)SDN 的流量調(diào)度均存在致命影響,流量預(yù)測(cè)的滯后性會(huì)導(dǎo)致流量預(yù)測(cè)變得毫無(wú)意義。鑒于此,流量預(yù)測(cè)的滯后性成為流量預(yù)測(cè)過(guò)程中的必須解決的一個(gè)難題。本文重點(diǎn)從多維特征輸入、基于日期的模型分類(lèi)、自定義損失函數(shù)等方面來(lái)改善流量預(yù)測(cè)的滯后性問(wèn)題,同時(shí)提高流量預(yù)測(cè)的準(zhǔn)確度。
基于GRU 的流量預(yù)測(cè)模型存在滯后性問(wèn)題主要是由于流量的自身規(guī)律性不明顯,模型傾向性加大了上一個(gè)時(shí)間步的流量大小所對(duì)應(yīng)的參數(shù)權(quán)重。通過(guò)對(duì)流量的規(guī)律性進(jìn)行分析發(fā)現(xiàn),流量呈現(xiàn)每周和每天的規(guī)律性,如圖2 所示,橫坐標(biāo)代表的是時(shí)刻,其上標(biāo)代表星期,坐標(biāo)點(diǎn)間隔3 小時(shí),其中周一到周五8:30~18:00 是工作時(shí)間,其他是非工作時(shí)間。
圖2 流量的規(guī)律性
根據(jù)上述分析,增加流量的時(shí)間屬性作為樣本特征,具體為將樣本標(biāo)簽對(duì)應(yīng)的時(shí)間分解為星期、小時(shí)、分鐘,同時(shí)針對(duì)流量存在突發(fā)的規(guī)律,增加流量的事件特征,根據(jù)流量的突發(fā)性大小共分為高、中、低3 種事件類(lèi)型,例如是否有視頻會(huì)議、是否有集體性活動(dòng)等,將時(shí)間特征和事件特征進(jìn)行獨(dú)熱編碼,輸入全連接神經(jīng)網(wǎng)絡(luò)[13],如圖3 所示。經(jīng)過(guò)多維特征的模型輸入,降低上一個(gè)時(shí)間步的參數(shù)權(quán)重,從而改善流量預(yù)測(cè)的滯后性。
圖3 多維特征流程圖
將2020 年8 月29 日到2020 年9 月30 日之間的流量作為樣本集,其中前幾個(gè)星期的流量作為訓(xùn)練集,最后一個(gè)星期的流量作為測(cè)試集,將每個(gè)樣本的144 維的特征向量輸入到雙向循環(huán)網(wǎng)絡(luò),將每個(gè)樣本的33 維的時(shí)間特征向量以及3 維的事件特征向量輸入到全連接神經(jīng)網(wǎng)絡(luò)。經(jīng)過(guò)測(cè)試發(fā)現(xiàn)滯后性明顯改善,與此同時(shí)準(zhǔn)確性也有所提高,輸出結(jié)果為MAPE=19.16,RSME=200.76,DIFF=28.59,如圖4 所示。
圖4 多維特征測(cè)試效果圖(局部)
考慮到非工作日的權(quán)重參數(shù)可能影響到工作日的模型參數(shù),本文將流量數(shù)據(jù)集的時(shí)間是否為工作日進(jìn)行分類(lèi),根據(jù)分類(lèi)結(jié)果分別建立工作日模型和非工作日模型,如圖5 所示。
圖5 日期模型的流程圖
工作日模型的輸入是31 維的時(shí)間特征向量,非工作日模型輸入是29 維的時(shí)間特征向量,法定節(jié)假日歸屬于非工作日類(lèi)型,流量特征向量和特征向量同3.1 小節(jié)所述。測(cè)試驗(yàn)證的結(jié)果為MAPE=12.2,RMSE=100.63,DIFF=34.4,從圖6 以及統(tǒng)計(jì)數(shù)據(jù)不難看出,DIFF 增大而MAPE 值和RMSE 值降低,說(shuō)明整體上滯后性問(wèn)題有所改善且準(zhǔn)確性進(jìn)一步提升。
圖6 日期模型的測(cè)試效果圖
在流量預(yù)測(cè)的過(guò)程中,尤其是在SDN 的調(diào)度場(chǎng)景中,對(duì)流量的峰值預(yù)測(cè)結(jié)果較為關(guān)注,預(yù)測(cè)值應(yīng)稍大于實(shí)際值為最佳。然而現(xiàn)有的樣本存在不平衡現(xiàn)象,即大部分樣本分布在非工作時(shí)間對(duì)應(yīng)的低值部分,導(dǎo)致峰值預(yù)測(cè)精度不高。為了解決此問(wèn)題,一方面從樣本不平衡的角度出發(fā),增強(qiáng)極大值的樣本數(shù)量,具體為通過(guò)重采樣極大值范圍的樣本特征,然后將樣本標(biāo)簽加入一定的白噪聲,新的樣本標(biāo)簽Ynew=Yold+Nt,其中Yold是重采樣前的樣本標(biāo)簽,Ynew是采樣后的 樣本 標(biāo)簽,Nt取[0,Yold×10%]區(qū)間內(nèi)的白噪聲。為了進(jìn)一步加大極大值預(yù)測(cè)錯(cuò)誤的懲罰,自定義模型的損失函數(shù):
其中,yt為樣本集的標(biāo)簽值,f(x)為模型的預(yù)測(cè)值;λ 用來(lái)調(diào)節(jié)極大值的范圍,本文選擇λ=1.2。使用與3.1 小節(jié)同樣的數(shù)據(jù)集,采用上述的樣本不平衡方法以及自定義損失函數(shù)進(jìn)行模型訓(xùn)練和預(yù)測(cè),測(cè)試結(jié)果為MAPE=15.93,RMSE=152.16。從圖7 中不難看出,峰值預(yù)測(cè)的準(zhǔn)確性進(jìn)一步提高,但極小值部分的預(yù)測(cè)準(zhǔn)確性有一定的下降,整體上符合預(yù)期。
圖7 自定義損失函數(shù)的測(cè)試效果圖
本文選擇循環(huán)神經(jīng)網(wǎng)絡(luò)GRU 作為流量預(yù)測(cè)的理論模型,針對(duì)預(yù)測(cè)過(guò)程普遍存在的滯后性以及準(zhǔn)確性不高的問(wèn)題,提出一種改進(jìn)后的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)GRU 模型,通過(guò)對(duì)預(yù)測(cè)過(guò)程中的結(jié)果分析,針對(duì)性采取多維特征輸入、基于日期的模型分類(lèi)、自定義損失函數(shù)多個(gè)步驟改進(jìn)預(yù)測(cè)的結(jié)果,其中多維特征輸入和基于日期的模型分類(lèi)對(duì)流量預(yù)測(cè)的滯后性有明顯改善,能大幅提升預(yù)測(cè)的準(zhǔn)確性,樣本再平衡以及自定義損失函數(shù)對(duì)流量峰值的預(yù)測(cè)能夠達(dá)到預(yù)期的目標(biāo)。后續(xù)的研究中將探索使用注意力機(jī)制[14]以及基于時(shí)間的卷積神經(jīng)網(wǎng)絡(luò)TCN[15]對(duì)流量預(yù)測(cè)的精度進(jìn)一步進(jìn)行提升。