推薦算法綜述(五)
來自: http://www.infoq.com/cn/articles/recommendation-algorithm-overview-part05
【編者的話】近年來社交媒體已經越來越流行,可以從中獲得大量豐富多彩的信息的同時,也給我們帶來了嚴重的“信息過載”問題。推薦系統作為緩解信息過載的最有效方法之一,在社交媒體中的作用日趨重要。區別于傳統的推薦方法,社交媒體中包含大量的用戶產生內容,因此在社交媒體中,通過結合傳統的個性化的推薦方法,集成各類新的數據、元數據和清晰的用戶關系,產生了各種新的推薦技術。本文總結了推薦系統中的幾個關鍵研究領域,進行綜述介紹。本文是推薦算法綜述的最后一部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。第三部分詳細介紹了基于內容的過濾算法。第四部分主要介紹了混合引薦技術和基于流行度的推薦方法。在這篇文章中,我們在回顧了所有基本的推薦算法之后,介紹了如何選擇最合適的推薦算法。
注:本文翻譯自 Building Recommenders ,InfoQ中文站在獲得作者授權的基礎上對文章進行了翻譯。
正文
本文是推薦算法綜述的最后一部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。第三部分詳細介紹了基于內容的過濾算法。第四部分主要介紹了混合引薦技術和基于流行度的推薦方法。在這篇文章中,我們在回顧了所有基本的推薦算法之后,介紹了如何選擇最合適的推薦算法。
除了我們已經介紹的一些比較傳統的推薦系統(例如流行度、協同過濾、基于內容的過濾、混合方法),目前還有許多的其他方法也可以用于增強推薦系統,包括:
- 深度學習
- 社會化推薦
- 學習排序
- 多臂Bandit(探索/利用)
- 張量因子分解和因子分解(情境感知的推薦)
這些更先進的和非傳統的方法有利于將推薦系統的性能推高到一個新的水平,但實際上這些算法也存在不足,不太易于理解,而且在推薦插件中并沒有很好地被支持。在實際應用中,相比一些更傳統的方法而言,用戶還需要考量執行更新的方法所帶來的性能提升是否值得算法所花費的開銷。根據我們的經驗,基本的傳統算法還將在實際系統中應用很久,并還將驅動一些偉大的產品的誕生。
在這個綜述的系列文章中,我們想向讀者介紹一些常見的推薦算法,包括基于用戶的協同過濾算法、基于item的協同過濾算法、基于內容的過濾算法和混合方法。在這里,我們通過舉一個簡單的例子,提供了一個綜合的闡述,當有相同的輸入數據時,這四種不同的算法將為相同的用戶產生如何不同的推薦結果(圖1)。在算法被應用到大的、真實的數據中時,這種差異會一直存在,所以在決定要使用哪種算法時需要考慮它們的優點和缺點,并且在評價它們的時候,還要考慮它們執行的好壞程度。
(點擊放大圖像)
圖1:四種推薦系統算法被應用到相同的數據集時所產生的不同的推薦結果。在左邊,我們以矩陣的形式給出了用戶對于幾個item的偏好,以及要推薦的item的標題列表。在中間,我們給出了四種不同的算法為第一個用戶(即用戶偏好矩陣中的第一行)所產生的推薦結果。按照顯示的相似度度量,它們在相似度上有不同的定義。在右邊,我們看到由每個推薦算法推薦的item,從上到下按照四種算法排序。
在實際應用中,如果你利用協同過濾算法作為你的推薦模型,一般不會出什么問題。協同過濾容易比其他算法產生更好的結果,但是它不能很好地處理新用戶和新item的冷啟動問題,如果要處理這些問題,基于內容的推薦算法是一個很好的備選。如果你有時間,那么可以將這些方法進行組合,這樣你就可以同時利用協同過濾算法和基于內容的推薦算法的優點。即使需要考察更為先進的推薦算法,在此之前,先好好考慮一下這些基本的算法也不失為一個好主意。
最后,需要緊緊牢記的是,推薦模型僅僅是推薦系統五個部件中的其中一個。付出努力將推薦模型正確建立起來是非常重要的,但是對于其他的所有部件,如數據收集和處理、后處理、在線模塊和用戶界面,做出正確的選擇同樣重要。正如我們一遍又一遍所強調的,該推薦算法僅僅是推薦系統中的一部分,你的決策需要考慮整個產品。
本文是一篇翻譯稿,讀者也可以參考 英文原文 。
編后語
《他山之石》是InfoQ中文站新推出的一個專欄,精選來自國內外技術社區和個人博客上的技術文章,讓更多的讀者朋友受益,本欄目轉載的內容都經過原作者授權。文章推薦可以發送郵件到editors@cn.infoq.com。
感謝杜小芳對本文的審校。
</div>