基於使用者協同過濾與基於專案協同過濾的適用場景

2021-07-12 01:38:09 字數 1679 閱讀 9866

一、在適合用途上的比較

基於使用者的協同過濾演算法主要有兩步:

1)找到和目標使用者興趣相似的使用者集合

2)找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。

基於物品的協同過濾演算法主要有兩步:

1)計算物品之間的相似度。

2)根據物品的相似度和使用者的歷史行為給使用者生成推薦列表。

item cf是利用物品間的相似性來推薦的,所以假如使用者的數量遠遠超過物品的數量,那麼可以考慮使用item cf,比如購物**,因其物品的資料相對穩定,因此計算物品的相似度時不但計算量較小,而且不必頻繁更新;user cf更適合做新聞、部落格或者微內容的推薦系統,因為其內容更新頻率非常高,特別是在社交網路中,user cf是乙個更好的選擇,可以增加使用者對推薦解釋的信服程度。

而在乙個非社交網路的**中,比如給某個使用者推薦一本書,系統給出的解釋是某某和你有相似興趣的人也看了這本書,這很難讓使用者信服,因為使用者可能根本不認識那個人;但假如給出的理由是因為這本書和你以前看的某本書相似,這樣解釋相對合理,使用者可能就會採納你的推薦。

usercf是推薦使用者所在興趣小組中的熱點,更注重社會化,而itemcf則是根據使用者歷史行為推薦相似物品,更注重個性化。所以usercf一般用在新聞類**中,如digg,而itemcf則用在其他非新聞類**中,如amazon,hulu等等。

因為在新聞類**中,使用者的興趣愛好往往比較粗粒度,很少會有使用者說只看某個話題的新聞,往往某個話題也不是天天會有新聞的。個性化新聞推薦更強調新聞熱點,熱門程度和時效性是個性化新聞推薦的重點,個性化是補充,所以usercf給使用者推薦和他有相同興趣愛好的人關注的新聞,這樣在保證了熱點和時效性的同時,兼顧了個性化。另外乙個原因是從技術上考慮的,作為一種物品,新聞的更新非常快,而且實時會有新的新聞出現,而如果使用itemcf的話,需要維護一張物品之間相似度的表,實際工業界這錶一般是一天一更新的,這在新聞領域是萬萬不能接受的。

但是,在圖書,電子商務和電影**等方面,itemcf則能更好的發揮作用。因為在這些**中,使用者的興趣愛好一般是比較固定的,而且相比於新聞**更細膩。在這些**中,個性化推薦一般是給使用者推薦他自己領域的相關物品。另外,這些**的物品數量更新速度不快,一天一次更新可以接受。而且在這些**中,使用者數量往往遠遠大於物品數量,從儲存的角度來講,usercf需要消耗更大的空間複雜度,另外,itemcf可以方便的提供推薦理由,增加使用者對推薦系統的信任度,所以更適合這些**。

二、從推薦的多樣性上比較

單個使用者的多樣性:item cf的多樣性顯然不如user cf的好,因為item cf的推薦就是和以前看的東西最相似的。系統的多樣性(也被稱為覆蓋率,指乙個推薦系統能否給使用者提供多種選擇):在這種指標下,item cf的多樣性要遠遠好於user cf,因為user cf會更傾向於推薦熱門的物品。從另外乙個角度看,也就是說,item cf的推薦有很好的新穎性,容易發現並推薦長尾裡的物品。所以大多數情況,item cf的精度稍微小於user cf,但是如果考慮多樣性,item cf卻比user cf好很多。

由於user cf經常推薦熱門的,所以它在推薦長尾裡專案方面的能力不足;而item cf只推薦a領域給使用者,這樣他有限的推薦列表中就可能包含了一定數量的不熱門的長尾物品,同時item cf的推薦對這個使用者而言,顯然多樣性不足。但是對整個系統而言,因為不同的使用者的主要興趣點不同,所以系統的覆蓋率會比較好。

三、使用者特點對推薦演算法影響的比較

基於使用者協同過濾與基於專案協同過濾的適用場景

一 在適合用途上的比較 基於使用者的協同過濾演算法主要有兩步 1 找到和目標使用者興趣相似的使用者集合 2 找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。基於物品的協同過濾演算法主要有兩步 1 計算物品之間的相似度。2 根據物品的相似度和使用者的歷史行為給使用者生成推薦...

協同過濾 基於使用者的協同過濾itemCF

基於使用者的協同過濾演算法也被稱為最近鄰協同過濾或knn k nearest neighbor,k最近鄰演算法 其核心思想就是,首先根據相似度計算出目標使用者的鄰居集合,然後用鄰居使用者評分的加權組合來為目標使用者作推薦。通常這些演算法都可以總結成三步 首先,使用使用者已有的評分來計算使用者之間的相...

協同過濾演算法 基於使用者

背景 使用基於使用者的協同過濾演算法進行 讀取檔案,處理每一行資料,把使用者id和 id轉化為long型別 因為協同過濾模型這兩列為long類 並轉化為datamodel 模型輸入資料 轉化出使用者評分矩陣 沒有的填充0 如下表所示 部分 使用者id id110 100101 102103 1041...