協同過濾

隨着Web2.0的發展,現在已經進入了一個數據爆炸的時代。人們想要找到本身須要的信息也愈來愈難。
–所以有了Search,在用戶對本身需求相對明確的時候,用Search能很快的找到本身須要的數據
–但不少狀況下,用戶其實並不明確本身的須要,或者他們須要更加符合他們我的口味和喜愛的結果,所以出現了Recommendation
–這是個從數據的搜索到發現的轉變 

推薦方法分類–基於數據算法

•推薦系統能夠簡化建模爲如下模型 app

 

 


 

根據數據的不一樣,能夠把推薦方法分爲如下3類:
–根據用戶特徵(人口統計學):年齡,性別,職業,收入,地理位置
–根據物品的特徵:關鍵詞,基因…
–根據用戶對物品的行爲:評分,購買,評論…


協同過濾推薦算法分爲兩類,分別是基於用戶的協同過濾算法(user-based collaboratIve filtering),和基於物品的協同過濾算法(item-based collaborative filtering) 

基於用戶的協同過濾 優化

基本原理
–根據全部用戶對物品或者信息的偏好,計算用戶間的類似度
–基於類似度找到與當前用戶口味和偏好類似的「鄰居」用戶羣,在通常的應用中是採用計算「K-鄰居」的算法
–基於這K 個鄰居的歷史偏好信息,爲當前用戶進行推薦

   

用戶類似度的計算
–每一個用戶是一個向量,向量空間爲物品集合,用向量的距離表示用戶的類似度,cosine類似度

       

優化方法:
•不少user之間其實沒有共同的item,致使分子爲0.
•因此先創建物品到用戶的倒排表,這樣就很容易找到有共同打分的user,對每兩個對物品有評價的用戶,在User-User的類似度表中先標出他們的分子,最後在統一計算他們的類似度  

 基於物品的協同過濾網站

基本原理也是相似的:

–它使用全部用戶對物品或者信息的偏好,發現物品和物品之間的類似度,而後根據用戶的歷史偏好信息,將相似的物品推薦給用戶spa

Item-based CF算法  
blog

基本邏輯和User-based CF同樣。
•須要注意:
–CF算法都對流行物品進行了一些特殊的處理,以減輕他在權重中的影響。
–對ItemCF,有一個擴展算法,就是考慮用戶活躍度對物品類似度的影響,認爲越活躍的用戶對物品的貢獻度越小,相似UserCF的擴展。其實都是相似TFIDF的計算,其實對於過於活躍的用戶,有的系統會忽略它的興趣列表,這樣能夠提升推薦的覆蓋率。
•ItemCF的類似度矩陣應該進行歸一化處理,這樣能夠避免不一樣類型物品類似度絕對值範圍不一樣的問題,以提升推薦的準確率。
兩種協同過濾方法的比較
•差異
–UserCF更側重反映和用戶興趣類似的小羣體的熱點,因此UserCF其實更加社會化,而ItemCF側重於維繫用戶的歷史興趣,是推薦更加個性化。
–UserCF更加適合時效性強,用戶個性化興趣不明顯的領域,好比個性化新聞,而ItemCF適合長尾物品豐富,用戶個性化需求強烈的領域,好比圖書,電影。
–一般購物網站會採用基於物品的協同過濾方法,由於物品相對用戶數目更少,更容易計算。
•應用
–基於用戶:Digg, 新聞網站(好比雅虎新聞)
–基於物品:Amazon, Netflix, YouTube
相關文章
相關標籤/搜索