本發(fā)明涉及互聯(lián)網(wǎng)個(gè)性化推薦領(lǐng)域,尤其涉及一種基于用戶(hù)偏好的協(xié)同過(guò)濾推薦方法。
背景技術(shù):
internet技術(shù)的快速發(fā)展增加了web信息的容量,如何為用戶(hù)提供有價(jià)值的信息成為電子商務(wù)必須面對(duì)的問(wèn)題。推薦系統(tǒng)通過(guò)學(xué)習(xí)用戶(hù)的行為,了解和掌握用戶(hù)的偏好,從而可以更有針對(duì)性地向用戶(hù)推薦他們可能感興趣的內(nèi)容。協(xié)同過(guò)濾是推薦系統(tǒng)中的一種流行技術(shù),它能有效地解決信息過(guò)載問(wèn)題,幫助用戶(hù)迅速找到有價(jià)值的信息,過(guò)濾無(wú)用信息。其基本思想是:依據(jù)用戶(hù)的購(gòu)買(mǎi)記錄、評(píng)分記錄、瀏覽記錄以及標(biāo)注等,推薦給用戶(hù)所需要的信息或者預(yù)測(cè)用戶(hù)對(duì)項(xiàng)目的興趣偏好,以實(shí)現(xiàn)推薦結(jié)果的個(gè)性化。
基于用戶(hù)的協(xié)同過(guò)濾推薦算法利用用戶(hù)間的相似愛(ài)好推薦用戶(hù)目標(biāo),其結(jié)果可解釋性強(qiáng)。但數(shù)據(jù)的極端稀疏影響用戶(hù)近鄰的準(zhǔn)確選擇。針對(duì)此問(wèn)題,文獻(xiàn):b.jeong,j.lee,h.cho.usercredit-basedcollaborativefiltering[j].expertsystemswithapplications,2009,36(6):7309-7312(b.jeong,j.lee,h.cho,基于用戶(hù)信用的協(xié)同過(guò)濾[j],專(zhuān)家系統(tǒng)及其應(yīng)用,2009,36(6):7309-7312)利用用戶(hù)-項(xiàng)目評(píng)分矩陣設(shè)計(jì)了利用用戶(hù)的信用等級(jí)代替用戶(hù)之間相似度的計(jì)算,利用用戶(hù)間不同的級(jí)別能更好地尋找目標(biāo)用戶(hù)的近鄰;文獻(xiàn):f.j.huete,j.m.fernandez-luna,m.camposluis,etal.usingpasting-predictionaccuracyinrecommendersystems[j].informationsciences,2012,199(15)78-92(在推薦系統(tǒng)中利用粘貼預(yù)測(cè)精度[j],信息科學(xué),2012,199(15)7892)。依據(jù)用戶(hù)過(guò)去評(píng)分的相關(guān)性,有效地利用用戶(hù)的評(píng)分習(xí)慣,提高了推薦質(zhì)量;文獻(xiàn):林耀進(jìn),胡學(xué)鋼,李慧宗.基于用戶(hù)群體影響的協(xié)同過(guò)濾推薦算法[j].情報(bào)學(xué)報(bào),2013,32(3):299-3055利用用戶(hù)個(gè)體之間的相似性和用戶(hù)所處群體之間的相似性,準(zhǔn)確尋找目標(biāo)用戶(hù)的近鄰;文獻(xiàn):李鵬,于曉洋,孫渤禹.基于用戶(hù)群組行為分析的視頻推薦方法研究[j].電子與信息學(xué)報(bào),2014,36(6):1485-1491通過(guò)rfm模型分析用戶(hù)行劃分群組,然后基于相似向量比對(duì)用戶(hù)的相似度,提高推薦效率和準(zhǔn)確性;文獻(xiàn):冷亞軍,梁昌勇,丁勇,陸青,等.協(xié)同過(guò)濾中一種有效的最近鄰選擇方法[j].模式識(shí)別與人工智能,2013,26(10):68-974提出一種有效的針對(duì)稀疏評(píng)分的最近鄰選擇方法:兩階段最近鄰選擇算法。
在基于用戶(hù)的協(xié)同過(guò)濾推薦模型中,評(píng)分矩陣r(m,n)包含m個(gè)用戶(hù)的集合user={u1,u2,...,um}和n個(gè)項(xiàng)目的集合item={i1,i2,...,in},如表1所示。其中,矩陣的行表示用戶(hù),列表示項(xiàng)目,ri,j表示用戶(hù)ui(1≤i≤m)對(duì)項(xiàng)目ij(1≤j≤n)的評(píng)分。
表1用戶(hù)-項(xiàng)目評(píng)分矩陣
為獲取目標(biāo)用戶(hù)的相似鄰居,需計(jì)算用戶(hù)間的相似度,傳統(tǒng)的相似性度量方法主要有以下二種:
(1)相關(guān)相似性(pearsoncorrelationcoefficient,pcc),通過(guò)pearson相關(guān)系數(shù)度量用戶(hù)之間的相似度,即
(2)余弦相似性(cosine,cos),通過(guò)向量間的余弦?jiàn)A角度量用戶(hù)之間的相似度,即
式(1)和(2)中,ua和ub表示用戶(hù)集合中任意二位用戶(hù),sim(ua,ub)表示用戶(hù)之間的相似度。其中,c(a,b)表示用戶(hù)ua和ub共同評(píng)分項(xiàng)的集合,ra,k表示用戶(hù)ua對(duì)項(xiàng)目ik的評(píng)分,
通過(guò)式(1)或(2),可得到用戶(hù)之間的相似度矩陣。進(jìn)一步利用用戶(hù)之間相似度大小,為目標(biāo)用戶(hù)尋找k個(gè)最相似的鄰居用戶(hù)。最后,通過(guò)式(3)對(duì)目標(biāo)用戶(hù)的未評(píng)分項(xiàng)進(jìn)行預(yù)測(cè)。
式(3)中,pt,i為目標(biāo)用戶(hù)ut對(duì)未評(píng)分項(xiàng)ii的評(píng)分,k為目標(biāo)用戶(hù)ut近鄰的個(gè)數(shù),rx,i為用戶(hù)ux對(duì)項(xiàng)目ii的評(píng)分,
傳統(tǒng)的相似性度量算法(pcc和cos)過(guò)分依賴(lài)用戶(hù)間的共同評(píng)分項(xiàng),未從全局考慮用戶(hù)的評(píng)分傾向性。為更好地度量用戶(hù)之間的相似性,現(xiàn)有一種引入nhsm相似性度量方法,該方法主要體現(xiàn)三方面信息:用戶(hù)之間評(píng)分差異(pss),用戶(hù)之間共同評(píng)分項(xiàng)(jaccard')及所有用戶(hù)潛在評(píng)分傾向性(urp)。新啟發(fā)式相似性度量方法定義如式(4)所示。
sim(ua,ub)nhsm=sim(ua,ub)pss×sim(ua,ub)jaccard′×sim(ua,ub)urp(4)
式中,ua和ub表示用戶(hù)集合中任意二位用戶(hù),sim(ua,ub)pss定義如式(5)所示:
式(5)中,
proximity(ra,k,rb,k)=1-1/(1+exp(-|ra,k-rb,k|))(6)
significance(ra.k,rb,k)=1/(1+exp(-|ra,k-rmed|·|rb,k-rmed|))(7)
singularity(ra,k,rb,k)=1-1/(1+exp(-|(ra,k-rb,k)/2-μk|)(8)
式(6-8)中,μk為項(xiàng)目k的平均評(píng)分,ra,k為用戶(hù)ua對(duì)項(xiàng)目ik的評(píng)分,rmed為評(píng)分集合的中位數(shù)。
其次,利用改進(jìn)的jaccard系數(shù)來(lái)反映共同評(píng)分項(xiàng)帶來(lái)的影響,定義如(9)所示。
式中,|ia|為用戶(hù)ua已評(píng)分項(xiàng)的個(gè)數(shù),|ia∩ib|為用戶(hù)ua和ub的共同評(píng)分項(xiàng)個(gè)數(shù)。
最后,用戶(hù)潛在的評(píng)分傾向性用式(10)度量。
式中,μa和μb分別為用戶(hù)ua和ub的平均評(píng)分;
基于用戶(hù)的協(xié)同過(guò)濾推薦算法是利用用戶(hù)之間的相互作用,通過(guò)尋找最相似的k鄰居來(lái)輔助目標(biāo)用戶(hù)預(yù)測(cè)未評(píng)分項(xiàng)。但用戶(hù)在評(píng)分時(shí)存在偏好行為,存在用戶(hù)打分偏低或偏高的情況,相似興趣的用戶(hù)也存在評(píng)分不同,會(huì)導(dǎo)致計(jì)算用戶(hù)之間的相似性出現(xiàn)偏差,這影響推薦的質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供了一種進(jìn)一步提升推薦質(zhì)量的基于用戶(hù)偏好的協(xié)同過(guò)濾推薦方法。
本發(fā)明通過(guò)以下技術(shù)手段解決上述技術(shù)問(wèn)題的:一種基于用戶(hù)偏好的協(xié)同過(guò)濾推薦方法,包括下述步驟:
步驟1:輸入用戶(hù)-項(xiàng)目評(píng)分矩陣,取所有用戶(hù)評(píng)分的平均評(píng)分,設(shè)定為閾值p,依據(jù)該閾值p將用戶(hù)分為偏好高評(píng)用戶(hù)和偏好低評(píng)用戶(hù);
步驟2:利用nhsm相似性度量方法計(jì)算任意二位用戶(hù)之間的相似度,獲得用戶(hù)間的相似矩陣sim;
步驟3:設(shè)目標(biāo)用戶(hù)ua,其同偏好用戶(hù)群體為s,不同偏好群體為d,計(jì)算目標(biāo)用戶(hù)ua與其他用戶(hù)ub的相似度:
如maxsim(ua,ub)s>maxsim(ua,ub)d則:
如maxsim(ua,ub)s≤maxsim(ua,ub)d則:
式(12)和(13)中,sim(ua,ub)為用戶(hù)ua和ub的相似度,其中,ua表示目標(biāo)用戶(hù),ub表示其他用戶(hù),maxsim(ua,ub)s為ua與s中相似度最大的值,maxsim(ua,ub)d為ua與d中相似度最大的值,
步驟4:利用式(14)得到用戶(hù)間新的相似矩陣newsim:
步驟5:根據(jù)式(15)預(yù)測(cè)目標(biāo)用戶(hù)ut在項(xiàng)目ii上的評(píng)分pt,i:
式(15)中,pt,i為目標(biāo)用戶(hù)ut對(duì)項(xiàng)目ii的評(píng)分。其中,υ表示目標(biāo)用戶(hù)的近鄰集合,xk表示目標(biāo)用戶(hù)ut的第k個(gè)近鄰,近鄰個(gè)數(shù)k由大間隔自動(dòng)確定,
優(yōu)選的,所述步驟1中,閾值p根據(jù)評(píng)分矩陣確定,如式(11)所示:
式中,
優(yōu)選的,所述步驟2中的相似度計(jì)算方法如下:
sim(ua,ub)nhsm=sim(ua,ub)pss×sim(ua,ub)jaccard′×sim(ua,ub)urp(4)
式中,ua和ub表示用戶(hù)集合中任意二位用戶(hù),sim(ua,ub)pss定義如式(5)所示:
式(5)中,
proximity(ra,k,rb,k)=1-1/(1+exp(-|ra,k-rb,k|))(6)
significance(ra.k,rb,k)=1/(1+exp(-|ra,k-rmed|·|rb,k-rmed|))(7)
singularity(ra,k,rb,k)=1-1/(1+exp(-|(ra,k-rb,k)/2-μk|)(8)
式(6-8)中,μk為項(xiàng)目k的平均評(píng)分,ra,k為用戶(hù)ua對(duì)項(xiàng)目ik的評(píng)分,rmed為評(píng)分集合的中位數(shù)。
其次,利用改進(jìn)的jaccard系數(shù)來(lái)反映共同評(píng)分項(xiàng)帶來(lái)的影響,定義如(9)所示。
式中,|ia|為用戶(hù)ua已評(píng)分項(xiàng)的個(gè)數(shù),|ia∩ib|為用戶(hù)ua和ub的共同評(píng)分項(xiàng)個(gè)數(shù)。
最后,用戶(hù)潛在的評(píng)分傾向性用式(10)度量。
式中,μa和μb分別為用戶(hù)ua和ub的平均評(píng)分;
本發(fā)明相比現(xiàn)有技術(shù)具有以下優(yōu)點(diǎn):構(gòu)建一種基于用戶(hù)偏好的協(xié)同過(guò)濾推薦模型,減少了預(yù)測(cè)結(jié)果的偶然性。實(shí)驗(yàn)結(jié)果表明,與其他推薦方法相比,本發(fā)明的推薦方法能夠更加精確地度量用戶(hù)間的相似度,提高推薦質(zhì)量。
附圖說(shuō)明
圖1是本發(fā)明基于用戶(hù)偏好的協(xié)同過(guò)濾推薦方法的流程圖。
圖2是本發(fā)明實(shí)施例中movielens數(shù)據(jù)集中用戶(hù)評(píng)分分布情況。
圖3為在movielens數(shù)據(jù)集上,隨近鄰數(shù)k的變化,mae的變化情況。
圖4為在movielens數(shù)據(jù)集上,隨近鄰數(shù)k的變化,coverage的變化情況。
圖5為在jester-data-2數(shù)據(jù)集,隨近鄰數(shù)k的變化,mae的變化情況。
圖6為在jester-data-2數(shù)據(jù)集,隨近鄰數(shù)k的變化,coverage的變化情況。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
參閱圖1所示,本發(fā)明基于用戶(hù)偏好的協(xié)同過(guò)濾推薦方法包括下述步驟:
步驟1:輸入用戶(hù)-項(xiàng)目評(píng)分矩陣,取所有用戶(hù)評(píng)分的平均評(píng)分,設(shè)定為閾值p,依據(jù)該閾值p將用戶(hù)分為偏好高評(píng)用戶(hù)和偏好低評(píng)用戶(hù);
步驟2:利用nhsm相似性度量方法計(jì)算任意二位用戶(hù)之間的相似度,獲得用戶(hù)間的相似矩陣sim;
步驟3:設(shè)目標(biāo)用戶(hù)ua,其同偏好(偏好高評(píng)或低評(píng))用戶(hù)群體為s,不同偏好(偏好低評(píng)或高評(píng))群體為d,計(jì)算目標(biāo)用戶(hù)ua與其他用戶(hù)ub的相似度:
如maxsim(ua,ub)s>maxsim(ua,ub)d則:
如maxsim(ua,ub)s≤maxsim(ua,ub)d則:
式(12)和(13)中,sim(ua,ub)為用戶(hù)ua和ub的相似度,其中,ua表示目標(biāo)用戶(hù),ub表示其他用戶(hù),maxsim(ua,ub)s為ua與s中相似度最大的值,maxsim(ua,ub)d為ua與d中相似度最大的值,
基于大間隔尋找近鄰的主要思想是:通過(guò)設(shè)計(jì)一種新的相似性度量公式,使用戶(hù)空間中與目標(biāo)用戶(hù)相同偏好的近鄰屬于同一類(lèi)別,不同偏好的用戶(hù)與目標(biāo)用戶(hù)盡量區(qū)分開(kāi)。這體現(xiàn)了用戶(hù)潛在的偏好行為,縮小有相同偏好用戶(hù)之間的距離,增大不同偏好用戶(hù)之間的距離。相比其他許多改進(jìn)的協(xié)同過(guò)濾推薦算法,該算法也能自動(dòng)確定近鄰個(gè)數(shù),提高推薦效率;
步驟4:利用式(14)得到用戶(hù)間新的相似矩陣newsim:
步驟5:根據(jù)式(15)預(yù)測(cè)目標(biāo)用戶(hù)ut在項(xiàng)目ii上的評(píng)分pt,i:
式(15)中,pt,i為目標(biāo)用戶(hù)ut對(duì)項(xiàng)目ii的評(píng)分。其中,υ表示目標(biāo)用戶(hù)的近鄰集合,xk表示目標(biāo)用戶(hù)ut的第k個(gè)近鄰,近鄰個(gè)數(shù)k由大間隔自動(dòng)確定,
所述步驟1中,設(shè)定不同偏好用戶(hù)群體用戶(hù)數(shù)量平衡,根據(jù)用戶(hù)對(duì)項(xiàng)目的評(píng)分值,設(shè)定閾值p將用戶(hù)劃分為高評(píng)用戶(hù)(偏好打高分的用戶(hù))和低評(píng)用戶(hù)(偏好打低分的用戶(hù))。其中,閾值p根據(jù)評(píng)分矩陣確定,如式(11)所示:
式中,
表格2為給定用戶(hù)對(duì)項(xiàng)目的實(shí)際評(píng)分矩陣。其中,矩陣的行表示用戶(hù),列表示項(xiàng)目。評(píng)分為5分制。
表2用戶(hù)-項(xiàng)目實(shí)際評(píng)分矩陣
根據(jù)式(11),可計(jì)算出閾值p=3.06。將每個(gè)用戶(hù)的平均評(píng)分和閾值p比較,用戶(hù)u1、u3和u5被劃為高評(píng)用戶(hù),其它3用戶(hù)歸類(lèi)為低評(píng)用戶(hù)。
本文以movielens數(shù)據(jù)集(來(lái)自http://movielens.umn.edu)為例,對(duì)閾值p在[34]之間的用戶(hù)數(shù)進(jìn)行統(tǒng)計(jì),如圖2所示。圖2為用戶(hù)評(píng)分分布情況。其中,橫坐標(biāo)表示閾值p,縱坐標(biāo)表示平均評(píng)分大于閾值p的用戶(hù)占所有用戶(hù)的比例。如p取值3,平均評(píng)分大于閾值p的用戶(hù)占所有用戶(hù)百分比高于90%。
所述步驟2中的相似度計(jì)算方法如下:
sim(ua,ub)nhsm=sim(ua,ub)pss×sim(ua,ub)jaccard′×sim(ua,ub)urp(4)
式中,ua和ub表示用戶(hù)集合中任意二位用戶(hù),sim(ua,ub)pss定義如式(5)所示:
式(5)中,
proximity(ra,k,rb,k)=1-1/(1+exp(-|ra,k-rb,k|))(6)
significance(ra.k,rb,k)=1/(1+exp(-|ra,k-rmed|·|rb,k-rmed|))(7)
singularity(ra,k,rb,k)=1-1/(1+exp(-|(ra,k-rb,k)/2-μk|)(8)
式(6-8)中,μk為項(xiàng)目k的平均評(píng)分,ra,k為用戶(hù)ua對(duì)項(xiàng)目ik的評(píng)分,rmed為評(píng)分集合的中位數(shù)。
其次,利用改進(jìn)的jaccard系數(shù)來(lái)反映共同評(píng)分項(xiàng)帶來(lái)的影響,定義如(9)所示。
式中,|ia|為用戶(hù)ua已評(píng)分項(xiàng)的個(gè)數(shù),|ia∩ib|為用戶(hù)ua和ub的共同評(píng)分項(xiàng)個(gè)數(shù)。
最后,用戶(hù)潛在的評(píng)分傾向性用式(10)度量。
式中,μa和μb分別為用戶(hù)ua和ub的平均評(píng)分;
實(shí)驗(yàn)結(jié)果及分析
1、數(shù)據(jù)集
本文采用公開(kāi)的movielens和jester-data-2數(shù)據(jù)集(http://www.ieor.berkeley.edu/~goldberg/jester-data)驗(yàn)證本文所提算法。movielens數(shù)據(jù)集包含943個(gè)用戶(hù)在1682個(gè)電影上的評(píng)分,其中每個(gè)用戶(hù)至少對(duì)20部電影有評(píng)分記錄;jester-data-2數(shù)據(jù)集包含1582個(gè)用戶(hù)在100個(gè)笑話(huà)上的評(píng)分,其中每個(gè)用戶(hù)至少對(duì)1個(gè)笑話(huà)有評(píng)分記錄,數(shù)據(jù)集的詳細(xì)信息如表3所示。為保證實(shí)驗(yàn)結(jié)果的無(wú)偏性,數(shù)據(jù)集分成訓(xùn)練集和測(cè)試集,訓(xùn)練集占整個(gè)數(shù)據(jù)集的80%,其余20%數(shù)據(jù)作為測(cè)試集。整個(gè)過(guò)程采用五折交叉驗(yàn)證方法,測(cè)試集之間是互斥的,并且有效地覆蓋了整個(gè)數(shù)據(jù)集。
表3數(shù)據(jù)描述
2、度量指標(biāo)
本文評(píng)價(jià)推薦質(zhì)量的度量指標(biāo)包括mae(meanabsoluteerror)和覆蓋率(coverage)。mae是一種常見(jiàn)的度量指標(biāo),通過(guò)計(jì)算預(yù)測(cè)的用戶(hù)評(píng)分和實(shí)際用戶(hù)評(píng)分之間的偏差來(lái)度量預(yù)測(cè)的準(zhǔn)確性,mae值越小,推薦質(zhì)量越好。覆蓋率(coverage)用來(lái)衡量一個(gè)算法能夠預(yù)測(cè)的項(xiàng)目占所有項(xiàng)目的百分比,coverage值越大,推薦質(zhì)量越好。
設(shè)有n個(gè)項(xiàng)目,用戶(hù)的實(shí)際評(píng)分集合為r={r1,r2,...,rn},預(yù)測(cè)的用戶(hù)評(píng)分集合為p=(p1,p2,...,pn),s表示p集合中有評(píng)分的個(gè)數(shù),則度量指標(biāo)mae和覆蓋率(coverage)分別表示為:
3、實(shí)驗(yàn)結(jié)果分析
本文所提算法與基于pearson相關(guān)系數(shù)的協(xié)同過(guò)濾算法(pcc-cf)、基于cosine相似性的協(xié)同過(guò)濾算法(cos-cf)和基于nhsm相似性的協(xié)同過(guò)濾推薦算法(nhsm-cf)在算法性能上進(jìn)行比較。
圖3和圖4分別為在movielens數(shù)據(jù)集上,隨近鄰數(shù)k的變化,mae和coverage的變化情況,其中近鄰數(shù)k在10~100之間變動(dòng),從圖中可看出基于nhsm相似性的協(xié)同過(guò)濾推薦算法(nhsm-cf)的mae值比cos-cf和pcc-cf都要小,coverage值相對(duì)要大;在jester-data-2數(shù)據(jù)集上mae和coverage的變化情況如圖5和圖6所示,nhsm-cf的mae值跟cos-cf和pcc-cf相比要小,coverage值要大??梢缘贸?,nhsm-cf的推薦質(zhì)量相優(yōu)于cos-cf和pcc-cf。
從圖3~圖6可得知,無(wú)論近鄰數(shù)k如何變化,largemargin-nhsm-cf的mae和coverage都能夠取相對(duì)穩(wěn)定的值。這是由于在利用大間隔確定目標(biāo)用戶(hù)與其他用戶(hù)的相似度時(shí),k的取值對(duì)推薦結(jié)果的影響較小。從圖3和圖4可以看出,在movielens數(shù)據(jù)集上largemargin-nhsm-cf的mae值都比nhsm-cf小,coverage值跟nhsm-cf相比要大。同樣,在jester-data-2數(shù)據(jù)集中,mae和coverage的變化情況與movielens數(shù)據(jù)集呈現(xiàn)相同的規(guī)律。因此,本文所提算法(largemargin-nhsm-cf)優(yōu)于nhsm-cf算法,進(jìn)一步提高了協(xié)同過(guò)濾系統(tǒng)的推薦質(zhì)量,驗(yàn)證了基于用戶(hù)偏好的協(xié)同過(guò)濾推薦算法的有效性。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。