基于懲罰因子的協(xié)同過(guò)濾算法的改進(jìn)與研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
隨著信息量的提升,推薦系統(tǒng)開始發(fā)揮越來(lái)越重要的作用。目前,推薦系統(tǒng)在新聞行業(yè)、娛樂(lè)媒體行業(yè)以及電子商務(wù)領(lǐng)域都有著重要的應(yīng)用。推薦系統(tǒng)領(lǐng)域出現(xiàn)了多種算法, 這些算法都有著明確的應(yīng)用場(chǎng)景,同時(shí)也各有優(yōu)缺點(diǎn)。常用的推薦算法包括基于內(nèi)容的推薦、基于關(guān)聯(lián)規(guī)則的推薦和協(xié)同過(guò)濾算法 [1] 等,其中,協(xié)同過(guò)濾算法是推薦系統(tǒng)中的經(jīng)典算法之一,在眾多場(chǎng)合都有非常廣泛的應(yīng)用。該算法目標(biāo)明確、易于理解,同時(shí)實(shí)用性很強(qiáng),無(wú)需具備專業(yè)領(lǐng)域的知識(shí)即可完成推薦。隨著時(shí)間的推移,推薦系統(tǒng)的性能會(huì)一直得到增強(qiáng),因此該算法的自動(dòng)化程度較高,同時(shí)也可較為方便地處理復(fù)雜的對(duì)象信息和非結(jié)構(gòu)化數(shù)據(jù) [2]。但是協(xié)同過(guò)濾算法存在冷啟動(dòng)、數(shù)據(jù)稀疏、可拓展性差等缺點(diǎn) [3],這些缺點(diǎn)在實(shí)際應(yīng)用中會(huì)影響到推薦系統(tǒng)的性能。本文從實(shí)際入手,針對(duì)協(xié)同過(guò)濾算法傳統(tǒng)的相似度公式無(wú)法抑制熱門物品的問(wèn)題,提出懲罰因子的概念,給出修正后的余弦相似度計(jì)算公式,并進(jìn)行實(shí)驗(yàn)論證。
1 協(xié)同過(guò)濾算法
1.1 傳統(tǒng)協(xié)同過(guò)濾算法
協(xié)同過(guò)濾算法在 1992 年被提出 [5-6],該算法的第一個(gè)應(yīng)用項(xiàng)目是 Tapestry[7]。協(xié)同過(guò)濾算法是在獲取到用戶信息后,尋找目標(biāo)用戶的近鄰集合,選擇近鄰集合中感興趣的對(duì)象推薦給目標(biāo)用戶,其具體步驟如下 :
(1)收集用戶行為,產(chǎn)生用戶評(píng)分矩陣
用戶的行為數(shù)據(jù)可以多種形式展現(xiàn)給后臺(tái),因此需要進(jìn)行預(yù)處理。預(yù)處理是將自然語(yǔ)言描述的用戶歷史行為轉(zhuǎn)換為數(shù)字化信息 [8]。預(yù)處理之后,將用戶對(duì)物品的行為信息描述為一個(gè) m×n 的矩陣 R(m,n),這個(gè)矩陣被稱為用戶 - 評(píng)分矩陣。矩陣 R 中每一行代表用戶,每一列代表物品對(duì)象,Rij 表示用戶 i 對(duì)物品對(duì)象 j 的評(píng)分。同時(shí),采取 0 和 1 兩種數(shù)值的方式表征用戶行為,數(shù)字 1 代表用戶喜歡該物品,反之為不喜歡。用戶評(píng)分矩陣 R 為 :
(2) 建立用戶近鄰集合,找出用戶鄰居
用戶近鄰集合是將目標(biāo)用戶與其他用戶進(jìn)行相似度計(jì)算后生成用戶的近鄰集合。用戶之間的相似度通過(guò)相似度公式計(jì)算得出。興趣相似度計(jì)算公式較多,如 Jaccard 公式、余弦相似度公式等。其中,余弦相似度公式使用較多。
(3) 產(chǎn)生推薦結(jié)果
計(jì)算用戶 u 對(duì)物品 i 的興趣度公式為 :
式中:S(u,K)表示用戶 u的近鄰集合, 包含與 u最接 近的 K個(gè)用戶;N(i)表示對(duì)物品 i產(chǎn)生行為的用戶集合;
Wuv 表示用戶 u,v 的興趣相似度;rvi 表示用戶 v 對(duì)物品 i 的興趣。
1.2 相似度公式
本文使用余弦相似度公式計(jì)算興趣相似度。給定用戶 u 與用戶 v,令 N(u)與 N(v)分別表示用戶 u 與用戶 v 曾經(jīng)有過(guò)正反饋的物品集合,余弦興趣相似度公式如下 :
通過(guò)式(3)可計(jì)算出目標(biāo)用戶與其他用戶之間的相似度值,從而確定用戶的近鄰集合,以便下一步使用。
1.3 算法流程
整個(gè)系統(tǒng)算法流程包括收集用戶歷史信息、建立用戶評(píng)分矩陣、計(jì)算用戶相似度、生成近鄰集合,進(jìn)而產(chǎn)生推薦。協(xié)同過(guò)濾算法流程如圖 1 所示。
2 基于懲罰因子的協(xié)同過(guò)濾改進(jìn)算法
2.1 懲罰因子
若熱門物品出現(xiàn)次數(shù)較多,則會(huì)使實(shí)際相似度計(jì)算結(jié)果受到影響,導(dǎo)致推薦的物品都是熱門物品,無(wú)法挖掘用戶的實(shí)際需求。為了避免這種影響,考慮加入一個(gè)懲罰因子作為加權(quán)系數(shù),從而抑制熱門物品的影響,因此本文對(duì)余弦相似度計(jì)算公式進(jìn)行修正,將物品出現(xiàn)次數(shù)的倒數(shù)作為懲罰因子。物品出現(xiàn)次數(shù)越多,即該商品越熱門,同時(shí),該商品對(duì)于用戶興趣相似度的貢獻(xiàn)越少。修正后的公式可衰減熱門物品造成的影響,帶有懲罰因子的修正公式為 :
式中:N(i)表示商品 i 出現(xiàn)的次數(shù);i 表示用戶 u 與用戶 v共同產(chǎn)生行為的商品。通過(guò)物品出現(xiàn)的次數(shù)來(lái)懲罰熱門物品。
2.2 其他改進(jìn)參數(shù)
冷啟動(dòng)是推薦系統(tǒng)設(shè)計(jì)過(guò)程中必須經(jīng)歷的一個(gè)過(guò)程。由于系統(tǒng)剛剛創(chuàng)建,新注冊(cè)的用戶尚未對(duì)項(xiàng)目產(chǎn)生有效的行為信息,此時(shí)可利用的行為信息極少,這種情況下難以給用戶做出合理的推薦 [9],因此必須考慮從別的渠道獲取更多的用戶信息作為參考。通過(guò)用戶的注冊(cè)信息挖掘用戶愛好是一種有效的方式,在用戶注冊(cè)時(shí)加以引導(dǎo),使用戶提供一些信息,通過(guò)這些信息最大限度地挖掘出用戶感興趣的信息。用戶注冊(cè)信息完畢后初次登錄時(shí),后臺(tái)系統(tǒng)可根據(jù)用戶提交的個(gè)人信息進(jìn)行分析與挖掘,從而做出有針對(duì)性的推薦。
2.3 改進(jìn)后的算法流程
本文在原有的推薦流程中加入懲罰因子的參數(shù),該參數(shù)作為衰減因子可削弱熱門造成的影響,使用用戶對(duì)該物品發(fā)生正反饋的次數(shù)衡量物品的熱門程度。物品越熱門,懲罰力度越高,熱門物品對(duì)計(jì)算興趣相似度帶來(lái)的影響越小,因此可較好地解決熱門物品對(duì)于推薦效果的影響。改進(jìn)后的算法流程如圖 2 所示。
3 實(shí)驗(yàn)結(jié)果
本文使用目前推薦系統(tǒng)經(jīng)典的數(shù)據(jù)集 MovieLens(m1-1M)進(jìn)行驗(yàn)證。MovieLens數(shù)據(jù)集是目前公認(rèn)的數(shù)據(jù)集之一[10],共有用戶表(Users)、電影表(Movies)及評(píng)分記錄表三張表。本文使用準(zhǔn)確率與召回率作為實(shí)驗(yàn)數(shù)據(jù)進(jìn)行評(píng)測(cè) [11]。準(zhǔn)確率與召回率計(jì)算公式為 :
式中:R(u)表示對(duì)用戶 u 推薦的 N 個(gè)物品;T(u)表示測(cè)試集中用戶 u 喜歡的物品的集合。
首先使用經(jīng)典的余弦相似度算法進(jìn)行計(jì)算。將推薦數(shù)量選定為 25,目標(biāo)用戶的鄰居個(gè)數(shù)分別為 2,3,4,5,6,7,8,9,10,20,40。由上述數(shù)據(jù)得到的準(zhǔn)確率與召回率(計(jì)算結(jié)果保留小數(shù)點(diǎn)后四位)見表 1 所列。
由上述實(shí)驗(yàn)數(shù)據(jù)可知,當(dāng)目標(biāo)用戶的鄰居個(gè)數(shù)為 3 時(shí),準(zhǔn)確率與召回率有較好的效果,因此在對(duì)修正后的公式驗(yàn)證時(shí)可選定鄰居個(gè)數(shù) 3 進(jìn)行準(zhǔn)確率與召回率的對(duì)比。余弦相似度公式與修正后的相似度公式對(duì)比見表 2 所列。
由表 2 可知,使用余弦相似度公式的準(zhǔn)確率為 0.133 8,召回率為 0.154 4,使用帶有懲罰因子的修正公式的準(zhǔn)確率為0.144 6,召回率為 0.204 0。實(shí)驗(yàn)結(jié)果表明,帶有懲罰因子的修正公式可以較好地抑制熱門物品的影響,提升系統(tǒng)的準(zhǔn)確率與召回率。
4 結(jié) 語(yǔ)
由于使用傳統(tǒng)的余弦相似度公式時(shí),熱門物品會(huì)影響推薦結(jié)果,導(dǎo)致推薦的物品幾乎都是熱門物品,因此本文提出帶有懲罰因子的余弦相似度計(jì)算公式,使用熱門物品出現(xiàn)次數(shù)的倒數(shù)作為懲罰因子,物品越熱門懲罰力度越大。通過(guò)實(shí)驗(yàn)驗(yàn)證,該算法可使準(zhǔn)確率與召回率得到一定的提升,從而提高推薦效率。