朱思淼,魏世偉*,魏思恒,余敦輝,2
(1.湖北大學計算機與信息工程學院,武漢 430062;2.湖北省教育信息化工程技術研究中心(湖北大學),武漢 430062)
隨著Web3.0 時代的到來,互聯網應用技術越來越圍繞用戶個性化網絡而蓬勃發展,隨之而來的是海量數據下信息過載與數據篩選所帶來的挑戰,因此,如何為用戶提供個性化推薦成為當下研究熱點之一。
近幾年,一種新型的基于視頻時間軸且可顯示在視頻中的文本評論方式——“彈幕”迅速占領市場,并廣受網民喜愛。起初彈幕只是小范圍流行于一些動漫網站,伴隨彈幕良好的交互性與娛樂性,越來越多的主流視頻網站如騰訊視頻、愛奇藝視頻都增加了彈幕評論的功能,最初的動漫彈幕網站嗶哩嗶哩(Bilibili)視頻網如今也成為了國內最大的互聯網自制視頻網站,而世界最大的視頻網站YouTube 也出現了彈幕評論插件。彈幕評論具有社交性和情感性兩方面特點,可用來作為有效數據完成對視頻推薦系統的改進與完善。
目前,針對彈幕評論數據的研究并不多,尤其在推薦系統中,彈幕數據價值尚未被充分挖掘,在當下海量“短視頻+短評論”的視頻環境下,大量用戶的自制視頻缺少評分和分類,對于視頻的推薦仍然以傳統的協同過濾方法為主。彈幕不同于傳統的文本評論,其基于視頻時間軸的即時性,可以從一定程度上反映視頻的內容,所以通過對于彈幕的信息挖掘后,可基于視頻內容進行推薦。通過對于彈幕的情感分析,可以更好地發揮彈幕自身的情感性,同時也為源源不斷的自制視頻在內容上進行了情感分類。
針對網絡上大量自制視頻缺少用戶評分、推薦準確率不高和對彈幕數據情感性未充分利用的問題,本文提出了一種基于彈幕情感分析和主題模型的視頻推薦算法(Video Recommendation algorithm based on Danmaku Sentiment Analysis and topic model,VRDSA)。通過視頻間的相似度、視頻的播放量、收藏數、點贊數等特征計算視頻的綜合認可度,并結合用戶對視頻的偏好度來完成對視頻的推薦。實驗結果表明,本文算法對彈幕進行情感分析,并融合主題模型對視頻進行推薦。算法充分挖掘了彈幕數據的情感性,使推薦結果更加準確。
當前,眾多學者對中文彈幕進行了研究,并取得一系列成果:文獻[1]從傳播學角度研究了彈幕的作用與受眾,指出彈幕正以積極的態勢發展,并具有較強研究價值和商業價值;文獻[2]提出對視頻中的彈幕進行情感分析,雖然主要針對視頻片段,但為彈幕的研究方式提供了新思路;文獻[3]通過對彈幕進行分析,并根據彈幕數據提出了一種對用戶進行聚類的算法,主要研究方向是用戶的分類;文獻[4]提出的融合協同過濾和主題模型的彈幕視頻推薦算法(Danmaku video Recommendation algorithm combing Collaborative Filtering and Topic model,DRCFT)融合了協同過濾和LDA(Latent Dirichlet Allocation)主題模型,基于彈幕對視頻進行了推薦系統的完善,但未從情感維度對彈幕進行分析,沒有充分利用彈幕的情感性。盡管中文彈幕有較強的研究意義,但目前仍存在一些研究難點:1)彈幕文本過于簡短、口頭化;2)彈幕中容易出現大量網絡用語,難以使用傳統的情感詞典進行分析;3)彈幕往往會出現與視頻相關度較低的內容。因此,對彈幕數據的預處理是進行彈幕研究過程中非常關鍵的步驟。
彈幕的情感分析與傳統中文文本的情感分析緊密相關,但其領域性更強,且彈幕評論會隨著視頻內容變化而不斷變化,因此不能像處理商品評論一般直接根據評論內容判斷視頻的情感極性。目前針對彈幕文本情感分析的主要方法有基于情感詞典的方法和基于機器學習的方法。情感詞典可通過人工編寫、啟發式算法來構建,且不同領域的情感詞典對文本情感分析結果也有較大的影響,文獻[5]提出了一種基于詞向量的情感詞典構建方法,以多部已有中文情感詞典為基礎,結合詞嵌入表示方法,構建了一部面向彈幕領域的情感詞典。基于機器學習的方法需要大量的訓練數據且依賴對數據一定規模的人工標注,文獻[6]根據彈幕碎片化、口語化的特點提出了基于詞頻-逆文本頻率指數(Term Frequency-Inverse Document Frequency,TF-IDF)與支持向量機(Support Vector Machine,SVM)的情感極性分析模型,利用較少的已標注樣本完成對大量未標注彈幕評論樣本的情感極性分類。文獻[7]利用了彈幕包含時間序列的特點,基于長短期記憶(Long Short-Term Memory,LSTM)網絡模型提取彈幕評論的深層特征,利用彈幕評論文本中的依賴關系突出關鍵情感詞的情感權重。由于彈幕區別于傳統評論的多種特性,對彈幕領域的情感分析研究仍有待發展。
LDA 主題模型是一種文檔主題生成模型,該模型假設每篇文章都是以一定概率選擇某個主題,然后從這個主題中以一定概率選擇一個詞語,最后由若干個選出的詞語構成。LDA 主題模型在概率潛在語義分析(probabilistic Latent Semantic Analysis,pLSA)的基礎上利用Dirichlet 分布得到文檔主題和詞語的先驗分布,并通過Gibbs 采樣來得到文檔中的文檔-主題分布和主題-詞語分布。LDA 主題模型的圖模型結構如圖1所示。
圖1 中,α和β都是Dirichlet 分布,通過Gibbs 抽樣分別得到文檔i的主題分布θi和主題Zi,j的對應詞語分布;通過主題分布θi得到文檔i中第j個詞的主題Zi,j;最后從詞語分布中采樣生成詞語Wi,j。
文獻[8]中提出了基于LDA 主題模型進行文本相似度計算的方法,增強了文檔的向量表示,使相似度的準確率更高;文獻[9-10]分別將LDA 主題模型用于推薦系統的改進,但都沒有對彈幕數據進行研究。
本文從視頻內容的情感分布、視頻的主題和視頻的認可度三方面入手,分別對視頻的彈幕、視頻的標簽、視頻的播放數與收藏數等用戶互動指標進行量化,提出了VRDSA。VRDSA 通過視頻彈幕得到視頻間情感向量的相似度,基于視頻標簽得到視頻間主題分布的相似度,進而得到視頻的綜合相似度,然后結合用戶的歷史記錄得到用戶對視頻的偏好度;接下來,基于視頻的播放數、收藏數等指標對視頻的大眾認可度進行量化,并結合用戶歷史記錄計算視頻的綜合認可度;最后以用戶對視頻的偏好度為權重,預測用戶對視頻的認可度,實現對用戶個性化的推薦。該算法解決了網絡自制視頻沒有用戶評分,且缺少情感標簽因而難以針對視頻自身內容進行分析并推薦的問題。
VRDSA的步驟如下:
1)對視頻中的彈幕文檔進行預處理,使用情感詞典進行情感詞匹配,得到視頻的情感向量,并通過情感向量計算視頻間的情感相似度。
2)對視頻自帶標簽進行LDA 主題建模,得到每個視頻各自標簽的主題分布,使用標簽的主題分布計算視頻之間的主題相似度。
3)將視頻之間的情感相似度和主題相似度進行融合,得到視頻之間的綜合相似度,并結合用戶的歷史記錄計算用戶對目標視頻的偏好度。
4)對視頻的點贊量、播放量等指標進行量化,得到視頻的大眾認可度。然后結合用戶的歷史記錄與視頻的綜合相似度計算視頻的綜合認可度以調整目標視頻的認可度。
5)基于用戶偏好度和視頻的綜合認可度,將用戶對視頻的偏好度作為權重來預測用戶對視頻的認可度,最終通過用戶對視頻的認可度來生成top-k推薦列表,完成推薦。
VRDSA的流程如圖2所示。

圖2 VRDSA流程Fig.2 Flowchart of VRDSA
2.1.1 彈幕數據獲取和預處理
雖然目前大部分視頻網站和應用都加入了彈幕評論的功能,但較早引入彈幕的Bilibili視頻網依然是國內最大的彈幕視頻網站,它擁有著大量社區用戶和網絡自制視頻,并且有獨特的彈幕文化,是彈幕研究的首選網站。因此本文利用Python中的requests庫和bs4庫來爬取Bilibili 視頻網中的彈幕可擴展標記語言(eXtensible Markup Language,XML)文件,去除重復彈幕,利用Jieba庫并引入文獻[8]中構建的彈幕文本情感詞典對彈幕文檔進行分詞,使用停用詞表去除彈幕中無用詞匯。經過預處理后的每條彈幕都相當于一個詞語集合。
2.1.2 視頻情感向量計算
本文選用大連理工大學中文情感詞匯本體庫及文獻[9]中構建的彈幕文本情感詞典來進行視頻情感向量的計算,處理彈幕中的網絡語言時,結合兩種情感詞典可以取得更好的效果。根據情感詞典中的詞語在7個情感大類中的情感強度對每個詞構造一個7維的情感向量EW=,其中每個維度代表著一種感情,分別為:樂、好、怒、哀、懼、惡、驚。如“滑稽”一詞的情感向量EW=(3,0,0,0,0,3,0),表明它在“樂”與“惡”之間都有一定的感情傾向。通過對彈幕的預處理后,每條彈幕可看作是若干詞語的集合,將該集合中的詞與情感詞典進行匹配,在匹配的過程中,彈幕的其他無關詞匯會被過濾,然后將匹配后的集合中各個詞語的情感向量相加且歸一化處理,得到每條彈幕的情感向量為:

其中:代表彈幕d中第i個情感詞的情感向量;M為情感詞的向量求和后7 個維度中的最大值,以此進行歸一化處理。若經過預處理后的彈幕沒有與情感詞典相匹配的詞,則不對該條彈幕進行計算。
對視頻中所有彈幕的情感向量求平均值,得到視頻的情感向量:

其中:n為視頻中彈幕的數量為第k個彈幕的情感向量。
2.2.1 視頻的情感相似度
在計算得到視頻的情感向量EV后,可通過余弦相似度(Cosine Similarity)來計算兩個視頻之間的情感相似度:

其中:是視頻i的情感向量是視頻j的情感向量是視頻i的情感向量中第k個維度的情感指數。通過情感向量的余弦相似度可計算視頻i與視頻j在情感維度的相似性。
2.2.2 視頻的主題相似度
現在大部分視頻網站在用戶上傳視頻時,通常引導用戶為視頻添加標簽以確定視頻的主題以便分類。標簽一般由多個短詞語組成,可以從多個方面體現視頻的主題。這種由多個主題詞組成的標簽可用來計算視頻之間的主題相似度。
針對視頻標簽的處理,本文使用LDA 主題模型以多個視頻的標簽詞語集合作為語料庫,采用Gibbs 采樣算法進行建模,得到視頻的標簽主題分布矩陣,并計算視頻標簽之間的主題相似度,以此反映視頻之間的主題相似度:

其中:代表視頻i的主題分布,可將其視作一個m維的向量(m為LDA 主題的數量)代表視頻i的主題分布中第k個主題的權重。通過視頻標簽主題分布的余弦相似度計算出視頻i和j之間的主題相似度。
計算出視頻的情感相似度和主題相似度后,通過加權求和的方式將兩種相似度融合得到視頻之間的綜合相似度:

其中:simV(Vi,Vj)代表視頻i,j之間的綜合相似度;代表視頻i,j之間的情感相似度代表視頻i,j之間的主題相似度;α為權重系數。當α=1 時,視頻的綜合相似度等于視頻的情感相似度,此時視頻缺少視頻標簽;當α=0 時,視頻的綜合相似度等于視頻的主題相似度,此時視頻缺少彈幕。
用戶對視頻的偏好度利用用戶的歷史觀看視頻集合Hu和集合中視頻與目標視頻的相似度得到:

其中:simV(Vi,Vk)為用戶u歷史觀看視頻Vi與目標視頻Vk的相似度;|Hu|為歷史觀看視頻集合的數量。
目前,類似于YouTube、Bilibili 這類綜合視頻網站平臺擁有大量網絡自制視頻,由于這些視頻數量多,主題雜,內容、風格差異大,難以像電影評分系統一樣來衡量視頻的認可度,因此可以充分利用視頻的用戶互動數據如點贊數、收藏數、分享數等來量化視頻的認可度。本文提出了視頻的大眾認可度和綜合認可度兩個認可度量化值。
Bilibili 視頻網站中的視頻用戶互動指標如表1 所示,其中,投幣數是觀看視頻的用戶將自己的網站虛擬貨幣贈送給視頻創作者以此作為激勵,此虛擬貨幣無需充值。

表1 視頻用戶互動指標Tab.1 Video user interaction metrics
基于Bilibili 視頻的用戶互動數據的設置方式,視頻k的大眾認可度計算方式如下:

其中:β為各用戶互動數據指標的權值,通過對Bilibili 視頻網視頻排行榜中視頻分數的擬合,結合層次分析法(Analytic Hierarchy Process,AHP)和熵權法共同確定。考慮到評論對于視頻的評價有正向和反向,因此未將評論數replynum作為衡量視頻大眾認可度的指標。具體權重數值如表2所示。

表2 視頻用戶互動指標權重Tab.2 Weights of video user interaction metrics
接下來,對未經過歸一化處理的大眾認可度進行歸一化處理,得到最終的大眾認可度:

其中MAX代表未歸一化之前大眾認可度的最大值。
為了避免部分視頻大眾認可度過高對推薦結果造成的影響,使用綜合認可度來調整目標視頻的認可度。通過視頻的綜合相似度得到視頻k的鄰近項目集Nk,結合用戶u的歷史記錄項目集Hu得到兩個集合的交集I,使用式(8)相同方法,可以計算出交集I中任意視頻i的大眾認可度Recpi。最后,計算交集I中視頻和目標視頻的大眾認可度平均值,得到目標視頻的綜合認可度:

其中:Recpi為視頻k的鄰近項目集與用戶u的歷史記錄項目集Hu的交集I中視頻的大眾認可度;Recpk為目標視頻的大眾認可度;|I|為交集元素個數。當交集為空集時,即視頻k的鄰近項目集與用戶u的歷史記錄項目集Hu沒有交集時,目標視頻k的綜合認可度Recsk為自身的大眾認可度Recpk。
基于用戶偏好度和視頻的綜合認可度,將用戶對視頻的偏好度作為權重來預測用戶對視頻的認可度:

其中:preferuk表示用戶u對視頻k的偏好度;Recsk表示視頻k的綜合認可度。
通過式(10)可以針對用戶喜好對目標視頻的認可度進行調整:如果用戶對目標視頻的偏好度較高,則用戶對此視頻的認可度也高;如果用戶對目標視頻的偏好度不高,則即使該視頻的綜合認可度較高,但對該用戶而言認可度會降低。根據VRDSA 預測出的用戶對視頻的認可度,可得到目標用戶認可度最高的top-k個視頻,最終形成推薦列表并推薦給用戶。
本文實驗數據集來源于BiliBili 視頻網站,使用聚焦爬蟲從該視頻網站的Vlog 頻道爬取3 102 個視頻的所有相關用戶互動數據,以及3 375 877 條彈幕,涉及用戶1 015 641 個。通過數據預處理進行彈幕去重、刪除歷史記錄稀疏用戶、剔除部分數據異常視頻后剩余視頻2 752 條,有效活躍用戶數量1 071個,每個用戶平均約有60條歷史觀看記錄。為減小實驗誤差,采用三折交叉驗證的方式進行實驗。
本文使用準確率(Precision,P)、召回率(Recall,R)及F值(F1)三個在推薦系統的評估中廣泛使用的實驗評價指標來對實驗結果進行分析和評價。
準確率公式:

F值公式:

其中:R(u)為VRDSA 生成top-k推薦列表中的視頻項目;T(u)為測試集中用戶實際觀看過的視頻項目。
準確率為成功推薦的視頻數量與top-k推薦列表中視頻數量的比值,用于衡量推薦算法的準確程度;召回率為成功推薦的視頻數量與用戶觀看記錄數量的比值。隨著top-k推薦列表中視頻數量的增加,準確率會降低,而召回率會增加,因而引入準確率和召回率的加權調和平均值F1 來對推薦算法進行綜合衡量。同等情況下,F1 越高,表明推薦算法的效果越好。
實驗硬件環境為Intel Core i5-7400 處理器,16 GB 內存;軟件環境為Windows 10 x64 操作系統,代碼使用Python3.7.0實現。實驗數據參數如表3所示。

表3 實驗數據參數Tab.3 Experimental data parameter
3.3.1 LDA相關參數確定
在LDA 主題模型的構建中,需要確定主題的個數和詞語采樣迭代次數兩個參數。設定歷史記錄數據規模為20 000,推薦數量為10,融合參數α為0,即僅使用主題相似度探究主題個數和迭代次數對精確率、召回率和F 值的影響,得到最優參數,結果如圖3所示。

圖3 不同主題個數和迭代次數下的評價指標Fig.3 Evaluation metrics at different numbers of topics and iterations
由圖3可知,隨著LDA主題數t增加,3個評價指標先逐漸增大,再突然減小后出現波動,在t為40 或50 時,3 個評價指標取得了較高的值,且相較于t=90 在建模過程中更有效率。而迭代次數對評價指標的影響并不大,從圖3可知,iteration=500 時算法有最好的效果,故確定LDA 主題個數t=40,迭代次數iteration=500。
3.3.2 數據規模和融合參數的確定
確定LDA 模型構建的參數后,探究不同歷史推薦數量r和不同融合參數α的情況下評價指標的變化。
1)歷史推薦數量r的確定。
確定LDA 主題個數t=40,迭代次數iteration=500,融合參數設置為0,探究不同歷史記錄數據規模r下準確率、召回率、F值的變化,結果如圖4所示。
由圖4 可知,隨著歷史記錄數據規模的增加,準確率、召回率、F 值都在逐漸增大,在r為70 000 時達到最大值,故確定實驗所使用的歷史記錄數據規模r為70 000。

圖4 不同歷史記錄數據規模和推薦數量下的評價指標Fig.4 Evaluation metrics at different history record data sizes and numbers of recommendations
2)融合參數α的確定。
得到使算法表現最佳的歷史記錄數據規模r后,在同樣的條件下探究不同的相似度融合參數α對準確率、召回率、F值的影響,結果如圖5所示。
由圖5 可知,推薦數量對融合參數并無明顯影響,隨著α增加,3個評價指標均先增加后降低。準確率、召回率、F值在α取值為0.2~0.5 時相差不大,在α為0.3 時達到最大值,故α取0.3。僅使用主題相似度時效果較好,通過融合參數與情感相似度進行融合后可達到最佳效果。

圖5 不同融合參數和推薦數量下的評價指標Fig.5 Evaluation metrics at different fusion parameters and numbers of recommendations
由圖4和圖5可知,推薦個數對于歷史數量和融合參數的確定沒有明顯影響。由于隨著推薦個數增加,準確率增加、召回率降低,故用F值確定最佳推薦個數,從圖4~5中可知,N為30或40時算法的效果最佳。
3.3.3 算法的有效性驗證
在確定LDA 主題個數t為40,迭代次數iteration為500,歷史記錄數據規模r為70 000,融合參數α為0.3后,將本文提出的VRDSA 與當前主流的四種算法,即傳統基于物品的協同過濾算法(itembasedCF)、基于標簽生成的主題模型tag-LDA 算法、嵌入LDA 主題模型的協同過濾算法(Unifying LDA and Ratings Collaborative Filtering,ULR-itemCF)[16]、融合協同過濾和主題模型的彈幕視頻推薦算法(DRCFT)[4],基于準確率、召回率、F值進行對比,驗證在不同推薦數量N下VRDSA的有效性,結果如圖6所示。
由圖6 可知,隨著推薦數量的增加,本文算法的F 值先增加后緩慢下降,評價指標均優于其他四種算法,表明本文算法在不同推薦數量下推薦的效果均優于目前主流的視頻推薦算法。在推薦數量N為10~40時均有較好的效果,算法的F值明顯高于其他算法;數值當N超過40 時,受實驗數據集數據規模影響,推薦算法的F 值逐漸趨于平緩下降趨勢,當推薦數量N為60 時,本文算法的效果逐漸接近DRCFT 算法;后續若再次增大推薦數量N,所有算法的F 值均會緩慢下降。若需要進一步凸顯本算法的優勢,數據規模應該進行進一步擴充。

圖6 各算法不同推薦數量下的評價指標Fig.6 Evaluation metrics of different algorithms at different numbers of recommendations
本文提出了一種基于彈幕情感分析和主題模型的視頻推薦算法(VRDSA),對新興的彈幕評論進行情感分析,結合視頻自帶標簽對視頻的相似度進行計算;并利用視頻的用戶互動數據對視頻的認可度進行量化,解決了網絡自制視頻缺少合理評分的問題,實現了基于用戶自身特征與視頻內容的綜合推薦,且達到了較好的效果。針對冷啟動問題,一方面通過基于視頻標簽的相似度計算,可解決因缺少彈幕而無法對視頻進行情感分析的問題;另一方面對于缺少歷史播放記錄的新用戶,VRDSA將推薦綜合認可度較高的視頻。
基于視頻內容的視頻推薦相較于其他方面的推薦較有難度,而彈幕作為視頻中的實時評論還有很多內容可以去挖掘。今后將進一步完善彈幕的文本分析處理工作,并結合單個用戶的彈幕內容和視頻互動行為刻畫用戶畫像,提高推薦的準確率。