usercf和itemcf是協同過濾中最為古老的兩種演算法,在top-n的推薦上被廣泛應用。這兩個演算法之所以重要,是因為他們使用了兩個不同的推薦系統基本假設。usercf認為乙個人會喜歡和他有相同愛好的人喜歡的東西,而itemcf認為乙個人會喜歡和他以前喜歡的東西相似的東西。這兩個假設都有其合理性。根據我的測試,用usercf和itemcf做出的推薦列表中,只有50%是一樣的,還有50%完全不同。但是這兩個演算法確有相似的精度。所以說,這兩個演算法是很互補的。
我一直認為這兩個演算法是推薦系統的根本,因為無論我們是用矩陣,還是用概率模型,我們都非常的依賴於前面說的兩種假設。如果使用者的行為不符合那兩種假設,推薦系統就沒必要存在了。因此我一直希望能夠找出這兩種演算法的本質區別。他們有相似的精度,但是coverage相差很大,itemcf coverage很大而usercf很小。我還測試了很多其他指標,不過要從這些表象的指標差異找出這兩個演算法的本質區別還是非常困難。不過上週我基本發現了這兩個演算法推薦機理的本質區別。
我們做如下假設。每個使用者興趣愛好都是廣泛的,他們可能喜歡好幾個領域的東西。不過每個使用者肯定也有乙個主要的領域,對這個領域會比其他領域更加關心。給定乙個使用者,假設他喜歡3個領域a,b,c,同時a是他喜歡的主要領域。這個時候我們來看usercf和itemcf傾向於做出什麼推薦。
結果如下,如果用usercf, 它會將a,b,c三個領域中比較熱門的東西推薦給使用者。而如果用itemcf,它會基本上只推薦a領域的東西給使用者。因為usercf只推薦熱門的,所以usercf在推薦長尾上能力不足。而itemcf只推薦a領域給使用者,這樣他有限的推薦列表中就可能包含了一定數量的不熱門item,所以itemcf推薦長尾的能力比較強。不過itemcf的推薦對某乙個使用者而言,顯然多樣性不足。但是對整個系統而言,因為不同的使用者的主要興趣點不同,所以系統的coverage會很大。
顯然上面的兩種推薦都有其合理性,但都不是最好的選擇,因此他們的精度也會有損失。最好的選擇是,如果我們給這個使用者推薦30個item,我們既不是每個領域挑選10個最熱門的給他,也不是推薦30個a領域的給他,而是比如推薦15個a領域的給他,剩下的15個從b,c中選擇。
認識到這一點,可以給我們設計高精度的演算法指明乙個方向。就是當乙個系統對個人推薦的多樣性不足時,我們增加個人推薦的多樣性可以提高精度。而當乙個系統的整體多樣性不足(比如只推薦popular的),我們增加整體的多樣性同樣可以提高精度。
**:
推薦系統 01 UserCF和ItemCF
推薦系統可能涉及的常見演算法 協同過濾的基本思想 協同過濾一般指在海量的使用者中發掘出一小部分和你品味比較類似的。實現協同過濾步驟 收集使用者偏好方法相似度 把資料看成空間中的向量 降噪,歸一化 基於距離計算相似度 計算歐幾里得空間中兩個點的距離 基於相關係數計算相似度 皮爾遜相關係數一般用於計算兩...
協同過濾演算法UserCF和ItemCF優缺點對比
usercf 效能 適用於使用者較少的場合,如果使用者很多,計算使用者相似度矩陣代價很大。領域 時效性較強,使用者個性化興趣不太明顯的領域。冷啟動 在新使用者對很少的物品產生行為後,不能立即對它進行個性化推薦,因為使用者相似度表示每隔一段時間離線計算的。新物品上線後一段時間,一旦有使用者對物品產生行...
ItemCF與UserCF演算法的原理與對比
1.itemcf演算法與usercf演算法的基本原理 演算法名稱 原理優點 相似度計算 備註user cf 給使用者推薦和他有相同興趣愛好的使用者喜歡的物品。維護乙個使用者相似度矩陣 著重反應和使用者相似的小群體的熱點,反應了使用者所在小型興趣群體中物品的熱門程度 w uv n u n v n u ...