第一章:好的推薦系統算法
1.1 什麼是推薦系統網絡
當用戶沒有明確需求的時候(有明確需求的時候,經過搜索引擎通常都可以解決問題),若是週末想去看電影,可是不肯定看什麼電影(不肯定的需求),這時候須要一個自動化的工具,它可以根據你的歷史行爲分析出你可能會喜歡哪些系統.推薦系統是自動聯繫用戶和物品的一種工具.工具
1.2 個性化推薦系統測試
(1) 電子商務 (item_base)優化
(2) 電影以及視頻網站
網站
(3) 個性化的音樂電臺 (Pandora對音樂進行專家標註,embedding的思想,在推薦的時候利用其專家標註來計算類似度)搜索引擎
(4) 社交網絡spa
a. 利用社交網絡信息對用戶進行個性化的物品推薦(你的好友近期的動態做爲你的歷史行爲的一個參考,也就是你可能會感興趣的部分)設計
b. 信息流的會話推薦(facebook的EdgeRank算法儘可能保證用戶能看到熟悉的好友的最新會話)日誌
c. 給用戶推薦好友
(5) 個性化閱讀
(6) 基於位置的服務
(7) 個性化郵件
(8) 個性化廣告
1.3 推薦系統評測
一個好的推薦系統須要考慮三個參與方:用戶,物品提供者,提供推薦系統的網站.好的推薦系統不只僅要可以準確的預測用戶的行爲,並且可以擴展用戶的視野,幫助用戶發現那些他們可能會感興趣,卻不容易發現的東西.
1.3.1 推薦系統實驗方法
1. 離線實驗.
(1) 經過日誌系統得到用戶行爲數據,並按照必定格式生成一個標準的數據集;
(2) 將數據集按照必定的規則分紅訓練集和測試集;
(3) 在訓練集上訓練用戶興趣模型,在測試集上進行預測;
(4) 經過事先定義的離線指標評測算法在測試集上的預測結果。
好處: 實驗在日誌系統提供的數據集上進行,不須要用戶參與,可以方便,快速的測試大量不一樣的算法.
缺點: 沒法得到不少商業上關注的指標,如點擊率、轉化率等,而找到和商業指標很是相關的離線指標也是很困難的事情.
2. 用戶調查
離線實驗和實際的商業指標有着必定的差距,而直接上線測試有着比較高的風險,通常在實際上線以前有一個用戶調查.
3. 在線實驗
AB測試簡單來講,就是爲同一個目標制定兩個方案(好比兩個頁面),讓一部分用戶使用 A 方案,另外一部分用戶使用 B 方案,記錄下用戶的使用狀況,看哪一個方案更符合設計目標。切分流量是AB測試中的關鍵,不一樣的層以及控制這些層的團隊須要從一個統一的地,方得到本身AB測試的流量,而不一樣層之間的流量應該是正交的。
一個推薦系統在上線以前須要通過上述三個實驗:
(a) 首先,經過離線實驗證實一個算法優於現存的算法.
(b) 其次,須要經過用戶調查肯定該算法的用戶滿意度不低於現有算法
(c) 經過在線的AB測試肯定它在研究人員關心的指標上優於現有的算法.
1.3.2 評測指標
1. 用戶滿意度(經過在線的反饋獲取,能夠是用戶的點擊率,用戶停留時間和轉化率)
2. 預測準確度
推薦系統或者算法預測用戶行爲的能力,是重要的離線數據.
(a) 通常用RMSE(均方根偏差)和平均絕對偏差(MAE)計算.RMSE因爲有平方項的計算,會加大對預測不許用戶評分的懲罰,其訓練出來的系統會更加嚴苛一些,若是評分系統是基於整數創建的(即用戶給的評分都是整數),那麼對預測結果取整會下降 MAE 的偏差.
(b) TopN推薦.網站在提供推薦服務的時候,通常是給用戶一個個性化的推薦列表,TopN的預測準確率通常經過(precision/recall)來度量.recall是從全部實際爲真的樣本中被正確分類的比例,precision是全部被預測爲真的樣本中實際是真樣本的機率.
3. 覆蓋率 (內容提供商關注的評價指標)
描述一個推薦系統對物品長尾的挖掘能力.最簡單的定義方法爲推薦系統可以推薦出來的物品佔總物品的比例.主要評價指標有兩個,一個是信息熵:
另外一個是基尼指數:.若是各個物品都在推薦系統的列表中,且出現的次數差很少,那麼推薦系統的長尾發掘能力就很好(每一個物品都要推薦給適合的人,對於那些不熱門的物品,一個好的推薦系統也要有推薦的能力)
(這裏p(i)是物品i的流行度除以全部物品流行度之和,$i_j$是按照流行度p()從小到大排序的物品列表中第j個物品)
馬太效應: 強者更強,弱者更多.一個系統會增大熱門與非熱門物品流行的差距,那麼這個系統就是有馬太效應.主流的推薦系統算法是有馬太效應的,判斷是否有馬太效應的方法,比較推薦先後物品流行度的gini指數,若是推薦後gini指數增大,那麼該系統有馬太效應.
4. 多樣性
5. 新穎性 (推薦用戶沒有接觸過的物品)
6. 驚喜度 (推薦結果與用戶歷史興趣不類似但卻讓用戶以爲滿意,那麼能夠說該推薦的驚喜度比較高)
7. 信任度 (用戶對系統信任程度)
8. 實時性 (實時更新推薦列表;可以將新加入系統的物品推薦給用戶)
9. robust (抗擊做弊的能力)
處理方法:
(1) 在訓練的時候模擬攻擊注入噪聲
(2) 設計推薦系統的時候儘可能使用代價比較高的用戶行爲
(3) 在使用數據以前, 進行攻擊檢測,從而對數據進行清理
指標總結:(1)
(2)離線實驗優化的目標:
最大優化預測精準度
使得 覆蓋率 > A
多樣性 > B
新穎性 > C
其中, A 、 B 、 C 的取值應該視不一樣的應用而定。