????????推薦系統(tǒng)在各種系統(tǒng)中廣泛使用肝集,推薦算法則是其中最核心的技術(shù)點(diǎn),為推薦系統(tǒng)選擇正確的推薦算法是非常重要的決定句各。目前為止链患,已經(jīng)有許多推薦算法可供選擇巧鸭,但為你需要解決的特定問題選擇一種特定的算法仍然很困難。每一種推薦算法都有其優(yōu)點(diǎn)和缺點(diǎn)麻捻,當(dāng)然也有其限制條件蹄皱,在作出決定之前,你必須要一一考量芯肤。在實(shí)踐中巷折,你可能會測試幾種算法,以發(fā)現(xiàn)哪一種最適合你的用戶崖咨,測試中你也會直觀地發(fā)現(xiàn)它們是什么以及它們的工作原理锻拘。
推薦系統(tǒng)算法通常是某類推薦模型的實(shí)現(xiàn),它負(fù)責(zé)獲取數(shù)據(jù)击蹲,例如用戶的喜好和可推薦項(xiàng)的描述署拟,以及預(yù)測給定的用戶組會對哪些選項(xiàng)感興趣。
推薦算法通常被分為四大類(1-4):
協(xié)同過濾推薦算法
基于內(nèi)容的推薦算法
混合推薦算法
流行度推薦算法
除了這些種類以外歌豺,還有一些高級非傳統(tǒng)的推薦算法(5)推穷。
1.協(xié)同過濾推薦算法
簡介:通過在用戶的一系列行為中尋找特定模式來產(chǎn)生用戶特殊推薦
輸入:僅僅依賴于慣用數(shù)據(jù)(例如評價(jià)、購買类咧、下載等用戶偏好行為)
類型:
基于鄰域的協(xié)同過濾(基于用戶和基于項(xiàng))
基于模型的協(xié)同過濾(矩陣因子分解馒铃、受限玻爾茲曼機(jī)、貝葉斯網(wǎng)絡(luò)等等)
優(yōu)點(diǎn):
(1) 需要最小域
(2) 不需要用戶和項(xiàng)
(3) 大部分場景中能夠產(chǎn)生足夠好的結(jié)果
缺點(diǎn):
(1) 冷啟動(dòng)問題
(2) 需要標(biāo)準(zhǔn)化產(chǎn)品
(3) 需要很高的用戶和項(xiàng)的比例(1:10)
(4) 流行度偏見(有長尾的時(shí)候表現(xiàn)不夠好)
(4) 難于提供解釋
2.基于內(nèi)容的推薦算法
簡介:向用戶推薦和其過去喜歡項(xiàng)的內(nèi)容(例如元數(shù)據(jù)痕惋、描述区宇、話題等等)相似的項(xiàng)
輸入:僅僅依賴于項(xiàng)和用戶的內(nèi)容/描述(除了慣用數(shù)據(jù))
類型:
信息檢索(例如 tf-idf 和 Okapi BM25)
機(jī)器學(xué)習(xí)(例如樸素貝葉斯、支持向量機(jī)值戳、決策樹等等)
優(yōu)點(diǎn):
(1) 沒有冷啟動(dòng)問題
(2) 不需要慣用數(shù)據(jù)
(3) 沒有流行度偏見议谷,可以推薦有罕見特性的項(xiàng)
(4) 可以使用用戶內(nèi)容特性來提供解釋
缺點(diǎn):
(1) 項(xiàng)內(nèi)容必須是機(jī)器可讀的和有意義的
(2)容易歸檔用戶
(3) 很難有意外,缺少多樣性
(4) 很難聯(lián)合多個(gè)項(xiàng)的特性
3.混合推薦算法
簡介:綜合利用協(xié)同過濾推薦算法和基于內(nèi)容的推薦算法各自的優(yōu)點(diǎn)同時(shí)抵消各自的缺點(diǎn)
輸入:同時(shí)使用用戶和項(xiàng)的內(nèi)容特性與慣用數(shù)據(jù)堕虹,同時(shí)從兩種輸入類型中獲益
類型:
加權(quán)
交換
混合
特性組合
案列
特征增強(qiáng)
元層次
優(yōu)點(diǎn):
(1) 由于單獨(dú)使用協(xié)同過濾推薦算法和基于內(nèi)容的推薦算法
(2) 沒有冷啟動(dòng)問題
(3) 沒有流行度偏見卧晓,可推薦有罕見特性的項(xiàng)
(4) 可產(chǎn)生意外,實(shí)現(xiàn)多樣性
缺點(diǎn):
需要通過大量的工作才能得到正確的平衡
4.流行度推薦算法
簡介:這是一種推薦流行項(xiàng)的方法(例如最多下載赴捞、最多看過逼裆、最大影響的項(xiàng))
輸入:使用慣用數(shù)據(jù)和項(xiàng)的內(nèi)容(例如類目)
優(yōu)點(diǎn):
(1) 相對容易實(shí)現(xiàn)
(2) 良好的基準(zhǔn)算法
(3) 有助于解決新用戶冷啟動(dòng)問題
缺點(diǎn):
(1) 需要標(biāo)準(zhǔn)化產(chǎn)品
(2) 經(jīng)常需要一些項(xiàng)的類型進(jìn)行分類
(3) 不會推薦新項(xiàng)(很少有機(jī)會被觀測到)
(4) 推薦列表不會改變太大
5.高級非傳統(tǒng)推薦算法
類型:
深度學(xué)習(xí)
學(xué)習(xí)等級
Multi-armed bandits(探索/開發(fā))
上下文感知推薦
張量分解
分解機(jī)
社會推薦
優(yōu)點(diǎn):
(1) 利于勉強(qiáng)維持最終性能百分點(diǎn)
(2) 你可以說你正在使用漸進(jìn)的方式
缺點(diǎn):
(1) 難于理解
(2) 缺乏推薦工具支持
(3) 沒有為你的首個(gè)推薦系統(tǒng)提供推薦的方式