協同過濾(collaborative filtering,CF)算法主要分爲memory-based CF 和 model-based CF,而memory-based CF 包括user-based CF和item-based CF。算法
基於用戶的(User-based)協同過濾算法是根據鄰居用戶的偏好信息產生對目標用戶的推薦。它基於這樣一個假設:若是一些用戶對某一類項目的打分比較接近,則他們對其它類項目的打分也比較接近(類似用戶對某一item的打分類似,即先計算用戶類似性,而後找到對item i 預測過的用戶,找到最類似top-k個用戶,而後預測)。協同過濾推薦系統採用統計計算方式搜索目標用戶的類似用戶, 並根據類似用戶對項目的打分來預測目標用戶對指定項目的評分,最後選擇類似度較高的前若干個類似用戶的評分做爲推薦結果,並反饋給用戶。這種算法不只計算 簡單且精確度較高,被現有的協同過濾推薦系統普遍採用。User-based協同過濾推薦算法的核心就是經過類似性度量方法計算出最近鄰居集合,並將最近 鄰的評分結果做爲推薦預測結果返回給用戶。例如,在下表所示的用戶一項目評分矩陣中,行表明用戶,列表明項目(電影),表中的數值表明用戶對某個項目的評 價值。如今須要預測用戶Tom對電影《槍王之王》的評分(用戶Lucy對電影《阿凡達》的評分是缺失的數據)。ide
由上表不難發現,Mary和Pete對電影的評分很是接近,Mary對《暮色3:月食》、《唐山大地震》、《阿凡達》的評分分別爲三、四、4,Tom的評 分分別爲三、五、4,他們之間的類似度最高,所以Mary是Tom的最接近的鄰居,Mary對《槍王之王》的評分結果對預測值的影響佔據最大比例。相比之 下,用戶John和Lucy不是Tom的最近鄰居,由於他們對電影的評分存在很大差距,因此JohLn和Lucy對《槍王之王》的評分對預測值的影響相對 小一些。在真實的預測中,推薦系統只對前若干個鄰居進行搜索,並根據這些鄰居的評分爲目標用戶預測指定項目的評分。由上面的例子不難知道,User一 based協同過濾推薦算法的主要工做內容是用戶類似性度量、最近鄰居查詢和預測評分。性能
目前主要有三種度量用戶間類似性的方法,分別是:餘弦類似性、相關類似性以及修正的餘弦類似性。orm
①餘弦類似性(Cosine):用戶一項目評分矩陣能夠看做是n維空間上的向量,對於沒有評分的項目將評分值設爲0,餘弦類似性度量方法是經過計算向量間 的餘弦夾角來度量用戶間類似性的。設向量i和j分別表示用戶i和用戶j在n維空間上的評分,則用基於協同過濾的電子商務個性化推薦算法研究戶i和用戶j之 間的類似性爲:blog
②修正的餘弦類似性 (AdjustedCosine):餘弦類似度未考慮到用戶評分尺度問題,如在評分區間[1一5]的狀況下,對用戶甲來講評分3以上就是本身喜歡的,而對 於用戶乙,評分4以上纔是本身喜歡的。經過減去用戶對項的平均評分,修正的餘弦類似性度量方法改善了以上問題。用幾表示用戶i和用戶j共同評分過的項集 合,Ii和壽分別表示用戶i和用戶j評分過的項集合,則用戶i和用戶j之間的類似性爲:數據分析
③相關類似性(Correlation)此方法是採用皮爾森(Pearson)相關係數來進行度量。設Iij表示用戶i和用戶j共同評分過的項目集合,則用戶i和用戶j之間類似性爲: it
在獲得目標用戶的最近鄰居之後,接着就要產生相應的推薦結果。設NNu爲用戶u的最近鄰居集合,則用戶u對項j的預測評分Puj計算公式以下:io
基於項目的(Item一based)協同過濾是根據用戶對類似項目的評分數據預測目標項目的評分,它是創建在以下假設基礎上的:若是大部分用戶對某些項目的打分比較相近,則當前用戶對這些項的打分也會比較接近(某一用戶對類似items的打分類似,即先計算item的類似性,而後根據item類似值尋找某一用戶下,最接近預測item的top-k個items,而後預測)。ltem一based協同過濾算法主要對目標用戶所評價的一組項目進行研究,並計算這些項 目與目標項目之間的類似性,而後從選擇前K個最類似度最大的項目輸出,這是區別於User-based協同過濾。仍拿上所示的用戶一項目評分矩陣做爲例 子,仍是預測用戶Tom對電影《槍王之王》的評分(用戶Lucy對電影《阿凡達》的評分是缺失的數據)。form
經過數據分析發現,電影《暮色3:月食》的評分與《槍王之王》評分很是類似,前三個用戶對《暮色3:月食》的評分分別爲四、三、2,前三個用戶對《槍王之 王》的評分分別爲四、三、3,他們兩者類似度最高,所以電影《暮色3:月食》是電影《槍王之王》的最佳鄰居,所以《暮色3:月食》對《槍王之王》的評分對 預測值的影響佔據最大比例。而《唐山大地震》和《阿凡達》不是《槍王之王》的好鄰居,由於用戶羣體對它們的評分存在很大差距,因此電影《唐山大地震》和 《阿凡達》對《槍王之王》的評分對預測值的影響相對小一些。在真實的預測中,推薦系統只對前若干個鄰居進行搜索,並根據這些鄰居的評分爲目標用戶預測指定 項目的評分。基礎
由上面的例子不難知道,Item一based協同過濾推薦算法的主要工做內容是最近鄰居查詢和產生推薦。所以,Item一based協同過濾推薦算法能夠 分爲最近鄰查詢和產生推薦兩個階段。最近鄰查詢階段是要計算項目與項目之間的類似性,搜索目標項目的最近鄰居;產生推薦階段是根據用戶對目標項目的最近鄰 居的評分信息預測目標項目的評分,最後產生前N個推薦信息。
ltem一based協同過濾算法的關鍵步驟仍然是計算項目之間的類似性並選出最類似的項目,這一點與user一based協同過濾相似。計算兩個項目i 和j之間類似性的基本思想是首先將對兩個項目共同評分的用戶提取出來,並將每一個項目得到的評分看做是n維用戶空間的向量,再經過類似性度量公式計算二者之 間的類似性。
分離出類似的項目以後,下一步就要爲目標項目預測評分,經過計算用戶u對與項目i類似的項目集合的總評價分值來計算用戶u對項目i的預期。這兩個階段的具體公式和操做步驟與基於用戶的協同過濾推薦算法相似,因此在此再也不贅述。
與基於內容的推薦算法相比,memory-based CF有下列優勢:可以過濾難以進行機器自動基於內容分析的信息。如藝術品、音樂;可以基於一些複雜的,難以表達的概念(信息質量、品位)進行過濾;推薦的新穎性。
然而,memory-based CF也存在着如下的缺點:用戶對商品的評價很是稀疏,這樣基於用戶的評價所獲得的用戶間的類似性可能不許確(即稀疏性問題);隨着用戶和商品的 增多,系統的性能會愈來愈低(便可擴展性問題);若是歷來沒有用戶對某一商品加以評價,則這個商品就不可能被推薦(即最初評價問題)。
文章參考:
Herlocker, J.L., Konstan, J.A., Borchers, A., Riedl, J.: An algorithmic framework for per-forming collaborative filtering. In: Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval. pp. 230–237. ACM (1999)
Sarwar, B., Karypis, G., Konstan, J., Riedl, J.: Item-based collaborative filtering recom-mendation algorithms. In: Proceedings of the 10th international conference on World Wide Web. pp. 285–295. ACM (2001)