摘要:在協(xié)同過濾推薦算法中融入時間因素對其進(jìn)行改進(jìn),為了驗證改進(jìn)后的算法能夠把推薦的準(zhǔn)確度給提高,使用Python編程語言,在電影數(shù)據(jù)集Movielens中的ml-lm數(shù)據(jù)集下進(jìn)行實驗,對比傳統(tǒng)與改進(jìn)算法之間的MAE值。文章介紹了實驗的目的、評價指標(biāo)、理論知識、過程和結(jié)果。通過實驗的結(jié)果可以明顯看出這種改進(jìn)后的算法能夠提高推薦的準(zhǔn)確度。
關(guān)鍵詞:協(xié)同過濾;推薦算法;改進(jìn);MAE;實驗
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)35-0064-03
1概述
當(dāng)用戶面對海量的商品不知道該如何選擇的時候,推薦系統(tǒng)能夠很直接地把用戶和商品給聯(lián)系起來,把那些用戶有意向購買的商品挖掘出來,對用戶進(jìn)行推薦[1]。在一個推薦系統(tǒng)中,最重要的就是推薦算法,其直接影響著對用戶推薦的結(jié)果[2]。協(xié)同過濾推薦算法是一種用得非常多的推薦算法,其思想是先找出用戶或者物品以往的數(shù)據(jù)信息,根據(jù)這些數(shù)據(jù)信息把與之相似的用戶或者物品給找到,通過計算他們的相似度,來確定用戶是否真的對此類東西有興趣,就能夠?qū)λ麄冏龀鐾扑][3]。但是隨著時間的推移用戶的一些行為和習(xí)慣都會發(fā)生變化,所以在協(xié)同過濾推薦算法中融入時間因素對其進(jìn)行改進(jìn)[4]。為了驗證這種改進(jìn)的推薦算法能否提高推薦的準(zhǔn)確度,在實驗中與傳統(tǒng)算法的準(zhǔn)確度進(jìn)行了比較,為提高推薦系統(tǒng)的推薦質(zhì)量尋找新的方法。
2實驗?zāi)康?/p>
比較傳統(tǒng)的協(xié)同過濾算法與融入時間因素后的改進(jìn)的協(xié)同過濾算法的推薦準(zhǔn)確度,為提高推薦系統(tǒng)的推薦質(zhì)量尋找新的方法。
3實驗評價指標(biāo)
為了比較算法的準(zhǔn)確度,實驗中采用平均絕對誤差(MAE)作為準(zhǔn)確度的評價指標(biāo) [5],公式為:
[MAE=imi=1m|yi-y'i|]
公式里,[yi]是實驗選取的測試集里的真實的值,[y'i]是預(yù)測的值,[m]是實驗中選取的樣本的數(shù)量。實驗結(jié)果中MAE越是小,就意味著其所預(yù)測的準(zhǔn)確度就越是高。
4實驗理論知識
4.1算法介紹
協(xié)同過濾推薦算法是一種用得非常多的推薦算法。有基于用戶的協(xié)同過濾(UserCF)算法和基于物品的協(xié)同過濾(ItemCF)算法[6]。
在實際的推薦過程中,時間的變化是不能夠忽視的因素,隨著時間的變化,用戶的購買行為和用戶的購買習(xí)慣會發(fā)生一些變化[7]。把時間因素融入?yún)f(xié)同過濾算法中可以反映用戶最近的購買行為和習(xí)慣[8],將算法進(jìn)行改進(jìn)后它的工作流程如圖1所示:
4.2改進(jìn)UserCF算法
在對UserCF算法改進(jìn)中,主要在計算相似度時對算法進(jìn)行了改進(jìn),UserCF算法中計算相似度的公式為:
[Wuv=N(u)∩N(v)N(u)∪N(v)]
在公式里面,[N(u)]與[N(v)]是用戶[u]與[v]有行為的物品集。
改進(jìn)后,增加時間衰減函數(shù)并懲罰熱門商品[9]后,用戶[u]與[v]的相似度公式為:
[Wuv=i∈N(u)∩N(v)1lg (1+N(i)f(|tui-tvi|)N(u)∪N(v)]
改進(jìn)后構(gòu)造出新的算法TF-UserCF算法。
4.3改進(jìn)ItemCF算法
在對ItemCF算法改進(jìn)中,主要在計算相似度時對算法進(jìn)行了改進(jìn),ItemCF算法中計算相似度的公式為:
[Wuv=N(i)∩N(j)N(i)∪N(j)]
在公式里面,[N(i)]與[N(j)]是跟物品[i]與[j]產(chǎn)生交互的用戶的集合。
改進(jìn)后,增加時間衰減函數(shù)并降低活躍用戶的權(quán)重[10],物品[i]與[j]的相似度公式為:
[Wij=u∈N(i)∩N(j)1lg (1+N(u)f(|tui-tuj|)N(i)∪N(j)]
改進(jìn)后構(gòu)造出新的算法TF-ItemCF算法。
5實驗過程
5.1實驗環(huán)境準(zhǔn)備
在計算機(jī)的選擇方面,使用聯(lián)想臺式機(jī),具體配置為:Intel Core i5-3470 3.20GHz的CPU,8GB內(nèi)存,64位Windows 10的操作系統(tǒng)。
在軟件方面,使用的編程語言是python編程語言,數(shù)據(jù)庫為MySQL數(shù)據(jù)庫,在PyCharm中開發(fā)實現(xiàn)。
5.2實驗數(shù)據(jù)準(zhǔn)備
在這次的實驗里面,以電影數(shù)據(jù)集Movielens中的ml-lm數(shù)據(jù)集來分析實驗。分析該數(shù)據(jù)集,在PyCharm中運(yùn)行Python代碼查看數(shù)據(jù)集中的ratings.dat文件,結(jié)果如圖2所示:
由圖2可知,數(shù)據(jù)集中用戶數(shù)量為6040個,電影的數(shù)量為3952部,總共的評分記錄為1000209條,評分范圍是1~5分。
在PyCharm中運(yùn)行Python代碼查看數(shù)據(jù)集中的movies.dat文件,結(jié)果如圖3所示。
由圖3可知,數(shù)據(jù)集中總共有18種類型的電影,各類型分布不均,最多的Drama占到25%,最少的Film-Noir只占到0.7%。
在實驗開始前,要將數(shù)據(jù)集提前進(jìn)行相應(yīng)的處理,把數(shù)據(jù)集都拆分成80%的訓(xùn)練數(shù)據(jù)和20%的測試數(shù)據(jù),拆分?jǐn)?shù)據(jù)集代碼為:
5.3實驗步驟
做兩組實驗,比較傳統(tǒng)算法與改進(jìn)算法的MAE值。
第一組實驗比較UserCF算法與改進(jìn)后的TF-UserCF算法的MAE值。
首先在傳統(tǒng)UserCF算法中增加時間衰減函數(shù),構(gòu)造出計算用戶相似度的UserSimilarityBest函數(shù),代碼為:
然后把鄰居的個數(shù)K值從5開始每次增加5,直到UserCF算法與改進(jìn)后的TF-UserCF算法的MAE值趨于平穩(wěn),最終K值增加到40。比較這兩種算法的MAE值,如圖6所示:
第二組實驗比較ItemCF算法與改進(jìn)后的TF-ItemCF算法的MAE值。
首先在傳統(tǒng)ItemCF算法中增加時間衰減函數(shù),構(gòu)造出計算物品相似度的ItemSimilarityBest函數(shù),代碼為:
然后把鄰居的個數(shù)K值從5開始每次增加5,直到ItemCF算法與改進(jìn)后的TF-ItemCF算法的MAE值趨于平穩(wěn),最終K值增加到40。比較這兩種算法的MAE值,如圖8所示:
5.4實驗結(jié)果分析
通過上述兩組實驗可以看出,無論是傳統(tǒng)的UserCF算法還是傳統(tǒng)的ItemCF算法,改進(jìn)后的算法在相同的K值下MAE值都比傳統(tǒng)的要低。在對傳統(tǒng)協(xié)同過濾算法中加入的時間因素進(jìn)行了改進(jìn)之后,可以提升算法的準(zhǔn)確度。
6結(jié)束語
在傳統(tǒng)的協(xié)同過濾推薦算法中加入了時間因素并對其加以改進(jìn),使用電影數(shù)據(jù)集Movielens中的ml-lm數(shù)據(jù)集進(jìn)行實驗來對比改進(jìn)后算法和傳統(tǒng)算法的準(zhǔn)確度。通過實驗研究,可以發(fā)現(xiàn)這種改進(jìn)后的算法可以提高推薦的準(zhǔn)確度。
在本次實驗中只使用了一種數(shù)據(jù)集來做實驗,在以后的實驗研究中,為了使實驗的結(jié)果更加準(zhǔn)確,將嘗試使用更多的數(shù)據(jù)集來做實驗。
參考文獻(xiàn):
[1] 高長元,黃凱,王京,等.基于商品屬性值和用戶特征的協(xié)同過濾推薦算法[J].計算機(jī)工程與科學(xué),2017,39(12):2333-2339.
[2] 陶志勇,崔新新.一種融合用戶與項目屬性的協(xié)同過濾算法的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2019,36(2):12-18,102.
[3] 張小雷,孫剛,彭余輝.融合時間因素的協(xié)同過濾圖書推薦算法[J].阜陽職業(yè)技術(shù)學(xué)院學(xué)報,2021,32(2):51-54.
[4] 張小雷.基于協(xié)同過濾和隱語義模型的圖書推薦算法研究與實現(xiàn)[D]. 阜陽:阜陽師范大學(xué),2021.
[5] 紀(jì)佳琪,姜學(xué)東.深度協(xié)同過濾推薦模型研究[J].計算機(jī)應(yīng)用與軟件,2020,37(7):240-245.
[6] 劉景昊.基于協(xié)同過濾的推薦系統(tǒng)算法研究[J].中國電子商務(wù),2013(6):157.
[7] 劉恒友.基于時間效應(yīng)的推薦算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[8] 高陽團(tuán).推薦系統(tǒng)開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2019.
[9] 彭余輝,張小雷,孫剛.基于內(nèi)容和協(xié)同過濾加權(quán)融合的音樂推薦算法[J].安慶師范大學(xué)學(xué)報(自然科學(xué)版),2021,27(2):44-48,53.
[10] 蘭艷,曹芳芳.面向電影推薦的時間加權(quán)協(xié)同過濾算法的研究[J].計算機(jī)科學(xué),2017,44(4):295-301,322.
【通聯(lián)編輯:王力】