王 妍, 唐 杰
(清華大學(xué) 計算機科學(xué)與技術(shù)系, 北京 100084)
當(dāng)前,個性化推薦在眾多社會網(wǎng)絡(luò)活動中扮演著重要的角色。如亞馬遜平臺,電商根據(jù)用戶的歷史購買行為推測其購買偏好,并向用戶推薦其可能喜歡的其他產(chǎn)品,從而增加潛在利潤[1-2]。本文的推薦系統(tǒng)是基于Aminer 學(xué)術(shù)搜索平臺的論文個性化推薦系統(tǒng)。Aminer平臺利用數(shù)據(jù)挖掘、社會網(wǎng)絡(luò)分析等技術(shù),向用戶供搜索服務(wù),包括研究者搜索、論文搜索、綜述文獻搜索等一系列檢索功能,同時兼有學(xué)術(shù)話題趨勢分析、研究者社會網(wǎng)絡(luò)關(guān)系挖掘等眾多功能。Aminer系統(tǒng)約搜集有8 000萬篇論文信息、4 000萬研究者信息。在服務(wù)于用戶搜索需求的同時,用戶個性化推薦的需求也變得更為重要。面對龐大的檢索結(jié)果集,用戶可能需要花費額外的時間去人工篩選自己想要的論文。因此,本項目的目標(biāo)是實現(xiàn)一個建立在海量數(shù)據(jù)上的個性化推薦系統(tǒng),從而給用戶提供個性化的決策和個性化的信息服務(wù)。具體而言,該推薦系統(tǒng)旨在向注冊用戶推薦他可能感興趣的論文,該推薦系統(tǒng)基于以下信息對用戶做出個性化推薦: 1)用戶偏好,即用戶已關(guān)注的論文列表; 2)論文相關(guān)的文本信息,包括論文關(guān)鍵詞、摘要; 3)用戶相關(guān)的文本信息,包括用戶的搜索日志,用戶關(guān)注的論文文本信息。
目前的個性化推薦系統(tǒng)通過收集用戶反饋,如對各種物品的評分數(shù)據(jù)來對用戶進行個性化推薦,其中經(jīng)典的推薦算法可劃分為兩大類,協(xié)同過濾推薦算法和基于內(nèi)容的推薦算法。本文的推薦系統(tǒng)混合使用了這兩種經(jīng)典模型。
協(xié)同過濾是廣泛使用的個性化推薦算法[3-4],其中結(jié)合聚類分析的協(xié)同過濾算法也被廣泛研究應(yīng)用[5-6]。在本文的推薦系統(tǒng)中,我們采用基于物品的協(xié)同過濾推薦模型。基于物品的協(xié)同過濾分為以下兩個主要步驟。
1) 構(gòu)造用戶對論文的評級矩陣,在該項目中,評級數(shù)據(jù)簡化為0-1二值數(shù)據(jù),表示是否關(guān)注該論文。
2) 用戶尚未關(guān)注的論文構(gòu)成候選集,對論文候選集中的每篇論文預(yù)測用戶的關(guān)注概率。降序排序后返回前K篇預(yù)測評分最高的候選論文。
假設(shè)有m個用戶,n篇論文,首先構(gòu)造用戶—論文關(guān)注矩陣(1),其中rui表示用戶u是否關(guān)注了論文i,
(1)
對用戶未關(guān)注的論文集中的每篇論文,預(yù)測目標(biāo)用戶對它的喜愛程度。目標(biāo)用戶對該論文喜愛程度的預(yù)測可以用式(2)計算,其中N表示與論文i相似的近鄰集合,相似度用余弦相似度計算,如式(3)所示。
(2)
其中,
(3)
其中ruk取值為0或1,Sik表示兩篇論文的相似度。得到預(yù)測分數(shù)Pui后,選擇排在前K位的物品作為推薦結(jié)果返回給目標(biāo)用戶。
通過實驗,我們發(fā)現(xiàn)直接利用用戶評級矩陣進行基于物品的協(xié)同過濾推薦,效果并不理想。分析可知,原因是實際數(shù)據(jù)集的標(biāo)注數(shù)據(jù)非常稀疏,即已產(chǎn)生關(guān)注行為的用戶占總用戶比例,以及產(chǎn)生關(guān)注行為的用戶所關(guān)注的論文數(shù)占總論文的比例都很小。針對這個問題,我們采用奇異值分解算法進行改進。通過對用戶的評級矩陣進行SVD降維來取其隱藏的特征,進一步利用降維后的矩陣對目標(biāo)用戶進行物品推薦。具體到實驗中,我們通過SVD降維并保留90%的能量值,一定程度上緩解矩陣稀疏的問題。
僅采用協(xié)同過濾推薦模型的另一弊端是會產(chǎn)生無法推薦新論文的問題。因為推薦的論文必然是在其他用戶已關(guān)注的論文集中。而那些符合目標(biāo)用戶興趣,但沒有被任何其他用戶關(guān)注過的論文,就無法對其進行推薦。為了解決這個問題,我們結(jié)合了基于內(nèi)容的推薦[7-8]。通過基于內(nèi)容的推薦模型產(chǎn)生一批候選論文,可以有效推薦那些沒有被其他用戶標(biāo)注的新論文。且該方法受用戶數(shù)據(jù)稀疏性的影響較小。
在本項目中,我們用文本表示論文特征和用戶特征并計算相似度,基于內(nèi)容推薦與用戶興趣特征相似的論文。
首先構(gòu)造論文特征,取論文關(guān)鍵詞,計算TF-IDF值,則論文特征可表示成其關(guān)鍵詞的權(quán)重向量,每一維特征對應(yīng)一個關(guān)鍵詞的權(quán)重,特征維數(shù)即詞匯總數(shù)。其次構(gòu)造用戶的興趣特征,假設(shè)用戶關(guān)注的論文集合為P,通過對集合P中的論文特征取平均值得到用戶特征。計算和目標(biāo)用戶興趣內(nèi)容最相似的K篇論文時,采用余弦距離衡量。
基于內(nèi)容的余弦相似度,選取相似度排名前K名的論文返回。
在基于內(nèi)容進行推薦時,我們將用戶和論文都映射到同一個向量空間,而推薦問題則轉(zhuǎn)化成計算距離用戶最近的論文。在上一小節(jié),我們采用的是最常見的方式,將文本由其詞頻-逆文檔頻率(TF-IDF)表示它們的特征值,并通過向量的余弦相似性來進行推薦,本質(zhì)上可以退化成比較特征詞的重合程度。然而這種特征分析往往不適合表示用戶和文檔的距離,首先因為它們近似正交,即兩個文本實際相似,但是單詞交集可能會很少。另外一個重要的原因是它們并不能捕捉單詞層面的相似性。如在該項目的關(guān)鍵詞集合中,“algorithm”和“machine learning”在語義上具有較高的相關(guān)性,但是僅僅使用余弦相似度模型并不能捕捉這一層次的相似性。
因此,當(dāng)論文內(nèi)容在詞匯層面重合度較小,語義層面卻較為相似的情況下,這種模型表現(xiàn)并不令人滿意??紤]這樣一個例子,兩個文本“Obama speaks to the media in Illinois.” 和“The president greet the press in Chicago.”在單詞層面正交,沒有重合,而其在語義上卻十分相似。為了刻畫這種相似性,我們采用了基于詞向量的Word Mover Distance (WMD)模型來衡量相似度。
1.3.1 詞向量
僅僅利用語料的上下文語境對單詞的隱含表示進行學(xué)習(xí),生成詞向量表示在自然語言處理的各個研究領(lǐng)域被廣泛地使用。詞向量模型的輸入是大量的無監(jiān)督語料,輸出是所有單詞(不包括低頻詞匯)的低維向量表示。
本文采用經(jīng)典的Skip-gram模型訓(xùn)練詞向量[9],使用谷歌新聞的語料來訓(xùn)練詞向量。輸入為一個單詞,預(yù)測其上下文詞匯出現(xiàn)的概率。采用經(jīng)典的三層網(wǎng)絡(luò)結(jié)構(gòu),第一層為輸入層,由一個單詞的K維詞向量表示。第二層為隱藏層。第三層為輸出層。輸出為已知輸入單詞時,其余各單詞在其上下文出現(xiàn)的概率,采用Softmax模型估計概率值。訓(xùn)練目標(biāo)是,最大化已知輸入單詞的條件下,相鄰語境中單詞出現(xiàn)的概率,其中條件概率用Softmax估計。模型的直觀解釋是,若單詞的上下文相似,則它們的詞向量更相似。
該模型的訓(xùn)練模型也有各種各樣的實現(xiàn),如通過隨機梯度下降法進行參數(shù)更新,通過負采樣的方法提高模型的性能等等。
在本項目中,有很大一部分特征詞是復(fù)合單詞,即短語。如“data mining”,如果拆成“data”和“mining”兩個單詞分別訓(xùn)練則會損失其作為一個短語的語義信息。因此,我們的做法就是將它作為一個短語學(xué)習(xí)它的向量。首先對語料進行短語探測,一種簡單有效的方法是采用探測二元詞出現(xiàn)的次數(shù)來探測兩個單詞的短語,當(dāng)其在文本中出現(xiàn)次數(shù)大于某個閾值時,則判定其為短語。這里通過實驗,將該閾值設(shè)定為10。將“data mining”處理表示成“data_mining”,以下劃線連接,接下來短語向量的訓(xùn)練過程和詞向量學(xué)習(xí)的過程相似。實驗證明引入短語后,向量的語義表示上有更好的表現(xiàn)。
1.3.2 WMD距離函數(shù) (Word Mover Distance)
我們將用戶模型和文檔模型里的特征詞表示成詞向量。然后,基于內(nèi)容推薦轉(zhuǎn)化成如何評價用詞向量表示的用戶模型及文檔模型的相似度,這個問題可以抽象成用詞向量表示的兩個文本之間的距離。
簡單做法是將一個文本中所有的詞向量連接成一個長向量,然后直接應(yīng)用計算向量相似度的方法來計算用戶和論文的相似度。但這個方法的弊端是,每個數(shù)據(jù)的詞匯數(shù)不同,導(dǎo)致連接向量的長度不同。通過補零會引入額外誤差,或是將向量相加,實驗證明效果并不理想。
基于這兩點考慮,我們通過改進版的Earth Mover Distance (EMD)來進行衡量[10],這里稱之為Word Mover Distance (WMD)。即,我們將一個用戶模型或是文本模型抽象成帶有權(quán)重的詞匯的集合,然后利用WMD來衡量從一個集合變換到另一個集合的距離。
可以把這個目標(biāo)函數(shù)表示成式(4)。
(4)
上述最優(yōu)化目標(biāo)可以直觀理解成,為文檔中的每個單詞找到其在文檔中最相似的單詞,所有單詞的轉(zhuǎn)移距離之和則為文本的最小距離。最優(yōu)化的過程本質(zhì)上可以看成是推土機距離的一種特殊變形。
舉例來說,圖1描述了一個計算文本距離的過程。
圖1 Word Mover Distance示例[10]
首先去掉停用詞,樣例中的三個句子分別剩下四個單詞,因此假設(shè)每個單詞的權(quán)重為0.25,我們注意到每個轉(zhuǎn)移箭頭上標(biāo)記了該轉(zhuǎn)移對總轉(zhuǎn)移距離的貢獻大小,可以發(fā)現(xiàn),Word Mover Distance (WMD)可以很好的契合我們的動機,將一個句子里的單詞轉(zhuǎn)移到另一個句子里語義最為相似的單詞。例如,把單詞“Illinois”變成單詞“Chicago”比從單詞“Japan”變成“Chicago”損失更少,則文本D1比文本D2和目標(biāo)文本D0更為接近。這是因為在計算單詞向量時,“Illinois”和“Chicago”的距離更為靠近,語義更為接近。因此可以推斷出,WMD可以很好地刻畫共有單詞很少或有較多同義詞時,兩個句子的語義信息。
實驗證明,通過引入詞向量模型,并采用 WMD距離衡量文本距離,可以有效地改善模型,在各數(shù)據(jù)集上取得更好的表現(xiàn)。
為了提高整個推薦系統(tǒng)的性能,常常結(jié)合使用協(xié)同過濾模型和基于內(nèi)容推薦的模型[11]。最后的混合模型,采取按比例返回結(jié)果的合成方式,即按比例返回兩種算法產(chǎn)生的推薦結(jié)果。協(xié)同過濾和基于內(nèi)容的推薦算法,返回結(jié)果的比例初始值設(shè)為0.5和0.5。根據(jù)反饋,對該比例進行調(diào)整。當(dāng)用戶對推薦的結(jié)果有積極的反饋,即有點擊或是直接關(guān)注等行為時,我們相應(yīng)增加產(chǎn)生該條推薦結(jié)果的算法在整個混合模型中的比重。
為了取得更好的推薦效果,該模型中加入了一些工程性的技術(shù)技巧。
例如在基于內(nèi)容作出推薦前,首先對不活躍用戶的興趣特征進行預(yù)測。該數(shù)據(jù)集大約有 70%用戶未產(chǎn)生任何標(biāo)注或關(guān)注行為。對這一部分用戶的興趣的預(yù)測需要借助其他文本信息。該項目中,分析具體數(shù)據(jù)可發(fā)現(xiàn)用戶均產(chǎn)生一定數(shù)量的搜索記錄。通過對搜索關(guān)鍵詞進行預(yù)處理后,可以通過有相似搜索行為的用戶的興趣來預(yù)測該目標(biāo)用戶的興趣。
首先對雜亂的搜索記錄進行預(yù)處理,包括去停用詞,取單詞詞干,去掉低頻的詞語,這里經(jīng)過實驗設(shè)定閾值為5。其次發(fā)現(xiàn)一部分用戶的產(chǎn)生搜索日志的時間跨度較大,其興趣也隨著時間有所變化,為了突出刻畫用戶的短期興趣,在計算每個關(guān)鍵詞權(quán)重時都乘上時間衰減因子,越久遠的關(guān)鍵詞,則其權(quán)重越小。其次進行降維處理后計算相似度。同樣獲取與該用戶最相似的K個用戶,用他們的興趣向量平均值來預(yù)測目標(biāo)用戶的興趣向量。
同時,在實際工程中并不是固定推薦排名最高的論文,而是在推薦集合中(集合大小設(shè)為 20)隨機抽取推薦,增加結(jié)果的多樣性,提供更好的用戶體驗。
Aminer: 我們采用的數(shù)據(jù)集是Aminer平臺上約4 100個用戶的用戶數(shù)據(jù)。需要的訓(xùn)練數(shù)據(jù)均需自己預(yù)處理得到。最后的數(shù)據(jù)集規(guī)模為,約4 768個參與人次,而所有的參與人次來源于其中30%的用戶。
Meetup: Meetup是一個廣泛使用的聚會活動網(wǎng)站。我們通過Meetup API獲取了從2013到2016年在紐約舉辦的活動數(shù)據(jù)。對每個活動,我們抓取了它的文本描述信息和參與者信息,共22 313個活動和15 324個用戶,然后篩選不少于20人參加的聚會和參加不少于20個活動的用戶,最后得到4 722個用戶和5 064個活動。
Douban:豆瓣活動是國內(nèi)使用廣泛的聚會網(wǎng)站。我們獲取了從2012至今在北京舉辦的活動。然后篩選不少于20人參加的聚會和參加不少于20個活動的用戶。最后獲得6 513用戶,5 326個活動(共222 795個參與人次)。對于每個活動,我們同樣抓取了它的文本描述信息。
表1列出了數(shù)據(jù)集的信息。
表1 數(shù)據(jù)集信息
首先介紹兩個基本的個性化推薦算法,以做比較:
1) 基于用戶的協(xié)同過濾算法: 構(gòu)造用戶評級矩陣,通過相似用戶的評級信息,來預(yù)測目標(biāo)用戶對該物品的喜愛程度。
2) 基于物品的協(xié)同過濾推薦算法: 與基于用戶的協(xié)同過濾算法類似,該算法首先構(gòu)造物品評級矩陣,再通過相似物品的評級信息,來預(yù)測用戶對目標(biāo)物品的喜愛程度。
在推薦系統(tǒng)中,常常使用準確率來刻畫返回結(jié)果的相關(guān)性。在返回的推薦條目中,希望包含盡可能多的相關(guān)結(jié)果。為了刻畫返回結(jié)果集的相關(guān)程度,用準確率來定義相關(guān)文檔占總返回結(jié)果的比例,用召回率來定義相關(guān)文檔占總相關(guān)文檔的比例(這里指用戶已關(guān)注的論文集合)。因此,我們采用了以下幾種評估方法。
1) 準確率(Prec): 表示正確推薦的數(shù)目在總推薦數(shù)中占有的比例。
2) 召回率(Rec): 表示正確推薦的數(shù)目在用戶相關(guān)集中所占的比例。
對比該項目算法和其他基礎(chǔ)算法在Aminer數(shù)據(jù)集上的表現(xiàn),如表2所示。
表2 推薦模型性能比較
通過表中數(shù)據(jù)可以看出在所有的模型中,該文的模型在準確率,召回率和首位準確率等評估指標(biāo)上較基本的推薦算法都取得了最好的表現(xiàn)。對比準確率和召回率發(fā)現(xiàn),兩者并沒有相互制約,該文模型的準確率和召回率均有上升。其中Prec@1表示推薦列表的第一位是否準確,這個評估方法強調(diào)了推薦的排序。
同時發(fā)現(xiàn),使用混合模型比單一的協(xié)同推薦模型顯著提高了性能。提高的9%到14%,表明了詞向量模型的引入在推薦系統(tǒng)中的顯著作用。與使用余弦距離的方法三相比,采用WMD距離的推薦模型,即方法四,在Aminer數(shù)據(jù)集上,Prec@1,Prec@20, Rec@20分別顯著提高約4%, 3%和2%。在Meetup和Douban數(shù)據(jù)集上,Prec@1分別提高3%和4%。分析可知,該性能的提升,是因為在文本長度比較短,單詞重合較少的情況下,WMD模型對于語義信息的捕捉優(yōu)于余弦相似度模型。
系統(tǒng)后端使用Scala語言實現(xiàn),推薦算法使用python實現(xiàn),周期性地離線運行推薦算法,并將更新后的算法結(jié)果存儲到SSDB數(shù)據(jù)庫中。線上推薦則可通過直接索引,加以簡單的邏輯就可實現(xiàn)。且效率高,反應(yīng)時間短。系統(tǒng)的界面如圖2所示, 提供了關(guān)注按鈕,以供用戶反饋。
圖2 推薦系統(tǒng)界面
本文基于深度學(xué)習(xí)在Aminer平臺上實現(xiàn)了個性化推薦算法,對注冊用戶進行個性化論文推薦。在項目中,主要有以下創(chuàng)新。
1) 采用混合推薦的框架,將協(xié)同過濾和基于內(nèi)容的推薦相結(jié)合,相互彌補缺點。基于內(nèi)容的推薦可以推薦沒有任何評價數(shù)據(jù)的新論文,協(xié)同過濾可以充分利用用戶評價數(shù)據(jù)來挖掘用戶或是論文之間的相似性,推薦高質(zhì)量的論文。
2) 在基于內(nèi)容推薦的模塊中,創(chuàng)新性地提出了用文本距離度量用戶和論文的相似性,并引入了語言模型中最近廣泛使用的詞向量模型,最后通過WMD距離來衡量用戶和論文的文本距離。實驗證明該算法的表現(xiàn)優(yōu)異。
效果上,本文混合推薦模型相較于基本的協(xié)同過濾模型,在Aminer, Meetup, Douban三個數(shù)據(jù)集上進行驗證,有明顯的提升。
[1] Bennett J, Lanning S. The Netflixprize[C]//Proceedings of KDD cup and workshop. 2007: 35.
[2] Linden G, Smith B, York J. Amazon.com recommendations: Item-to-item collaborative filtering[J]. IEEE Internet computing, 2003, 7(1): 76-80.
[3] Cai Y, Leung H, Li Q, et al. Typicality-based collaborative filtering recommendation[J].Knowledge and Data Engineering, 2014, 26(3): 766-779.
[4] Resnick P, Iacovou N, Suchak M, et al. GroupLens: an open architecture for collaborative filtering of netnews[C]//Proceedings of the 1994 ACM conference on Computer supported cooperative work. ACM, 1994: 175-186.
[5] Shepitsen A, Gemmell J, Mobasher B, et al. Personalized recommendation in social tagging systems using hierarchical clustering[C]//Proceedings of the 2008 ACM conference on Recommender systems. ACM, 2008: 259-266.
[6] Gong S. A collaborative filtering recommendation algorithm based on user clustering and item clustering[J]. Journal of Software, 2010, 5(7): 745-752.
[7] Pazzani M, Billsus D. Content-based recommendation systems[M]//Peter B, Alfred K. Wolfgang N. The adaptive web. New York: Springer, 2007: 325-341.
[8] Balabanovic M, Shoham Y. Fab: content-based, collaborative recommendation[J].Communications of the ACM, 1997, 40(3): 66-72.
[9] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Proceedings of the Advances in neural information processing systems. 2013: 3111-3119.
[10] Kusner M, Sun Y, Kolkin N, et al. From Word Embeddings To Document Distances[C]//Proceedings of the 32nd International Conference on Machine Learning. 2015: 957-966.
[11] Burke R. Hybrid web recommender systems[M]//Peter B, Alfred K. Wolfgang N.The adaptive web. New York: Springer, 2007: 377-408.
E-mail: jietang@tsinghua.edu.cn