胡安明 陳惠娥
摘 ?要:傳統(tǒng)推薦系統(tǒng)算法模型主要集中研究用戶偏好與物品的關(guān)聯(lián)性,根據(jù)用戶主觀意見(jiàn)進(jìn)行推薦,未充分考慮用戶與物品所處的客觀環(huán)境,造成推薦時(shí)的實(shí)際偏差。本文基于傳統(tǒng)推薦算法引入時(shí)間因子,提高模型推薦效果。實(shí)現(xiàn)方法主要是通過(guò)比較引入與未引入時(shí)間因子,使用UserCF算法和ItemCF算法觀察MAE值的大小變化情況。時(shí)間因子的引入,改善了傳統(tǒng)推薦系統(tǒng)算法模型主要集中研究用戶偏好與物品的關(guān)聯(lián)性等方面的推薦失真問(wèn)題,提高了模型推薦的可靠性和實(shí)用性。實(shí)驗(yàn)結(jié)果表明,引入時(shí)間因子能對(duì)傳統(tǒng)協(xié)同過(guò)濾算法在MAE指標(biāo)方面有一定提高,計(jì)算效果優(yōu)于傳統(tǒng)推薦算法。
關(guān)鍵詞:時(shí)間因子;個(gè)性化推薦;協(xié)同過(guò)濾
中圖分類號(hào):TP311.60 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Improved Personalized Recommendation Model based on Time Factor
HU Anming1, CHEN Huie2
(1.School of Computer Science and Engineering, Guangzhou Institute of Technology, Guangzhou 510540, China;
2.Guangdong University of Finance, Guangzhou 510521, China)
anminghu@qq.com; 318802207@qq.com
Abstract: Traditional model of recommendation system algorithm mainly focuses on the relationship between user preferences and items, and makes recommendations according to users' subjective opinions. It fails to take into full consideration the objective environment of the user and the item, resulting in actual deviation in recommendation. This paper proposes to improve model recommendation effect by introducing time factor into traditional recommendation algorithm. The improved model is realized by comparing algorithms with and without time factor, and using UserCF algorithm and ItemCF algorithm to observe the changes of MAE (Mean Absolute Error) values. Introduction of time factor improves the algorithm model of traditional recommendation system, which mainly focuses on the recommendation distortion of user preferences and the relevance of items, so to improve the reliability and practicability of the model recommendation. Experimental results show that introduction of time factor can improve MAE index of traditional collaborative filtering algorithm, and calculation effect is better than that of traditional recommendation algorithm.
Keywords: time factor; personalized recommendation; collaborative filtering
1 ? 引言(Introduction)
近年來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)的普及,大量數(shù)據(jù)信息融入互聯(lián)網(wǎng)。面對(duì)如此巨量的數(shù)據(jù)信息資源,如何讓用戶對(duì)其進(jìn)行精確高效的查詢,有效使用互聯(lián)網(wǎng)資源;如何根據(jù)用戶的個(gè)人偏好信息,結(jié)合客觀環(huán)境,有效地處理推薦用戶所需的信息資源,仍是目前推薦系統(tǒng)研究的熱點(diǎn)。用戶—物品間的瀏覽訪問(wèn)記錄和上下文輔助信息數(shù)據(jù),為推薦系統(tǒng)提供了數(shù)據(jù)挖掘分析的基礎(chǔ)[1],如何從這些復(fù)雜的數(shù)據(jù)中挖掘出準(zhǔn)確的用戶偏好信息,也是當(dāng)前研究的熱點(diǎn)。
傳統(tǒng)的推薦系統(tǒng)模型主要關(guān)注用戶與物品的行為數(shù)據(jù)研究,根據(jù)用戶的行為數(shù)據(jù),挖掘出用戶的特征偏好,從而進(jìn)行個(gè)人用戶的推薦。但這一推薦模式有兩種信息未能充分考慮:其一,用戶和物品所處的客觀環(huán)境[2],例如,一個(gè)食品類型推薦模型,就不能因?yàn)橛脩粲邢那锛竟?jié)購(gòu)買冷飲食品的記錄,冬季就繼續(xù)推薦該類食品。其二,用戶與物品隨著時(shí)間推移具有普遍的群體性[3],例如,冬季服裝主要以各類冬裝為主;外出就餐主要以家庭群組為單位進(jìn)行。因此,本文提出一種基于時(shí)間因子改進(jìn)的個(gè)性化推薦算法模型,從不同的時(shí)間點(diǎn)去挖掘用戶的喜好,具有較好的實(shí)用價(jià)值。
2 ? 理論基礎(chǔ)(Theoretical basis)
傳統(tǒng)的推薦系統(tǒng)模型采用協(xié)同過(guò)濾算法,該算法的核心思想是:通過(guò)用戶與物品的歷史行為數(shù)據(jù),構(gòu)造協(xié)同過(guò)濾矩陣[1],通過(guò)每一行用戶對(duì)物品的評(píng)價(jià),和每一列所有用戶對(duì)物品的評(píng)價(jià),進(jìn)行協(xié)同過(guò)濾計(jì)算[2],從中篩選出用戶可能感興趣的物品。其中,分為UseCF和ItemCF算法。UserCF為基于用戶相似度推薦算法,ItemCF為基于物品相似度推薦算法;UserCF適于社交網(wǎng)絡(luò)推薦應(yīng)用,ItemCF適于物品推薦;UserCF和ItemCF算法原理基本相同。這里以UserCF算法為例,該算法流程如圖1所示。
協(xié)同過(guò)濾算法中最為重要的就是用戶相似度計(jì)算,常用的用戶相似度計(jì)算算法有余弦相似度、皮爾遜相關(guān)系數(shù)、改進(jìn)皮爾遜相關(guān)系數(shù)算法三類[4]。
(1)余弦相似度
余弦相似度計(jì)算兩個(gè)用戶向量間的夾角大小,夾角越小,余弦相似度越大,則兩個(gè)用戶越相似。假設(shè)數(shù)據(jù)集中有用戶u和用戶v的物品評(píng)分,計(jì)算用戶u和用戶v的相似度,如公式(1)所示;采用集合方式計(jì)算,如公式(2)所示,其中N(u)為用戶u點(diǎn)擊過(guò)的物品評(píng)分,N(v)為用戶v點(diǎn)擊過(guò)的物品評(píng)分[5]。
(1)
(2)
(2)皮爾遜相關(guān)系數(shù)
皮爾遜相關(guān)系數(shù)與余弦相似度相比,增加了用戶的平均分對(duì)數(shù)據(jù)進(jìn)行修正,減少了用戶評(píng)分偏置項(xiàng)的影響[5],如公式(3)所示。
(3)
其中,代表用戶u對(duì)物品p的評(píng)分,代表用戶v對(duì)所有物品評(píng)分的平均分,P代表所有物品的集合。
(3)改進(jìn)皮爾遜相關(guān)系數(shù)
改進(jìn)皮爾遜相關(guān)系數(shù),將和改為物品平均分(物品所有得分的平均分),減少了物品評(píng)分偏置對(duì)結(jié)果的影響[6],如公式(4)所示。
(4)
3 ?基于時(shí)間因子改進(jìn)的推薦模型(Improved recommendation model based on time factor)
傳統(tǒng)的推薦算法模型忽視了用戶喜好也會(huì)隨著時(shí)間而發(fā)生改變。例如,一個(gè)食品類型推薦模型,就不能因?yàn)橛脩粝那锛竟?jié)購(gòu)買過(guò)冷飲食品,冬季就繼續(xù)推薦該類食品。又如,某用戶在一段時(shí)間內(nèi)對(duì)Java語(yǔ)言感興趣,則這段時(shí)間內(nèi)主要點(diǎn)擊的都是與Java相關(guān)的圖書。但隨著時(shí)間、工作環(huán)境等其他因素的變化,用戶又喜歡Python語(yǔ)言了,因而該用戶點(diǎn)擊的都是Python相關(guān)圖書。相比較而言,前期的Java語(yǔ)言類圖書不能完全代表用戶喜好,而推薦系統(tǒng)的目標(biāo)是推薦用戶當(dāng)前最喜歡的物品,因此,時(shí)間因子也是推薦系統(tǒng)模型需要考慮的充分因素。
根據(jù)艾賓浩斯遺忘曲線規(guī)律[7],結(jié)合推薦模型中用戶和物品行為數(shù)據(jù)的特征,計(jì)算時(shí)間衰減函數(shù),如公式(5)所示。
(5)
其中,表示用戶u對(duì)物品i發(fā)生行為的時(shí)間,表示用戶u對(duì)物品j發(fā)生行為的時(shí)間;為時(shí)間衰減因子,因子作為閾值,可調(diào)節(jié)時(shí)間的窗口期。
將時(shí)間衰減模型引入余弦相似度協(xié)同過(guò)濾推薦模型[8],最近行為與當(dāng)前推薦物品關(guān)系最大,計(jì)算如公式(6)所示。
(6)
在此基礎(chǔ)上考慮到不活躍用戶大于活躍用戶對(duì)物品相似度的貢獻(xiàn),降低不活躍用戶權(quán)重,模型改進(jìn)如公式(7)所示。
(7)
4 ?基于時(shí)間因子的算法改進(jìn)流程(Algorithm improvement process based on time factor)
本文引入時(shí)間因子算法,相比傳統(tǒng)的推薦算法[9]而言,主要改進(jìn)在排序階段,當(dāng)推薦算法從數(shù)據(jù)中召回與目標(biāo)用戶可能感興趣的物品后,在對(duì)物品排序過(guò)程中引入時(shí)間,較好地反映出用戶在當(dāng)前時(shí)間段的興趣特點(diǎn),體現(xiàn)推薦系統(tǒng)的就近原則[10]。算法過(guò)程如圖2所示。
5 ?實(shí)驗(yàn)仿真與結(jié)果分析(Experimental simulation and result analysis)
本實(shí)驗(yàn)軟件環(huán)境為Windows 10操作系統(tǒng)、Python 3.7,硬件環(huán)境為i5-9400 2.9 GHz、內(nèi)存16 GB、顯卡GTX1660(6 GB)、硬盤500 GB。實(shí)驗(yàn)數(shù)據(jù)選擇MovieLens 1 MB版本數(shù)據(jù)集,該數(shù)據(jù)集中共收錄了6,000余名用戶對(duì)近4,000 部電影的100萬(wàn)條評(píng)論數(shù)據(jù),每條評(píng)論包含發(fā)表評(píng)論時(shí)間。
本文采用絕對(duì)平均誤差MAE對(duì)算法進(jìn)行評(píng)估,計(jì)算如公式(8)所示,其中為用戶u對(duì)物品i的實(shí)際評(píng)分,為用戶u對(duì)物品i的推薦預(yù)測(cè)。
(8)
本文分別使用UserCF算法和ItemCF算法,在未引入時(shí)間因子情況下和引入時(shí)間因子情況下,相似用戶近鄰數(shù)n取值10—70,分別取七個(gè)值。比較引入時(shí)間因子和未引入時(shí)間因子MAE值的大小變化情況,其中時(shí)間因子超參數(shù)取值0.02,使用結(jié)果如表1、圖3和圖4所示。
時(shí)間因子引入過(guò)程中,為時(shí)間因子超參數(shù),用于控制時(shí)間因子time權(quán)重值。通過(guò)實(shí)驗(yàn)分析可知,值取值0.02時(shí)MAE值最小,因此可知最近時(shí)間用戶行為數(shù)據(jù)具有較大參考價(jià)值,實(shí)驗(yàn)結(jié)果如圖5所示。
實(shí)驗(yàn)結(jié)果分析:本文使用MovieLen 1 MB數(shù)據(jù)集,在引入時(shí)間因子和未引入時(shí)間因子情況下,分別對(duì)UserCF算法和ItemCF算法進(jìn)行測(cè)試。在引入時(shí)間因子情況下,實(shí)驗(yàn)表明能對(duì)傳統(tǒng)協(xié)同過(guò)濾算法在MAE指標(biāo)方面有一定提高,計(jì)算效果好于傳統(tǒng)推薦算法。
6 ? 結(jié)論(Conclusion)
本文首先對(duì)傳統(tǒng)協(xié)同過(guò)濾算法計(jì)算過(guò)程進(jìn)行分析,在此基礎(chǔ)上引入時(shí)間因子。通過(guò)實(shí)驗(yàn)分析,引入時(shí)間因子對(duì)傳統(tǒng)的協(xié)同過(guò)濾算法有一定改進(jìn)效果,為傳統(tǒng)的協(xié)同過(guò)濾算法的改進(jìn)提供了一些思路。
參考文獻(xiàn)(References)
[1] 蘇慶,章靜芳,林正鑫,等.改進(jìn)模糊劃分聚類的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(5):118-123.
[2]王國(guó)霞,劉賀平.個(gè)性化推薦系統(tǒng)綜述[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(7):66-76.
[3] 趙茂先,李小丹.一種帶自適應(yīng)飛行時(shí)間因子的粒子群算法[J].山東科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,33(2):81-85.
[4] LANDHUIS E.Scientific literature:Information overload[J].Nature,2016,535(7612):457-458.
[5] 張玉潔,杜雨露,孟祥武.組推薦系統(tǒng)及其應(yīng)用研究[J].計(jì)算機(jī)學(xué)報(bào),2016,39(4):745-764.
[6] 蘇慶,陳思兆,吳偉民,等.基于學(xué)習(xí)情況協(xié)同過(guò)濾算法的個(gè)性化學(xué)習(xí)推薦模型研究[J].數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn),2020,4(05):?105-117.
[7] 陶永才,曹朝陽(yáng),石磊,等.一種結(jié)合時(shí)間因子聚類的群組興趣點(diǎn)推薦模型[J].小型微型計(jì)算機(jī)系統(tǒng),2020,41(2):356-360.
[8] 竇羚源,王新華,孫克.融合標(biāo)簽特征和時(shí)間上下文的協(xié)同過(guò)濾推薦算法[J].小型微型計(jì)算機(jī)系統(tǒng),2016,37(1):48-52.
[9] PESSEMIER T D, DOOMS S, MARTENS L.Comparison of group recommendation algorithms[J]. Multimedia Tools and Applications, 2014, 72(3):2497-2541.
[10] 陶永才,火昊,石磊,等.基于時(shí)間因子的個(gè)性化新聞混合推薦研究[J].小型微型計(jì)算機(jī)系統(tǒng),2018,39(08):1794-1798.
作者簡(jiǎn)介:
胡安明(1982-),男,碩士,講師.研究領(lǐng)域:人工智能,數(shù)據(jù)挖掘.
陳惠娥(1984-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用.本文通訊作者.