推薦系統的評測方法

推薦系統是由一個或者多個算法和策略組成的這樣一個系統,其商業價值在於實現產品提供者、產品用戶以及推薦平三者的利益雙贏。不管從算法的角度仍是從商業的角度,效果好很差都是咱們所關心的問題,因此實踐者們對推薦系統系統提出了各類各樣的評測指標來衡量其優劣性和適用性。
 
在介紹這些評測指標以前,咱們先要知道通常會用什麼樣的方式得到評測指標。在推薦系統中,主要有三種實驗方式,用以得到不一樣的指標,分別是離線實驗(offline experiment)、用戶調查(user study)和在線實驗(online experiment)。
 
離線實驗
就是經過已經得到的數據(如日誌系統中的日誌數據)創建各類算法和模型,而後評估這些算法。這個過程當中數據通常會分爲訓練集和測試集,訓練集用於訓練算法模型,測試集用於評估。整個過程在線下進行,優勢是簡單易操做,可在一個數據集上進行反覆試驗,直到效果滿意爲止。缺點是無法得到在線反饋,比喻商業上關注的指標如點擊率轉化率等。
 
用戶調查
顧名思義。離線實驗的算法並不必定等於真實的效果,整個系統的效果好壞依賴於各個環節,好比UI展現,好比響應速度,這些都不是推薦算法所能控制的,可是帶來的影響不必定少於算法。既然推薦系統最終面向的是真實的用戶,且用戶的不少主觀感覺難以量化,那麼就有必要進行用戶調查。用戶調查須要注意的是要考慮用戶的真實分佈狀況和樣本大小,這樣才能得到具備統計意義的結論。同時也要考慮調查的成本。
 
AB測試
當線下系統效果達到必定程度以後就能夠上線進行AB測試。AB測試時一種很經常使用的在線評測的實驗方法,它經過必定的規則將用戶分紅不一樣的組,分別採用不一樣的算法,而後經過用戶行爲的各類指標,如點擊率,來衡量各個算法的性能。AB測試是公平的,而且是直觀的,它能夠直接觀察各個算法的性能,包括商業上的指標。可是它也一樣面臨一些問題,一個複雜的系統的各個組件每每是由不一樣的團隊來負責的,當後端的在進行算法的AB測試的時候,前端的關於推薦列表的UI展現也在進行AB測試,那用戶所帶來的效果變化算誰的呢?所以,切分流量是AB測試中的關鍵,不一樣的層以及控制這些曾的團隊須要從一個統一的地方得到本身AB測試的流量,而不一樣層之間的流量應該是正交的。
 
介紹完得到評測指標用到的三種試驗方法,如今正式介紹推薦系統經常使用的實驗指標。
 
1.用戶滿意度
咱們以前說到,推薦系統最終面向的是用戶,就像全部的產品同樣,好很差用戶說了纔算。因此用戶滿意度是系統最重要的指標。可是這個指標不能經過離線算法計算獲得,只能經過用戶調查和在線實驗得到。好比發放調查問卷,好比引導用戶進行一些指定的操做。統計用戶產生的一些行爲也能量化用戶滿意度,好比點擊率,購買率,停留時間等等。
 
2.預測準確率
上面說到,整個系統最重要的評測指標是用戶滿意度,那麼在離線實驗的時候最重要的指標是什麼呢?答案就是預測準確率。在應用中,按場景能夠將推薦系統分爲TopN推薦評分推薦兩種,評分推薦通常用RMSE( 均方根偏差)MAE(絕對平均)偏差計算。其中RMSE加大了對預測不許的項的懲罰,評測更加嚴格。而對於另外一種TopN推薦的預測準確率,通常用Recall(召回率)和Precision(準確率)來評測,須要的時候還能夠計算多對準確率和召回率,而後畫出PR曲線進行評測。
 
3.覆蓋率
覆蓋率用於描述系統對於長尾物品的發掘能力(長尾現象見另外一篇文章),簡單說就是對全部用戶推薦的物品可以包括的物品種類越多,覆蓋率越大,這樣就引出了覆蓋率最簡單的一種定義方式:系統可以推薦的物品佔總物品集合的比例。可是這樣的計算方法沒有考慮推薦列表中每種物品出現的頻率,若是列表中不但出現的比例大,並且每種物品出現的頻率也相近,那麼對長尾的挖掘能力越好。經過物品在推薦列表中出現次數定義覆蓋率的方式有信息熵和基尼係數兩種。這兩個指標的計算又會涉及到流行度的計算,一種商品的流行度就是它和多少用戶發生了用戶行爲。
 
還有一些更多的評測指標,均可以用於不一樣的需求之中提升推薦系統的性能。
 
4.多樣性:推薦列表中物品的兩兩不類似性,能夠用類似度來定義,類似度越高,多樣性就越低。
  • 用戶興趣是普遍的,咱們但願覆蓋用戶的絕大部分興趣
  • 和類似性是對應的,多樣性在於提升推薦列表中物品的兩兩不類似性
  • 分爲針對某個用戶推薦列表的多樣性和整個系統的多樣性
 
5.新穎性:能夠用物品的平均流行度來簡單評價新穎性,推薦結果中物品的平均流行度越低新穎性就越高。可是這種方法比較粗略,要準確的知道新穎性須要作用戶調查
  • 推薦用戶之前沒有據說過的物品,把用戶以前有過行爲的物品過濾掉
  • 推薦平均熱門程度較低的物品可能產生較高的新穎性
  • 準確的新穎性須要做用戶調查
 
6.驚喜度(serendipity):推薦和用戶歷史興趣不類似但又讓用戶滿意的(定性描述)
 
7.信任度:
  • 一個推薦系統具備更高的信任度就會讓用戶跟推薦系統產生更多的交互
  • 信任度只有經過問卷調查的方式進行度量
  • 提升信任度的方法:一、增長透明度,對推薦結果進行解釋;二、利用用戶好友信息作推薦
 
8.實時性:
  • 產生了新的用戶行爲以後能不能實時更新推薦裏列表
  • 加入了新的物品能不能當即推薦給用戶(物品的冷啓動問題)
 
9.健壯性:
  • 又稱魯棒性,抗擊做弊的能力,如淘寶刷單和豆瓣刷分
  • 能夠經過模擬攻擊進行評測
  • 提升健壯性的方法:一、設計推薦系統是使用代價高的用戶行爲
  • 使用數據訓練模型前進行攻擊檢測,對數據進行清理
10.商業目標
在真實的業務場景中評估推薦系統的好壞,推薦系統有沒有爲平臺帶來具體的商業指標,好比點擊率、轉化率、成交金額等等
相關文章
相關標籤/搜索