推薦算法綜述(一)
【編者按】推薦系統在各種系統中廣泛使用,推薦算法則是其中最核心的技術點,InfoQ接下來將會策劃系列文章來為讀者深入介紹。推薦算法綜述分文五個部分,本文作為第一篇,將會簡要介紹推薦系統算法的主要種類。其中包括算法的簡要描述、典型的輸入、不同的細分類型以及其優點和缺點。在第二和第三篇中,我們將會詳細介紹這些算法的區別,讓你能夠深入理解他們的工作原理。
注:本文翻譯自 Building Recommenders ,InfoQ中文站在獲得作者授權的基礎上對文章進行了翻譯。
為推薦系統選擇正確的推薦算法是非常重要的決定。目前為止,已經有許多推薦算法可供選擇,但為你需要解決的特定問題選擇一種特定的算法仍然很困難。每一種推薦算法都有其優點和缺點,當然也有其限制條件,在作出決定之前,你必須要一一考量。在實踐中,你可能會測試幾種算法,以發現哪一種最適合你的用戶,測試中你也會直觀地發現它們是什么以及它們的工作原理。
推薦系統算法通常是某類推薦模型的實現,它負責獲取數據,例如用戶的喜好和可推薦項的描述,以及預測給定的用戶組會對哪些選項感興趣。
推薦算法通常被分為四大類(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
關于作者
Maya Hristakeva 是Mendeley和RELX團隊的首席數據科學家,致力于創建能夠幫助研究者連接他們的研究和合作者的工具。她本人的研究領域是可擴展的機器學習、推薦系統和優化算法。她也對端對端的構建數據產品過程感興趣:從算法到好的用戶體驗。
Kris Jack 是Mendeley的首席數據科學家,同時也是RELX團隊的數據科學家的負責人。他熱衷于創造能夠幫助人們理解和傳達復雜信息以及做出新發現的軟件。他的主要研究興趣在于推薦系統、信息檢索、信息抽取、機器學習、人工智能等等。他還熱衷于將技術轉化為真正對用戶有用的產品以及參與能夠創造奇跡的團隊。
Maya 和 Kris 共同為世界創建出了一些出色的推薦系統。他們最新的產品是給研究員使用的推薦系統:Mendeley Suggest。