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