物品推薦(基於物品的協同過濾演算法)

不要亂摸發表於2018-01-02

 

使用者對物品的評分矩陣 × 物品相似矩陣 = 推薦列表

構建物品相似度矩陣的時候可以通過計算兩個物品的餘弦相似度得出,於是需要構建每個物品在所有使用者中的評分矩陣

 

本例中,不採用餘弦相似度的方式計算物品與物品相似度

在MapReduce作業中,輸入資料的格式是:使用者,物品,評分

第一步、構建用於評分矩陣,表示如下:

第二步、構建物品相似度矩陣。這裡採用的方法是:如果兩個物品同時出現在某個使用者的評分矩陣中,則計數加1,例如,101和102同時出現在A B E中,因此101和102的相似度計為3,依次類推得出整個相似度矩陣,這個矩陣是一個對稱矩陣。這一步的輸入是第一步的輸出。

程式碼片段如下:

這樣得出的結果類似於這樣:

 

第三步、矩陣相乘。就是用第一步的輸出矩陣乘以第二步的輸出矩陣,這一步頗為複雜,需要將第二步的輸出矩陣快取起來

話不多說,上程式碼

 

相關文章