楊凌云
摘要:Slope One算法是一種易實現(xiàn),運算效率高,可擴展性好的協(xié)同過濾推薦算法,但該算法依賴大量用戶對待預(yù)測項目的評分,在數(shù)據(jù)稀疏的情況下用戶評分的可靠性對推薦結(jié)果的影響很大。該文首先利用LensKit工具下的Slope One算法和某在線圖書網(wǎng)站的數(shù)據(jù)進行了圖書推薦實驗,分析了三個導(dǎo)致圖書推薦效果不好的原因,然后提出了稀疏數(shù)據(jù)下的基于預(yù)測評分可靠性加權(quán)的Slope One算法優(yōu)化,最后對優(yōu)化后的推薦算法進行對比實驗,證明改進后的圖書推薦系統(tǒng)在內(nèi)存使用率和推薦質(zhì)量上均有明顯提高。
關(guān)鍵詞: 協(xié)同過濾; 圖書推薦系統(tǒng); Slope One算法; 算法優(yōu)化; LensKit工具
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)04-0079-03
Abstract:Slope One algorithm is a collaborative filtering algorithm, which is easy to implement with high operational efficiency and good scalability. However this algorithm relies on a large number of users ratings to the item which should be predicted. The final rating prediction is affected a lot by the reliabilities of the users ratings when data is sparse. This paper firstly uses LensKit to realize Slope One algorithm based book recommendation with online book website data, and analyses three reasons that lead to ineffective recommendation result. Then it proposes a way to weight the reliabilities of the predictions to optimize Slope One algorithm when data is sparse. Finally this paper uses the same data set to validate this optimized Slope One algorithm and proves that the book recommendation system is improved on both storage usage and recommendation quality.
Key words:collaborative filtering; book recommendation system; Slope One; algorithm optimization; LensKit
1 概述
隨著因特網(wǎng)的飛速發(fā)展,互聯(lián)網(wǎng)上的信息總量呈現(xiàn)出了爆炸式的增長,用戶很難在海量的數(shù)據(jù)中找到自己喜愛的圖書。圖書推薦系統(tǒng)主要通過分析大量在線讀者的興趣相似度或圖書相似度,搜索當(dāng)前讀者可能感興趣的圖書推薦給他。傳統(tǒng)的協(xié)同過濾推薦算法主要基于用戶數(shù)據(jù)項評分矩陣,有基于用戶和基于項目的兩種近鄰協(xié)同推薦法。Slope One算法是另一種經(jīng)典的基于用戶-項目評分矩陣的協(xié)同過濾算法,該算法是一個增量算法,對評分較少的用戶也可以產(chǎn)生推薦,同時準確度比傳統(tǒng)的基于用戶或項目相似度的協(xié)同過濾算法要好[1]。該文用真實的電子圖書網(wǎng)站數(shù)據(jù)和LensKit開源工具,利用基于加權(quán)Slope One算法進行了圖書推薦實驗,并分析了在LensKit對Slope One的實現(xiàn)中和在數(shù)據(jù)稀疏情況下的三個導(dǎo)致推薦效果不好的缺陷,然后提出了相應(yīng)的解決方案。改進后的基于Slope One圖書推薦系統(tǒng)不僅在推薦精度上有了明顯的提高,還節(jié)省了系統(tǒng)內(nèi)存。
2 基于加權(quán)Slope One算法的圖書推薦
Slope One算法是由Daniel Lemire教授在2005年提出的一個基于數(shù)據(jù)項的協(xié)同過濾推薦算法[2],它和其他基于評分的協(xié)同過濾算法不同,不用計算數(shù)據(jù)項之間的相似度[3],而是用一種簡單的線性回歸模型進行預(yù)測:[f(x)=x+b]。其中常數(shù)項系數(shù)b為兩個項目評分之間的平均差,用戶UserB對書本BookA的評價建立在書本BookA和書本BookB的評分差之上,通過公式[rUserB,BookA=rUserB,BookB+(rUserA,BookA-rUserA,BookB)]獲得。上述提出的基本Slope One只考慮了兩個項目的平均評分偏差,并沒用考慮其他因素,在實際應(yīng)用中并不采用[4],這里我們采用LensKit下的經(jīng)典加權(quán)Slope One算法實現(xiàn)圖書推薦系統(tǒng)。LensKit是一個開源的工具,可以用來學(xué)習(xí)、研究或者構(gòu)建個性化推薦系統(tǒng),還可以用來對新的推薦算法或者評估方法進行實驗[5]。
2.2 LensKit下的圖書推薦系統(tǒng)實驗
利用LensKit工具對加權(quán)Slope One算法的實現(xiàn),對某真實電子圖書網(wǎng)站用戶瀏覽和購買的歷史數(shù)據(jù)進行實驗。實驗數(shù)據(jù)集中包括該網(wǎng)站2014年一月至三月共20729條圖書數(shù)據(jù),19922個用戶購買及訪問的記錄,將前兩個月的數(shù)據(jù)作為訓(xùn)練集,后一個月數(shù)據(jù)作為測試集。LensKit中把Slope One算法的中間結(jié)果(比如數(shù)據(jù)項之間的偏差矩陣、推薦結(jié)果)儲存在了內(nèi)存中,對內(nèi)存的需求比較高,所以我們隨機選擇了每組數(shù)據(jù)中的三分之一來進行實驗,實驗流程分為評分矩陣形成、預(yù)測評分和形成推薦三個步驟[7]。
4 結(jié)束語
本文先闡述了基于LensKit下加權(quán)Slope One算法的在線圖書推薦系統(tǒng)的實現(xiàn)及推薦結(jié)果,指出此算法的在圖書推薦系統(tǒng)應(yīng)用中的三個缺陷。然后提出了在數(shù)據(jù)稀疏情況下,從實時計算評分偏差矩陣和基于預(yù)測評分可靠性加權(quán)兩方面進行Slope One算法在圖書推薦系統(tǒng)中的優(yōu)化。最后對優(yōu)化方案進行驗證,證明了優(yōu)化后的Slope One算法在提高圖書推薦質(zhì)量和降低系統(tǒng)內(nèi)存消耗上都取得了顯著效果。
參考文獻:
[1] Mahmood T,Ricci F.Improving recommender systems with adaptive conversational strategies[C]. New York,USA:ACM Press,2009.
[2] Daniel Lemire,Anna Maclachlan,Slope One Predictors for Online Rating-based Collaborative Filtering[J].In SIAM Data Mining(SDM'05),2005,April 21-23:45-46.
[3] 劉旭東,陳德人,王惠敏.一種改進的協(xié)同過濾推薦算法[J].武漢理工大學(xué)學(xué)報,2010,32(4):550-553.
[4] 羅敏.基于過濾技術(shù)的網(wǎng)上書籍推薦系統(tǒng)[D].上海:復(fù)旦大學(xué),2006.
[5] Michael D. Ekstrand,Michael Ludwig.Rethinking The Recommender Research Ecosystem: Reproducibility,Openness,and LensKit.Proceedings of the Fifth ACM Conference on Recommender Systems[C].New York,USA:ACM Press,2011.
[6] 孫麗梅,李晶皎,孫煥良.基于動態(tài)K鄰近的SlopeOne協(xié)同過濾算法[J].計算機科學(xué)與探索,2011,5(9): 857-864.
[7] 王霞.基于項的協(xié)同過濾在推薦系統(tǒng)中的應(yīng)用研究[J].計算機工程與設(shè)計,2007,28(7):1719-1722.
[8] 朱郁筱,呂琳媛.推薦系統(tǒng)評價指標綜述[J].電子科技大學(xué)學(xué)報,2012,41(2):163-175.