王 運,倪 靜
(上海理工大學 管理學院,上海 200093)
近年來,隨著互聯網對人們生活的逐漸滲透,人們面臨的信息量呈現爆炸式增長.根據《中國互聯網絡發展狀況統計報告》可知,截至2018年12月,我國的網民規模已達8.29億,互聯網普及率為59.6%,網站數量達到523萬個.面對如此復雜的場景,如何為用戶準確推薦需要的信息顯得尤為重要.傳統的推薦算法主要分為基于協同過濾的推薦算法[1]、基于內容的推薦算法[2]、基于關聯規則的推薦算法[3]和基于效用的推薦算法[4]等.關于這些算法的研究應用也有很多,例如,文獻[5]通過用戶的地域特征數據計算用戶之間的相似度,并將用戶相似度數據用于協同過濾推薦;文獻[2]將卷積神經網絡應用到基于內容的推薦算法中,實驗表明算法取得了較好的結果;文獻[6]提出了一種分布式計算框架,并結合關聯規則進行推薦,與傳統的推薦算法相比具有顯著的效果提升.另一方面,廣大專家學者通過尋找更多的用戶物品信息,并以此提高用戶相似度的準確度,進而提高推薦的效果.如文獻[7]根據用戶社交信任數據計算用戶之間的社交相似度,提高了用戶相似度值的準確度,進而提高了算法的預測準確度;文獻[8]利用用戶及物品數據計算用戶偏好模型,在計算得到用戶偏好相似度后,將用戶相似度融入傳統協同過濾推薦算法,實驗表明算法具有一定的有效性.但是,推薦算法在運用的過程中仍然面臨數據稀疏的問題,比如用戶冷啟動,推薦系統中的新用戶通常沒有充足的社交信任等信息來計算用戶相似度.
在2006年的Netflix競賽中,有人將矩陣分解技術運用到了推薦算法中,競賽結果表明該方法在評分預測準確性方面具有顯著的提升,至此,廣大專家學者不斷展開對矩陣分解技術的研究.文獻[9]提出了BiasSVD算法,在矩陣分解的過程中融入用戶或物品的偏置因素,實驗表明提高了評分預測準確性;文獻[10]提出了SVD++,將基于領域的推薦算法和BiasSVD算法進行融合,進而更進一步提高預測準確性;文獻[11]將概率論相關知識引入矩陣分解,提出了基于概率矩陣分解的推薦算法,在算法的可解釋性和評分預測準確性方面均有提升.因此,矩陣分解技術與傳統算法的融合對于算法的預測準確性具有很大的提升.
但是,廣大專家學者總是通過尋找更多的用戶數據來提高算法預測準確性,沒有充分利用已有的數據,即在用戶數據稀疏的情況下對數據的利用效率不高.本文在上述研究基礎上提出了基于用戶行為序列的概率矩陣分解推薦算法UBS-PMF(Probability Matrix Factorization Recommendation Algorithm Based on User Behavior Sequence),通過分析用戶評分數據和物品標簽數據得到用戶的評分行為轉移序列和偏好轉移序列,進而挖掘用戶之間的關系和物品之間的關系,將所得用戶(物品)相似度矩陣融入概率矩陣分解模型中,Movielens數據集中的實驗表明UBS-PMF算法提高了對用戶物品評分數據的利用效率,在評分預測準確性上具有一定的提升.
傳統推薦算法在運用的過程中經常面臨數據稀疏的缺點,而矩陣分解技術可以很好的改善這個缺點,在利用矩陣分解技術的同時融入更多的用戶(物品)信息則可以提高算法的評分預測準確性.文獻[12]利用用戶的社交信息計算用戶之間的社交相似度,將所得社交相似度矩陣融入概率矩陣分解模型,實驗表明該算法在評分預測準確性方面優于傳統的推薦算法;文獻[13]通過用戶之間的社交信息進一步挖掘用戶之間的信任關系,通常用戶對信任用戶具有一定的影響力,將用戶之間的信任相似度矩陣融入概率矩陣分解模型,實驗表明算法進一步提高了預測準確性;文獻[14]根據用戶社交標簽信息和用戶信任信息計算用戶之間的相似度關系及物品之間的相似度關系,從用戶與物品兩個角度進行計算,并將計算所得的用戶(物品)相似度矩陣共同融入概率矩陣分解模型,Last.fm數據集中的實驗表明增加用戶信息或者從用戶物品角度共同進行特征提取,最終可以取得更準確的預測結果.因此,在傳統的推薦算法中融入概率矩陣分解相關知識可以提高預測的準確性.
將矩陣分解技術運用到推薦算法中可以帶來更好的推薦效果,但是對用戶(物品)相似度的計算準確度有較高的要求,因此,許多研究人員從用戶(物品)信息量的角度出發,通過尋找更多的用戶(物品)信息來提高相似度的計算準確度,從而提高算法的預測準確性.正如上文所述,有許多學者利用用戶偏好、用戶社交以及用戶信任等信息來計算相應的相似度.另一方面,在實際應用中,推薦系統總會面臨數據稀疏的缺點,如用戶冷啟動問題,關于用戶的信息種類通常很少,基本只具備用戶物品評分信息.如果可以提高對用戶物品評分信息的利用效率,深度挖掘用戶(物品)之間的相似度,那么對預測準確性的提升也會有很大的幫助.
因此,本文提出了基于用戶行為序列的概率矩陣分解推薦算法,利用用戶物品評分信息得到用戶對物品的評分行為序列,將用戶對物品的評分序列轉化為用戶對標簽的評分序列,即為用戶偏好轉移序列并計算出對應的用戶相似度矩陣,同時,利用用戶物品評分序列也可挖掘出物品之間的關系,即為物品相似度矩陣,最后,將用戶相似度矩陣和物品相似度矩陣共同融入概率矩陣分解模型中并做評分預測.
基于矩陣分解的推薦算法相較于傳統推薦算法提高了評分預測的準確性,而基于概率矩陣分解的推薦算法則在此基礎上融入了概率論相關知識,從概率的角度出發計算與解釋矩陣分解技術,對于算法的可解釋性和與預測準確性都做到了更進一步提升.
如表1所示為本文算法所用符號及對應解釋:
表1 數學符號
Table 1 Mathematical notations

符號解釋M、N用戶集合、物品集合UMK、VNK用戶特征矩陣、物品特征矩陣Ui用戶i的特征矩陣Vj物品j的特征矩陣Mi用戶i的相似用戶集合Nj物品j的相似物品集合Wi,j用戶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所示為基于用戶物品相似度的概率矩陣分解模型.

圖1 基于用戶物品相似度的概率矩陣分解模型
圖1中,用戶i的特征向量受到相似用戶l∈Mi的影響,物品j的特征向量受到相似物品k∈Nj的影響,融合相似用戶(物品)信息可以提高用戶(物品)特征向量的計算準確度,進而提高預測準確性.
在推薦系統中,用戶物品評分信息是最基本的數據,且通常包含用戶評分時間,根據這些數據可以得到用戶的評分行為序列,同時,物品通常具有許多對應的標簽,進而得到用戶關于標簽的評分序列,即為用戶偏好轉移序列,根據用戶偏好轉移序列可以計算出用戶相似度矩陣;另一方面,多個用戶評分行為序列也隱藏著物品之間的關系,如大量用戶在評分過A物品后總會評分物品B,則說明物品A與物品B具有一定的相似度,因此可得物品相似度矩陣.最后,將計算所得用戶相似度矩陣和物品相似度矩陣融入圖1所示的概率矩陣分解模型中并做評分預測.
根據4.1可知,利用用戶物品評分信息可以得到用戶對物品的行為序列,如圖2所示為某一用戶對物品的行為序列示意圖.同時,利用用戶行為序列和物品標簽信息可以得到用戶的偏好轉移序列,如圖3所示為某一用戶的偏好轉移序列示意圖.

圖2 用戶行為序列示意圖
Fig.2 User behavior sequence diagram

圖3 用戶偏好轉移序列示意圖
圖3 中,由于物品包含的特征標簽有時不止一個,因此,用戶在某一時刻可能會對多個標簽具有行為.用戶在相鄰時刻的行為可以反映出用戶的偏好轉移信息,若兩個用戶具有很多相同的轉移序列,則說明他們的偏好轉移相似,即用戶之間具有很高的相似度.該轉移序列即為圖3中每兩個相鄰特征標簽之間的連線.
對于用戶i與用戶l,有公式(6)所示用戶相似度計算公式:
(6)
公式(6)中,seqi、seql分別為用戶i和用戶l的行為序列總數,seql,i為用戶i和用戶l的共同行為序列總數.例如,若用戶i、用戶l的行為序列總數分別為2個和3個,這兩個用戶的共同行為序列總數為1個,則說明用戶i有1/2的行為序列和用戶l的1/3序列是相同的,因此,這兩個用戶的相似度為1/6.
由于用戶的特征受到相似用戶的影響,則對于用戶i,有公式(7)所示公式:
(7)
將公式(7)以矩陣形式進行描述可轉化為公式(8)所述形式:
(8)
(9)
所以,融合用戶相似度的用戶潛在特征向量的概率分布如公式(10)所示:
(10)
在概率矩陣分解模型中融入用戶相似度矩陣和物品相似度矩陣可以提高評分預測的準確性.關于物品相似度的計算,很多專家學者通過物品的標簽或者熱度等信息來計算,通常物品的信息較難獲取,計算所得相似度也不夠準確,因此,最終的評分預測準確性仍然有待提高.
但是,不通過物品的標簽等數據也可以計算物品之間的相似度,如利用用戶行為序列計算物品相似度.圖2所示為某一用戶的行為序列,在推薦系統中包含許多類似的行為序列,如果存在許多用戶在對物品1有行為后都對物品2有行為,則可以說明物品1與物品2之間具有一定的關聯度,即可認為是物品之間的相似度.推薦系統具有大量的用戶行為數據,因此,計算所得物品相似度較為準確.
對于任意物品k與物品j,物品k對物品j的影響力(相似度)為Sk,j,計算方法如公式(11)所示:
(11)
公式(11)中,numj為所有用戶對物品j有行為后對下一物品的行為總數,numj,k為所有用戶對物品j與物品k先后存在行為的總數,且物品k對物品j的相似度和物品j對物品k的相似度不相等,即存在物品相似度的有向性.
同4.2,對于物品Vj,有公式(12):
(12)
(13)
所以,融合物品相似度的物品潛在特征向量的概率分布如公式(14)所示:
(14)
由4.1、4.2及4.3可知,融合用戶相似度矩陣、物品相似度矩陣和概率矩陣分解模型可得公式(15)所示后驗概率公式:
(15)
最大化上述概率時,可得如公式(16)所示目標函數:
(16)
(17)
(18)
對Ui與Vj進行梯度下降法迭代時滿足公式(19)及公式(20):
(19)
(20)
公式(19)與公式(20)中,α為學習速率,用以控制用戶特征向量與物品特征向量在每次迭代時取值變化的大小,當迭代結束時即可得到相應用戶特征矩陣和物品特征矩陣,也可預測出任何用戶對任何物品的評分.
本文的算法主要分為輸入輸出兩步:
輸入:用戶物品評分矩陣R、用戶和物品特征矩陣的維度K、物品標簽屬性數據T、算法最大迭代次數maxepoch、正則化系數λ、用戶相似度的正則化系數λW、物品相似度的正則化系數λS、學習速率α,讀入總批次num_batches及每批讀取數據的數量batch_size.
輸出:用戶潛在特征矩陣UMK和物品潛在特征矩陣VNK,迭代次數變化時RMSE的變化情況.
具體步驟如下:
Step 1.讀入用戶物品評分矩陣,并按8∶2劃分數據集為實驗用到的訓練集和測試集;
Step 2.利用用戶評分數據及物品標簽屬性數據計算用戶行為序列和用戶偏好序列;
Step 3.利用用戶偏好序列數據和公式(6)計算用戶相似度,進而得到用戶相似度矩陣W;
Step 4.根據用戶行為序列數據和公式(11)計算物品相似度,進而得到物品相似度矩陣S;
Step 5.初始化用戶特征矩陣和物品特征矩陣為正態分布;
Step 6.分批讀入訓練集中的數據,根據公式(16)計算目標函數;
Step 7.根據公式(19)和公式(20)迭代計算用戶特征和物品特征,并計算訓練集和測試集的RMSE.
本文的研究主要有兩個目的:
1)驗證UBS-PMF算法優于傳統推薦算法;
2)驗證無論從用戶角度還是物品角度,基于用戶行為序列的概率矩陣分解推薦算法均可以提高評分預測準確性.
本文實驗所用數據集為Movielens-100k數據集,該數據集由明尼蘇達州大學的GroupLens項目組開發,數據集包括943名用戶的基本信息,1682部電影的標簽信息以及用戶對電影的評分信息,評分記錄多達100000條.另外,每位用戶對超過20部電影有評分,數據集有動作、冒險、兒童,紀錄片等18種標簽[15].
實驗數據集包含了用戶的評分信息(包含評分時間)以及物品的標簽信息,但是沒有用戶社交信任等信息,同時,用戶的評分電影數不多,滿足了用戶數據稀疏的背景,且包含的數據可以計算用戶的行為序列以及用戶的偏好轉移序列,便于算法的計算.
為了驗證UBS-PMF算法的相對優劣,本文采用均方根誤差RMSE(Root Mean Square Error)作為評價指標,RMSE計算方法如公式(21)所示:
(21)
公式(21)中,Γ為測試集,計算所得RMSE值越小,則說明真實值與預測值的偏差越小,即算法性能越好.采用均方根誤差來評價算法的性能,對真實值和預測值的誤差進行平方處理,擴大了計算的結果,對算法要求更為嚴格,也更能體現出算法的優劣情況.
本文提出了UBS-PMF算法,該算法包含的參數有用戶特征矩陣和物品特征矩陣的維度K、迭代次數maxepoch、正則化系數λ、用戶相似度的正則化系數λW、物品相似度的正則化系數λS、學習速率α,讀入總批次num_batches及每批讀取數據總量batch_size.
對于參數K,通常取值較小時算法的結果較好,為了對比出最優的參數K,本實驗選取了2、4、6、8、10五組數據,并對比在不同迭代次數下測試集RMSE的變化情況,實驗結果如圖4所示.

圖4 不同參數K及迭代次數對實驗結果的影響
由圖4可以發現,當迭代次數增加時,各參數下的RMSE值整體先變小后逐漸趨于平緩,當參數K取值為2時,算法的結果整體較差,同時,取值為4到10時,算法結果較為接近,因此,合適的參數K可取值為10.

圖5 不同參數α及迭代次數對實驗結果的影響
參數α為學習速率,通常對算法結果影響不大,只影響算法迭代到最優值的快慢,取值過小時,迭代到最優解的速度過慢,取值過大時,迭代所得結果相對較差.本文實驗選取0.5、1、5、10四組數據進行實驗對比,其結果如圖5所示.
正如圖5所示,當參數α取值為0.5或1時,隨著迭代次數的增加,RMSE值整體先變小后趨于平緩,當參數α取值為5或10時,RMSE值隨著迭代次數的增加幾乎沒有變化,且最終當參數α取值為1時,RMSE值最小,所以,最優的參數α取值為1.
參數λ為正則化系數,用以調整算法性能,防止出現過擬合現象,結合廣大專家學者的已有實驗,在本文的實驗中,將選取0.005、0.01,0.05、0.1和0.5五組數據進行實驗對比,不同參數λ及迭代次數下的RMSE變化情況如圖6所示.

圖6 不同參數λ及迭代次數對實驗結果的影響
由圖6可知,隨著迭代次數的增加,不同參數λ下的RMSE值整體先變小再逐漸趨于平緩.當參數λ取值為0.005至0.1時,隨著參數值的增加,RMSE值整體逐漸變小,當參數λ取值為0.5時,RMSE值整體最大,所以,最優的參數λ應當取值為0.1.同時,λW與λS對實驗的影響與λ類似,為了不失一般性及實驗對比的方便,λW與λS均取值為0.1.
經過大量的實驗,UBS-PMF算法中的參數得到了調整,為了對比出本文算法的相對優劣,將選取其他幾種經典的推薦算法進行對比.由于UBS-PMF算法屬于基于矩陣分解的推薦算法,且算法的評分預測準確性與迭代次數有關,因此,將選擇與矩陣分解和迭代次數有關的推薦算法進行對比,本文選擇的算法有概率矩陣分解推薦算法(PMF)、融合用戶行為序列和用戶相似度的概率矩陣分解推薦算法(UBUS-PMF)、融合用戶行為序列和物品相似度的概率矩陣分解推薦算法(UBIS-PMF)、融合用戶偏好和物品相似度的概率矩陣分解推薦算法(UPIS-PMF).實驗所得算法對比結果如圖7所示.
圖7中,PFM算法為沒有融入用戶相似度矩陣和物品相似度矩陣的概率矩陣分解推薦算法;UBUS-PMF算法為根據用戶行為序列計算用戶相似度,并將用戶相似度矩陣融入概率矩陣分解模型;UBIS-PMF算法為根據用戶行為序列計算物品相似度,并將物品相似度矩陣融入概率矩陣分解模型;UPIS-PMF算法為根據用戶評分信息及物品標簽信息計算用戶對標簽的評分,即為用戶偏好,并可得用戶相似度矩陣,再根據物品標簽信息計算物品相似度矩陣,最后將所得的兩個相似度矩陣共同融入概率矩陣分解模型;UBS-PMF則為本文的算法.上述五種算法的RMSE值變化趨勢均為隨著迭代次數的增加先變小再逐漸變平緩,PMF算法的RMSE值整體最大,即算法的評分預測準確性最低,UBUS-PMF算法和UBIS-PMF算法相對PMF算法整體相對較小,即將用戶行為序列應用在用戶相似度矩陣或者物品相似度矩陣的計算中均可以提高評分預測的準確性,而UPIS-PMF算法相對之前三種算法的RMSE值整體更小,因為該算法同時考慮到了用戶相似度和物品相似度,最后,對于本文的算法(UBS-PMF),將用戶行為序列同時應用在用戶相似度和物品相似度的計算中,算法的RMSE值整體最小,說明了UBS-PMF算法評分預測準確性最高,即優于傳統的推薦算法.綜上所述,圖7中的實驗數據表明本文的研究目的已達到.

圖7 不同迭代次數下的各類算法對比圖
概率矩陣分解推薦算法在評分預測準確性方面相較傳統推薦算法有所提升,但是算法在實際應用中經常面臨數據稀疏的缺點,且對已有數據的利用效率不高.針對上述問題,本文在廣大專家學者的研究基礎上提出了基于用戶行為序列的概率矩陣分解推薦算法,通過用戶對物品的評分信息(包含評分時間)計算用戶行為序列,同時根據用戶行為序列和物品標簽信息計算用戶的偏好序列,然后計算出關于用戶的相似度矩陣和關于物品的相似度矩陣,最后,將所得用戶(物品)相似度矩陣共同融入概率矩陣分解模型中.Movielens數據集中的實驗表明該算法優于傳統的推薦算法,同時也說明了無論從用戶角度還是物品角度,融入用戶行為序列信息均可以提高評分預測準確性.
但是,由于本文所用數據集信息有限,在算法的對比部分只做到了與傳統的幾種推薦算法進行對比,沒有同基于社交網絡的推薦算法、基于用戶信任的推薦算法等多種推薦算法進行對比,計劃在接下來的研究中尋找用戶信息更加全面的數據集進行對比.另一方面,對于近幾年比較火熱的深度學習和馬爾科夫等技術,計劃研究用戶行為序列與這些技術的結合,并對比在不同模型中的評分預測準確性,從而也更能說明用戶行為序列在用戶(物品)相似度計算過程中的有效性.