馬學森,陳樹友,許向東,儲昭坤
(1.合肥工業大學計算機與信息學院,安徽 合肥 230601;2.中國電信股份有限公司研究院,廣東 廣州 510630)
根據思科2020年的統計[1],視頻流量占據了整個網絡流量的 80%。在傳統網絡架構中,用戶的訪問請求需要經過基站的接入、核心網的訪問以及冗長的鏈路回傳才能完成,頻繁的用戶請求容易造成核心網絡的擁塞[2]。將熱點視頻在邊緣側進行緩存,一方面可以減少縱向流量,另一方面還能降低時延,提升用戶體驗[3]。
其中,各類視頻門戶網站的電視劇播放量又占據了絕大部分的視頻流量,并且電視劇通常周期性地更新劇集。為了減少中心節點與邊緣節點內容的反復遷移,將未來一個星期內流行度較高的視頻放入緩存更有價值,因此對視頻流行度進行準確的中長期預測成為急需解決的問題[4]。
傳統的視頻流行度預測模型大致分為兩類:一類是以線性回歸與自回歸模型為代表的時間序列預測模型,參考文獻[5-7]基于歷史流行度構建回歸預測模型,此類模型雖然訓練簡單,但非線性映射能力差,很難捕捉流行度的動態變化,并且無法保留時間序列上的信息依賴,隨著時間步長的增加會逐漸失去對數據的學習能力,在中長期預測中表現不佳。另一類是基于特征提取與用戶聚類的有監督學習方法來加強預測效果[8-9],此類方法在一定程度上提高了模型的預測精度,但由于引入過多的外部變量,導致模型復雜度較高,極大地增加了模型的訓練難度,不適用于實際應用場景。隨著深度學習理論的不斷發展,具有較強學習能力的循環神經網絡(recurrent neural network,RNN)和長短期記憶(long short-term memory,LSTM)網絡主要應用于模式識別、語音處理等方面[10],近年國內外學者也將其應用在船舶航跡、小區的負荷指標等預測領域[11-12],實驗表明預測精度優于傳統方法,但是在視頻流行度預測領域的應用有待進一步研究。
基于以上分析,本文提出基于神經網絡與馬爾可夫組合模型的視頻流行度預測算法,利用LSTM 結合雙向 RNN構建雙向長短期記憶(bi-2irectional long short-term memory,BiLSTM)網絡模型,可以保留時間序列上兩個方向的特征依賴;并且考慮馬爾可夫具有根據系統當前狀態對系統未來狀態進行預測的性質[13],利用BiLSTM 網絡訓練時產生的誤差信息建立馬爾可夫修正模型,在避免引入過多變量導致模型復雜度增加的情況下進一步提高了網絡模型的預測精度。
回歸模型本質上是對數據的線性擬合,不容易捕捉非線性的波動趨勢;傳統的BP神經網絡雖然可以有效地解決非線性映射問題,但在長時間序列訓練過程中會出現梯度爆炸和梯度消失等問題。LSTM 通過引入控制門機制,可以在一定程度上避免此類問題,但LSTM的單向學習機制只能在一個方向上學習時間序列的數據特征。在視頻流行度的預測中,某個時間點視頻流行度的預測值,除了可由過去的數據進行推導計算,未來時刻的數據也對當前時刻流行度的計算有影響,因此本文在LSTM的基礎之上融入雙向RNN隱藏層構建BiLSTM網絡模型。
BiLSTM網絡模型如圖1所示,BiLSTM通過神經元之間的雙向隱藏層來保存兩個輸入方向的信息,可以有效學習流行度序列上兩個方向的關系依賴,增強了模型的學習能力;同時通過多層神經網絡的疊加結構實現了流行度序列深層次的特征挖掘,有效提高了模型的預測效果。

圖1 BiLSTM網絡模型
為了進一步提高模型的預測精度,如果通過繼續引入特征變量的方式,新的變量會作為輸入層的參數重新訓練,過多的變量會導致模型訓練困難。基于上述考慮,本文在不引入新的外部變量的情況下,通過對網絡模型的預測誤差建立馬爾可夫修正模型來進一步提高模型的預測精度,如圖2所示。

圖2 馬爾可夫修正模型

其中,Pt+1為t+1時刻error狀態空間的概率分布,基于等距原則,進而求得誤差修正值,如式(2)所示:

因此,本文視頻流行度的預測模型可以定義為式(3),其中pre2icti為網絡模型的預測值,mi22lei為求得的修正值,最終視頻流行度的求解可以轉化為Finali的求解:

電視劇周期性地更新劇集,其中內容熱度可以體現當前劇集的受歡迎程度,用序列Popularity={popularity1,popularity2,… ,popularityn}描述電視劇當前時刻的流行度。其中內容熱度Popularity由平臺綜合播放量以及互動因子等指標計算,更加能夠反映視頻的流行度。研究指出,電視劇的微博搜索指數和百度搜索指數與電視劇流行度具有很強的線性關系[14],因此分別構造微博指數序列 In 2ex1={in2ex11,in2ex12,…,in2ex1n}和百度搜索指數序列 I n2ex2={in2ex21, in2ex22,…,in2ex2n};另外在新劇集更新當天的電視劇播放量會比平常有一個明顯的增加,因此利用One-hot編碼構造序列 F lag={+ l ag1, +lag2,… , + lagn}標記該變化,其中+lag1代表星期一,+lag7代表星期日;最后利用預測模型φ預測下一個時間單位的電視劇流行度,如式(4)所示。

問題定義:在線電視劇T,已經上線i天,流行度記為Popularity,特征序列為Feature,預測目標為未來幾天流行度的記錄{popularityi+1,popularityi+2,… ,popularityi+n}。
基于第2.2節構建的馬爾可夫修正的BiLSTM網絡模型,本文設計了Mar-BiLSTM算法來求解視頻流行度預測問題,算法框架如圖3所示。

圖3 Mar-BiLSTM算法框架
Mar-BiLSTM算法大致可以分為5個步驟,算法的詳細流程如下。
步驟1基于Scrapy技術對電視劇的流行度進行特征分析,得到In2ex1、 I n 2ex2、 F lag 等特征序列。
步驟 2獲取電視劇從上線開始后 3個星期的內容熱度值popularityi,微博搜索指數值in2ex1i,百度搜索指數in2ex2i;+lagi表示當天是否為劇集更新日,當+lagi=1時表示當天有劇集更新,+lagi=0 時表示當天沒有劇集更新;進而根據特征向量序列構建特征向量矩陣。
步驟 3利用特征向量Feature進行模型訓練,取序列Popularity前兩個星期的數據作為模型的訓練數據,最后一個星期的數據用于模型的檢驗;同時將序列處理為適合監督學習的數據。
步驟 4對序列進行差分處理,以此減小數據波動對模型訓練的影響;同時采用min-max策略對原始數據進行歸一化處理來消除量綱的差異,其轉換如式(5)所示:

步驟 5采用自適應估計方法計算每個參數的學習率;同時為避免過擬合現象采用 2ropout機制來提高模型的泛化能力;最后利用網絡模型的預測誤差建立馬爾可夫修正模型,根據式(3)得到修正后的流行度預測值Finali。
Mar-BiLSTM算法實現的偽代碼如算法1所示。
算法1Mar-BiLSTM算法
輸入訓練集 Train_set,測試集 Test_set,屬性(特征序列)
輸出視頻流行度預測值
步驟1進行特征分析,得到特征序列:
Popularity={popularity1,popularity2,…,popularityk},
k=1,2,…,21
In2ex1={in2ex11,in2ex12,…,in2ex1n},n=1,2,…,14
In2ex2={in2ex21,in2ex22,…,in2ex2m},1,2,…,14
Flag={+lag1, +lag2,…,+lags},s=1,2,… ,14
步驟2將各個時間序列進行整合得到輸入時間序列:
concatSequence (i,i+ 1,…,t)
步驟3將時間序列數據轉化為有監督數據:
I+I>n_in an2I< 0
input sequence (t -n, …,t-1)
Else i+I> 0 an2I<n_out
+orecast sequence (t,t+ 1, …,t+n)
步驟4max-min特征變換:
Return (Train_set)
Return (Test_set)
步驟5Train_set Train BiLSTM-Markov
Test_set Test BiLSTM-Markov
Return(均方根誤差、平均絕對誤差)
Return(流行度預測值)
en2
Mar-BiLSTM算法時間復雜度可分為5個部分。
步驟1時間復雜度可以記為O(|m|);
步驟2序列整合的時間復雜度為O(|m|);
步驟 3序列轉化為有監督數據的時間復雜度為O(|n||m|);
步驟 4max-min特征變換的時間復雜度為O(|n||m|);
步驟 5計算均方根誤差及平均絕對誤差的時間復雜度為O(|n||m||i|);因此,Mar-BiLSTM算法的時間復雜度為O(|n||m|)。
實驗環境為聯想 Thinkpa2 E440筆記本計算機,CPU為Intel? CoreTM i5-4210 CPU @ 2.60 GHz,內存為8 GB,操作系統為Bin2ows10教育版,使用基于Python3.5語言的PyCharm社區版集成開發工具構建神經網絡模型,利用MATLAB R2018b開發工具進行對比試驗設計。
實驗采用預測模型常用的均方根誤差(root mean square2 error,RMSE)及平均絕對誤差(mean absolute error,MAE)作為預測性能的評價標準[15]。RMSE可以評價數據的變化情況,RMSE值越小,表示模型有更好的預測精確度,MAE可以更好地反映預測值與真實值偏離程度的實際情況,如式(6)、式(7)所示。

隱藏層的層數以及神經單元個數的選擇對網絡模型的性能影響很大,因此需要選擇訓練誤差最小的網絡參數。不同W值下的RMSE值如圖4所示,在隱藏層數W=2、隱藏層單元個數L=6時的RMSE值最小,過多的隱藏層或者單元數都會使得網絡過于復雜而喪失網絡優勢。因此,選擇W=2、L=6作為網絡模型的訓練參數。

圖4 不同W值下的RMSE值
實驗爬取電視劇《愛情公寓5》自2020年1月12日上線到同年2月1日的全網數據(其中包括播放量、評論數、點贊數、收藏數、百度搜索指數與微博搜索指數等),使用前兩個星期的數據訓練模型、后一個星期的數據用來驗證本文算法的優越性:首先選取回歸模型中常用于時間序列預測的灰色預測(grey mo2el,GM)與指數平滑(exponential smoothing,ES)驗證算法的有效性,進而選取神經網絡中常用于時間序列預測的傳統BP神經網絡和 LSTM 神經網絡驗證算法的優越性;最后通過爬取2021年1月至2021年3月期間的10部首播電視劇的數據對其排名進行預測,以此驗證算法的普適性。
4.4.1 LSTM與回歸模型對比
本節設計LSTM與GM、ES之間的對比實驗,以此來驗證 LSTM 的預測精度優于傳統回歸模型。
GM、ES及LSTM模型的預測值對比如圖5所示,由于流行度數據不符合冪指數規律,因此基于指數規律建模的GM沒有很好地預測數據的波動規律;ES利用序列差分機制,可以預測很小的波動,但并不吻合真實數據的波動規律;LSTM基于 RNN與門控單元機制可以學習長時間序列上的信息依賴,對未來數據的波動給出了大致的

圖5 GM、ES及LSTM模型的預測值對比
預測,驗證了 LSTM 的預測效果優于傳統回歸模型。
4.4.2 BiLSTM與BP、LSTM模型對比
本節設計了LSTM網絡與BP神經網絡之間的對比試驗,就其預測精度及其收斂性進行分析;在此基礎之上,引入BiLSTM進行對比實驗,以此驗證BiLSTM的優越性,為Mar-DBiLSTM組合預測理論模型提供實驗數據支撐。
BP、LSTM 模型訓練誤差如圖6所示。BiLSTM、BP、及 LSTM 模型預測值對比如圖7所示。從圖6可以看出,LSTM較BP神經網絡的收斂速度要快,在迭代次數為200次左右時,網絡已經趨于收斂,此時BP神經網絡的訓練誤差還處于較高水平;同時從圖7可以看出,BP神經網絡雖然能夠預測數據大致的波動趨勢,但 LSTM的預測曲線更加貼合于真實值,因此LSTM不僅學習性能強于傳統的神經網絡,而且其預測效果也優于普通的BP神經網絡;基于LSTM改進的BiLSTM 可以學習時間序列上兩個時間方向的信息依賴,因而能夠更好地對數據的波動趨勢進行學習,從圖7也可以看出,BiLSTM較LSTM、BP均具有更高的預測精度,驗證了本文BiLSTM模型預測效果的優越性。

圖6 BP、LSTM模型訓練誤差

圖7 BiLSTM、BP及LSTM模型預測值對比
4.4.3 Mar-BiLSTM與BiLSTM模型對比
在前兩輪實驗的基礎之上,為了驗證Mar-BiLSTM 算法的有效性,設計該對比實驗。通過第2.2節的描述,對BiLSTM的預測誤差構建馬爾可夫修正模型,最終可以求得未來幾天預測誤差可能的狀態區間,見表1。

表1 模型預測誤差狀態區間
由表1可知,26號最有可能的誤差狀態區間為 E3,由式(2)計算得到誤差修正值為 22,BiLSTM模型的預測值為9 096,根據式(3)得到修正后的預測值為9 091。在對27號誤差狀態進行預測時,將26號誤差預測值作為已知值,并將最原始的信息剔除,按照上述方法重復,可以計算出接下來6天的誤差修正值。
由圖8可知,經馬爾可夫修正過的BiLSTM預測值要更加貼近真實值,預測效果更好,證明了本文算法的優越性。

圖8 Mar-BiLSTM、BiLSTM模型預測值對比
綜上,根據第4.2節提出的性能指標,給出對比預測模型的性能分析,見表2。

表2 性能對比
4.4.4 電視劇排名預測
為了進一步驗證算法的普適性,從全網爬取2021年1月至3月期間首播的10部不同種類的電視劇數據,并對其排名進行預測。由于電視劇并非在同一時間上線,其上線時間越長,累積播放量會越高;并且由于劇集數的不同,累計播放量也會有相應的影響。因此,為了更加準確地體現電視劇的真實排名,選擇均集播放量和均天播放量的加權值作為衡量電視劇真實排名的依據,排名預測結果見表3。
從表3可以看出,排名靠前的《斗羅大陸》《錦心似玉》《愛的理想生活》等熱播電視劇得到了準確的預測,排名靠后的《你好,安怡》和《這個世界不看臉》等冷門電視劇也有較好的預測。因此,本文算法對不同類型電視劇的流行度均給出了不錯的預測效果,證明了算法的普適性較高。

表3 電視劇排名預測結果
本文針對傳統視頻流行度預測算法非線性映射能力差,在中長期預測中存在精度低、自適應性弱等缺點,提出基于神經網絡與馬爾可夫組合模型的視頻流行度預測算法。該算法在預測過程中兼具時間相關性和非線性的特征,充分保留了時間序列上前向、后向兩個方向的長期依賴信息;并利用BiLSTM網絡訓練時產生的預測誤差建立馬爾可夫修正模型,在避免引入過多變量導致模型復雜度增加的情況下進一步提高了模型的預測精度。下一步工作擬將 Mar-BiLSTM 算法引入邊緣側的緩存調度策略中,嘗試建立根據視頻流行度預測的緩存替換策略,提高用戶的服務體驗質量。