推荐算法综述(五)
除了我們已經介紹的一些比較傳統的推薦系統(例如流行度、協同過濾、基于內容的過濾、混合方法),目前還有許多的其他方法也可以用于增強推薦系統,包括:
- 深度學習
- 社會化推薦
- 學習排序
- 多臂Bandit(探索/利用)
- 張量因子分解和因子分解(情境感知的推薦)
這些更先進的和非傳統的方法有利于將推薦系統的性能推高到一個新的水平,但實際上這些算法也存在不足,不太易于理解,而且在推薦插件中并沒有很好地被支持。在實際應用中,相比一些更傳統的方法而言,用戶還需要考量執行更新的方法所帶來的性能提升是否值得算法所花費的開銷。根據我們的經驗,基本的傳統算法還將在實際系統中應用很久,并還將驅動一些偉大的產品的誕生。
在這個綜述的系列文章中,我們想向讀者介紹一些常見的推薦算法,包括基于用戶的協同過濾算法、基于item的協同過濾算法、基于內容的過濾算法和混合方法。在這里,我們通過舉一個簡單的例子,提供了一個綜合的闡述,當有相同的輸入數據時,這四種不同的算法將為相同的用戶產生如何不同的推薦結果(圖1)。在算法被應用到大的、真實的數據中時,這種差異會一直存在,所以在決定要使用哪種算法時需要考慮它們的優點和缺點,并且在評價它們的時候,還要考慮它們執行的好壞程度。
圖1:四種推薦系統算法被應用到相同的數據集時所產生的不同的推薦結果。在左邊,我們以矩陣的形式給出了用戶對于幾個item的偏好,以及要推薦的item的標題列表。在中間,我們給出了四種不同的算法為第一個用戶(即用戶偏好矩陣中的第一行)所產生的推薦結果。按照顯示的相似度度量,它們在相似度上有不同的定義。在右邊,我們看到由每個推薦算法推薦的item,從上到下按照四種算法排序。
在實際應用中,如果你利用協同過濾算法作為你的推薦模型,一般不會出什么問題。協同過濾容易比其他算法產生更好的結果,但是它不能很好地處理新用戶和新item的冷啟動問題,如果要處理這些問題,基于內容的推薦算法是一個很好的備選。如果你有時間,那么可以將這些方法進行組合,這樣你就可以同時利用協同過濾算法和基于內容的推薦算法的優點。即使需要考察更為先進的推薦算法,在此之前,先好好考慮一下這些基本的算法也不失為一個好主意。
最后,需要緊緊牢記的是,推薦模型僅僅是推薦系統五個部件中的其中一個。付出努力將推薦模型正確建立起來是非常重要的,但是對于其他的所有部件,如數據收集和處理、后處理、在線模塊和用戶界面,做出正確的選擇同樣重要。正如我們一遍又一遍所強調的,該推薦算法僅僅是推薦系統中的一部分,你的決策需要考慮整個產品。
本文是一篇翻譯稿,讀者也可以參考英文原文。
總結
- 上一篇: 推荐算法综述(四)
- 下一篇: TCP/IP 三次握手和四次挥手