劉雯雯,汪皖燕,程樹林
(安慶師范大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 安慶 246133)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和各種網(wǎng)絡(luò)平臺(tái)的日益興盛,用戶面臨著日益嚴(yán)重的數(shù)據(jù)超載、檢索困難等問題[1]。用戶無(wú)法快速、精準(zhǔn)地從海量的信息庫(kù)中獲取所需要的信息。為緩解這些問題,推薦系統(tǒng)[2]應(yīng)運(yùn)而生,它不需要用戶提供明確的需求信息,而是通過主動(dòng)跟蹤用戶的歷史行為記錄來(lái)發(fā)掘用戶的偏好,進(jìn)而為用戶推薦合適的項(xiàng)目[3]。推薦算法是推薦系統(tǒng)的核心,好的推薦算法會(huì)為推薦系統(tǒng)帶來(lái)更好的推薦效果。
但傳統(tǒng)推薦算法大多存在著項(xiàng)目熱門度偏差問題[4-5]:傳統(tǒng)協(xié)同過濾推薦算法[6]通常偏向于推薦熱門項(xiàng)目[7],忽視了對(duì)小眾用戶偏好的非熱門項(xiàng)目的推薦。雖然推薦熱門項(xiàng)目通常是一個(gè)很好的選擇,但推薦列表中可能存在較為普遍的項(xiàng)目,因此,傳統(tǒng)協(xié)同過濾推薦算法在促進(jìn)新項(xiàng)目的發(fā)現(xiàn)上存在一定的不足,亦忽視了小眾用戶的偏好,從而導(dǎo)致對(duì)非熱門項(xiàng)目或新項(xiàng)目的推薦存在缺陷,因?yàn)橹挥袠O少數(shù)用戶甚至沒有用戶對(duì)這些項(xiàng)目進(jìn)行過評(píng)分。研究表明,非熱門項(xiàng)目的價(jià)值遠(yuǎn)高于熱門項(xiàng)目,可以為用戶帶來(lái)更大的收獲或利益[8-9]。推薦系統(tǒng)中非熱門項(xiàng)目的數(shù)量遠(yuǎn)多于熱門項(xiàng)目(項(xiàng)目熱門度較高的項(xiàng)目)的數(shù)量,隨著推薦系統(tǒng)的不斷發(fā)展,非熱門項(xiàng)目的數(shù)量也在持續(xù)增長(zhǎng)中,如果過多推薦熱門項(xiàng)目而忽視對(duì)非熱門項(xiàng)目的推薦,就有可能在一定程度上降低推薦的精度。
另外,推薦系統(tǒng)中存在的項(xiàng)目熱門度偏差問題可能會(huì)對(duì)社會(huì)造成不良影響[4]。比如,在微博、Facebook等社交網(wǎng)站中,用戶的訂閱大多來(lái)源于推薦系統(tǒng),其影響著用戶的言行舉止,若大肆為用戶推薦不當(dāng)?shù)难哉摶蛐袨?,可能?huì)對(duì)用戶造成不好的影響。例如總是為用戶推薦兇殺、猥褻、校園暴力等事件會(huì)造成用戶的恐慌和不安,甚至造成社會(huì)動(dòng)蕩。針對(duì)該問題,該文提出一種融合項(xiàng)目熱門懲罰因子改進(jìn)協(xié)同過濾推薦方法。引入熱門閾值,根據(jù)項(xiàng)目熱門度將項(xiàng)目進(jìn)行二分類,即熱門項(xiàng)目和非熱門項(xiàng)目。對(duì)于熱門項(xiàng)目,融合項(xiàng)目熱門懲罰因子改進(jìn)協(xié)同過濾推薦方法,降低熱門項(xiàng)目的貢獻(xiàn),從而提升推薦精度,提高用戶滿意度。
傳統(tǒng)推薦算法的推薦列表中熱門項(xiàng)目更容易被推薦,這過于強(qiáng)調(diào)大眾偏好,忽視了向小眾用戶推薦其偏好的非熱門項(xiàng)目的重要性。以書籍推薦為例,絕大多數(shù)的研究者都購(gòu)買過《機(jī)器學(xué)習(xí)》這本書,而《推薦系統(tǒng)》是僅研究推薦系統(tǒng)的小眾用戶才可能購(gòu)買的一本書。相比較而言,推薦《推薦系統(tǒng)》比推薦《機(jī)器學(xué)習(xí)》更能滿足這些小眾用戶的需求,提高其滿意度。為此專家學(xué)者從不同層面對(duì)熱門推薦進(jìn)行了相關(guān)研究,主要的熱門推薦分為以下三類。
(1)基于正則化的推薦。Abdollahpouri等人[10]引入一個(gè)靈活的基于正則化的框架,以增強(qiáng)學(xué)習(xí)排名(Length-to-Rank,L2R)算法中推薦列表的非熱門項(xiàng)目覆蓋率,但這里的熱門項(xiàng)目與非熱門項(xiàng)目是按50/50劃分的,未考慮其他情況,如20/80。Zhu等人[11]提出公平性問題中的一個(gè)新定義:popularity-opportunity bias。他們認(rèn)為根據(jù)用戶的偏好,熱門項(xiàng)目比非熱門項(xiàng)目更有可能被推薦給用戶的這種偏差現(xiàn)象是不合理的,并實(shí)證了該偏差的存在,然后通過后處理和內(nèi)處理兩種算法來(lái)緩減這種偏差。后處理是按一定規(guī)則提高非熱門項(xiàng)目的得分,從而使其獲得與熱門項(xiàng)目相似的排名,內(nèi)處理是采用正用戶項(xiàng)目對(duì)的預(yù)測(cè)偏好分?jǐn)?shù)和相應(yīng)項(xiàng)目熱門度間皮爾遜相關(guān)系數(shù)的平方的正則化項(xiàng)來(lái)實(shí)現(xiàn)項(xiàng)目的公平推薦。
(2)基于交互關(guān)系的推薦。Sun等人[12]提出了一種基于主題模型的用戶行為記錄、項(xiàng)目標(biāo)簽信息和社會(huì)關(guān)系聯(lián)合建模方法,分別構(gòu)建目標(biāo)用戶與一組項(xiàng)目、項(xiàng)目標(biāo)簽和社交用戶的對(duì)應(yīng)關(guān)系,從而間接構(gòu)建用戶與非熱門項(xiàng)目的映射關(guān)系,提高非熱門項(xiàng)目的推薦。Meghawat等人[13]提出一種多模式方法,該方法利用視覺特征(即內(nèi)容信息)、文本特征(即上下文信息)和社交特征(例如平均瀏覽量和群組數(shù)量)來(lái)預(yù)測(cè)社交媒體照片在瀏覽量方面的項(xiàng)目熱門度。
(3)基于檢測(cè)關(guān)鍵信息的推薦。Liu等人[14]提出一種新的結(jié)合關(guān)鍵詞驅(qū)動(dòng)和項(xiàng)目熱門度感知的基于無(wú)向引文圖的論文推薦方法,該方法推薦的論文關(guān)聯(lián)性強(qiáng)且項(xiàng)目熱門度高,同時(shí)其推薦的結(jié)果支持用戶對(duì)某個(gè)主題或領(lǐng)域進(jìn)行深入、持續(xù)的研究,但建立的無(wú)向引文圖可能存在嚴(yán)重的稀疏問題。Wang等人[15]提出一種新的帶有輔助語(yǔ)義學(xué)習(xí)的聯(lián)合深度網(wǎng)絡(luò)模型,引入文本分析到熱門推薦中。首先,使用優(yōu)化后的字符級(jí)卷積神經(jīng)網(wǎng)絡(luò)(Character-level Convolutional Neural Network,CharCNN)從用戶評(píng)論中學(xué)習(xí)輔助語(yǔ)義向量;然后,使用因子分解機(jī)(Factorization Machine,F(xiàn)M)組件和深度組件學(xué)習(xí)項(xiàng)目屬性特征的相應(yīng)向量表示;同時(shí),采用卷積來(lái)模擬隱藏的潛在向量間的相互作用。Piotrkowicz等人[16]提出一個(gè)只使用標(biāo)題來(lái)預(yù)測(cè)新聞文章項(xiàng)目熱門度的新任務(wù), 側(cè)面證明了標(biāo)題對(duì)新聞文章項(xiàng)目熱門度的影響。
由于原始項(xiàng)目評(píng)分?jǐn)?shù)據(jù)稀疏度較高,會(huì)降低推薦的精度,該文先按照文獻(xiàn)[17]的方法對(duì)原始項(xiàng)目評(píng)分?jǐn)?shù)據(jù)中的空缺評(píng)分項(xiàng)進(jìn)行預(yù)填充,得到項(xiàng)目評(píng)分矩陣R。即根據(jù)用戶的動(dòng)態(tài)偏好閾值將項(xiàng)目劃分成用戶偏好項(xiàng)目和用戶非偏好項(xiàng)目?jī)刹糠?,?duì)于用戶非偏好項(xiàng)目,采用原始項(xiàng)目評(píng)分?jǐn)?shù)據(jù)中該用戶的最低評(píng)分進(jìn)行填充;對(duì)于用戶偏好項(xiàng)目,融合用戶平均評(píng)分和項(xiàng)目平均得分以合適的比例進(jìn)行填充。然后,分析項(xiàng)目熱門度,根據(jù)熱門閾值將項(xiàng)目劃分成熱門項(xiàng)目和非熱門項(xiàng)目。對(duì)于熱門項(xiàng)目,采用項(xiàng)目熱門懲罰因子降低它的貢獻(xiàn);對(duì)于非熱門項(xiàng)目,則用傳統(tǒng)方法進(jìn)行處理。
項(xiàng)目熱門度:在有限項(xiàng)目集合SI和用戶集合SU中,對(duì)項(xiàng)目進(jìn)行過評(píng)分的用戶數(shù)與項(xiàng)目評(píng)分?jǐn)?shù)據(jù)中總用戶數(shù)的比例即為該項(xiàng)目的項(xiàng)目熱門度,如式(1)所示。
(1)
其中,若用戶u對(duì)項(xiàng)目i進(jìn)行過評(píng)分,則λu,i=1;否則λu,i=0。|SU|表示項(xiàng)目評(píng)分?jǐn)?shù)據(jù)中總用戶數(shù),Hi表示項(xiàng)目i的項(xiàng)目熱門度,其取值范圍在[0,1]之間。Hi的值越大,表明項(xiàng)目越熱門。若直接采用對(duì)項(xiàng)目進(jìn)行過評(píng)分的用戶數(shù)度量項(xiàng)目熱門度,則忽視了用戶基數(shù)總量對(duì)項(xiàng)目熱門度的影響。假設(shè)在數(shù)據(jù)A和B中,數(shù)據(jù)A共有10位用戶,數(shù)據(jù)B共有50位用戶,其中,均有5位用戶對(duì)項(xiàng)目i進(jìn)行過評(píng)分。若直接用對(duì)項(xiàng)目進(jìn)行過評(píng)分的用戶數(shù)來(lái)度量項(xiàng)目i的項(xiàng)目熱門度,則其在數(shù)據(jù)A、B中的項(xiàng)目熱門度均為5,很明顯這是不準(zhǔn)確的;若采用文中的度量方法,則項(xiàng)目i在數(shù)據(jù)A、B中的項(xiàng)目熱門度分別為0.5、0.1,結(jié)果更合理,也符合實(shí)際情況。
在實(shí)際生活中,熱門項(xiàng)目出現(xiàn)的頻率遠(yuǎn)遠(yuǎn)高于非熱門項(xiàng)目,更容易被用戶接觸和評(píng)分,但用戶多是出于從眾或獵奇的心理,因此熱門項(xiàng)目較少甚至不能體現(xiàn)用戶潛在的偏好,應(yīng)采用項(xiàng)目熱門懲罰因子降低這些項(xiàng)目的貢獻(xiàn)。項(xiàng)目熱門懲罰因子的具體設(shè)置如式(2)所示。
(2)
其中,Wi表示項(xiàng)目i的項(xiàng)目熱門懲罰因子,PT表示熱門閾值,γ為平衡參數(shù),其取值范圍為γ>0,表示項(xiàng)目熱門度對(duì)項(xiàng)目熱門懲罰因子的影響系數(shù)。若Hi≤PT,則認(rèn)為項(xiàng)目i為非熱門項(xiàng)目,將其對(duì)應(yīng)的項(xiàng)目懲罰因子設(shè)置為1;若Hi>PT,則認(rèn)為項(xiàng)目i為熱門項(xiàng)目,其對(duì)應(yīng)的項(xiàng)目熱門懲罰因子設(shè)置為e-γ*Hi,熱門項(xiàng)目的項(xiàng)目熱門度越高,其對(duì)應(yīng)的項(xiàng)目熱門懲罰因子越小。
由于絕大多數(shù)用戶都對(duì)熱門項(xiàng)目進(jìn)行過評(píng)分,導(dǎo)致用戶相似性普遍偏高,基于此,該文將設(shè)計(jì)的項(xiàng)目熱門懲罰因子引入用戶相似度計(jì)算公式中,用來(lái)降低熱門項(xiàng)目對(duì)用戶相似度的貢獻(xiàn)。改進(jìn)后的余弦相似度計(jì)算公式如式(3)所示。
(3)
其中,u、v分別表示用戶集合中的兩個(gè)用戶,sim(u,v)表示用戶u與用戶v的用戶相似度。Iu,v表示用戶u與用戶v共同進(jìn)行過評(píng)分的項(xiàng)目集合,Iu、Iv分別表示用戶u、用戶v進(jìn)行過評(píng)分的項(xiàng)目集合。Ru,i、Rv,i分別表示用戶u、用戶v對(duì)項(xiàng)目i的評(píng)分。若用戶進(jìn)行過評(píng)分的項(xiàng)目集合中含有熱門項(xiàng)目,則其對(duì)應(yīng)的熱門懲罰因子小于1,sim(u,v)值隨之變小,弱化了用戶u與用戶v的用戶相似度,降低了熱門項(xiàng)目對(duì)用戶相似度的貢獻(xiàn);若用戶進(jìn)行過評(píng)分的項(xiàng)目集合中全是非熱門項(xiàng)目,則其對(duì)應(yīng)的熱門懲罰因子為1,sim(u,v)值保持不變,即保留用戶u與用戶v的原始用戶相似度。
通過式(3)計(jì)算出用戶間的用戶相似度,選取與目標(biāo)用戶最相似的K個(gè)近鄰,根據(jù)這些近鄰對(duì)目標(biāo)用戶未評(píng)分項(xiàng)目的評(píng)分預(yù)測(cè)目標(biāo)用戶的評(píng)分,然后將預(yù)測(cè)評(píng)分最高的前M個(gè)項(xiàng)目推薦給目標(biāo)用戶。
(4)
其中,Pu,i表示用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分,Nu表示用戶u的近鄰集合。該文采用平均絕對(duì)誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE)作為所提方法的評(píng)估指標(biāo),表示用戶評(píng)分與預(yù)測(cè)評(píng)分之間的偏差。MAE和RMSE的具體計(jì)算方式如式(5)、式(6)所示。
(5)
(6)
其中,|N|表示預(yù)測(cè)評(píng)分的數(shù)目。
首先,依次根據(jù)式(1)、式(2)計(jì)算每個(gè)項(xiàng)目的項(xiàng)目熱門度和對(duì)應(yīng)的項(xiàng)目熱門懲罰因子;然后,基于改進(jìn)的余弦相似度計(jì)算用戶相似度并選取與目標(biāo)用戶最相似的K個(gè)近鄰,通過這些近鄰對(duì)目標(biāo)用戶未評(píng)分項(xiàng)目的評(píng)分來(lái)預(yù)測(cè)目標(biāo)用戶的評(píng)分;最后,對(duì)預(yù)測(cè)評(píng)分進(jìn)行降序排序,并獲取對(duì)應(yīng)的項(xiàng)目推薦列表。融合項(xiàng)目懲罰因子改進(jìn)協(xié)同過濾推薦方法的算法如下:
算法:融入項(xiàng)目熱門懲罰因子的協(xié)同過濾推薦方法
輸入:項(xiàng)目評(píng)分矩陣R,最近鄰個(gè)數(shù)K
輸出:用戶對(duì)應(yīng)的項(xiàng)目推薦列表
1:設(shè)置平衡參數(shù)γ
2:設(shè)置熱門閾值PT
3: fori=1,2,…,ndo
4:根據(jù)式(1)計(jì)算項(xiàng)目熱門度Hi
5:根據(jù)式(2)計(jì)算項(xiàng)目熱門懲罰因子Wi
6: endfor
7: foru=1,2,…,mdo
8: 根據(jù)式(3)計(jì)算用戶之間的相似度
9: 挑選最相似的K個(gè)近鄰用戶
10: endfor
11: 根據(jù)式(4)預(yù)測(cè)用戶對(duì)項(xiàng)目的評(píng)分Pu,i
12: 對(duì)預(yù)測(cè)評(píng)分進(jìn)行降序排序,并輸出推薦列表
實(shí)驗(yàn)采用美國(guó)明尼蘇達(dá)大學(xué)GroupLens項(xiàng)目組提供的MovieLens 100 K數(shù)據(jù)集,每位用戶至少對(duì)20部電影進(jìn)行過評(píng)分,最高評(píng)分為5分,最低評(píng)分為1分。該數(shù)據(jù)包含943位用戶對(duì)1 682部電影項(xiàng)目的100 000個(gè)評(píng)分記錄,稀疏性為93.7%。隨機(jī)抽取80%數(shù)據(jù)作為訓(xùn)練集,剩下的20%數(shù)據(jù)作為測(cè)試集。
前期,在對(duì)原始項(xiàng)目評(píng)分?jǐn)?shù)據(jù)中的空缺項(xiàng)進(jìn)行填充時(shí),偏好閾值參數(shù)和權(quán)重參數(shù)會(huì)影響最終的填充效果。由于該文與文獻(xiàn)[17]均采用MovieLens 100 K數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,故分別將偏好閾值參數(shù)和權(quán)重參數(shù)設(shè)置為1/60和0.1。在后期融合項(xiàng)目懲罰因子降低熱門項(xiàng)目的貢獻(xiàn)時(shí),平衡參數(shù)γ和熱門閾值PT會(huì)影響最終的預(yù)測(cè)結(jié)果。所以,先針對(duì)這兩個(gè)參數(shù)進(jìn)行相應(yīng)的優(yōu)化實(shí)驗(yàn),再進(jìn)行對(duì)比實(shí)驗(yàn)。
3.2.1 平衡參數(shù)γ對(duì)實(shí)驗(yàn)結(jié)果的影響
該文采用平衡參數(shù)γ來(lái)調(diào)節(jié)項(xiàng)目熱門度對(duì)項(xiàng)目熱門懲罰因子的影響。將γ的取值范圍設(shè)置為[0.5,3],步長(zhǎng)為0.5,在PT=0,近鄰數(shù)K的取值范圍為[5,50],步長(zhǎng)為5時(shí)進(jìn)行相關(guān)實(shí)驗(yàn),結(jié)果如圖1所示。從圖1可以看出,γ值對(duì)實(shí)驗(yàn)結(jié)果有一定的影響。以近鄰數(shù)K=10為例來(lái)進(jìn)行具體分析。MAE值隨著γ值增大呈現(xiàn)先減小后增大的增長(zhǎng)趨勢(shì)。當(dāng)γ值較小時(shí),熱門項(xiàng)目與非熱門項(xiàng)目對(duì)相似度的貢獻(xiàn)相差不大,對(duì)熱門項(xiàng)目的懲罰力度不夠;當(dāng)γ值較大時(shí),則過分懲罰了熱門項(xiàng)目對(duì)相似度的貢獻(xiàn)。因此要對(duì)平衡參數(shù)γ進(jìn)行調(diào)參,尋找最合適的γ值。圖1表明γ最優(yōu)值取1。
(a)平衡參數(shù)γ對(duì)MAE值的影響 (b)平衡參數(shù)γ對(duì)RMSE值的影響
3.2.2 熱門閾值PT對(duì)實(shí)驗(yàn)結(jié)果的影響
該文用熱門閾值PT來(lái)將項(xiàng)目劃分為熱門項(xiàng)目和非熱門項(xiàng)目,即大于該閾值的項(xiàng)目則為熱門項(xiàng)目,反之則為非熱門項(xiàng)目。不同的PT值劃分出的非熱門項(xiàng)目集和熱門項(xiàng)目集不同。為驗(yàn)證PT值對(duì)實(shí)驗(yàn)結(jié)果的影響,將PT的取值范圍設(shè)置為[0.05,0.3],在γ=1,近鄰數(shù)K取值范圍為[5,50],步長(zhǎng)為5時(shí)進(jìn)行相關(guān)實(shí)驗(yàn),結(jié)果如圖2所示。從圖2可以看出,PT值對(duì)實(shí)驗(yàn)的結(jié)果有一定的影響。以近鄰數(shù)K=15為例來(lái)具體分析熱門閾值PT對(duì)實(shí)驗(yàn)結(jié)果的影響,當(dāng)PT值較小時(shí),其對(duì)熱門項(xiàng)目區(qū)分的力度過大,誤將非熱門項(xiàng)目歸為熱門項(xiàng)目,導(dǎo)致MAE值偏大;當(dāng)PT值較大時(shí),其對(duì)熱門項(xiàng)目的區(qū)分力度過小,誤將熱門項(xiàng)目歸為非熱門項(xiàng)目,亦導(dǎo)致MAE值偏大。因此,需要對(duì)PT的值進(jìn)行調(diào)整以獲得最合適的值。圖2表明PT的最優(yōu)值取0.15。
(a)熱門閾值PT對(duì)MAE值的影響 (b)熱門閾值PT對(duì)RMSE值的影響
為進(jìn)一步驗(yàn)證所提方法的性能,將所提方法即融合項(xiàng)目熱門懲罰因子改進(jìn)協(xié)同過濾推薦方法與文獻(xiàn)[17]的方法(用戶偏好二分策略和平均評(píng)分融合的預(yù)評(píng)分方法,即對(duì)比方法)進(jìn)行比較。在MovieLens 100 K數(shù)據(jù)集上進(jìn)行測(cè)試,不同近鄰數(shù)(近鄰數(shù)K為[5,50],步長(zhǎng)為5)下的MAE和RMSE值如圖3所示。從圖3可以看出,隨著近鄰數(shù)K的不斷增大,這兩種方法的MAE和RMSE的波動(dòng)比較穩(wěn)定,即這兩種方法受近鄰數(shù)K的影響不大。所提方法在MAE和RMSE指標(biāo)上優(yōu)于對(duì)比方法,進(jìn)一步驗(yàn)證了所提方法的有效性。
(a)不同方法的MAE值對(duì)比 (b)不同方法的RMSE值對(duì)比
針對(duì)傳統(tǒng)協(xié)同過濾算法存在的項(xiàng)目熱門度偏差問題,即熱門項(xiàng)目的推薦頻率遠(yuǎn)遠(yuǎn)高于非熱門項(xiàng)目的推薦頻率,提出一種融合項(xiàng)目熱門懲罰因子改進(jìn)協(xié)同過濾推薦方法。項(xiàng)目熱門懲罰因子有效地緩解了傳統(tǒng)協(xié)同過濾推薦算法存在的項(xiàng)目熱門度偏差問題。在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)表明,在參數(shù)取最優(yōu)值時(shí),所提方法有效降低了評(píng)分預(yù)測(cè)的誤差。但該方法也存在一定的不足,如度量項(xiàng)目熱門度時(shí)未考慮時(shí)間因素,同一項(xiàng)目在不同時(shí)期對(duì)應(yīng)的項(xiàng)目熱門度可能有所不同等,未來(lái)將基于時(shí)間要素深入研究項(xiàng)目熱門因子在推薦中的作用。