王詩淞,劉偉哲,孫雪蓮
(大連民族大學理學院,大連 116650)
現如今,隨著計算機硬軟件技術的高速發展,數據規模呈現爆發式增長的趨勢,帶來了嚴重的“信息超載”問題[1],而個性化推薦算法成為解決這一問題的主要方式。憑借著原理較為簡單、可解釋性較強等優點,協同過濾算法成為應用最廣泛、最成功的推薦算法[2]。其中最常用的三種協同過濾算法為基于用戶的協同過濾[3]、基于項目的協同過濾[4]、基于模型的協同過濾[5]。基于用戶的協同過濾推薦算法作為本文主要的研究算法,相似度計算作為其核心,其好壞直接影響著推薦結果。而在實際中,項目和用戶數量的龐大都會使評分矩陣變稀疏,從而影響推薦準確度。
為了解決上述問題,大量學者提出創新與改進。吳錦昆等[6]提出一種引入用戶差異因子的皮爾遜相似度計算方法,解決用戶在不同評價體系中存在偏差的問題。潘錦豐等[7]提出一種相似度修正參數并與基于用戶屬性特征向量相融合,以此改進相似度計算方法,解決用戶屬性存在偏差的問題。魏浩等[8]提出一種基于用戶與項目特征興趣的相似度算法,通過生成項目特征興趣矩陣提升推薦的準確率。李港[9]將用戶評分信息熵與改進的皮爾遜相似度計算方法相融合,形成一種新的相似度計算方法,提升了用戶之間相似度的精確性。
上述研究工作雖在一定程度上提高了相似度計算的準確性與推薦精度,但并不能很好地解決共同評分集合的數量差異、用戶評分數值差異、項目熱門度差異和用戶興趣隨時間因素變化差異的問題。因此,本文提出一種融合權重因子、修正因子與時間衰減因子的改進用戶相似度的協同過濾算法(IMPCOS-CF),以提升用戶相似度的準確率與推薦算法的性能。
余弦相似度(Cosine Similarity),也稱為余弦距離,它通過計算兩個向量之間的夾角對應的余弦值來衡量二者間差異的標準[10]。計算公式如式(1)所示:

Pearson 相關系數表示兩個隨機變量之間的相關程度,它的取值范圍為[-1,1],其絕對值越大,則兩個隨機變量之間的相關性就越強[11]。計算公式如式(2)所示:

修正余弦相似度(Adjust Cosine Similarity)在計算中考慮到評分偏向對評分所造成的影響與評分尺度[12],使得相似度度量更加合理。計算公式如式(3)所示:

上述三個公式中,sim(u,v)表示用戶u與用戶v 之間的相似度;ru,i表示用戶u對項目i的評分,rv,i表示用戶v對項目i的評分;Tu,v表示用戶u與用戶v的共同評分項目集合;表示項目i的平均評分;表示用戶u與用戶v對所有存在評分的項目的評分均值。
在使用傳統相似度計算方法時,首先需要找到用戶之間的共同評分項目集合,其數量影響著相似度度量的準確性。比如,有3 個用戶、5 個項目,他們對這5 個項目進行評分,評分尺度為10 分制度,具體評分如表1 所示,空白部分代表用戶未進行評分。

表1 用戶-項目評分表1
分別使用余弦相似度、修正余弦相似度、皮爾遜相關系數計算用戶A 與用戶B、用戶C 之間的相似度,具體結果如表2所示。

表2 三種相似度計算方法得到的結果1
皮爾遜相關系數的計算結果表明,用戶A與用戶B更為相似。但并非如此,通過表1可以看出,用戶A 與用戶B 的共同評分項僅有兩項,而用戶A 與用戶C 有四項,并且評分較為接近,所以用戶A 應與用戶C 更為相似,這是皮爾遜相關系數在計算相似度時不合理的地方。而余弦相似度在計算中結合了用戶所有評分項目,修正余弦相似度在計算中結合了用戶所有共同評分的評分均值,它們都考慮到了共同評分數量差異。因此,本文提出權重因子,將余弦相似度與修正余弦相似度相融合。具體公式如式(4)所示:

其中:

α的具體范圍為(0,1),其具體數值根據后續實驗結果進行選取。
在實際中,用戶喜歡某個項目的程度與其評分有關。但傳統的計算方法考慮的是兩個向量的趨勢相關性,忽略了不同用戶對相同項目的具體評分數值差異,導致結果缺乏準確性。
比如,有2 個用戶、5 個項目,他們對這5個項目進行評分,評分尺度為10 分制度,具體評分如表3所示。

表3 用戶-項目評分表2
根據上一小節,選取余弦相似度與修正余弦相似度分別計算用戶A 與用戶B 的相似度,具體結果如表4所示。

表4 不同相似度計算方法的結果2
根據表4 的結果,用戶A 與用戶B 的興趣十分相似。通過表3中具體評分數值來看,雖然他們都對5個項目進行了評分,但他們對于每個項目的評分數值都有很大差異。比如項目1,用戶B給出滿分10分,而用戶A只打了4分,這表明用戶B 對項目1 很感興趣,而用戶A 對它不是特別的滿意,所以二者的興趣點有很大差異。
在使用余弦相似度與修正余弦相似度進行用戶的相似度計算時,只考慮了用戶的評分記錄,忽略了用戶的具體評分數值。因此,本文提出評分數值差異修正因子,具體公式如式(7)所示:

式中:fac1(u,v)表示衡量用戶u與用戶v之間具體評分數值差異的修正因子;ru,i表示用戶u對項目i的評分,rv,i為用戶v對項目i的評分;Tu,v為用戶u與用戶v的所有已評分項目中的共同該項目集合;n為用戶u與用戶v的共同評分項目集合的數量。當修正因子越小時,兩個用戶之間的評分數值差距越大。
傳統的相似度計算方法對任何一個項目的權重值是一致的,這種方法不能完全體現出用戶之間的相似性[13],本文提出項目熱門度差異的修正因子,具體公式如式(8)所示:

其中,fac2(i)為衡量項目i的熱門度差異的修正因子;N(i)為對項目i有過評分記錄的所有用戶個數,即項目i的評分數量;all為用戶-項目評分矩陣的所有用戶數量。
用戶的興趣偏好會受到時間因素的影響[14]。在計算相似度時,將時間因素考慮至其中,捕捉用戶的興趣偏好的動態變化,從而提升相似度計算的準確性。本文提出時間衰減因子,函數如式(9)所示:

其中,λ=T0-1為衰減率,即為用戶的興趣偏好的衰減速度,在實際應用中,用戶的興趣偏好變化是通過調整λ的大小來實現的,若用戶的興趣偏好改變速度較快,則通過增大λ來適應。
綜合上述小節,將修正因子、時間衰減因子分別引入式(4)中,得到本文提出的新的用戶相似度計算方法,如式(10)所示:

其中:

Tu,v表示用戶u與用戶v的共同評分項目集合;tu,i與tv,i分別表示用戶u與用戶v對項目i的評價時間。tu,v越小,兩位用戶對于同一個項目的評分時間就越接近,其相似性就越高。
本文仿真實驗采用MovieLens-1M 數據集[15],它是6040 名用戶對3952 部電影約一百萬條評分數據,每名用戶至少有20 個評分。本文通過交叉驗證法進行實驗,訓練集選取其中80%的數據,測試集選取其中20%的數據。
實驗對于算法的預測評分準確性所采用的評價標準為平均絕對誤差MAE,如式(15)所示:

式中:Rtest表示測試集;Ru,i表示用戶u對項目i的評分;表示用戶u對項目i的預測評分。平均絕對誤差值越小,說明算法的預測準確度越高。
算法的分類評分準確性所采用的評價標準為召回率Reacll,如式(16)所示:

其中,R(u)為按照用戶u在訓練集上的行為預測出的推薦列表,T(u)為用戶u在測試集上的實際的物品列表。值越高,說明算法的分類準確性越高。
步驟1:根據數據集中用戶歷史行為信息構建用戶-項目評分矩陣、用戶-項目評分時間信息矩陣。
步驟2:計算目標用戶的時間衰減因子、評分數值差異修正因子、每個項目的熱門度差異的修正因子。
步驟3:通過改進的相似度計算方法計算目標用戶與其他用戶的評分相似度。
步驟4:將步驟3 中的評分相似度結果進行降序排列,將前N名用戶集合作為該用戶的最近鄰集合。
步驟5:預測目標用戶尚未進行評分的項目的評分。
步驟6:根據得到的評分預測結果計算MAE值。
3.3.1 實驗一:相關參數確定
首先,選取最優的最近鄰用戶集合數量N,分別使用余弦相似度(COS)、修正余弦相似度(ACOS)、引入修正因子的余弦相似度(NEWCOS)、引入修正因子的修正余弦相似度(NEWACOS)的協同過濾算法在MovieLens-1M數據集上進行仿真對比實驗,最近鄰用戶集數量N取值范圍為[10,80],步長為10。實驗結果如圖1所示。

圖1 引入修正因子后的MAE值對比
由圖1 可知,當N=30 時,NEWCOS 與NEWACOS 計算出的MAE值最小,因此在后續實驗中N取30。繼續使用NEWCOS 與NEWACOS 進行實驗,λ的取值范圍為[0.01,0.1],步長設置為0.01,鄰居數N取30,實驗結果如圖2所示。
通過圖2,當λ=0.04 時,NEWCOS 與NEWA-COS 的的召回率Reacll值均達到最大。因此,選取λ=0.04 作為時間衰減因子,以達到最好的推薦效果。

圖2 不同λ取值下的召回率
通過使用引入權重因子、修正因子、時間衰減的相似度計算方法的協同過濾算法(IMPCOS-CF)在數據集上進行實驗,α 的取值范圍為[0,1],步長設置為0.1,鄰居數N取30,時間衰減因子λ取0.04,實驗結果如圖3所示。

圖3 不同α取值下的MAE值
由圖3 可知,當α=0.4 時,MAE值最低,其中當α在[0.1,0.4]時,MAE值不斷降低,之后隨著α的不斷增加,MAE值逐漸升高。因此當權重因子α=0.4時,基于IMPCOS-CF 得到的相似度度量的準確性最高,推薦算法的性能最優。
3.3.2 實驗二:與其他算法對比
根據上述實驗確定時間衰減因子、權重因子后,為了進一步驗證本文所提出算法的性能,在本實驗條件環境下將其與傳統基于用戶的協同過濾算法(User-CF)、基于袁正午[16]提出的基于多層次混合相似度的協同過濾推薦算法(LEVUser-CF)進行對比實驗,實驗結果如圖4所示。
由圖4可知,隨著最近鄰用戶集合數量N的增加,三種算法的MAE值均呈現出減小并趨于穩定的趨勢。不僅如此,IMPCOS-CF的MAE值低于其他兩種算法。當N為30 時,IMPCOS-CF的MAE值達到最低;當N為50時,LEVUser-CF的MAE值略高于IMPCOS-CF算法。IMPCOS-CF相比User-CF,其MAE值平均降低了5.43%;相比于LEVUSer-CF,其MAE值平均降低了0.082%,說明本IMPCOS-CF 的用戶評分預測準確性更高,算法的性能更強。

圖4 不同算法的MAE值對比
針對基于用戶的協同過濾算法在相似度計算時的不足之處,本文引入權重因子、針對用戶評分數值差異與項目熱門度差異的修正因子、時間衰減因子對傳統的余弦相似度與修正余弦相似度進行融合與改進;并在MovieLens 數據集上進行仿真實驗,通過與傳統協同過濾算法、其他改進的協同過濾算法進行對比,結果表明本文提出的IMPCOS-CF 算法能有效提高推薦算法的性能。