《推薦系統實踐》筆記 02 推薦系統實驗

推薦系統實驗

一個好的推薦系統,一般會使得用戶、物品提供者和推薦系統三方共贏。預測準確度是推薦系統最重要的指標,通常這個指標比較容易通過離線的數據計算出來。但是準確的預測不代表好的推薦,如這個用戶在使用推薦系統之前就準備好購買這個物品,那麼對這個物品準確的預測沒有任何意義。

好的推薦系統不僅僅能夠準確預測用戶的行爲,而且能夠擴展用戶的視野,幫助用戶發現那些他們可能會感興趣,但卻不那麼容易發現的東西。

從不同的角度會有不同的指標,如準確度、覆蓋度、新穎度、驚喜度、信任度、透明度等,後面會更加詳細的解釋。

推薦系統實驗方法

包括離線實驗,用戶調查和在線實驗。

離線實驗

離線實驗一般包括如下步驟:

  1. 數據獲取。獲取用戶行爲數據,形成標準數據集。
  2. 劃分數據集。分爲訓練集和測試集。
  3. 模型訓練及預測。在訓練接上訓練用戶興趣模型,在測試集上進行預測。
  4. 評估。通過事先定義的離線指標評測算法在測試集上的預測結果。

離線實驗的好處是,所有的過程都是通過數據集完成,不需要真實用戶的參與,也可以快速的進行計算和實驗,方便測試大量的算法。缺點也很明顯,正是由於缺少線上的實際效果的測試,因此,缺少了商業上關注的指標,如點擊率,轉化率等等。即使從離線數據中計算了這些指標,與線上實際的指標的結果誤差也較大。

用戶調查

在對算法會不會降低用戶滿意度不太有把握的情況下,上線測試會具有較高的風險,所以在上線測試前一般需要做一次稱爲用戶調查的測試。在用戶對新推薦系統上的實驗之後,觀察並記錄他們的行爲,並對用戶滿意度等主觀感受進行調查。但是一般用戶調查的成本也會比較高,另外參加測試的人數過少通常也不具有統計意義。一般用戶調查的實驗儘量是雙盲實驗,不要讓實驗人員和用戶事先知道測試的目標,以免用戶的回答和實驗人員的測試受主觀成分的影響。

在線實驗

最常見的在線實驗方法就是AB測試。AB測試過一定的規則將用戶隨機分成幾組,並對不同組的用戶採用不同的算法,然後通過統計不同組用戶的各種不同的評測指標比較不同算法,比如可以統計不同組用戶的點擊率,通過點擊率比較不同算法的性能。

AB測試的優點是可以公平獲得不同算法實際在線時的性能指標,包括商業上關注的指標。AB測試的缺點主要是週期比較長,必須進行長期的實驗才能得到可靠的結果。一般那些在離線實驗中表現較好的算法纔會參與到AB Test當中。由於系統通常由不同團隊負責不同部分,不同團隊在同時做AB Test的時候難免會相互影響。因此,切分流量是AB Test的關鍵。不同的層以及控制這些層的團隊需要從一個統一的地方獲得自己AB測試的流量,而不同層之間的流量應該是正交的。

一個簡單的AB Test系統可以如下圖所示:

graph LR A[用戶] -->B[流量測試系統] X[實驗人員] --> B B --> C[網頁] C --> D[日誌系統] D --> E(日誌數據庫) X --> F[評測系統] E --> F F --> H[實驗報告]

一般來說,一個新的推薦算法要上線,需要滿足上面的三個實延:

  1. 離線實驗中離線指標優於其他算法。
  2. 用戶調查中用戶滿意度優於其他算法。
  3. AB Test中所關心的指標優於其他算法。

下一篇筆記我們將介紹推薦算法所關注的指標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章