Paper Reading:個性化推薦系統的研究進展


論文:個性化推薦系統的研究進展
發表時間:2009
發表作者:劉建國,周濤,汪秉宏
論文鏈接:論文鏈接

本文發表在2009,對經典個性化推薦算法做了基本的介紹,是非常好的一篇中文推薦系統方面的文章。
個性化推薦系統通過建立用戶與信息產品之間的二元關系 , 利用已有的選擇過程或相似性關系挖掘每個用戶潛在感興趣的對象 , 進而進行個性化推薦, 其 本質就是信息過濾
事實上, 它是目前解決信息過載問題最有效的工具 。文中根據推薦算法的不同, 分別介紹了協同過濾系統, 基於內容的推薦系統 , 混合推薦系統 , 以及當時興起的基於用戶—產品二部圖網絡結構的推薦系統。並結合這些推薦系統的特點以及存在的缺陷, 提出了改進的方法和未來可能的若干研究方向。

一個完整的推薦系統由 3 個部分組成:收集用戶信息的行為記錄模塊, 分析用戶喜好的模型分析模塊和推薦算法模塊。行為記錄模塊負責記錄用戶的喜好行為, 例如問答 、 評分 、 購買、 下載、 瀏覽等。模型分析模塊的功能能夠對用戶的行為記錄進行分析, 建立合適的模型來描述用戶的喜好信息 。最后是推薦算法模塊 , 利用后台的推薦算法, 實時地從產品集合中篩選出用戶感興趣的產品進行推薦 。其中 , 推薦算法模塊是推薦系統中最為核心的部分。

協同過濾系統

協同過濾系統是第一代被提出並得到廣泛應用的推薦系統 。 其核心思想可以分為兩部分:首先,是利用用戶的歷史信息計算用戶之間的相似性 ;然后 , 利用與目標用戶相似性較高的鄰居對其他產品的評價來預測目標用戶對特定產品的喜好程度。 系統根據這一喜好程度來對目標用戶進行推薦 。協同過濾推薦系統最大的優點是對推薦對象沒有特殊的要求, 能處理音樂、 電影等難以進行文本結構化表示的對象。
協同過濾推薦系統的算法可以分為兩類:基於記憶(memory-based)的和基於模型的(model-based)的算法。
基於記憶的算法根據系統中所有被打過分的產品信息進行預測。設C為用戶集合,S為產品集合,設\(r_{c,s}\)為用戶c對產品s的打分。設$ \hat C$ 為與用戶\(c\)相似度比較高的用戶集 , 預測\(r_{c, s}\)的函數形式有 :

\[r_{c, s}=\frac{1}{N} \sum_{e \in \hat C} r_{e,s}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) \\ r_{c, s}=k \sum_{\overline c \in \hat C} sim(c,\overline c) \circ r_{\overline c,s} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2) \\ r_{c, s}= \overline r_c + k\sum_{e \in \hat C} sim(c,\overline c) \circ (r_{\overline c,s}-\overline r_c) \ \ \ (3) \\ \]

其中 \(k\)為一個標准化因子,通常$ k=1/\sum_{\overline c \in \hat C} |sim(c,\overline c)|\(。 \)sim(i , j)\(表示用戶 i 和j 之間的相似性。用戶\)c\(的平均打分\)\overline r_c \(定義為\)\overline r_c=(1/|s_c|)\sum_{s \in S_c}r_{c,s}\(,其中\)S_c={s \in S|r_{c,s} \neq 0}$
如公式(1)所示 ,最簡單的計算方法就是直接計算鄰居打分的平均值 。然而, 最常用的計算方法卻是加權平均(2),其中 \(sim(c, \overline c)\)為用戶$ c \(和\)\overline c\(的相似性 。如果用戶\) c \(和\)\overline c\(越像 ,\)r_{\overline c,s}\(將有更大的權重用於預測\) r_{ c, s}$ 。由於(2)應用了標准化因子$ k $, 因此(2)可以用於計算不同的推薦系統中的用戶相似性度量 。應用(2)時 , 盡管使用了加權和, 但是並沒有考慮不同用戶的評價尺度不一樣的問題。(3)通過只考慮不同用戶平均喜好程度的偏差, 克服了評判尺度不一致的缺點 , 一般而言具有比(2)更高的精確度 。另外,偏好過濾是另一個克服用戶打分尺度不一的方法 。該方法注重於預測用戶的相對偏好 ,而不是評分絕對值。
協同過濾系統中已經采用了很多種方法計算用戶之間的相似度。這些算法中, 大部分都是基於用戶對共同喜好產品的打分。兩個最常用的方法是 Pearson 相關性夾角余弦。一個普遍采用的策略就是提前計算所有用戶的相似性 \(sim(x , y)\), 隔一段時間進行一次更新 。用戶需要推薦時,可以用事先計算好的相似性結果進行有效推薦。

許多改進算法已經被廣泛研究並且應用到標准的相關性計算和夾角余弦公式中 。例如缺席投票(default voting), 事例引申(case amplification)和加權優勢預測等。

基於模型的算法收集打分數據進行學習並推斷用戶行為模型, 進而對某個產品進行預測打分 。基於模型的協同過濾算法和基於記憶的算法的不同在於,基於模型的方法不是基於一些啟發規則進行預測計算 , 而是基於對已有數據應用統計和機器學習得到的模型進行預測。基於模型的協同過濾推薦系統有概率相關模型, 極大熵模型, 線性回歸, 基於聚類的 Gibbs 抽樣算法, Bayes 模型等等。

雖然協同過濾推薦系統得到了廣泛的應用 , 但是也面臨很多問題 , 例如如何對新用戶進行推薦或如何推薦新產品給用戶(冷啟動問題), 打分稀疏性問題, 算法可擴展性問題等。另外, 基於用戶的協同推薦算法隨着用戶數量的增多 , 計算量成線性加大 , 其性能會越來越差 。因此有的推薦系統采用基於產品相似性的協同過濾算法, 在產品的數量相對穩定的系統中, 這種方法是很有效的。

基於內容的推薦系統

歷史上 , 最初的基於內容的推薦(content-based recommendation)是協同過濾技術的延續與發展,它不需要依據用戶對項目的評價意見, 而是依據用戶已經選擇的產品內容信息計算用戶之間的相似性 , 進而進行相應的推薦。隨着機器學習等技術的完善, 當前的基於內容的推薦系統可以分別對用戶和產品建立配置文件, 通過分析已經購買(或瀏覽)過的內容, 建立或更新用戶的配置文件。系統可以比較用戶與產品配置文件的相似度 , 並直接向用戶推薦與其配置文件最相似的產品。

基於內容的推薦算法的根本在於信息獲取和信息過濾。因為在文本信息獲取與過濾方面的研究較為成熟, 現有很多基於內容的推薦系統都是通過分析產品的文本信息進行推薦。

總結起來, 基於內容推薦的優點有 :
(1)可以處理新用戶和新產品問題(冷啟動)。由於新用戶沒有選擇信息, 新產品沒有被選信息,因此協同過濾推薦系統無法處理這類問題。但是基於內容的推薦系統可以根據用戶和產品的配置文件進行相應的推薦 。
(2)實際系統中用戶對產品的打分信息非常少,協同過濾系統由於打分稀疏性的問題 , 受到很大的限制 。基於內容的推薦系統可以不受打分稀疏性問題的約束 。
(3)能推薦新出現的產品和非流行的產品 , 能夠發現隱藏的 “暗信息” 。
(4)通過列出推薦項目的內容特征, 可以解釋為什么推薦這些產品。使用戶在使用系統的時候具有很好的用戶體驗。
基於內容的推薦系統不可避免地受到信息獲取技術的約束 , 例如自動提取多媒體數據(圖形、視頻流、 聲音流等)的內容特征具有技術上的困難,這方面的相關應用受到了很大限制。下一節我們將介紹基於用戶 —產品二部圖網絡結構的推薦算法,該算法不僅可以不受信息挖掘技術的制約, 而且可以解決協同過濾推薦系統中打分稀疏性和算法可擴展性等問題 。但此類算法仍然難以從根本上解決冷啟動問題。

基於網絡結構的推薦算法

基於網絡結構的推薦算法不考慮用戶和產品的內容特征, 而僅僅把它們看成抽象的節點, 所有算法利用的信息都藏在用戶和產品的選擇關系之中。

基於二部分圖資源分配的推薦算法

考慮一個由\(m\)個用戶和\(n\)個產品構成的推薦系統, 其中如果用戶\(i\)選擇過產品\(j\), 就在\(i\)和$ j $之間連接一條邊 \(a_{ji} =1,(i =1 ,2 , …, m ;j =1 , 2 , …, n)\) 否則$ a_{ji} =0 \(。由此 ,這個系統可以用一個具有\) m +n $個節點的二部分圖表示。對於任意目標用戶 \(i\), 推薦算法的目的是把所有\(i\)沒有選擇過的產品按照$ i \(喜歡的程度進行排序 , 並且把排名靠前的那些產品推薦給\)i\(。假設\)i\(選擇過的所有產品, 都具有某種向\)i\(推薦其他產品的能力。這個抽象的能力可以看做位於相關產品上的某種可分的資源 ———擁有資源的產品會把更多的資源交給自己更青睞的產品。對於有\) m\(個用戶和\)n\(個產品的一般的推薦系統, 如果用表示\)w_{ij}\(產品\)j\(願意分配給產品\)i\(的資源配額, 可以得到\)w_{ij}$的一般表達式。

\[w_{ij} = \frac{1}{k_j} \sum_{l=1}^m \frac{a_{il}a_{jl}}{k_l} \]

其中\(k_j\)表示產品\(j\)的度(被多少用戶選擇過),$ k_l\(表示用戶\)l$的度(該用戶選擇過多少產品)。
對於給定的一個目標用戶, 將他選擇過的產品上的初始資源設為\(1\), 其他設為\(0\)。這樣得到一個 n維的 0/1 矢量, 代表針對該個體的初始資源分配構型。顯然 , 這個初始構型表達了個性化信息, 對於不同用戶是不一樣的。記這個矢量為\(f\), 通過上述過程得到的最終的資源分配矢量可以表示為

\[f′= Wf \]

把目標用戶沒有看過的所有產品, 按照矢量\(f′\)中對應元素的大小進行排序———值越大就說明該用戶越喜歡(這些產品在那些已經被選擇過的產品心目中總的分量最重)。排序靠前的產品, 可以推薦給目標用戶。

混合推薦系統

協同過濾, 基於內容 , 以及基於網絡結構的推薦算法在投入實際運營的時候都有各自的缺陷, 因此實際的推薦系統大多把不同的推薦算法進行結合, 提出了混合推薦算法。針對實際數據的研究顯示這些混合推薦系統具有比上述獨立的推薦系統更好的准確率。目前, 最常見的混合推薦系統是基於協同過濾和基於內容的 , 同時也發展出了其他類型的組合 , 下面簡單進行介紹。

獨立系統相互結合的推薦系統

建立混合推薦系統的方法之一即是獨立地應用協同過濾, 基於內容和基於網絡結構的算法進行推薦 。然后將兩種或多種系統的推薦結果結合起來 ,利用預測打分的線性組合進行推薦。又或者 ,只推薦某一時刻在某一個評價指標下表現更好的算法的結果。

在協同過濾系統中加入基於內容的算法

包括Fab在內的一些混合推薦系統都是基於內容的協同過濾算法 。即利用用戶的配置文件進行傳統的協同過濾計算 。用戶的相似度通過基於內容的配置文件計算而得, 而非共同打過分的產品的信息。這樣可以克服協同過濾系統中的稀疏性問題。這個方法的另一個好處就是不僅僅當產品被配置文件相似的用戶打了分才能被推薦 , 如果產品與用戶的配置文件很相似也會被直接推薦。

其他推薦算法

除了上文介紹的幾類推薦算法, 實際系統中還存在其他推薦算法。首先是關聯規則分析 。關聯規則關注用戶行為的關聯模式, 例如, 購買香煙的人大都會購買打火機, 因此可以在香煙和打火機之間建立關聯關系。通過這種關聯關系向用戶推薦其他產品。

結束語與展望

(1)協同過濾推薦系統面臨新用戶,新產品,打分稀疏性和算法可擴展性等問題 。基於模型的算法雖然可以在一定程度上解決算法的可擴展性問題, 但是該類算法往往比較適於用戶的興趣愛好比較穩定的情況 , 因為它要考慮用戶模型的學習過程以及模型的更新過程 ,對於最新信息的利用比協同過濾算法要差些。
(2)基於內容的推薦系統受到信息獲取技術 ,專業化程度過高等因素的制約。在基於內容的推薦系統中 , 用戶或產品特征集的內容都必須能被計算機自動抽取出來 , 因此該類算法受到信息獲取技術的嚴重制約。例如多媒體數據(圖形、 視頻流、 聲音流等)在特征自動提取上就存在很大困難。
(3)基於網絡結構的推薦算法受到新用戶、新產品等問題的制約。利用網絡結構的推薦算法的根本是要建立用戶—產品二部圖關聯網絡 。新用戶或新產品剛進入系統時沒有任何選擇或被選信息 , 系統無法與其他用戶或產品建立關聯網絡 , 因此也無法啟動基於網絡結構的推薦算法。如果考慮新用戶或產品的配置文件 , 可以在一定程度上解決新用戶或新產品問題 。同時關聯網絡的建立還受到用戶選擇關系建立時間的影響 。如果把用戶與產品的所有關聯關系都考慮在內, 就無法區分用戶的長期興趣點和短期興趣點 。過多地考慮長期興趣點會使得系統無法給出滿足用戶短期興趣的產品 , 從而使得推薦的准確度大大降低。如何在基於網絡的推薦中加入歷史時間的影響, 是一個值得關注的問題 。

除了上述討論之外, 目前所有的推薦系統都面臨着一些具有共性的問題。這些問題的解決可以從根本上極大地促進推薦系統的研究與應用 。例如, 用戶和產品的信息是動態改變的(新用戶的加入, 新產品的加入, 用戶選擇或評價已經存在的產品 ……), 如果每次改變都需要完全重新計算, 這個計算量是巨大的, 比較可行的方案是設計某種近似的動態算法,每次都只是局部改變原來的算法結果 , 而不需要完全的重新的計算 。針對不同的推薦系統 , 如何選擇合適的評價指標對推薦效果進行評判是推薦系統研究的重要問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM