梁 靜,葛 宇
(1.成都工業(yè)學(xué)院 計(jì)算機(jī)工程學(xué)院,四川 成都 611730;2.四川師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,四川 成都 610066)
基于用戶的協(xié)同過(guò)濾算法能根據(jù)用戶最近鄰居(文中簡(jiǎn)稱最近鄰)的興趣偏好,向其推薦滿足需求的商品、信息和服務(wù),近年來(lái)已被廣泛應(yīng)用于電子商務(wù)和社交網(wǎng)絡(luò)中[1]。但是,傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法對(duì)數(shù)據(jù)稀疏問(wèn)題和用戶冷啟動(dòng)問(wèn)題的處理能力較差,導(dǎo)致用戶間相似性度量的準(zhǔn)確度降低,從而影響推薦質(zhì)量[1,2]。為此,不少學(xué)者進(jìn)行了相關(guān)研究。例如,針對(duì)數(shù)據(jù)稀疏問(wèn)題,文獻(xiàn)[3]利用基于項(xiàng)目的協(xié)同過(guò)濾結(jié)果填充評(píng)分矩陣空值,降低數(shù)據(jù)稀疏度后結(jié)合ALS矩陣分解算法進(jìn)行預(yù)測(cè),提高推薦質(zhì)量。文獻(xiàn)[4]基于項(xiàng)目評(píng)分?jǐn)?shù)據(jù)和項(xiàng)目類別數(shù)據(jù)構(gòu)建用戶-項(xiàng)目-類別的三維張量,通過(guò)填補(bǔ)缺失數(shù)據(jù)建立用戶類別偏好矩陣和評(píng)分偏好矩陣,進(jìn)行聯(lián)合推薦。文獻(xiàn)[5]在傳統(tǒng)算法中加入用戶和項(xiàng)目的標(biāo)簽信息,嵌入LDA主題模型計(jì)算用戶和項(xiàng)目的余弦相似性,提高相似性計(jì)算的準(zhǔn)確度。文獻(xiàn)[6]構(gòu)造時(shí)間柱模型,根據(jù)用戶評(píng)分及時(shí)刻生成時(shí)間加權(quán)相似度進(jìn)行預(yù)測(cè)評(píng)分,并對(duì)項(xiàng)目類型進(jìn)行LDA聚類預(yù)測(cè)評(píng)分,最終通過(guò)調(diào)節(jié)因子確定兩種評(píng)分的權(quán)重生成結(jié)果,提高了推薦質(zhì)量。針對(duì)新用戶冷啟動(dòng)難題,文獻(xiàn)[7]從評(píng)分、興趣、置信度3個(gè)方面計(jì)算用戶評(píng)分相似性,結(jié)合用戶屬性相似性進(jìn)行聯(lián)合預(yù)測(cè)推薦,并實(shí)現(xiàn)冷啟動(dòng)到非冷啟動(dòng)狀態(tài)用戶相似性計(jì)算的平滑過(guò)渡。文獻(xiàn)[8]在文獻(xiàn)[7]的平滑過(guò)渡方案上,基于用戶特征的動(dòng)態(tài)變化進(jìn)行分類,設(shè)計(jì)了結(jié)合用戶特征和評(píng)分?jǐn)?shù)據(jù)的相似度計(jì)算方案,提高推薦的準(zhǔn)確率。文獻(xiàn)[9]設(shè)計(jì)了適應(yīng)于計(jì)算個(gè)性化用戶相似性的距離度量公式,并對(duì)用戶屬性評(píng)分量化,將其引入相似性計(jì)算公式中,既提高了推薦精度,也滿足了用戶的個(gè)性化需求。
不同于以上思路,本文為提高用戶相似性計(jì)算準(zhǔn)確度,提出一種結(jié)合LDA和用戶特征的協(xié)同過(guò)濾算法。具體地,針對(duì)數(shù)據(jù)稀疏問(wèn)題,利用基于吉布斯采樣的LDA主題模型,設(shè)計(jì)用戶對(duì)項(xiàng)目主題評(píng)分的相似性評(píng)價(jià)方案,并從理論角度論證該方案能有效降低數(shù)據(jù)稀疏性;針對(duì)用戶冷啟動(dòng)問(wèn)題,結(jié)合用戶特征設(shè)計(jì)相應(yīng)的編碼,用海明距離計(jì)算用戶間相似度,作為冷啟動(dòng)用戶尋找最近鄰的依據(jù)。在MovieLens數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文算法能有效預(yù)測(cè)用戶評(píng)分,提高推薦質(zhì)量,在應(yīng)對(duì)數(shù)據(jù)稀疏性問(wèn)題和冷啟動(dòng)用戶時(shí)也有較好的表現(xiàn)。
傳統(tǒng)基于用戶的協(xié)同過(guò)濾根據(jù)鄰居用戶的偏好向目標(biāo)用戶進(jìn)行推薦[1],首先根據(jù)已知的用戶-項(xiàng)目評(píng)分矩陣,依據(jù)文獻(xiàn)[9]采用皮爾遜系數(shù)法由式(1)[9]評(píng)估用戶間的相似程度,然后根據(jù)相似性高低選取目標(biāo)用戶的最近鄰Num(u),找出與目標(biāo)用戶偏好一致的鄰居用戶,最后根據(jù)式(2)預(yù)測(cè)目標(biāo)用戶對(duì)項(xiàng)目的評(píng)分
(1)
(2)
文獻(xiàn)[1]指出,傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法,用戶相似性評(píng)價(jià)會(huì)受到用戶-項(xiàng)目評(píng)分?jǐn)?shù)據(jù)稀疏性問(wèn)題和用戶冷啟動(dòng)問(wèn)題的影響,而用戶間相似性評(píng)價(jià)的準(zhǔn)確程度又直接影響了算法最終推薦質(zhì)量。為此,本文在傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上,以提高用戶相似性評(píng)價(jià)準(zhǔn)確性為出發(fā)點(diǎn),對(duì)數(shù)據(jù)稀疏問(wèn)題和用戶冷啟動(dòng)問(wèn)題的處理方案進(jìn)行研究,具體思路為:
在傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上,通過(guò)借助吉布斯采樣的LDA主題模型和矩陣運(yùn)算,挖掘項(xiàng)目類型的隱含主題,生成項(xiàng)目-主題隸屬概率矩陣,構(gòu)造用戶-主題評(píng)分?jǐn)?shù)據(jù),設(shè)計(jì)用戶相似性評(píng)價(jià)方案,并用概率方法分析方案對(duì)數(shù)據(jù)稀疏問(wèn)題處理的有效性。同時(shí),在改進(jìn)相似性的基礎(chǔ)上分析用戶特征,設(shè)計(jì)基于海明距離編碼的冷啟動(dòng)用戶相似性評(píng)價(jià)方案,用于提高冷啟動(dòng)用戶的推薦質(zhì)量。
LDA主題模型是一種文檔主題生成模型,常用于挖掘大規(guī)模文檔集中潛藏的主題信息,利用隱藏主題優(yōu)化文檔分類。如:文獻(xiàn)[10]針對(duì)TF-IDF模型,運(yùn)用LDA模型挖掘出文本的潛在主題,以提高文檔聚類純度。本文受此思路啟發(fā),借助LDA主題模型從項(xiàng)目類型關(guān)系中挖掘項(xiàng)目對(duì)應(yīng)的潛在主題,將項(xiàng)目按主題進(jìn)行聚類、構(gòu)造項(xiàng)目-主題關(guān)系矩陣,以便更科學(xué)地反映數(shù)據(jù)規(guī)律。
2.1.1 基本吉布斯采樣的LDA主題模型
Blei提出的隱含狄利克雷分布(latent Dirichlet allocation,LDA)是一種經(jīng)典的主題模型,常被用來(lái)推測(cè)文檔的隱含主題分布[10],其對(duì)應(yīng)的概率模型如圖1所示。
圖1 LDA概率圖模型
圖1中M為文檔總數(shù),K為主題編號(hào)總數(shù),Nm為第m篇文檔中包含的詞匯總數(shù)。zm,n(m∈[1,M],n∈[1,Nm])是文檔m第n個(gè)詞匯所屬的主題編號(hào),wm,n是文檔m中的第n個(gè)詞匯在詞典中的序號(hào)。θm、φk分別表示第m篇文檔下的主題分布和第k個(gè)主題下的詞匯分布。α和β為先驗(yàn)參數(shù)。在給定文檔集合下,wm,n是可觀察的已知量,α和β是根據(jù)經(jīng)驗(yàn)所得先驗(yàn)參數(shù)。按圖1所示概率模型,可通過(guò)變分貝葉斯推斷、吉布斯采樣和最大似然估計(jì)[11]等方式估計(jì)出θm和φk值。本文采用吉布斯采樣法估計(jì)LDA主題模型的θm主題分布,流程如圖2所示。
圖2 LDA吉布斯采樣算法流程
圖2對(duì)應(yīng)的流程描述為:
(1)指定參數(shù)K(主題數(shù))、α、β,和輸入數(shù)據(jù)wm,n。
(3)利用吉布斯公式p(zi|z-i,d,w)對(duì)每個(gè)詞匯進(jìn)行采樣,求出它對(duì)應(yīng)的主題編號(hào),并更新zm,n狀態(tài)。
(4)重復(fù)(3),直到吉布斯采樣收斂或達(dá)到迭代次數(shù)。
(5)輸出每篇文檔的主題分布θm。
2.1.2 挖掘項(xiàng)目-主題關(guān)系數(shù)據(jù)
針對(duì)項(xiàng)目數(shù)據(jù)(如本文實(shí)驗(yàn)中MovieLens 100K數(shù)據(jù)集的u.item和u.genre信息),將項(xiàng)目的類型看作詞匯,每個(gè)項(xiàng)目看作文檔,依據(jù)2.1.1節(jié)中的LDA主題模型挖掘項(xiàng)目隱含主題。設(shè)項(xiàng)目總數(shù)為M,將第m個(gè)項(xiàng)目記為itm(m∈[1,M]),如itm=(Action,Adventure,Thriller),表示項(xiàng)目m對(duì)應(yīng)的類型有Action,Adventure和Thriller。所有項(xiàng)目的類型集合IT={it1,it2,…itM}。
采用圖2流程,計(jì)算項(xiàng)目主題分布。輸入項(xiàng)目類型集合IT,超參數(shù)α、β和主題數(shù)K。經(jīng)過(guò)吉布斯采樣算法,G次迭代(為保證算法收斂,G不宜過(guò)小)后輸出本文所需的項(xiàng)目主題分布Iθ(如圖3所示)。圖3中,行列分別代表項(xiàng)目和主題,如第1行第1列數(shù)值為0.025 64,表示第1個(gè)項(xiàng)目在第1個(gè)主題的概率。
圖3 項(xiàng)目主題分布Iθ
2.1.3 構(gòu)造用戶-主題評(píng)分?jǐn)?shù)據(jù)
為了處理用戶-項(xiàng)目評(píng)分矩陣RUM中的稀疏問(wèn)題(即:用戶沒有對(duì)項(xiàng)目評(píng)分,造成矩陣中對(duì)應(yīng)項(xiàng)為空),本文結(jié)合2.1.2節(jié)中得出的項(xiàng)目主題分布Iθ,把RUM轉(zhuǎn)換為用戶-主題評(píng)分矩陣RUK。以下給出轉(zhuǎn)換方案,隨后從概率角度進(jìn)行分析,以說(shuō)明本方案的有效性。
(1)用戶-項(xiàng)目評(píng)分矩陣到用戶-主題評(píng)分矩陣的轉(zhuǎn)換方案。
(3)
(4)
(5)
(2)從概率角度分析轉(zhuǎn)換前后數(shù)據(jù)的稀疏性。
稀疏性和數(shù)據(jù)(矩陣)中存在空值(0值)成正比,為了說(shuō)明以上方案所使用的用戶-主題評(píng)分矩陣RUK稀疏性小于傳統(tǒng)方法所使用的用戶-項(xiàng)目評(píng)分矩陣RUM,下文從概率角度進(jìn)行論證。
RUM和RUK中各個(gè)元素不為空值的事件是等可能事件(即項(xiàng)目或主題被對(duì)應(yīng)用戶作過(guò)評(píng)分事件),設(shè)DM對(duì)應(yīng)矩陣RUM中一個(gè)元素值不為空的隨機(jī)事件,其概率p(DM)記為λ1,λ1∈(0,1);DK對(duì)應(yīng)矩陣RUK中一個(gè)元素值不為空的隨機(jī)事件,其概率p(DK)記為λ2,λ2∈(0,1)。RUM(U×M)中所有元素值不為空的概率用p(RUM)表示;RUK(U×K)中所有元素值不為空的概率用p(RUK)表示。則矩陣RUM出現(xiàn)空值的概率
(6)
同理,矩陣RUK出現(xiàn)空值的概率為
(7)
以下用反證法證明λ1≤λ2。
證:假設(shè)λ1>λ2
(8)
根據(jù)假設(shè)λ1>λ2,則有
λ1>1-(1-λ1)Q?λ1-1>-(1-λ1)Q?
(1-λ1)<(1-λ1)Q
(9)
由指數(shù)函數(shù)的單調(diào)性可知
Q<1
(10)
與已知Q≥1矛盾,假設(shè)不成立。因此λ1≤λ2,證明完畢。
2.1.4 結(jié)合用戶-主題數(shù)據(jù)計(jì)算用戶相似性
根據(jù)以上結(jié)果,用戶-主題矩陣RUK中每一行記錄了每位用戶對(duì)各個(gè)主題的評(píng)分。參考文獻(xiàn)[5],使用夾角余弦法計(jì)算矩陣RUK中用戶間的相似度。設(shè)用戶u、v對(duì)應(yīng)主題評(píng)分?jǐn)?shù)據(jù)RUK矩陣中兩行(記為向量ru和rv),其相似度uksim(u,v)計(jì)算如式(11)所示
(11)
式中:向量ru=[ru,1,ru,2…,ru,K],向量rv=[rv,1,rv,2…,rv,K]。
為了應(yīng)對(duì)用戶冷啟動(dòng)問(wèn)題(即:缺少冷啟動(dòng)用戶對(duì)項(xiàng)目的歷史評(píng)分?jǐn)?shù)據(jù),導(dǎo)致無(wú)法從用戶-項(xiàng)目數(shù)據(jù)中有效評(píng)價(jià)冷啟動(dòng)用戶與其它用戶間相似性的問(wèn)題),本文參考文獻(xiàn)[7]、文獻(xiàn)[8]中利用特征作用戶相似性評(píng)價(jià)的思路,設(shè)計(jì)了一種用戶特征(如本文實(shí)驗(yàn)中MovieLens 100K數(shù)據(jù)集的u.user、u.occupation信息)編碼方案,配合海明距離計(jì)算冷啟動(dòng)用戶與其他用戶間的相似性。
2.2.1 用戶特征編碼方案
對(duì)于冷啟動(dòng)和非冷啟動(dòng)用戶,都已知其對(duì)應(yīng)的性別、年齡和職業(yè)特征。定義用戶特征集合為UA,共U個(gè)用戶,UA={ua1,ua2,…uaU},其中uau(u∈[1,U])為用戶u的特征。如uau=(24,M,Technician),表示該用戶年齡24,性別男,職業(yè)為技術(shù)員。
為配合海明距離計(jì)算用戶間相似度,本文對(duì)3個(gè)用戶特征使用不同長(zhǎng)度的二進(jìn)制數(shù)進(jìn)行分別編碼,以體現(xiàn)出不同特征對(duì)用戶相似性的影響程度。具體的編碼方案為:
(1)性別特征,用1位二進(jìn)制進(jìn)行編碼,將男女分別編碼為0和1。
(2)年齡特征,用7位二進(jìn)制進(jìn)行編碼。將年齡分為7組:(0-17)、(18-24)、(25-34)、(35-44)、(45-49)、(50-55)和56歲以上??紤]到要區(qū)別用戶年齡段之間的差異程度,比如年齡50和10,相比50和40的差異程度更大,故本文對(duì)年齡特征按分組進(jìn)行多位置1編碼。每一位編碼代表一個(gè)年齡段,當(dāng)用戶屬于某年齡段時(shí),對(duì)應(yīng)編碼位和它前面的每位均置1,后面均置0。如24歲編碼為“1100000”,47歲編碼為“1111100”。
(3)職業(yè)特征,用5位二進(jìn)制進(jìn)行編碼。依據(jù)二八定律[12]:任何一組東西,最重要的大約占20%,其余的占80%。本文將職業(yè)對(duì)應(yīng)的用戶數(shù)量降序排列,前20%的職業(yè)單獨(dú)分類,其余職業(yè)歸為一類。對(duì)21個(gè)職業(yè)統(tǒng)計(jì)后,student、other、educator、administrator排在前4,對(duì)應(yīng)前4位編碼,其余歸為一類對(duì)應(yīng)第5位編碼。具體編碼時(shí),所屬職業(yè)的對(duì)應(yīng)位置1,其它位均置0。如educator編碼為“00100”,Technician編碼為“00001”。
依據(jù)以上編碼方案,最終構(gòu)成13位二進(jìn)制編碼。其格式如圖4所示。用戶特征編碼集合對(duì)應(yīng)如圖5所示。
圖4 13位的用戶特征編碼格式
圖5 用戶特征編碼集合
2.2.2 結(jié)合海明距離計(jì)算冷啟動(dòng)用戶相似性
在信息學(xué)中,海明距離[13]被用于衡量?jī)纱a間的差異,是一種簡(jiǎn)單高效的距離計(jì)算方法,本文基于海明距離設(shè)計(jì)了冷啟動(dòng)用戶相似性計(jì)算策略,更準(zhǔn)確地為冷啟動(dòng)用戶尋找最近鄰居。根據(jù)以上思路,以下從用戶特征編碼中計(jì)算用戶間海明距離,以此評(píng)價(jià)冷啟動(dòng)用戶與其他用戶間的相似性。冷啟動(dòng)用戶u與非冷啟動(dòng)用戶v對(duì)應(yīng)的相似性u(píng)asim(u,v),如式(12)所示
(12)
式中:dishamming(u,v)為u、v間的海明距離,即:統(tǒng)計(jì)兩位用戶的編碼在進(jìn)行異或(xor)運(yùn)算后1的個(gè)數(shù),其結(jié)果與相似度成反比關(guān)系。特別說(shuō)明的是:為了處理dishamming(u,v)為0的情況,分母中加入了調(diào)節(jié)項(xiàng)1。
根據(jù)前文分析,以下在傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上,加入了針對(duì)數(shù)據(jù)稀疏性問(wèn)題和用戶冷啟動(dòng)問(wèn)題的相應(yīng)機(jī)制,設(shè)計(jì)了結(jié)合LDA主題模型和用戶特征的協(xié)同過(guò)濾算法,算法流程描述如下(其中(1)-(3)、(4)、(5)分別對(duì)應(yīng)文中2.1節(jié)和2.2節(jié)設(shè)計(jì)的方案,(6)即對(duì)應(yīng)是否為冷啟動(dòng)用戶分別采用不同的方案計(jì)算相似度并用于最終預(yù)測(cè)推薦):
(1)對(duì)項(xiàng)目類型集合IT,按照2.1.1節(jié)中LDA吉布斯采樣算法流程(如圖2所示),計(jì)算出項(xiàng)目主題分布Iθ。
(3)按2.1.4節(jié)中式(11),利用夾角余弦法計(jì)算出用戶相似度uksim。
(4)對(duì)用戶特征集合UA按2.2.1節(jié)進(jìn)行特征編碼。
(5)根據(jù)2.2.2節(jié)中式(12)計(jì)算出冷啟動(dòng)用戶與非冷啟動(dòng)用戶相似度uasim。
(7)輸出用戶預(yù)測(cè)評(píng)分?jǐn)?shù)據(jù)。
本文實(shí)驗(yàn)采用MovieLens 100K數(shù)據(jù)集[14],抽取數(shù)據(jù)訓(xùn)練集和測(cè)試集比例4∶1,實(shí)驗(yàn)環(huán)境為Intel Core i5處理器、8 GB內(nèi)存,Windows10(64 bit)操作系統(tǒng)。
參考文獻(xiàn)[4]、參考文獻(xiàn)[15],實(shí)驗(yàn)使用平均絕對(duì)誤差MAE[4](mean absolute error,MAE)和準(zhǔn)確率Precision[15]對(duì)算法進(jìn)行評(píng)價(jià),分別如式(13)、式(14)
(13)
(14)
式中:TopN為算法向用戶所推薦的項(xiàng)目數(shù),Hits為算法產(chǎn)生的正確推薦數(shù),Precision值越高,表示推薦質(zhì)量越高。
參考文獻(xiàn)[6],本文將算法中LDA主題數(shù)設(shè)置為15,為驗(yàn)證本文算法(以下記為:UILCF)的有效性,實(shí)驗(yàn)先討論UILCF在不同數(shù)據(jù)稀疏度、不同冷啟動(dòng)用戶數(shù)量情況下的表現(xiàn),然后將UILCF與4種具有代表性的算法進(jìn)行性能對(duì)比,具體實(shí)驗(yàn)如下:
(1)不同數(shù)據(jù)稀疏度下算法性能對(duì)比
本文算法是在傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上加入了應(yīng)對(duì)數(shù)據(jù)稀疏性的機(jī)制,為評(píng)估其有效性,實(shí)驗(yàn)將UILCF與傳統(tǒng)協(xié)同過(guò)濾算法(以下簡(jiǎn)記為UCF)進(jìn)行對(duì)比。實(shí)驗(yàn)隨機(jī)刪除測(cè)試集中部分評(píng)價(jià)數(shù)據(jù),模擬不同的稀疏度(矩陣RUM中空值或0值的比例)環(huán)境,結(jié)果如圖6和表1所示。從圖6結(jié)果可以看出,隨著數(shù)據(jù)稀疏度的增長(zhǎng),兩種算法的MAE值都在增加,但UILCF的MAE值始終低于UCF。從變化率的角度看,UILCF也優(yōu)于UCF,尤其在稀疏度值0.96以后,UILCF的優(yōu)勢(shì)更加明顯。另外表1對(duì)比結(jié)果表明,在不同稀疏度下UILCF均具有更好的推薦準(zhǔn)確率。這正是因?yàn)閁ILCF在計(jì)算用戶相似性時(shí)結(jié)合了LDA模型,讓算法在數(shù)據(jù)稀疏度不斷增大時(shí)仍然具有較好的預(yù)測(cè)效果。
圖6 UCF與UILCF在不同稀疏度下的對(duì)比
表1 UCF與UILCF在不同稀疏度下的準(zhǔn)確率對(duì)比/%(TopN=2)
(2)不同冷啟動(dòng)用戶數(shù)量下算法性能對(duì)比
UILCF在UCF的基礎(chǔ)上增加了冷啟動(dòng)用戶處理機(jī)制,以下實(shí)驗(yàn)從測(cè)試集中隨機(jī)選擇用戶,刪除其評(píng)分?jǐn)?shù)據(jù),模擬不同數(shù)量冷啟動(dòng)用戶的情況,結(jié)果如圖7和表2所示。在冷啟動(dòng)用戶數(shù)量為10-60時(shí),圖7中UILCF的MAE值始終低于UCF。表2中UILCF的Precision值始終高于UCF,表明UILCF具有更高的推薦質(zhì)量。以上結(jié)果說(shuō)明,本文算法利用了用戶特征信息尋找鄰居用戶進(jìn)行相似推薦,取得了更好的效果。
圖7 UCF與UILCF在不同冷啟動(dòng)用戶下的對(duì)比
表2 UCF與UILCF在不同冷啟動(dòng)用戶下的準(zhǔn)確率對(duì)比/%(TopN=2)
(3)與文獻(xiàn)報(bào)道的算法性能對(duì)比
實(shí)驗(yàn)選擇4種具有代表性的算法進(jìn)行對(duì)比:傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法(以下記為:UCF)、傳統(tǒng)基于項(xiàng)目的協(xié)同過(guò)濾算法(以下記為:ICF)、嵌入LDA主題模型的協(xié)同過(guò)濾推薦算法(以下記為:ULRCF)[5]、基于用戶屬性和評(píng)分的協(xié)同過(guò)濾算法(以下記為:UARCF)[7],實(shí)驗(yàn)結(jié)果如圖8和表3所示,其中表3給出了推薦數(shù)目TopN在不同取值下的準(zhǔn)確率對(duì)比。圖8中,UCF、ICF、ULRCF對(duì)應(yīng)數(shù)據(jù)來(lái)自文獻(xiàn)[6],UARCF對(duì)應(yīng)數(shù)據(jù)來(lái)自文獻(xiàn)[7]。表3中UCF、UARCF對(duì)應(yīng)數(shù)據(jù)來(lái)自文獻(xiàn)[8]。
圖8 不同算法下的MAE值變化
表3 不同算法的準(zhǔn)確率對(duì)比/%
表3結(jié)果說(shuō)明,各算法隨推薦數(shù)目的增多,Precision值呈下降趨勢(shì)。但UILCF在不同的推薦數(shù)目下,Precision值均優(yōu)于文獻(xiàn)中的另兩種算法,尤其在推薦數(shù)目較小時(shí),UILCF的推薦準(zhǔn)確率很高。從圖8不難看出,相比于UCF、UARCF、ULRCF和ICF,在最近鄰數(shù)量小于35時(shí)UILCF對(duì)應(yīng)的MAE值更低,說(shuō)明本文算法因?yàn)椴扇×酸槍?duì)數(shù)據(jù)稀疏問(wèn)題和用戶冷啟動(dòng)問(wèn)題的對(duì)應(yīng)策略,所以性能優(yōu)于上述4種算法。需要說(shuō)明的是,在最近鄰數(shù)量大于38時(shí),UILCF的MAE值變化趨于平緩,且高于ULRCF,說(shuō)明本文算法在最近鄰個(gè)數(shù)增大時(shí)效果不及ULRCF。但是結(jié)合實(shí)際考慮,算法在最近鄰個(gè)數(shù)較少時(shí)得到的推薦準(zhǔn)確性更具有應(yīng)用價(jià)值,由此說(shuō)明,本文算法在最近鄰個(gè)數(shù)較少時(shí)相比4種算法推薦質(zhì)量更高,更具有實(shí)用價(jià)值。
本文提出了結(jié)合LDA主題模型和用戶特征的協(xié)同過(guò)濾算法。在傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上,利用LDA主題模型挖掘項(xiàng)目的隱含主題,和已有數(shù)據(jù)一起計(jì)算用戶-主題評(píng)分,從而將用戶相似度評(píng)價(jià)依據(jù)從稀疏度較高的用戶-項(xiàng)目評(píng)分矩陣,轉(zhuǎn)變成了稀疏度較低的用戶-主題評(píng)分矩陣,有效緩解了數(shù)據(jù)稀疏性問(wèn)題對(duì)用戶相似度的影響。另外,本文還提出了基于用戶的特征編碼方案,并根據(jù)海明距離建立冷啟動(dòng)用戶和其它用戶的特征相似性評(píng)價(jià)方法,以提高冷啟動(dòng)用戶對(duì)應(yīng)用戶相似度計(jì)算的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,本文算法在最近鄰數(shù)量較少的情況下能提高算法的推薦質(zhì)量,具有較好的實(shí)用性。