摘要:
測評方法:
離線實驗
在線實驗
測評指標:
1.用戶滿意度
在線測評方法
2.預測准確率
2.1評分預測
2.2TopN推薦
3.覆蓋率(coverage)
4.多樣性
5.新穎性
內容:
測評方法:
離線實驗
(1)通過日志系統獲得用戶行為數據,並按照一定格式生成一個標准的數據集;
(2)將數據集按照一定的規則分成訓練集和測試集;
(3)在訓練集上訓練用戶興趣模型,在測試集上進行預測;
(4)通過事先定義的離線指標測評算法在測試集上的預測結果。
離線實驗常見的預測指標:准確率,召回率,Fscore等
在線實驗
在完成離線實驗和必要的用戶調查后,可以將推薦系統上線做AB測試
同樣有幾點需要注意:
(1)AB test 的好處是顯而易見的,可以公平獲得不同算法實際在線時的性能指標;
(2)AB test 和用戶調查一樣,同樣需要考慮到分布的隨機,盡量要將與最終指標有相關性的因素都列出來,總而言之就是切分流量是AB test 的關鍵;
(3)AB test 的一個重要缺點就是實驗周期長,這樣才能得到可靠的結果,因此AB test 不應該測試所有的算法,而是只測試在離線實驗和用戶調查中表現很好的算法;
(4)如果有用戶標簽庫的話,會極大的幫助在線實驗。
4. 總結
一個新的推薦算法最終上線,需要完成上面所說的3個實驗:
(1)首先,需要通過離線實驗證明它在很多離線指標上優於現有的算法;
(2)然后,需要通過用戶調查確定它的用戶滿意度不低於現有的算法;
(3)最后,通過在線等AB測試確定它在我們關心的指標上優於現有的算法。
測評指標
1.用戶滿意度
在線測評方法:主要通過用戶行為的統計(點擊,停留時間,轉化率)或者通過用戶反饋(滿意,不滿意)
2.預測准確率
2.1評分預測
定義:預測用戶對物品的評分的行為
指標:
均方根誤差(RMSE):
平均絕對誤差(MAE):
其中Rui是用戶u對物品i的實際評分,hat(Rui)是推薦系統預測的用戶u對物品i的預測評分;|T|是總記錄數
2.2TopN推薦
定義:TopN推薦是通過給用戶一個前N個喜好物品的推薦列表,TopN推薦的預測率一般通過准確率(precision)/召回率(recall)度量
指標:
准確率:
召回率:
其中R(u)是根據用戶在訓練集中的行為給出的推薦列表,T(u)是根據用戶在測試集中的行為給出的推薦列表
預測率:
rate = Precision / Recall
平均准確率:
參考鏈接(https://www.kaggle.com/wiki/MeanAveragePrecision)
3.覆蓋率(coverage)
定義:度量了一個推薦系統挖掘長尾商品的能力
指標:
指標1:
其中U是用戶集合,I是物品集合,R(u)是為用戶u推薦的N個物品的集合
統計分布的指標:
信息熵:
,其中p(i)是物品i的流行度比上所有物品的流行度
基尼系數(不同於CART中gini 系數):
其中p(Ij)是降序的物品流行度字典的第j個物品的流行度
4.多樣性(Diversity)
定義:推薦系統中物品兩兩之間的不相似性
指標:
用戶u的推薦列表R(u)的多樣性:
,其中s(i,j)是物品i,j的相似度
推薦系統的整體多樣性:
,即所有用戶推薦列表多樣性的平均值
5.新穎性
定義:給用戶推薦以前沒有接觸過的物品的度量
指標:平均流行度(越高,新穎性越低)
選擇不同維度,對推薦系統進行測評
我的python代碼:https://github.com/Tongzhenguo/Python-Project/tree/master/recommendsys/measurement_index