推薦系統是由一個或者多個算法和策略組成的這樣一個系統,其商業價值在於實現產品提供者、產品用戶以及推薦平三者的利益共贏。無論從算法的角度還是從商業的角度,效果好不好都是我們所關心的問題,所以實踐者們對推薦系統系統提出了各種各樣的評測指標來衡量其優劣性和適用性。
在介紹這些評測指標之前,我們先要知道一般會用什么樣的方式獲得評測指標。在推薦系統中,主要有三種實驗方式,用以獲得不同的指標,分別是離線實驗(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.信任度:
- 一個推薦系統具有更高的信任度就會讓用戶跟推薦系統產生更多的交互
- 信任度只有通過問卷調查的方式進行度量
- 提高信任度的方法:1、增加透明度,對推薦結果進行解釋;2、利用用戶好友信息做推薦
8.實時性:
- 產生了新的用戶行為之后能不能實時更新推薦里列表
- 加入了新的物品能不能立即推薦給用戶(物品的冷啟動問題)
9.健壯性:
- 又稱魯棒性,抗擊作弊的能力,如淘寶刷單和豆瓣刷分
- 可以通過模擬攻擊進行評測
- 提高健壯性的方法:1、設計推薦系統是使用代價高的用戶行為
- 使用數據訓練模型前進行攻擊檢測,對數據進行清理
10.商業目標
在真實的業務場景中評估推薦系統的好壞,推薦系統有沒有為平台帶來具體的商業指標,比如點擊率、轉化率、成交金額等等
|
|