李 改,李 磊
(1.順德職業(yè)技術(shù)學(xué)院電子與信息工程系,廣東順德 528333;2.中山大學(xué)信息科學(xué)與技術(shù)學(xué)院,廣東廣州 510006;3.中山大學(xué)軟件研究所,廣東廣州 510275)
推薦系統(tǒng)通過收集和分析用戶的各種信息來學(xué)習(xí)用戶的興趣和行為模式,根據(jù)分析得到的用戶的興趣和行為模式,來為用戶推薦他所需要的服務(wù)。這些系統(tǒng)的例子包括:CiteULike論文推薦系統(tǒng)(www.citeulike.org)為用戶推薦各種其可能感興趣的論文;Netflix電影出租系統(tǒng) (www.netflix.com)為用戶推薦各種其可能喜歡的電影。Google、Baidu、Yahoo等為用戶提供個(gè)性化的新聞推薦和搜索服務(wù)。推薦系統(tǒng)中運(yùn)用最廣泛的是基于協(xié)同過濾的推薦算法[1-4]。
協(xié)同過濾的算法核心是分析用戶興趣,在用戶群中找到與指定用戶的相似 (興趣)用戶,綜合這些相似用戶對(duì)某一信息的評(píng)價(jià),形成系統(tǒng)對(duì)該指定用戶對(duì)此信息的喜好程度預(yù)測(cè)。近年來協(xié)同過濾的算法在國內(nèi)外得到了廣泛研究。傳統(tǒng)的協(xié)同過濾算法面臨數(shù)據(jù)稀疏性問題和評(píng)分?jǐn)?shù)據(jù)的不平衡問題。許多模型提出通過引入額外的信息來解決這些問題以增強(qiáng)推薦效果:如推薦項(xiàng)目的內(nèi)容信息[4],用戶的社交網(wǎng)絡(luò)信息[5-6],用戶本身的屬性信息[7]等。協(xié)同主題模型 (CTR)就是這類模型中最新的一種模型[4-5]。CTR模型通過在傳統(tǒng)的基于矩陣分解的協(xié)同過濾算法中引入潛在狄利克雷分布(LDA)來學(xué)習(xí)文本形式的推薦項(xiàng)目的潛在主題分布[8],從而增強(qiáng)推薦效果。文本形式的推薦項(xiàng)目在現(xiàn)實(shí)生活中廣泛存在,如科學(xué)文獻(xiàn),網(wǎng)頁,微博等。如何有效的推薦這類文本形式的對(duì)象給所需要的用戶是當(dāng)前協(xié)同過濾領(lǐng)域的一個(gè)重要研究課題。
本文的主要貢獻(xiàn)是:
①在CTR模型的基礎(chǔ)上,提出了一種新的基于雙向主題模型的協(xié)同過濾算法 (DCTR);
②提出了兩種學(xué)習(xí)用戶的主題分布向量的方法,并實(shí)驗(yàn)驗(yàn)證了兩種方法的優(yōu)劣。
③實(shí)驗(yàn)驗(yàn)證了DCTR算法的有效性。
本文具體內(nèi)容安排如下:第1節(jié)介紹基本定義、LDA模型和CTR模型簡(jiǎn)介;第2節(jié)詳細(xì)介紹本文所提出的基于雙向主題模型的協(xié)同過濾算法。第3節(jié)針對(duì)所提出的算法進(jìn)行實(shí)驗(yàn)驗(yàn)證,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析;最后第4節(jié)是本文的總結(jié)。
在本文中矩陣用斜體大寫字母表示 (如:R),標(biāo)量用小寫字母表示 (如:i,j)。給定一個(gè)矩陣R,Rij表示它的一個(gè)元素,Ri.表示矩陣R的第i行,R.j表示矩陣R的第j列,RT表示矩陣R的轉(zhuǎn)置。R-1表示矩陣R的逆。在本文中給定的矩陣R表示具有I個(gè)用戶、J個(gè)對(duì)象的評(píng)分矩陣,矩陣U、V分別表示用戶和推薦對(duì)象的特征矩陣。
潛在狄利克雷分布 (LDA)是一種最簡(jiǎn)單的主題模型,圖1是LDA模型的概率圖。
圖1 LDA模型Fig.1 LDA model
假定有K個(gè)主題,即β=β1:K,是一個(gè)向量,其中的每個(gè)元素值表示一個(gè)詞表的分布。這里的參數(shù)α是一個(gè)超參數(shù),用于控制主題分布θ。LDA模型的運(yùn)行過程如以下算法1所示。
算法1 LDA模型的運(yùn)行過程
輸入:超參數(shù)α,向量β。
輸出:每個(gè)文本形式的推薦項(xiàng)目的主題分布θj。對(duì)于每個(gè)文本形式的推薦項(xiàng)目j:
①得到主題分布θj,θj滿足參數(shù)為α的狄利克雷分布,即 θj~Dirichlet(α)。
②對(duì)推薦項(xiàng)目中的每個(gè)單詞wjn
(i)得到該單詞的主題zjn,zjn服從參數(shù)為θj的多項(xiàng)式分布,即zjn~Mult(θj)。
(ii)得到單詞wjn,wjn服從參數(shù)為βzjn的多項(xiàng)式分布,即wjn~Mult(βzjn)。
對(duì)于文本形式的推薦項(xiàng)目,我們可以運(yùn)用LDA模型學(xué)習(xí)該推薦項(xiàng)目的主題分布向量θj。從而可以對(duì)推薦項(xiàng)目j的特征向量實(shí)施約束,使其滿足均值為 θj的正態(tài)分布,即Vj~N(θj,λ-1vIK),其中IK表示秩為K的單位矩陣。在協(xié)同過濾算法中引入LDA模型模型可以有效提高推薦性能。LDA模型的具體詳細(xì)算法描述可見參考文獻(xiàn) [8]。
CTR模型是一種基于主題模型的協(xié)同過濾算法,圖2是CTR模型的概率圖。
圖2 CTR模型Fig.2 CTR model
CTR模型綜合了傳統(tǒng)的協(xié)同過濾算法和概率主題模型的優(yōu)點(diǎn)。其中用戶的特征向量符合均值為0的正態(tài)分布,用于表示用戶的興趣;推薦項(xiàng)目符合均值為θ的正態(tài)分布,其潛在方差為ε。CTR模型的運(yùn)行過程如以下算法2所示。
算法2 CTR模型的運(yùn)行過程
輸入:用戶的正則化系數(shù)λu,推薦項(xiàng)目的正則化系數(shù)λv。
輸出:矩陣R的逼近矩陣X。
②對(duì)于每個(gè)文本形式的推薦項(xiàng)目j;
(i)運(yùn)用算法1所描述的LDA模型得到其主題分布 θj。
(ii)得到推薦項(xiàng)目的潛在方差εj,εj滿足分布N(0IK)。
③對(duì)于每個(gè)評(píng)分點(diǎn)(i,j),得到相應(yīng)的預(yù)測(cè)評(píng)分
在這里參數(shù)Cij是對(duì)于評(píng)分點(diǎn)的值Xij的信任參數(shù),參數(shù)Cij的值越大,表示評(píng)分值Xij越可信;當(dāng)參數(shù)Cij的值為0時(shí),可解釋為用戶i對(duì)推薦項(xiàng)目j不感興趣或沒有留意到項(xiàng)目j。這就是有名的單類協(xié)同過濾問題。我們與文獻(xiàn) [4-5,9-11]中的處理方式一樣,來為參數(shù)Cij賦予一定的權(quán)值
這里的a,b是控制參數(shù),滿足1≥a>b>0。
在CTR模型中,我們只是考慮對(duì)推薦項(xiàng)目j的特征向量實(shí)施約束,使其滿足均值為推薦項(xiàng)目j的主題分布向量的正態(tài)分布,即Vj~N(θj,IK);其實(shí)我們也可以對(duì)用戶的特征向量實(shí)施約束,使其也符合以某種主題分布向量為均值的正態(tài)分布。基于這個(gè)思想,我們提出了一種新的基于雙向主題模型的協(xié)同過濾算法DCTR。
DCTR模型是一種基于雙向主題模型的協(xié)同過濾算法,圖3是DCTR模型的概率圖。
圖3 DCTR模型Fig.3 DCTR model
DCTR從用戶和推薦項(xiàng)目這兩個(gè)方面,分別對(duì)用戶的特征向量和推薦項(xiàng)目的特征向量進(jìn)行約束,使他們都符合以某種主題分布向量為均值的正態(tài)分布,即Ui~N(θi,IK),Vj~N(θjIK)。其中θi為用戶Ui的主題分布向量,θj為推薦項(xiàng)目Vj的主題分布向量。DCTR模型的運(yùn)行過程如以下算法3所示。
算法3 DCTR模型的運(yùn)行過程
輸入:用戶的正則化系數(shù)λu,推薦項(xiàng)目的正則化系數(shù)λv。
輸出:矩陣R的逼近矩陣X。
①對(duì)于每個(gè)用戶i;
(i)得到其主題分布θi。θi的值有兩種獲得方法:
a)取用戶i所評(píng)過的項(xiàng)目的主題分布向量的均值作為用戶i的主題分布向量。
b)把用戶i所評(píng)過的項(xiàng)目的描述文本的集合作為用戶i的描述文本內(nèi)容,重新運(yùn)用算法1所描述的LDA模型來學(xué)習(xí)用戶i的主題分布向量。
(ii)得到用戶的潛在方差 εi,εi滿足分布N(0IK)。
(iii)得到用戶的特征向量Ui=θi+εi。即:Ui~N(θiIK)。
②對(duì)于每個(gè)文本形式的推薦項(xiàng)目j;
(i)運(yùn)用算法1所描述的LDA模型得到其主題分布 θj。
(ii)得到推薦項(xiàng)目的潛在方差εj,εj滿足分布N(0IK)。
(iii)得到推薦項(xiàng)目的特征向量Vj=θj+εj。即:Vj~N(θjIK)。
③對(duì)于每個(gè)評(píng)分點(diǎn)(i,j),得到相應(yīng)的預(yù)測(cè)評(píng)分:
為了學(xué)習(xí)模型的參數(shù),我們?cè)谶@里提出了一種與文獻(xiàn)[4-5]中類似的EM算法。模型的參數(shù)我們可以通過最大化公式 (2)得到
同理,得到求解Vj.的公式。
在這里Ci表示一個(gè)以矩陣C的第i行為對(duì)角元素,其它元素值為0的對(duì)角矩陣。Cj的定義與Ci的定義一致。從公式 (3)、(4)不難看出用戶i的主題分布向量θi影響用戶i的特征向量Ui,推薦項(xiàng)目j的主題分布向量θj影響推薦項(xiàng)目的特征向量Vj。
反復(fù)迭代運(yùn)用公式 (3)、(4)更新U、V,直到本算法計(jì)算出的recall@M值收斂或迭代次數(shù)足夠多而結(jié)束迭代。X=UVT,矩陣X即為矩陣R的逼近矩陣。
本節(jié)首先介紹本文實(shí)驗(yàn)所采用的數(shù)據(jù)集及評(píng)價(jià)標(biāo)準(zhǔn)。接著給出了本文所提出的基于雙向主題模型的協(xié)同過濾算法的參數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響,并把所提算法的試驗(yàn)結(jié)果與其他幾個(gè)經(jīng)典算法的實(shí)驗(yàn)結(jié)果進(jìn)行比較。
在本實(shí)驗(yàn)中,我們使用了與文獻(xiàn) [4]相同的CiteULike數(shù)據(jù)集。
CiteULike數(shù)據(jù)集是一個(gè)有關(guān)科學(xué)研究者參考科學(xué)文獻(xiàn)的數(shù)據(jù)集。在這個(gè)數(shù)據(jù)集中每個(gè)用戶維護(hù)有一個(gè)他敢興趣的文獻(xiàn)列表。這個(gè)數(shù)據(jù)集包括了5 551個(gè)用戶對(duì)16 980篇科學(xué)文獻(xiàn)的204 986個(gè)引用記錄。這是一個(gè)0/1數(shù)據(jù)集。矩陣的稀疏度是99.8%。平均來說,每個(gè)用戶引用了37篇文獻(xiàn),引用的范圍最少10篇,最多403篇。93%的用戶引用的文獻(xiàn)數(shù)少于100篇。對(duì)于每篇文獻(xiàn)我們把它的題目和摘要合起來作為它的描述性文本,我們移除其中的標(biāo)點(diǎn)符號(hào),通過TF-IDF方法選擇其中的8 000個(gè)單詞構(gòu)成詞庫。這些文獻(xiàn)的發(fā)表時(shí)間是從2004年到2010年。平均來說,每篇文獻(xiàn)出現(xiàn)在12個(gè)用戶的引用列表中,最少出現(xiàn)在一個(gè)用戶的引用列表,最多出現(xiàn)在321個(gè)用戶的引用列表。97%的文獻(xiàn)出現(xiàn)在用戶列表的次數(shù)少于40次。
我們采用5折交叉確認(rèn)的方式來進(jìn)行試驗(yàn)。對(duì)于出現(xiàn)在用戶的列表中超過5次的文獻(xiàn),我們把它的評(píng)分點(diǎn) (0和1)平均的分為5份。我們迭代的選擇其中的4份為訓(xùn)練集,剩下的一份為測(cè)試集。對(duì)于那些出現(xiàn)在用戶的文獻(xiàn)列表中少于5次的文獻(xiàn)都放入訓(xùn)練集。這就保住了測(cè)試集中的每個(gè)文獻(xiàn)都出現(xiàn)在訓(xùn)練集中。對(duì)所有的用戶求5次5折交叉確認(rèn)的試驗(yàn)結(jié)果,取平均值作為該用戶的最終試驗(yàn)結(jié)果,所有用戶的實(shí)驗(yàn)結(jié)果求平均作為整個(gè)系統(tǒng)的最終試驗(yàn)結(jié)果。
本文實(shí)驗(yàn)采用 recall@M 作為評(píng)價(jià)標(biāo)準(zhǔn)[4-5],recall@M通過對(duì)模型的預(yù)測(cè)值進(jìn)行排序,計(jì)算排序后的前M個(gè)項(xiàng)目中占所有該用戶的測(cè)試項(xiàng)的比例來作為試驗(yàn)結(jié)果。當(dāng)M值取某個(gè)較小的固定值的情況下,recall@M越大系統(tǒng)性能越好,這個(gè)系統(tǒng)的recall@M值為每個(gè)用戶的recall@M值的平均值。recall@M的定義如下:
本實(shí)驗(yàn)中的所有實(shí)驗(yàn)結(jié)果recall@M的M值均取值為200。參數(shù)Cij的取值為a=1,b=0.01。3.3.1 DCTR模型的參數(shù)對(duì)模型性能的影響分析從圖4和圖5可以看出隨著λu和λv的增大,DCTR模型的性能均先升高,后下降。說明用戶和推薦項(xiàng)目的特征向量偏離他們的主題分布向量不能太遠(yuǎn),也不能太近,有一個(gè)臨界值。從本模型的實(shí)驗(yàn)可以看出,λu和λv的最優(yōu)值均是100。
3.3.2 基于DCTR模型的算法和幾個(gè)經(jīng)典的CF算法的性能比較 在這里我們將把DCTR模型和幾個(gè)經(jīng)典的CF算法的性能比較。本實(shí)驗(yàn)中要比較的幾個(gè)CF算法分別是:
CTR算法,是文獻(xiàn) [4]中所提出的一種基于主題模型的協(xié)同過濾算法,它只是對(duì)推薦項(xiàng)目的特征向量實(shí)施約束。通過實(shí)驗(yàn)交叉驗(yàn)證,在該算法中λu取值為0.01,λv取值為100時(shí),算法性能最好。
CTRUI算法,是基于本文所提出的DCTR模型的協(xié)同過濾算法,在該算法中,用戶的主題分布向量取值為他所評(píng)過的所有項(xiàng)目的主題分布向量的均值。在該算法中λu和λv均取最優(yōu)值100。
WPMF算法,是加權(quán)的基于概率矩陣分解的協(xié)同過濾算法[9-11]。通過實(shí)驗(yàn)交叉驗(yàn)證,在該算法中λu和λv取值為0.01時(shí),算法性能最好。
CTRUIReal算法,是基于本文所提出的DCTR模型的協(xié)同過濾算法,在該算法中,我們把某個(gè)用戶評(píng)過的所有推薦項(xiàng)目的文本描述的集合作為該用戶的文本描述。通過對(duì)每個(gè)用戶運(yùn)行LDA算法,來得到該用戶的主題分布向量。在該算法中λu和λv均取最優(yōu)值100。
圖6中橫軸表示各個(gè)算法的迭代次數(shù),縱軸表示各個(gè)算法的recall值。
圖6 基于DCTR模型的算法和幾個(gè)經(jīng)典的CF算法的性能比較Fig.6 The performance comparation of DCTR model and several classical CF methods
從圖6可以看出基于DCTR模型的兩個(gè)協(xié)同過濾算法CTRUIReal算法和CTRUI算法在recall性能上均優(yōu)于CTR算法和WPMF算法,隨著迭代次數(shù)的增加性能的差異越來越明顯,這說明對(duì)用戶和推薦項(xiàng)目的特征向量分別引入主題模型進(jìn)行約束能夠有效提高算法性能。并且CTRUIReal算法的性能優(yōu)于CTRUI算法的性能,這說明相比于取評(píng)過的推薦項(xiàng)目的主題分布向量的均值作為該用戶的主題分布向量,通過主題模型直接學(xué)習(xí)用戶的主題分布向量更為可靠。還可看出基于DCTR模型的兩個(gè)協(xié)同過濾算法CTRUIReal算法和CTRUI算法的收斂速度也明顯快過CTR算法和WPMF算法,這也進(jìn)一步說明了本文所提算法的有效性。
本文在傳統(tǒng)的矩陣分解模型和主題模型的基礎(chǔ)上提出了一種新的基于雙向主題模型的協(xié)同過濾算法,它運(yùn)用LDA算法從用戶和推薦項(xiàng)目?jī)蓚€(gè)方向?qū)τ脩艉屯扑]項(xiàng)目的特征向量進(jìn)行約束,以便更有效的推薦文本形式的對(duì)象給所需要的用戶。在真實(shí)的數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明:在recall@M性能指標(biāo)下,基于本文所提出的DCTR模型的協(xié)同過濾算法的性能明顯優(yōu)于幾個(gè)傳統(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].計(jì)算機(jī)學(xué)報(bào),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.