林峰,江荔
(福州職業技術學院,福州350108)
互聯網用戶的激增和上網行為的普及,給網站的正常運維帶來了挑戰。為了應對用戶的高并發訪問,負載均衡、緩存技術、分布式存儲是IT 運維人員常用的技術手段和解決方案。特別是緩存技術的使用,將Web 頁面內容存儲在專用的緩存服務器內存中,能夠提高網頁的加載速度,減少磁盤的I/O 操作,極大地緩解網站的負載,為用戶帶來更好的體驗。但是緩存服務器的數量和性能是有限的,特別是中小企業的Web站點,不可能將龐大的Web 頁面內容完全存儲到緩存服務器中。因此如何預測未來高熱度的Web 頁面地址,并將其內容提前存儲到緩存服務器中已成為當前研究的熱點之一[1-3]。
時間序列分析是用來研究數據隨時間變化而變化的一類技術,它的基本出發點是事物的發展具有一定的連續性,會按照本身固有的規律進行,只要規律依賴的條件不產生質的變化,則事物未來的基本發展趨勢仍將會有規律的延續下去。Web 頁面訪問量就可采用時間序列分析技術進行預測。時間序列分析常用的算法包括移動平均(MA)、指數平滑(ES)和差分自回歸移動平均模型(ARIMA),這些算法基于數理統計,對大數據量的時間序列預測存在精度不高的問題[4]。LSTM(Long Short Term Memory,長短期記憶網絡)是一種循環神經網絡,是當前深度學習技術領域中較為熱門的算法模型,在語音識別、時間序列、機器翻譯等領域具有廣泛而成功的應用,對大數據量的時間序列預測有較高的精確度[5-6]。
本文基于循環人工神經網絡的理論,通過對Web頁面訪問量進行標準化預處理,構造含1,169 個參數的長短期記憶網絡,經過100 輪的訓練,長短期記憶網絡損失函數可逐步收斂,通過樣本集的測試,模型均方根誤差(Root Mean Square Error,RMSE)可達19.45,具有較高的準確性,可用于Web 頁面訪問量的預測,結合Web 緩存等技術,對提高網站的整體性能將有顯著的成效。
循環神經網絡(Recurrent Neural Network,RNN)是一類遞歸神經網絡,可處理序列數據,具有記憶性、持續性等特點,能以很高的效率對序列特征進行學習,在機器翻譯、語音識別和個性化推薦領域中,有著廣泛的應用。LSTM 是循環神經網絡RNN 的一種改進版本,由Hochreiter 和Schmidhuber 于1997 年提出,可解決傳統RNN 網絡梯度消失、不能有效保留長時間記憶信息等缺點。LSTM 通過輸入門(Input Gate)、忘記門(Forget Gate)、候選門(Candidate Gate)、輸出門(Output Gate)等4 個相互交互的“門”單元,控制著記憶信息值的修改。
忘記門是較為重要和復雜的門單元,其作用是控制著要從前面的記憶中丟棄多少信息。以音樂個性化推薦為例,用戶過去的行為操作,對當前的推薦決策有重要的影響:對于正向操作行為,如用戶對某一位歌手的歌曲特別感興趣,那么這種正向操作的“記憶”將得到加強;相反對于負向操作行為,如刪除、跳過等行為,其對應的信息則會逐漸減弱。忘記門是通過如公式(1)所示的激活函數來實現的:

式中通過將上一隱藏層的輸出信息St-1與當前的輸入xt進行線性組合,利用激活函數將函數值進行壓縮,得到一個0 到1 之間的值:當該值越接近于1 時,表征記憶體保留的信息越多;當該值越接近于0 時,表征記憶體丟棄的信息越多[7-9]。
本文所使用的時間序列數據集,來自互聯網標準測試數據集“Web Traffic Time Series Forecasting”,該數據集記錄了近145,000 篇維基百科頁面,從2015 年7月1 日到2016 年12 月31 日近550 天內,每日的訪問量情況。數據格式如表1 所示。

表1 數據集樣例
其中,中文維基百科“3C”詞條的頁面日訪問情況如圖1 所示,可以觀測到該訪問曲線存在兩個高峰值,若能成功預測出現高峰的日期,并提前對該頁面內容進行預處理,勢必能極大提高網站性能,緩解服務器壓力。

圖1 維基百科某頁面日訪問情況
頁面訪問量數據原始值取值范圍差異過大,不適合直接用于分析和建模,需要經過標準化預處理。根據本文問題域的特點,采用如公式(2)所示的最大最小標準化方法,經過預處理后的時間序列值的范圍在[0,1],適合進行統一的建模分析使用。

數據集經過最大最小標準化預處理后,按時間遞進關系,將前70%的數據用做訓練集,后30%的數據用做測試集。需要注意的是,與傳統有監督學習建模方法不同,訓練集和測試集必須嚴格按照時間排序,不能隨機抽選,以避免模型無法學習到正確的時間特征。
經過多次分析測試,本文所構建的LSTM 循環神經網絡主要由LSTM 及DENSE 兩個層級構成,其中LSTM 層共有16 個神經元,涉及參數1,152 個;DENSE層共有1 個神經元,涉及參數17 個,整個神經網絡合計參數1,169 個。
此外,在LSTM 循環神經網絡迭代訓練過程中,使用的損失函數為均方誤差(Mean-Square Error,MSE),優化函數使用標準的Adam 函數,整個神經網絡具有較高的學習效率及較快的收斂速度。
本次實驗所用計算機設備CPU 型號為英特爾Xeon E5-2650,8 核心16 線程,主頻2.2GHz;內存16GB,DDR3 代。LSTM 網絡的構建前端使用Keras 2.2.2,后端使用TensorFlow 1.11.0。
通過使用開源框架Keras 及TensorFlow 構建LSTM 網絡模型,經過100 輪的訓練,用均方誤差MSE表征的損失函數,已可逐步收斂穩定,且不再隨訓練周期的增加而減小。損失函數具體收斂情況如圖2所示。

圖2 損失函數收斂情況
關于所訓練模型的準確性情況,以中文維基百科“3C”詞條為例,經測試,訓練集(前70%的數據)均方根誤差RMSE 值為8.64,測試集(后30%的數據)均方根誤差RMSE 值為19.45,具有較高的準確性,可用于實際生產環境。同時觀察如圖3 所示的曲線,網絡模型可以通過學習到的第一次波峰特征,準確預測到第二次出現波峰的時間,預測數據與實際數據擬合情況良好。

圖3 模型擬合情況
互聯網用戶的激增和上網行為的普及,為網站的正常運維帶來了挑戰。如何預測未來高熱度的Web頁面地址,并將其內容提前存儲到緩存服務器中已成為當前研究的熱點之一。本文以互聯網標準測試數據集“Web Traffic Time Series Forecasting”為研究對象,通過對數據進行最大最小預處理,將前70%數據作為訓練樣本集,后30%數據作為測試樣本集,構建了含1,169 個參數的LSTM 網絡,經過100 輪周期的訓練,模型可逐漸收斂,最終測試集均方根誤差可控制在20內,具有較高的準確性,可與Web 緩存技術進行結合,對網站性能的提升將有顯著的成效。