1. 程式人生 > >3、前奏之基於物品的協同過濾演算法:ItemsCF

3、前奏之基於物品的協同過濾演算法:ItemsCF

兩步走:

  1. 計算物品間的相似度
  2. 根據1和使用者歷史行為給使用者生成推薦列表

一、計算物品間的相似度

1、相似度演算法

    

     喜歡物品i的使用者中有多少比例的使用者也喜歡j;問題:j存在熱門商品問題,因為j很流行,喜歡 j 的使用者可能包含喜歡 i 的使用者,則相似度基本是1,導致任何物品和熱門物品的相似度都近似為1,這對於挖掘長尾的系統不好

    

  懲罰 熱門 j 的權重

   

  懲罰活躍使用者

 

2、計算商品的相似度矩陣

3、相似度矩陣歸一化,提高準確率、多樣性、覆蓋率

     

 

二、根據商品相似度和使用者歷史行為,生成使用者推薦列表

1、計算使用者u對物品j的偏好值:和使用者歷史上感興趣的物品越相似的物品,越有可能在使用者的推薦列表中

     

  1. 在相似度矩陣中按照相似度對物品 j 關聯的物品字典降序排列
  2. 取出前K個物品
  3. 取出和使用者 u 有過互動的商品的列表或集合
  4. 取2和3的交集
  5. 對相似度和偏好值累加求和

2、計算推薦列表

 

哈利波特問題

商品太熱門,導致相似度近似於1,解決:

1、加大對熱門商品懲罰

    

 

2、剔除太熱門商品