馬震
(西安郵電大學現代郵政學院,陜西西安 710061)
隨著電商系統和互聯網技術的發展,網絡中的信息量爆炸式增長,出現所謂的信息迷航、信息過載現象[1-2]。面對網絡中海量、多源、異構的用戶行為數據,推薦算法效率是影響推薦性能提高的瓶頸之一[3],其中的數據稀疏問題是最亟需解決的難題[4]。
為了解決數據稀疏問題,文獻[5-7]通過聚類算法從稀疏評分矩陣中提取密集評分模塊進行協同過濾。文獻[8-9]在用戶相似度計算的過程中結合項目類型標簽來解決因數據稀疏而無法計算相似度的問題。矩陣分解算法由于在解決數據稀疏問題上的高性能而被許多學者應用于推薦系統中。文獻[10-12]通過協同過濾與矩陣分解算法的結合,以減小數據稀疏對于推薦性能的影響。
基于前人的研究,針對數據稀疏以及推薦性能較低的問題,提出一種融合時間因素的隱語義模型推薦算法,該算法考慮時間推移帶給用戶喜好的變化,通過協同過濾算法與隱語義模型的結合提高推薦算法的準確性與各項性能。
隨著研究的不斷深入,許多學者發現傳統推薦算法只利用了用戶對項目的評分數據,忽略了許多可利用的相關信息數據,而其中的時間標簽信息作為一種重要的上下文信息[13],對推薦準確度的影響最為顯著。因為用戶興趣偏好會隨著時間的推移而產生變化,早期用戶的交互行為相較于近期對于用戶偏好的預測會占較低的權重。
為避免用戶興趣偏好隨時間推移而變化所帶來的誤差。文獻[14]提出一種基于時序漂移的潛在因子模型推薦算法,通過引入時間因子平衡不同時期用戶行為的影響。文獻[15]將時間權重融入門控循環單元模型以提高用戶興趣預測的準確性。文獻[16]結合艾賓浩斯遺忘曲線與基于模糊聚類的協同過濾算法以降低時間因素的影響。
以上幾種融合時間因素的推薦算法都考慮了時間推移給用戶興趣偏好造成的差異,但存在著計算量大、算法執行效率不高等不足?;诖?,提出以指數時間函數代表時間因素的影響,融入隱語義模型的用戶偏好向量中,在不增加矩陣維度的條件下引入時間偏置項,將評分矩陣轉換為稠密矩陣的同時避免了時間因素對傳統隱語義模型帶來的誤差。
給定樣本數據集,每條數據(u,i,r,t)表示用戶u對項目i的評分為r,t則表示用戶u給項目i評分時的時間標簽?;跁r間標簽信息和評分信息挖掘出用戶與項目之間的隱含特征,預測用戶對未交互項目的評分,進而生成推薦列表。
融合時間因素的隱語義模型推薦算法主要包括融合時間因素的改進隱語義模型和協同過濾推薦兩個模塊,模塊一從樣本數據中獲取時間標簽信息得出用戶與項目交互的時間跨度,基于指數時間函數構造時間偏置項引入隱語義模型中,預測評分矩陣中空缺評分;模塊二則是在填補后的稠密評分矩陣中通過皮爾森相關系數尋找相似用戶集,為目標用戶生成推薦項目列表。算法流程圖如圖1所示。

圖1 算法流程圖
隱語義模型是Simon Funk 在矩陣分解技術的基礎上,通過梯度下降法改進而來的,核心思想是通過用戶項目之間的隱含特征聯系二者,挖掘分析用戶歷史行為得到其潛在興趣偏好。從矩陣分解的角度來看,隱語義模型是將評分矩陣R分解為兩個低維矩陣的乘積,用戶u對項目i的評分可表示為:
其中,k表示隱語義模型中隱特征個數。
但在實際應用中,某些用戶總會給出比其他用戶偏高或偏低的分數,某些項目總是會得到偏高或偏低的評分,因此可以在評分預測模型中加入偏置項,以降低對于評分預測的影響。同時,由于用戶評分數據的稀疏性較高,隱式數據遠多于顯式數據,因此將象征用戶隱式興趣的特征向量加入預測公式中的用戶偏好矩陣中,此時預測評分為:
通常,時間推移會改變用戶偏好,同一用戶早期感興趣的項目到近期可能興趣度會產生一定量的衰減,因此用戶近期交互過的項目相較于早期會對用戶的興趣偏好有更大的影響。例如用戶早期喜歡動作片,但近期喜歡上了懸疑片,所以早期對于動作片打的高評分會導致推薦列表中會存在很多動作片,為用戶推薦一些已經不感興趣的項目。因此,將評分數據中的時間標簽加以利用,使用指數函數表示隱語義模型中用戶特征矩陣中的時間偏置項,時間跨度越大的用戶交互行為時間偏置量越小,定義如下:
其中,λ表示時間衰減速率,可動態調節;t表示用戶和物品交互的時間跨度;tu,i表示用戶u與項目i的交互時間;tu表示用戶u的最早交互時間;f(t)是時間偏置量,取值范圍是[1/2,1)。
在考慮了時間因素對于隱語義模型中用戶偏好的影響后,將基于指數時間函數(3)的時間偏置項加入評分預測公式,用戶u對于項目i的評分計算公式可表示為:
其損失函數為:
利用隨機梯度下降法最小化上述損失函數,分別對各參數求偏導可得到最速下降方向,進而求得各參數的迭代公式,不斷迭代至參數收斂,迭代公式如式(6)所示:
其中:
將原評分矩陣轉變為稠密矩陣后,計算出目標用戶與其他用戶之間的相似度,然后基于相似度由高到低選取前k名用戶作為最近鄰集合,將最近鄰集合中用戶打出高評分且目標用戶沒有交互過的項目推薦給目標用戶。采用皮爾森相關系數(Pearson Correlational Coefficient,PCC)求出目標用戶的相似用戶集合,其計算公式如下:
其中,rui和rvi分別表示用戶u和v對項目i的評分,分別表示用戶u和v所有評分的均值。根據相似度排序,找到與目標用戶最為相似的n個用戶,根據這n個用戶有過交互的項目為目標用戶進行推薦。
實驗采用的數據集為Movielens1M 數據集,其中包含了6 040 名用戶對3 952 部電影的1 000 209 條評分記錄以及用戶評分時的時間戳,評分為1~5 分,數據稀疏度為:1-1 000 209/(6 040×3 952)=0.958 1。實驗環境為PC 機,Windows10 操作系統;編程語言為Python3.8。在實驗中將數據集劃分為兩部分:80%作為訓練數據集用于訓練CF_TSVD++模型,剩余的20%作為測試數據集。
文中共使用到五種指標來評估所提算法。采用平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Square Error,RMSE)評估算法預測準確性,值越小說明算法的預測準確度越高。采用準確率(Precision)、召回率(Recall)和綜合F值(FMeasure)評估算法推薦準確性,Precision 表示用戶對所推薦商品感興趣的概率,Recall 表示用戶感興趣的商品被推薦的概率,F值則是二者的調和平均值,能更加綜合地反映推薦算法的各項性能,三個指標越高說明推薦的質量越好。五個指標計算如式(9)所示:
其中,rij是真實評分,prij是預測評分,| hisu|表示正確推薦給用戶u的相關項目的數量,| recsetu|表示推薦物品總數,| tentsetu|表示理論上最大的命中數量。
4.3.1 參數分析
該文主要分析迭代次數及時間衰減速率對算法性能的影響。在實驗中保持其他參數不變,設置時間衰減速率λ分別為0.4、0.5、0.6,觀察其隨迭代次數的變化對MAE 和RMSE 值的影響,分布曲線如圖2-3 所示。

圖2 時間衰減速率對RMSE的影響

圖3 時間衰減速率對MAE的影響
由圖2、3 可知,時間衰減速率λ取值分別為0.4、0.5 和0.6 時,算法的MAE 值和RMSE 值均隨著迭代次數的增加在逐漸減小。當迭代次數小于30 時,兩項指標減小速度較快,在迭代次數達到30 左右下降趨勢趨于穩定,迭代次數大于30 時減小速度越來越慢,說明當迭代次數為30 時算法性能趨于穩定。當迭代次數相同時,時間衰減速率λ為0.5 時算法的兩項指標均高于λ為0.4 和0.6 的值,因此,當λ=0.5 時,算法的性能達到最優。
4.3.2 推薦準確性分析
為評價融合時間因素的隱語義模型推薦算法(記為CF_TSVD++)的推薦性能,計算其在近鄰個數k取不同數值時的準確率、召回率以及綜合F值,將這三項指標與傳統的基于用戶的協同過濾算法(記為UserCF)以及基于隱語義模型的推薦算法(記為LFM)進行比較,實驗結果如圖4-6 所示。

圖4 不同算法的準確率曲線圖

圖5 不同算法的召回率曲線圖
由圖4、5 可知,隨著近鄰個數k的增加,三種算法的準確率、召回率都呈增長趨勢,CF_TSVD++的整體增長速度與幅度高于其他兩種算法;當近鄰個數k相同時,CF_TSVD++的兩項性能指標都明顯高于其他兩種算法。
圖6 給出三種算法的綜合F值的柱狀對比圖,三種算法的綜合F值都隨著k的增加而增加,當k相同時,CF_TSVD++的綜合推薦性能明顯高于其他兩種算法。通過上述實驗結果可以得出,CF_TSVD++與UserCF 以及LFM 相比,在準確率、召回率以及綜合F值三項指標上均優于其他兩種算法,說明在隱語義模型的基礎上融合時間因素能在有效解決數據稀疏問題的同時提高評分預測準確性,進而提高推薦系統的推薦性能。

圖6 不同算法的綜合F值對比
文中在改進的隱語義模型中引入時間偏置項,避免時間因素給用戶評分預測造成的誤差,該模型用指數時間函數表示時間偏置項加入用戶偏好向量中,在填補稀疏評分矩陣的同時提高預測精準度,最后基于鄰域協同過濾求出目標用戶的推薦項目列表。采用Movielens1M 數據集進行實驗,結果表明:1)隱語義模型能夠在保證初始數據完整性的情況下填補空缺評分,有效解決了數據稀疏問題;2)引入時間偏置項避免了時間推移造成的用戶偏好誤差,提高了評分預測的準確度;3)該算法與UserCF 和LFM相比能夠有效解決數據稀疏、推薦精準度較低問題,提高推薦系統的推薦質量。
下一步工作的改進思路主要是基于用戶畫像理論構建動態用戶畫像模型,更加精準地預測用戶興趣偏好的變化趨勢,進一步提升推薦效果和算法性能。