本發(fā)明涉及個性化推薦
技術(shù)領(lǐng)域:
,特別是涉及一種基于協(xié)同過濾的推薦方法。
背景技術(shù):
:隨著電子商務(wù)系統(tǒng)用戶數(shù)目和商品數(shù)目的日益增加,在整個商品空間上用戶評分?jǐn)?shù)據(jù)極端稀疏,在數(shù)據(jù)稀疏時,共同評分項目很少,計算結(jié)果往往不準(zhǔn)確甚至根本無法計算。以實驗常用的數(shù)據(jù)集為例,movielens的稀疏度為95.5%,netfix的稀疏性導(dǎo)致相似度無法計算或者計算不準(zhǔn)確的問題。在大型電子商務(wù)系統(tǒng)中,用戶評分的項目一般不會超過項目總數(shù)的1%,經(jīng)兩個用戶共同評分的項目則更少,如eachmovie網(wǎng)站在18個月當(dāng)中所接收的用戶評分?jǐn)?shù)據(jù)為:72916個用戶對1628部電影有2811983個評估值,也就是評估數(shù)目占用戶一項矩陣的元素數(shù)目的比例為α=2811983/(72916×1628)≈0.0237,即2.37%,其矩陣非常稀疏。為了解決數(shù)據(jù)稀疏性問題,現(xiàn)有的辦法是對未評分項目猜測一個評分,通常來說設(shè)為一個固定值或者平均分;但是這種填補空白數(shù)據(jù)的方法很難有說服力,設(shè)置的分值不同也會影響到推薦的精度(比如在5分制中設(shè)為評分的中間值3,或為了保守起見,避免影響真實數(shù)據(jù)設(shè)為0,都會產(chǎn)生不同的推薦結(jié)果)。傳統(tǒng)的協(xié)同過濾推薦通過用戶的最近鄰居產(chǎn)生最終的推薦,基于項目協(xié)同過濾推薦首先計算項目之間的相關(guān)性,然后通過用戶對相關(guān)項目的評分預(yù)測用戶對未評分項目的評分。通常的協(xié)同過濾流程為:度量用戶之間的相似度方法主要有3種:余弦相似度、相關(guān)相似度以及修正余弦相似度。余弦相似度:通過把用戶的評分看作n維空間的向量,則兩個用戶的相似度就能夠用余弦夾角來度量計算量小,但是應(yīng)用中忽略了用戶的評分尺度問題。相關(guān)相似度:設(shè)經(jīng)用戶i和用戶j共同評分的項目集合用Iij表示,則用戶i和用戶j之間的相似度可以通過Person相關(guān)系數(shù)來度量Ri,c表示用戶i對項目c的評分,和分別表示用戶i和用戶j對項目的平均評分。修正的余弦相似性:為了減少兩個用戶出現(xiàn)太多的空白數(shù)據(jù),不對用戶i和用戶j的共同項目來計算,而是區(qū)別對待,如公式技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于協(xié)同過濾的推薦方法,利用最近鄰協(xié)同過濾推薦的可靠性,面對數(shù)據(jù)稀疏性的不足時,通過補全數(shù)據(jù)的基礎(chǔ)上,提高補全數(shù)據(jù)的可靠性,使得協(xié)同過濾能夠發(fā)揮更好的作用。本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:基于協(xié)同過濾的推薦方法,包括:計算任意兩個項目之間的相似度;根據(jù)所述任意兩個項目之間的相似度構(gòu)建項目相似度矩陣,并根據(jù)所述項目相似度矩陣獲得各項目的最近鄰居集合;根據(jù)所述最近鄰居集合計算用戶對各項目的預(yù)測評分;根據(jù)各項目的預(yù)測評分和預(yù)測評分的置信度計算任意兩個用戶的相似度;根據(jù)任意兩個用戶的相似度計算各用戶的最近鄰居集合;根據(jù)用戶的最近鄰居集合,對用戶的未評分項目進行評分,并根據(jù)評分結(jié)果生成用戶的推薦集。兩個項目的相似度的計算公式如下:sim(u,V)=Freq(uv)Freq(uv)+Σ|ri,u-ri,v|]]>式中,F(xiàn)req(uv)表示對項目u和項目v都進行評分的用戶數(shù)目,ri,u表示第i個用戶對項目u的評分,ri,v表示第i個用戶對項目v的評分。所述項目相似度矩陣如下:Rsim=sim1,1sim1,2...sim1,nsim2,1sim2,2...sim2,n............simn,1simn,2...simn,n]]>式中,n表示項目的總數(shù)。計算用戶對各項目的預(yù)測評分時,用戶為未對該項目進行評分的用戶。用戶對各項目的預(yù)測評分的計算公式如下:Puk,q=Σn∈Mpsim(q,n)×Ruk,nΣn∈Mpsim(q,n)]]>式中,sim(q,n)表示項目q和項目q的最近鄰居集合中鄰居項目n的相似度,Ruk,n表示用戶uk對鄰居項目n的評分或預(yù)測評分。所述置信度的計算公式如下:ϵuk,q=1nΣn∈Mqsim(q,n)]]>式中,sim(q,n)表示項目q和項目q的最近鄰居集合中鄰居n的相似度。兩個用戶的相似度的計算公式如下:sim,(ui,uj)=u1·u2|u1|×|u2|=Rui,1·Ruj,1+Rui,2·Ruj,2+...+Rui,k·Ruj,kR2ui,1+R2ui,2+...+R2ui,k·R2uj,1+R2uj,2+...+R2uj,k]]>sim(ui,uj)=Πpϵui,p×Πqϵuj,q×sim′(ui,uj)]]>式中,sim(ui,uj)表示用戶ui和用戶uj的相似度,Rui,k表示用戶ui對項目k的評分或預(yù)測評分,Ruj,k表示用戶uj對項目k的評分或預(yù)測評分,εui,p表示用戶ui對項目p的評分或預(yù)測評分的置信度,εuj,q表示用戶uj對項目q的評分或預(yù)測評分的置信度。用戶的最近鄰居集合的計算方式為:對于一個用戶,選取與該用戶相似度最高的多個用戶作為該用戶的鄰居集合。根據(jù)用戶的最近鄰居集合,對用戶的未評分項目進行評分的公式如下:Puk,i=R‾u+Σn∈Nusim(u,n)×(Rn,i-Rn‾)Σn∈Nu|sim(u,n)|]]>式中,Puk,i表示用戶u對項目i的預(yù)測評分,表示用戶u的平均項目評分,Rn,i表示用戶u的鄰居集合Nu中用戶n對項目i的評分,sim(u,n)表示用戶u和用戶n的相似度。根據(jù)評分結(jié)果生成用戶的推薦集時,選取評分最高的k個項目作為用戶的推薦集。本發(fā)明的有益效果是:(1)本發(fā)明通過項目之間的相似度來補全項目評分,有效地解決了相似性度量中用戶共同評分?jǐn)?shù)據(jù)比較少的情況,同時使得未評分商品有一個準(zhǔn)確的評分,而不是統(tǒng)一化的為0或均值;(2)為了區(qū)分補全的評分和實際評分之間的差異,本發(fā)明中引入置信度作為評分的一個評判;每個評分都對應(yīng)一個置信度,置信度越大則說明評分的真實性越大,在最后的預(yù)測中也體現(xiàn)出的更大的作用;(3)在補全項目評分后,利用評分和置信度計算用戶之間的相似度,每一個用戶都獲得一個鄰居集,利用用戶和鄰居集的相似度,根據(jù)鄰居集對用戶未評分項目的評分可以推測出用戶的項目評分,最后從推測出的評分中選取評分最高的幾個項目作為推薦結(jié)果。附圖說明圖1為本發(fā)明的一個實施例的流程示意圖。具體實施方式下面結(jié)合附圖進一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護范圍不局限于以下所述。如圖1所示,基于協(xié)同過濾的推薦方法,包括以下步驟:步驟一、計算任意兩個項目之間的相似度。以計算項目u和項目v的相似度為例:同時對項目u和項目v評分的用戶越多,則表示項目u和項目v的相似度越大;同時對項目u和項目v進行評分的用戶中,給予項目u和項目v相同分值的用戶越多,則項目u和項目v的相似度越大。兩個項目之間的相似度的計算公式如下:sim(u,v)=Freq(uv)Freq(uv)+Σ|ri,u-ri,v|]]>式中,F(xiàn)req(uv)表示對項目u和項目v都進行評分的用戶數(shù)目,ri,u表示第i個用戶對項目u的評分,ri,v表示第i個用戶對項目v的評分。步驟二、根據(jù)所述任意兩個項目之間的相似度構(gòu)建項目相似度矩陣,并根據(jù)所述項目相似度矩陣獲得各項目的最近鄰居集合。項目相似度矩陣表示如下:Rsim=sim1,1sim1,2...sim1,nsim2,1sim2,2...sim2,n............simn,1simn,2...simn,n]]>式中,n表示項目的總數(shù)。該項目相似度矩陣中的元素對稱分布,即simu,v=simv,u,表示項目u和項目v的相似度。步驟三、根據(jù)所述最近鄰居集合計算用戶對各項目的預(yù)測評分。在一種實施方式中,根據(jù)一個項目的最近鄰居集合計算未對該項目作出評價的用戶對該項目的預(yù)測評分。對項目進行預(yù)測評分時,首先,計算項目Itemk(1≤k≤n)的p個最近鄰居集合Mp={i1′,i2′,…,ip′}使得且sim(Itemk,i'1)最大,Mp中將鄰居項目按照與項目Itemk的相似度的大小降序排列;其次,得到項目Itemk的p個最近鄰集合Mp后,根據(jù)項目之間的相似度,預(yù)測用戶uk的對項目q的評分,預(yù)測評分的計算公式如下:根式中,sim(q,n)表示項目q和項目q的最近鄰居集合中鄰居n的相似度,Ruk,n表示用戶uk對鄰居n的評分或預(yù)測評分。步驟四、根據(jù)各項目的預(yù)測評分和預(yù)測評分的置信度計算未評分用戶中任意兩個用戶的相似度。一個項目的置信度為該項目和該項目的鄰居集合中鄰居項目的相似度的平均值,表示該項目的預(yù)測評分的可信度,計算公式如下:ϵuk,q=1nΣn∈Mqsim(q,n)]]>式中,sim(q,n)表示項目q和項目q的最近鄰居集合中鄰居n的相似度。兩個用戶的相似度的計算方法為:根據(jù)每個項目的預(yù)測評分和預(yù)測評分的置信度,對應(yīng)一個二元值(Rui,n,εui,n),Rui,n表示用戶ui對項目n的評分,由于Rui,n的值可能遠(yuǎn)大于εui,n(預(yù)測評分Rui,n的置信度),所以先對其進行歸一化處理為(Rui,n/m,εui,n),m為項目n能獲得的最大評分。在用戶之間存在交叉評分的項目上,對于用戶i有:{(Rui,1/m,ε1),(Rui,2/m,ε2),…,(Rui,n/m,εn)};對于用戶j有:{Ruj,1/m,ε1),(Ruj,2/m,ε2),…,(Ruj,n/m,εn)}。定義用戶ui的項目評分以及置信度矩陣:{(Rui,1,εui,1),(Rui,2,εui,2)…(Rui,k,εui,k)};定義用戶uj的項目評分以及置信度矩陣:{(Ruj,1,εuj,1),(Ruj,2,εuj,2)…(Ruj,k,εuj,k)};則在ui和uj對相似度置信度為1的時候,用余弦定理求得用戶之間的額相似度:sim,(ui,uj)=u1·u2|u1|×|u2|=Rui,1·Ruj,1+Rui,2·Ruj,2+...+Rui,k·Ruj,kR2ui,1+R2ui,2+...+R2ui,k·R2uj,1+R2uj,2+...+R2uj,k]]>sim(ui,uj)=Πpϵui,p×Πqϵuj,q×sim′(ui,uj)]]>相似度的計算方式如下:令其中,a與b的相似度定義為0.5,aa與a的相似度定義為0.7,則aa與b的相似度為0.5*0.7=0.35;其中A與B的相似度定義為0.6,AA與A的相似度定義為0.5,則AA與B的相似度定義為0.5*0.6=0.3;B與b的相似度用余弦夾角計算為sim(B,b),則aa與AA的相似度為0.3*0.35*sim(B,b)。步驟五、根據(jù)用戶的相似度計算用戶的最近鄰居集合。取用戶i相似度高的k個用戶作為鄰居集合Nu。步驟六、根據(jù)用戶的最近鄰居集合,對用戶的未評分項目進行評分,并根據(jù)評分結(jié)果生成用戶的推薦集。根據(jù)用戶的最近鄰居集合,對用戶的未評分項目進行評分的公式如下:Puk,i=R‾u+Σn∈Nusim(u,n)×(Rn,i-Rn‾)Σn∈Nu|sim(u,n)|]]>式中,Puk,i表示用戶u對項目i的預(yù)測評分,表示用戶u的平均項目評分,Rn,i表示用戶u的鄰居集合Nu中用戶n對項目i的評分,sim(u,n)表示用戶u和用戶n的相似度。根據(jù)評分結(jié)果生成用戶的推薦集時,選取評分最高的k個項目作為用戶的推薦。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護范圍內(nèi)。當(dāng)前第1頁1 2 3