推薦算法綜述(三)

jopen 8年前發布 | 9K 次閱讀 推薦系統 算法

【編者的話】近年來社交媒體已經越來越流行,可以從中獲得大量豐富多彩的信息的同時,也給我們帶來了嚴重的“信息過載”問題。推薦系統作為緩解信息過載的最有效方法之一,在社交媒體中的作用日趨重要。區別于傳統的推薦方法,社交媒體中包含大量的用戶產生內容,因此在社交媒體中,通過結合傳統的個性化的推薦方法,集成各類新的數據、元數據和清晰的用戶關系,產生了各種新的推薦技術。本文總結了推薦系統中的幾個關鍵研究領域,進行綜述介紹。這是推薦算法綜述的第三部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。在本文中,主要詳細介紹基于內容的過濾算法的工作原理,以及它的優點和缺點,從而讓讀者對其有更深的理解。

注:本文翻譯自 Building Recommenders ,InfoQ中文站在獲得作者授權的基礎上對文章進行了翻譯。

正文

本文是推薦算法綜述的第三部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。在這篇博客中,主要詳細介紹基于內容的過濾算法的工作原理,以及它的優點和缺點,從而讓讀者對其有更深的理解。

基于內容的推薦算法總是為用戶推薦那些與用戶過去喜歡的item類似的item。它不同于協同過濾,它是基于item的內容(例如標題、年份、描述)比較item之間的相似度。并沒有考慮用戶過去如何使用item的情況。例如,如果一個用戶喜歡電影“指環王:魔戒再現”和“指環王:雙塔奇兵”,然后使用電影的標題信息,推薦系統可以向用戶推薦電影“指環王:王者無敵”。在基于內容的推薦中,假設可以獲取到item的描述信息,并將其作為item的特征向量(例如標題、年份、描述)。這些特征向量被用于創建一個反映用戶偏好的模型。各種信息檢索(例如TF-IDF)和機器學習技術(例如樸素貝葉斯、支持向量機、決策樹等)可被用于創建用戶模型,從而為用戶產生推薦。

舉個例子,假設有一些用戶表達過對于一系列書籍的偏好。他們越喜歡一本書,他們對書籍的評分就會越高,通常劃分為從1到5的5個等級。可以將用戶對于書籍的偏好表示為一個矩陣,其中行代表用,列表示書籍,如圖1所示。

圖1:用戶對書籍的偏好。所有的偏好都分為5個等級,5表示最喜歡的。第一個用戶(行1)對于第一本書的偏好給出了一個4分的評分。如果一個單元格是空的,表示用戶對于該書籍的偏好沒有給出。

在基于內容的推薦中,我們想要做的第一件事是基于內容計算書籍之間的相似度。在這個例子中僅僅使用了書籍標題中的詞匯,這是為了將例子進行簡化,以方便理解基于內容的推薦算法的工作原理,如圖2所示。在實際應用中,可以使用更多的屬性。

圖2:用戶已經評分過的書籍的標題。

首先,從內容中刪除停止詞(例如語法詞語、常見的詞語)是非常普遍的,然后將書籍用一個向量表示(或數組),代表使用了哪些詞,這被稱為矢量空間表示,如下圖3所示。

圖3:使用書籍標題中詞匯作為描述書籍的向量表示。當相應的詞匯在標題中,對應的單元格中標注1,否則為空白。

給定每本書的表示之后,使用一系列的相似度度量來對書籍進行比較就變得非常簡單了。在這個例子中,我們選擇了余弦相似性度量。當我們把第一本書與五本其他的書進行比較時,就能得到這本書與其他書之間的相似程度,如下圖4所示。如同大多數相似度度量一樣,向量之間的相似性度量值越高,表明兩個對象之間越相似。在這種情況下,第一本書與其中三本書非常類似,因為它們的表示之間有兩個詞匯相同(recommender和 systems),但是其中一本書的描述的詞匯最少,它與第一本書最相似,因為它有最少的多余的詞匯。而與剩下兩本書之間因為沒有共同的描述詞匯,因此可以當做一點都不相似。

(點擊放大圖像)

圖4:第一本書與其他書籍之間的相似度。能夠使用余弦相似性度量進行計算。

更進一步,就可以在一個相似度矩陣中顯示所有書籍之間的相似程度,如下圖5所示。單元格的背景顏色表示兩本書之間的相似程度,紅顏色越深,它們之間越相似。

圖5:書籍之間的相似度矩陣。每個相似度是基于書籍的詞匯向量表示用余弦相似性度量進行計算的。

在知道書籍之間有多相似之后,我們就可以對用戶推薦書籍了。類似于我們在第二部分所介紹的基于item的協同過濾方法,我們選取一個用戶此前評分過的書籍,并推薦與它們最相似的書籍。與協同過濾方法不同的是,這里的相似性度量是基于書籍的內容,在這個例子中,準確來說是標題,而不是使用用戶過去的行為數據。在我們的例子中,第一個用戶將會被推薦第四本書,之后是第六本書,如下圖6所示。再次,我們僅僅選取了最相似的兩本書。

(點擊放大圖像)

圖6:針對一個具體的用戶產生的推薦。我們選擇用戶已經評分過的書籍,然后找到兩本與它們最相似的書,推薦給用戶未評分過的書籍。

基于內容的方法克服了協同過濾方法的很多不足。具體來說,基于內容的推薦算法可以克服流行度偏離和新item的冷啟動問題,這些問題在第二部分介紹協同過濾的時候已經討論過。然而,值得注意的是,純粹基于內容的推薦算法的性能通常不如協同過濾算法。基于內容的推薦算法通常還存在過度專業化(over-specialisation)的問題,即用戶可能會得到過多相同類型的item(如推薦所有的“指環王”系列電影),而不會推薦其他不同的、但用戶可能感興趣的item。最后是,基于內容的推薦算法中,僅僅使用了包含在item元數據中的詞匯(如標題、描述年份),這限制了推薦算法的實用性,不能幫助用戶探索和發現詞匯之外的內容。

本文是一篇翻譯稿,讀者也可以參考 英文原文

來自: http://www.infoq.com/cn/articles/recommendation-algorithm-overview-part03

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!