孫紅梅
摘要:協(xié)同過濾推薦是目前應(yīng)用最廣泛和最成功的推薦系統(tǒng),但傳統(tǒng)的協(xié)同過濾算法沒有充分利用用戶的行為反饋信息,忽略了時(shí)間順序、序列順序等有效信息,存在一些局限性。文章基于傳統(tǒng)的協(xié)同過濾算法,結(jié)合用戶交互行為信息中的時(shí)間順序、序列順序以及物品的流行度和用戶的活躍度等信息,優(yōu)化算法的推薦效果,并且在數(shù)據(jù)集MovieLens上進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明優(yōu)化后的協(xié)同過濾推薦算法能有效提升推薦效果。
關(guān)鍵詞:協(xié)同過濾;相似性度量;推薦算法
中圖分類號(hào):TP391 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)13-0088-03
1 引言
推薦系統(tǒng)領(lǐng)域的興起和互聯(lián)網(wǎng)的快速發(fā)展息息相關(guān),也是互聯(lián)網(wǎng)經(jīng)濟(jì)落地的主要場景之一。在推薦系統(tǒng)領(lǐng)域中,通過推薦算法從海量數(shù)據(jù)中挖掘用戶的興趣,捕捉更精確的深度信息,精準(zhǔn)地推薦給用戶,促進(jìn)用戶更加高效地接收信息[1-3]。推薦系統(tǒng)對于大數(shù)據(jù)時(shí)代具有強(qiáng)大且不可替代的推動(dòng)作用。
在推薦領(lǐng)域中,應(yīng)用最廣泛且影響最大的應(yīng)屬協(xié)同過濾算法[4-6]。協(xié)同過濾算法也是推薦領(lǐng)域研究的熱點(diǎn)和業(yè)界主流的應(yīng)用模型。它是基于用戶行為挖掘用戶興趣的算法模型,通過用戶行為的反饋信息進(jìn)行協(xié)同匯聚,然后從海量的數(shù)據(jù)中進(jìn)行過濾得到更精準(zhǔn)的深度興趣捕捉,從而推薦給用戶。
傳統(tǒng)的協(xié)同過濾算法中,基于領(lǐng)域的協(xié)同過濾算法是最經(jīng)典且輕量的算法模型。協(xié)同過濾算法的核心思想是通過用戶的交互反饋行為,計(jì)算用戶或者物品之間的相似性,然后根據(jù)相似性給用戶推薦物品,但基于領(lǐng)域的協(xié)同過濾算法仍然存在一些局限性,如沒有充分利用用戶的行為反饋的信息,忽略了時(shí)間順序、序列順序等有效信息,而這些信息往往在推薦的過程中能夠起到有效的作用。
因此,本文基于傳統(tǒng)的協(xié)同過濾算法,充分利用用戶交互行為信息中的時(shí)間順序、序列順序以及物品的流行度和用戶的活躍度等信息,優(yōu)化算法的推薦效果,并且在經(jīng)典數(shù)據(jù)集MovieLens[7]上驗(yàn)證算法的有效性。
2 算法模型
2.1傳統(tǒng)的協(xié)同過濾算法介紹
根據(jù)計(jì)算相似性的方向不同,協(xié)同過濾算法可以分為基于用戶的協(xié)同過濾算法和基于物品的協(xié)同過濾算法。
基于物品的協(xié)同過濾算法(Item Collaboration Filter,ItemCF)[4,8]的推薦原理,如果用戶對一個(gè)物品感興趣,則優(yōu)先推薦與該物品相似的其他物品給用戶。ItemCF 算法的核心是找相似的物品。假定有兩個(gè)物品分別為[i]和[j],通過交互行為信息可以得到分別與這兩個(gè)物品有過交互的用戶集合為[Ui]和[Uj],那么就可以通過以下公式計(jì)算出兩個(gè)物品之間的相似性:
[simi,j=Ui∩UjUiUj] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[1]
其中[|Ui∩Uj|]表示與兩個(gè)物品都有過交互行為的用戶集合數(shù),能夠有效反映兩個(gè)物品之間的相似性程度。兩個(gè)物品在用戶與物品的交互行為中共現(xiàn)的次數(shù)越高,就意味著兩個(gè)物品的相似性程度越高。[|Ui||Uj|]表示對于兩個(gè)用戶集合數(shù)的權(quán)衡,是算法改進(jìn)后對于熱門物品的打壓考慮。在推薦系統(tǒng)領(lǐng)域中,越是熱門的物品,與用戶的交互行為信息就越多,容易造成所有物品都同熱門商品具有很高的相似性的錯(cuò)覺,因此在相似性計(jì)算的公式中考慮與物品交互的用戶集合的大小,能夠有效地解決這一問題,更加可靠地捕捉物品之間的相似性。越熱門的物品交互的用戶集合越大,因此會(huì)得到一個(gè)越小的系數(shù),相似性的分值就會(huì)得到打壓。
基于用戶的協(xié)同過濾算法(User Collaboration Filter,UserCF)[9]的推薦原理,通過計(jì)算和分析找到和目標(biāo)用戶有同樣興趣愛好的用戶集合,可以近似地認(rèn)為這個(gè)集合中用戶喜愛的物品目標(biāo)用戶也會(huì)喜歡,進(jìn)而推薦給目標(biāo)用戶。算法的核心問題是如何找到相似的用戶。假定有兩個(gè)用戶分別為[u]和[v],通過交互行為信息可以得到分別與這兩個(gè)用戶有過交互的物品集合為[Iu]和[Iv],那么可以通過以下公式計(jì)算出兩個(gè)用戶之間的相似性[sim(u,v)]:
[simu,v=Iu∩IvIuIv] ? ? ? ? ? ? ? ? ? ? ? ? ?[2]
其中[|Iu∩Iv|]表示與這兩個(gè)用戶都有過交互行為的物品集合數(shù)。公式同樣考慮了用戶活躍度的影響,越是活躍的用戶所交互的物品越多,但是物品間的相關(guān)性程度應(yīng)當(dāng)是越低的,因此通過[|Iu||Iv|]這一項(xiàng)式對用戶的活躍度進(jìn)行有效打壓。
2.2協(xié)同過濾推薦算法的優(yōu)化與實(shí)現(xiàn)
本文在傳統(tǒng)的ItemCF協(xié)同過濾算法的基礎(chǔ)上,充分利用交互信息中的時(shí)間順序、序列順序以及物品的流行度和用戶的活躍度等信息,優(yōu)化算法的推薦效果。
(1)基于ItemCF算法的優(yōu)化與實(shí)現(xiàn)
首先,傳統(tǒng)的ItemCF算法在計(jì)算兩個(gè)物品的相似性時(shí),沒有考慮每兩個(gè)物品共現(xiàn)時(shí)的時(shí)間順序?qū)τ趦蓚€(gè)物品之間的相似性影響。在每個(gè)用戶與物品的交互行為歷史中,用戶與物品的交互行為存在時(shí)間順序上的差異。一般來說,交互時(shí)間越近,物品之間的相似性程度越大。因此,推薦算法捕捉了交互行為的時(shí)間順序信息。假定一個(gè)用戶[u]與物品[i]和[j]的交互時(shí)間分別為[ti]和[tj],那么它們之間的時(shí)間差為[|ti-tj|]。根據(jù)時(shí)間越近相似性程度越高的特性,并且保證時(shí)序因素的值在[0, 1]范圍之間,采用指數(shù)函數(shù)的形式刻畫時(shí)間順序信息。具體的公式如下:
[simi,j=u∈Ui∩Uje-α*ti-tjUiUj ] ? ? ? ? ? ? [3]
其中[u∈Ui∩Uj]表示與物品[i]和[j]都發(fā)生過交互行為的用戶,在這個(gè)并集的每個(gè)用戶的交互歷史中都存在物品[i]和[j]的共現(xiàn)。ItemCF算法將這樣的共現(xiàn)記錄作為計(jì)數(shù),來統(tǒng)計(jì)物品之間的共現(xiàn)次數(shù)表示物品之間的相似性。推薦算法考慮了物品和用戶交互的時(shí)間順序影響,吸取用戶與物品之間的交互時(shí)間順序信息進(jìn)行相似性的計(jì)算。此外,[α]在這里是一個(gè)超參數(shù),用于調(diào)整不同場景下時(shí)間順序?qū)τ谖锲分g相似性的影響。
其次,本文還考慮了序列順序信息對于推薦效果的影響。具體來說,在每個(gè)用戶與物品的交互行為中,交互行為上不僅存在時(shí)間順序上的差異,還存在序列先后的差異,而序列順序的信息往往對推薦的效果也起到很大的作用。例如,自行車和打氣筒有很強(qiáng)的共現(xiàn)關(guān)系,當(dāng)一個(gè)用戶購買了自行車時(shí),他對于打氣筒有很強(qiáng)的潛在興趣,而當(dāng)他購買了一個(gè)打氣筒時(shí),自行車未必是他潛在的購買商品。因此,本文同時(shí)考慮了推薦算法對于交互行為的序列順序信息的捕捉。為了保證算法的輕量性,通過一個(gè)超參數(shù)[β]來控制序列順序的信息。具體的公式如下:
[simi,j=u∈Ui∩Ujβ*e-α*ti-tjUiUj] ? ? ? ? ? ? ? ? ? ? [4]
其中,當(dāng)[ti]<=[tj]時(shí)認(rèn)為序列的順序?yàn)檎颍瑢β]的值賦為1,否則認(rèn)為序列的順序?yàn)樨?fù)向,[β]賦值為0.8。
此外,ItemCF算法對熱門的物品進(jìn)行了打壓,但是沒有考慮用戶活躍度的影響。在推薦的過程中,兩個(gè)物品的共現(xiàn)出現(xiàn)在不同活躍度的用戶的交互歷史中的價(jià)值是不同的。例如,當(dāng)一個(gè)用戶只購買了幾件物品,其中包含了物品[i]和[j],那么這個(gè)用戶的交互行為對于計(jì)算物品[i]和[j]的相似性程度有很大的價(jià)值。而當(dāng)一個(gè)用戶購買過上萬個(gè)物品,那么其交互行為對于計(jì)算物品[i]和[j]的相似性程度的價(jià)值就小了很多。因此,本文同時(shí)優(yōu)化了推薦算法對于用戶活躍度信息的吸取。具體公式如下:
[simi,j=u∈Ui∩Ujβ*e-α*ti-tjln1+IuUiUj] ? ? ? ? ? ? ? ? ? ? ? [5]
其中,用戶[u]的交互物品集合大小[|Iu|]表示該用戶的活躍度程度。而采用對數(shù)函數(shù)的方式表示用戶的活躍度信息,一方面保證不過度打壓,另一方面使計(jì)算得到的數(shù)據(jù)更加平滑。
(2)基于協(xié)同過濾的推薦過程
通過步驟(1)之后能夠得到物品之間的相似性分值,便可根據(jù)用戶的歷史交互物品推薦相似性高的物品。
在推薦的過程中同樣考慮了時(shí)間因素的影響。將用戶[u]最近交互的時(shí)間作為對照時(shí)間[t0],遍歷用戶的歷史交互物品[i∈Iu],同樣采用指數(shù)函數(shù)的形式刻畫時(shí)間順序信息,記為[e-α*|ti-t0|]。那么在遍歷的過程中,將當(dāng)前物品的時(shí)間信息與它相關(guān)的所有物品的相似性分值加權(quán)求和得到推薦物品[j]的推薦分值[rec(j)]。具體的公式如下:
[recj=i∈Iu,j∈Iisimi,j*e-α*ti-t0] ? ? ? ? ? [6]
最后根據(jù)得到的推薦分值排序,給用戶推薦未交互過的物品。
3 實(shí)驗(yàn)
3.1實(shí)驗(yàn)設(shè)置
3.1.1數(shù)據(jù)集介紹
本文使用推薦系統(tǒng)領(lǐng)域中的經(jīng)典數(shù)據(jù)集MovieLens來驗(yàn)證推薦算法的效果。MovieLens數(shù)據(jù)集是由美國Minnesota大學(xué)領(lǐng)頭創(chuàng)辦的關(guān)于電影推薦的評級(jí)數(shù)據(jù)[7]。本文使用1M數(shù)據(jù),包含6040個(gè)用戶對于3900個(gè)電影的百萬評論數(shù)據(jù),用戶對電影依照喜愛程度評1~5顆星。
3.1.2實(shí)驗(yàn)設(shè)置及環(huán)境
算法采用Python語言開發(fā)。在數(shù)據(jù)處理過程中,將評級(jí)數(shù)據(jù)中4星以上的數(shù)據(jù)篩出得到有效交互數(shù)據(jù),進(jìn)而計(jì)算電影之間的相似性。在預(yù)估的過程中,將用戶實(shí)際最后的五次有效交互電影作為預(yù)估樣本,根據(jù)本文優(yōu)化的協(xié)同過濾推薦算法分別推薦10個(gè)和50個(gè)電影。然后采用NDCG(Normalized Discounted Cumulative Gain)和HR(Hits Ratio)兩個(gè)指標(biāo)評估推薦的效果。
此外,為了防止用戶之間的行為穿越和模擬真實(shí)推薦場景,對每個(gè)用戶預(yù)估時(shí)以預(yù)估樣本之前的最后一次交互時(shí)間作為時(shí)間點(diǎn),根據(jù)此時(shí)間點(diǎn)之間的數(shù)據(jù)計(jì)算電影間的相似性。因此,針對每個(gè)用戶都必須計(jì)算一次相似性。為了減少計(jì)算量的同時(shí)保證實(shí)驗(yàn)的公平性,本文實(shí)驗(yàn)涉及的算法均是利用有效時(shí)間點(diǎn)之前的兩周內(nèi)的數(shù)據(jù)計(jì)算相似性,并且預(yù)估時(shí)對所有用戶進(jìn)行隨機(jī)采樣100個(gè)進(jìn)行評估,保證預(yù)估的用戶能夠分布在整個(gè)時(shí)間跨度的范圍內(nèi)。
3.2實(shí)驗(yàn)結(jié)果
為了驗(yàn)證協(xié)同過濾推薦算法的優(yōu)化效果,設(shè)計(jì)了四組對照實(shí)驗(yàn)來驗(yàn)證推薦過程中兩個(gè)步驟的重要性和優(yōu)化的推薦效果,實(shí)驗(yàn)設(shè)置如下:
(1)ItemCF算法計(jì)算電影間的相似性,直接根據(jù)相似性對用戶未交互過的電影進(jìn)行排序推薦,記為算法1。
(2)ItemCF算法計(jì)算電影間的相似性,利用本文優(yōu)化后的推薦過程對用戶進(jìn)行推薦,記為算法2。
(3)利用本文優(yōu)化的ItemCF算法計(jì)算電影間的相似性,直接根據(jù)相似性對用戶進(jìn)行推薦,記為算法3。
(4)利用本文優(yōu)化后的ItemCF算法計(jì)算電影間的相似性,并且利用本文優(yōu)化后的推薦過程對用戶進(jìn)行推薦,記為算法4。
此外,實(shí)驗(yàn)中涉及的優(yōu)化算法的超參數(shù)[α均]設(shè)置為[0.000015],而[β]根據(jù)條件設(shè)置為1或0.8。本文未針對參數(shù)進(jìn)行網(wǎng)格搜索等方式優(yōu)化算法的效果,理論上參數(shù)調(diào)整后仍然有一定的優(yōu)化空間,因此本文涉及的對照實(shí)驗(yàn)均采用統(tǒng)一參數(shù)設(shè)置保證實(shí)驗(yàn)的公平性。
表1詳細(xì)展示了對照實(shí)驗(yàn)在推薦結(jié)果上的評估效果。NDCG@10和HR@10是針對算法推薦10個(gè)電影的結(jié)果評估,而NDCG@50和HR@50則是針對算法推薦50個(gè)電影的結(jié)果評估。通過對比算法1和算法2的各項(xiàng)指標(biāo),可以發(fā)現(xiàn)考慮時(shí)間因素的推薦過程,能夠一定程度上提升推薦效果。而對比算法1和算法3的各項(xiàng)指標(biāo),優(yōu)化后的ItemCF算法能夠捕捉到更加準(zhǔn)確的相似性信息,進(jìn)而明顯提升推薦的效果。最后,對比算法4和其他實(shí)驗(yàn)的各項(xiàng)指標(biāo),可以發(fā)現(xiàn)優(yōu)化后的ItemCF協(xié)同過濾推薦算法能夠在傳統(tǒng)的協(xié)同過濾算法ItemCF的基礎(chǔ)上顯著提升推薦的效果??梢?,本文提出的基于ItemCF協(xié)同過濾的推薦算法的兩個(gè)步驟對于推薦效果都有一定明顯的提升作用,并且兩個(gè)步驟之間相得益彰,從不同角度優(yōu)化了推薦的過程。
4 總結(jié)
本文通過研究推薦領(lǐng)域的協(xié)同過濾算法,在傳統(tǒng)的ItemCF算法的基礎(chǔ)上充分利用用戶交互行為中的時(shí)間順序、序列順序以及物品的流行度和用戶的活躍度等信息,對協(xié)同過濾推薦算法進(jìn)行優(yōu)化,從兩個(gè)步驟上優(yōu)化了推薦的過程和效果。同時(shí),優(yōu)化后的協(xié)同過濾推薦算法繼承了協(xié)同過濾的輕量性、可解釋性等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1] 許海玲,吳瀟,李曉東,等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào),2009,20(2):350-362.
[2] Wang J Z,Huang P P,Zhao H,et al.Billion-scale commodity embedding for E-commerce recommendation in alibaba[C]// Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining,2018:839-848.
[3] 劉建國,周濤,汪秉宏.個(gè)性化推薦系統(tǒng)的研究進(jìn)展[J].自然科學(xué)進(jìn)展,2009,19(1):1-15.
[4] Linden G,Smith B,York J.Amazon.com recommendations:item-to-item collaborative filtering[J].IEEE Internet Computing,2003,7(1):76-80.
[5] 鄧愛林,朱揚(yáng)勇,施伯樂.基于項(xiàng)目評分預(yù)測的協(xié)同過濾推薦算法[J].軟件學(xué)報(bào),2003,14(9):1621-1628.
[6] 馬宏偉,張光衛(wèi),李鵬.協(xié)同過濾推薦算法綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(7):1282-1288.
[7] Harper F M,Konstan J A.The MovieLens datasets[J].ACM Transactions on Interactive Intelligent Systems,2016,5(4):1-19.
[8] Karypis G.Evaluation of item-based top-N recommendation algorithms[C]//Proceedings of the tenth international conference on Information and knowledge management.2001:247-254.
[9] 榮輝桂,火生旭,胡春華,等.基于用戶相似度的協(xié)同過濾推薦算法[J].通信學(xué)報(bào),2014,35(2):16-24.
【通聯(lián)編輯:代影】