李 改,李 磊
(1.順德職業(yè)技術學院電子與信息工程系,廣東順德 528333;2.中山大學信息科學與技術學院,廣東廣州 510006;3.中山大學軟件研究所,廣東廣州 510275)
推薦系統(tǒng)通過收集和分析用戶的各種信息來學習用戶的興趣和行為模式,根據(jù)分析得到的用戶的興趣和行為模式,來為用戶推薦他所需要的服務。這些系統(tǒng)的例子包括:CiteULike論文推薦系統(tǒng)(www.citeulike.org)為用戶推薦各種其可能感興趣的論文;Netflix電影出租系統(tǒng) (www.netflix.com)為用戶推薦各種其可能喜歡的電影。Google、Baidu、Yahoo等為用戶提供個性化的新聞推薦和搜索服務。推薦系統(tǒng)中運用最廣泛的是基于協(xié)同過濾的推薦算法[1-4]。
協(xié)同過濾的算法核心是分析用戶興趣,在用戶群中找到與指定用戶的相似 (興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統(tǒng)對該指定用戶對此信息的喜好程度預測。近年來協(xié)同過濾的算法在國內(nèi)外得到了廣泛研究。傳統(tǒng)的協(xié)同過濾算法面臨數(shù)據(jù)稀疏性問題和評分數(shù)據(jù)的不平衡問題。許多模型提出通過引入額外的信息來解決這些問題以增強推薦效果:如推薦項目的內(nèi)容信息[4],用戶的社交網(wǎng)絡信息[5-6],用戶本身的屬性信息[7]等。協(xié)同主題模型 (CTR)就是這類模型中最新的一種模型[4-5]。CTR模型通過在傳統(tǒng)的基于矩陣分解的協(xié)同過濾算法中引入潛在狄利克雷分布(LDA)來學習文本形式的推薦項目的潛在主題分布[8],從而增強推薦效果。文本形式的推薦項目在現(xiàn)實生活中廣泛存在,如科學文獻,網(wǎng)頁,微博等。如何有效的推薦這類文本形式的對象給所需要的用戶是當前協(xié)同過濾領域的一個重要研究課題。
本文的主要貢獻是:
①在CTR模型的基礎上,提出了一種新的基于雙向主題模型的協(xié)同過濾算法 (DCTR);
②提出了兩種學習用戶的主題分布向量的方法,并實驗驗證了兩種方法的優(yōu)劣。
③實驗驗證了DCTR算法的有效性。
本文具體內(nèi)容安排如下:第1節(jié)介紹基本定義、LDA模型和CTR模型簡介;第2節(jié)詳細介紹本文所提出的基于雙向主題模型的協(xié)同過濾算法。第3節(jié)針對所提出的算法進行實驗驗證,并對實驗結(jié)果進行分析;最后第4節(jié)是本文的總結(jié)。
在本文中矩陣用斜體大寫字母表示 (如:R),標量用小寫字母表示 (如:i,j)。給定一個矩陣R,Rij表示它的一個元素,Ri.表示矩陣R的第i行,R.j表示矩陣R的第j列,RT表示矩陣R的轉(zhuǎn)置。R-1表示矩陣R的逆。在本文中給定的矩陣R表示具有I個用戶、J個對象的評分矩陣,矩陣U、V分別表示用戶和推薦對象的特征矩陣。
潛在狄利克雷分布 (LDA)是一種最簡單的主題模型,圖1是LDA模型的概率圖。
圖1 LDA模型Fig.1 LDA model
假定有K個主題,即β=β1:K,是一個向量,其中的每個元素值表示一個詞表的分布。這里的參數(shù)α是一個超參數(shù),用于控制主題分布θ。LDA模型的運行過程如以下算法1所示。
算法1 LDA模型的運行過程
輸入:超參數(shù)α,向量β。
輸出:每個文本形式的推薦項目的主題分布θj。對于每個文本形式的推薦項目j:
①得到主題分布θj,θj滿足參數(shù)為α的狄利克雷分布,即 θj~Dirichlet(α)。
②對推薦項目中的每個單詞wjn
(i)得到該單詞的主題zjn,zjn服從參數(shù)為θj的多項式分布,即zjn~Mult(θj)。
(ii)得到單詞wjn,wjn服從參數(shù)為βzjn的多項式分布,即wjn~Mult(βzjn)。
對于文本形式的推薦項目,我們可以運用LDA模型學習該推薦項目的主題分布向量θj。從而可以對推薦項目j的特征向量實施約束,使其滿足均值為 θj的正態(tài)分布,即Vj~N(θj,λ-1vIK),其中IK表示秩為K的單位矩陣。在協(xié)同過濾算法中引入LDA模型模型可以有效提高推薦性能。LDA模型的具體詳細算法描述可見參考文獻 [8]。
CTR模型是一種基于主題模型的協(xié)同過濾算法,圖2是CTR模型的概率圖。
圖2 CTR模型Fig.2 CTR model
CTR模型綜合了傳統(tǒng)的協(xié)同過濾算法和概率主題模型的優(yōu)點。其中用戶的特征向量符合均值為0的正態(tài)分布,用于表示用戶的興趣;推薦項目符合均值為θ的正態(tài)分布,其潛在方差為ε。CTR模型的運行過程如以下算法2所示。
算法2 CTR模型的運行過程
輸入:用戶的正則化系數(shù)λu,推薦項目的正則化系數(shù)λv。
輸出:矩陣R的逼近矩陣X。
②對于每個文本形式的推薦項目j;
(i)運用算法1所描述的LDA模型得到其主題分布 θj。
(ii)得到推薦項目的潛在方差εj,εj滿足分布N(0IK)。
③對于每個評分點(i,j),得到相應的預測評分
在這里參數(shù)Cij是對于評分點的值Xij的信任參數(shù),參數(shù)Cij的值越大,表示評分值Xij越可信;當參數(shù)Cij的值為0時,可解釋為用戶i對推薦項目j不感興趣或沒有留意到項目j。這就是有名的單類協(xié)同過濾問題。我們與文獻 [4-5,9-11]中的處理方式一樣,來為參數(shù)Cij賦予一定的權值
這里的a,b是控制參數(shù),滿足1≥a>b>0。
在CTR模型中,我們只是考慮對推薦項目j的特征向量實施約束,使其滿足均值為推薦項目j的主題分布向量的正態(tài)分布,即Vj~N(θj,IK);其實我們也可以對用戶的特征向量實施約束,使其也符合以某種主題分布向量為均值的正態(tài)分布?;谶@個思想,我們提出了一種新的基于雙向主題模型的協(xié)同過濾算法DCTR。
DCTR模型是一種基于雙向主題模型的協(xié)同過濾算法,圖3是DCTR模型的概率圖。
圖3 DCTR模型Fig.3 DCTR model
DCTR從用戶和推薦項目這兩個方面,分別對用戶的特征向量和推薦項目的特征向量進行約束,使他們都符合以某種主題分布向量為均值的正態(tài)分布,即Ui~N(θi,IK),Vj~N(θjIK)。其中θi為用戶Ui的主題分布向量,θj為推薦項目Vj的主題分布向量。DCTR模型的運行過程如以下算法3所示。
算法3 DCTR模型的運行過程
輸入:用戶的正則化系數(shù)λu,推薦項目的正則化系數(shù)λv。
輸出:矩陣R的逼近矩陣X。
①對于每個用戶i;
(i)得到其主題分布θi。θi的值有兩種獲得方法:
a)取用戶i所評過的項目的主題分布向量的均值作為用戶i的主題分布向量。
b)把用戶i所評過的項目的描述文本的集合作為用戶i的描述文本內(nèi)容,重新運用算法1所描述的LDA模型來學習用戶i的主題分布向量。
(ii)得到用戶的潛在方差 εi,εi滿足分布N(0IK)。
(iii)得到用戶的特征向量Ui=θi+εi。即:Ui~N(θiIK)。
②對于每個文本形式的推薦項目j;
(i)運用算法1所描述的LDA模型得到其主題分布 θj。
(ii)得到推薦項目的潛在方差εj,εj滿足分布N(0IK)。
(iii)得到推薦項目的特征向量Vj=θj+εj。即:Vj~N(θjIK)。
③對于每個評分點(i,j),得到相應的預測評分:
為了學習模型的參數(shù),我們在這里提出了一種與文獻[4-5]中類似的EM算法。模型的參數(shù)我們可以通過最大化公式 (2)得到
同理,得到求解Vj.的公式。
在這里Ci表示一個以矩陣C的第i行為對角元素,其它元素值為0的對角矩陣。Cj的定義與Ci的定義一致。從公式 (3)、(4)不難看出用戶i的主題分布向量θi影響用戶i的特征向量Ui,推薦項目j的主題分布向量θj影響推薦項目的特征向量Vj。
反復迭代運用公式 (3)、(4)更新U、V,直到本算法計算出的recall@M值收斂或迭代次數(shù)足夠多而結(jié)束迭代。X=UVT,矩陣X即為矩陣R的逼近矩陣。
本節(jié)首先介紹本文實驗所采用的數(shù)據(jù)集及評價標準。接著給出了本文所提出的基于雙向主題模型的協(xié)同過濾算法的參數(shù)對實驗結(jié)果的影響,并把所提算法的試驗結(jié)果與其他幾個經(jīng)典算法的實驗結(jié)果進行比較。
在本實驗中,我們使用了與文獻 [4]相同的CiteULike數(shù)據(jù)集。
CiteULike數(shù)據(jù)集是一個有關科學研究者參考科學文獻的數(shù)據(jù)集。在這個數(shù)據(jù)集中每個用戶維護有一個他敢興趣的文獻列表。這個數(shù)據(jù)集包括了5 551個用戶對16 980篇科學文獻的204 986個引用記錄。這是一個0/1數(shù)據(jù)集。矩陣的稀疏度是99.8%。平均來說,每個用戶引用了37篇文獻,引用的范圍最少10篇,最多403篇。93%的用戶引用的文獻數(shù)少于100篇。對于每篇文獻我們把它的題目和摘要合起來作為它的描述性文本,我們移除其中的標點符號,通過TF-IDF方法選擇其中的8 000個單詞構(gòu)成詞庫。這些文獻的發(fā)表時間是從2004年到2010年。平均來說,每篇文獻出現(xiàn)在12個用戶的引用列表中,最少出現(xiàn)在一個用戶的引用列表,最多出現(xiàn)在321個用戶的引用列表。97%的文獻出現(xiàn)在用戶列表的次數(shù)少于40次。
我們采用5折交叉確認的方式來進行試驗。對于出現(xiàn)在用戶的列表中超過5次的文獻,我們把它的評分點 (0和1)平均的分為5份。我們迭代的選擇其中的4份為訓練集,剩下的一份為測試集。對于那些出現(xiàn)在用戶的文獻列表中少于5次的文獻都放入訓練集。這就保住了測試集中的每個文獻都出現(xiàn)在訓練集中。對所有的用戶求5次5折交叉確認的試驗結(jié)果,取平均值作為該用戶的最終試驗結(jié)果,所有用戶的實驗結(jié)果求平均作為整個系統(tǒng)的最終試驗結(jié)果。
本文實驗采用 recall@M 作為評價標準[4-5],recall@M通過對模型的預測值進行排序,計算排序后的前M個項目中占所有該用戶的測試項的比例來作為試驗結(jié)果。當M值取某個較小的固定值的情況下,recall@M越大系統(tǒng)性能越好,這個系統(tǒng)的recall@M值為每個用戶的recall@M值的平均值。recall@M的定義如下:
本實驗中的所有實驗結(jié)果recall@M的M值均取值為200。參數(shù)Cij的取值為a=1,b=0.01。3.3.1 DCTR模型的參數(shù)對模型性能的影響分析從圖4和圖5可以看出隨著λu和λv的增大,DCTR模型的性能均先升高,后下降。說明用戶和推薦項目的特征向量偏離他們的主題分布向量不能太遠,也不能太近,有一個臨界值。從本模型的實驗可以看出,λu和λv的最優(yōu)值均是100。
3.3.2 基于DCTR模型的算法和幾個經(jīng)典的CF算法的性能比較 在這里我們將把DCTR模型和幾個經(jīng)典的CF算法的性能比較。本實驗中要比較的幾個CF算法分別是:
CTR算法,是文獻 [4]中所提出的一種基于主題模型的協(xié)同過濾算法,它只是對推薦項目的特征向量實施約束。通過實驗交叉驗證,在該算法中λu取值為0.01,λv取值為100時,算法性能最好。
CTRUI算法,是基于本文所提出的DCTR模型的協(xié)同過濾算法,在該算法中,用戶的主題分布向量取值為他所評過的所有項目的主題分布向量的均值。在該算法中λu和λv均取最優(yōu)值100。
WPMF算法,是加權的基于概率矩陣分解的協(xié)同過濾算法[9-11]。通過實驗交叉驗證,在該算法中λu和λv取值為0.01時,算法性能最好。
CTRUIReal算法,是基于本文所提出的DCTR模型的協(xié)同過濾算法,在該算法中,我們把某個用戶評過的所有推薦項目的文本描述的集合作為該用戶的文本描述。通過對每個用戶運行LDA算法,來得到該用戶的主題分布向量。在該算法中λu和λv均取最優(yōu)值100。
圖6中橫軸表示各個算法的迭代次數(shù),縱軸表示各個算法的recall值。
圖6 基于DCTR模型的算法和幾個經(jīng)典的CF算法的性能比較Fig.6 The performance comparation of DCTR model and several classical CF methods
從圖6可以看出基于DCTR模型的兩個協(xié)同過濾算法CTRUIReal算法和CTRUI算法在recall性能上均優(yōu)于CTR算法和WPMF算法,隨著迭代次數(shù)的增加性能的差異越來越明顯,這說明對用戶和推薦項目的特征向量分別引入主題模型進行約束能夠有效提高算法性能。并且CTRUIReal算法的性能優(yōu)于CTRUI算法的性能,這說明相比于取評過的推薦項目的主題分布向量的均值作為該用戶的主題分布向量,通過主題模型直接學習用戶的主題分布向量更為可靠。還可看出基于DCTR模型的兩個協(xié)同過濾算法CTRUIReal算法和CTRUI算法的收斂速度也明顯快過CTR算法和WPMF算法,這也進一步說明了本文所提算法的有效性。
本文在傳統(tǒng)的矩陣分解模型和主題模型的基礎上提出了一種新的基于雙向主題模型的協(xié)同過濾算法,它運用LDA算法從用戶和推薦項目兩個方向?qū)τ脩艉屯扑]項目的特征向量進行約束,以便更有效的推薦文本形式的對象給所需要的用戶。在真實的數(shù)據(jù)集上的實驗結(jié)果表明:在recall@M性能指標下,基于本文所提出的DCTR模型的協(xié)同過濾算法的性能明顯優(yōu)于幾個傳統(tǒng)的協(xié)同過濾算法。在以后的工作中我們還將研究本文所提算法的并行化問題。
[1]WU J L.Collaborative filtering on the netflix prize dataset[D].Peking University,2010.
[2]RICCI F,ROKACH L,SHAPIRA B,et al.Recommender system handbook[J].Springer,2011,12 -120.
[3]羅辛,歐陽元新,熊璋,等.通過相似度支持度優(yōu)化基于K近鄰的協(xié)同過濾算法[J].計算機學報,2010,33(8):99-105.
[4]WANG C,BLEI D.Collaborative topic modeling for recommending scientific articles[C]∥In ACM KDD,2011,448-456.
[5]PURUSHOTHAM S,LIU Y,KUO C J.Collaborative topic regression with social matrix factorization for recommendation systems[C]∥In ACM ICML,2012,1255-1265.
[6]MA H,ZHOU D,LIU C,et al.Recommender system with social regularization[C]∥In ACM WSDM,2011,287–296.
[7]LI Y,HU J,ZHAI C,et al.Improving one-class collaborative filtering by incorporating rich user information[C]∥In ACM CIKM,2010,959–968.
[8]BLEI D,NG A,JORDAN M.Latent Dirichlet allocation[J].Journal of Machine Learning Research,2002,993-1022.
[9]PAN R,ZHOU Y,CAO B,et al.On e-class collaborative filtering[C]∥In IEEE ICDM,2008,502-511.
[10]PAN R,MARTIN S.Mind the gaps:weighting the unknown in large-scale one-class collaborative filtering[C]∥In ACM KDD,2009,667-675.
[11]YANG X,STECK H,GUO Y,et al.On top-k recommendation using social networks[C]∥In ACM RecSys,2012,67-74.