本發(fā)明屬于協(xié)同過濾推薦領(lǐng)域,具體涉及一種基于雙聚類填充的協(xié)同過濾方法。
背景技術(shù):
:隨著因特網(wǎng)和電子商務(wù)的迅猛發(fā)展,網(wǎng)站的信息急劇增加,人們想要從海量的數(shù)據(jù)中快速定位到自己的需要的信息變得愈加困難。人們身處數(shù)據(jù)的海洋中卻仍然承受著信息的匱乏,信息超載的現(xiàn)象越來越加嚴(yán)重。在此背景下個(gè)性化推薦系統(tǒng)日益受到重視。數(shù)據(jù)稀疏性是協(xié)同過濾面臨的最大挑戰(zhàn),在實(shí)際的商業(yè)推薦系統(tǒng)中,用戶和項(xiàng)目的數(shù)量十分的龐大,而用戶往往只在很少的項(xiàng)目上有評分記錄,從而導(dǎo)致實(shí)際的評分矩陣非常的稀疏,通常商業(yè)推薦系統(tǒng)的評價(jià)矩陣稀疏度超過99%以上。在評分矩陣數(shù)據(jù)稀疏的情況下用戶共同標(biāo)注的項(xiàng)目數(shù)非常少,從而導(dǎo)致對于目標(biāo)用戶找不到足夠而有效的最近鄰居集合進(jìn)而影響推薦質(zhì)量。針對數(shù)據(jù)稀疏性問題,本發(fā)明提出了基于雙聚類填充的協(xié)同過濾算法。算法首先對評分矩陣中的缺失值應(yīng)用雙聚類算法進(jìn)行填充,經(jīng)過填充后評分矩陣的稠密度增加,并引入了可靠性矩陣以區(qū)分原始值和填充值。之后結(jié)合基于用戶的協(xié)同過濾算法對目標(biāo)用戶和目標(biāo)項(xiàng)目進(jìn)行預(yù)測評分。推薦技術(shù)中基本分為兩類:基于記憶的和基于模型的。其中基于模型的協(xié)調(diào)過濾方法采用機(jī)器學(xué)習(xí)算法或其他技術(shù)學(xué)得到一個(gè)模型,運(yùn)行時(shí)只需要預(yù)計(jì)算模型就能進(jìn)行預(yù)測?;谟洃浀募夹g(shù)則直接通過保存在內(nèi)存中的評分?jǐn)?shù)據(jù)進(jìn)行計(jì)算直接得到推薦結(jié)果?;谟洃浀姆椒ㄓ捎谑褂萌繑?shù)據(jù)能獲得較基于模型的方法更高的推薦精度,但是由于計(jì)算量巨大因此會遇到可擴(kuò)展性問題?;谟洃浀募夹g(shù)中分為基于用戶的協(xié)調(diào)過濾和基于項(xiàng)目的協(xié)調(diào)過濾,基于項(xiàng)目的協(xié)調(diào)過濾首先構(gòu)建一個(gè)項(xiàng)目間相似度矩陣,運(yùn)行時(shí)通過確定與目標(biāo)項(xiàng)目最相似的項(xiàng)目并計(jì)算目標(biāo)用戶對這些近鄰的物品的評分的加權(quán)總和得到目標(biāo)用 戶對目標(biāo)項(xiàng)目的評分?;谟脩舻膮f(xié)同過濾則是首先查找和目標(biāo)用戶最相似度額相似鄰居用戶集合,然后根據(jù)相似鄰居用戶集合對項(xiàng)目的的評分預(yù)測目標(biāo)用戶對目標(biāo)項(xiàng)目的評分?;陧?xiàng)目的協(xié)調(diào)過濾在大數(shù)量級時(shí)推薦速度很快,但是推薦精度不如基于用戶的協(xié)調(diào)過濾方法高,基于用戶的協(xié)調(diào)過濾方法能獲得較高的推薦準(zhǔn)確度。在協(xié)同過濾算法由于不需要考慮項(xiàng)目的內(nèi)容、易于實(shí)現(xiàn)等特點(diǎn)被廣泛應(yīng)用于電影推薦、音樂推薦以及電子商務(wù)等領(lǐng)域。協(xié)同過濾的原理是首先為目標(biāo)用戶找出一組與之偏好一致的鄰居用戶集合,然后對鄰居用戶進(jìn)行分析,把鄰居用戶感興趣的項(xiàng)目推薦給目標(biāo)用戶。如今許多大型網(wǎng)站如亞馬遜、豆瓣FM等都應(yīng)用了協(xié)同過濾技術(shù)為用戶提供個(gè)性化服務(wù)。傳統(tǒng)基于用戶協(xié)同過濾算法是基于這樣的假設(shè):如果用戶對一些項(xiàng)目的評分相似,那么他們的興趣就是相似的,因此這些用戶對其他項(xiàng)目的評分也會相似。通過對目標(biāo)用戶計(jì)算查找其相似鄰居集合,并根據(jù)近鄰集合對目標(biāo)用戶推薦。算法包含兩個(gè)部分:(1)相似度函數(shù):常用的相似度計(jì)算函數(shù)有余弦相似度、相關(guān)相似度等。其中基于用戶的協(xié)同過濾算法常用相關(guān)相似度函數(shù)。具體公式如(1)所示:sim(ua,ub)=(Σj∈S(raj-ra‾)·(rbj-rb‾)Σj∈S(raj-ra‾)2Σj∈S(rbj-rb‾)2)---(1)]]>其中raj表示用戶ua對項(xiàng)目lj的評分,rbj表示用戶ub對項(xiàng)目lj的評分,和分別表示用戶ua和ub對項(xiàng)目的評分均值。(2)預(yù)測評分函數(shù):在通過公式(1)獲得目標(biāo)用戶的相似近鄰集合后,對于目標(biāo)項(xiàng)目通過如公式(2)所示的預(yù)測評分函數(shù)預(yù)測其評分值。pred(ua,lj)=ra‾+Σui∈Nsim(ua,ui)·(rij-ri‾)Σui∈Nsim(ua,ui)---(2)]]>其中ua是目標(biāo)用戶、N是其最近鄰居集合,是用戶i的評分均值。由于用戶評分的記錄數(shù)很少,導(dǎo)致評分?jǐn)?shù)據(jù)極端稀疏,協(xié)同過濾的稀疏性問題會導(dǎo)致推薦質(zhì)量下降,對于新用戶沒有該用戶對項(xiàng)目的任何評分記錄,因而無法為其匹配與其興趣相似的最近鄰居。技術(shù)實(shí)現(xiàn)要素:針對現(xiàn)有技術(shù)中存在的上述不足之處,本發(fā)明要解決的技術(shù)問題是提供一種基于雙聚類填充的協(xié)同過濾方法,在傳統(tǒng)基于用戶協(xié)同過濾算法的基礎(chǔ)上,采用雙聚類算法對原始評分矩陣進(jìn)行預(yù)測填充以增加數(shù)據(jù)的稠密度,通過增加矩陣的稠密度使得困擾協(xié)同過濾算法的稀疏性問題得到了改善。本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種基于雙聚類填充的協(xié)同過濾方法,包括以下步驟:基于雙聚類的缺失項(xiàng)填充:對于每個(gè)缺失項(xiàng)在整個(gè)原始評分矩陣中找出所有包含該缺失項(xiàng)的子矩陣,計(jì)算所有子矩陣的平均平方殘差Hmin(m,n),根據(jù)平均平方殘差最小的子矩陣估計(jì)缺失項(xiàng)的值;基于用戶的協(xié)同過濾推薦:分別賦予原始數(shù)據(jù)和填充數(shù)據(jù)以不同的可靠性權(quán)重,根據(jù)所述可靠性權(quán)重計(jì)算目標(biāo)用戶和其他用戶之間的相似度,將與目標(biāo)用戶最相似度最高的若干個(gè)用戶的集合作為目標(biāo)用戶的最近鄰集合,根據(jù)目標(biāo)用戶的最近鄰集合的評分信息預(yù)測目標(biāo)用戶對商品的評分;針對每個(gè)用戶,向其推薦評分最高的若干個(gè)商品。所述子矩陣至少為5行5列。所述計(jì)算所有子矩陣的平均平方殘差Hmin(m,n),具體為:Hmin(m,n)=A1+A2+A3+A4-A5(1)A1=1mnΣp∈UΣq∈V(rpq+SUMmn-1nΣt=1nrpt-1mΣs=1mrsq)2---(2)]]>A2=1mnΣq∈V(riq+SUMmn-1nΣt∈Vrit-1mΣs=1mrsq)2---(3)]]>A3=1mnΣq∈U(rpj+SUMmn-1mΣs∈Ursj-1nΣt=1nrpt)2---(4)]]>A4=1mn(SUMmn-1nΣt∈Vrit-1mΣs∈Ursj)2---(5)]]>A5=(m-1)(n-1)m2n2(1(m-1)(n-1)Σp∈UΣq∈Vrpq-1n-1Σt∈Vrit-1m-1Σs∈Ursj)2---(6)]]>其中,A為僅包含一個(gè)缺失項(xiàng)的子矩陣。A1、A2、A3、A4、A5分別為子矩陣A中的計(jì)算式、m為A的行總數(shù)、n為A的列總數(shù)、SUM為子矩陣A中所有非缺失項(xiàng)數(shù)目的總和、集合U={1,2,…,i-1,i+1,…,m}為子矩陣中除了第i行以外所有的行的集合、集合V={1,2,…,j-1,j+1,…,n}為子矩陣中除了第j列以外所有的列的集合、p為集合U中的第p行、q為集合V中的第q列、s為m行中的第s行、t為n列中的第t列、i為缺失項(xiàng)所在行、j為缺失項(xiàng)所在列。rpq為子矩陣中第p行第q列所在項(xiàng)的值、rsq為子矩陣中第s行第q列所在項(xiàng)的值、riq為子矩陣中第i行第q列所在項(xiàng)的值、rpj為子矩陣中第p行第j列所在項(xiàng)的值、rpt為子矩陣中第p行第t列所在項(xiàng)的值、rit為子矩陣中第i行第t列所在項(xiàng)的值、rsj為子矩陣中第s行第j列所在項(xiàng)的值。所述根據(jù)平均平方殘差最小的子矩陣估計(jì)缺失項(xiàng)的值,具體為:其中,i為缺失項(xiàng)所在行、j為缺失項(xiàng)所在列、m為A的行總數(shù)、n為A的列總數(shù)、s為m行中的第s行、t為n列中的第t列、集合U={1,2,…,i-1,i+1,…,m}為子矩陣中除了第i行以外所有的行的集合、集合V={1,2,…,j-1,j+1,…,n}為子矩陣中除了第j列以外所有的列的集合、p為集合U中的第p行、q為集合V中的第q列、rit為子矩陣中第i行第t列所在項(xiàng)的值、rpq為子矩陣中第p行第q列所在項(xiàng)的值、rsj為子矩陣中第s行第j列所在項(xiàng)的值。當(dāng)平均平方殘差最小的子矩陣不只一個(gè)時(shí),選取其中包含數(shù)據(jù)量最大的子 矩陣,即缺失率最低的子矩陣作為平均平方殘差最小的子矩陣。如果平均平方殘差最小的子矩陣包含數(shù)據(jù)量也相同,則隨機(jī)選取其中一個(gè)子矩陣作為平均平方殘差最小的子矩陣。所述可靠性權(quán)重為:其中,i為矩陣中第i行、j為矩陣中第j列。rij為原始評分矩陣中的第i行第j列所在項(xiàng)、tij為可靠性矩陣中第i行第j列所在項(xiàng)。θ為空缺項(xiàng)的權(quán)重值。所述根據(jù)所述可靠性權(quán)重計(jì)算目標(biāo)用戶和其他用戶之間的相似度,具體為:sim(ua,ub)=(ΣjϵStbj·(raj-ra‾)·(rbj-rb‾)ΣjϵS(raj-ra‾)2ΣjϵStbj2·(rbj-rb‾)2)---(9)]]>其中,ua為第a個(gè)用戶、ub為第b個(gè)用戶、S為用戶ua和ub的共同評分項(xiàng)目集合、j為集合S中的第j個(gè)項(xiàng)目、raj表示用戶ua對項(xiàng)目lj的評分,rbj表示用戶ub對項(xiàng)目lj的評分,ra和rb分別表示用戶ua和ub對項(xiàng)目的評分均值,S是用戶ua和ub的共同評分項(xiàng)目集合,tbj表示用戶ub對項(xiàng)目lj的可靠性權(quán)重值。所述根據(jù)目標(biāo)用戶的最近鄰集合的評分信息預(yù)測目標(biāo)用戶對商品的評分,具體為:pred(ua,lj)=ra‾+Σui∈Ktij·sim(ua,ui)·(rij-ri‾)Σui∈Ktij·sim(ua,ui)---(10)]]>其中ua是為第a個(gè)用戶,這里ua是目標(biāo)用戶,ui為第i個(gè)用戶,lj為第j個(gè)項(xiàng)目,K是目標(biāo)用戶的最近鄰數(shù)量,sim(ua,ui)是目標(biāo)用戶ua和用戶ui之間的相似度,tij是用戶ui對項(xiàng)目lj的可靠性權(quán)重值,rij是用戶ui對項(xiàng)目lj的評分值,為用戶ui的評分平均值,為用戶ua的評分平均值。本發(fā)明具有以下優(yōu)點(diǎn)及有益效果:1.改善了評分矩陣數(shù)據(jù)稀疏性帶來的影響。2.引入了可靠性矩陣區(qū)分真實(shí)評分項(xiàng)和填充項(xiàng)改進(jìn)相似度函數(shù)及預(yù)測評分函數(shù)。3.提高了推薦準(zhǔn)確度。附圖說明圖1為本發(fā)明方法中原始評分矩陣示意圖;圖2為本發(fā)明方法中填充后的評分矩陣示意圖;圖3為本發(fā)明方法中不同近鄰數(shù)量時(shí)基于雙聚類填充協(xié)同過濾算法和傳統(tǒng)基于用戶協(xié)同過濾算法MAE值圖;圖4為本發(fā)明方法中可靠性矩陣參數(shù)θ取不同值時(shí)基于雙聚類填充協(xié)同過濾算法的MAE值圖。具體實(shí)施方式下面結(jié)合附圖及實(shí)施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。如圖1所示,原始評分矩陣為一個(gè)10行10列的矩陣,行分別為U1到U10的十個(gè)用戶,列分別為I1到I10的十個(gè)商品。已有評分項(xiàng)是取值范圍1到5之間的整數(shù)值。原始評分矩陣中含有空缺項(xiàng)。如圖2所示,填充后的評分矩陣為一個(gè)10行10列的矩陣,行分別為U1到U10的十個(gè)用戶,列分別為I1到I10的十個(gè)商品。其中空缺項(xiàng)已被填充為精度為保留一位小數(shù)的填充值。填充值的范圍不受約束,由雙聚類算法計(jì)算得到。本發(fā)明效果的驗(yàn)證實(shí)例:1、數(shù)據(jù)集。MovieLens數(shù)據(jù)集是美國Minnesota大學(xué)GroupLens項(xiàng)目組提供的電影評分?jǐn)?shù)據(jù)集。MovieLens是一個(gè)基于Web的研究性推薦系統(tǒng),用于接收用戶對電影的評分并提供相應(yīng)的電影推薦列表。MovieLens數(shù)據(jù)集中包含了943個(gè)用戶對1682部電影的10000條評分?jǐn)?shù)據(jù)。其中每個(gè)用戶至少對20部電影有評分記錄。實(shí)驗(yàn)對數(shù)據(jù)集進(jìn)行了劃分,80%的數(shù)據(jù)用作訓(xùn)練集,20%的數(shù)據(jù)用作測試集。數(shù)據(jù)稀疏度能度量數(shù)據(jù)集的稀疏程度,其定義為用戶評分矩陣中未評分條目占總數(shù)據(jù)條目的百分比。MovieLens數(shù)據(jù)集的稀疏度為1-100000/(943*1682)=0.93695可見該數(shù)據(jù)集是非常稀疏的,有約93.7%的項(xiàng)都是空缺項(xiàng)。2、評價(jià)標(biāo)準(zhǔn)。評價(jià)推薦系統(tǒng)推薦質(zhì)量的度量標(biāo)準(zhǔn)主要包括統(tǒng)計(jì)精度度量方法和決策支持精度度量方法兩類。統(tǒng)計(jì)精度度量方法中的平均絕對偏差MAE(meanabsoluteerror)可以直觀地對推薦質(zhì)量進(jìn)行度量,是最常用推薦質(zhì)量度量方法。本發(fā)明采用MAE作為推薦質(zhì)量的評價(jià)標(biāo)準(zhǔn),平均絕對偏差MAE通過計(jì)算預(yù)測的用戶評分與實(shí)際的用戶評分之間的偏差度量預(yù)測的準(zhǔn)確性,MAE越小,推薦質(zhì)量越高。設(shè)預(yù)測的用戶評分集合表示為{p1,p2,...,pN},對應(yīng)的實(shí)際用戶評分集合為{q1,q2,...,qN},則平均絕對偏差定義為:MAE=Σi=1N|pi-qi|N---(14)]]>3、結(jié)果分析。采用傳統(tǒng)基于用戶協(xié)同過濾算法(UB-CF)和基于雙聚類填充的協(xié)同過濾算法(BF-CF)按照K取從10到100之間10的倍數(shù)進(jìn)行10組實(shí)驗(yàn)并進(jìn)行分析,實(shí)驗(yàn)參數(shù)與結(jié)果表如表1和表2所示,結(jié)果對比圖如圖3和圖4所示。表1近鄰數(shù)量取不同值時(shí)兩種算法推薦質(zhì)量對比KUB-CFBF-CF100.82030.8268200.80780.8092300.80690.7991400.80660.7961500.80680.7964600.80730.7955700.80850.7963800.80970.7973900.81070.79761000.81250.7972此處BF-CF算法中θ值預(yù)設(shè)為0.3。最近鄰居的個(gè)數(shù)會影響算法的性能,實(shí)驗(yàn)中將最近鄰居的個(gè)數(shù)從10遞增到100。分別計(jì)算了傳統(tǒng)基于用戶的協(xié)同過濾算法和本文提出的基于雙聚類填充的協(xié)同過濾算法的MAE。實(shí)驗(yàn)結(jié)果如圖3所示,當(dāng)最近鄰居數(shù)選取較小值時(shí),BF-CF算法的MAE大于UB-CF算法,但當(dāng)最近鄰居集合數(shù)等于30及以上時(shí),BF-CF的預(yù)測誤差顯著低于UB-CF??梢姳疚奶岢龅幕陔p聚類填充的協(xié)同過濾算法的推薦質(zhì)量高于傳統(tǒng)基于用戶的協(xié)同過濾算法。表2可靠性矩陣t中參數(shù)θ取不同值時(shí)算法推薦質(zhì)量對比θBF-CFk=40,θ=0.10.8117k=40,θ=0.20.7972k=40,θ=0.30.7961k=40,θ=0.40.7968k=40,θ=0.50.7973k=40,θ=0.60.7979k=40,θ=0.70.7996k=40,θ=0.80.7999k=40,θ=0.90.8002k=40,θ=1.00.8005可靠性矩陣t中參數(shù)θ的選取在很大程度上影響了推薦的精度,θ的取值范圍是0到1。如果θ取最大值1,則真實(shí)值和填充值擁有相等的可靠性。如果θ取0則算法退化為傳統(tǒng)基于用戶協(xié)同過濾算法。表2表示了參數(shù)θ的改變對MAE的影響,實(shí)驗(yàn)結(jié)果如圖4所示,可見當(dāng)θ取值為0.3時(shí)算法性能達(dá)到最優(yōu)。當(dāng)前第1頁1 2 3