鄭英麗,王 新,馬 倩,解雪琴
(云南民族大學 數(shù)學與計算機科學學院,云南 昆明 650500)
為了緩解信息超載問題,以及滿足現(xiàn)在大量的互聯(lián)網(wǎng)用戶的個性化需求,基于用戶個性化的推薦算法應運而生,并且成為一個熱門的研究課題.近幾年來,推薦系統(tǒng)作為解決信息超載以及個性化推薦問題的方法之一,受到大量學者的關注和研究.推薦系統(tǒng)一般分為協(xié)同過濾推薦、內(nèi)容過濾推薦和社會化推薦.
通常,在社交環(huán)境下,經(jīng)典的協(xié)同過濾算法(CF)[1-4]是依據(jù)用戶對項目的歷史評分信息來預測用戶的喜好,然而此算法尚未考慮用戶的社交信息,推薦系統(tǒng)的準確率難以得到提高.一般情況下,許多社會化推薦算法通過引入用戶與用戶之間的相關信息來提高推薦的性能.于是,許多有趣的推薦算法被改進并提出[5-13].文獻[5-7]使用矩陣分解(MF)的方法來預測用戶評分.文獻[5]提出概率矩陣分解(PMF)方法,該算法在非常稀疏和不平衡的數(shù)據(jù)集上表現(xiàn)良好.文獻[6]在MF的框架下將評分矩陣中的缺失值填入其中,降低預測的誤差.文獻[7]在CF算法的基礎上,將評分矩陣分解成2個非負矩陣,以此來預測用戶的喜好,他們提出的方法在預測準確性上得到提高.文獻[8-12]在MF的基礎上增加用戶的信任信息,使推薦準確率得到提升.文獻[14]在文獻[9]的基礎上將推薦對象間的關聯(lián)關系結(jié)合到推薦系統(tǒng)中,對算法做了改進,他們的算法在分類準確率上取得了更好的效果.文獻[15]在推薦系統(tǒng)中同時引入了對象間關聯(lián)關系和用戶間影響力這兩個因素,實驗表明他們提出的方法提高了推薦準確率.文獻[16]提出了一種混合型的推薦算法,將用戶的信任網(wǎng)絡和推薦項目間的屬性特征結(jié)合在一起做推薦,提高了推薦精度和評分誤差.值得注意的是,在文獻[5-12]尚未考慮用戶相似度信息,因此這成為本文研究的一個動機.
受到上述討論的啟發(fā),考慮到目前CF算法存在的一些問題,例如數(shù)據(jù)稀疏性、冷啟動和精確性.此外,用戶之間的相似度信息也是影響用戶評分的一個關鍵性因素.結(jié)合這些原因,本文主要通過結(jié)合用戶間相似度和評分信息來做矩陣分解,以改善CF算法中存在的3個問題,從而提高推薦系統(tǒng)的預測準確性.
為了對評分信息進行建模,本文使用PMF方法作為推薦框架.
如表1是一個簡單的用戶-項目評分矩陣R,ui表示用戶,vj表示項目,為了對表中的缺失值(即評分為0的值)進行預測,可以使用矩陣分解的方法,將矩陣R分解為2個低維矩陣U和V,U表示用戶潛在特征矩陣,V表示項目潛在特征矩陣.
表1 用戶-項目評分矩陣
如果使用3維特征矩陣來展現(xiàn)矩陣分解的效果,將得到分解后的U,V:
通過得到的分解后的矩陣對R中的缺失值進行預測,得到R的預測矩陣R′.
設矩陣R中有m個用戶,n個推薦項目,且評分限制在[0,1]中.實際上,許多推薦系統(tǒng)在表示用戶對項目的評分信息時都是使用從1到Rmax的整數(shù).本文使用函數(shù)f(x) =x/Rmax將評分[1,Rmax]映射到區(qū)間[0,1]上.用戶ui對項目vj的評分表示為Rij,分解得到用戶相關的l-維特征矩陣表示為U∈Rl×m,項目相關的l-維特征矩陣表示為V∈Rl×n,其中列向量Ui表示用戶潛在特征向量,Vj分別表示項目潛在特征向量.矩陣R的條件概率分布定義如下:
(1)
(2)
由貝葉斯推斷,可以得到U和V的聯(lián)合后驗概率分布為:
(3)
相似度分析分為2類:①用戶相似度度量,即度量兩個用戶同時感興趣的物品數(shù)量,數(shù)目越高,相似度越高.②物品相似度度量,即對兩個物品同時感興趣的用戶數(shù)量,同樣的,數(shù)目越大,相似度越高.相似度的計算方法有很多,包括歐幾里得方法、余弦相似度方法、Pearson相關系數(shù)方法.余弦相似度公式如下:
(4)
其中,rx,i,ry,i分別表示用戶x和y對項目i的評分值.考慮到數(shù)據(jù)的稀疏性,會存在很多零值,且公式(4)計算的相似度對數(shù)值比較不敏感,容易導致結(jié)果的誤差,因此本文作者采用以下改進的相似度計算公式:
(5)
下面將利用上述2個相似度公式分別對表1中給出的評分信息來計算用戶之間的相似度值,結(jié)果如表2、表3所示.
表2 基于公式(4)的用戶相似度矩陣
表3 基于公式(5)的用戶相似度矩陣
為了研究用戶間的相關性對評分預測的影響,以及怎樣利用用戶相似度信息來提高推薦算法的性能,現(xiàn)在引入結(jié)合用戶相似度的社會化推薦方法.
這里用戶間的相似度可以通過前面介紹的相似度公式(5)進行計算.使用的概率圖模型如圖1所示.
通過分解相似度矩陣S,可以得到表示用戶之間相關關系的低維潛在特征矩陣U和A,用戶ui和uk在圖G上的相似權重sik,是求解特征向量Ui和Ak的重要元素,定義S的后驗概率分布為:
(6)
此時,結(jié)合矩陣S和矩陣R進行聯(lián)合分解,對有相關關系的項目進行推薦,其概率模型如圖2所示.U,V,A的聯(lián)合后驗概率分布表示為:
(7)
對(7)式兩邊取對數(shù)后可以得到:
(8)
其中C是不依賴參數(shù)的常量.
求固定參數(shù)時U,V,A的極大后驗概率,等價于使下面帶正則項的誤差平方和函數(shù)最小化:
(9)
(10)
(11)
(12)
其中:g′(x)=g(x)(1-g(x))是邏輯函數(shù)g(x)的導數(shù).
通過實驗對比結(jié)合用戶相似度的概率矩陣分解方法(SRUS)和經(jīng)典PMF方法在推薦效果上的差異.
采用movielens latest數(shù)據(jù)集,數(shù)據(jù)集相關信息如表4所示:
表4 數(shù)據(jù)集描述
推薦系統(tǒng)中常用的評估指標可以分為2大類,預測準確率指標和分類準確度指標.本文采用MAE和RMSE這2個指標進行評估,它們的計算公式如下:
(13)
(14)
上述MAE和RMSE都是值越小,預測越準確,即推薦效果越好.
本文提出的社會化推薦算法的主要優(yōu)點是結(jié)合用戶相似度信息,在SRUS方法中,參數(shù)λS平衡了矩陣S和矩陣R之間的關系,當λS=0時,在矩陣分解的過程中就只考慮矩陣R的信息,當λS=inf時,只根據(jù)用戶相似度來預測用戶的評分,其它情況下,都是結(jié)合矩陣R和矩陣S來做評分預測的.圖3給出了在特征維數(shù)l=5時,參數(shù)λS對評分預測的影響結(jié)果.
從圖3可以清晰地看出當特征維數(shù)l=5時,評估指標MAE和RMSE都分別取得最小值1.025 7和1.069 3時,λS都為10.
圖3 實驗參數(shù)λS的值對實驗結(jié)果的影響(l=5)
為了驗證本文提出的SRUS算法在性能上的提高,與傳統(tǒng)PMF方法作比較,由3.3節(jié)的實驗結(jié)果,這里λS=10.在表5中給出了λS=10,特征維數(shù)分別為5和10的情況下的實驗結(jié)果.
表5 實驗結(jié)果比較(λS=10)
由表5可以得到,當特征維度l=5時,本文提出的SRUS方法較PMF方法在指標MAE上降低了1.74%,在RMSE上降低了6.20%.同樣的,當l=10時,本文提出的SRUS方法較PMF方法在指標MAE上降低了5.69%,在RMSE上降低了12.12%.
同時,圖4也給出了相對應的實驗結(jié)果比較圖,分別比較特征維數(shù)l=5(圖4(a)、(b))和l=10(圖4(c)、(d))情況下評估指標MAE和RMSE的變化情況.
由表5中的數(shù)據(jù)以及對數(shù)據(jù)的分析,結(jié)合圖4的實驗結(jié)果比較,可以很清晰直觀的看出本文提出的SRUS方法較傳統(tǒng)PMF方法在指標MAE和RMSE上都得到了降低,有效地提升預測準確率,這也驗證本文方法的有效性及可行性.
本文提出結(jié)合用戶相似度的社會化推薦算法,該算法同時考慮用戶-項目評分信息和用戶相似度信息,并將這2個信息通過PMF模型結(jié)合在同一個框架下.在公開的數(shù)據(jù)集movieslens latest dataset上進行實驗,實驗結(jié)果表明用戶相似度對評分預測也起到一定作用,同時也驗證在稀疏數(shù)據(jù)集上所提出的方法提升預測的準確率.將兩種因素結(jié)合在同一個框架下,通過調(diào)整參數(shù)的取值,可以適應不同的復雜網(wǎng)絡類型,同時對算法復雜度分析,本算法可以擴展到更大的數(shù)據(jù)集上.因此本文提出的方法在數(shù)據(jù)稀疏性、用戶冷啟動和預測準確性等方面具有較好的效果.
雖然該方法對經(jīng)典CF算法存在的一些問題有所改善,在預測準確性方面也有一定的效果,但使用的相似度計算公式是對稱的,并不能準確的表達出兩兩用戶之間喜好的區(qū)別,而事實上兩兩用戶的相似度是不一樣的,如果對相似度計算采用非對稱的方法,無疑會使預測評分更加準確,這也是下一步研究的重點.