推薦系統實踐筆記 一

2022-08-22 01:15:11 字數 2804 閱讀 7228

第一章:好的推薦系統

1.1 什麼是推薦系統

當使用者沒有明確需求的時候(有明確需求的時候,通過搜尋引擎一般都能夠解決問題),如果週末想去看電影,但是不確定看什麼電影(不確定的需求),這時候需要乙個自動化的工具,它能夠根據你的歷史行為分析出你可能會喜歡哪些系統.推薦系統是自動聯絡使用者和物品的一種工具.

1.2  個性化推薦系統

(1) 電子商務 (item_base)

(3) 個性化的**電台 (pandora對**進行專家標註,embedding的思想,在推薦的時候利用其專家標註來計算相似度)

(4) 社交網路

a. 利用社交網路資訊對使用者進行個性化的物品推薦(你的好友近期的動態作為你的歷史行為的乙個參考,也就是你可能會感興趣的部分)

b. 資訊流的會話推薦(facebook的edgerank演算法盡量保證使用者能看到熟悉的好友的最新會話)

c. 給使用者推薦好友

(5) 個性化閱讀

(6) 基於位置的服務

(7) 個性化郵件

(8) 個性化廣告

1.3  推薦系統評測

乙個好的推薦系統需要考慮三個參與方:使用者,物品提供者,提供推薦系統的**.好的推薦系統不僅僅要能夠準確的**使用者的行為,而且能夠擴充套件使用者的視野,幫助使用者發現那些他們可能會感興趣,卻不容易發現的東西.

1.3.1 推薦系統實驗方法

1. 離線實驗.

(1) 通過日誌系統獲得使用者行為資料,並按照一定格式生成乙個標準的資料集;

(2) 將資料集按照一定的規則分成訓練集和測試集;

(3) 在訓練集上訓練使用者興趣模型,在測試集上進行**;

(4) 通過事先定義的離線指標評測演算法在測試集上的**結果。

好處:實驗在日誌系統提供的資料集上進行,不需要使用者參與,能夠方便,快速的測試大量不同的演算法.

缺點: 

無法獲得很多商業上關注的指標,如點選率、轉化率等,而找到和商業指標非常相關的離線指標也是很困難的事情.

2. 使用者調查

離線實驗和實際的商業指標有著一定的差距,而直接上線測試有著比較高的風險,一般在實際上線之前有乙個使用者調查.

ab測試簡單來說,就是為同乙個目標制定兩個方案(比如兩個頁面),讓一部分使用者使用 a 方案,另一部分使用者使用 b 方案,記錄下使用者的使用情況,看哪個方案更符合設計目標。

切分流量是ab測試中的關鍵,不同的層以及控制這些層的團隊需要從乙個統一的地,方獲得自己ab測試的流量,而不同層之間的流量應該是正交的。

乙個推薦系統在上線之前需要經過上述三個實驗:

(a) 首先,通過離線實驗證明乙個演算法優於現存的演算法.

(b) 其次,需要通過使用者調查確定該演算法的使用者滿意度不低於現有演算法

1.3.2 評測指標

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 的取值應該視不同的應用而定。

推薦系統實踐筆記(一)

import pandas as pd from pandas import series,dataframe from operator import itemgetter,attrgetter import math unames user id gender age occupation zi...

《推薦系統實踐》學習筆記(一)

第一章 好的推薦系統 2.長尾理論 80 20原則 3.社會化推薦 social recommendation 好友給自己推薦物品 基於內容的推薦 content based filtering 和以前物品相似的物品 基於協同過濾的推薦 collabrative filtering 和自己歷史興趣相...

推薦系統實踐筆記 八

第八章 評分 問題 乙個評分記錄為乙個三元組 u,i,r 我們用 r 表示乙個使用者u給物品i的評分.8.2 評分評測演算法 1 平均值 假設有兩個分類的函式,乙個是使用者分類函式 phi 乙個是物品分類函式 varphi phi u 定義了使用者u所屬的類,varphi i 定義了物品i所屬的類,...