推荐算法综述(四)
混合方法組合了用戶和項目內容特征以及用戶的歷史行為數據,從而從兩種數據中提取信息。一個混合推薦系統如果結合了算法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。當你有一個好的流行度度量的時候,這是一個基本的、但功能強大的方法,而且在與其他推薦算法進行比較時提供一個好的基線。在可以切換到其他能夠更好地建模用戶偏好的方法(協同過濾技術和基于內容的過濾技術)之前,流行度度量本身可以作為一種算法來增強一個推薦系統,以獲得足夠的活躍度和使用量。流行度的模型也可以組合在混合方法中,以幫助解決推薦系統的新用戶冷啟動問題。
本文是一篇翻譯稿,讀者也可以參考英文原文。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結