宋 志 清
(張家口市科技館,河北 張家口 075000)
隨著人工智能技術和大數據技術的不斷發展,同時也伴隨著網絡市場的進一步改善和網絡服務行業的強烈需求,網絡流量數據預測引起了行業內的廣泛關注.為了嘗試預測網絡流量的更動趨勢,國內外研究者將各種統計學和數據挖掘學的模型試圖用到此項研究中,比如MARS模型、懲罰性回歸模型和聚類分析模型等.可是由于影響網絡流量的因素太多很難應用傳統統計學方法進行分析和預測,而通過神經網絡技術就可以順利的解決這一難題.
本文利用Python爬蟲中逆向JS技術對某一著名網站進行一段時間的持續跟蹤,得到此網站的用戶流量時間序列數據,根據此數據進行本次實驗.同時利用到LSTM神經網絡模型對得到的數據進行智能建模,通過分析和調整LSTM中的三項權重,得到最終的組合模型并對今后短期流量進行預測.
提到LSTM神經網絡,就不得不先介紹一下循環神經網絡(Recurrent Neural Network,RNN).因為RNN是LSTM神經網絡的基石,其中LSTM也是從原始的RNN結構中一步一步優化得來的.
循環神經網絡(Recurrent Neural Network,RNN),RNN不僅將基本神經網絡中的輸入層、隱藏層和輸出層中各個層級間權重連接起來,而且也將每層之間的神經元建立了權重連接.如圖1標準RNN網絡結構圖.
圖1 標準RNN網絡結構圖
長短期記憶神經網絡(Long Short-Term Memory,LSTM),此神經網絡為一種時間循環神經網絡.其主要是因為RNN易受到短時記憶的影響,當有一條足長的時間序列數據輸入到RNN中時,此神經網絡將很難把信息從早期傳遞到后期,從而會出現梯度爆炸和消失的嚴重問題,而LSTM神經網絡就是為解決這兩個問題而誕生的.
由上圖2可見,LSTM在普通RNN基礎上嵌入了三個特殊的門處理方法:遺忘門、輸入門和輸出門.以下為LSTM基本原理,它通過狀態門將信息進行選擇性記憶.其中,輸入包括ht-1,xt,輸出為ht,狀態為ct-1,ct.
圖2 LSTM網絡結構圖
遺忘門:決定從原狀態中拋棄什么信息,其中將原狀態和輸入信息添加到Sigmoid函數進行運算,來決定原狀態信息保留的數量.其中遺忘門公式為:
ft=δ(wfxt+ufht-1)
(1)
輸入門:對輸入的信息進行智能性的挑選,比較重要的信息就多記錄一點,不是太重要的信息就少記錄一點.它的原理是將原來的輸出信息和當前輸入信息導入到Sigmoid函數中進行計算,進而對信息進行挑選.輸入門公式為:
(2)
(3)
輸出門:其功能主要是管理輸出什么信息.和上面兩個門一樣,會先進入一個Sigmoid函數進行運算,從而決定需要輸出什么信息.其中傳入的信息先經過一個tanh層進行“激活”,然后再將激活的信息和Ot進行乘法運算,從而得到的信息ht就是LSTM的輸出信息.其輸出門公式為:
Ot=δ(w0xt+u0ht-1)
(4)
ht=Ot°tanh(Ct)
(5)
本實驗在Ubuntu系統下進行創建,首先在Python編程環境中應用命令行pip引入keras框架.其中核心采用Model模型,因為Model模型更適合于復雜環境下創建LSTM網絡.對于網絡流量這種大數據規模,采用LSTM與全連接層連接的方法,對未來網絡流量進行短期的預測.如圖3 Ubuntu導入keras.
圖3 Ubuntu導入keras
其中,應用時間序列中最后一天數據進行預分析,分析其數據是否具有周期性、平穩性和可預測性.如圖4中prophet簡易效果圖可得:數據周期性高有可預測性.
圖4 prophet效果圖
應用LSTM神經網路進行以后20天流量預測,如圖5,其中藍色為預測流量走勢,橘色為實現20天流量走勢.其中預測趨勢大體上和實際趨勢重合,說明此研究成功.
圖5 LSTM預測和實際走勢對比圖
本文應用LSTM神經網絡對某網站流量數據進行剖析和預測,其預測結果和實際中結果差距不到10%,即表明本次研究中所提出的LSTM預測模型是真實有效的,并且具有較為良好的預測能力.但美中不足的是,LSTM模型在高預測能力的同時也需要更多的運行時間,其運行效率有待進一步研究.