鄧樂(lè)樂(lè),黃 俊,岳春擂
1(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
2(信號(hào)與信息處理重慶市重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
E-mail:120960148@qq.com
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展和網(wǎng)民數(shù)量的急速增長(zhǎng),互聯(lián)網(wǎng)上的數(shù)據(jù)呈指數(shù)級(jí)增長(zhǎng),導(dǎo)致嚴(yán)重的信息過(guò)載.為了讓用戶準(zhǔn)確快速地獲取自己感興趣的資源,推薦算法和推薦系統(tǒng)應(yīng)運(yùn)而生.推薦系統(tǒng)通過(guò)分析系統(tǒng)中的用戶數(shù)據(jù),可以根據(jù)用戶的偏好情況為其匹配可能喜歡的商品或服務(wù),在一定程度上緩解了信息過(guò)載的問(wèn)題[1].推薦系統(tǒng)中使用最廣泛的協(xié)同過(guò)濾算法,其算法本身存在諸多問(wèn)題[2].一方面算法自身冷啟動(dòng)、相似度計(jì)算不合理等問(wèn)題都造成算法推薦質(zhì)量的嚴(yán)重下降[3];另一方面算法推薦結(jié)果的多樣性和覆蓋率不足使得用戶被基于個(gè)人興趣的信息流包圍下,逐漸喪失了解和獲取不同信息的能力和接觸機(jī)會(huì),不知不覺(jué)中為自己制造了一間“信息繭房”[4].
針對(duì)提高推薦結(jié)果的多樣性和覆蓋率的問(wèn)題,文獻(xiàn)[5]通過(guò)結(jié)合項(xiàng)目流行度來(lái)改進(jìn)協(xié)同過(guò)濾推薦算法,引入項(xiàng)目流行度權(quán)重因子來(lái)降低熱門項(xiàng)目在相似度計(jì)算及最終推薦中的影響力,從而提高項(xiàng)目推薦的覆蓋率.文獻(xiàn)[6]提出一種基于信任關(guān)系和項(xiàng)目流行度的矩陣分解推薦算法,合并用戶與項(xiàng)目的得分矩陣以及用戶之間的信任關(guān)系矩陣,通過(guò)矩陣分解同時(shí)傳遞信任和推薦項(xiàng)目.極大提高了推薦算法的覆蓋率,但損失了現(xiàn)有方法8%左右的精度.文獻(xiàn)[7]考慮將用戶活躍度和項(xiàng)目流行度融合協(xié)同過(guò)濾算法中,其思想是度量?jī)蓚€(gè)項(xiàng)目的相關(guān)性時(shí),如果一條記錄只給兩個(gè)項(xiàng)目中的一個(gè)打分,則使用與該記錄相對(duì)應(yīng)的評(píng)分用戶的活躍度和被評(píng)估項(xiàng)目的流行度來(lái)懲罰這種相關(guān)性,從而提高數(shù)據(jù)稀疏環(huán)境下低流行度產(chǎn)品被推薦的概率.上述方法都將高流行度項(xiàng)目以不同方式進(jìn)行權(quán)重懲罰,但也同時(shí)將高流行且高評(píng)分項(xiàng)目進(jìn)行了統(tǒng)一懲罰,未充分考慮項(xiàng)目評(píng)分分值這一衡量因素.
針對(duì)相似度問(wèn)題,文獻(xiàn)[8]提出一種基于評(píng)分和結(jié)構(gòu)相似度計(jì)算物品相似度的方法、文獻(xiàn)[9]提出一種考慮物品相似權(quán)重的用戶相似度計(jì)算方法、文獻(xiàn)[10]提出一種結(jié)合評(píng)分相似度和項(xiàng)目屬性相似度的物品相似度計(jì)算方法,上述方法都是通過(guò)融合評(píng)分和其它指標(biāo),最終提高相似度計(jì)算精度.且評(píng)分相似度都僅僅考慮用戶間對(duì)同一項(xiàng)目的評(píng)分,評(píng)分相似度高則用戶相似高,評(píng)分相似度低則用戶相似低.這種計(jì)算方法忽視了對(duì)同一項(xiàng)目產(chǎn)生行為也可以一定程度的影響用戶相似度.
結(jié)合以上問(wèn)題的研究,本文提出了一種改進(jìn)算法,該算法在1)設(shè)置項(xiàng)目評(píng)分閾值的基礎(chǔ)上緩解了對(duì)評(píng)分高且流行度高的項(xiàng)目在參考流行度后造成的過(guò)度懲罰;2)改進(jìn)了用戶屬性相似度、用戶評(píng)分相似度的計(jì)算方法,考慮到對(duì)同一項(xiàng)目產(chǎn)生行為可以一定程度影響用戶相似度的情況提出了用戶關(guān)注相似度;3)通過(guò)融合用戶屬性相似度、用戶關(guān)注相似度以及用戶評(píng)分相似度得到用戶間多相似度來(lái)提升對(duì)目標(biāo)用戶推薦項(xiàng)目的準(zhǔn)確率.實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法不僅提高了推薦覆蓋率,而且進(jìn)一步提高了推薦結(jié)果的準(zhǔn)確率.
傳統(tǒng)基于用戶的推薦系統(tǒng)中,定義用戶集合U={u1,u2,…,um-1,um}和項(xiàng)目集合I={i1,i2,…,im-1,im}.符號(hào)相關(guān)概念定義如表1所示.
表1 本節(jié)公式符號(hào)含義Table 1 Symbolic meaning of formula in this section
傳統(tǒng)的基于用戶的協(xié)同過(guò)濾推薦算法步驟如下:
步驟1.構(gòu)建用戶評(píng)分矩陣
構(gòu)建用戶評(píng)分矩陣Rm*t并完成填充,評(píng)分集合為S={1,2,3,4,5},若用戶um未對(duì)項(xiàng)目in打分即rmt=0.
Rm×t=r1,1r1,2r1,3…r1,t
r2,1r2,2r2,3…r2,t
r3,1r3,2r3,3…r3,t
……………
rm,1rm,2rm,3…rm,t
(1)
步驟2.計(jì)算用戶相似度矩陣
基于步驟1中構(gòu)建的用戶評(píng)分矩陣,通過(guò)用戶相似度計(jì)算用戶相似度矩陣.相似度計(jì)算如公式(2)-公式(4)所示:
sim(a,b)C=∑c∈Ia,bRa,cRb,c∑c∈IaR2a,c∑c∈IbR2b,c
(2)
sim(a,b)A=∑c∈Ia,b(Ra,c-Ra)(Rb,c-Rb)∑c∈Ia(Ra,c-Ra)2∑c∈Ib(Rb,c-Rb)2
(3)
sim(a,b)P=∑c∈Ia,b(Ra,c-Ra)(Rb,c-Rb)∑c∈Ia,b(Ra,c-Ra)2∑c∈Ia,b(Rb,c-Rb)2
(4)
式中,sim(a,b)C為標(biāo)準(zhǔn)的余弦相似度計(jì)算方法,sim(a,b)A為修正的余弦相似性度計(jì)算方法,sim(a,b)P為皮爾森相關(guān)相似度計(jì)算方法.用戶相似度矩陣為n*n的矩陣,定義為Su,計(jì)算結(jié)果顯示在公式(5)中,公式相關(guān)概念的定義顯示在表1中.
Sun×n=1sim(1,2)sim(1,3)…sim(1,n)
sim(2,1)1sim(2,3)…sim(2,n)
sim(3,1)sim(3,2)1…sim(3,n)
……………
sim(n,1)sim(n,2)sim(n,3)…1
(5)
步驟3.尋找用戶鄰居集合
根據(jù)步驟2獲取的用戶相似度矩陣找出與目標(biāo)用戶相似度最高的若干個(gè)用戶組成鄰居集合.
步驟4.預(yù)測(cè)分?jǐn)?shù)生成推薦集合
在得到鄰居用戶集合后,根據(jù)用戶a的近鄰集合Uk獲得尚未評(píng)級(jí)物品c的用戶a對(duì)c的預(yù)測(cè)評(píng)級(jí)分?jǐn)?shù)Pac,如公式(6)所示:
Pa,c=Ra+∑b∈Uk(Rb,c-Rb)×sim(a,b)∑b∈Uk|sim(a,b)|
(6)
最后根據(jù)預(yù)測(cè)得分從大到小進(jìn)行排序,排序列表選取前n個(gè)物品作為目標(biāo)用戶a的最終推薦集合.
用戶屬性是首次創(chuàng)建用戶畫(huà)像所需的基本信息.用戶開(kāi)始加入系統(tǒng)時(shí),由于用戶沒(méi)有過(guò)往的分?jǐn)?shù)記錄,實(shí)際應(yīng)用程序很難預(yù)測(cè)和推薦產(chǎn)品給這些用戶,因此通常推薦熱門產(chǎn)品或隨機(jī)選擇產(chǎn)品推薦給新用戶[11].這在一定程度上解決了冷啟動(dòng)問(wèn)題,但不能根據(jù)用戶的特點(diǎn)進(jìn)行有效的個(gè)性化推薦.因?yàn)槊總€(gè)用戶在注冊(cè)時(shí)都包含唯一的屬性信息,因此在數(shù)據(jù)稀疏的情況下,可以利用這些數(shù)據(jù)做出個(gè)性化推薦.
為了解決新用戶推薦的冷啟動(dòng)問(wèn)題,提取新用戶注冊(cè)時(shí)的必要信息,包含性別、職業(yè)、年齡、住址等.文獻(xiàn)[12]為了計(jì)算用戶信息屬性的相似性,其對(duì)不同類別的屬性進(jìn)行不同的處理.本文進(jìn)一步完善了文獻(xiàn)[12]中提出的相似性計(jì)算方法,將用戶信息特征分為二元屬性、標(biāo)稱屬性和數(shù)值屬性3類.用戶的屬性如表2所示,其中aij表示用戶i的屬性j的值.
表2 用戶屬性Table 2 User attribute
1)對(duì)于二元屬性和數(shù)值屬性,相似度計(jì)算公式如公式(7)所示:
sim(amk,ank)=11+|amk-ank|
(7)
性別屬性只有2類,取1表示男,取0表示女;年齡屬性是一個(gè)連續(xù)數(shù)值,基于埃里克森人格發(fā)展八階段理論對(duì)年齡做離散化處理,年齡相差一定范圍內(nèi)屬于同一類,本文將年齡劃分為以下5個(gè)類別(數(shù)據(jù)集中用戶年齡最小為15歲):‘15-18歲’編碼為‘1’,‘19-28歲’編碼為‘2’,‘29-40歲’編碼為‘3’,‘41-65歲’編碼為‘4’,‘66歲以上’編碼為‘5’.
2)對(duì)于標(biāo)稱屬性,相似度計(jì)算公式如公式(8)所示:
sim(amk,ank)=1-L(amk,ank)H
(8)
傳統(tǒng)職業(yè)的種類有多種,每一個(gè)職業(yè)至少對(duì)應(yīng)一個(gè)主行業(yè),根據(jù)國(guó)民經(jīng)濟(jì)行業(yè)分類將行業(yè)劃分為20個(gè)門類,其中各門類又包括:所屬大類,中類和小類.考慮到各值之間的潛在語(yǔ)義關(guān)系,構(gòu)建了基于領(lǐng)域知識(shí)的分類語(yǔ)義層次樹(shù).樹(shù)的葉節(jié)點(diǎn)分別是不同的屬性值,屬性值之間的相似性取決于其在樹(shù)結(jié)構(gòu)中的位置.式中,L(amk,ank)表示返回屬性值amk和ank葉節(jié)點(diǎn)到達(dá)公共雙親的最長(zhǎng)路徑長(zhǎng)度,H表示分類語(yǔ)義層次樹(shù)的樹(shù)木高度.
基于以上屬性分類計(jì)算得到用戶間屬性相似度的計(jì)算公式如公式(9)所示:
simAttr(m,n)=∑k∈AttrωksimAttr(amk,ank)
(9)
用戶間關(guān)注相似度可以判定用戶間關(guān)注喜好領(lǐng)域的共性.在實(shí)際場(chǎng)景下考慮大眾對(duì)自我感興趣的項(xiàng)目才會(huì)產(chǎn)生行為,而這些行為的結(jié)果(評(píng)分高低)取決于項(xiàng)目本身的“質(zhì)量”而并非領(lǐng)域本身的問(wèn)題.比如用戶u購(gòu)買了兩個(gè)不同出版社的算法類書(shū)籍i1和i2,i1給予了低評(píng)分,i2給予了高評(píng)分,i1低評(píng)分并不是因?yàn)橛脩魧?duì)算法不敢興趣,而是受到書(shū)籍本身算法難易度和能力適配等各方面的影響.傳統(tǒng)推薦算法在計(jì)算用戶相似度時(shí),僅僅考慮用戶間對(duì)同一項(xiàng)目的評(píng)分,評(píng)分相似度高則用戶相似高,評(píng)分相似度低則用戶相似低.但這種計(jì)算方法忽視了對(duì)同一項(xiàng)目產(chǎn)生行為可以一定程度的影響用戶相似度,因此用戶間關(guān)注相似度可以影響用戶相似度的評(píng)判.用戶的關(guān)注矩陣如表3所示,其中T代表用戶已評(píng)分項(xiàng),F(xiàn)代表未評(píng)分項(xiàng).
表3 用戶關(guān)注Table 3 User attention
對(duì)于用戶間關(guān)注相似度的計(jì)算公式如公式(10)所示:
simFoc(u,v)=conuv(ownu+ownv)-conuv
(10)
式中,conuv是用戶u和v的共同評(píng)分項(xiàng),ownu,ownv是u,v各自評(píng)分項(xiàng).
用戶評(píng)分在一定程度上反映了用戶對(duì)項(xiàng)目的偏好程度,用戶間評(píng)分差異越小往往代表不同用戶對(duì)同一項(xiàng)目偏好度越一致.傳統(tǒng)打分形式并不能準(zhǔn)確表達(dá)出用戶的偏好程度.例如,用戶u對(duì)項(xiàng)目i打分為4分(滿分為5分制),但是用戶對(duì)項(xiàng)目的偏好度并不能以固定的數(shù)值形式進(jìn)行量化和評(píng)判,分值只能簡(jiǎn)略的認(rèn)為該用戶對(duì)項(xiàng)目的偏好程度較高.
為了得到準(zhǔn)確的偏好程度,文獻(xiàn)[13]提出了通過(guò)模糊邏輯法處理用戶評(píng)分,將評(píng)分相似度計(jì)算中的用戶評(píng)分進(jìn)行數(shù)值豐富化處理.本文將文獻(xiàn)[13]的評(píng)分相似度計(jì)算方法進(jìn)一步改進(jìn),將用戶的評(píng)分偏好進(jìn)行多維度量化,參考邁爾斯布里格斯類型指標(biāo)將評(píng)分偏好分為喜歡、無(wú)感和不喜歡.在模糊邏輯的定義中,喜歡、無(wú)感和不喜歡之間是沒(méi)有嚴(yán)格的界限的,也就是說(shuō)用戶評(píng)分的數(shù)值并不完全歸屬于某一個(gè)類,而是以隸屬度來(lái)衡量的.結(jié)合用戶評(píng)分范圍,對(duì)評(píng)分隸屬函數(shù)定義如圖1所示.
圖1 評(píng)分隸屬度函數(shù)Fig.1 Score membership function
μgood(x)=(x-3)/2 3≤x≤5
μord(x)=(x-1)/21≤x<3
(5-x)/23≤x≤5
μbad(x)=(3-x)/2 1≤x≤3
(11)
其中x為用戶評(píng)分,μgood(x)為用戶喜歡的量化值,μord(x)為用戶無(wú)感的量化值,μbad(x)為用戶不喜歡的量化值.偏好度差異計(jì)算公式如公式(12)、公式(13)所示,基于以上推論,任意兩用戶間評(píng)分量化得到的偏好相似程度計(jì)算公式如公式(14)所示,公式相關(guān)概念的定義顯示在表4中.
dis(i,j)=∑lk=1(fkic-fkjc)2
(12)
diff(i,j)=(∑c∈Ii,jdis(i,j))/|Iij|
(13)
Ps(i,j)=1/(diff(i,j))
(14)
表4 本節(jié)公式符號(hào)含義Table 4 Symbolic meaning of formula in this section
為了平衡兩個(gè)用戶間公共評(píng)分次數(shù)與總評(píng)分次數(shù)占比關(guān)系,將Tanimoto修正系數(shù)(15)和用戶偏好度系數(shù)Ps(i,j)結(jié)合,最后基于用戶修正余弦相似度(3),得到用戶評(píng)分相似度計(jì)算公式,如公式(16)所示:
Tanimoto=Ii·Ij‖Ii‖2+‖Ij‖2-Ii·Ij
(15)
simSoc(i,j)=sim(i,j)A×Ps(i,j)×Tanimoto
(16)
為了進(jìn)一步提高用戶間相似度的計(jì)算精度,將用戶間屬性相似度、關(guān)注相似度、評(píng)分相似度進(jìn)行權(quán)值融合.為了修正3.2節(jié)提出的問(wèn)題.評(píng)分相似度和關(guān)注相似度采用加權(quán)組合的方式,但考慮到評(píng)分相似度比關(guān)注相似度更能體現(xiàn)用戶的相似度,設(shè)置關(guān)注相似度的權(quán)重占比小于評(píng)分相似度的權(quán)重占比.此外,在數(shù)據(jù)稀疏的條件下以上3種相似度的計(jì)算會(huì)造成不同程度的影響,其中評(píng)分相似度和關(guān)注相似度在公共評(píng)分稀疏的環(huán)境下影響程度較高.因此設(shè)定公共評(píng)分?jǐn)?shù)量閥值d,根據(jù)d大小調(diào)整其在不同數(shù)據(jù)稀疏情況下的平衡分布權(quán)重,混合用戶多相似度計(jì)算公式如(17)所示.
simMix(i,j)=βNd[(αsimSoc(i,j)+(1-α)simFoc(i,j)]+
(1-βNd)simAttr(i,j),N β[αsimSoc(i,j)+(1-α)simFoc(i,j)]+ (1-β)simAttr(i,j),N≥d (17) 對(duì)物品產(chǎn)生過(guò)行為的用戶總數(shù)即為項(xiàng)目流行度,它會(huì)對(duì)用戶之間的相似關(guān)系產(chǎn)生潛在影響.實(shí)際場(chǎng)景下流行度高的商品更容易被用戶發(fā)現(xiàn)和反饋,而流行度低的商品則很難引起用戶的注意. 現(xiàn)有算法中在計(jì)算項(xiàng)目流行度對(duì)相似度的影響時(shí)普遍采用設(shè)置流行度懲罰權(quán)重或權(quán)重因子來(lái)降低熱門項(xiàng)目在相似度計(jì)算及最終推薦中的影響力,但不合理的是這種計(jì)算方法同時(shí)降低了熱門且評(píng)分高的項(xiàng)目的影響力.本文將文獻(xiàn)[6]、文獻(xiàn)[14]、文獻(xiàn)[15]提出的融合項(xiàng)目流行度思想的協(xié)同過(guò)濾推薦算法進(jìn)一步改進(jìn),將考慮熱門項(xiàng)目的平均評(píng)分,動(dòng)態(tài)調(diào)整評(píng)分未超過(guò)門限ω及超過(guò)門限ω的熱門項(xiàng)目的流行度,提出一種參考評(píng)分因素的項(xiàng)目流行度懲罰調(diào)整方法. 計(jì)算項(xiàng)目i的流行度IPopi,并對(duì)其歸一化.項(xiàng)目i的流行度IPopi為項(xiàng)目i被評(píng)價(jià)次數(shù),項(xiàng)目的流行度如表5所示,歸一化計(jì)算公式如公式(18)所示. 表5 項(xiàng)目流行度Table 5 Project popularity norIPopi=IPopi-minIPopmaxIPOP-minIPop (18) 式中,minIPop和maxIPop分別為項(xiàng)目流行度中的最小值和最大值,norIPopi為歸一化后的項(xiàng)目i的流行度.提取流行度,設(shè)置流行度閾值δ和平均評(píng)分閾值ω,改進(jìn)后的項(xiàng)目流行度的權(quán)重因子w如式(19)所示. wi=1norIPopi<δ (19) 通過(guò)上述分析,本文提出的融合項(xiàng)目流行度與用戶間多相似度的協(xié)同過(guò)濾算法,基本算法步驟如下: 算法1:融合項(xiàng)目流行度與用戶間多相似度的協(xié)同過(guò)濾算法 輸入:用戶項(xiàng)目反饋信息矩陣R、目標(biāo)用戶V、鄰居用戶數(shù)量K、推薦域m(m>n)、最終推薦數(shù)量n. 輸出:推薦給目標(biāo)用戶V的N個(gè)項(xiàng)目 a)提取用戶-項(xiàng)目評(píng)分矩陣數(shù)據(jù) b)提取用戶共同關(guān)注矩陣,并計(jì)算用戶間關(guān)注相似度 c)通過(guò)共同評(píng)分項(xiàng)計(jì)算用戶間評(píng)分相似度,采用加權(quán)組合方法,融合用戶關(guān)注相似度和評(píng)分相似度 d)提取用戶屬性,計(jì)算用戶屬性相似度 e)設(shè)置公共評(píng)分?jǐn)?shù)量閥值d,在不同閾值下根據(jù)不同數(shù)據(jù)稀疏情況動(dòng)態(tài)調(diào)整平衡分布權(quán)重,采用權(quán)值融合的方式將屬性相似度融合至關(guān)注和評(píng)分相似度,得到用戶多相似度 f)根據(jù)改進(jìn)后的相似度計(jì)算公式,從矩陣中找出與目標(biāo)用戶u最相似的k個(gè)用戶,用集合S(u,k)表示,將集合S中除去用戶u已經(jīng)喜歡的物品后的m個(gè)可能喜歡的物品全部提取出來(lái) g)計(jì)算m個(gè)候選項(xiàng)目的流行度,并對(duì)其歸一化 h)提取流行度,設(shè)置流行度閾值δ和平均評(píng)分閾值ω,并計(jì)算改進(jìn)后的項(xiàng)目流行度的反饋權(quán)重w i)m個(gè)候選項(xiàng)目乘以各自反饋流行度權(quán)重w,最終評(píng)分由高到低選出n個(gè)推薦項(xiàng)目,預(yù)測(cè)評(píng)分計(jì)算公式如公式(20)所示. P(u,i)=∑v∈S(u,k)∩N(i)wvi×rvi (20) 本文的所有實(shí)驗(yàn)和算法都是以Python和MATLAB實(shí)現(xiàn)為基礎(chǔ)的.實(shí)驗(yàn)操作系統(tǒng)為Windows10,處理器為Intel Core i5-4200U CPU,內(nèi)存為8GB. 本文采用Movielens100k數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),作為推薦算法研究中的常用數(shù)據(jù)集.其包括了943個(gè)用戶對(duì)1682部電影的100000條評(píng)分?jǐn)?shù)據(jù),除此之外還有用戶屬性數(shù)據(jù)集包括用戶的ID、年齡、性別、職業(yè)等.為了驗(yàn)證本文算法的有效性對(duì)其進(jìn)行實(shí)驗(yàn)比較和分析,所以選擇了此次實(shí)驗(yàn)的Movielens100k數(shù)據(jù)集.本文將數(shù)據(jù)集中80%的數(shù)據(jù)用作訓(xùn)練樣本,20%的數(shù)據(jù)用作測(cè)試樣本. 平均絕對(duì)誤差(mean absolute error,MAE)[16]是評(píng)價(jià)預(yù)測(cè)分?jǐn)?shù)準(zhǔn)確性的評(píng)價(jià)指標(biāo),用于計(jì)算項(xiàng)目的預(yù)測(cè)值和實(shí)際值之間的差異.MAE值越小,預(yù)測(cè)值的準(zhǔn)確度越高,計(jì)算公式如公式(21)所示. MAE=∑u∈U,i∈I|Pu,i-Ru,i|N (21) 其中N代表預(yù)測(cè)評(píng)分的個(gè)數(shù). 覆蓋率(coverage)[17]可以測(cè)量推薦系統(tǒng)推薦的物品在整個(gè)物品集合中所占的比例,有效地反映推薦結(jié)果的多樣性和新穎性.覆蓋率高時(shí),多樣性和新穎性也相對(duì)較高.其計(jì)算公式如公式(22)所示. coverage=|R(u)||I| (22) 式中,I為系統(tǒng)中的項(xiàng)目集合,R(u)是為用戶u推薦的項(xiàng)目列表. 為了驗(yàn)證改進(jìn)算法(PM-UBCF)的有效性,本文算法分別在近鄰數(shù)設(shè)置為10、20、30、40、50、60、70、80時(shí)與已有的融合項(xiàng)目流行度的推薦算法進(jìn)行實(shí)驗(yàn)對(duì)比,所有的算法均采取同樣的評(píng)分預(yù)測(cè)方法.對(duì)比算法包括文獻(xiàn)[6]改進(jìn)算法(TruMF)、文獻(xiàn)[7]改進(jìn)算法(UA-IBCF)、文獻(xiàn)[14]改進(jìn)算法(itemPopCF)和文獻(xiàn)[18]改進(jìn)算法(PW-IBCF). 在本文的算法中,包含的參數(shù)有公共評(píng)分?jǐn)?shù)量閥值d,評(píng)分權(quán)重α,融合因子β,流行度閾值δ和平均評(píng)分閾值ω.實(shí)驗(yàn)前對(duì)實(shí)驗(yàn)數(shù)據(jù)的用戶評(píng)分次數(shù)進(jìn)行了統(tǒng)計(jì),結(jié)果顯示評(píng)分?jǐn)?shù)少于18次和超過(guò)18次的用戶數(shù)差異最大化.這時(shí)混合算法容易受到評(píng)分?jǐn)?shù)量的影響.因此,在實(shí)驗(yàn)一中確定未知參數(shù)的過(guò)程中d的值設(shè)定為18. 考慮到實(shí)際場(chǎng)景下,評(píng)分相似度比關(guān)注相似度及屬性相似度一般更能體現(xiàn)用戶間的相似程度,因此設(shè)置評(píng)分相似度的權(quán)重占比高于關(guān)注相似度及屬性相似度的權(quán)重占比,將評(píng)分權(quán)重α以0.1為步長(zhǎng)遞增,取值范圍為[0.5,0.9].融合因子β以0.1為步長(zhǎng)遞增,取值范圍為[0.5,0.9],通過(guò)Python分析MovieLens100k數(shù)據(jù)集的項(xiàng)目流行度以及項(xiàng)目的平均評(píng)分,本文算法將MovieLens100k數(shù)據(jù)集的流行度閾值δ設(shè)置為[0.2,0.6],步長(zhǎng)為0.1;平均分閾值ω?cái)?shù)組為[2,4],步長(zhǎng)為0.5. 實(shí)驗(yàn)1.未知參數(shù)的確定 為了驗(yàn)證不同參數(shù)取值對(duì)實(shí)驗(yàn)結(jié)果的影響,對(duì)不同鄰居數(shù)下的MAE值進(jìn)行了比較,在MovieLens100k數(shù)據(jù)集中進(jìn)行了多組實(shí)驗(yàn).結(jié)果顯示,隨著鄰居數(shù)量的變化,不同的評(píng)分權(quán)重α,融合因子β,流行度閾值δ和平均評(píng)分閾值ω對(duì)MAE值的影響分別如圖2-圖5所示.隨著評(píng)分權(quán)重α的變化,本文算法的MAE值保持在[0.76,0.766].當(dāng)評(píng)分權(quán)重α取0.8時(shí),MAE值較低且穩(wěn)定性較好;對(duì)于融合因子β,當(dāng)融合因子取0.9時(shí)MAE值達(dá)到最低值,此外,流行度閾值δ和平均評(píng)分閾值ω分別取值為0.4和3.5時(shí)取得各自不同鄰居數(shù)量下的MAE的最小值.因此,本文算法將公共評(píng)分?jǐn)?shù)量閾值d取值為18,評(píng)分權(quán)重α取值為0.8,融合因子β取值為0.9,流行度閾值δ取值為0.4,平均評(píng)分閾值ω取值為3.5.該數(shù)據(jù)集的后續(xù)實(shí)驗(yàn)參數(shù)將依此設(shè)置. 圖2 評(píng)分權(quán)重α對(duì)MAE的影響Fig.2 Influence of score weight α on MAE 圖3 融合因子β對(duì)MAE的影響Fig.3 Effect of fusion factor β on MAE 圖4 流行度閾值δ對(duì)MAE的影響Fig.4 Influence of prevalence threshold δ on MAE 圖5 平均評(píng)分閾值ω對(duì)MAE的影響Fig.5 Influence of average score threshold ω on MAE 實(shí)驗(yàn)2.算法性能對(duì)比 基于圖6對(duì)比實(shí)驗(yàn)的結(jié)果,在MovieLens100k數(shù)據(jù)集中,每種算法的預(yù)測(cè)精度MAE都隨著K值的變化而變化,當(dāng)鄰居個(gè)數(shù)大于30時(shí),本文算法(PM-UBCF)的MAE值均低于其它對(duì)比算法的MAE值,當(dāng)鄰居個(gè)數(shù)等于50時(shí),本文算法的MAE值達(dá)到最低值,約為0.756.因此,本文提出的算法具有較高的預(yù)測(cè)精度. 圖6 預(yù)測(cè)準(zhǔn)確度對(duì)比結(jié)果Fig.6 Comparison of prediction accuracy 覆蓋率的對(duì)比實(shí)驗(yàn)結(jié)果如圖7所示.ItemPopCF算法的覆蓋率隨著鄰居數(shù)的增加而減??;TruMF算法的覆蓋率隨著鄰居數(shù)的增加而基本不變;PW-IBCF、UA-IBCF和本文PM-UBCF算法的覆蓋率隨著K值的增加而逐漸增加,當(dāng)K值大于40時(shí)增加趨于平緩,在K取值范圍為[20,80]時(shí),本文PM-UBCF算法的覆蓋率均高于其它對(duì)比算法.其中當(dāng)鄰居數(shù)K超過(guò)50時(shí),本文算法的覆蓋率接近33.2%,推薦的多樣性和新穎性表現(xiàn)更優(yōu). 圖7 推薦覆蓋率對(duì)比結(jié)果Fig.7 Comparison of recommended coverage 本文針對(duì)現(xiàn)有算法未充分考慮引入項(xiàng)目流行度在降低熱門項(xiàng)目影響力的同時(shí)會(huì)普遍降低熱門但評(píng)分高的項(xiàng)目影響力的問(wèn)題,改進(jìn)了利用項(xiàng)目流行度計(jì)算項(xiàng)目相似度的度量策略,將平均評(píng)分考慮到度量決策中.此外,通過(guò)融合多種用戶間相似度進(jìn)一步提高了用戶相似度計(jì)算的準(zhǔn)確率.實(shí)驗(yàn)結(jié)果表明,考慮對(duì)超過(guò)平均分閾值的高流行度項(xiàng)目在進(jìn)行相關(guān)懲罰的同時(shí)進(jìn)行補(bǔ)償反饋在提高結(jié)果預(yù)測(cè)準(zhǔn)確度的同時(shí)也增加了推薦結(jié)果的多樣性.3.5 項(xiàng)目流行度
1-log(1+norIPopi)log2GPAi<ω
11+e-(GPAi-5)+1-log(1+norIPopi)log2GPAi≥ωnorIPopi≥δ3.6 本文算法實(shí)現(xiàn)
4 實(shí)驗(yàn)與分析
4.1 實(shí)驗(yàn)準(zhǔn)備
4.2 評(píng)估指標(biāo)
4.3 對(duì)比算法及參數(shù)設(shè)置
4.4 實(shí)驗(yàn)結(jié)果及分析
5 總 結(jié)