李道國(guó)1,何狄江,李連杰
(1.杭州電子科技大學(xué)信息工程學(xué)院;2.杭州電子科技大學(xué)管理學(xué)院,浙江杭州310018)
基于用戶興趣變化的協(xié)同過(guò)濾推薦算法
李道國(guó)1,何狄江2,李連杰2
(1.杭州電子科技大學(xué)信息工程學(xué)院;2.杭州電子科技大學(xué)管理學(xué)院,浙江杭州310018)
文章將用戶興趣設(shè)定為變量,重新定義了相似度以及評(píng)分預(yù)測(cè)的計(jì)算方法,在一定程度上提高了經(jīng)典協(xié)同過(guò)濾推薦算法的精確度;提出結(jié)合用戶評(píng)分時(shí)間以及用戶訪問(wèn)次數(shù)的時(shí)間權(quán)重模型來(lái)描述用戶興趣的變化,使得相似度以及評(píng)分預(yù)測(cè)的計(jì)算結(jié)果更加合理。實(shí)驗(yàn)結(jié)果表明,新算法比傳統(tǒng)基于項(xiàng)目的協(xié)同過(guò)濾算法降低了約8%的平均絕對(duì)誤差、提高了約15%的準(zhǔn)確率以及18%的召回率,在一定程度上改善了推薦系統(tǒng)的推薦效果。該算法僅在M ovieLens數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)測(cè)試,還需要在其他數(shù)據(jù)集上進(jìn)行檢驗(yàn)。
協(xié)同過(guò)濾;用戶評(píng)分時(shí)間;用戶訪問(wèn)次數(shù);相似度;評(píng)分預(yù)測(cè)
互聯(lián)網(wǎng)的迅猛發(fā)展把人們帶入了一個(gè)新的信息時(shí)代,人們周圍的數(shù)據(jù)量正在以指數(shù)級(jí)的速度增長(zhǎng),怎樣能在龐大的數(shù)據(jù)中快速、準(zhǔn)確地找到所需的信息成為難題[1-2]。在這種背景下,個(gè)性化推薦應(yīng)運(yùn)而生。協(xié)同過(guò)濾(Collaborative Filtering,簡(jiǎn)稱CF)是其中應(yīng)用最廣泛的推薦算法,其理論基礎(chǔ)是人們的從眾心理。雖然CF推薦算法在很多方面表現(xiàn)出了獨(dú)特的優(yōu)勢(shì)所在,但也存在一些局限性,例如用戶興趣不是一成不變的。由于所處的環(huán)境、年齡等多種因素的影響,每個(gè)人的興趣喜好在發(fā)生著變化。而作為幫助用戶過(guò)濾信息的推薦系統(tǒng)就需要時(shí)刻關(guān)注用戶興趣的變化才能為用戶提供高質(zhì)量的推薦服務(wù),才能夠在飛速發(fā)展的互聯(lián)網(wǎng)時(shí)代立足[3]。但是這些因素很難用科學(xué)的計(jì)算方法來(lái)實(shí)現(xiàn),傳統(tǒng)的CF推薦算法假定用戶評(píng)分時(shí)間并不影響相似度的度量,但是實(shí)際上,不斷變化的用戶興趣卻在影響著系統(tǒng)推薦的質(zhì)量。
針對(duì)上述問(wèn)題,本文提出了一種基于用戶興趣變化的協(xié)同過(guò)濾推薦算法,該算法將用戶興趣隨時(shí)間的變化情況考慮在內(nèi),并通過(guò)改善相似度及預(yù)測(cè)評(píng)分的計(jì)算方式,來(lái)緩解用戶興趣變化對(duì)系統(tǒng)推薦結(jié)果的影響,進(jìn)而達(dá)到提高推薦精度的目的。
用戶興趣的準(zhǔn)確獲取是推薦系統(tǒng)十分重要的研究?jī)?nèi)容。在初期協(xié)同過(guò)濾推薦系統(tǒng)運(yùn)行中,稀疏性和冷啟動(dòng)問(wèn)題對(duì)系統(tǒng)的影響比較大。隨著用戶對(duì)系統(tǒng)使用時(shí)間的推移,其興趣必然也會(huì)發(fā)生變化,這便增加了系統(tǒng)準(zhǔn)確獲得用戶興趣偏好的難度,只有解決該問(wèn)題才能夠?qū)⒂脩粽嬲信d趣的項(xiàng)目推薦給用戶。在協(xié)同過(guò)濾推薦算法中,用戶之間相似度的計(jì)算結(jié)果直接影響著系統(tǒng)的推薦質(zhì)量。傳統(tǒng)相似度的計(jì)算方法主要有三種[4],但是這三種方法都沒(méi)有將評(píng)分的時(shí)間考慮在內(nèi),認(rèn)為評(píng)分時(shí)間不影響用戶或者項(xiàng)目之間相似度的計(jì)算。雖然剛開(kāi)始對(duì)系統(tǒng)的影響不大,但是隨著用戶使用系統(tǒng)時(shí)間的不斷增加,用戶的興趣可能會(huì)發(fā)生很大的改變,此時(shí)再使用傳統(tǒng)的方法會(huì)使得計(jì)算出的相似度出現(xiàn)不準(zhǔn)確的結(jié)果。另外,在計(jì)算預(yù)測(cè)評(píng)分時(shí)[5],僅僅通過(guò)相似度的大小來(lái)區(qū)分每個(gè)評(píng)分的重要程度,同樣也沒(méi)有將用戶評(píng)分時(shí)間的重要性加以區(qū)分,造成預(yù)測(cè)評(píng)分出現(xiàn)不準(zhǔn)確,降低了推薦結(jié)果的精度。
因此本文提出了基于艾賓浩斯曲線,通過(guò)引入用戶評(píng)分時(shí)間及用戶訪問(wèn)次數(shù)對(duì)用戶評(píng)分建立新的時(shí)間權(quán)重模型,進(jìn)而改進(jìn)傳統(tǒng)協(xié)同過(guò)濾推薦算法中因用戶興趣變化所導(dǎo)致的推薦系統(tǒng)推薦準(zhǔn)確性降低的問(wèn)題。
(一)艾賓浩斯遺忘曲線
19世紀(jì)著名的德國(guó)心理學(xué)家艾賓浩斯(Hermann Ebbinghaus)提出了艾賓浩斯遺忘曲線[6],如圖1所示。他通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),人在學(xué)習(xí)之后便會(huì)立即開(kāi)始遺忘,并且遺忘的速度是不同的,剛開(kāi)始遺忘的速度最快,急劇下降,之后便開(kāi)始逐漸的緩慢,直到趨于穩(wěn)定,隨后遺忘停止。
圖1 艾賓特斯遺忘曲線
用戶興趣的變化符合艾賓特斯遺忘曲線,因此遵循以該理論為基礎(chǔ)的權(quán)值計(jì)算原則,在傳統(tǒng)基于項(xiàng)目的協(xié)同過(guò)濾推薦算法的基礎(chǔ)上引入用戶評(píng)分時(shí)間以及用戶訪問(wèn)次數(shù)的權(quán)值模型來(lái)描述用戶的興趣隨時(shí)間的變化。
(二)基于艾賓特斯遺忘曲線的權(quán)重定義
綜上所述,新的時(shí)間權(quán)重模型表示為:
其中n為項(xiàng)目的總數(shù)。新的權(quán)重模型反映了用戶的長(zhǎng)期興趣偏好的同時(shí)又準(zhǔn)確地反映了用戶興趣的變化。
(三)改進(jìn)后算法的主要步驟
輸入:目標(biāo)用戶u訪問(wèn)過(guò)的項(xiàng)目集合Iu。
輸出:目標(biāo)用戶u的TOP-N項(xiàng)目推薦列表。
Step1:對(duì)目標(biāo)用戶訪問(wèn)過(guò)的項(xiàng)目集合Iu中的項(xiàng)目i,根據(jù)公式(1)和(2)計(jì)算的值。
Step2:根據(jù)公式(3)計(jì)算項(xiàng)目i(i∈Iu)與其他項(xiàng)目的相似度,根據(jù)計(jì)算結(jié)果確定項(xiàng)目i的最近鄰集合Ki,將所有Ki中的數(shù)據(jù)合并為集合Z,Z=∑Ki。
Step3:統(tǒng)計(jì)項(xiàng)目集合Iu和集合Z中重合的項(xiàng)目,并把這些項(xiàng)目從Z中刪除,最終得到目標(biāo)用戶u的候選推薦集合Zu,Zu=Z-Iu。
Step5:將Step4中根據(jù)計(jì)算出的項(xiàng)目預(yù)測(cè)評(píng)分,依據(jù)降序從大到小進(jìn)行排列,選擇排在最前面的N個(gè)項(xiàng)目推薦給目標(biāo)用戶u。
(一)實(shí)驗(yàn)數(shù)據(jù)與環(huán)境
實(shí)驗(yàn)數(shù)據(jù)采用Minnesota大學(xué)GroupLens研究小組創(chuàng)建的MoieLens數(shù)據(jù)集中的100 K的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。該數(shù)據(jù)集中記錄了總共有943個(gè)用戶對(duì)1 682部電影的1×105條評(píng)分。電影的評(píng)分分值在[0-5]之間不等,用戶對(duì)電影的喜愛(ài)程度隨著評(píng)分分值的增加而遞增[7]。數(shù)據(jù)集中的數(shù)據(jù)按照4∶1的比例劃分為訓(xùn)練集和測(cè)試集[8]。
實(shí)驗(yàn)環(huán)境是Intel(R)Core(TM)i3-2310M2.10GHz CPU,內(nèi)存2GB,Microsoft Windows7操作系統(tǒng),算法使用Matlab語(yǔ)言編寫(xiě)來(lái)實(shí)現(xiàn)。
(二)檢驗(yàn)指標(biāo)
1.平均絕對(duì)誤差(MAE)。MAE是推薦系統(tǒng)中最常用也是最簡(jiǎn)單的一種性能評(píng)價(jià)標(biāo)準(zhǔn),它通過(guò)計(jì)算出所有的預(yù)測(cè)評(píng)分與實(shí)際評(píng)分之間的偏差來(lái)衡量算法的優(yōu)劣[3]。MAE值的計(jì)算如公式(5)所示:
預(yù)測(cè)評(píng)分為P(u,i)(表示用戶u對(duì)電影i的預(yù)測(cè)評(píng)分),用戶實(shí)際評(píng)分Ru,i(表示用戶u對(duì)電影i的真實(shí)評(píng)分),n表示Pu,i或者 Ru,i的數(shù)量,MAE值越小說(shuō)明該算法就越精確。MAE值的計(jì)算如公式所示。
2.準(zhǔn)確率(precision)。推薦的準(zhǔn)確率就是在N個(gè)推薦給用戶的項(xiàng)目中,同時(shí)出現(xiàn)在測(cè)試集中的概率。計(jì)算如公式(6)所示:
3.召回率(recall)。對(duì)于目標(biāo)用戶的推薦召回率則是測(cè)試集中目標(biāo)用戶已經(jīng)選的項(xiàng)目中,出現(xiàn)在該用戶的推薦集中的概率,計(jì)算如公式(7)所示:
其中 Ttest表示在測(cè)試數(shù)據(jù)集中項(xiàng)目的數(shù)量,Ttop-N表示系統(tǒng)推薦給用戶的N個(gè)項(xiàng)目。準(zhǔn)確率越高說(shuō)明該算法的效果越好,同樣,召回率越高說(shuō)明算法的效果越好。
(三)實(shí)驗(yàn)分析
實(shí)驗(yàn)一:根據(jù)最近鄰個(gè)數(shù)的不同,MAE值的變化情況
最近鄰個(gè)數(shù)分別取10、20、30、40、50(實(shí)驗(yàn)二、三取值相同),利用公式(5),計(jì)算出本文提出的新算法以及傳統(tǒng)基于項(xiàng)目的CF推薦算法MAE值隨最近鄰個(gè)數(shù)的不同的變化情況如圖2所示:
圖2 最近鄰集合取值對(duì)MAE值的影響
從圖2看出,引入用戶評(píng)分時(shí)間以及用戶訪問(wèn)次數(shù)的CF推薦算法在最近鄰個(gè)數(shù)取值范圍內(nèi),MAE值均小于傳統(tǒng)的CF推薦算法。MAE值平均降低8%。
實(shí)驗(yàn)二:根據(jù)最近鄰個(gè)數(shù)的不同,Precision的變化情況
利用公式(6),計(jì)算出本文提出的新的算法與傳統(tǒng)基于項(xiàng)目的CF推薦算法Precision值隨不同的最近鄰個(gè)數(shù)的變化情況,如圖3所示:
圖3 最近鄰取值對(duì)Precision的影響
從圖3可以看出,改進(jìn)后的算法在最近鄰個(gè)數(shù)取值為[10,50]時(shí),Precision的值均大于傳統(tǒng)基于項(xiàng)目的CF算法。Precision平均提高 15%。從圖 3還可以看出Precision的值波動(dòng)不大,其值不與最近鄰個(gè)數(shù)的取值相關(guān)。
實(shí)驗(yàn)三:根據(jù)最近鄰個(gè)數(shù)的不同,Recall的變化情況
利用公式(7)本文提出的新的算法與傳統(tǒng)基于項(xiàng)目的CF推薦算法的Recall值隨最近鄰個(gè)數(shù)不同的變化情況如圖4所示:
圖4 最近鄰取值對(duì)Recall值的影響
從圖4可以看出,在最近鄰介于10~50之間時(shí),改進(jìn)的基于項(xiàng)目的CF推薦算法的Recall值均大于傳統(tǒng)基于項(xiàng)目的CF推薦算法。Recall值平均提高18%。從圖4還可以看出Recall的值不隨最近鄰取值的不同而變化,波動(dòng)不大。
通過(guò)以上三組對(duì)比實(shí)驗(yàn)結(jié)果可知,本文提出的算法在MAE、Precision、Recall三項(xiàng)指標(biāo)上都有很好的表現(xiàn)性能。這是因?yàn)楦倪M(jìn)后的算法在相似度以及評(píng)分預(yù)測(cè)的計(jì)算過(guò)程中反映了用戶興趣的變化,在一定程度上有助于提高系統(tǒng)的推薦準(zhǔn)確度。
本文針對(duì)傳統(tǒng)的基于項(xiàng)目的協(xié)同過(guò)濾推薦算法中沒(méi)有將用戶興趣的變化反應(yīng)在相似度以及預(yù)測(cè)評(píng)分的計(jì)算過(guò)程中,提出了一種基于用戶興趣變化的協(xié)同過(guò)濾推薦算法。新的算法通過(guò)結(jié)合用戶評(píng)分時(shí)間以及用戶瀏覽次數(shù)建立新的時(shí)間權(quán)重模型,改善兩個(gè)項(xiàng)目相似度以及預(yù)測(cè)評(píng)分的計(jì)算。通過(guò)實(shí)驗(yàn)一、二、三的結(jié)果可知,新的算法能夠在一定程度上緩解用戶興趣隨時(shí)間變化的問(wèn)題,在一定程度上提高了推薦系統(tǒng)的準(zhǔn)確性。
[1]羅琦,繆昕杰,魏倩.稀疏數(shù)據(jù)集協(xié)同過(guò)濾算法的進(jìn)一步研究[J].計(jì)算機(jī)科學(xué),2014(6):264-268.
[2]鄧華平.基于項(xiàng)目聚類和評(píng)分的時(shí)間加權(quán)協(xié)同過(guò)濾算法[J].計(jì)算機(jī)應(yīng)用究,2015(7):1966-1969.
[3]王鵬.基于矩陣分解的推薦系統(tǒng)算法研究[D].北京交通大學(xué),2015.
[4]李紅梅,郝文寧,陳剛.基于改進(jìn)LSH的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)科學(xué),2015,42(10):256-261.
[5]孫輝,馬躍,楊海波,等,2014.一種相似度改進(jìn)的用戶聚類協(xié)同過(guò)濾推薦算法[J].小型微型計(jì)算機(jī)系統(tǒng)(9):1967-1970.
[6]楊崢.基于用戶興趣變化的協(xié)同過(guò)濾推薦算法研究[D].燕山大學(xué),2015.
[7]劉占兵,肖詩(shī)斌,2015.基于用戶興趣模糊聚類的協(xié)同過(guò)濾算法[J].現(xiàn)代圖書(shū)情報(bào)技術(shù)(11):12-17.
[8]柯良文,王靖,2015.基于用戶特征遷移的協(xié)同過(guò)濾推薦[J].計(jì)算機(jī)工程(1):37-43.
(責(zé)任編輯:C 校對(duì):L)
F062.5
A
1004-2768(2017)01-0019-03
2016-09-22
李道國(guó)(1965-),男,浙江杭州人,杭州電子科技大學(xué)信息工程學(xué)院教授,研究方向:電子商務(wù)、模式識(shí)別與人工智能;何狄江(1991-),男,浙江紹興人,杭州電子科技大學(xué)管理學(xué)院碩士研究生,研究方向:供應(yīng)鏈管理;李連杰(1991-),女,內(nèi)蒙古赤峰人,杭州電子科技大學(xué)管理學(xué)院碩士研究生,研究方向:電子商務(wù)。何狄江為通訊作者。