首先回顧一下,協同過濾演算法主要有兩種,一種是基於使用者的協同過濾演算法(usercf),另一種是基於物品的協同過濾演算法(itemcf)。
基於使用者的協同過濾演算法主要有兩步:
1)找到和目標使用者興趣相似的使用者集合
2)找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。
基於物品的協同過濾演算法主要有兩步:
1)計算物品之間的相似度。
2)根據物品的相似度和使用者的歷史行為給使用者生成推薦列表。
由此可以看出usercf是推薦使用者所在興趣小組中的熱點,更注重社會化,而itemcf則是根據使用者歷史行為推薦相似物品,更注重個性化。所以usercf一般用在新聞類**中,如digg,而itemcf則用在其他非新聞類**中,如amazon,hulu等等。
因為在新聞類**中,使用者的興趣愛好往往比較粗粒度,很少會有使用者說只看某個話題的新聞,往往某個話題也不是天天會有新聞的。個性化新聞推薦更強盜新聞熱點,熱門程度和時效性是個性化新聞推薦的重點,個性化是補充,所以usercf給使用者推薦和他有相同興趣愛好的人關注的新聞,這樣在保證了熱點和時效性的同時,兼顧了個性化。另外乙個原因是從技術上考慮的,作為一種物品,新聞的更新非常快,而且實時會有新的新聞出現,而如果使用itemcf的話,需要維護一張物品之間相似度的表,實際工業界這錶一般是一天一更新的,這在新聞領域是萬萬不能接受的。
但是,在圖書,電子商務和電影**等方面,itemcf則能更好的發揮作用。因為在這些**中,使用者的興趣愛好一般是比較固定的,而且相比於新聞**更細膩。在這些**中,個性化推薦一般是給使用者推薦他自己領域的相關物品。另外,這些**的物品數量更新速度不快,一天一次更新可以接受。而且在這些**中,使用者數量往往遠遠大於物品數量,從儲存的角度來講,usercf需要消耗更大的空間複雜度,另外,itemcf可以方便的提供推薦理由,增加使用者對推薦系統的信任度,所以更適合這些**。
**:
基於物品 使用者 的推薦演算法
用mapreduce計算框架實現了3個小demo wordcount 基於物品的推薦演算法 itemcf 和基於使用者的推薦演算法 usercf 連線 map輸入 key longwritable型別,每一行的起始偏移量 value text型別 userid,itemid,score map輸出 ...
storm實現基於物品的推薦
list儲存 jedis.lpush recom 1 1 5 jedis.rpop recom lrange recom 0 12set儲存 使用者id 物品id 評分 sadd 1 2 4 5smembers 5 1 1 4 2 2 3 3 5 3.5 4 4 4 5 3 2 6 6 4 計算使用...
推薦系統 基於物品的協同過濾推薦 入門
而基於物品的協同過濾則是找出最相似的物品,再結合使用者的評價來給出推薦結果。基於使用者的協同過濾又稱為記憶體型協同過濾,因為我們需要將所有的評價資料都儲存在記憶體中來進行推薦。基於物品的協同過濾也稱為基於模型的協同過濾,因為我們不需要儲存所有的評價資料,而是通過構建乙個物品相似度模型來做推薦。1.修...