推薦算法綜述(四)

umep6216 8年前發布 | 8K 次閱讀 推薦系統

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

【編者的話】近年來社交媒體已經越來越流行,可以從中獲得大量豐富多彩的信息的同時,也給我們帶來了嚴重的“信息過載”問題。推薦系統作為緩解信息過載的最有效方法之一,在社交媒體中的作用日趨重要。區別于傳統的推薦方法,社交媒體中包含大量的用戶產生內容,因此在社交媒體中,通過結合傳統的個性化的推薦方法,集成各類新的數據、元數據和清晰的用戶關系,產生了各種新的推薦技術。本文總結了推薦系統中的幾個關鍵研究領域,進行綜述介紹。本文是推薦算法綜述的第四部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。第三部分詳細介紹了基于內容的過濾算法。在本文中,我們將介紹混合引薦技術,它是建立在我們前面介紹過的算法之上的。我們也將簡要討論針對協同過濾算法(collaborative filtering,CF)和基于內容的過濾方法中存在的不足,可以如何通過融入item的流行度來緩解這些局限性。

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

正文

本文是推薦算法綜述的第四部分。第一部分主要介紹了推薦算法的主要類型。第二部分,主要涵蓋了不同類型的協同過濾算法,突出他們之間的一些細微差別。第三部分詳細介紹了基于內容的過濾算法。在這篇博客中,我們將介紹混合引薦技術,它是建立在我們前面介紹過的算法之上的。我們也將簡要討論針對協同過濾算法(collaborative filtering,CF)和基于內容的過濾方法中存在的不足,可以如何通過融入item的流行度來緩解這些局限性。

混合方法組合了用戶和項目內容特征以及用戶的歷史行為數據,從而從兩種數據中提取信息。一個混合推薦系統如果結合了算法A和B,那么它是希望使用算法A的優勢來解決算法B的缺點。例如,協同過濾算法存在新item的問題,即它們不能為用戶推薦所有用戶沒有使用過或評分過item。但這對基于內容的推薦算法來說并不是問題,因為當新的item進入系統的時候,基于內容的推薦算法可以基于item的內容推薦新的item給用戶。通過提出一個混合推薦方法,讓其組合協同過濾算法和基于內容的過濾算法,可以克服單個算法存在的不足,例如冷啟動問題和流行度偏差問題。將兩種基本的推薦技術進行組合形成一個混合推薦系統存在不同的方式,我們對此進行了概括,如表1所示。

表1:將兩種基本的推薦技術進行組合形成一個混合推薦系統的不同方式。

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

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

使用相同的設置,我們在第二部分介紹過兩個例子,分別展示如何使用基于用戶的協同過濾技術和基于item的協同過濾技術來對用戶產生推薦,并在第三部分,我們展示了如何使用基于內容的過濾技術來對用戶進行推薦。現在,我們將組合這三種不同的算法來構建一個新的混合推薦系統。我們將使用加權方法(表1)來組合這幾種不同技術的結果,在這種情況下,通過考慮不同結果的重要性(即權重)來產生新的推薦。

讓我們選擇第一個用戶,并為他產生一些推薦。首先,我們從第二部分中提取使用基于用戶的協同過濾技術和基于item的協同過濾技術(CF)所得到的推薦結果,從第三部分中提取使用基于內容的過濾技術(CB)所得到的推薦結果(圖2)。值得注意的是,在這個小的例子中,即使三種方法的輸入相同,但它們為相同用戶產生了略微不同的推薦結果。

圖2:分別使用基于用戶的協同過濾技術、基于item的協同過濾技術和基于內容的過濾技術所產生的推薦結果。

接下來,我們使用一個加權混合推薦系統為給定的用戶產生推薦,基于用戶的協同過濾的權重為40%,基于item的協同過濾的權重為30%,基于內容的過濾技術的權重為30%(圖3)。相比使用單個算法的例子中僅僅向用戶推薦兩本書,在這個例子中,用戶將被推薦所有他們未評分過的三本書。

(點擊放大圖像)

圖3:使用加權混合推薦系統對用戶進行推薦。基于用戶的協同過濾的權重為40%,基于item的協同過濾的權重為30%,基于內容的過濾技術的權重為30%。

雖然混合方法解決CF方法和CB方法中存在的一些局限性(見表3),但它們同時也需要大量的工作來獲取系統中的不同算法之間的平衡。組合單個的推薦算法的另一種技術是集成方法,它需要學習一個函數(即集成器)來確定不同推薦算法組合的權重。值得注意的是,通常集成方法不僅僅結合了不同的算法,同時也組合了基于相同算法的不同變種(模型)。例如,在贏得Netflix競賽的解決方案中,研究者使用了來自于超過10種不同算法(流行度、領域方法、矩陣因子分解、受限玻爾茲曼機、回歸等)的100多種模型,并通過使用梯度boosted決策樹將它們組合到一個集成器中。

值得補充的是,基于流行度的方法對于新用戶的冷啟動問題也是一個很好的解決方法。這種方法在對item進行評分時使用某種形式流行度度量,例如最多的下載次數或購買量,然后向新用戶推薦這些受歡迎的item。當你有一個好的流行度度量的時候,這是一個基本的、但功能強大的方法,而且在與其他推薦算法進行比較時提供一個好的基線。在可以切換到其他能夠更好地建模用戶偏好的方法(協同過濾技術和基于內容的過濾技術)之前,流行度度量本身可以作為一種算法來增強一個推薦系統,以獲得足夠的活躍度和使用量。流行度的模型也可以組合在混合方法中,以幫助解決推薦系統的新用戶冷啟動問題。

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

編后語

《他山之石》是InfoQ中文站新推出的一個專欄,精選來自國內外技術社區和個人博客上的技術文章,讓更多的讀者朋友受益,本欄目轉載的內容都經過原作者授權。文章推薦可以發送郵件到editors@cn.infoq.com。

感謝杜小芳對本文的審校。

給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號: InfoQChina )關注我們,并與我們的編輯和其他讀者朋友交流(歡迎加入InfoQ讀者交流群 (已滿),InfoQ讀者交流群(#2) )。

</div>

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