

用戶對物品的評分矩陣 × 物品相似矩陣 = 推薦列表
構建物品相似度矩陣的時候可以通過計算兩個物品的余弦相似度得出,於是需要構建每個物品在所有用戶中的評分矩陣

本例中,不采用余弦相似度的方式計算物品與物品相似度
在MapReduce作業中,輸入數據的格式是:用戶,物品,評分

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

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

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

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

話不多說,上代碼




