吳崢 陳俊 李靈芳
摘要摘要:針對傳統協同過濾算法中存在的數據稀疏和用戶興趣變化問題,提出一種改進的協同過濾推薦算法(IPTDCF)。在用戶相似度計算中融入評分交集項目占比因子,針對用戶興趣變化問題在評分預測計算中融入時間衰減函數,提高推薦算法的準確性。仿真實驗表明,改進后的算法在推薦準確度上優于傳統算法。
關鍵詞關鍵詞:協同過濾;IPTDCF;交集占比;時間衰減
DOIDOI:10.11907/rjdk.171066
中圖分類號:TP312
文獻標識碼:A文章編號文章編號:16727800(2017)005002403
0引言
推薦系統近年來得到了廣泛應用,但也面臨很多問題,如用戶興趣變化、數據稀疏性問題等。傳統推薦算法在計算用戶相似度中時的參考集合由于只選用兩用戶共同評分的項目,而忽略了兩用戶均未評分和單一用戶評分的項目,這樣求得的用戶相似度只能片面反映用戶興趣,且沒有考慮用戶興趣變化問題。早期研究在用戶興趣變化方面有所涉及,比如張磊[1]提出了基于遺忘曲線規律進行時間衰減,得到有效評分矩陣再進行推薦算法;孫智聰[2]提出了一種基于記憶激活理論的協同過濾算法,給出重復學習后的興趣最大值計算方法;胡偉健等[3]提出了一種改進的歐式距離相似度度量方法和時間信息模擬用戶興趣變化的方法等。雖然上述算法考慮了用戶興趣變化,但在推薦準確性上仍有優化空間。
本文引入評分交集項目占比因子優化用戶相似度計算方法,引入時間衰減函數解決用戶興趣變化問題,提出改進算法,提高推薦算法的準確性。
1改進算法描述
UBCF算法首先計算用戶間相似度,主要方法有皮爾遜相關系數相似度計算方法、歐氏距離相似度計算方法、余弦相似度計算方法等。其中,皮爾遜相關系數相似度計算方法如下:
1.1改進的項目占比因子
項目評分是用戶興趣的直接反映,用戶可以有多種興趣。實際中,兩位用戶可能僅在個別興趣愛好上是相同的,反映在評分上為兩位用戶的評分項目交集遠小于各自評分項目數。如圖1所示,圖中項目交集I是傳統用戶相似度計算方法的取值范圍,項目交集中可能是當前熱門項目,也可能是兩用戶共同的興趣愛好。以MovieLens中數據量為100k大小的數據集為例,用戶181對435個項目進行了評分,用戶600對89個項目進行了評分,而兩用戶共同評分的項目僅有1個;用戶181對435個項目進行了評分,用戶766對175個項目進行了評分,而兩用戶共同評分的項目僅有1個。另外,也有可能評分項目較多的用戶覆蓋了評分較少用戶的幾乎所有項目,如圖2所示。同樣以上述數據集為例,用戶13對636個項目進行了評分,用戶814對35個項目進行了評分,并且這35個項目恰好也被用戶13評價過;用戶655對685個項目進行了評分,用戶111對24個項目進行了評分,并且這24個項目恰好也被用戶655評價過。顯然,這兩種情況下僅考慮用戶評分項目交集而忽略大部分非交集評分項目,在衡量用戶興趣時是片面的,不能準確得出用戶興趣。因此,在用戶相似度計算時考慮引入交集項目在用戶所有評分項目中的占比,對皮爾遜相關系數計算公式進行改進,改進如公式(3)所示。
其中,a表示一個很小的常量,其作用是避免出現分母為0的情況。prop(u,v)為項目占比因子,表示用戶u和用戶v共同評分項目數在各自評分項目數之和中所占的比例,如公式(4)所示,取值范圍[0,1],兩用戶項目交集數越多,其值越大,對相似度的削減力度越小,相應的sim值越大,表示兩者越相似。當兩用戶評分項目完全相同時prop(u,v)值為1,表示兩用戶所有已評分項目均參與到用戶相似度計算中,當兩用戶評分項目沒有交集時prop(u,v)值為0。
prop(u,v)=2×num(I(u)∩I(v))num(I(u))+num(I(v))(4)
其中,I(u)表示用戶u評分的項目,I(u)∩I(v)表示用戶u和用戶v共同評分的項目交集,num(I(u))表示用戶u評分項目個數,num(I(u)∩I(v))表示共同評分項目交集的個數。
1.2改進的時間衰減函數
項目評分是用戶對項目在當前時間喜好程度的直觀體現,而人腦對事物的記憶符合艾賓浩斯遺忘規律,即新生事物在大腦中的遺忘速度遵循先快后慢,最終趨于穩定的變化規律。用戶對項目的喜好程度也會隨著這樣的記憶規律而發生變化,在傳統預測評分中并沒有體現出這一變化,由此在預測評分方法中增加時間衰減函數,當預測評分和近鄰用戶對該項目評分時間差越小,近鄰用戶實際評分對預測評分的影響越大,衰減越弱,改進如公式(5)所示。
pred(u,i)=ru+∑v∈Psim(u,v)×(rvi-rv)×f(tui,tvi)∑v∈Psim(u,v)(5)
其中,集合P表示用戶u的近鄰用戶集合中對項目i進行評分的用戶集合,tui表示用戶u對項目i的評分時間,在這里為時間戳形式。f為遺忘記憶保留率函數,其公式如下(6)所示,為單調遞減函數,分子為常量,評分時間間隔越大時,(t1-t2)越大,分母越大,記憶保持率越小,懲罰力度越大,評分的有效性越低,在預測評分中的貢獻度就要越低,模擬了用戶興趣變化的過程。計算如下:
f(t1,t2)=ec|t0+t1-t2|b(6)
其中,e為自然對數,c、b、t0為常量系數,實驗發現,t0取1e-6、c取0.4且b取0.04時效果最佳。
2實驗過程及結果分析
2.1實驗數據集介紹
本實驗所采用的數據集來自Movielens網站,包括6 040位用戶、3 900部電影、以及用戶對電影評分的1 000 209條數據記錄。其中,每位用戶至少對其中20部電影進行過評分,評分采用五分整數制,評分越高代表用戶越喜歡該部電影。
2.2實驗結果度量的標準
實驗結果的準確性采用平均絕對誤差(MAE)來度量。MAE通過比較用戶預測評分和用戶實際評分間的偏差來度量預測評分的準確度,其值越小說明推薦質量越好。度量標準如式(7)。
MAE=∑ni=1|Δpi|n(7)
其中|Δpi|表示用戶對項目i的預測評分和實際評分的差值的絕對值,R(u)為用戶u的推薦列表,T(u)位測試集中用戶u的真實行為記錄集。
2.3實驗流程
為更好說明結果,選取UBCF算法、文獻[1]ForgetBCF算法和本文提出的IPTDCF算法,對比MAE值的大小及變化趨勢。UBCF和IPTDCF的實驗流程(見圖3)如下:
Input:用戶集合U,項目集合I,用戶評分記錄集合Info,最近鄰居數k;
Output: 預測評分矩陣Pred(U,I)以及MAE值。
Step 1: 將Info按照80%-20%的數量比,隨機分成兩部分,80%部分記錄作為訓練集Base,20%部分作為測試集Test。
Step 2 : 提取出數據集Base和Test中的用戶、項目評分、評分時間信息,組成用戶-項目評分矩陣R(U,I)、R(U,I)和相應的用戶-項目評分時間矩陣T(U,I)、T(U,I)。
Step 3: 分別根據公式(1)和(3)進行對比實驗,對訓練集中每個用戶uU,在改進公式(3)中求出用戶單獨評分項目數和兩用戶共同評分項目數,并根據公式(5)計算出項目占比因子,求出用戶間相似度similarity(u,v),并保存在相似度矩陣Sim(U,U)中。
Step 4: 在Sim(U,U)中,對每個用戶uU,選取出與u相似度最高的k位用戶,組成最近鄰集合neighborhood(u,k),并保存在最近鄰矩陣Neighbor(U,k)中。
Step 5: 根據訓練集中得到的最近鄰矩陣Neighbor(U,k),對測試集中用戶項目評分進行預測,分別根據公式(2)和(5)進行對比實驗,在改進公式(6)中根據評分時間間隔進行時間衰減,根據公式(7)求出記憶保留率,再計算出R′(U,I)中每個用戶已評分項目的預測評分,并保存到預測評分矩陣Pred(U,I)中。
Step 6:根據公式(7),分別求出對比實驗中兩組MAE值,比較推薦算法的準確性,返回Pred(U,I),實驗完成。
2.4實驗結果分析
實驗均采用皮爾遜相關系數來計算相似度,觀察不同鄰居數時MAE值的變化,結果如表1和圖4所示。
結果顯示,不同算法和不同近鄰數得到的MAE值不同,相同近鄰數時,UBCF的MAE值最大,IPTDCF的MAE值最小,表明IPTDCF的推薦準確性更高。UBCF和ForgetBCF呈遞減變化,IPTDCF先遞減后遞增,UBCF接近線性變化,Forget和IPTDCF遞減速度先快后慢,最終趨于平穩,這是由于時間衰減函數使得MAE值變化符合遺忘曲線規律;IPTDCF在近鄰數為80時達到最小值,后期有微弱遞增趨勢,這是由于項目占比因子的削弱作用使得原本較高的用戶相似度依然高,而原本較低的用戶相似度變得更低,增加近鄰相當于增加了更過低相似度的近鄰,因而鄰居數的增多反而削弱了改進效果。綜上所述,由IPTDCF計算出的MAE值要小于UBCF算法和ForgetBCF算法,可以發現IPTDCF在推薦的準確性上明顯優于傳統UBCF算法和ForgetBCF算法。
3結語
本文針對評分數據稀疏或用戶評分時間不同的應用場景提出了一種改進型協同過濾推薦算法IPTDCF。IPTDCF算法首先在計算用戶相似度時加入共同評分項目交集占各自所有評分項目的比例因子,考慮兩用戶評分項目的非交集部分;其次在預測項目評分時引入時間衰減函數,結合遺忘曲線規律,對評分預測方法進行修正。兩組實驗通過MAE值的比較,得出IPTDCF算法在推薦準確性方面明顯優于傳統推薦算法的結論。在評分數據稀疏或用戶評分時間不同的情況下,更適合采用改進算法IPTDCF。
參考文獻參考文獻:
[1]張磊. 基于遺忘曲線的推薦算法研究[D].合肥:安徽理工大學,2014.
[2]孫智聰.基于時間上下文和屬性的個性化推薦研究[D].重慶:重慶大學,2015.
[3]胡偉健,滕飛,李靈芳,王歡.適應用戶興趣變化的改進型協同過濾算法[J].計算機應用.2016,36(8):20872091.
[4]孫光輝.基于時間效應和用戶興趣變化的改進推薦算法研究[D].北京:北京郵電大學,2014.
[5]孫光福,吳樂,劉淇,朱琛,陳恩紅.基于時序行為的協同過濾推薦算法[J].軟件學報,2013(11): 27212733.
[6]黃創光,印鑒,汪靜,劉玉葆,王甲海.不確定近鄰的協同過濾推薦算法[J].計算機學報,2010,33(8):13691377.
[7]孟祥武,劉樹棟,張玉潔,胡勛.社會化推薦系統研究[J].軟件學報,2015(6):13561372.
[8]RICCI F,ROKACH L, SHAPIRA B,et al.Recommender systems handbook[M].Springer,2011.
責任編輯(責任編輯:陳福時)