當前位置:成語大全網 - 書法字典 - 基於項目的協同過濾

基於項目的協同過濾

參考書:向亮,推薦系統練習。2012

這篇文章是讀書筆記

1.網站用戶基數增加,矩陣難以構建,時空復雜度增加。

2.很難解釋推薦結果。

算法會向妳推薦機器學習,因為妳買了《數據挖掘入門》。而ItemCF算法並不是利用項目的內容屬性來計算項目之間的相似度,而是主要通過分析用戶的行為記錄來計算項目之間的相似度。算法認為A項和B項有很大的相似度是因為喜歡A項的用戶大多也喜歡B項。

基於項目的協同過濾算法可以利用用戶的歷史行為為推薦結果提供推薦解釋。例如,“天巴龍部”的解釋可以推薦給用戶,因為用戶之前喜歡《射雕英雄傳》。

基於項目的協同過濾算法主要分為兩步。

(1)計算項目之間的相似度。

(2)根據項目的相似度和用戶的歷史行為為用戶生成推薦列表。

具體公式(ij直接相似):

N(i)表示喜歡項目I的用戶數量

但如果J項很受歡迎,幾乎所有人都喜歡,關系就接近1。如果可能,很多人會買新華字典或者哈利波特。

為了避免推薦熱門商品,有壹個公式:

這個公式懲罰了J項的權重,降低了熱門項會和很多項相似的可能性。

雖然上面公式的分母已經考慮了J的流行度,但是在實際應用中,流行的J還是會得到比較大的相似度。所以可以對分母進行懲罰。

但也不能完全解決,兩個不同領域的最熱門的物品往往有很高的相似度。這個時候,這個問題僅僅依靠用戶行為數據是無法解決的,因為用戶的行為表明這類物品之間的相似度應該很高。此時,我們只能依靠導入條目的內容數據來解決這個問題,比如降低條目在不同領域的權重。這些超出了協作過濾討論的範圍。

可以先建立壹個用戶-項目倒排表,即每個用戶建立壹個包含自己喜歡的項目的列表。

比如電影,壹般來說,同壹個系列的電影,同壹個主角的電影,同壹個風格的電影,同壹個國家和地區的電影,會有較大的相似性。

在獲得項目之間的相似度之後,itemCF使用以下公式來計算用戶U對項目J的興趣度:

S(j,K)是與項目j最相似的K個項目的集合。

就是物品的相似度。即用戶U對物品I的興趣度,在這裏可以視為有行為為1。

對於每壹個屬於用戶喜歡的條目,並且在與J條目相似的條目集合中的條目,獲得加權和(即相似度乘以興趣度)。

?準確率(準確率和召回率)可以看出,ItemCF推薦結果的準確率與K並不呈正相關或負相關,所以選擇合適的K來獲得最高的準確率是非常重要的。

?受歡迎程度與UserCF不同,參數k對ItemCF推薦結果受歡迎程度的影響並非來自完美正相關。

隨著K的增加(熱門物品的相對增加),人氣會逐漸增加,但當K增加到壹定程度時,人氣不會有明顯變化。

?覆蓋率k的增加會降低系統的覆蓋率(增加患病率)。

A.

假設有壹個經營書店的用戶,買了當當80%的書給自己賣。然後,他的購物車裏裝了當當80%的書。假設當當有654.38+0萬本書,也就是說他買了80萬本書。從前面對ItemCF的討論可以看出,這意味著有80萬本書因為這樣壹個用戶而存在相互之間的相似性,也就是說,壹個80萬乘以80萬的密集矩陣即將在內存中誕生。

John S. Breese提出了壹個參數叫做IUF(逆用戶頻率),即用戶活動對數的倒數。他還認為活躍用戶對物品相似度的貢獻應該小於非活躍用戶,他提出加入IUF參數來修正物品相似度的計算公式:ItemCF-IUF算法。

與ItemCF相比,降低了流行度,提高了推薦結果的覆蓋率。

B.

項目相似性的標準化。

Karypis發現,如果將ItemCF的相似度矩陣按照最大值進行歸壹化,可以提高推薦的準確率。

研究表明,如果相似度矩陣w已經得到,歸壹化的相似度矩陣w’可以由下式得到:

相似度的歸壹化可以提高推薦的多樣性。[解釋原書]