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

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

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

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

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

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

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