上個月寫過一篇產品推薦的文章,詳情請見《我所了解的產品推薦》,內容很泛,多為工作心得。本周讀了幾篇相關的論文,收獲頗多,分享點干貨。
以下內容摘自《個性化推薦系統的研究進展》,該文發表於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)基於社會網絡分析的推薦算法:如利用用戶的購買行為建立他對產品的偏好相似性,依此向用戶推薦產品並預測產品的銷售情況,從而加強用戶黏性。