推薦系統基礎知識整理算法
- 優勢:
- 簡單直觀;解釋性強
- 開發以及維護簡單
- 缺點:
- 結果單一
- 馬太效應:馬太效應是出自《聖經 馬太福音》的一個典故,社會學中的一種強者越強弱者越弱的現象,也就是說推薦系統是否會使被關注的事物更加被關注,被忽視的事物更加被忽視。經常使用的協同過濾就有馬太效應。比較簡單的測試指標就是信息熵。
- 較爲依賴主觀經驗
- 優勢(同上)
- 缺點:
- 結果單一
- 馬太效應
- 熱門推薦須要考慮的因素:
- 時效性:熱門推薦的時效性很好理解。
- 推薦物品的質量:推薦物品的質量表示推薦給用戶須要考慮用戶對該物品是否感興趣。
- 用戶與用戶行爲的權重:用戶和用戶行爲的權重表示某個用戶屢次訪問與某個用戶不多訪問二者是有很大的區別的
利用用戶的已知屬性或者興趣偏好,與物品內容的屬性進行匹配,以此爲用戶推薦新的感興趣的物品。測試
- 基於用戶畫像的推薦
- 基於關鍵詞向量的推薦
- 優勢:
- 用戶之間是相互獨立的
- 可解釋型較強
- 能夠推薦新的物品
- 缺點:
- 缺少新穎度
- 很難對新用戶進行推薦。這裏能夠考慮給熱門推薦;或者根據用戶的地域信息給出相應的推薦;或者根據用戶實時行爲數據進行實時推薦
- 基於近鄰的協同過濾:他關注的是用戶之間的類似度或者是物品之間的類似度。
- Item-based
- 定義:基於Item-based推薦表示的是根據物品的類似性,某個用戶買了某個物品後,經過物品的類似性獲得一些與該物品相相似的商品推薦給該用戶。
- 應用場景:
- 當Item的數量遠小於User的數量時,考慮用Item-based
- 當Item的比較穩定時,考慮用戶Item-based
- User-based
- 定義:基於user-based推薦表示的是根據用戶的類似度,某個用戶購買了相關的商品時,與該用戶類似的用戶也購買了那些物品推薦給他。
- 應用場景:
- 當user的數量遠小於Item的數量時,考慮用User-based
- 當Item不是特別穩定時,考慮用User-based
- 基於模型的協同過濾:將物品和用戶映射到相同的語義空間進行計算類似度。主要用到的方法就是矩陣分解。
- 因子分解
- SVD,SVD++
- ALS矩陣分解(Spark MLlib)
應用矩陣分解的緣由是因爲用戶和物品構成的矩陣在實際的應用場景中,每每都是稀疏的或者存在缺失值的狀況。這個時候很難補充或者很難準確的給出相應的物品推薦,而且複雜度較高。經過矩陣分解能夠解決這類問題。在FM算法當中也有用到相似的原理。spa
推薦系統的思惟導圖以下:blog
- 餘弦類似度
- 皮爾森相關係數
- jaccard類似係數
- 召回
- 根據用戶長期穩定的興趣和即時的目標,獲得能夠推薦給用戶的物品候選集
- 結合具體的業務邏輯進一步獲得候選集
- 排序
- 獲得候選集後,須要對候選集中的物品進行排序。
- 傳統的排序方式:相關係數,重要性
- point-wise,pair-wise,list-wise
-
這裏排序的模型能夠考慮使用的特徵類型:用戶特徵、物 品特徵、用戶-物品交互 特徵、場景特徵等 排序
- 過濾/規則匹配
- 過濾一些bad case
- 根據用戶的歷史行爲過濾一些用戶已經購買過的物品
- 正確率,召回率,F1值,ROC曲線,AUC值
- 轉化率相關的指標
- 銷售額
- 排序相關的指標
- 用戶體驗相關的指標(這塊很差衡量)
- 覆蓋率:用戶的覆蓋率和物品的覆蓋率