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