【第一章】好的推薦系統

peterzh6發表於2024-04-30

推薦系統的實驗方法

  1. 離線實驗
  2. 使用者調查
  3. 線上實驗
    AB測試: 透過一定的規則將使用者隨機分成幾組,並對不同組的使用者採用不同的演算法,然後透過統計不同組使用者的各種不同的評測指標比較不同演算法
  • 優點:可以公平獲得不同演算法實際線上時的效能指標,包括商業上關注的指標
  • 缺點:週期比較長,必須進行長期的實驗才能得到可靠的結果。其次,不同團隊同時進行的AB測試可能會互相影響

推薦系統評測的指標:

1. 使用者滿意度

2. 預測準確度

  • 評分預測:評分預測的預測準確度一般透過均方根誤差(RMSE)和平均絕對誤差(MAE)計算
    關於RMSE和MAE這兩個指標的優缺點,Netflix認為RMSE加大了對預測不準的使用者物品評分的懲罰(平方項的懲罰),因而對系統的評測更加苛刻。研究表明,如果評分系統是基於整數建立的(即使用者給的評分都是整數),那麼對預測結果取整會降低MAE的誤差。
  • TOP-N推薦(比評分預測更有現實意義):TopN推薦的預測準確率一般透過準確率(precision)/召回率(recall)度量。

3. 覆蓋率

  • 覆蓋率(coverage)描述一個推薦系統對物品長尾的發掘能力。一個好的推薦系統不僅需要有比較高的使用者滿意度,也要有較高的覆蓋率。覆蓋率為100%的系統可以有無數的物品流行度分佈。為了更細緻地描述推薦系統發掘長尾的能力,需要統計推薦列表中不同物品出現次數的分佈。如果所有的物品都出現在推薦列表中,且出現的次數差不多,那麼推薦系統發掘長尾的能力就很好。因此,可以透過研究物品在推薦列表中出現次數的分佈描述推薦系統挖掘長尾的能力。如果這個分佈比較平,那麼說明推薦系統的覆蓋率較高,而如果這個分佈較陡峭,說明推薦系統的覆蓋率較低。

  • 定義方法:資訊熵和Gini Index

    • 資訊熵:p(i )是物品i的流行度除以所有物品流行度之和。

    • Gini Index:i_j是按照物品流行度p()從小到大排序的物品列表中第j個物品!

    • 推薦系統的馬太效應:評測推薦系統是否具有馬太效應的簡單辦法就是使用基尼係數。如果G1是從初始使用者行為中計算出的物品流行度的基尼係數,G2是從推薦列表中計算出的物品流行度的基尼係數,那麼如果G2 > G1,就說明推薦演算法具有馬太效應。

4. 多樣性

  • 使用者興趣是變化的,廣泛覆蓋使用者的興趣點有助於讓使用者在更多的時間內都被推薦符合興趣的內容
  • 假設s(i,j)∈[0,1]定義了物品i和j之間的相似度,那麼使用者u的推薦列表R(u)的多樣性定義如下:
    • 推薦系統的整體多樣性可以定義為所有使用者推薦列表多樣性的平均值:

5. 新穎性

  • 新穎的推薦是指給使用者推薦那些他們以前沒有聽說過的物品。在一個網站中實現新穎性的最簡單辦法是,把那些使用者之前在網站中對其有過行為的物品從推薦列表中過濾掉。
  • 驚喜度(serendipity):之前不知道使用者喜歡這個類別,但是一經推送,使用者反饋很好,說明驚喜度高
  • 信任度 使用者信任推薦系統有利於促進使用者的反饋和互動。可以透過推薦過程透明化和增強基於好友喜歡過的東西推薦來提升

6. 時效性

  • 第一點,推薦系統需要實時地更新推薦列表來滿足使用者新的行為變化。比如,當一個使用者購買了iPhone,如果推薦系統能夠立即給他推薦相關配件,那麼肯定比第二天再給使用者推薦相關配件更有價值。
  • 第二點,實時性的第二個方面是推薦系統需要能夠將新加入系統的物品推薦給使用者。這主要考驗了推薦系統處理物品冷啟動的能力

7. 健壯性

任何一個能帶來利益的演算法系統都會被人攻擊,這方面最典型的例子就是搜尋引擎。搜尋引擎的作弊和反作弊鬥爭異常激烈,這是因為如果能讓自己的商品成為熱門搜尋詞的第一個搜尋結果,會帶來極大的商業利益。

獲取指標的方式:


評測維度

測系統中還需要考慮評測維度,比如一個推薦演算法,雖然整體效能不好,但可能在某種情況下效能比較好,而增加評測維度的目的就是知道一個演算法在什麼情況下效能最好。這樣可以為融合不同推薦演算法取得最好的整體效能帶來參考。一般來說,評測維度分為如下3種。

  • 使用者維度 主要包括使用者的人口統計學資訊、活躍度以及是不是新使用者等。
  • 物品維度 包括物品的屬性資訊、流行度、平均分以及是不是新加入的物品等。
  • 時間維度 包括季節,是工作日還是週末,是白天還是晚上等。

相關文章