蔣宗禮,王 威,陸 晨
(北京工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京 100124)
基于均值預(yù)估的協(xié)同過(guò)濾推薦算法改進(jìn)
蔣宗禮,王 威,陸 晨
(北京工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京 100124)
在協(xié)同過(guò)濾推薦系統(tǒng)中,用戶-項(xiàng)目矩陣中存在大量未評(píng)分元素,且最終預(yù)測(cè)值由“最近鄰”用戶所評(píng)分?jǐn)?shù)的加權(quán)平均產(chǎn)生。傳統(tǒng)算法將未評(píng)分元素直接計(jì)作0,導(dǎo)致預(yù)測(cè)得分普遍偏低。針對(duì)這種稀疏性引起的問(wèn)題,提出了一種基于均值預(yù)估的協(xié)同過(guò)濾改進(jìn)算法。該算法以“最近鄰”用戶所給平均值對(duì)未評(píng)分的數(shù)據(jù)進(jìn)行估計(jì),有效降低了未評(píng)分項(xiàng)目所帶來(lái)的負(fù)面影響。同時(shí)該方法又不是單純的平均值填充,而是在協(xié)同過(guò)濾算法的第三階段,需要用到“最近鄰”用戶對(duì)預(yù)測(cè)項(xiàng)目的評(píng)分時(shí),才對(duì)“最近鄰”評(píng)分為0的分值進(jìn)行替代,這樣不會(huì)影響到計(jì)算的相似度,預(yù)測(cè)結(jié)果不至于平庸。稀疏度為93.7%的數(shù)據(jù)上的實(shí)驗(yàn)表明,在不影響相似度計(jì)算的前提下,改進(jìn)算法可顯著降低均方根誤差,提高推薦質(zhì)量;最佳RMSE值可達(dá)1.01。
協(xié)同過(guò)濾;推薦算法;稀疏性;評(píng)分預(yù)測(cè);均方根誤差
隨著互聯(lián)網(wǎng)2.0的快速發(fā)展,信息過(guò)載成為了人們遇到的一個(gè)問(wèn)題,怎樣幫助用戶從海量信息中發(fā)現(xiàn)自身感興趣的內(nèi)容變得至關(guān)重要,推薦系統(tǒng)由此應(yīng)運(yùn)而生[1]。目前,推薦系統(tǒng)已經(jīng)有一些方法,包括基于內(nèi)容的方法、協(xié)同過(guò)濾方法和混合推薦方法。其中協(xié)同過(guò)濾方法是推薦系統(tǒng)中最基本的方法[2],該方法又分為基于用戶的協(xié)同過(guò)濾(User-based)和基于項(xiàng)目的協(xié)同過(guò)濾(Item-based)[3-4]。
協(xié)同過(guò)濾方法通過(guò)用戶行為建立興趣模型,根據(jù)鄰居集的行為預(yù)測(cè)當(dāng)前用戶。因此,在相應(yīng)的用戶-項(xiàng)目矩陣中用戶評(píng)分項(xiàng)目越多,推薦質(zhì)量就越高,但隨著用戶項(xiàng)目的不斷增多,用戶-項(xiàng)目矩陣就越來(lái)越稀疏[5-7],這對(duì)推薦結(jié)果的改善提出了較大挑戰(zhàn)。將一個(gè)用戶的鄰居用戶中距離該用戶比較近的稱為近鄰用戶,簡(jiǎn)稱近鄰,稱最近的K個(gè)近鄰為“K近鄰”。
針對(duì)上述問(wèn)題,對(duì)協(xié)同過(guò)濾算法進(jìn)行了改進(jìn)。對(duì)某個(gè)用戶,當(dāng)出現(xiàn)未評(píng)分項(xiàng)的情況時(shí),用該項(xiàng)的最近鄰評(píng)分均值進(jìn)行預(yù)測(cè)替代,其代價(jià)是需要維護(hù)一個(gè)用戶評(píng)分平均值矩陣,而不需要更多地增加算法的時(shí)間復(fù)雜性。在MovieLens上的實(shí)驗(yàn)結(jié)果表明,新算法的計(jì)算效能有了很大提高。
1.1 評(píng)分預(yù)測(cè)方法
協(xié)同過(guò)濾算法根據(jù)鄰居的行為數(shù)據(jù)對(duì)目標(biāo)用戶產(chǎn)生評(píng)分預(yù)測(cè)或者推薦列表,算法流程分為三個(gè)步驟[8]:
(1)利用用戶的評(píng)分?jǐn)?shù)據(jù)計(jì)算用戶或者項(xiàng)目之間的相似程度;
(2)選定K值,為每個(gè)用戶尋找K近鄰用戶;
(3)利用最近鄰的評(píng)分?jǐn)?shù)據(jù)預(yù)測(cè)用戶對(duì)未知項(xiàng)目的評(píng)分。
第三步評(píng)分預(yù)測(cè)產(chǎn)生推薦結(jié)果。傳統(tǒng)的評(píng)分預(yù)測(cè)方法主要有三種[9-10]。
以基于用戶的協(xié)同過(guò)濾為例。對(duì)于用戶u,最簡(jiǎn)單的方法是直接使用鄰居集合中的K個(gè)用戶對(duì)未知項(xiàng)目i的平均打分來(lái)得到預(yù)測(cè)值Pu,i,如式(1)所示。
(1)
其中,N(u)為u的K近鄰用戶集合;Rv,i為用戶v對(duì)項(xiàng)目i的評(píng)分。
該方法是把集合中的鄰居用戶同等對(duì)待,雖然簡(jiǎn)單,但會(huì)降低預(yù)測(cè)結(jié)果的個(gè)性化程度。事實(shí)上,每個(gè)鄰居用戶與目標(biāo)用戶的相關(guān)性是不一樣的,他們對(duì)目標(biāo)用戶的評(píng)分影響貢獻(xiàn)也應(yīng)該是不一樣的。
一種改進(jìn)方法是把鄰居用戶與目標(biāo)用戶的相似度作為權(quán)值,與鄰居用戶的評(píng)分進(jìn)行加權(quán)求和,給出預(yù)測(cè)用戶對(duì)項(xiàng)目i的評(píng)分。該方法能反映出不同用戶所做出的貢獻(xiàn)。
一般用式(2)計(jì)算相應(yīng)的Pu,i:
(2)
其中,Sim(u,v)表示用戶u和用戶v的相似度。
式(2)雖然使用了用戶的加權(quán)平均值,但沒(méi)有考慮不同用戶的評(píng)分尺度。進(jìn)一步的改進(jìn)是加入不同用戶更多的個(gè)性化因素,充分考慮每個(gè)用戶的個(gè)性評(píng)分尺度,以消除個(gè)性化所帶來(lái)的負(fù)面影響,通常具有更好的準(zhǔn)確度。具體用式(3)計(jì)算。
(3)
1.2 評(píng)分預(yù)測(cè)分析
從上述三種評(píng)分預(yù)測(cè)方法中可以看出,預(yù)測(cè)用戶評(píng)分需要用到最近鄰的評(píng)分?jǐn)?shù)據(jù)。但由于數(shù)據(jù)稀疏性,用戶的最近鄰中存在著大量的未評(píng)分元素,由于這些未評(píng)分項(xiàng)被簡(jiǎn)單地置為0,導(dǎo)致了較大誤差積累的連鎖影響,使得最終推薦結(jié)果普遍不理想。究其原因,在這個(gè)評(píng)價(jià)體系中,0表示的是用戶對(duì)相應(yīng)的項(xiàng)目不喜歡。事實(shí)上,用戶對(duì)某個(gè)項(xiàng)目沒(méi)有評(píng)分,是由于用戶對(duì)該項(xiàng)目沒(méi)有行為,而并不一定是不喜歡。因?yàn)橹辽俅嬖谥T如已經(jīng)獲得有關(guān)信息、還發(fā)現(xiàn)了其他相關(guān)信息、時(shí)間不允許等導(dǎo)致他不評(píng)價(jià)的原因。而且這種影響會(huì)在算法中出現(xiàn)連鎖反映。
例如,簡(jiǎn)單考慮這樣的情景:用戶A對(duì)項(xiàng)目a,c都打4分,用戶B對(duì)項(xiàng)目a打了4分,用戶C對(duì)項(xiàng)目b打了3分。預(yù)測(cè)一下用戶A對(duì)項(xiàng)目b的打分情況。
首先,構(gòu)建用戶-項(xiàng)目評(píng)分矩陣,如表1所示。
表1 用戶-項(xiàng)目評(píng)分矩陣
然后找到和用戶A相似的鄰居B,通過(guò)B對(duì)項(xiàng)目b的打分預(yù)測(cè)用戶A對(duì)項(xiàng)目b的打分,最后求得A對(duì)b的打分為0。顯然存在:用戶B對(duì)項(xiàng)目b打分為0不一定代表用戶B不喜歡項(xiàng)目b,很可能僅僅是他沒(méi)有對(duì)項(xiàng)目b有過(guò)行為。事實(shí)上,用戶B很不活躍的可能性很大。所以,這種連鎖反應(yīng)使得算法未能夠更好地利用K個(gè)近鄰的相關(guān)性,對(duì)相關(guān)項(xiàng)目進(jìn)行估計(jì)。
綜上,三種評(píng)分預(yù)測(cè)方案都未能很好地解決用戶鄰居未評(píng)分的情況,不能有效地近似用戶對(duì)項(xiàng)目的真實(shí)評(píng)分,導(dǎo)致推薦質(zhì)量很不理想。一般來(lái)說(shuō),可以忽略那些未對(duì)項(xiàng)目i評(píng)分的最近鄰用戶(比如l個(gè),用其余的k-l個(gè)最近鄰用戶計(jì)算評(píng)分[2])。記這種方法為協(xié)同過(guò)濾的修正算法。在式(2)的基礎(chǔ)上設(shè)計(jì)如下修正方案:
(4)
其中,Sim(u,v)表示用戶u和用戶v的相似度;NULL表示不考慮未對(duì)項(xiàng)目i評(píng)分的近鄰用戶影響,實(shí)驗(yàn)中直接忽略,不納入預(yù)測(cè)值Pu,i的計(jì)算。
針對(duì)基本的協(xié)同過(guò)濾推薦算法在預(yù)測(cè)評(píng)分時(shí)不能有效解決近鄰用戶的大量未評(píng)分?jǐn)?shù)據(jù)這一問(wèn)題,有兩種解決途徑。第一種是通過(guò)機(jī)器學(xué)習(xí)方法做分類,采用隱語(yǔ)義模型和矩陣分解模型進(jìn)行降維,它需要構(gòu)造負(fù)樣本,這種方案效果很好,但負(fù)樣本的采樣一直沒(méi)有得到令人滿意的優(yōu)化解決,計(jì)算代價(jià)很大,在實(shí)際應(yīng)用中操作性和實(shí)時(shí)性不高。第二種是填充缺失值,基于領(lǐng)域進(jìn)行推薦[2,11-13]。文中利用用戶對(duì)項(xiàng)目興趣度的相關(guān)性,使用用戶本身的平均評(píng)分進(jìn)行預(yù)測(cè)的方案。該方案不會(huì)影響用戶-項(xiàng)目矩陣中的未評(píng)分元素,只是在最后預(yù)測(cè)評(píng)分時(shí)對(duì)未評(píng)分的數(shù)據(jù)進(jìn)行替代。它的好處是不需要填充原始用戶-項(xiàng)目矩陣,也就不會(huì)影響到用戶之間或者項(xiàng)目之間的相似度計(jì)算,其代價(jià)是需要維護(hù)一張用戶評(píng)分平均值表。
下面基于用戶的協(xié)同過(guò)濾對(duì)改進(jìn)算法進(jìn)行具體討論。這里將協(xié)同過(guò)濾推薦算法劃分為三個(gè)部分:數(shù)據(jù)表示、最近鄰構(gòu)建、結(jié)果產(chǎn)生。
2.1 數(shù)據(jù)表示
用戶對(duì)項(xiàng)目評(píng)分可以用表2所示的矩陣R(m,n)來(lái)表示,其中m表示用戶數(shù),n表示項(xiàng)目數(shù),Rv,i表示用戶v對(duì)項(xiàng)目i的評(píng)分。評(píng)分值可以用0、1來(lái)表示。Rv,i=1表示用戶v喜歡項(xiàng)目i;Rv,i=0表示用戶v不喜歡項(xiàng)目i;也可以用一個(gè)區(qū)間來(lái)表達(dá)一種喜愛(ài)程度。例如,MovieLens中用0~5的整數(shù)來(lái)表明用戶對(duì)電影的喜愛(ài)程度。以此為基礎(chǔ),對(duì)矩陣中沒(méi)有評(píng)分的值進(jìn)行預(yù)測(cè)。
表2 數(shù)據(jù)表示
2.2K近鄰形成
在基于用戶的協(xié)同過(guò)濾算法中關(guān)鍵是維護(hù)一張用戶相似表,它要求對(duì)于某一個(gè)用戶u,需要能夠找到他的K近鄰用戶。定義N(u)={u1,u2,…,uk}表示用戶u的近鄰用戶集序列,序列N(u)中的元素ui根據(jù)其與用戶u之間的相似程度由大到小排列。相似度的計(jì)算方法很多,在基于用戶的相似度計(jì)算中一般采用向量模型,即把矩陣中的一行看成是用戶的特征描述,再用向量模型進(jìn)行相似度計(jì)算。
一般地,相似度的度量方法有三種。
(1)余弦相似度。
把用戶對(duì)項(xiàng)目的評(píng)分組成一個(gè)n維向量,并把它看成用戶的特征向量(FeatureVector),通過(guò)計(jì)算特征向量之間的夾角余弦來(lái)度量?jī)蓚€(gè)用戶之間的相似性,夾角越小說(shuō)明用戶的相似性越大,如式(5)所示。
(5)
其中,I表示用戶u和v共同的評(píng)分項(xiàng)目集合;Ru,i表示用戶u對(duì)項(xiàng)目i的評(píng)分;Iu和Iv表示用戶u和v已經(jīng)評(píng)過(guò)分的項(xiàng)目集合。
(2)皮爾遜系數(shù)。
皮爾遜系數(shù)更加重視用戶之間的公共評(píng)分項(xiàng)目,其核心思想也是余弦定理。
Sim(u,v)=
(6)
(3)修正余弦相似度。
在余弦相似度的計(jì)算過(guò)程中,無(wú)法考慮不同用戶對(duì)項(xiàng)目集合評(píng)分在尺度上的差異性,有的用戶可能總體評(píng)分偏高,有的可能總體評(píng)分偏低,在這種情況下會(huì)出現(xiàn)喜愛(ài)程度一樣,但評(píng)分不一樣的狀況。由此,可以利用修正的余弦相似度評(píng)價(jià)來(lái)對(duì)上述公式進(jìn)行優(yōu)化,如式(7)所示。
Sim(u,v)=
(7)
從式(7)中可以看出,修正余弦與皮爾遜相關(guān)系數(shù)不同點(diǎn)是后者在分母方面采用的是用戶共同評(píng)分集合,而修正余弦則是單方面用戶的評(píng)分。
Sarwar利用MovieLens最小數(shù)據(jù)集對(duì)三種方案進(jìn)行對(duì)比,用MAE作為評(píng)測(cè)指標(biāo)說(shuō)明利用修正后的余弦相似度可以獲得最優(yōu)MAE[3]。文中相似度計(jì)算方法均采用修正余弦的度量方法。
把得到的結(jié)果存放在相似度表中,記為矩陣S(m,m),其中S(u,v)表示用戶u和用戶v的相似度。最后根據(jù)K值把S(m,m)中用戶u對(duì)應(yīng)行中K個(gè)最大相似的元素放入用戶u的K近鄰集合中,構(gòu)成N(u)。
2.3 評(píng)分預(yù)測(cè)
在得到用戶的K近鄰后,就可以對(duì)未知評(píng)分進(jìn)行預(yù)測(cè)了。采用改進(jìn)后的算法對(duì)三種方案進(jìn)行改進(jìn)。
(1)最簡(jiǎn)單平均值預(yù)測(cè)方案改進(jìn)。
?。?/p>
(8)
(2)面向相似性的鄰居評(píng)分加權(quán)平均數(shù)方案改進(jìn)。
?。?/p>
(9)
其中,Sim(u,v)表示用戶u和用戶v的相似度。
(3)基于每個(gè)用戶評(píng)分尺度的準(zhǔn)確評(píng)分公式改進(jìn)。
?。?/p>
(10)
從三種改進(jìn)方案可以看出,它們的核心是用鄰居用戶的平均分對(duì)打分為0的項(xiàng)目進(jìn)行替代。
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),三種方案各有利弊。第一種方案最簡(jiǎn)單,它同等看待所有鄰居用戶的貢獻(xiàn),改進(jìn)后會(huì)使得預(yù)測(cè)值更加平庸,個(gè)性化程度不明顯,推薦效果也最差。后兩種方法中由于已經(jīng)采用了修正余弦相似度獲得項(xiàng)目的相似度,考慮了不同用戶的評(píng)分尺度,所以文中直接采用較簡(jiǎn)單的式(2)及其對(duì)應(yīng)的修正式(4)與改進(jìn)式(9)對(duì)結(jié)果進(jìn)行預(yù)測(cè),并對(duì)比推薦質(zhì)量。
3.1 數(shù)據(jù)集
采用美國(guó)明尼蘇達(dá)GroupLens研究組提供的MovieLens數(shù)據(jù)集,MovieLens是一個(gè)基于推薦算法研究的Web站點(diǎn)[13],用來(lái)接收用戶對(duì)電影的評(píng)分和提供電影推薦列表?,F(xiàn)在MovieLens數(shù)據(jù)集總共分為3個(gè)不同大小的版本,文中選用小版本的數(shù)據(jù)集。它包含了943個(gè)用戶對(duì)1 682部電影的100 000條評(píng)分信息,每個(gè)用戶至少有20條以上的評(píng)分信息,評(píng)分取值從1到5代表用戶的喜好程度。
定義稀疏度為用戶未評(píng)分條目數(shù)占矩陣中所有數(shù)據(jù)條目的百分比。實(shí)驗(yàn)中稀疏度為:
(11)
將數(shù)據(jù)集分為訓(xùn)練集與測(cè)試集,為此引入變量x,表示訓(xùn)練集占數(shù)據(jù)集的百分比,在實(shí)驗(yàn)中始終使x=0.8,即訓(xùn)練集占80%,測(cè)試集占20%。另外為了保證評(píng)測(cè)指標(biāo)并不是過(guò)擬合的,共進(jìn)行了5次實(shí)驗(yàn),每次實(shí)驗(yàn)都使x=0.8,而訓(xùn)練集和測(cè)試集都重新隨機(jī)生成,保證得到不一樣的訓(xùn)練集與測(cè)試集,最后用5次實(shí)驗(yàn)的平均值作為最后的評(píng)測(cè)指標(biāo)。
3.2 度量指標(biāo)
在評(píng)分預(yù)測(cè)中,一般可通過(guò)均方根誤差(RMSE)和平均絕對(duì)誤差(MAE)來(lái)計(jì)算預(yù)測(cè)準(zhǔn)確度[14-15]。
(12)
(13)
其中,Ri為算法的預(yù)測(cè)評(píng)分;ri為真實(shí)評(píng)分。
其中RMSE是Netflix衡量協(xié)同過(guò)濾算法的評(píng)估指標(biāo)[2,11]。同時(shí)比較式(11)和式(12)可知,RMSE加大了對(duì)預(yù)測(cè)不準(zhǔn)的用戶項(xiàng)目評(píng)分的懲罰(平方懲罰),因而對(duì)推薦算法更加嚴(yán)苛。所以文中選用RMSE作為最終的評(píng)測(cè)指標(biāo)。
3.3 實(shí)驗(yàn)結(jié)果
在MovieLens數(shù)據(jù)集上離線實(shí)驗(yàn)了兩種協(xié)同過(guò)濾推薦算法和它們對(duì)應(yīng)的改進(jìn)算法,并采用不同K值(10,20,30,40,50,80)對(duì)比推薦質(zhì)量。
表3給出了K值為10時(shí)的部分實(shí)驗(yàn)結(jié)果。
表3 部分實(shí)驗(yàn)數(shù)據(jù)比較
從中可以發(fā)現(xiàn),采用式(4)的修正算法可以對(duì)原始結(jié)果進(jìn)行合理的改進(jìn),但效果有限,同時(shí)修正方案也存在預(yù)測(cè)評(píng)分為0的情況。而改進(jìn)算法相比前兩者能夠大幅度地提高預(yù)測(cè)評(píng)分的準(zhǔn)確性。
分析式(9)可以推測(cè),使用鄰居用戶平均分進(jìn)行替代,預(yù)測(cè)結(jié)果的起伏不會(huì)很大,所以最終的預(yù)測(cè)結(jié)果大部分集中在2~5。在實(shí)際應(yīng)用中,用戶對(duì)項(xiàng)目的打分也是如此,大部分人對(duì)自己沒(méi)有行為的項(xiàng)目或者不是特別喜歡的項(xiàng)目會(huì)保守地以中間值附近的分?jǐn)?shù)進(jìn)行評(píng)分,這種結(jié)果符合大眾的評(píng)分心理。
綜上所述,改進(jìn)算法可以更加準(zhǔn)確地體現(xiàn)用戶現(xiàn)實(shí)的狀態(tài),預(yù)測(cè)用戶的評(píng)分?jǐn)?shù)據(jù),預(yù)測(cè)結(jié)果更加趨近于真實(shí)結(jié)果,同時(shí)也不會(huì)過(guò)度平庸,仍然能夠反映用戶的個(gè)性化打分。最終結(jié)果的RMSE值對(duì)比由圖1~圖3分別給出。
圖1 協(xié)同過(guò)濾推薦結(jié)果
圖2 協(xié)同過(guò)濾的修正推薦結(jié)果
圖3 協(xié)同過(guò)濾的改進(jìn)推薦結(jié)果
對(duì)比推薦結(jié)果可以看出,修正算法能夠提高推薦質(zhì)量。而經(jīng)過(guò)改進(jìn)后的算法優(yōu)于前兩種方法,不管是在基于用戶的協(xié)同過(guò)濾,還是在基于項(xiàng)目的協(xié)同過(guò)濾上,都能夠顯著提高推薦質(zhì)量,得到更小的RMSE值。
3.4 分析與討論
修正算法在評(píng)分時(shí)忽略了用戶對(duì)項(xiàng)目評(píng)分為0的情況,可以提高推薦質(zhì)量。但是,這種方法忽略了部分近鄰用戶,難以更準(zhǔn)確地體現(xiàn)用戶喜好。由圖2可知,當(dāng)K值較小時(shí),RMSE值不理想,同時(shí),預(yù)測(cè)的用戶評(píng)分中仍然存在分?jǐn)?shù)為0的情況(K近鄰用戶都未對(duì)該項(xiàng)目打分),這是不合理的。而文中改進(jìn)算法可以有效避免修正算法的弊端,RMSE值下降了0.2左右。
在解決稀疏性的問(wèn)題中,機(jī)器學(xué)習(xí)途徑的核心思想是構(gòu)造負(fù)樣本,通過(guò)降維的方法補(bǔ)全評(píng)分矩陣,一些著名算法在NetflixPrize上的推薦質(zhì)量很高。例如,在Funk-SVD模型基礎(chǔ)上加入偏置項(xiàng)后的BiasSVD模型,在參數(shù)F取96時(shí),能將RMSE值降到0.903 9。加入時(shí)間信息的TimeSVD++模型在參數(shù)F取50時(shí),RMSE值為0.882 4[2]。但這類方法的計(jì)算復(fù)雜度較高,一些模型只能運(yùn)用在幾百個(gè)用戶、幾百個(gè)項(xiàng)目的實(shí)驗(yàn)上,在實(shí)際運(yùn)用中實(shí)時(shí)性很難保證。相比之下,文中提出的改進(jìn)算法在推薦質(zhì)量和算法復(fù)雜度上都達(dá)到了可接受的程度,空間上只需要維護(hù)一張用戶評(píng)分均值表,比機(jī)器學(xué)習(xí)的方法更加易于操作和實(shí)用。
針對(duì)協(xié)同過(guò)濾系統(tǒng)中的數(shù)據(jù)稀疏問(wèn)題,在預(yù)測(cè)評(píng)分階段以最近鄰用戶打分的平均值對(duì)未評(píng)分的數(shù)據(jù)進(jìn)行替代,可以有效降低數(shù)據(jù)稀疏帶來(lái)的負(fù)面影響,同時(shí)又不會(huì)影響到用戶間的相似度計(jì)算,推薦結(jié)果不會(huì)過(guò)度擬合和過(guò)度平庸,能更加真實(shí)地反映用戶的喜好程度,并且該方案比機(jī)器學(xué)習(xí)更加易于操作和實(shí)用。實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法能夠有效避免傳統(tǒng)評(píng)分預(yù)測(cè)階段的弊端,顯著提高了推薦算法的推薦質(zhì)量。最終取得了最好的RMSE值(1.01)。
[1]DeshpandeM,KarypisG.Item-basedtop-nrecommendationalgorithms[J].ACMTransactionsonInformationSystems,2004,22(1):143-177.
[2] 項(xiàng) 亮,陳 義,王 益.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012.
[3]SarwarB,KarypisG,KonstanJ,etal.Item-basedcollaborativefilteringrecommendationalgorithms[C]//Proceedingsofthe10thinternationalconferenceonworldwideweb.[s.l.]:ACM,2001:285-295.
[4] 蔣宗禮,陸 晨.基于級(jí)聯(lián)二部圖的動(dòng)態(tài)推薦算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(12):4356-4361.
[5] 馬宏偉,張光衛(wèi),李 鵬.協(xié)同過(guò)濾推薦算法綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(7):1282-1288.
[6] 許海玲,吳 瀟,李曉東,等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào),2009,20(2):350-362.
[7] 冷亞軍,陸 青,梁昌勇.協(xié)同過(guò)濾推薦技術(shù)綜述[J].模式識(shí)別與人工智能,2014,27(8):720-734.
[8]RicciF,ShapiraB.Recommendersystemshandbook[M].[s.l.]:Springer,2011.
[9]ZhongZ,SunY,WangY,etal.Animprovedcollaborativefilteringrecommendationalgorithmnotbasedonitemrating[C]//14thinternationalconferenceoncognitiveinformatics&cognitivecomputing.[s.l.]:IEEE,2015:230-233.
[10] 鄧愛(ài)林,朱揚(yáng)勇,施伯樂(lè).基于項(xiàng)目評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法[J].軟件學(xué)報(bào),2003,14(9):1621-1628.
[11]PanR,ZhouY,CaoB,etal.One-classcollaborativefiltering[C]//EighthIEEEinternationalconferenceondatamining.[s.l.]:IEEE,2008:502-511.
[12] 王元濤.Netflix數(shù)據(jù)集上的協(xié)同過(guò)濾算法[D].北京:清華大學(xué),2009.
[13]SchaferJB,DanF,HerlockerJ,etal.Collaborativefilteringrecommendersystems[C]//Theadaptiveweb,methodsandstrategiesofwebpersonalization.[s.l.]:[s.n.],2015:45-46.
[14] 朱郁筱,呂琳媛.推薦系統(tǒng)評(píng)價(jià)指標(biāo)綜述[J].電子科技大學(xué)學(xué)報(bào),2012,41(2):163-175.
[15] 朱揚(yáng)勇,孫 靖.推薦系統(tǒng)研究進(jìn)展[J].計(jì)算機(jī)科學(xué)與檢索,2015,9(5):513-525.
Improvement of Collaborative Filtering Recommendation Algorithm with Mean Value Estimation
JIANG Zong-li,WANG Wei,LU Chen
(College of Computer Science and Technology,Beijing University of Technology,Beijing 100124,China)
There are a lot of unrated elements in the user-item matrix in collaborative filtering recommendation system,and final prediction value is calculated by the weighted average of nearest-neighbor scores.The values of unrated elements are regarded as 0 by traditional methods,which results in a generally low prediction score for the unrated elements.In order to solve the problem caused by sparsity,an improved collaborative filtering recommendation algorithm with mean value estimation is proposed.The average score of the nearest-neighbor scores are employed to evaluate the unrated data,effective reduction of negative influence of unrated items in this algorithm.At the same time,this method is not a simple average filling,but in the third stage of collaborative filtering algorithm,when needing to use nearest-neighbor users to predict,the 0 score is replaced.This won’t affect the calculation of similarity,and predicted results not mediocrity.The experiment results with 93.7% sparse degree show that the recommendation quality can be improved and that the best RMSE value,1.01,has been reached.
collaborative filtering;recommendation algorithm;sparsity;rating prediction;RMSE
2016-03-12
2016-06-22 網(wǎng)絡(luò)出版時(shí)間:2017-03-13
國(guó)家級(jí)精品資源課程建設(shè)(007000523339)
蔣宗禮(1956-),男,教授,CCF會(huì)員,研究方向?yàn)榫W(wǎng)絡(luò)信息搜索與處理;王 威(1992-),男,碩士研究生,研究方向?yàn)橥扑]算法。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170313.1545.002.html
TP301.6
A
1673-629X(2017)05-0001-05
10.3969/j.issn.1673-629X.2017.05.001