王 運,倪 靜
(上海理工大學 管理學院,上海 200093)
近年來,隨著互聯網的迅猛發展,人們面臨的信息量呈指數級增長,個性化推薦算法在人們的日常生活中擁有越來越重要的地位.傳統的推薦算法主要有協同過濾推薦算法[1]、基于內容的推薦算法[2]、基于圖模型的推薦算法[3]等,這些推薦算法利用用戶與物品數據取得了一定的推薦效果,如文獻[4]利用用戶及物品數據計算用戶的偏好模型,在計算出用戶之間的偏好相似度后進行協同過濾推薦;文獻[5]將用戶與物品之間的關系進行圖形化描述,通過計算目標用戶與物品之間連邊的相關性大小進行推薦;文獻[6]通過用戶之間的社交關系數據計算用戶之間的相似度值,進而根據所得用戶相似度值進行推薦.但是這些推薦算法也面臨著許多問題,如用戶數據稀疏性問題.當推薦系統中出現新用戶時更為顯著,由于用戶數據的稀疏性,計算所得用戶相似度值不夠準確或者根本無法計算出新用戶與其他用戶之間的相似度,最終導致算法的評分預測準確性有所降低.
同時,在2006年的Netflix競賽中,有人將矩陣分解技術應用到用戶電影評分矩陣中,并且提升了評分預測的準確性[7].從此關于矩陣分解的推薦算法研究在不斷增多,如考慮到用戶評分習慣的不同,有專家學者提出了BiasSVD算法,通過在矩陣分解中融入用戶或者物品的偏置因素提高了評分預測準確性[8];由于用戶的隱私反饋也會對推薦算法產生影響,文獻[9]將基于領域的推薦算法和BiasSVD進行融合,提出了SVD++;文獻[10]提出概率矩陣分解模型,在矩陣分解的過程中融入概率論相關知識,具有較好的可解釋性和評分預測準確性.
基于上述研究成果,本文提出了融合用戶偏好和物品相似度的概率矩陣分解推薦算法UPIS-PMF(Probability Matrix Factorization Recommendation Algorithm Combining User Preferences and Item Similarity),該算法在概率矩陣分解技術處理用戶物品評分矩陣的同時融入了用戶偏好信息及物品信息,通過用戶信息及物品信息計算用戶相似度矩陣及物品相似度矩陣,從而更好的預測出用戶特征矩陣及物品特征矩陣,最終提高評分預測的準確性.Movielens數據集中的實驗表明該算法有效的緩解了用戶數據稀疏性問題,在評分預測準確性方面相比傳統推薦算法有一定的提升.
由上文可知,傳統推薦算法在應用的過程中經常面臨數據稀疏的缺點,而矩陣分解技術可以緩解數據稀疏性問題,并提高評分預測的準確性.矩陣分解技術主要分為SVD矩陣分解(Sigular Value Decomposition)、概率矩陣分解PMF(Probability Matrix Factorization)和非負矩陣分解NMF(Non-negative Matrix Factorization).在概率矩陣分解模型中融入用戶信息可以提高分解后用戶特征矩陣的準確度,如文獻[11]將用戶社交信息融入概率矩陣分解模型中,通過用戶社交信息可以計算出用戶的社交相似度,并且能夠提高矩陣分解后用戶特征矩陣的準確度,進而提高評分預測準確性;文獻[12]通過整合社交網絡中的用戶信任關系得到用戶信任矩陣,將用戶信任矩陣融入概率矩陣分解模型中提高了矩陣分解的準確度和評分預測準確性.
通常而言,計算用戶相似度不僅可以利用社交信息或者信任信息,根據用戶的偏好信息也可以計算出相應的用戶相似度值,如文獻[13]正是利用用戶評分數據及物品數據計算出用戶的偏好信息,再根據用戶偏好信息計算用戶之間的相似度值,最后根據用戶相似度進行協同過濾推薦,并通過實驗證明了這種方法很有效.所以,當用戶數據中不包含社交及信任等信息時,可以根據用戶偏好尋找用戶之間的關系并將其融入概率矩陣分解模型中,以提高分解后用戶特征矩陣的準確度.另一方面,物品信息通常包括物品標簽數據及物品流行度數據等,根據這些數據可以計算出物品之間的相似度值,將物品相似度矩陣融入概率矩陣分解模型中也會提高物品特征矩陣的準確度.
因此,本文利用概率矩陣分解技術在處理用戶物品評分矩陣時的優勢,同時尋找用戶之間的關系和物品之間的關系,將用戶相似度矩陣和物品相似度矩陣共同融入概率矩陣分解模型,可以從用戶及物品兩個角度提高對應特征矩陣的準確度,最終提高評分預測的準確性.
基于概率矩陣分解的推薦算法是在傳統基于矩陣分解推薦算法的基礎上融合概率論相關知識,從概率的角度出發解釋與計算矩陣分解技術,使得算法的可解釋性得到了提升,同時評分預測準確性也有所提高.
如表1所示為本文算法所用符號及對應解釋.

表1 數學符號
Table 1 Mathematical notations

符 號解 釋M、N用戶集合、物品集合UMK、VNK用戶特征矩陣、物品特征矩陣Ui用戶i的特征矩陣Vj物品j的特征矩陣Mi用戶i的相似用戶集合Nj物品j的相似物品集合Wl,i用戶l與用i的相似度Sk,j物品k與物品j的相似度Ri,j用戶i對物品j的真實評分^Ri,j用戶i對物品j的預測評分W、S用戶相似度矩陣、物品相似度矩陣λU、λV、λW、λSU、V、W、S的正則化系數Ii,j用戶i對物品j有評分時為1,否則為0
(1)

(2)
(3)
由貝葉斯公式可得U與V的概率分布函數如公式(4)所示:
p(U,V|R)∝p(U,V,R)=p(R|U,V)p(U)p(V)
(4)
最大化公式(4)可得公式(5)所示目標函數:
(5)

根據本文前幾節可知,將概率矩陣分解模型應用在推薦系統的用戶物品評分矩陣中會有顯著的效果,在評分預測準確性方面優于傳統推薦算法.同時,對目標矩陣進行矩陣分解會形成用戶特征矩陣和物品特征矩陣,如果這兩個特征矩陣的值更為準確,最終的評分預測準確性也會相應提高.近幾年,有許多專家學者從用戶角度出發,如利用用戶社交信息,用戶信任信息等,通過用戶的相關數據計算用戶之間的相似度,將相似度矩陣融入概率矩陣分解模型中進而可以提高用戶特征矩陣的準確度,另一方面,如果可以找到物品之間的關系,將相應的物品相似度矩陣融入概率矩陣分解模型中,則自然也可以提高物品特征矩陣的準確度.
如圖1為UPIS-PMF算法模型示意圖.

圖1 UPIS-PMF算法模型示意圖Fig.1 Schematic diagram of UPIS-PMF algorithm model
圖1中,用戶i的特征向量受到相似用戶l∈Mi的影響,物品j的特征向量受到相似物品k∈Nj的影響,在本文的UPIS-PMF算法中,可以利用用戶偏好數據計算出用戶之間的相似度,利用物品標簽關聯度和物品流行度數據計算物品之間的相似度,根據修正后的用戶向量和物品向量計算出的用戶物品評分會更加準確.
在推薦系統中,用戶對許多物品存在評分行為,而物品通常帶有標簽屬性,根據評分數據及物品標簽數據可以計算出用戶對標簽的評分,即為用戶偏好,如果用戶對某一標簽有多次評分,則取為平均值.
對于用戶i與用戶l,有公式(6)所示用戶偏好相似度計算公式:
(6)
公式(6)中,t∈Ti∩Tl為用戶i與用戶l的共同標簽評分集合,ri,t、rl,t分別為用戶i、用戶l對標簽t的評分,該公式考慮到了用戶評分偏好對結果的影響,將標簽評分與平均評分的差值作為修正后的評分參與計算,最終計算出的相似度會更為準確.
由于用戶的特征受到相似用戶的影響,則對于用戶i,有公式(7)所示公式:
(7)
將公式(7)以矩陣形式進行描述可轉化為公式(8)所述形式:
(8)
(9)
所以,融合用戶偏好相似度的用戶潛在特征向量的概率分布如公式(10)所示:
(10)
在研究推薦算法的道路中,許多專家學者都專注于用戶角度,利用用戶之間的關系進行推薦或者評分預測,而物品之間也存在一定的關系,將物品關系融入推薦算法也可以提高評分預測準確性.
在推薦系統中,物品通常具有標簽關聯度數據及物品流行度數據等,標簽關聯度即為物品與標簽之間的關聯程度,物品流行度指的是物品流行程度,比如淘寶中物品的點贊數量、豆瓣電影評分等.如果兩個物品的標簽關聯度數據很相似,那么這兩個物品的相似度會很高,同時,相似物品的流行程度也會很接近.
令物品j與物品k對標簽t的關聯度數據分別為realte(j,t)、realte(k,t),則對于這兩個物品有公式(11)所示物品標簽相似度計算公式:
(11)
公式(11)中,Tk∩Tj為物品k與物品j的共同標簽集合.同時,推薦系統中的物品通常具有流行程度,且流行度可以進行數字量化表示,令物品j與物品k的流行度分別為popj和popk,則物品j與物品k關于流行度的相似度計算公式如公式(12)所示:
(12)
由于兩個物品的流行度僅為單獨的數字,沒有共同部分,所以不能采用類似公式(11)的公式,而是采用公式(12)這種指數函數形式,同時,考慮到兩個流行度都很高的物品流行度差值也可能很高,如點贊數都是幾十萬級別,采用了相對流行的計算方式,將流行度差值的絕對值與最大流行度相除作為指數函數的自變量,使得相似度值計算結果更準確.
利用公式(11)與公式(12)所得相似度值可以計算物品的綜合相似度,計算公式如公式(13)所示:
Sk,j=β*sim(k,j)pop*sim(k,j)tag
(13)
公式(13)中,β為參數,用以調整標簽相似度與流行度相似度乘積對結果的影響,采用公式(13)而不是傳統加權的方式,可以最大限度的保證只有物品的標簽數據相似且流行度相似時最終的相似度值才會很高.
同4.2,對于物品Vj,有公式(14):
(14)
(15)
所以,融合物品相似度的物品潛在特征向量的概率分布如公式(16)所示:
(16)
由4.1、4.2及4.3可知,融合用戶偏好相似度矩陣、物品相似度矩陣和概率矩陣分解模型可得如公式(17)所示后驗概率公式:
(17)
最大化上述概率時,可得如公式(18)所示目標函數:
(18)
(19)
(20)
對Ui與Vj進行梯度下降法迭代時滿足公式(21)及公式(22):
(21)
(22)
公式(21)與公式(22)中,α為學習速率,用以控制用戶特征向量與物品特征向量在每次迭代時取值變化的大小,當迭代結束時即可得到相應用戶特征矩陣和物品特征矩陣,也可預測出任何用戶對任何物品的評分.
本文的算法主要分為輸入輸出兩步:
輸入:用戶物品評分矩陣R、用戶和物品特征矩陣的維度K、物品標簽屬性數據T1、物品標簽關聯度矩陣T2、物品流行度矩陣P、算法最大迭代次數maxepoch、正則化系數λ、物品相似度調和系數β、用戶偏好相似度的正則化系數λW、物品相似度的正則化系數λS、學習速率α,讀入總批次num_batches及每批讀取數據的數量batch_size.
輸出:用戶潛在特征矩陣UMK和物品潛在特征矩陣VNK,迭代次數變化時RMSE的變化情況.
具體步驟如下:
Step 1.讀入用戶物品評分矩陣,并按8:2劃分數據集為實驗用到的訓練集和測試集;
Step 2.利用用戶評分數據及物品標簽屬性數據計算用戶之間的偏好相似度,得到用戶相似度矩陣W;
Step 3.根據物品標簽關聯度矩陣和物品流行度矩陣計算物品之間的相似度值,進而得到物品的相似度矩陣S;
Step 4.初始化用戶特征矩陣和物品特征矩陣為正態分布;
Step 5.分批讀入訓練集中的數據,根據公式(18)計算目標函數;
Step 6.根據公式(21)和公式(22)迭代計算用戶特征和物品特征,并計算訓練集和測試集的RMSE.
本文的研究主要有兩個目的:
1)驗證UPIS-PMF算法優于傳統推薦算法;
2)驗證從物品角度考慮也可以提高概率矩陣分解的評分預測準確性.
本文算法所用數據集為Movielens-100k數據集和Tag-genome數據集,這兩個數據集都屬于Movielens數據集,其中Movielens-100k數據集包含用戶物品評分數據,物品標簽屬性數據等,Tag-genome數據集包含物品標簽屬性數據,物品標簽關聯度數據和物品流行度數據等,后者數據集可以對前者進行補充,兩者組合即為最終要使用的數據集[14].組合數據集包含信息有943名用戶對1682部電影的評分數據、1682部電影的屬性數據、1547578條電影標簽關聯度數據、1372部電影的流行度數據.
第三,幫助宗教界在經濟上實現自養。領導宗教界獨立自主自辦宗教,實現自治、自傳,其中很重要的一點就是培養宗教界能夠不依賴于西方帝國主義的津貼,在經濟上實現自力更生,自我發展。
為了驗證本文算法的相對優劣,本文采用均方根誤差RMSE(Root Mean Square Error)作為評價指標,RMSE計算方法如公式(23)所示:
(23)
公式(23)中,Γ為測試集,采用均方根誤差作為評價指標對算法結果要求更為嚴格,更能對比出算法的相對優劣.
本文提出了UPIS-PMF算法,該算法包含的參數有用戶特征矩陣和物品特征矩陣的維度K、迭代次數maxepoch、正則化系數λ、物品相似度調和系數β、用戶相似度的正則化系數λW、物品相似度的正則化系數λS、學習速率α,讀入總批次num_batches及每批讀取數據總量batch_size.
對于參數K,通常取值很小時就可以取得較好的實驗結果,在本文的實驗中,選取參數范圍為[2,10],并對比在不同迭代次數下測試集RMSE的變化情況,實驗結果如圖2所示.

圖2 不同參數K及迭代次數對實驗結果的影響Fig.2 Effect of different parameter K and iterations on experimental results
由圖2可以發現,當參數K取值為2時,算法的結果整體較差,同時,取值為4到10時,算法結果較為接近,因此,合適的參數K應當取值為10.
參數β用以調整物品標簽相似度及物品流行度乘積對物品綜合相似度的影響程度,取值接近于1,在本文的實驗中,選取0.6、0.7、0.8、0.9、1.0五組數據進行實驗對比,實驗所得結果如圖3所示.

圖3 不同參數β及迭代次數對實驗結果的影響Fig.3 Effect of different parameter β and iterations onexperimental results
正則化系數用以調整算法性能,防止出現過擬合,結合廣大專家學者的已有實驗,在本文的實驗中,將選取0.001、0.005、0.01,0.05和0.1五組數據進行實驗對比,結果如圖4所示.

圖4 不同參數λ及迭代次數對實驗結果的影響Fig.4 Effect of different parameter λ and iterations onexperimental results
由圖4可知,UPIS-PMF算法在迭代次數增加時,不同的參數λ均會使算法結果逐漸變優并趨于穩定,當參數值小于0.05時,迭代次數小于200,算法結果較好,但是迭代次數大于200時,參數取值為0.05或0.較好,所以,在本文的算法中取該參數值為0.1.同時,λW與λS對實驗的影響與λ類似,為了不失一般性,λW與λS取值也均為0.1.最后,對于學習速率α,該參數不影響實際的算法結果,只影響算法迭代取值的快慢,因此,為了便于對比算法性能,在本文的實驗中將取值為1.
經過一系列的實驗,UPIS-PMF算法中的參數得到了調整,為了驗證對比本文算法的相對優劣,將選取其他幾種推薦算法進行對比分析.由于UPIS-PMF屬于矩陣分解算法,而且算法的結果與迭代次數有關,因此,將選擇同樣與迭代次數有關的幾種算法,進行對比的算法有FunkSVD矩陣分解推薦算法、概率矩陣分解推薦算法(PMF)、基于用戶偏好相似度的概率矩陣分解推薦算法(UP-PMF)和基于物品相似度的概率矩陣分解推薦算法(IS-PMF).實驗所得算法對比結果如圖5所示.

圖5 不同迭代次數下的各類算法對比圖Fig.5 Comparison of various algorithms underdifferent iteration times
圖5展示了UPIS-PMF、UP-PMF、IS-PMF,PMF和FunkSVD五種算法在迭代次數變化時的RMSE變化情況.隨著迭代次數的增大,FunkSVD算法整體結果變化較小,而其它四種算法的RMSE值先變小后趨于平緩.當迭代次數小于70時,FunkSVD算法預測準確性優于其它四種推薦算法,當迭代次數大于70時,其它四種算法的預測效果較好,且對于這種四種算法來說,PMF算法的整體結果最差,UPIS-PMF算法和IS-PMF算法整體結果較為接近,且優于PMF算法,一定程度上說明了在概率矩陣分解模型中融入用戶相似度或者物品相似度均可以提高預測準確性.最后,對于本文的推薦算法,即UPIS-PMF,算法的預測準確性整體最高.
概率矩陣分解推薦算法在評分預測準確性方面優于傳統的推薦算法,且廣大專家學者從用戶角度出發,將用戶之間的關系融入概率矩陣分解模型中,組合后的算法提高了評分預測準確性.本文在前人的基礎上提出了融合用戶偏好和物品相似度的概率矩陣分解推薦算法,通過用戶偏好尋找用戶之間的相似度關系,利用物品標簽關聯度數據和物品流行度數據計算物品相似度,將用戶相似度矩陣和物品相似度矩陣共同融入概率矩陣分解模型中,Movielens數據集中的實驗表明該算法優于傳統的推薦算法,同時也說明了從物品角度進行考慮也可以提高評分預測準確性.
最后,在本文算法的計算過程中,由于數據集信息有限,僅通過用戶偏好數據計算用戶相似度,物品標簽關聯度數據及物品流行度數據計算物品相似度,計劃尋找用戶物品信息更多的數據集,利用更多的信息計算對應的相似度,從而使得算法的預測準確性得到更近一步的提升.