itemcf:itemcollaborationfilter,基於物品的協同過濾
比如,使用者a之前買過《資料探勘導論》,該演算法會根據此行為給你推薦《機器學習》,但是itemcf演算法並不利用物品的內容屬性計算物品之間的相似度,它主要通過分析使用者的行為記錄計算物品之間的相似度。
==>該演算法認為,物品a和物品b具有很大的相似度是因為喜歡物品a的使用者大都也喜歡物品b。
基於物品的協同過濾演算法主要分為兩步:
一、計算物品之間的相似度;
二、根據物品的相似度和使用者的歷史行為給使用者生成推薦列表;
下面分別來看這兩步如何計算:
一、計算物品之間的相似度:
我們使用下面的公式定義物品的相似度:
其中,|n(i)|是喜歡物品i的使用者數,|n(j)|是喜歡物品j的使用者數,|n(i)&n(j)|是同時喜歡物品i和物品j的使用者數。
從上面的定義看出,在協同過濾中兩個物品產生相似度是因為它們共同被很多使用者喜歡,兩個物品相似度越高,說明這兩個物品共同被很多人喜歡。
這裡面蘊含著乙個假設:就是假設每個使用者的興趣都侷限在某幾個方面,因此如果兩個物品屬於乙個使用者的興趣列表,那麼這兩個物品可能就屬於有限的幾個領域,而如果兩個物品屬於很多使用者的興趣列表,那麼它們就可能屬於同乙個領域,因而有很大的相似度。
舉例,使用者a對物品a、b、d有過行為,使用者b對物品b、c、e有過行為,等等;
依此構建使用者——物品倒排表:物品a被使用者a、e有過行為,等等;
建立物品相似度矩陣c:
在得到物品之間的相似度後,進入第二步。
itemcf通過如下公式計算使用者u對乙個物品j的興趣:
其中,puj表示使用者u對物品j的興趣,n(u)表示使用者喜歡的物品集合(i是該使用者喜歡的某乙個物品),s(i,k)表示和物品i最相似的k個物品集合(j是這個集合中的某乙個物品),wji表示物品j和物品i的相似度,rui表示使用者u對物品i的興趣(這裡簡化rui都等於1)。
下面是乙個書中的例子,幫助理解itemcf過程:
至此,基礎的itemcf演算法小結完畢。
下面是書中提到的幾個優化方法:
(1)、使用者活躍度對物品相似度的影響
即認為活躍使用者對物品相似度的貢獻應該小於不活躍的使用者,所以增加乙個iuf(inverse user frequence)引數來修正物品相似度的計算公式:
用這種相似度計算的itemcf被記為itemcf-iuf。
itemcf-iuf在準確率和召回率兩個指標上和itemcf相近,但它明顯提高了推薦結果的覆蓋率,降低了推薦結果的流行度,從這個意義上說,itemcf-iuf確實改進了itemcf的綜合性能。
(2)、物品相似度的歸一化
最終結果表明,歸一化的好處不僅僅在於增加推薦的準確度,它還可以提高推薦的覆蓋率和多樣性。
用這種相似度計算的itemcf被記為itemcf-norm。
推薦演算法 基於物品的協同過濾演算法
itemcf itemcollaborationfilter,基於物品的協同過濾 比如,使用者a之前買過 資料探勘導論 該演算法會根據此行為給你推薦 機器學習 但是itemcf演算法並不利用物品的內容屬性計算物品之間的相似度,它主要通過分析使用者的行為記錄計算物品之間的相似度。該演算法認為,物品a和...
推薦演算法 基於物品的協同過濾演算法
概念 基於物品的協同過濾演算法,優化演算法 對比 使用者協同過濾的優缺點 python編碼實現 基於使用者的協同過濾演算法 基於商品的協同過濾演算法 適用場景 時效性較強,使用者個性化興趣不太明顯的領域 長尾物品豐富,使用者個性化需求強烈的領域 注重點興趣相似的小群體的熱點 維繫使用者的歷史興趣,推...
基於物品的協同過濾演算法
核心思想 給使用者推薦那些和他們之前喜歡的物品相似的物品。不同於基於內容的推薦,基於物品的協同過濾中的相似主要是利用使用者行為的集體智慧型。相似度的計算計算相似度的實現方式是多種多樣的 對物品的喜愛程度並不能單純的使用二值屬性來評價,很多資料集包含了使用者對物品的詳細評分資料,將評分資料進一步引入到...