推薦系統實踐讀書筆記與思考

推薦系統評測

一個網站3各參與方,用戶、網站、內容提供方,好的推薦系統目標就在增加用戶與網站互動,提高網站收入(這是公司最關注的),所以在推薦系統中需要綜合考慮三方的利益。

在進行推薦時要注重用戶體驗並且也要考慮相關商家的利益,最終能使得網站收入提升。

在推薦系統早期,預測準確度是推薦系統的重要指標,這個指標的好處就是比較容易通過離線計算來得到,這樣方便對不同推薦算法的研究。

準確預測並不代表好的推薦,比如用戶已經打算買某個item ,無論系統是否給他推薦,他都準備買,對於用戶來說他覺得推薦不夠新穎,對於服務提供商來說沒有增加潛在消費者中的銷量,從實際效果來說這是一個比較失敗的推薦。爲了全面評測三方利益,從不同角度提出了很多評價指標。

推薦系統中實驗方法

1. 離線實驗

離線實驗步驟比較簡單,通過日誌數據獲取用戶的行爲數據,並按照一定格式來生成數據集;將數據集按照一定規則切分成訓練集與測試集;在訓練集上訓練模型,在測試集上進行驗證,通過指定的評價指標進行算法效果的評估。

這個方法的主要缺點就是:無法獲取商業上關注的指標,如點擊率,PV,VU,轉化率等。但是優點也是非常明顯的:不需要實際系統中控制權、不需要真實線上用戶的參與、速度快可以進行大量算法的測試工作。

2. 用戶調查

如果需要準確評價一個算法需要上線測試,但是如果對算法不是很有把握的時候,上線測試有比較大的風險,所以上線前一般做一次用戶調查測試。該方法最大優點就是獲得用戶主觀感受的指標,相對在線測試風險低,缺點就是需要大量用戶,而且用戶選擇等都有時很難模擬真實用戶網站狀態。

3. 在線實驗

網站進行A/B test,該方法通過一定規則把用戶隨機分成幾組,並對不同組用戶採用不同的算法,通過統計不同組用戶各種評價指標來比較不同的算法。該方法的優勢就是可以公平獲得不同算法實際線上的性能指標,包括商業上關注的指標。缺點就是週期比較長,必須長期實驗才能得到可靠結果,該方法只會測試在離線實驗和用戶調查中表現優秀的算法。此外在實際系統中,大型網站的A/B 測試是個複雜系統工程。大型網站通常是前端與後端,中間經過了很多層,這些層由不同團隊控制,而且可能都進行A/B 測試,所以需要搞清楚差異究竟是前端頁面改進還是後端算法改進造成了,這其中就涉及到流量管控等問題。

評價指標

1. 用戶滿意度

用戶滿意度是推薦系統最重要指標。用戶滿意度在在線系統主要通過用戶行爲數據統計得來的,如果用戶購買了推薦的商品就表示一定程度的滿意,此外還有網站選擇打分或者贊作爲用戶是否滿意的途徑。

2. 預測準確度

這個指標是非常多論文中用到的指標,一般使用均方誤差RMSE和平均絕對誤差MAE計算。

TopN推薦 的預測準確率通過準確率與召回率進行度量,TopN推薦更符合實際應用需求,預測用戶是否會看某個電影應該比預測用戶看了電影打多少分重要。

3. 覆蓋率

覆蓋率描述推薦系統中長尾發掘能力。最簡單定義就是推薦系統能夠推薦出來的item 佔總的item的比例。信息論和經濟學中有兩個指標定義覆蓋率,第一個就是熵第二個就是基尼係數。社會學中有一個著名的馬太效應,即所謂強者更強,弱者更弱,如首頁排行榜的商品就有馬太效應,這也是爲什麼當年聚划算進行人工挑選商品時,商家行賄小二的原因,只要上了聚划算首頁流量和銷量將是巨大的。

4. 多樣性

因爲用戶是一個多維的興趣,推薦時需要能夠覆蓋用戶不同興趣領域。以前類似淘寶進行推薦就是一旦你買過某個商品,後面一直給你推那個商品非常相似的商品,這其實就是沒有充分考慮到用戶多樣的興趣維度。

5. 新穎性

新穎性推薦指的給用戶推薦他們以前沒有聽過的物品

6. 其他指標

驚喜度、信任度、實時性、健壯性

用戶行爲數據

分爲兩類:顯性反饋、隱性反饋

顯性反饋只點贊、打分等,隱性反饋最有代表的就是頁面瀏覽行爲。

在互聯網數據分佈中最大的特點就是長尾效應,如淘寶中 商品點擊看A又看B 小於10次pair 很多,協同過濾覆蓋商品有限,大體只有10%,剩下90% 則需要通過模型預測共點擊。

看了又看商品描述是相似商品,看了又買描述是搭配商品。

基於鄰域的算法

基於用戶的協同過濾算法

算法思路很簡單,找到和目標用戶興趣相似的用戶集合,找到這個集合中用戶喜歡的,且目標用戶沒有聽說過的物品推薦給目標用戶
用戶相似度計算中改進地方:
如果兩個用戶都買了某個熱門商品並不能說明兩者相似,如果兩個用戶購買了類似《數據挖掘導論》偏冷門商品則說明兩個user興趣比較類似,所以在計算相似性時需要對熱門商品進行懲罰。

基於物品協同過濾算法
ItemCF主要通過分析用戶行爲記錄計算物品之間相似度。該算法認爲,物品A和物品B具有很大的相似度是因爲喜歡物品A的用戶大多也喜歡物品B。
物品相似性歸一化
歸一化好處不僅在於增加推薦的準確度,它可以提高推薦覆蓋率和多樣性。
如果是電影推薦,ItemCF算出相似度一般是紀錄片之間相似度或者動畫片之間相似度大於紀錄片和動畫片的相似度,但是紀錄片之間相似度和動畫片之間相似度卻不一定相同,說白了也就是兩者可能評分尺度差異,人們傾向於對紀錄片評分比較嚴格,對動畫片評分比較鬆,數字舉例就是A類物品相似度爲0.5  B類物品爲0.8 ,一個用戶喜歡5個A類物品和5個B類物品,不進行歸一化則推薦都是B類物品,但是進行歸一化後推薦兩類物品數目就大致相當。
此外,對於兩個不同類,什麼樣類相似度高? 一般來說熱門類中物品相似度一般比較大,如果不歸一化,推薦比較熱門類中物品,而這些物品也是比較熱門的,因此推薦的覆蓋率比較低,進行歸一化可以提高系統的覆蓋率。


UserCF和ItemCF的綜合比較
從兩個算法原理我們可以發現,UserCF給用戶推薦和他有共同興趣愛好的用戶喜歡的物品,而ItemCF給用戶推薦那個和他之前喜歡物品類似的商品,從這個角度可以看到,UserCF推薦結果着重反映和用戶興趣類似的小羣體熱點,而ItemCF推薦着重維護用戶歷史興趣。UserCF推薦更加社會化,反映了用戶所在小型羣體中物品的熱門程度,而ItemCF推薦更加個性化,反映用戶自己興趣傳承。


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