劉 靜 武文琪 李 驍 劉永利 王建芳
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 河南 焦作 454000)
基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾算法
劉 靜 武文琪 李 驍 劉永利 王建芳
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 河南 焦作 454000)
針對傳統(tǒng)協(xié)同過濾算法不能及時反應(yīng)用戶的興趣變化、時效性不足而導(dǎo)致推薦精度不高的問題,提出一種基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾算法。在傳統(tǒng)協(xié)同過濾基礎(chǔ)上綜合考慮評分時間、相似度以及項(xiàng)目屬性等因素,首先在計(jì)算相似度過程中加入基于時間的用戶興趣度權(quán)重函數(shù),然后再與項(xiàng)目屬性相似度進(jìn)行融合,最后進(jìn)行項(xiàng)目預(yù)測與推薦。在Movielens數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,所提出的算法與已有的經(jīng)典算法相比,平均絕對誤差降低了3%~6%,有效提高了推薦的準(zhǔn)確性。
用戶興趣 項(xiàng)目屬性 協(xié)同過濾 權(quán)重函數(shù) 相似度
個性化推薦[1-2]是從海量數(shù)據(jù)中挖掘出有用信息的一種技術(shù),協(xié)同過濾是其應(yīng)用最廣泛、最成功的推薦算法之一,通過收集和分析用戶的信息數(shù)據(jù)來學(xué)習(xí)用戶的興趣偏好和行為模式,從而為用戶推薦所需要的信息或商品。
傳統(tǒng)的協(xié)同過濾算法忽略了隨著時間變化而用戶的興趣也在不斷發(fā)生變化的問題,即存在用戶興趣漂移現(xiàn)象[3]。用戶的興趣偏好不但范圍廣泛,而且實(shí)時變化,例如:一個孩子在幾歲時可能對動畫片感興趣,青春期可能對浪漫愛情片感興趣,隨后有可能對文藝片感興趣,再過幾年可能對劇情片感興趣等。隨著時間推移,用戶的關(guān)注點(diǎn)在不斷變化,如何捕獲這一動態(tài)的時間效應(yīng)是個難題[4]。
通常將時間窗作為判斷用戶興趣變化的一種表征方式,采用加權(quán)處理的方法,來提高推薦質(zhì)量。文獻(xiàn)[5]中,通過對心理遺忘曲線擬合出用戶興趣權(quán)重函數(shù),提出基于時間窗的改進(jìn)協(xié)同過濾算法,從而追蹤和學(xué)習(xí)用戶的興趣偏好;文獻(xiàn)[6-8]提出基于評價時間數(shù)據(jù)權(quán)重的用戶興趣度量函數(shù),使得用戶最可能感興趣近期訪問過的資源。這些方法在相似性度量過程中加入了時間因子,從一定程度上解決了用戶興趣漂移問題,但是忽略了不同對象的類別屬性等特征信息,這在一定程度上也會影響最終的推薦質(zhì)量。
針對這一問題,本文提出了一種基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾推薦算法。在傳統(tǒng)的用戶—項(xiàng)目評分矩陣基礎(chǔ)上綜合考慮用戶偏好、評分時間以及項(xiàng)目屬性特征等因素,先在計(jì)算相似度過程中加入時間邏輯性因素,再與項(xiàng)目屬性相似度進(jìn)行融合,明確用戶對項(xiàng)目中各個屬性的偏好程度,更能體現(xiàn)出用戶的行為需求。
提供個性化推薦服務(wù)已經(jīng)成為各大電子商務(wù)網(wǎng)站和社交媒體的核心競爭力所在,如何實(shí)時根據(jù)用戶的瀏覽和購買行為為其推薦更加符合用戶偏好的項(xiàng)目,即在正確的時間推薦合適的項(xiàng)目,是目前推薦系統(tǒng)的一大挑戰(zhàn)。在信息飛速發(fā)展的當(dāng)代,用戶興趣和信息話題的流行轉(zhuǎn)移速度也非???,文獻(xiàn)[9-10]提出了一個實(shí)時的在線推薦系統(tǒng)——TencentRec,并在此系統(tǒng)上部署一系列的應(yīng)用,每天為10億用戶根據(jù)其興趣愛好實(shí)時推薦話題,在實(shí)踐中觀察TencentRec的性能。并在此系統(tǒng)上提出了一個基于項(xiàng)目的可擴(kuò)展協(xié)同過濾算法[10],處理隱式反饋問題,增量更新和實(shí)時修剪以減少計(jì)算成本,對數(shù)據(jù)進(jìn)行實(shí)時采集和處理,可以隨時捕捉用戶的興趣,提高推薦質(zhì)量。文獻(xiàn)[11]提出了一種基于空間正則化和突發(fā)加權(quán)平滑的混合模型推薦算法。利用正則化框架發(fā)現(xiàn)社交網(wǎng)絡(luò)中的空間信息以及在時間軸上采用突發(fā)加權(quán)平滑方案發(fā)現(xiàn)的時變信息,實(shí)驗(yàn)結(jié)果表明所提出的混合模型能夠在單一的檢測過程中區(qū)別時變話題和穩(wěn)定話題,針對用戶不同的興趣分別進(jìn)行推薦話題。此算法只適用服務(wù)于新聞類的信息網(wǎng)站。針對目前流行的社交媒體平臺,文獻(xiàn)[12]設(shè)計(jì)了一個潛在的類統(tǒng)計(jì)混合模型,稱為時間上下文感知混合模型(TCAM)。TCAM同時為用戶內(nèi)在興趣相關(guān)話題和時間上下文相關(guān)話題建模,結(jié)合這兩個因素的影響對用戶行為建模。為了進(jìn)一步提高TCAM算法的性能,提出項(xiàng)目加權(quán)方法使TCAM更好地為用戶推薦其偏好的項(xiàng)目。文獻(xiàn)[4]提出了一種利用人類行為對信息過濾的協(xié)同過濾算法,與傳統(tǒng)的協(xié)同過濾算法相比推薦精度得到了很大的提高,同時改善了推薦的新穎性和多樣性。在計(jì)算相似度時加入時間因素,但是沒有考慮項(xiàng)目特征屬性問題,為此本文提出一種基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾算法,在計(jì)算相似度時不單單考慮用戶興趣還考慮項(xiàng)目本身的屬性特征,提高算法的推薦精度。
時間是一種重要的上下文信息,對用戶興趣偏好有著深入的影響[13]。本文以Movielens數(shù)據(jù)集為例(從1997年9月到1998年4月,以月為單位),分析了3種不同類型影片觀眾人次比例隨時間的變化情況如圖1所示。
圖1 三種不同類型影片月觀眾人次比例走勢圖
圖1中Item1是屬于喜劇動畫片,Item50是屬于戰(zhàn)爭科幻動作片,Item181是屬于浪漫喜劇片。由圖1中可以看出不同類型影片,隨著時間的變化,影片受歡迎的程度發(fā)生改變,觀影人次也相應(yīng)的發(fā)生變化。不管是屬于哪種類別的電影,其觀眾人次比例隨時間的推移都在逐漸下降,其規(guī)律在大體上和心理學(xué)上的遺忘曲線相似。電影剛上映時關(guān)注的觀眾比較多,隨著時間的推移觀眾人次在慢慢下降,直到被人們所遺忘,這也符合艾賓浩斯(Ebbinghaus)遺忘曲線的規(guī)律,即人類記憶能力隨時間的變化而降低。
傳統(tǒng)的協(xié)同過濾算法分為輸入數(shù)據(jù)、尋找最近鄰居集合和預(yù)測推薦3步,尋找最近鄰居集合是協(xié)同過濾算法中關(guān)鍵的一步,其結(jié)果直接影響推薦的準(zhǔn)確度。尋找最近鄰居集合可通過計(jì)算相似度方法實(shí)現(xiàn),常用的相似度度量方法有:余弦相似度、調(diào)整余弦相似度和皮爾遜相關(guān)相似度[14-15]。計(jì)算相似度公式分別如下:
(1)
(2)
(3)
2.1 基于時間的用戶興趣度權(quán)重
本文采用擬合的遺忘曲線對項(xiàng)目評分進(jìn)行時間加權(quán),離采樣時間越近的評分賦予較大的權(quán)值,反之則賦予較小的權(quán)值,以此來模擬用戶的興趣愛好隨著時間而不斷變化。因此,可以根據(jù)遺忘曲線定義指數(shù)衰減函數(shù)來表示用戶興趣的變化,基于時間的用戶興趣度權(quán)重函數(shù)如式(4)所示:
(4)
其中,tui表示用戶u對項(xiàng)目i的評分時間,t0表示目標(biāo)用戶的采樣時間,T表示整個數(shù)據(jù)集的時間跨度(結(jié)束時間-開始時間)。
本文以皮爾遜相關(guān)相似性作為相似度計(jì)算公式,并將基于時間的用戶興趣度權(quán)重函數(shù)引入到相似度計(jì)算公式中,基于用戶興趣度權(quán)重的皮爾遜相關(guān)相似性計(jì)算方法如式(5)所示:
(5)
2.2 改進(jìn)相似度計(jì)算
加入興趣度權(quán)重能夠有效地找出用戶的喜好范圍,為了更好地進(jìn)行推薦服務(wù),需要找出用戶偏好的特征屬性,避免把一個用戶不喜歡的影片當(dāng)成是用戶喜好的影片進(jìn)行推薦。在考慮時間效應(yīng)的基礎(chǔ)上計(jì)算出用戶評分與項(xiàng)目屬性之間的關(guān)系,發(fā)現(xiàn)用戶對于項(xiàng)目中各個屬性的喜好程度,結(jié)合基于時間的用戶興趣度權(quán)重和項(xiàng)目屬性能夠明確用戶的興趣偏好,準(zhǔn)確有效地找出其鄰居集合。
令項(xiàng)目屬性的集合為l={l1,l2,…,ld},其中d為類別屬性個數(shù)。以Movielens數(shù)據(jù)集為例:數(shù)據(jù)集中的電影一共有18個類別屬性,分別為{unknown,Action,Adventure,…,Western}。項(xiàng)目屬性特征可以用一個n×d的項(xiàng)目屬性矩陣Gn×d來計(jì)算,其中n為項(xiàng)目個數(shù),gid為0時代表項(xiàng)目i不具有這個屬性,gid為1時代表項(xiàng)目i具有該屬性。項(xiàng)目的特征屬性相似度計(jì)算方法如式(6)所示:
(6)
其中,il表示項(xiàng)目i的屬性集合,jl表示項(xiàng)目j的屬性集合。
在計(jì)算項(xiàng)目與項(xiàng)目之間相似性時不能單一通過用戶對項(xiàng)目的評分來計(jì)算,還要考慮項(xiàng)目與項(xiàng)目之間的相關(guān)相似性,采用算術(shù)加權(quán)平均,綜合考慮項(xiàng)目的特征屬性相似度和評分相似度,獲得更全面的相似性度量模型,融合的相似度計(jì)算方法如式(7)所示:
sim(i,j)=γ×Esim(i,j)+(1-γ)×sim(i,j)
(7)
其中,γ為平衡因子用作協(xié)調(diào)兩方面相似性度量的結(jié)果,0<γ<1,在[0,1]中取一系列值,觀察不同γ值對推薦準(zhǔn)確度的影響,選擇合適的γ值將兩種相似度進(jìn)行融合,提高推薦準(zhǔn)確率。
2.3 加權(quán)預(yù)測評分
由相似度計(jì)算得到最近鄰居集合后,考慮時間對預(yù)測值的影響,用戶現(xiàn)在的行為應(yīng)該和用戶最近的行為關(guān)系更大。將基于時間的用戶興趣度權(quán)重wt加入到預(yù)測評分中,其計(jì)算方法如式(8)所示:
(8)
其中,sim(i,j)表示目標(biāo)項(xiàng)目i與最近鄰居項(xiàng)目j的相似性度量,rc,j表示用戶c對項(xiàng)目j的評分,表示項(xiàng)目i的平均評分,表示項(xiàng)目j的平均評分。
為了有效計(jì)算出用戶的當(dāng)前興趣,改進(jìn)的預(yù)測評分用wt賦予評分矩陣中每個評分一個權(quán)重,即用戶最近數(shù)據(jù)貢獻(xiàn)度更大,占較大的權(quán)重,反之亦然。
2.4 算法步驟
算法:基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾算法。
輸入:數(shù)據(jù)集中的一對訓(xùn)練集和測試集,最近鄰居個數(shù)neighbor_num,平衡參數(shù)γ。
輸出:用戶c對測試集中項(xiàng)目i的預(yù)測評分。
算法步驟:
步驟1 由訓(xùn)練集得到用戶——項(xiàng)目評分矩陣Rm×n和時間矩陣Tm×n。例如:用戶1對項(xiàng)目1的評分為5且評分時間為874 965 758,則在評分矩陣Rm×n中r1,1=5, 在時間矩陣Tm×n中t1,1=874 965 758。
步驟2 利用用戶興趣度權(quán)重函數(shù)wt,計(jì)算目標(biāo)用戶的興趣度權(quán)重。
步驟3 用式(5)計(jì)算項(xiàng)目i和項(xiàng)目j的評分相似度(當(dāng)j=i時令sim(i,j)=0)。
步驟4 通過式(6)計(jì)算項(xiàng)目i和項(xiàng)目j的特征屬性相似度(當(dāng)j=i時令sim(i,j)=0)。
步驟5 根據(jù)步驟3和步驟4得到的評分相似度和項(xiàng)目屬性相似度利用式(7)進(jìn)行融合,形成最終的相似度矩陣。
步驟6 根據(jù)步驟5計(jì)算得到的相似性矩陣來尋找目標(biāo)項(xiàng)目i的最近鄰居,鄰居關(guān)系的計(jì)算是為了對每一個項(xiàng)目i找到一個鄰居集合Neighbori={j1,j2,…,jm},i?Neighbor,將相似度{sim(i,j1)>sim(i,j2)>…>sim(i,jm)}遞減排序。根據(jù)預(yù)先設(shè)定的鄰居數(shù)neibor_num,選擇sim(i,j)最大的前neibor_num個作為項(xiàng)目i最近鄰居。
步驟7 根據(jù)步驟6得到的目標(biāo)項(xiàng)目i的最近鄰居集合Neighbori和評分矩陣Rm×n中的評分,依據(jù)式(8)利用用戶c對項(xiàng)目i的最近鄰居評分來預(yù)測用戶c對項(xiàng)目i的評分。
算法結(jié)束。
3.1 數(shù)據(jù)集
本文選用MovieLens數(shù)據(jù)集對提出的算法在Matlab中進(jìn)行評估測試,該數(shù)據(jù)集包含943個用戶對1 682部電影連續(xù)7個月左右的評分?jǐn)?shù)據(jù),評分范圍是1~5,1表示“很差”,5表示“很好”。整個數(shù)據(jù)集的稀疏等級為1-100 000/(943×1 682)=93.7%。
MovieLens數(shù)據(jù)集提供5組隨機(jī)劃分的訓(xùn)練集和測試集,實(shí)驗(yàn)在這5對數(shù)據(jù)上分別進(jìn)行,最終實(shí)驗(yàn)結(jié)果為這5次結(jié)果的算術(shù)平均值。
3.2 評價標(biāo)準(zhǔn)
本文采用平均絕對誤差MAE(MeanAbsoluteError)來衡量推薦的精確率,能更好地反映預(yù)測值誤差的實(shí)際情況。設(shè)在訓(xùn)練集上得到用戶的預(yù)測評分集合為{pu,1,pu,2,…,pu,n},用戶實(shí)際評分集合為{ru,1,ru,2,…,ru,n},則平均絕對誤差MAE定義為:
(9)
其中,N是測試集中用戶評分的個數(shù),pu,i是用戶u對第i個項(xiàng)目在訓(xùn)練集上的預(yù)測評分,ru,i是用戶u對第i個項(xiàng)目的實(shí)際評分。MAE通過計(jì)算用戶的預(yù)測評分和實(shí)際評分之間的偏差來度量算法預(yù)測的準(zhǔn)確性,MAE值越小,則推薦精確度越高。
3.3 結(jié)果分析
1) 相似度比較
為了驗(yàn)證本文提出的算法和傳統(tǒng)的相似度算法在不同相似度公式中的推薦效果,根據(jù)本文在2.1節(jié)中提出的算法思想,同樣將式(5)中的用戶興趣度權(quán)重函數(shù)引入到相似度計(jì)算公式中,對余弦、調(diào)整余弦分別根據(jù)式(1)、式(2)作了相似的改進(jìn)和替換,其實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 三種改進(jìn)相似度與傳統(tǒng)相似度的MAE比較
分別使用三種計(jì)算方式進(jìn)行MAE對比。從圖2可以看出,不管選用何種相似度計(jì)算方式,在任意鄰居數(shù)neighbor_num值下,三種改進(jìn)的相似性計(jì)算方法都比原始的計(jì)算方法取得更低的MAE值。尤其是采用皮爾遜相關(guān)相似性計(jì)算相似度時MAE值最小,從而也驗(yàn)證了本文選用皮爾遜相似性方法作為相似度計(jì)算的依據(jù)。另外改進(jìn)后算法的MAE明顯小于傳統(tǒng)協(xié)同過濾推薦系統(tǒng),說明基于時間的用戶興趣度權(quán)重和項(xiàng)目屬性對推薦系統(tǒng)的影響比較大。
2) 平衡因子γ對MAE的影響
實(shí)驗(yàn)中選擇最近鄰居數(shù)neigbor_num= 25,針對式(7),在其他參數(shù)一樣的情況下,觀察不同平衡因子γ值對推薦準(zhǔn)確度的影響,如圖3所示。當(dāng)γ=0.15時MAE值最小,此時不但考慮了項(xiàng)目屬性還考慮了時間對相似度計(jì)算的影響。
圖3 平衡因子γ 對MAE的影響
3) 不同算法之間對比
實(shí)驗(yàn)中最近鄰居數(shù)neigbor_num分別取5、10、15、20、25和30,設(shè)定最優(yōu)平衡因子γ=0.15,本文提出的基于用戶興趣和項(xiàng)目屬性協(xié)同過濾算法(UIIP-CF)分別與傳統(tǒng)基于項(xiàng)目的協(xié)同過濾算法(ICF)與文獻(xiàn)[9] 中提出的改進(jìn)算法(TDGS-CF)、文獻(xiàn)[10]中提出的改進(jìn)算法(WUCF) 進(jìn)行MAE值對比,如圖4所示。
圖4 四種算法的MAE對比圖
由圖4可以看出,改進(jìn)算法的MAE與傳統(tǒng)的基于項(xiàng)目的協(xié)同過濾算法相比MAE降低了10%,比TDGS-CF算法MAE降低了6%,比WUCF算法MAE降低了3%。由于MAE值越小則推薦精度越高,UIIP-CF算法的精確性比以上提到的推薦算法都高,這也說明了基于時間的用戶興趣權(quán)重和項(xiàng)目屬性在推薦算法中起著比較關(guān)鍵的作用。
本文分析了用戶的興趣隨時間的變化而變化的規(guī)律,在此基礎(chǔ)上提出了一種基于用戶興趣和項(xiàng)目屬性的協(xié)同過濾算法。實(shí)驗(yàn)表明,改進(jìn)的協(xié)同過濾算法不僅有效提高了推薦系統(tǒng)的推薦精度,而且在一定程度上解決了協(xié)同過濾推薦系統(tǒng)的用戶興趣漂移問題。但是,改進(jìn)算法中采用實(shí)驗(yàn)法得到最佳平衡因子并進(jìn)行相似度融合以達(dá)到解決用戶興趣漂移的目的,所以,下一步的研究重點(diǎn)將放在如何自適應(yīng)平衡因子問題以及更多的相似度改進(jìn)方法上。
[1] 孟祥武,劉樹棟,張玉潔,等.社會化推薦系統(tǒng)研究[J].軟件學(xué)報,2015,26(6):1356-1372.
[2] 王國霞,劉賀平,李擎.基于萬有引力的個性化推薦算法[J].工程科學(xué)學(xué)報,2015,37(2):255-259.
[3]AdibiP,LadaniBT.Acollaborativefilteringrecommendersystembasedonuser’stimepatternactivity[C]//InformationandKnowledgeTechnology(IKT),2013 5thConferenceon.IEEE,2013:252-257.
[4]JiaCX,LiuRR.Improvethealgorithmicperformanceofcollaborativefilteringbyusingtheintereventtimedistributionofhumanbehaviors[J].PhysicaA:StatisticalMechanicsandItsApplications,2015,436:236-245.
[6] 鄭志高,劉京,王平,等.時間加權(quán)不確定近鄰協(xié)同過濾算法[J].計(jì)算機(jī)科學(xué),2014,41(8):7-12.
[7] 李源鑫,肖如良,陳洪濤,等.時間衰減制導(dǎo)的協(xié)同過濾相似性計(jì)算[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(11):129-134,158.
[8] 劉東輝,彭德巍,張暉.一種基于時間加權(quán)和用戶特征的協(xié)同過濾算法[J].武漢理工大學(xué)學(xué)報,2012,34(5):144-148.
[9]ChenC,YinH,YaoJ,etal.TeRec:Atemporalrecommendersystemovertweetstream[J].ProceedingsoftheVLDBEndowment,2013,6(12):1254-1257.
[10]HuangY,CuiB,ZhangW,etal.TencentRec:Real-timeStreamRecommendationinPractice[C]//Proceedingsofthe2015ACMSIGMODInternationalConferenceonManagementofData.Melbourne,VIC,Australia:ACM,2015:227-238.
[11]YinH,CuiB,LuH,etal.Aunifiedmodelforstableandtemporaltopicdetectionfromsocialmediadata[C]//2013IEEE29thInternationalConferenceonDataEngineering(ICDE).Brisbane,Australia:IEEEComputerSociety,2013:661-672.
[12]YinH,CuiB,ChenL,etal.Atemporalcontext-awaremodelforuserbehaviormodelinginsocialmediasystems[C]//Proceedingsofthe2014ACMSIGMODInternationalConferenceonManagementofData.AssociationforComputingMachinery,2014:1543-1554.
[13]RenY,LiG,ZhouW.LearningUserPreferencePatternsforTop-NRecommendations[C]//WebIntelligenceandIntelligentAgentTechnology(WI-IAT),2012IEEE/WIC/ACMInternationalConferenceson,2012:137-144.
[14] 吳毅濤,張興明,王興茂,等.基于用戶模糊相似度的協(xié)同過濾算法[J].通信學(xué)報,2016,37(1):198-206.
[15] 榮輝桂,火生旭,胡春華,等.基于用戶相似度的協(xié)同過濾推薦算法[J].通信學(xué)報,2014,35(2):16-24.
COLLABORATIVE FILTERING ALGORITHM BASED ON USER INTEREST AND ITEM PROPERTIES
Liu Jing Wu Wenqi Li Xiao Liu Yongli Wang Jianfang
(CollegeofComputerScienceandTechnology,HenanPolytechnicUniversity,Jiaozuo454000,Henan,China)
Aiming at the problem that traditional collaborative filtering algorithm can’t response to user’s interest changes timely, lack of timeliness leads to recommend accuracy is not high, a collaborative filtering algorithm based on user interest and item properties is proposed. On the basis of the traditional collaborative filtering, considering the factors of scoring time, similarity and item properties, first we add the user preference time weight function to the process of computing similarity, then merge with the similarity of tem properties, finally make the item prediction and recommendation. Compared with the newly proposed algorithm and the existing algorithm, the experimental results on the Movielens demonstrate that the MAE (Mean Absolute Error) reduces by 3%~6%, which effectively improves the recommendation accuracy.
User interest Item properties Collaborative filtering Weight function Similarity
2016-03-17。國家自然科學(xué)基金項(xiàng)目(61202286);河南省高等學(xué)校骨干教師計(jì)劃項(xiàng)目(2015GGJS-068)。劉靜,副教授,主研領(lǐng)域:數(shù)據(jù)挖掘,推薦算法。武文琪,碩士生。李驍,碩士生。劉永利,副教授。王建芳,副教授。
TP391
A
10.3969/j.issn.1000-386x.2017.05.006