推薦系統(一)評測指標
一、什麼是好的推薦系統
對推薦系統的評價和單純的演算法的評價略有不同,評價一個推薦系統的好壞可以從多個角度去評價。
1. 推薦系統的實驗方法
首先我們先來介紹下獲得這些指標的實驗方法,主要有離線實驗、使用者調查、線上實驗。
離線實驗的資料主要從資料集上完成,不需要從一個實際的系統來獲取實驗,只要提供系統日記即可,缺點是無法獲取商業上的指標,並且離線實驗和商業指標上存在差距。
使用者調查是需要一些真實的使用者,在推薦系統上完成一些任務,根據他們的答案和行為了解系統的效能。可以完成離線時沒有辦法評測的使用者的主觀感受,因為高預測率並不等於高使用者滿意度。但是這種方式成本比較高,同時還要保證樣本使用者的可靠性。
線上實驗主要是AB測試,AB測試是可以公平的獲得不同演算法實際線上時的效能指標,缺點是週期比較長,切分流量也是AB測試的關鍵,因為從前端展示到後端的演算法,中間經過了很多層,我們需要知道結果的改變是推薦演算法的改變還是頁面展示的改變。
總之,一個推薦演算法需要上線,首先,通過離線實驗證明很多的離線指標可以優於上面的演算法,其次通過使用者調查確定它的使用者滿意度不低於現在的演算法,最後通過AB測試確定在我們關心的指標上優於現有演算法。
2. 推薦系統的評測指標
(1) 使用者滿意度
有的網站是通過反饋按鈕來反映使用者的滿意程度、更一般的情況我們可以用點選率、轉化率、使用者停留時長來反映
(2) 預測準確度
l 評分預測
通過均方根誤差(RMSE)和平均絕對誤差(MAE)判斷
lTopN推薦
召回率
準確率
(3) 覆蓋率
覆蓋率是是一個可以描述推薦系統對物品長尾的發掘能力,即推薦系統推薦出來的物品佔總物品集合的比例。
但是覆蓋率為100%的物品的系統可以有無數的物品流行度分佈,如果所有的物品都出現在推薦列表裡,且出現的次數不多,那麼推薦系統的發掘長尾的能力就比較好。有另外兩個指標來衡量,分別是
資訊熵
基尼係數
(4) 多樣性
每個人的興趣是多樣的,類似的,在推薦系統中,如果可以發現使用者不同的興趣點,那麼這樣的推薦系統就會具有多樣性。
我們可以用一個公式來描述推薦系統的多樣性,
先計算使用者u推薦列表的多樣性
再計算推薦系統整體的多樣性
(5) 新穎性
新穎性是指給使用者推薦那些他們以前沒有聽說過沒有看過的物品,評價新穎性的一個方法主要是利用推薦結果的平均流行度,因為越不熱門的物品越有可能讓別人覺得新穎。
(6) 驚喜度
首先區分和新穎性的意義,驚喜度偏向推薦結果和使用者的歷史興趣不相似,但卻讓使用者滿意。
(7) 信任度
可以增加推薦系統的透明度,以及根據好友推薦可以增加信任度。
(8) 實時性
在很多網站中,很多物品具有時效性,比如新聞、微博等。
(9) 健壯性
任何一個可以盈利的系統都會被人攻擊,有人推薦系統是依賴使用者行為的,比如有的人回你僱傭一批人給自己的商品高評分。對於這種方法可以儘量使用代價高的使用者行為(比如有購買記錄的使用者),以及在使用資料前進行清洗。
(10) 商業目標
最終的是目的是盈利,但是計算這種盈利模式的代價比較高。
3. 評測維度
增加評測維度的目的是知道一個推薦系統在什麼情況下效能最好:
使用者維度:使用者活躍度以及是不是新使用者
物品維度:包括物品的流行度以及是不是新加入的物品、屬性資訊、平均分
時間維度:季節、工作日還是週末 白天還是晚上
參考書目:項亮:《推薦系統實戰》