推薦系統的基本思想
- 利用用戶和物品的特徵信息,給用戶推薦那些具有用戶喜歡的特徵的物品。
- 利用用戶喜歡過的物品,給用戶推薦與他喜歡過的物品相似的物品。
- 利用和用戶相似的其他用戶,給用戶推薦那些和他們興趣愛好相似的其他用
戶喜歡的物品。
推薦系統的數據分析
• 要推薦物品或內容的元數據,例如關鍵字,分類標籤,基因描述等;
• 系統用戶的基本信息,例如性別,年齡,興趣標籤等
• 用戶的行爲數據,可以轉化爲對物品或者信息的偏好,根據應用本身的不同,
可能包括用戶對物品的評分,用戶查看物品的記錄,用戶的購買記錄等。這些用戶的偏好信息可以分爲兩類:
- 顯式的用戶反饋:這類是用戶在網站上自然瀏覽或者使用網站以外,顯式的提供 反饋信息,例如用戶對物品的評分,或者對物品的評論。
- 隱式的用戶反饋:這類是用戶在使用網站是產生的數據,隱式的反應了用戶對物品的喜好,例如用戶購買了某物品,用戶查看了某物品的信息等等。
推薦系統的分類
- 根據實時性分類
– 離線推薦
– 實時推薦 - 根據推薦原則分類
– 基於相似度的推薦
– 基於知識的推薦
– 基於模型的推薦 - 根據推薦是否個性化分類
– 基於統計的推薦
– 個性化推薦 - 根據數據源分類
– 基於人口統計學的推薦
– 基於內容的推薦
– 基於協同過濾的推薦
推薦算法簡介
- 基於人口統計學的推薦
- 基於內容的推薦
- 基於協同過濾的推薦
- 混合推薦
基於人口統計學的推薦
基於內容的推薦
基於協同過濾的推薦
協同過濾(Collaborative Filtering,CF)比較依賴歷史數據
• 基於近鄰的協同過濾
– 基於用戶(User-CF)
– 基於物品(Item-CF)
• 基於模型的協同過濾
– 奇異值分解(SVD)
– 潛在語義分析(LSA)
– 支撐向量機(SVM)
基於用戶的協同過濾
基於物品的協同過濾
混合推薦
實際網站的推薦系統往往都不是單純只採用了某一種推薦的機制和策略,往往是將多個方法混合在一起,從而達到更好的推薦效果。比較流行的組合方法有:
• 加權混合
– 用線性公式(linear formula)將幾種不同的推薦按照一定權重組合起來,具體權重的值需要在測試數據集上反覆實驗,從而達到最好的推薦效果
• 切換混合
– 切換的混合方式,就是允許在不同的情況(數據量,系統運行狀況,用戶和物品的數目等)下,選擇最爲合適的推薦機制計算推薦
• 分區混合
– 採用多種推薦機制,並將不同的推薦結果分不同的區顯示給用戶
• 分層混合
– 採用多種推薦機制,並將一個推薦機制的結果作爲另一個的輸入,從而綜合各個推薦機制的優缺點,得到更加準確的推薦
推薦系統實驗方法
- 離線實驗
– 通過體制系統獲得用戶行爲數據,並按照一定格式生成一個標準的數據集
– 將數據集按照一定的規則分成訓練集和測試集
– 在訓練集上訓練用戶興趣模型,在測試集上進行預測
– 通過事先定義的離線指標評測算法在測試集上的預測結果 - 用戶調查
– 用戶調查需要有一些真實用戶,讓他們在需要測試的推薦系統上完成一些任務;我們需要記錄他們的行爲,並讓他們回答一些問題;最後進行分析 - 在線實驗
– AB測試
推薦準確度評測
• 評分預測
– 很多網站都有讓用戶給物品打分的功能,如果知道用戶對物品的歷史評分,就可以從中學習一個興趣模型,從而預測用戶對新物品的評分
– 評分預測的準確度一般用均方根誤差(RMSE)或平均絕對誤差(MAE)計算
• Top-N推薦
– 網站提供推薦服務時,一般是給用戶一個個性化的推薦列表,這種推薦叫做Top-N推薦
– Top-N推薦的預測準確率一般用精確率(precision)和召回率(recall)來度量