上個月寫過一篇產品推薦的文章,詳情請見《我所瞭解的產品推薦》,內容很泛,多為工作心得。本周讀了幾篇相關的論文,收穫頗多,分享點乾貨。
以下內容摘自《個人化推薦系統的研究進展》,該文發表於2009年1月的《自然科學進展》專題評述,作者是劉建國、周濤、汪秉宏。
我略去了具體的演算法和許多公式,重點看原理、思路和比較。
互連網技術的迅速發展使得大量的資訊同時呈現在我們面前,傳統的搜尋演算法只能呈現給所有的使用者一樣的排序結果,無法針對不同使用者的興趣愛好提供相應的服務。資訊的爆炸使得資訊的利用率反而降低,這種現象被稱之為資訊超載。個人化推薦,包括個人化搜尋,被認為是當前解決這個問題最有效工具之一。推薦問題從根本上說是代替使用者評估它從未看過的產品,這些產品包括書、電影、CD、網頁、甚至可以是飯店、音樂、繪畫等等。
個人化推薦系統通過建立使用者與資訊產品之間的二元關係,利用已有的選擇過程或相似性關係挖掘每個使用者潛在感興趣的對象,進而進行個人化推薦。高效的推薦系統可以挖掘使用者潛在的消費傾向,為眾多的使用者提供個人化服務。 一個完整的推薦系統由3個部分組成:
收集使用者資訊的行為記錄模組
分析使用者喜好的模型分析模組
推薦演算法模組
推薦演算法模組是最核心的部分。根據推薦演算法的不同,推薦系統可以分為如下幾類:
協同過濾(collaborative filtering)系統
基於內容(content-based)的推薦系統
基於使用者-產品二部圖網路結構(network-based)的推薦系統
混合(hybrid)推薦系統
其他
1. 協同過濾系統
第一代被提出並得到廣泛應用的推薦系統。如amazon的書籍推薦,Jester的笑話推薦,等等。
1)核心思想:利用使用者的曆史資訊計算使用者之間的相似性——>利用與目標使用者相似性較高的使用者對其他產品的評價來預測目標使用者對特定產品的喜好程度——>根據喜好程度來對目標使用者進行推薦。
在計算使用者之間相似性時,大部分都是基於使用者對共同喜好產品的打分。最常用的方法是Pearson相關性和夾角餘弦。
協同過濾推薦系統的演算法可以分為兩類,基於記憶(memory-based)&基於模型(model-based)。前者是根據系統中所有被打過分的產品資訊進行預測,注重於預測使用者的相對偏好而不是評分絕對值;後者是收集打分資料進行學習並推斷使用者行為模型,再對某個產品進行預測打分。
2)優點:
發現使用者潛在的興趣偏好,推薦新資訊
能推薦難以進行內容分析的產品
3)缺點:
由於是基於使用者對產品的評分,所以對新使用者進行推薦或者是對使用者推薦新產品,精度不高
隨著使用者量的增多,計算量呈線性增加,影響系統的效能
2. 基於內容的推薦系統
是協同過濾技術的延續與發展。
1)核心思想:分別對使用者和產品建立設定檔——>比較使用者與產品設定檔的相似性——>推薦與其設定檔最相似的產品。
例如,在電影推薦中,基於內容的系統首先分析使用者已經看過的打分較高的電影的共性(演員、導演、風格等),再推薦與這些使用者感興趣的電影內容相似性很高的其他電影。基於內容的推薦演算法根本在於資訊擷取和資訊過濾。因為在文本資訊擷取與過濾方面的研究較為成熟,現有很多基於內容的推薦系統都是通過分析產品的文本資訊進行推薦。 在資訊擷取中,最常用的是TF-IDF方法。
2)優點:
能處理新使用者、新產品的問題(冷啟動)
實際系統中使用者對產品的打分資訊非常少,基於內容的推薦系統可以不受打分稀疏性問題的約束
能推薦新出現的產品和非流行的產品,發現隱藏資訊
通過列出推薦內容的特徵,可以解釋為什麼推薦這些產品,使使用者在使用時具有更好的使用者體驗
3)缺點:
受到資訊擷取技術的約束,例如自動提取多媒體資料(圖形、視頻流、聲音流等)的內容特徵具有技術上的困難
如果兩個不同的產品恰好用相同的特徵詞表示,這兩個產品就無法區分
如果一個系統只推薦與使用者的設定檔高度相關的產品,那麼推薦的只能是與使用者之前購買過的產品非常相似的產品,無法保證推薦的多樣性
3. 基於網路結構的推薦演算法
僅僅把使用者和產品的內容特徵看成抽象的節點,所有演算法利用的資訊都藏在使用者和產品的選擇關係中。
1)核心思想:建立使用者—產品二部圖關連網絡
對於任意目標使用者i,假設i選擇過所有的產品,每種產品都具有向i推薦其他產品的能力,把所有i沒有選擇過的產品按照他喜歡的程度進行排序,把排名靠前的推薦給i。
在同樣的使用者喜好程度下,推薦冷門的產品要比推薦熱門的產品意義更大。在同樣精確度下,推薦的產品數量越少越好。
提高精確度的方法還有:
去除重複性
通過引入耦合閾值(即只考慮相似性大於或等於給定閾值的使用者以及和這些使用者串連的產品)
2)優點:開闢了推薦演算法研究的新方向
3)缺點:
同樣面臨著新使用者新產品的問題。新使用者或新產品剛進入系統時沒有任何選擇或被選資訊,系統無法與其他使用者或產品建立關連網絡
受到使用者選擇關係建立時間的影響,如果把使用者與產品的所有關聯關係都考慮在內,無法區分出長期興趣和短期興趣點,過多地考慮長期興趣點會使系統無法給出滿足使用者短期興趣的產品,大大降低推薦準確度
4. 混合推薦
將上述幾種推薦方法有機結合,實際的推薦系統中最常見的是基於協同過濾和基於內容的。
1)獨立系統相互結合
獨立的應用協同過濾,基於內容和基於網路結構的演算法進行推薦,然後將兩種或多種系統的推薦結果結合,利用預測打分的線性組合進行推薦。或者,只推薦某一時刻在某一評價指標下表現更好的演算法的結果。
2)在協同過濾系統中加入基於內容的演算法
利用使用者的設定檔進行傳統的協同過濾計算,使用者的相似性通過基於內容的設定檔計算得出,而非共同打過分的產品的資訊。這樣可以克服協同過濾系統中的稀疏性問題,另外,不僅僅是當產品被設定檔相似的使用者打了分才能被推薦,如果產品與使用者的設定檔很相似也會被直接推薦。
5. 其他方法
1)關聯規則分析:關注使用者行為的關聯模式。如買了香煙的人大多會購買打火機,因此可以在香煙和打火機間建立關聯關係,通過這種關係推薦其他產品。
2)基於社會網路分析的推薦演算法:如利用使用者的購買行為建立他對產品的偏好相似性,依此向使用者推薦產品並預測產品的銷售情況,從而加強使用者黏性。