蔡宇辰
摘要:近年來,越來越多的用戶形成了使用博客的習慣,然而由于網(wǎng)絡上充斥著浩如煙海的信息,用戶很難用傳統(tǒng)的信息檢索方式快速地找到自己想要的博文,因此博客推薦系統(tǒng)應運而生,它可以為用戶提供個性化的推薦服務,因此有效地解決了“信息過載”與“信息迷航”問題。協(xié)同過濾是當今博客推薦系統(tǒng)中應用最成功的推薦方法之一,它利用一組用戶已知的偏好信息預測另一組用戶未知的偏好。在本篇論文中,首先指出了推薦系統(tǒng)所面臨的問題,即只利用用戶對物品的顯式評分或隱式評分為每個用戶產(chǎn)生推薦集,但沒有在推薦過程中利用負反饋信息。此外,介紹了推薦系統(tǒng)的概念與應用和兩種主要的推薦方法:基于內(nèi)容的方法和協(xié)同過濾方法,并且介紹了每個方法的原理以及與他們相關(guān)的算法。隨后提出了一種基于負反饋的協(xié)同過濾推薦算法,并解釋了新提出的推薦系統(tǒng)的邏輯結(jié)構(gòu)。用新浪博客的數(shù)據(jù)集對新方法進行了評估,實驗結(jié)果表明,新提出的方法比傳統(tǒng)的基于用戶的協(xié)同過濾方法有更好的表現(xiàn)。
關(guān)鍵詞:推薦系統(tǒng);協(xié)同過濾;負反饋
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2015)26-0181-02
1緒論
1.1研究意義
推薦系統(tǒng)(Recommendation Systems)就是一項個性化信息過濾技術(shù),它利用用戶的偏好信息自動的向用戶推薦符合其興趣特點的信息對象,能夠有效地解決“信息超載”帶來的一些問題,目前它已經(jīng)成為各主流互聯(lián)網(wǎng)站點不可或缺的新一代信息服務形式。
選擇合適的推薦算法是個性化推薦系統(tǒng)成功應用的核心和關(guān)鍵,目前流行的推薦方法主要有:基于內(nèi)容(Content-based)的推薦,協(xié)同過濾(Collaborative Filtering)推薦和混合推薦技術(shù)(Hybrid Recommendation)等。其中協(xié)同過濾是目前推薦領(lǐng)域應用最廣泛和最成功的技術(shù),也是當今推薦算法中研究熱點。
本文針對協(xié)同過濾算法的推薦精度問題,結(jié)合機器學習相關(guān)領(lǐng)域的知識,提出一種將用戶行為的負反饋信息引入推薦系統(tǒng)的新方法,以便提升推薦結(jié)果的準確率。
1.2研究內(nèi)容
在目前新浪博客推薦系統(tǒng)中,用戶未點擊的推薦列表中的博文信息沒有加入到推薦系統(tǒng)中,而只使用用戶點擊的推薦博文列表中的博文信息做推薦。這樣的做法存在兩個問題:1)認為用戶未點擊的博文與用戶的興趣偏好沒有聯(lián)系,然而事實并非如此,在用戶未點擊的博文中亦會存在用戶感興趣的博文。假設(shè)用戶A對“美食”題材的博文感興趣,而博文推薦列表中有10篇關(guān)于美食題材的博文,在大多數(shù)情況下,用戶是不會瀏覽者全部的十篇博文的,而只會瀏覽其中的一篇或幾篇,因此未瀏覽的博文仍然存在著用戶感興趣的信息。2)忽略用戶間的偏好差異。假設(shè)用戶A的推薦列表上有兩篇推薦博文a和b,用戶B的推薦列表上有推薦博文a和c,當果用戶A和用戶B都只點擊了博文a時(兩位用戶推薦列表上的交集部分),推薦系統(tǒng)會視用戶A和用戶B具有相同的偏好興趣,此時若只利用用戶點擊的博文勢必不能做出符合個體的推薦,因為用戶的差異性體現(xiàn)在用戶未點擊的博文上邊。為了解決上述問題,本文將用戶未點擊的博文信息加入到推薦系統(tǒng)中來,從而為用戶提供更精準的個性化博文推薦服務。
2算法相關(guān)理論和技術(shù)基礎(chǔ)
基于近鄰用戶的協(xié)同過濾算法是最流行的協(xié)同過濾算法之一,它包含三個主要的步驟:用戶相似度計算、最近鄰居的選取和評分預測。
Cosine相似度是計算用戶相關(guān)性的常用方法,假設(shè)[Sxy]為用戶x和y共同評分的物品集,Cosine相似度計算公式如下:
對于每一個用戶來說,只選取相似度最高的K個用戶作為此用戶的近鄰用戶。
目標用戶u對物品i的評分通常是通過選出的近鄰用戶對物品i的打分集合來進行計算的。最簡單的計算方法是取近鄰用戶對物品i打分的平均值,但這種方法無法反應目標用戶與用戶的相似度。讓[U]作為目標用戶u的近鄰用戶集,用戶u對新物品s的評分[ru,s]還可以通過以下方式計算:
最終選取評分[ru,s]最高的前N項物品作為目標用戶u最終的推薦結(jié)果。
3系統(tǒng)框架
3.1機選近鄰用戶
清洗出一天內(nèi)點擊博首猜你喜歡欄目的所有用戶[C],作為推薦博文的目標用戶集。獲得每個用戶點擊博文的“欄目:次數(shù)”向量,例如用戶A在這一天點擊了博文a、博文b、博文c,博文a和博文b都屬于體育這個欄目,博文c屬于美食這個欄目,那么用戶A的“欄目:次數(shù)”信息為:“體育:2、美食:1”。用Cosine相似度方法計算目標用戶與其他用戶“欄目:次數(shù)”向量的相似度[simx,y],為目標用戶選取與其相似度最高的50名用戶作為此用戶的近鄰用戶。
3.2計算備選博文推薦列表
得到過去6天內(nèi)用戶[c∈C]所點擊的全部全站點擊博文,以及這些博文的“關(guān)鍵詞:評分”信息,記為向量[b]。然后獲得目標用戶的“關(guān)鍵詞:評分”向量,記為向量[u],用Cosine相似度方法計算[u]與[b]的相似度[simx,b]。[simx,y']為點擊博文b的近鄰用戶與目標用戶相似度[simx,y]的算數(shù)平均值。 如果博文[b]的關(guān)鍵詞和目標用戶[x]的關(guān)鍵詞沒有交集,則評分的計算公式為:
如果博文[b]的關(guān)鍵詞和目標用戶[x]的關(guān)鍵詞有交集,則評分的計算公式為:
選取博文評分[rx,b]最高的前200篇作為目標用戶[x]的備選博文推薦列表[B]。
3.3計算負User-Profile日志
清洗出同一天內(nèi)用戶[x]未點擊的博客首頁猜你喜歡欄目下的博文集合[O],每個博文[b∈O]的關(guān)鍵詞集合記為項量[b],每個用戶[x]的關(guān)鍵詞集合記為向量[x],向量[b]與向量[x]的交集中關(guān)鍵詞的數(shù)量即為此博文的評分。然后計算此用戶點擊的博客首頁猜你喜歡欄目下的博文數(shù)量[n],取得分最高前[n]個博文[b∈O]作為用于計算此用戶負User-Profile的博文,把每條博文中相同關(guān)鍵詞的評分相加,即得到此用戶的負User-Profile日志,向量記為[v]。
3.4得到最終博文推薦列表
讓博文[b'∈B]的“關(guān)鍵詞:得分”向量是[b'],用Cosine相似度方法計算[v]與[b']的相似度記為[simx,b'']。如果博文[b']的關(guān)鍵詞和目標用戶[x]的負User-Profile中的關(guān)鍵詞沒有交集,則評分的計算公式為:
如果博文[b]的關(guān)鍵詞和目標用戶[x]的負User-Profile中的關(guān)鍵詞有交集,則評分的計算公式為:
取博文評分[rx,b']最高的100篇博文,即為最終的推薦博文列表。
4實驗評價
4.1數(shù)指標評測
使用Discounted Cumulative Gain(DCG)評價本文提出推薦算法的推薦效果。DCG是信息檢索(Information Retrieval)中用來評價搜索引擎算法有效性的一種方法,它有一個假設(shè),即在結(jié)果列表中位置靠后的相關(guān)文件得分應該依據(jù)其所在位置按照對數(shù)成比例地減少。
在評價博客推薦效果時,先計算每個用戶[u]推薦博文列表的[DCGu],再對所有用戶的[DCG]求和,然后除以總用戶數(shù)[totalUserNum],得到平均的[DCG]值,公式如下:
其中[p]為推薦列表中所含博文條數(shù),[reli]為第[i]條博文的得分,用戶[u]點擊的博文得分為1,未點擊的博文得分為0。
4.2實驗結(jié)果
為了評估實驗效果,實驗進行四次,分別針對5月6號、5月7號、5月8號、5月9號的用戶進行博文推薦,且同時應用負反饋的協(xié)同過濾推薦算法(negative-CF)和傳統(tǒng)的協(xié)同過濾算法(CF),然后計算DCG的數(shù)值。
由圖1可知,negative-CF的DCG值比CF的DCG值大,因此negative-CF比傳統(tǒng)的CF擁有更好的推薦效果。
5結(jié)論
在本篇論文中,提出了一種基于負反饋的協(xié)同過濾推薦算法,并利用這種方法產(chǎn)生推薦博文列表。通過Cosine相似度計算找到用戶的近鄰用戶,然后應用基于用戶的協(xié)同過濾算法產(chǎn)生候選博文列表,接下來用負反饋信息對候選博文列表中的博文做篩選,并產(chǎn)生最終的博文推薦結(jié)構(gòu)。新方法在新浪博客的數(shù)據(jù)集上進行了實驗,同樣的數(shù)據(jù)也被應用在傳統(tǒng)的協(xié)同過濾推薦算法上。實驗結(jié)果表明,新提出的算法提升了博文推薦的準確度。
參考文獻:
[1] Gediminas Adomavicius, Alexander Tuzhilin. Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions[J]. IEEE Transactions on Knowledge and Data Engineering,2005,17(6):734-749.
[2] Alejandro Bellogin, Pablo Castells, Iván Cantador. Neighbor Selection and Weighting in User-Based Collaborative Filtering: A Performance Prediction Approach[J].Transaction on the Web(TWEB), 2014,8(2):1-30.
[3] Alexander Hars. Does a One-Size Recommendation System Fit All? The Effectiveness of Collaborative Filtering Based Recommendation Systems Across Different Domains and Search Modes[J], Transaction on Information Systems(TOIS), 2007,26(1):4.[4] Ting-Chun Peng, Seng-Cho T.Chou. iTrustU: A Blog Recommender System Based on Multi-faceted Trust and Collaborative Filtering, Proceedings of the 2009 ACM symposium on Applied Computing(SAC)[J], 2009.
[5] 周軍鋒,湯顯,郭景峰. 一種優(yōu)化的協(xié)同過濾推薦算法[J].計算機研究與發(fā)展,2004,41(10):1842-1847.
[6] 郭艷紅. 推薦系統(tǒng)的協(xié)同過濾算法與應用研究[D].大連:大連理工大學, 2008.