盧盛祺1,2,3,管連4,金敏3,韓景倜1,2
?。?.上海財經大學 信息管理與工程學院,上海 200433;2.上海財經大學上海市金融信息技術重點實驗室,上海 200433;3.復旦大學 軟件學院,上海 200433;4.國際商業機器(中國)有限公司,北京 100101)
摘要:視頻推薦系統最主要的功能就是從用戶的歷史行為中發現用戶興趣偏好,然后找出其可能感興趣的視頻并展示給用戶。該文針對用戶的視頻選擇過多、視頻轉化率較低等問題,提出了一種基于LDA模型的電影推薦方法。首先將視頻的評論文本集轉化為評論主題詞語的三層貝葉斯模型,提取每個視頻的評論關鍵詞,再基于目標用戶的歷史行為發現其偏好的視頻關鍵詞集合,最后利用杰卡德相似系數,預測用戶可能感興趣的視頻,以實現基于內容的個性化視頻推薦服務。實驗表明,該方法可以提高視頻推薦的精度,使得視頻轉化率得到較好的提升。
關鍵詞:LDA模型;用戶偏好;視頻推薦;電子推薦;貝葉斯模型
0引言
隨著互聯網的快速發展和網民數量的迅速上升,人們正處在信息過載的時代。尤其在網絡視頻領域,各種視頻數據正在以驚人的速度增長。例如,YouTube視頻分享網站目前已經擁有超過1.5×108個視頻[1],國內的專業視頻網站優酷土豆、騰訊視頻、搜狐、愛奇藝等,視頻播放量和瀏覽次數也每日劇增。面對海量的視頻信息,用戶很難找到自己感興趣的內容,而視頻提供商又迫切地需要將優質的視頻準確地推送給用戶,以提高視頻轉化率和用戶停留時間。推薦系統被認為是行之有效的方法,其可以建立用戶與用戶、用戶與視頻之間的關系,因而成為近幾年來視頻領域的研究熱點。
目前在視頻網站中使用的推薦方法主要有相關性推薦和個性化推薦兩大類,相關性推薦就是把用戶正在觀看或瀏覽的相關視頻推薦給用戶,個性化推薦是根據用戶的歷史行為推斷用戶的興趣愛好,并以此推薦用戶可能感興趣的視頻列表。在90年代中期,美國人工智能協會春季會議(AAAI)、ACM智能用戶接口會議(ACMIUI)、國際人工智能聯合大會(IJCAI)等國際會議上發表了多篇有關個性化推薦系統的論文[2],此后,推薦系統在電子商務、網絡視頻等領域得到深入研究。例如,在2006年,美國著名的電影租賃公司Netflix就推出了關于推薦系統研究的比賽,在2005~2009年間,更多的推薦算法[36]被提出,并取得令人矚目的研究成果。從視頻推薦的研究技術上看,目前主流的視頻推薦方法有基于協同過濾的推薦和基于內容的推薦。協同過濾推薦[7]的核心思想是通過發現具有相似喜好的用戶群體,或評分相似的視頻集合,將用戶可能感興趣的視頻推薦給用戶。例如,美國視頻網站YouTube,由于其視頻內容繁多、視頻標簽不規則、存儲周期不確定等原因,采用的就是最簡單的協同過濾算法。參考文獻[8]詳細介紹了YouTube推薦算法的實現。參考文獻[9]提出使用基于群組內其他用戶信息預測用戶興趣點的方法;參考文獻[10]采用基于社會化網絡的視頻推薦方法,認為社交網絡中的好友也應該具有相似的視頻偏好。參考文獻[11]將不同源網站針對某部電影的相關推薦聚合起來,結合語義知識從中按照相似度高低進行推薦?;趦热莸耐扑][12]核心思想是通過分析用戶歷史行為來獲取用戶興趣特征,然后推薦與用戶偏好視頻內容相似的視頻。比如網站Jinni定義了描述電影基因的900多個標簽(類型、劇情、評分等),然后人工標注每部電影的這些標簽,最后根據專家標注的向量空間做出推薦。此外,PARK J等人提出基于視頻關鍵詞的個性化推薦方法[13],YANG B等人提出線性組合描述視頻相關性的方法[14]。
人工標注電影標簽耗時又耗力,在實際應用中無法大規模應用;基于關鍵詞的視頻特征描述是可行的方法,最常用的關鍵詞提取方法是TFIDF,該方法是一種基于詞頻的統計方法,但是局限于字面匹配,缺乏語義理解。LDA(Latent Dirichlet Allocation)則是近些年興起的比較熱門的文本挖掘技術,主要用于文本語義層面的分析處理,由BLEI D M等人在 2003 年提出[15],用來發現大規模文檔的主題分布情況。目前,該技術在視頻推薦領域也得到良好的應用。例如,美國的視頻網站Hulu,搭建了Hadoop集群來處理用戶興趣行為,包括觀看、搜索、評論以及用戶對推薦系統的反饋行為等,其推薦引擎的離線部分,用于計算一系列的關聯矩陣,例如視頻之間的兩兩相似度、視頻主題與視頻之間的關聯等,其使用的關鍵技術之一就是LDA模型。
本文基于LDA模型,研究其在電影推薦系統中的應用。以視頻的用戶評論為數據基礎,識別出每個視頻的影評關鍵詞序列,再結合目標用戶的歷史行為視頻列表,建立用戶興趣模型,最后利用杰卡德相似系數(Jaccard Similarity)方法[16],發現影評內容相關的視頻列表,為用戶提供相關性視頻和個性化的視頻推薦服務。
1基于LDA模型的網絡視頻推薦
1.1影評數據預處理
基于LDA模型的網絡視頻推薦中,用戶歷史行為包括視頻觀看、視頻下載和視頻收藏等。這些視頻列表可以看作為該用戶的偏好視頻集合,集合中每個視頻對應一個影評數據集。在對影評數據集進行LDA建模前,需對每個數據集進行中文分詞、詞性標注、新詞識別、停用詞過濾等預處理操作,以降低文本空間的維度,提高LDA建模效率。
一般的中文分詞方法有正向最大匹配法、逆向最大匹配法和雙向最大匹配法,其主要原理就是將文本劃分為單字或單詞串,再與詞庫進行匹配,直至劃分成功。本文對中科院的NLPIR分詞系統[17]進行二次開發,實現對影評數據集的中文分詞和詞性標注。每個詞都指派合適的詞性,標注格式表示為名詞(/n)、動詞(/v)、形容詞(/a)、數詞(/m)、量詞(/q)、副詞(/d)、標點符號(/w)等。
在分詞過程中,系統還需識別新詞,這些詞是字典中未收錄過的詞語。比如在句子“力挺趙又廷”中,“趙又廷”是個詞, 如果要計算機識別,最終結果可能是劃分成3個單獨的字。目前,新詞識別是評價分詞效果的重要指標之一,解決這個問題的簡單方法是創建用戶詞典。本文創建的典型用戶詞典有影視明星詞典、影視名稱詞典、影視流行語詞典等,創建方式主要是從網絡詞庫載入,或手動輸入添加。
分詞后的評論文本中,包含大量的無用詞,比如代詞、方位詞、介詞、限定詞、 助詞、嘆詞、連詞、擬聲詞等,這些字或詞沒有特別的含義,不僅對主題發現的語義層面的分析沒有太大幫助,而且還會降低 LDA 建模的效率,因此需要將這些詞過濾掉。本文首先根據詞性將代詞、介詞、連詞等過濾掉,再導入停用詞表對評論文本進行二次過濾,以提高分詞效果。
1.2影評LDA建模過程
本文利用MCMC方法中的Gibbs Sampling算法對每部電影的用戶評論數據集進行參數估計,也就是估計文本集的影評主題概率分布Θ和主題詞項概率分布Φ。LDA模型是一個文檔、主題、單詞三層的貝葉斯模型,應用到視頻推薦系統中,可轉化為影評集、影評潛在主題、影評詞項三層用戶評論模型,其矩陣模型圖如1所示。
其中,D表示一部電影用戶評論集合, dm是第m條影評;Θ表示每條影評的主題分布,zk是第k個隱含主題;Φ表示每個主題在所有詞項上的概率分布,wn是第n個詞項。分詞后的影評數據集,對應矩陣圖中的文本集D,算法的目標就是估計模型中后兩個矩陣的參數分布。
Gibbs Sampling算法就是每次選取概率向量的一個維度,通過給定其他維度的變量值來采樣當前維度的值,不斷迭代該運行過程,直到待估計的參數收斂[18]。其計算公式如下:
其中,zi表示第i個單詞對應的主題變量;┐i表示不包括其中的第i項;n(t)k表示主題k中出現詞項t的次數;βt是詞項t的Dirichlet先驗;n(k)m表示評論文本m出現主題k的次數;αk是主題k的Dirichlet先驗。
在視頻推薦系統中,影評數據集的LDA訓練過程為:
(1)對影評數據集中每條影評中的每個詞語w,隨機分配一個主題編號z(該z是隱含變量,即每個單詞所對應的語義是未知的);
(2)重新掃描影評數據集,對集合中的每個詞項w,按照Gibbs Sampling公式,重新采樣詞語w的主題z,并在集合中進行更新;
(3)重復上述影評數據集的重新采樣過程,直至Gibbs Sampling收斂,即每條評論下的主題分布和每個主題下的詞項分布收斂;
(4)統計影評數據集的主題詞項和影評主題的共現頻率矩陣,該矩陣就是LDA的生成模型。
上述LDA模型的訓練,預設參數有α和β,一般β取默認值 0.01,α等于50/K,K為影評數據集的主題數目[19]。本文采用perplexity(困惑度)來確定最佳主題數量,即設定不同的K值,對影評數據集進行LDA模型的訓練,直至模型的困惑度盡量低[20]。困惑度計算公式如下:
上式中,D為某視頻的影評數據集,dm={w1,w2,w3,…,wNn}表示第m條用戶評論,一條評論看成一篇文檔,N為數據集中的評論文檔個數,Nm為評論文檔d中詞語的個數,P(dm)為評論文檔dm相似性,dm的似然值為:
其中n(wn,d)為文檔d中詞w出現的次數。
1.3影評關鍵詞提取
視頻推薦系統的一個首要任務是根據用戶歷史行為發現用戶的興趣偏好,也就是從用戶偏好的視頻列表中,提取每部視頻的影評數據集的關鍵詞,其提取過程依賴LDA生成模型的兩個重要分布:影評主題概率分布Θ和主題詞項概率分布Φ。詞語的重要度由主題生成該詞語的概率和該主題在影評數據集中的重要度共同決定[21]。
首先,基于影評主題分布計算影評數據集中每個主題的重要度。該分布是每行一條用戶評論、每列一個隱含主題的概率矩陣。其計算公式為:
其中,N為影評數據集用戶評論的個數,T為文檔集中主題的個數,dn表示第n條用戶評論,zi 表示第i個主題。
然后,基于主題詞項分布計算影評數據集合中每個詞語的重要度。該分布是每行一個主題,每列一個詞語的分布,表示了每個詞語在不同主題上的概率值,其計算公式為:
其中,T為主題個數,P(w|zi)為詞語w在主題zi上的概率值,而 P(zi|D)表示zi在影評數據集D中主題的重要度。
最后,將詞語按詞語重要度從大到小排序,取權重較大的前i個詞語作為該視頻的影評關鍵詞集合{kw1,kw2,kw3,…,kwi},其中kwi表示該視頻的第i個關鍵詞。
1.4個性化視頻推薦
視頻推薦系統的最終目的是根據用戶的興趣偏好進行個性化的視頻推薦,也就是根據目標用戶偏好的視頻集合,將影評主題相似的視頻推薦給該用戶。本文利用杰卡德相似系數(Jaccard Similarity)方法,衡量兩部視頻間的相似度,實質是計算兩個視頻的影評關鍵詞集合的相似度,系數越大,說明這兩部視頻的內容越相似。電影的關鍵詞集合可以表示為U{a1,a2,a3,…,ai},其中ai表示該電影的第i個關鍵詞。
本文個性化視頻推薦的主要流程為:
(1)從用戶偏好視頻列表中取出一部視頻,其影評關鍵詞集合為U。
(2)從待匹配視頻列表中取出一部視頻,其影評關鍵詞集合為V;使用 Jaccard Similarity方法計算這兩部視頻影評之間的相似度,即集合U和V的交集元素在U和V的并集中所占的比例,用符號Jr(U, V)表示:
(3)計算這兩部視頻的類型之間的相似度,假設這兩部視頻的類型集合分別為A和B,同樣利用 Jaccard Similarity方法計算類型相似度,記作Jt(A, B)。為影評相似度Jr和類型相似度Jt分配權衡因子p(0<p<1),綜合衡量計算這兩部視頻之間的相似度,記作J:
J=p×Jr(A,B)+(1-p)×Jt(A,B)(7)
其中,p的取值要通過反復試驗和專家評審最終確定,初始化為0.1。計算視頻間的相似度J,每次以0.1為單位在定義域范圍內遞增賦值,重新計算視頻間的相似度。再根據不同p值下的視頻相似度系數,由專家指定最佳p值。一般視頻類型有“動作”、“愛情”、“魔幻”、“劇情”等。之所以添加這一特征項,是考慮到如果同時有多部電影與目標電影的相似度系數接近,那么同一類型的視頻應該優先被推薦。
(4)從待匹配視頻列表中取出下一部視頻,按照上述步驟(2)和(3),計算新取的視頻與目標視頻的相似度,直至待匹配視頻列表為空。
(5)從用戶偏好視頻列表中取出下一部視頻,重復上述步驟(2)、(3)、(4),分別計算待匹配列表L中每部視頻與該視頻的相似度,直至用戶偏好視頻列表為空。
視頻列表L之間的相似度矩陣(6)至此,已經建立了用戶偏好視頻列表與待匹配視頻列表的影評相似度矩陣,如圖2所示,其中,用戶偏好視頻列表為M,待匹配視頻列表為L。假設個性化推薦列表為G,其格式為G{視頻ID:相似度系數},系統根據視頻間的相似度矩陣,為M中的每個視頻從L中提取相似系數較大的前n個視頻,添加到G中生成該用戶的個性化視頻推薦列表,如果待添加的視頻在G中已經存在,但相似系數較大,則在G中更新該視頻的相似系數;否則,添加下一部匹配的視頻,即:
其中,f(i)=Ji,k-Ji,t,Ji,k表示L中第i個視頻與M中第k個視頻的相似度,Ji,t表示L中第i個視頻與M中第t個視頻的相似度。在個性化推薦列表最終生成后,還需按照相似系數從大到小對視頻進行排序,排序后的格式為{ID1:J1,ID2:J2,…,IDi:Ji},J1>J2>J3>…>Ji,系統選取相似系數較大的前n個視頻推薦給用戶,完成個性化視頻推薦服務。
2實驗設計與結果評測
2.1實驗基本流程
從某專業視頻網站中隨機選取500名活躍用戶,每個用戶的歷史行為記錄中平均包含100部左右的電影,實驗將每個用戶的偏好視頻列表分為兩個部分:60%的視頻作為訓練集,用來訓練最佳LDA主題模型,發現用戶的興趣偏好特征(影評關鍵詞的提?。?,并使用Jaccard Similarity方法推導用戶可能感興趣的視頻集合;40%的視頻作為測試集,用于評估和檢測本文提出的推薦系統的性能。圖3顯示的是訓練集中部分用戶的歷史行為數據。
實驗數據準備好后,按照本文介紹的視頻推薦方法分別對這500個用戶的訓練集中用戶偏好視頻的影評數據集合進行分析處理,生成個性化視頻推薦列表。步驟如下:
(1)提取訓練集視頻列表中每個視頻的影評內容,包含電影ID、用戶ID、評論文本、用戶評分、評論時間等,提取每部電影的所有評論數據,一條評論看作一篇文檔,n條評論構成該視頻的一個影評數據集。然后對每個數據集分別進行中文分詞、詞性標注、新詞識別、停用詞過濾等預處理操作,將數據集的噪音降到最低,并轉化為標準的LDA詞袋矩陣(如圖1中的D)。
(2)隨機抽取50個視頻及其對應的影評內容,分別對每個影評數據集設置不同的主題數目K,令β=0.01,α=50/K,利用開源的GibbsLDA++建模工具,對影評數據集應用LDA語義分析過程,并結合困惑度計算公式(2)和(3)訓練出每個數據集的最佳主題數目K,然后取這50個視頻的最佳主題的均值K^,作為本次實驗樣本集的LDA建模主題數目。
(3)根據每個影評數據集的LDA生成模型中的影評主題概率分布Θ和主題詞項概率分布Φ,利用式(4)計算各個隱含主題的重要性,圖4是某個影評數據集的LDA生成模型中的部分主題概率分布圖;然后利用詞語重要性計算公式(5),提取影評數據集的關鍵詞,記作Vi{t1,t2,t3,…},Vi表示第i部視頻的關鍵詞集合。
(4)對于每個目標用戶,其視頻偏好列表中每個視頻的關鍵詞集合為{V1,V2,…,Vi,…,Vj},每個集合中大概包含50個關鍵詞,偏好視頻數目平均為60個,所有偏好視頻的關鍵詞集合構成了該目標用戶的興趣偏好特征集合,利用Jaccard Similarity方法,建立待推薦視頻與偏好視頻的相似度矩陣。實驗訓練集中共有3 480部視頻,除去目標用戶的偏好視頻列表M(大約60部),將剩下的3 420多部視頻表示為待匹配視頻列表L,該列表中的每一部視頻有其自身的影評關鍵詞序列,利用式(6)和(7)分別計算L中每個視頻與M中偏好視頻的相似度,建立相似度矩陣,其中,權衡因子p取值0.7(實驗過程中發現,該值的權衡效果最好)。
(5)根據相似度矩陣,利用式(8)從待匹配視頻列表L中選取相關性系數較高的視頻,添加到匹配視頻列表G,并不斷更新G中每部視頻的權值直至列表完全生成,再從大到小按序將前30部電影推薦給該目標用戶,完成個性化視頻推薦服務。
2.2實驗結果評測
判斷一個推薦系統的質量和性能,常用的評測指標有:準確度、覆蓋率、召回率、多樣性、新穎性、驚喜度等[22],本文從準確率和召回率兩個角度評測本文推薦算法的性能。
?。?)準確率和召回率
準確度Precision用于度量一個推薦系統預測用戶行為的能力,描述的是推薦視頻列表中正確視頻的條數與推薦列表條數的比值。召回率Recall描述的是推薦視頻列表中正確視頻的條數與測試集視頻列表條數的比值,衡量的是查全率。F1是Precision和Recall的加權調和平均,用于綜合反映整體指標。
?。?)實驗結果分析
為了說明本文推薦算法的性能特點,實驗中每次隨機選取10個用戶作為1組,共生成10個分組,然后分別使用本文的推薦方法(方法1)、基于item的協同過濾方法(方法2)、基于user的協同過濾方法(方法3),生成視頻推薦列表,然后分別對實驗結果進行評估,以證明本文推薦算法的良好應用效果。方法2和方法3都是以評分為數據基礎,前者參照的是該用戶對與某視頻相似的多個視頻的已有評分值,后者參照的是與該用戶相似的多個用戶對某視頻的已有評分值。
圖5分別顯示了3種推薦方法在不同用戶分組上的準確率和召回率分布情況,圖6顯示了3種推薦方法在不同用戶分組上的F1值分布情況。
從評測結果中可以發現,不管在準確率還是召回率上,本文的推薦算法都要優于基于user的協同過濾算法和基于item的協同過濾算法,其主要原因在于:(1)基于user的協同過濾方法考慮的是用戶間的相似度,但在實際的項目應用過程中,用戶間的相似性會受到多種因素的影響,具有極大的不穩定性和不可靠性;而基于item的協同過濾算法中視頻相似度的計算,僅僅依靠用戶對視頻的打分情況來判斷,并不能取得很好的效果,還可能導致推薦視頻并不是目標用戶所感興趣的,反而降低用戶體驗。(2)基于內容的視頻推薦方法的實質是計算兩個視頻之間內容或主題上的相似度,為用戶推薦主題相關的視頻,這種方法具有穩定性和確定性,極大地提高了推薦視頻的用戶觀看轉化率。但是,這種方法存在無法為用戶推薦從未涉及過的領域,即冷啟動的缺點,這也是本課題今后研究的重點。
3結束語
本文應用LDA語義分析過程,首先對視頻系統中每部電影的影評數據集進行關鍵詞提取,然后基于用戶歷史行為,構建偏好視頻的所有關鍵詞集合,最后利用杰卡德相似系數,將影評主題相關的視頻推薦給目標用戶。實驗證明,本文的推薦方法是行之有效的,而且極大地提高了推薦精度。
在網絡視頻這個開放性的平臺,用戶歷史行為是推薦系統的重要依據之一,但是并非所有歷史記錄中的電影都是用戶喜歡的,還需要根據觀看時長、評論文本情感傾向等多方面判斷用戶真正偏好的視頻。此外,用戶的興趣愛好具有階段性,不同的時間點可能偏向不同類型的視頻;社會化網絡的發展,使得用戶的興趣愛好還可能會受到朋友圈的影響;用戶對于系統推薦的視頻,所表現出的在線反饋行為等,這些問題都是本文下一步的研究重點。
參考文獻
?。?] SKRISHNAPP, D K, ZINK M, Griwodz C. Cachecentric video recommendation: an approach to improve the efficiency of YouTube caches[C]. In Proceedings of the 4th ACM Multimedia Systems Conference, 2013: 261270.
[2] McSHERRY F, MIRONOV I. Differentially private recommender systems: building privacy into the net[C].In Proceeding of the 15th ACM SIGKDD Dnternational Conference on Knowledge Discovery and Data Mining, 2009: 627636.
?。?] LEMIRE D, MACLACHLAN A. Slope one predictors for online ratingbased collaborative filtering[C]. In SIAM Data Mining, 2005: 15.
?。?] BELL R, KOREN Y, VOLINSKY C. Modeling relationships at multiple scales to improve accuracy of large recommender systems[C]. In Proceeding of the 13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2007: 95104.