1. 程式人生 > >協同過濾中item-based與user-based選擇依據

協同過濾中item-based與user-based選擇依據



此文總結的不錯。

協同過濾是大家熟知的推薦演算法。 總的來說協同過濾又可以分為以下兩大類:

  1. Neighborhood-based:計算相似item 或user後進行推薦
  2. Model-based: 直接訓練模型預測Rating

在Neighborhoold-based演算法中,又細分為user-based CF(Collaborative Filtering)和item-based CF。合適選擇使用userd-based CF,什麼時候item-based CF更適用就會是一個需要權衡的問題。一般而言,可以以以下幾個標準進行選擇:

  1.  Accuracy:一般而言,少數置信的鄰居的推薦要比很多的沒有太多區分性的鄰居更加準確,所以一般我們會選擇數量較少的因素(item or user)作為based的演算法。 例如, amazon中的商品的種類很多,但遠沒有註冊的使用者多,所以該場景使用item-based CF比較合適; 反過來,在百度關鍵詞推薦系統中,商業客戶(user)量級是100W左右,而待推薦的關鍵詞(item)是10億量級,此時使用user-based會是更明智的選擇。
  2. Efficiency
  3. Stability:一般情況下傾向於使用變動頻率和變動量較少的因素作為based的因素, 例如item變動較少, 則選擇item-based, 否則選擇user-based
  4. Justifablity(說服力):推薦系統中,推薦理由越白盒,使用者越容易理解就越有說服力。所以從這方面考慮,item-based CF會更有說服力,例如顯示‘因為你瀏覽了三星 Galaxy,所以給你推薦了HTC One’的理由會比‘和你相似的使用者也喜歡XXX’更有說服力,因為推薦系統是不披露哪些使用者和我詳細,怎麼證明和我相似的,而且這種說法顯得比較含糊。
  5. Serendipity:多樣性就是user-based的一大優勢,和自己相似的使用者,總能發現一些自己還沒發現的新東西。 如果追求多樣性, userd-based會是不錯的選擇。

當然上述原則都不是絕對的,而且在真實工業界推薦系統中, 兩種方法一般都是混合著使用。例如百度關鍵詞推薦系統中,就會分別使用item-based和user-based方法找到待推薦關鍵詞候選後,再統一使用model進行後續ranking。

參考文獻:

  1. RSs Handbook
  2. Evaluating Collaborative Filtering Recommender Systems, Jonathan L.Herlocker