基于聚類和Slope One預(yù)測的協(xié)同過濾方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種協(xié)同過濾方法,尤其涉及基于聚類和Slope One預(yù)測的協(xié)同過濾方法。
【背景技術(shù)】
[0002]隨著電子商務(wù)的發(fā)展,電子商務(wù)的信息過載問題越來越嚴(yán)重,海量的商品信息,必然帶來信息的冗余。推薦系統(tǒng)可以模擬銷售人員向客戶推薦商品,因此在電子商務(wù)中得到廣泛的應(yīng)用。目前研宄人員提出了多種推薦方法,其中協(xié)同過濾推薦是推薦系統(tǒng)中最有效最成功的推薦算法。然而,在實(shí)際應(yīng)用中,協(xié)同過濾推薦算法還存在一些局限性,隨著系統(tǒng)規(guī)模的擴(kuò)大和用戶數(shù)量的增加,評分矩陣的維數(shù)不斷增加,但實(shí)際評分?jǐn)?shù)據(jù)稀少,導(dǎo)致推薦系統(tǒng)的實(shí)時(shí)性和準(zhǔn)確度都有所降低,鄰居用戶的查找不夠準(zhǔn)確,從而影響推薦質(zhì)量和效率。
[0003]針對數(shù)據(jù)的稀疏性,很多學(xué)者提出了預(yù)先對評分矩陣填充的方法。這些方法在一定程度上降低了評分?jǐn)?shù)據(jù)的稀疏性,提高了推薦的質(zhì)量,但仍存在一些不足。綜上所述,迫切需要研宄一種新的協(xié)同過濾方法。
【發(fā)明內(nèi)容】
[0004]針對協(xié)同過濾推薦算法存在預(yù)測精度低,聚類準(zhǔn)確性差等問題,本發(fā)明研制一種基于聚類和Slope One預(yù)測的協(xié)同過濾方法。
[0005]本發(fā)明其特征在于,包括以下步驟:
[0006](I)根據(jù)皮爾遜相似度公式計(jì)算項(xiàng)目i和項(xiàng)目j的屬性相似性,記為sims (i, j);
[0007](2)根據(jù)現(xiàn)有項(xiàng)目的既得評分,組成前述的評分矩陣,計(jì)算兩個(gè)項(xiàng)目之間的評分相似性,記為simr (i, j);
[0008](3)將前兩步所得結(jié)果進(jìn)行線性組合,組合結(jié)果作為最終的綜合相似性,記為sim(i,j):sim(i, j) = a Sims (i, j) + (1- α ) simr (i, j);
[0009](4)對sim(i, j)按從大到小排序。取相似度最大的前kn個(gè)項(xiàng)目作為鄰居項(xiàng)目,從而得到目標(biāo)項(xiàng)目的鄰居項(xiàng)目集I = Ul,i2,i3-1kn},在這個(gè)鄰居項(xiàng)目集的基礎(chǔ)上,對目標(biāo)用戶運(yùn)用加權(quán)SlopeOne算法進(jìn)行預(yù)測,將預(yù)測評分填入空缺的評分矩陣。
[0010]所述項(xiàng)目i和j的相同屬性越多,相似度越高。當(dāng)兩項(xiàng)目具有完全相同的屬性時(shí),我們可認(rèn)為這是同一個(gè)項(xiàng)目;
[0011]所述α代表項(xiàng)目屬性所占的比重,其中a e (0,I),可以根據(jù)經(jīng)驗(yàn)或者專家建議進(jìn)行調(diào)節(jié),得到最優(yōu)的推薦結(jié)果。
【附圖說明】
[0012]圖1是基于聚類和Slope One預(yù)測的協(xié)同過濾方法實(shí)施流程圖。
[0013]圖2是本發(fā)明SlopeOne模型與傳統(tǒng)SlopeOne模型MAE對比圖。
[0014]圖3是本發(fā)明和傳統(tǒng)SlopeOne模型在數(shù)據(jù)集上的對比圖。
[0015]圖4是引入用戶聚類的推薦和傳統(tǒng)協(xié)同過濾推薦的MAE對比圖。
[0016]圖5是引入用戶聚類的推薦和傳統(tǒng)推薦的對比圖。
[0017]圖6是10個(gè)目標(biāo)用戶下本發(fā)明方法和傳統(tǒng)協(xié)同過濾推薦的MAE對比圖。
[0018]圖7是10個(gè)目標(biāo)用戶下本發(fā)明方法和傳統(tǒng)協(xié)同過濾推薦實(shí)驗(yàn)對比。
[0019]圖8是15個(gè)目標(biāo)用戶下本發(fā)明方法和傳統(tǒng)協(xié)同過濾推薦的MAE對比圖。
[0020]圖9是15個(gè)目標(biāo)用戶下本發(fā)明方法和傳統(tǒng)協(xié)同過濾推薦實(shí)驗(yàn)對比。
[0021]圖10是4種方法實(shí)驗(yàn)結(jié)果對比圖。
【具體實(shí)施方式】
[0022]為更好地理解本發(fā)明,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明進(jìn)行更為詳細(xì)描述。在以下的描述中,當(dāng)已有的現(xiàn)有技術(shù)的詳細(xì)描述也許會淡化本發(fā)明的主題內(nèi)容時(shí),這些描述在這兒將被忽略。
[0023]圖1是本發(fā)明基于聚類和Slope One預(yù)測的協(xié)同過濾方法實(shí)施流程圖。在本實(shí)施例中,本發(fā)明的基于聚類和Slope One預(yù)測的協(xié)同過濾方法包括以下步驟:
[0024]首先驗(yàn)證基于項(xiàng)目屬性相似的SlopeOne預(yù)測模型對協(xié)同過濾推薦的有效性,然后驗(yàn)證用戶聚類對協(xié)同過濾推薦的有效性,最后驗(yàn)證基于以上兩者結(jié)合的算法對推薦質(zhì)量是否提尚。
[0025]本發(fā)明采用Movielens數(shù)據(jù)集,該數(shù)據(jù)集包括943個(gè)用戶對1682部電影的100000條評分。其中評分?jǐn)?shù)據(jù)從I到5,評分越高,表示用戶對電影越喜歡。為了對比本文算法效果,減小實(shí)驗(yàn)誤差,實(shí)驗(yàn)采用5折交叉法。每次從數(shù)據(jù)集中抽取250個(gè)用戶和250部電影,組成I個(gè)訓(xùn)練數(shù)據(jù)集,對應(yīng)訓(xùn)練數(shù)據(jù)集,抽取相應(yīng)的I個(gè)測試數(shù)據(jù)集,總共抽取5組這樣的數(shù)據(jù)集。實(shí)驗(yàn)過程采用以上5組數(shù)據(jù)集,分別對5個(gè)訓(xùn)練集和5個(gè)測試集進(jìn)行實(shí)驗(yàn),將實(shí)驗(yàn)結(jié)果取平均作為最終結(jié)果。
[0026](I)基于項(xiàng)目屬性相似的SlopeOne預(yù)測模型有效性驗(yàn)證
[0027]分別將傳統(tǒng)SlopeOne模型和基于項(xiàng)目屬性相似的SlopeOne預(yù)測模型應(yīng)用到協(xié)同過濾推薦。選取15個(gè)目標(biāo)用戶,鄰居用戶數(shù)目分別從k = 10遞增到k = 50,每次增加10個(gè)。分別對5組數(shù)據(jù)進(jìn)行實(shí)驗(yàn),最后取平均值作為實(shí)驗(yàn)結(jié)果,用圖2-圖3表示,實(shí)驗(yàn)結(jié)果表明,基于項(xiàng)目屬性相似的SlopeOne預(yù)測模型應(yīng)用于推薦系統(tǒng)后,推薦誤差明顯小于傳統(tǒng)SlopeOne預(yù)測的推薦。同時(shí),計(jì)算過程大大簡化,減小了計(jì)算開銷,推薦效率得到提高。
[0028](2)基于用戶特征的聚類有效性驗(yàn)證
[0029]將引入用戶聚類的推薦算法與傳統(tǒng)協(xié)同過濾推薦算法進(jìn)行對比實(shí)驗(yàn)。本發(fā)明的初始聚類是根據(jù)用戶的年齡劃分為7個(gè)聚類,然后不斷進(jìn)行迭代,將聚類后的用戶應(yīng)用到協(xié)同過濾推薦中。選取15個(gè)目標(biāo)用戶,鄰居用戶數(shù)目分別從k = 10遞增到k = 50,每次增加10個(gè)。分別對5組數(shù)據(jù)進(jìn)行實(shí)驗(yàn),最后取平均值作為實(shí)驗(yàn)結(jié)果,用圖4-圖5表示,實(shí)驗(yàn)結(jié)果表明,引入用戶特征聚類的推薦算法的推薦誤差明顯減小,在取較少的鄰居用戶時(shí),就可取得較好的推薦結(jié)果。在鄰居用戶數(shù)目繼續(xù)增大時(shí),推薦誤差增大或不穩(wěn)定,這是因?yàn)榫垲愡^程使用戶空間變小,在鄰居用戶數(shù)目過大時(shí),用戶間的實(shí)際相似度已經(jīng)很低,并非真正意義的最近鄰,從而影響推薦結(jié)果。因此,實(shí)際應(yīng)用中不宜選取過多的鄰居用戶。
[0030](3)基于SlopeOne預(yù)測模型和聚類的協(xié)同過濾算法有效性驗(yàn)證
[0031]將基于SlopeOne預(yù)測模型和聚類的協(xié)同過濾算法與傳統(tǒng)的協(xié)同過濾推薦算法進(jìn)行對比實(shí)驗(yàn)。分別對5組數(shù)據(jù)進(jìn)行實(shí)驗(yàn),最后取平均值作為實(shí)驗(yàn)結(jié)果。
[0032]實(shí)驗(yàn)采用逐漸增加目標(biāo)用戶數(shù)目的形式,對每組數(shù)據(jù)集分別取10、15個(gè)目標(biāo)用戶進(jìn)行實(shí)驗(yàn),并取每組用戶誤差平均值作為結(jié)果。隨目標(biāo)用戶數(shù)目的增大,有利于平衡誤差。每次實(shí)驗(yàn),目標(biāo)用戶都是隨機(jī)抽取。
[0033]從圖6-圖7可以看出,當(dāng)選取10個(gè)目標(biāo)用戶時(shí),本發(fā)明提出的方法不論最近鄰居數(shù)目的多少,都優(yōu)于或近似于傳統(tǒng)算法。尤其是在最近鄰居數(shù)目少的情況下,效果更明顯。
[0034]由圖8-圖9可以看出,隨著相似鄰居數(shù)目的增加,本發(fā)明提出的方法從整體上要優(yōu)于傳統(tǒng)協(xié)同過濾推薦算法,并且當(dāng)相似鄰居數(shù)目達(dá)到20時(shí),推薦已經(jīng)比較穩(wěn)定。同時(shí),鄰居用戶數(shù)目的減少,使搜索空間減小,可大大提高推薦的效率。
[0035]取以上15個(gè)目標(biāo)用戶,將本發(fā)明方法、傳統(tǒng)推薦算法、只引入基于項(xiàng)目屬性相似的SlopeOne預(yù)測模型的推薦算法和只引入基于用戶特征聚類的推薦算法的實(shí)驗(yàn)結(jié)果數(shù)據(jù)繪制在同一張折線圖上,比較其MAE,實(shí)驗(yàn)對比如圖10所示。
[0036]將本發(fā)明方法與只引入基于項(xiàng)目屬性相似SlopeOne預(yù)測模型的推薦算法或只引入基于用戶特征聚類的推薦算法對比可知,雖然后面二者比傳統(tǒng)算法在精度上有所提高,但是隨著鄰居用戶數(shù)的增大,推薦效果的提升有限,推薦質(zhì)量不穩(wěn)定。這是由于數(shù)據(jù)過于稀疏的情況下,通過本發(fā)明SlopeOne或聚類處理以后,雖然在一定程度上排除了不相關(guān)用戶的影響,但也對數(shù)據(jù)進(jìn)行了降維,當(dāng)最近鄰居數(shù)目過大以后,用戶實(shí)際的相似程度卻變得很低,導(dǎo)致當(dāng)鄰居用戶數(shù)目過大時(shí),推薦質(zhì)量降低。而本發(fā)明方法彌補(bǔ)了以上兩種算法的不足,降低了數(shù)據(jù)稀疏程度,縮小相似鄰居搜索空間,既提高推薦效率,又提高了推薦的精度,使推薦更有效。
[0037]盡管上面對本發(fā)明說明性的【具體實(shí)施方式】進(jìn)行了描述,但應(yīng)當(dāng)清楚,本發(fā)明不限于【具體實(shí)施方式】的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。
【主權(quán)項(xiàng)】
1.基于聚類和SlopeOne預(yù)測的協(xié)同過濾方法,其特征在于,包括以下步驟:(1)根據(jù)皮爾遜相似度公式計(jì)算項(xiàng)目i和項(xiàng)目j的屬性相似性,記為sims(i,j) ;(2)根據(jù)現(xiàn)有項(xiàng)目的既得評分,組成前述的評分矩陣,計(jì)算兩個(gè)項(xiàng)目之間的評分相似性,記為simji,j);(3)將前兩步所得結(jié)果進(jìn)行線性組合,組合結(jié)果作為最終的綜合相似性,記為sim(i,j):sim(i, j) = a sims(i, j) + (l-a )simr(i, j) ; (4)對 sim(i, j)按從大到小排序。取相似度最大的前kn個(gè)項(xiàng)目作為鄰居項(xiàng)目,從而得到目標(biāo)項(xiàng)目的鄰居項(xiàng)目集I = Ul,i2, i3-1kn},在這個(gè)鄰居項(xiàng)目集的基礎(chǔ)上,對目標(biāo)用戶運(yùn)用加權(quán)SlopeOne算法進(jìn)行預(yù)測,將預(yù)測評分填入空缺的評分矩陣。
2.根據(jù)權(quán)利要求1所述的基于聚類和SlopeOne預(yù)測的協(xié)同過濾方法其特征在于:權(quán)利要求I中(I)所述項(xiàng)目i和j的相同屬性越多,相似度越高。當(dāng)兩項(xiàng)目具有完全相同的屬性時(shí),我們可認(rèn)為這是同一個(gè)項(xiàng)目; 權(quán)利要求1中⑶所述a代表項(xiàng)目屬性所占的比重,其中a e (0,1),可以根據(jù)經(jīng)驗(yàn)或者專家建議進(jìn)行調(diào)節(jié),得到最優(yōu)的推薦結(jié)果。
【專利摘要】基于聚類和Slope One預(yù)測的協(xié)同過濾方法。針對傳統(tǒng)協(xié)同過濾算法用戶評分矩陣稀疏和擴(kuò)展性問題,引入項(xiàng)目屬性相似性改善Slope One預(yù)測模型,并將其與基于用戶的聚類相結(jié)合應(yīng)用于協(xié)同過濾推薦,以降低用戶評分矩陣的稀疏性,提高目標(biāo)用戶最近鄰居的查詢速度,降低搜索開銷。實(shí)驗(yàn)結(jié)果表明,本發(fā)明的協(xié)同過濾方法有效地提高了推薦質(zhì)量。
【IPC分類】G06Q30-02
【公開號】CN104751353
【申請?zhí)枴緾N201510169934
【發(fā)明人】龔安, 高云, 高震, 唐永紅, 高洪福, 劉亞囡
【申請人】中國石油大學(xué)(華東)
【公開日】2015年7月1日
【申請日】2015年4月10日