推荐算法综述(一)
推薦算法通常被分為四大類(1-4):
- 協同過濾推薦算法
- 基于內容的推薦算法
- 混合推薦算法
- 流行度推薦算法
除了這些種類以外,還有一些高級非傳統的推薦算法(5)。
推薦算法綜述是分文五個部分的系列文章,本文作為第一篇,將會簡要介紹推薦系統算法的主要種類。其中包括算法的簡要描述、典型的輸入、不同的細分類型以及其優點和缺點。在第二和第三篇中,我們將會詳細介紹這些算法的區別,讓你能夠深入理解他們的工作原理。系列文章中的一些內容參考了一篇來自 RecSys 2014 tutorial 的文章:由Xavier Amatriain編寫的The Recommender Problem Revisited。
1.協同過濾推薦算法
簡介:通過在用戶的一系列行為中尋找特定模式來產生用戶特殊推薦
輸入:僅僅依賴于慣用數據(例如評價、購買、下載等用戶偏好行為)
類型:
- 基于鄰域的協同過濾(基于用戶和基于項)
- 基于模型的協同過濾(矩陣因子分解、受限玻爾茲曼機、貝葉斯網絡等等)
優點:
- 需要最小域
- 不需要用戶和項
- 大部分場景中能夠產生足夠好的結果
缺點:
- 冷啟動問題
- 需要標準化產品
- 需要很高的用戶和項的比例(1:10)
- 流行度偏見(有長尾的時候表現不夠好)
- 難于提供解釋
2.基于內容的推薦算法
簡介:向用戶推薦和其過去喜歡項的內容(例如元數據、描述、話題等等)相似的項
輸入:僅僅依賴于項和用戶的內容/描述(除了慣用數據)
類型:
- 信息檢索(例如 tf-idf 和 Okapi BM25)
- 機器學習(例如樸素貝葉斯、支持向量機、決策樹等等)
優點:
- 沒有冷啟動問題
- 不需要慣用數據
- 沒有流行度偏見,可以推薦有罕見特性的項
- 可以使用用戶內容特性來提供解釋
缺點:
- 項內容必須是機器可讀的和有意義的
- 容易歸檔用戶
- 很難有意外,缺少多樣性
- 很難聯合多個項的特性
3.混合推薦算法
簡介:綜合利用協同過濾推薦算法和基于內容的推薦算法各自的優點同時抵消各自的缺點
輸入:同時使用用戶和項的內容特性與慣用數據,同時從兩種輸入類型中獲益
類型:
- 加權
- 交換
- 混合
- 特性組合
- 案列
- 特征增強
- 元層次
優點:
- 由于單獨使用協同過濾推薦算法和基于內容的推薦算法
- 沒有冷啟動問題
- 沒有流行度偏見,可推薦有罕見特性的項
- 可產生意外,實現多樣性
缺點:
- 需要通過大量的工作才能得到正確的平衡
4.流行度推薦算法
簡介:這是一種推薦流行項的方法(例如最多下載、最多看過、最大影響的項)
輸入:使用慣用數據和項的內容(例如類目)
優點:
- 相對容易實現
- 良好的基準算法
- 有助于解決新用戶冷啟動問題
缺點:
- 需要標準化產品
- 經常需要一些項的類型進行分類
- 不會推薦新項(很少有機會被觀測到)
- 推薦列表不會改變太大
5.高級非傳統推薦算法
類型:
- 深度學習
- 學習等級
- Multi-armed bandits(探索/開發)
- 上下文感知推薦
- 張量分解
- 分解機
- 社會推薦
優點:
- 利于勉強維持最終性能百分點
- 你可以說你正在使用漸進的方式
缺點:
- 難于理解
- 缺乏推薦工具支持
- 沒有為你的首個推薦系統提供推薦的方式
查看英文原文:Overview of Recommender Algorithms – Part 1
總結
- 上一篇: 深入理解java中的Soft refer
- 下一篇: 推荐算法综述(二)