祁 燕,岳添駿,楊大為
(沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 110159)
隨著電子設(shè)備和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,人們逐漸從信息匱乏的時代走入了信息過載的時代。推薦系統(tǒng)[1]是一種解決信息過載問題的有效工具。簡單的說,推薦系統(tǒng)是通過分析用戶的歷史行為記錄從而得到推薦內(nèi)容[2]。這些記錄是用戶對于一系列項(xiàng)目(例如:電影、歌曲、電子書等)所做行為的體現(xiàn),這些行為可以是顯性的,一般表現(xiàn)為打分行為;也可以是隱性[3]的,典型的隱性行為是用戶操作所留下的痕跡,例如:聽歌時間、下載記錄等。通過分析這些記錄為用戶指引該用戶不熟悉的新物品來解決信息過載的現(xiàn)象。在推薦領(lǐng)域中,協(xié)同過濾算法是較為重要的一類算法,可以分為兩類[4]:基于近鄰的方法和基于模型的方法。其中基于近鄰的協(xié)同過濾算法包括基于用戶的協(xié)同過濾算法和基于物品的協(xié)同過濾算法,推薦過程是在預(yù)測中直接使用已有的數(shù)據(jù)進(jìn)行預(yù)測,算法的核心是在系統(tǒng)中被其他用戶打分過的物品內(nèi)容[5],主要思想是使用屬性構(gòu)建用戶和物品之間的關(guān)聯(lián),其屬性代表在系統(tǒng)中用戶和物品的潛在特征,如用戶對喜歡物品的打分以及物品的類別?;谟脩舻膮f(xié)同過濾算法的基本思想尋找與目標(biāo)用戶最相似的用戶,然后將用戶喜歡的而目標(biāo)用戶沒看過的物品推薦給目標(biāo)用戶?;谖锲返膮f(xié)同過濾算法類似,匹配與目標(biāo)用戶喜歡的物品相類似的物品來進(jìn)行推薦。
但是,在傳統(tǒng)的基于近鄰的協(xié)同過濾算法中,數(shù)據(jù)來源只有用戶對物品的打分?jǐn)?shù)據(jù),會出現(xiàn)數(shù)據(jù)稀疏性的問題,并且如有惡意評分的行為存在,也會影響用戶和物品之間的相似度度量。已有學(xué)者針對這一問題提出了不同方法進(jìn)行解決。例如:廉濤等[6]提出了一種混合協(xié)同過濾算法,使用LDA主題模型[7]發(fā)現(xiàn)用戶和物品潛在的因素,在低維的空間內(nèi)計(jì)算用戶和物品的相似度,由于LDA主題模型可以有效地從評分矩陣中發(fā)現(xiàn)對計(jì)算相似度有用的用戶和物品的特征,所以緩解了數(shù)據(jù)稀疏性的問題。彭敏等[8]提出了一種基于情感分析的推薦算法:SACF,該算法利用LDA主題模型挖掘出項(xiàng)目的K個屬性,通過用戶在各個屬性上的情感偏好計(jì)算用戶之間的相似度;但SACF算法只考慮到用戶的情感,而忽略能體現(xiàn)用戶興趣的評分,沒有考慮到評分與評論之間關(guān)系。
本文提出一種加權(quán)的基于LDA的協(xié)同過濾算法。算法分為2個部分聯(lián)合進(jìn)行相似度計(jì)算:(1)將用戶對不同物品的評論文本集合在一起,組成用戶評論集合,通過LDA主題模型對用戶評論集合進(jìn)行主題提取。(2)用戶對物品打分高時所給予的評論相對積極,對于打分低的評論則相對消極(文中稱為用戶興趣);針對用戶的這一特性,通過LDA主題模型對用戶的每一條評論進(jìn)行興趣主題提取,并通過打分?jǐn)?shù)值作為主題向量的“獎懲”權(quán)重。最后聯(lián)合進(jìn)行相似度計(jì)算并進(jìn)行推薦。
LDA主題模型是一種基于貝葉斯的概率生成模型,是一個以“主題-文檔-字”為層次結(jié)構(gòu),同過加入Dirichlet先驗(yàn)分布來解決過擬合現(xiàn)象的三層貝葉斯概率模型,可以通過文字對其中隱含的主題進(jìn)行建模,進(jìn)而挖掘文本主題。LDA模型中的參數(shù)如表1所示,LDA圖模型如圖1所示。
表1 LDA模型參數(shù)描述
圖1 LDA圖模型
LDA模型在生成一篇文檔過程中,其物理過程可以理解為投擲骰子,骰子每個面概率不一樣,在生成第d篇文檔的時候主要分為2步:
(1)從一個盒子中抽取一個文檔-主題的骰子Θd,然后投擲這個骰子生成文檔中第n個詞的主題編號Zd,n;
(2)在另一個盒子中,都是主題-字的骰子,挑選標(biāo)號t=Zd,n的骰子進(jìn)行投擲,然后生成一個字Wd,n;
(3)重復(fù)1、2兩步直至生成整篇文檔。
LDA主題模型中,服從Dirichlet分布的超參數(shù)α和β需要通過抽樣的方法進(jìn)行估計(jì),實(shí)驗(yàn)過程中通過使用吉布斯抽樣方法進(jìn)行抽樣[9]。
通過對用戶的打分和評論文本分析,提取出用戶主題和用戶興趣,提出了加權(quán)的基于LDA的用戶協(xié)同過濾算法。算法的流程圖如圖2所示。
圖2 算法流程圖
首先對原始的數(shù)據(jù)源進(jìn)行數(shù)據(jù)預(yù)處理,在原始數(shù)據(jù)中有用戶ID,物品ID,用戶對物品的打分,用戶對物品的評論等數(shù)據(jù)。將每位用戶對屬于同一類別的不同物品的評論文本集合在一起,組成用戶評論集合。利用LDA主題模型對每位用戶評論集合進(jìn)行主題提取,生成用戶主題分布,通過相對熵的計(jì)算方法對用戶之間的主題分布進(jìn)行相似度計(jì)算并查找最近鄰;然后,從原始數(shù)據(jù)源中提取出每位用戶的打分和評論。利用LDA主題模型對每條評論進(jìn)行主題提取,得到用戶主題分布,使用用戶對這件物品的打分?jǐn)?shù)據(jù)作為權(quán)重對用戶主題分布進(jìn)行加權(quán),得到用戶興趣主題,根據(jù)用戶興趣主題計(jì)算用戶相似度。將兩種相似度計(jì)算方法通過不同的比重結(jié)合在一起得到聯(lián)合相似度,最后預(yù)測用戶對未評過分的物品的評分。
對于用戶主題,利用相對熵對用戶主題進(jìn)行相似度計(jì)算,如式(1),找出K個最相似的近鄰。
(1)
式中u(x)和v(x)表示在x取值下用戶u的主題分布和用戶v的主題分布。
對于用戶興趣主題,首先要用LDA主題模型對每條評論文本進(jìn)行主題分析,產(chǎn)生K維的主題分布。這些主題分布表示用戶u在這篇評論中對物品i在不同主題上的概率,用來描繪用戶u對于物品i的個人興趣點(diǎn)。計(jì)算如式(2)所示。
(2)
式中:Pu表示用戶u在K維主題上的概率向量,向量分量表示每個主題出現(xiàn)的概率;Iu表示用戶u有過評分和評論的物品集合;θui表示概率主題分布;Du表示用戶u的評論集合。
伴隨著用戶u對每件物品i評論文本dui的是用戶的打分?jǐn)?shù)據(jù)rui,rui的分?jǐn)?shù)越高,說明用戶u對于物品i越滿意,那么寫下的評論文本內(nèi)容會是用戶滿意和喜歡物品i的理由。如果rui的分?jǐn)?shù)很低,那么寫下的評論文本內(nèi)容多是討厭物品i的理由。為突出滿足用戶需求的特征,利用rui為從評論文本中提取出的概率主題分布進(jìn)行加權(quán),將重點(diǎn)放在用戶感興趣的主題上,將用戶討厭的主題盡可能的降低其計(jì)算相似度時的比重。對于評論文本dui,用戶打分所占權(quán)重的計(jì)算式見式(3)。
(3)
(4)
得到用戶u的興趣主題Pu,即可計(jì)算用戶之間的相似度simP,見式(5)。
(5)
式中:k表示在提取用戶每條評論主題時,提取k個主題;puj表示用戶u在第j個主題上的概率值;pvj表示用戶v在第j個主題上的概率值。根據(jù)式(5)可以計(jì)算出用戶之間的相似度,在計(jì)算過程中,需要確定近鄰的數(shù)目;根據(jù)文獻(xiàn)[10],近鄰的數(shù)目會直接影響到預(yù)測得分和推薦的準(zhǔn)確性。
通過上述研究,可以各自算出用戶之間的相似度,因此把二者結(jié)合起來,通過聯(lián)合學(xué)習(xí)的方式來共同計(jì)算相似度,可以提高預(yù)測評分的準(zhǔn)確性,用戶相似度計(jì)算式見式(6)。
uni_sim(u,v)=λsimL(u,v)+(1-λ)simP(u,v)
(6)
式中參數(shù)λ是用來調(diào)節(jié)2種相似度所占的比重,需要在實(shí)驗(yàn)中獲取。
類似地,在加權(quán)的基于LDA的物品協(xié)同過濾算法中,物品i和j之間的相似度可以通過類似的方法得到。
對于加權(quán)的基于LDA的用戶協(xié)同過濾算法,計(jì)算完用戶相似度之后,利用評分預(yù)測式(7)來預(yù)測用戶對于未打分物品可能的打分。
(7)
對于加權(quán)的基于LDA的物品協(xié)同過濾算法,利用式(8)來預(yù)測用戶對未打分物品可能的打分。
(8)
式中:Iu表示用戶u有過打分行為的物品集合;ruj表示用戶u對物品j的打分;uni_sim(i,j)表示聯(lián)合物品主題和物品特征主題計(jì)算的相似值。
實(shí)驗(yàn)所使用的數(shù)據(jù)集來自社交網(wǎng)站Yelp公開提供的社交網(wǎng)絡(luò)簽到數(shù)據(jù)集。數(shù)據(jù)中記錄了用戶對于商戶的各種歷史行為,因此按照數(shù)據(jù)中商戶所屬的城市和商戶的經(jīng)營類別,提取部分?jǐn)?shù)據(jù)用于實(shí)驗(yàn)。數(shù)據(jù)包括Charlotte城市中經(jīng)營類別為Restaurant的商戶。數(shù)據(jù)集中的每條記錄都有用戶ID、商戶ID、打分?jǐn)?shù)據(jù)、簽到時間、評論文本等元素。表2顯示了這些數(shù)據(jù)的一些基本信息。
表2 實(shí)驗(yàn)數(shù)據(jù)集
由表2可以看出,數(shù)據(jù)集中有大量的評論文本可以用作用戶興趣點(diǎn)和商戶特征的建模,同時,數(shù)據(jù)非常稀疏,僅使用評分?jǐn)?shù)據(jù)來進(jìn)行用戶評分的預(yù)測,準(zhǔn)確度較低,而本文提出的方法在解決數(shù)據(jù)稀疏方面體現(xiàn)出一定的優(yōu)勢。
實(shí)驗(yàn)采用平均絕對誤差MAE(Mean Absolute Error)作為評測推薦準(zhǔn)確性的標(biāo)準(zhǔn)。MAE是推薦系統(tǒng)領(lǐng)域中普遍使用的一種評測標(biāo)準(zhǔn)。MAE的計(jì)算公式如式(9)所示。
(9)
式中:pred(u,i)表示用戶u對商戶i的預(yù)測評分;rui表示用戶u對商戶i的真實(shí)評分;Test表示數(shù)據(jù)的測試集。通過計(jì)算預(yù)測評分和用戶實(shí)際評分的差值來衡量推薦算法的準(zhǔn)確性,MAE的值越小,說明預(yù)測的越準(zhǔn)確,推薦算法的準(zhǔn)確性就越高,反之預(yù)測的準(zhǔn)確性越低。
3.2 實(shí)驗(yàn)結(jié)果及分析
為驗(yàn)證提出算法的有效性,設(shè)計(jì)了2組實(shí)驗(yàn)進(jìn)行對比驗(yàn)證。首先,在加權(quán)的基于LDA的用戶協(xié)同過濾算法中,實(shí)驗(yàn)確定聯(lián)合相似度計(jì)算中2個部分的參數(shù),通過設(shè)置不同的主題數(shù)和近鄰數(shù)來找到最佳的參數(shù),然后和基于用戶的協(xié)同過濾算法(UserCF)、LDA-CF在數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn)。其次,在另一組實(shí)驗(yàn)中,同樣需要確定聯(lián)合相似度計(jì)算中2個部分的參數(shù),和基于物品的協(xié)同過濾算法(ItemCF)、LDA-CF在數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn)。其中LDA-CF算法是使用LDA主題模型,結(jié)合潛在因素和鄰域方法的混合協(xié)同過濾算法。對于實(shí)驗(yàn)所用的數(shù)據(jù)集,根據(jù)數(shù)據(jù)中的時間屬性,隨機(jī)劃分80%的數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測試集,最后通過MAE的值來衡量推薦的準(zhǔn)確性。
3.2.1 基于用戶的本文算法結(jié)果分析
對于加權(quán)的基于LDA的用戶協(xié)同過濾算法,由于用戶主題是從評論文本集合中提取,文本字?jǐn)?shù)比較多,因此需要先確定simL(u,v)中用戶主題個數(shù)TL。將用戶主題個數(shù)TL定為5、10、20、30,實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 不同用戶主題個數(shù)下的用戶數(shù)量
由圖3中可以看出,當(dāng)用戶主題個數(shù)TL=5時,和主題1相關(guān)的用戶達(dá)到22500人,而與其他4個主題相關(guān)的人數(shù)遠(yuǎn)遠(yuǎn)少于這些人,當(dāng)TL=10時,也出現(xiàn)了類似的情況。當(dāng)大部分用戶都傾向于某一個主題時,會造成用戶之間相似度計(jì)算不準(zhǔn)確的問題。當(dāng)TL=20和30時,不同主題下的用戶數(shù)量差距較小且分布相對分散。因此,在實(shí)驗(yàn)結(jié)果相近的情況下,為提高算法執(zhí)行效率,將用戶主題個數(shù)TL定為20。
在對用戶提取興趣主題時,由于是對每條評論文本提取主題,文本內(nèi)容有限,因此主題個數(shù)TP不能定的過多,防止出現(xiàn)主題不突出的問題,實(shí)驗(yàn)中將TP的值定為5。對于加權(quán)的基于LDA的用戶協(xié)同過濾算法,通過固定最近鄰的大小K的值,來確定λ的值。令最近鄰的數(shù)目K=20,調(diào)節(jié)參數(shù)λ。在測試集上的實(shí)驗(yàn)結(jié)果如圖4所示。
從圖4可以看出,當(dāng)λ=0.3時,算法的MAE取得最小值。因此在加權(quán)的基于LDA的用戶協(xié)同過濾算法中的參數(shù)λ為0.3。
通過重新調(diào)整最近鄰K的參數(shù),來觀察在不同近鄰下的執(zhí)行效果,以及與UserCF和LDA-CF算法進(jìn)行對比,實(shí)驗(yàn)結(jié)果如表3所示。
圖4 MAE隨參數(shù)λ的變化情況
表3 不同近鄰數(shù)K下的MAE
從表3中的Improvement列可以看出,本文提出的算法準(zhǔn)確率明顯優(yōu)于UserCF算法和LDA-CF的準(zhǔn)確率,且在不同的近鄰K值的情況下,本文提出的算法的性能也都優(yōu)于UserCF和LDA-CF;在近鄰數(shù)較少的情況下,可以根據(jù)評論文本提取主題來彌補(bǔ)只有打分?jǐn)?shù)據(jù)帶來的數(shù)據(jù)稀疏性的問題,同時,對不同打分?jǐn)?shù)據(jù)下的評論文本進(jìn)行加權(quán)處理,相比LDA-CF的準(zhǔn)確率也有所提升。圖5展示了3種算法實(shí)驗(yàn)結(jié)果的折線曲線。
圖5 不同近鄰數(shù)K下的MAE
從圖5可以看出,3種算法的MAE值都呈下降趨勢,說明推薦的準(zhǔn)確率越高。
3.2.2 基于物品的本文算法結(jié)果分析
在加權(quán)的基于LDA的物品協(xié)同過濾算法中,對于TL的取值仍沿用之前的實(shí)驗(yàn)結(jié)果,令TL=20。實(shí)驗(yàn)首先需要確定聯(lián)合相似度計(jì)算過程中比重參數(shù)λ的值,由于商戶收到的每條來自用戶的文本評論內(nèi)容有限,因此對于主題數(shù)TQ不能定過多,在文本內(nèi)容較少的情況下,主題數(shù)量過多會造成特征主題不突出的結(jié)果,因此令TQ=5。實(shí)驗(yàn)中,通過固定最近鄰K的值,觀察MAE值的變化情況來確定λ的值。令最近鄰的數(shù)目K=20,調(diào)節(jié)參數(shù)λ,在測試集上的實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 MAE隨參數(shù)λ的變化情況
從圖6可以看出,當(dāng)λ=0.6時,本算法的MAE取得最小值。因此取該算法參數(shù)λ為0.6。
在固定參數(shù)λ為0.6后,需要通過重新調(diào)整最近鄰K的數(shù)值,進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表4所示。
表4 不同近鄰數(shù)K下的MAE
從表4可以看出,本算法的準(zhǔn)確率明顯優(yōu)于ItemCF算法和LDA-CF的準(zhǔn)確率。從表4中Improvement列中可以看出,當(dāng)近鄰數(shù)少時,本算法在預(yù)測評分的準(zhǔn)確率上優(yōu)勢更加明顯,當(dāng)用戶數(shù)增加時,與ItemCF的差距在逐漸減小,這是因?yàn)楫?dāng)數(shù)據(jù)稀疏時,本算法可以根據(jù)評論文本提取商戶特征主題來彌補(bǔ)只有打分?jǐn)?shù)據(jù)帶來的數(shù)據(jù)稀疏性的問題。當(dāng)近鄰數(shù)增多時,因?yàn)槲锲肥盏降拇蚍謹(jǐn)?shù)據(jù)遠(yuǎn)遠(yuǎn)多于用戶對物品的打分?jǐn)?shù)據(jù),因此ItemCF算法的準(zhǔn)確率隨著近鄰的增多而更準(zhǔn)確。相比于LDA-CF算法,由于根據(jù)物品的打分?jǐn)?shù)據(jù)對物品所收到的評論文本進(jìn)行了加權(quán)處理,因此在預(yù)測準(zhǔn)確度上本算法優(yōu)于LDA-CF算法。實(shí)驗(yàn)結(jié)果通過折線圖的方式展現(xiàn)出來,如圖7所示。
圖7 不同近鄰數(shù)K下的MAE
從圖7可以看出,隨著近鄰數(shù)目的增加,3種算法的MAE值都呈下降趨勢,說明隨著近鄰數(shù)的增加,預(yù)測的分?jǐn)?shù)越準(zhǔn)確,推薦的準(zhǔn)確率就越高。
對比2組實(shí)驗(yàn)可以發(fā)現(xiàn),總體上,本文提出的算法在數(shù)據(jù)集上的表現(xiàn)要優(yōu)于LDA-CF、UserCF、ItemCF算法。
提出的加權(quán)的基于LDA的協(xié)同過濾算法考慮了用戶評論文本集合的特點(diǎn)以及打分對于評論文本的影響,與UserCF、ItemCF算法和LDA-CF相比,實(shí)現(xiàn)了擺脫傳統(tǒng)算法中單純使用用戶-物品打分矩陣的局限以及根據(jù)用戶興趣特征進(jìn)行個性化推薦,有效的緩解了單純使用打分?jǐn)?shù)據(jù)帶來的數(shù)據(jù)稀疏性問題,提高了預(yù)測的準(zhǔn)確性。但仍然存在一些不足之處,如評論文本中存在的虛假評論情況,評論文本中感情因素對推薦的影響等。因此,將有待于研究更精準(zhǔn)的算法來解決現(xiàn)階段面臨的挑戰(zhàn)。
參考文獻(xiàn):
[1] Francedsco Ricci,Lior Rokach,Bracha Shapira,et al.推薦系統(tǒng):技術(shù)、評估及高效算法[M].北京:機(jī)械工業(yè)出版社,2015:2-3.
[2] J Bobadilla,F Ortega,A Hernando.Recommender systems survey[J].Knowledge-Based Systems,2013,46(1):109-132.
[3] SK Lee,YH Cho,SH Kim.Collaborative filtering with ordinal scale-based implicit ratings for mobile music recommendations[J].Information Sciences,2010,180(11):2142-2155.
[4] G Adomavicius,A Tuzhilin.Toward the Next Generation of Recommender Systems:A Survey of the State-of-the-Art and Possible Extensions[J].Springer International Publishing,2013,17(6):734-749.
[5] Li D,Lv Q,Shang L,et al.Item-based top-N recommendation resilient to aggregated information revelation[J].Knowledge-Based Systems,2014,67(3):290-304.
[6] 廉濤,馬軍,王帥強(qiáng),等.LDA-CF:一種混合協(xié)同過濾方法[J].中文信息學(xué)報(bào),2014,28(2):129-135.
[7] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].Journal of Machine Learning Research,2003(3):993-1022.
[8] 彭敏,席俊杰,代心媛,等.基于情感分析和LDA主題模型的協(xié)同過濾推薦算法[J].中文信息學(xué)報(bào),2017,31(2):194-203.
[9] Griffiths T L,Steyvers M.Finding scientific topics[J].Proceedings of the National Academy of Sciences of the United States of America,2004,101(Suppl 1):5228-5235.
[10] Herlocker J,Konstan J A,Riedl J.An Empirical Analysis of Design Choices in Neighborhood-Based Collaborative Filtering Algorithms[J].Information Retrieval,2002,5(4):287-310.