推薦問題產生
信息過載
推薦問題解決方法
- 基于內容
- 基于協同過濾
- 基于鄰域的方法
- 基于用戶
- 基于物品
- 基于模型的方法
- 隱語義模型等
推薦系統原理
推薦系統原理
推薦數據源
- 要推薦物品或內容的元數據,例如關鍵字,基因描述等
- 系統用戶的基本信息,例如性別,年齡等
- 用戶對物品或者信息的偏好,根據應用本身的不同,可能包括用戶對物品的評分,用戶查看物品的記錄,用戶的購買記錄等。其實這些用戶的偏好信息可以分為兩類:
- 顯式的用戶反饋:這類是用戶在網站上自然瀏覽或者使用網站以外,顯式的提供反饋信息,例如用戶對物品的評分,或者對物品的評論。
- 隱式的用戶反饋:這類是用戶在使用網站是產生的數據,隱式的反應了用戶對物品的喜好,例如用戶購買了某物品,用戶查看了某物品的信息等等。
基于內容的推薦
基于內容的推薦原理
這種基于內容的推薦機制的好處在于它能很好的建模用戶的口味,能提供更加精確的推薦。但它也存在以下幾個問題:
- 需要對物品進行分析和建模,推薦的質量依賴于對物品模型的完整和全面程度。
- 物品相似度的分析僅僅依賴于物品本身的特征,這里沒有考慮人對物品的態度。
- 因為需要基于用戶以往的喜好歷史做出推薦,所以對于新用戶有“冷啟動”的問題。
協同過濾推薦
基于用戶的協同過濾
基于用戶的協同過濾算法原理
假設用戶 A 喜歡物品 A,物品 C,用戶 B 喜歡物品 B,用戶 C 喜歡物品 A ,物品 C 和物品 D;從這些用戶的歷史喜好信息中,我們可以發現用戶 A 和用戶 C 的口味和偏好是比較類似的,同時用戶 C 還喜歡物品 D,那么我們可以推斷用戶 A 可能也喜歡物品 D,因此可以將物品 D 推薦給用戶 A。
基于物品的協同過濾
基于物品的協同過濾算法原理
假設用戶 A 喜歡物品 A 和物品 C,用戶 B 喜歡物品 A,物品 B 和物品 C,用戶 C 喜歡物品 A,從這些用戶的歷史喜好可以分析出物品 A 和物品 C 時比較類似的,喜歡物品 A 的人都喜歡物品 C,基于這個數據可以推斷用戶 C 很有可能也喜歡物品 C,所以系統會將物品 C 推薦給用戶 C。
基于模型的協同過濾
基于模型的協同過濾推薦就是基于樣本的用戶喜好信息,訓練一個推薦模型,然后根據實時的用戶喜好的信息進行預測,計算推薦。
小結
基于協同過濾的推薦機制是現今應用最為廣泛的推薦機制,它有以下幾個顯著的優點:
- 它不需要對物品或者用戶進行嚴格的建模,而且不要求物品的描述是機器可理解的,所以這種方法也是領域無關的。
- 這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支持用戶發現潛在的興趣偏好。
而它也存在以下幾個問題:
- 方法的核心是基于歷史數據,所以對新物品和新用戶都有“冷啟動”的問題。
- 推薦的效果依賴于用戶歷史偏好數據的多少和準確性。
- 在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。
- 對于一些特殊品味的用戶不能給予很好的推薦。
- 由于以歷史數據為基礎,抓取和建模用戶的偏好后,很難修改或者根據用戶的使用演變,從而導致這個方法不夠靈活。
推薦系統實踐
推薦流程圖
基本推薦算法
參考文獻
http://blog.163.com/lnhenrylee@126/blog/static/2414832520123269713813/