張 航,何靈敏
(中國(guó)計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)
隨著互聯(lián)網(wǎng)的普及和信息技術(shù)突飛猛進(jìn)的發(fā)展,信息的過(guò)度豐富給信息篩選帶來(lái)了巨大的挑戰(zhàn).推薦系統(tǒng)的出現(xiàn)為用戶提供了一種解決信息過(guò)載的工具.推薦系統(tǒng)根據(jù)用戶的歷史行為信息挖掘出用戶感興趣的內(nèi)容,從而為用戶推薦其感興趣的內(nèi)容.傳統(tǒng)的推薦算法主要可以分為3大類:基于內(nèi)容的推薦算法[1]、協(xié)同過(guò)濾推薦算法[2]以及混合推薦算法[3].協(xié)同過(guò)濾算法是目前應(yīng)用最廣泛的推薦算法,根據(jù)推薦方式的不同,協(xié)同過(guò)濾算法分為基于鄰域的協(xié)同過(guò)濾算法和基于矩陣分解的協(xié)同過(guò)濾算法.基于鄰域的協(xié)同過(guò)濾算法主要包括基于用戶[4]和基于物品[5]的協(xié)同過(guò)濾.其基本的原理是基于相似性,通過(guò)度量共同評(píng)分向量的相似度來(lái)尋找相似的用戶和物品.基于矩陣分解[6]的協(xié)同過(guò)濾算法是一種從評(píng)分矩陣中提取用戶和物品的隱含向量的降維方法,該方法通過(guò)將原始的高維評(píng)分矩陣分解為兩個(gè)低維矩陣乘積的形式,把用戶和物品映射到同一個(gè)f維的隱空間.用戶對(duì)物品的預(yù)測(cè)評(píng)分可以表示為兩個(gè)矩陣的乘積的形式.
在實(shí)際的應(yīng)用中,由于大多數(shù)用戶只對(duì)少數(shù)物品評(píng)分,所以即便兩名用戶的興趣相似,他們的共同評(píng)分物品也可能會(huì)很少.數(shù)據(jù)的稀疏性對(duì)傳統(tǒng)的推薦方法提出了嚴(yán)峻的挑戰(zhàn).針對(duì)稀疏性的問(wèn)題,文獻(xiàn)[7-8]提出將LDA主題模型與協(xié)同過(guò)濾融合的方法,混合后的模型可以在一定程度上解決數(shù)據(jù)稀疏性的問(wèn)題,文獻(xiàn)[9]提出了一種基于情感分析和LDA主題模型的方法.LDA主題模型是一種概率混合模型[10],通過(guò)對(duì)詞匯間接地進(jìn)行模糊聚類發(fā)現(xiàn)大型語(yǔ)料中的潛在主題,把文檔從高維空間映射到低維主題空間,進(jìn)而可以在低維主題空間中計(jì)算文檔的相似性.
為了進(jìn)一步提高LDA主題模型推薦算法的推薦質(zhì)量,本文提出了一種基于負(fù)樣本進(jìn)行學(xué)習(xí)的方法negLDA.通常的推薦算法只考慮了用戶對(duì)物品的正面情緒,在現(xiàn)實(shí)情況中往往用戶對(duì)于物品既有正面情緒又有負(fù)面情緒.比如對(duì)于某部電影而言,用戶喜歡其中的懸疑部分但是不喜歡其中的情感部分,用戶對(duì)于電影的評(píng)價(jià)是由正面情緒和負(fù)面情緒綜合構(gòu)成的.因此,本文引入了負(fù)樣本進(jìn)行學(xué)習(xí),從而可以得到一個(gè)用戶對(duì)所有物品的負(fù)面打分,然后用正樣本學(xué)習(xí)得到的正面打分與負(fù)面打分來(lái)綜合評(píng)價(jià)用戶對(duì)物品的喜愛(ài)程度.
主題模型是用來(lái)發(fā)現(xiàn)文檔所屬主題并對(duì)其進(jìn)行歸類的算法,它屬于一種非監(jiān)督機(jī)器學(xué)習(xí)方法,能夠用來(lái)識(shí)別大規(guī)模文檔集和語(yǔ)料庫(kù)中潛在隱藏的主題信息.由于不同的單詞可能隱含了相同的主題,因此比較兩篇文檔的相似性不能只是單純地比較共現(xiàn)單詞的數(shù)目,而是比較兩篇文檔當(dāng)中所隱含的主題之間的相似性.Blei等人在文獻(xiàn)[10]中提出的潛在狄利克雷分布(Latent Dirichlet Allocation,LDA)是主題模型中最經(jīng)典的一種方法.LDA主題模型由圖1可知是一個(gè)三層的貝葉斯模型,包含文檔層、單詞層、主題層.LDA主題模型使用概率分布表示層與層之間的關(guān)系,將文本表示成多個(gè)主題的概率分布,將主題表示為多個(gè)單詞的概率分布.可以這樣認(rèn)為,一篇文章中每個(gè)詞都是通過(guò)“以一定的概率選擇了某個(gè)主題,并從這個(gè)主題中以一定的概率選擇了某個(gè)詞語(yǔ)”這樣一個(gè)過(guò)程得到的.通過(guò)隱含的特征來(lái)聯(lián)系用戶感興趣的物品,我們也可以這樣來(lái)理解用戶的評(píng)分矩陣,將用戶感興趣的物品看成是詞匯,用戶的評(píng)分看成是詞頻,用戶對(duì)物品的所有評(píng)分就可以轉(zhuǎn)變成一篇偽文檔.這樣一來(lái)我們就可以使用LDA來(lái)對(duì)物品間接地進(jìn)行模糊聚類,從用戶的評(píng)分矩陣中發(fā)現(xiàn)潛在的主題,通過(guò)潛在的主題對(duì)用戶和用戶感興趣的物品進(jìn)行連接.
如果將LDA主題模型的思想應(yīng)用到用戶-物品評(píng)分矩陣R,將每種物品i看成是一個(gè)單詞w,每個(gè)用戶u看成是一篇由物品組成的偽文檔du,某個(gè)用戶u對(duì)物品i的評(píng)分ru,i就等同于物品i在偽文檔du中出現(xiàn)的次數(shù),那么就能夠?qū)⒂脩舻脑u(píng)分矩陣轉(zhuǎn)換成偽文檔集合.然后,我們利用LDA挖掘偽文檔集合中的潛在主題,通過(guò)潛在主題把用戶和物品之間進(jìn)行聯(lián)系.每個(gè)主題z對(duì)應(yīng)用戶的物品集合I上的一種多項(xiàng)式分布φz,每個(gè)用戶u擁有一種潛在主題上的多項(xiàng)式分布Qu.用戶對(duì)物品的評(píng)分可以這樣進(jìn)行描述:用戶u首先根據(jù)自己的興趣Qu選擇一個(gè)主題z,然后根據(jù)該主題所對(duì)應(yīng)物品的多項(xiàng)式分布φz選擇一個(gè)物品,不斷地將這個(gè)過(guò)程進(jìn)行重復(fù),用戶u對(duì)物品i選擇次數(shù)越多,那就代表著用戶對(duì)這個(gè)物品的評(píng)分ru,i就越大.LDA的圖模型可以表示成圖1所示,在圖1中,α和β為狄利克雷參數(shù),一般通過(guò)先驗(yàn)給出.U、Z、Iu分別表示用戶集合、主題集合和用戶u的物品集合.
圖1 LDA的圖模型表示Figure 1 LDA graph model representation
為了進(jìn)一步改進(jìn)LDA主題模型推薦算法的性能,本文引入了負(fù)樣本進(jìn)行學(xué)習(xí).通過(guò)負(fù)樣本的學(xué)習(xí)可以挖掘出用戶對(duì)物品的負(fù)面情緒,相當(dāng)于可以得到用戶對(duì)所有物品的負(fù)面打分;而正樣本的學(xué)習(xí)可以得到正面打分,用兩者綜合評(píng)價(jià)用戶對(duì)物品的喜愛(ài)程度.如何選取好的負(fù)樣本是本文工作的難點(diǎn).本文給出了以下三種方法:隨機(jī)采樣、矩陣分解、物品相似度.
1.2.1隨機(jī)采樣
將用戶未購(gòu)買(評(píng)論)過(guò)的物品表示為集合Q,從集合Q當(dāng)中隨機(jī)抽取一定數(shù)目的樣本作為負(fù)樣本.在實(shí)際的數(shù)據(jù)中,正樣本通常是很稀少的,用戶購(gòu)買(評(píng)論)過(guò)的物品只占全部物品的極少一部分,隨機(jī)采樣得到的負(fù)樣本未必是用戶不喜歡的物品.
1.2.2矩陣分解
(1)
在式(1)中DS表示訓(xùn)練集,wu表示用戶u的特征向量,hi表示物品i的特征向量,ru,i表示用戶u對(duì)物品i的評(píng)分,λ為正則化系數(shù),引入正則化項(xiàng)是為了防止過(guò)擬合.通過(guò)矩陣分解可以預(yù)測(cè)用戶對(duì)于未購(gòu)買(評(píng)論)物品的評(píng)分,基于評(píng)分排序可以為每個(gè)用戶得到一個(gè)推薦列表,從推薦列表的尾部選取一定數(shù)目的樣本作為負(fù)樣本.
1.2.3物品的相似度
相似度的計(jì)算是傳統(tǒng)的協(xié)同過(guò)濾推薦算法的關(guān)鍵步驟.最常用的方法分別是余弦相似度、Pearson相關(guān)性以及修正的余弦相似性.實(shí)驗(yàn)結(jié)果表明,利用Pearson相關(guān)性計(jì)算物品的相似度得到的實(shí)驗(yàn)效果比其他兩種方法更好.在后面的實(shí)驗(yàn)中,本文將利用Pearson相關(guān)性計(jì)算物品之間的相似度.
通過(guò)這三種方法中的一種就可以采樣出用于學(xué)習(xí)的負(fù)樣本:即用戶不喜歡的電影(或者是物品).通過(guò)對(duì)這些負(fù)樣本的學(xué)習(xí)可以提取出用戶的負(fù)面情感.例如:某用戶不喜歡血腥驚悚類的電影,當(dāng)在對(duì)其進(jìn)行推薦的時(shí)候,如果一部電影含有這樣的元素就要對(duì)這部電影進(jìn)行減分處理.而正樣本的學(xué)習(xí)可以提取用戶的正面情感,例如某用戶喜歡幽默類的電影,當(dāng)在對(duì)其進(jìn)行推薦的時(shí)候就要相應(yīng)地進(jìn)行加分處理.通過(guò)這樣正反兩方面的學(xué)習(xí)就可以更加立體地衡量出用戶對(duì)電影(或其他物品)的喜歡程度.從而進(jìn)行更加精確的推薦.
在實(shí)驗(yàn)部分我們比較了negLAD和LDA[11]、pLSA[12]、BPR[13]等經(jīng)典算法,我們?cè)u(píng)估算法的性能在三個(gè)不同的數(shù)據(jù)集上:MoviesLens-100k、MovieLens-1M、FilmTrust.三個(gè)數(shù)據(jù)集均為電影評(píng)分?jǐn)?shù)據(jù),MoviesLens-100k包括943名用戶對(duì)1 682部電影的10 000個(gè)評(píng)分,MovieLens-1M包括6 040個(gè)用戶對(duì)大概3 900部電影的1 000 209條評(píng)分?jǐn)?shù)據(jù),評(píng)分范圍為1~5分.FilmTrust包括1 508個(gè)用戶對(duì)2 071部電影共35 497條評(píng)分記錄,評(píng)分范圍為0.5~4.0分.為了防止訓(xùn)練過(guò)擬合,實(shí)驗(yàn)時(shí)采用五折交叉驗(yàn)證法,即將數(shù)據(jù)集均等地劃分為5份,取其中4份為訓(xùn)練集,剩下的1份為測(cè)試集.分別進(jìn)行五次實(shí)驗(yàn),五次實(shí)驗(yàn)所得的平均值即為實(shí)驗(yàn)結(jié)果.
我們分別用每種算法為每個(gè)用戶推薦top10的物品(預(yù)測(cè)得分最高的10個(gè)物品),然后計(jì)算推薦的精準(zhǔn)率(Precision,P)、召回率(Recall,R)以及排序指標(biāo)AUC[13],比較所有算法的各種指標(biāo).文獻(xiàn)[13]給出了AUC的定義,前兩個(gè)指標(biāo)的計(jì)算方法為:
(2)
公式(2)中TP表示推薦結(jié)果和測(cè)試集中都有的商品數(shù)量,F(xiàn)P表示推薦結(jié)果有但測(cè)試集中沒(méi)有的商品數(shù)量,F(xiàn)N表示推薦結(jié)果沒(méi)有但測(cè)試集中有的商品數(shù)量.
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)基于物品相似度的負(fù)樣本采樣能夠獲得最好的實(shí)驗(yàn)結(jié)果,因此本文選用了基于物品相似度的方法來(lái)采樣負(fù)樣本.而且負(fù)樣本和正樣本比例、負(fù)面得分所占的權(quán)重等因素均會(huì)影響negLDA算法的性能.表1、表2、表3分別給出了針對(duì)不同數(shù)據(jù)集在合適的參數(shù)(本文取正負(fù)樣本比例1∶3,負(fù)面得分所占權(quán)重取1~10)下經(jīng)過(guò)足夠多的迭代步數(shù)(確保收斂)四種算法的表現(xiàn).
表1 MovieLens-100K數(shù)據(jù)集
表2 MovieLens-1M數(shù)據(jù)集
表3 Filmtrust數(shù)據(jù)集
從表中可以看出,改進(jìn)后的算法在三個(gè)數(shù)據(jù)集上相比其他算法在精確率、召回率、AUC上都有所改進(jìn).本文提出的算法通過(guò)引入負(fù)樣本來(lái)對(duì)商品進(jìn)行負(fù)面打分,彌補(bǔ)了以往的算法只考慮用戶的正面情緒的不足.在下一步的工作當(dāng)中,我們將對(duì)負(fù)樣本的采樣方法做進(jìn)一步的改進(jìn),以期得到更好的負(fù)樣本,進(jìn)一步提高推薦的質(zhì)量.
【參考文獻(xiàn)】
[1]PAZZANI M J, BILLSUS D. Content-based recommendation systems[C]//ProcoftheAdaptiveWeb. Heidelberg, Berlin: Springer-Verlag, 2007:325-341.
[2]BALTRUNAS L, RICCI F. Experimental evaluation of context-dependent collaborative filtering using item splitting[J].UserModelingandUser-AdaptedInteraction, 2014,24(1, 2):7-34.
[3]CHEN W, NIU Z, ZHAO X, LI Y. A hybrid recommendation algorithm adapted in e-learning environments[J].WorldWideWeb, 2014,17(2):271-284.
[4]SARWAR B M, KARYPIS G, KONSTAN J A, et al.Analysis of recommendation algorithms for ecommerce[C]//Procedingsofthe2ndACMConferenceonElectronicCommerce. New York: ACM Press, 2000:158-167.
[5]SARWAR B M, KARYPIS G, KONSTAN J, et al. Item-based collaborative filtering recommendation algorithms[C]//Procedingofthe10thInternationalConferenceonWorldWideWeb. New York: ACM Press, 2001:285-295.
[6]KOREN Y, BEL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J].Computer, 2009,42(8):30-37
[7]黃璐,林川杰,何軍,等.融合主題模型和協(xié)同過(guò)濾的多樣化移動(dòng)應(yīng)用推薦[J].軟件學(xué)報(bào),2017,28(3):708-720.
HUANG L, LIN C J, HE J, et al.Diversifled mobile app recommendation combining topic model and collaborative filtering[J].JournalofSoftware,2017,28(3):708-720.
[8]高娜,楊明.嵌入LDA主題模型的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)科學(xué),2016,43(3):57-61.
GAO N, YANG M. Topic model embedded in collaborative filtering recommendation algorithm[J].ComputerScience, 2016,43(3):57-61.
[9]彭敏,席俊杰,代心媛,等.基于情感分析和LDA主題模型的協(xié)同過(guò)濾推薦算法[J].中文信息學(xué)報(bào),2017,31(2):194-203.
PENG M, XI J J, DAI X Y. et al. Collaborative filtering recommendation based on sentiment analysis and LDA topic model[J].JournalofChineseinformationprocessing, 2017,
31(2):194-203.
[10]BLEI D M, NG A Y, JORDAN M I. Latent dirichlet alocation[J].Journalofmachinelearningresearch,2003,3:993-1022.
[11]HEINRICH G. Parameter estimation for text analysis[R].Germany: University of Leipzig, 2008.
[12]HOFMANN T. Latent semantic models for collaborative filtering[J].ACMTransactionsonInformationSystems,2004,22(1):89-115.
[13]RENDLE S, FREUDENTHALER C, GANTNER Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]//Proceedingsofthe25thConferenceonUncertaintyinArtificialIntelligence(UAI09). Arlington, Virginia, USA: AUAI Press, 2009:452-461.