韓立鋒,陳 莉,史曉龍
(1.西北大學 信息科學與技術學院,陜西 西安 710127;2.西安電子科技大學 計算機科學與技術學院,陜西 西安710126)
伴隨著傳統PC互聯網以及移動互聯網的高速發展,電子商務已經滲透到生產生活的各個方面,為人們的生產生活帶來了極大便利。然而,電子商務在給人們帶來機遇的同時,也面臨著很大的挑戰。特別是隨著電子商務的高速發展,無論是商家還是用戶,都面臨著信息過載的困擾。用戶希望能夠在盡可能短的時間內在海量的商品信息中獲取自己喜歡的或者感興趣的商品,而商家則希望使用最高效的方式幫助用戶找到自己喜歡的商品。
為了解決這類問題,個性化推薦系統應運而生。所謂個性化推薦系統,旨在根據用戶的歷史消費喜好預測用戶對未知產品或服務的偏好,進而為用戶推薦合適的產品或服務,提高用戶的滿意度[1-2]。
目前,在個性化推薦領域,使用最為廣泛的推薦算法是基于協同過濾的推薦算法。而協同過濾算法是基于集體智慧的思想,無論是基于記憶的協同過濾,還是基于模型的協同過濾,其主要思想都是通過用戶對于商品的歷史購買記錄來幫助用戶尋找自己可能喜歡的商品。目前基于協調過濾的推薦算法已經被廣泛應用于個性化電子商務推薦、新聞推薦、音樂推薦等諸多領域[3-5]。
基于協同過濾的推薦算法被證明在實踐中有著很好的效果,可以分為基于內存的協同過濾[6]以及基于模型的協同過濾[7]兩類算法,目前被廣大學者持續研究。BOBADILLA等[8]提出了一種新的協同過濾度量方式,將MSD和Jaccard度量結合起來,可獲得更好的精度。LIU等[9]提出了一種新的用戶相似性模型,該模型不僅考慮了用戶評級的局部上下文信息,而且考慮了用戶行為的全局偏好。此外,改進的相似性度量模型不僅考慮了兩個用戶之間的公共評級比例,同時也考慮到不同的用戶有不同的評級偏好。實踐證明,該模型具有很好的預測精度。LI等[10]提出新的跨域協同過濾推薦模型,將CF域視為一個二維站點時間坐標系,在這個坐標系上,多個相關域共享多個相關CF域的公共評級知識,以提高CF的性能。
然而,面對數據稀疏、冷啟動等一系列問題,基于記憶的協同過濾算法無法準確地計算出物品與物品、用戶與用戶之間的相似度,進而無法為用戶推薦準確的商品。特別是對于大多數新用戶來說,因其較少的歷史購買記錄,甚至根本沒有相關購買記錄或評分記錄,所以無法為其尋找其最近鄰用戶,從而影響推薦的準確性。針對此類問題,國內外學者進行了深入的研究:傳統的基于內存的協同過濾技術在面臨數據稀疏、冷啟動問題時遭遇推薦瓶頸,其最主要原因在于傳統的基于記憶的協同過濾技術只是過度關注用戶或項目的近鄰,而忽視了用戶或項目本身,同時也忽略了兩種實體之間的關聯。所以基于此,國內外學者在協同過濾推薦算法的基礎上提出了一種新的基于模型的協同過濾——矩陣分解算法(Matrix Factorization,MF)。矩陣分解算法的核心思想是用戶的特征矩陣與項目的特征矩陣都可以表示為低維的特征向量,而用戶的評分則可以用此二者之特征向量的內積表示。盡管大量的矩陣分解算法能夠將用戶與項目的信息進行充分挖掘,從而提高推薦效果[11],但對于評分較少的冷用戶信息,依舊無法有效挖掘。此時,越來越多的輔助信息被加入到矩陣分解框架之中,比如人口統計學信息、社會化網絡信息、項目描述信息等,在一定程度上提高了推薦精準度,同時對于冷啟動用戶的推薦效果也有所提升。比如MANZATO[12]提出了一種基于用戶偏好與電影類型/類別的分解矩陣的推薦算法。使用這種用戶類型矩陣分解模型的優點是需要較少的計算資源,矩陣的稀疏性更小,維數更低,推薦準確性更高。為了解決用戶項目評價模型的極大稀疏性,QIN等[13]提出了一種基于加權項目類別的協同過濾推薦算法,該算法將用戶物品的高維評價數據轉化為用戶類別的低維統計數據,并作為用戶特征模型。在模型的基礎上,加入遺忘功能和用戶屬性信息,對用戶模型進行兩次優化。實驗結果表明,該模型能夠較好地應對用戶物品評級問題的稀疏性,同時較好地解決冷啟動問題。
上述算法以矩陣分解為基礎,同時融合更多其他輔助信息,對于應對冷啟動問題有顯著的效果。盡管目前深度學習算法已被大量應用于個性化推薦領域,并且也取得了一些成績。然而,目前的研究主要聚焦于探索應用于個性化推薦而提出新的深度學習架構上,比如注意力機制、卷積神經網絡、生成對抗網絡、圖神經網絡等[14-17]。盡管取得了一定的效果,但這些依賴于復雜網絡結構的工作有大量的參數,需要耗費更多的計算資源,同時在可擴展性以及可解釋性等方面也存在一定的問題。所以,筆者采取以矩陣分解為基礎的推薦模型,同時考慮用戶、商品屬性信息,考慮用戶對物品屬性的偏好信息等,最終對于冷啟動用戶進行項目評分的預測,取得了較好的結果。
筆者的貢獻主要包括:
(1) 在進行用戶相似度計算時,融合了用戶本身信息,包括年齡、性別、職業等,以及用戶對于項目偏好的信息,即用戶對于項目屬性偏好的差異。進行相似度計算后,進行了比較粗略的評分預測,并將這一結果融入到新的矩陣分解之中。
(2) 根據用戶相似度,計算出冷啟動用戶對項目的初始預測值,同時在進行矩陣分解時,融合用戶的屬性信息、用戶對項目屬性的偏好信息、項目屬性信息等,作為輔助信息對矩陣分解的隱類分解起到增強作用,更能提高最終冷啟動用戶的推薦效果。
(3) 在數據集movielens及douban上進行了大量實驗。實驗表明,筆者給出的模型與現有矩陣分解模型相比,有更好的推薦準確性以及可擴展性。
在基于用戶的協同過濾推薦中,評分信息是一個m×n階矩陣,m行代表m個用戶,n列代表n個項目。第i行第j列的元素值代表用戶i對項目j的評分。評分值一般是1~5之間的整數。評分越大,表示用戶越喜歡該項目。用戶項目評分數據矩R的各元素陣如表1所示。

表1 用戶項目評分矩陣
K最近鄰(K-NearestNeighbor,KNN)分類算法是最著名的數據挖掘算法之一[18-19],早期被應用于文本分類研究中,取得了非常好的分類效果。隨著個性化推薦技術的流行,K最近鄰作為非常重要的基于領域的協同過濾方法,也被廣泛應用。在個性化推薦領域,K最近鄰又被分為基于用戶的K最近鄰以及基于項目的K最近鄰。它們的核心都是計算相似度[20]。
在相似度計算中,常見的有余弦相似度、相關相似度等計算方式。余弦相似性假設用戶u,v在N維項目空間上的評分分別表示為向量u和v,則用戶u,v之間的相似度Ssim(u,v)就是兩個向量夾角的余弦值,其計算公式如下:
(1)
要進行相關相似度計算,首先假設用戶u,v同時評過分的集合為I,則用戶u,v之間的Ssim(u,v)可通過皮爾遜系數進行計算。皮爾遜相關系數正好用于衡量變量與變量之間的線性關系,目前也是推薦系統較為廣泛的相似度度量方法。其計算公式如下:
(2)
通過計算用戶之間的相似度,選取與目標用戶u最近的k個鄰居集,對項目j進行評分預測:
(3)

隨著Yehuda Koren在Netflix比賽中取得了冠軍成績后,基于矩陣分解的個性化推薦模型得到研究者的廣泛關注[21-24]。作為協同過濾技術的一種,矩陣分解技術屬于一種隱語義模型。與傳統協同過濾方法不同的是,矩陣分解并不通過計算相似度來查找相似用戶或項目,進而進行預測。相反,矩陣分解根據其數學理論基礎奇異值分解,認為一個實矩陣R可以分解為3個矩陣U、Σ和V的積[25]:
(4)
在個性化推薦中,研究者認為:可將評分矩陣近似表示為用戶隱特征矩陣及項目隱特征矩陣的乘積,從而對用戶和項目進行建模,如圖1所示。

圖1 推薦系統評分預測模型
由于評分矩陣非常稀疏,通常將原始矩陣近似為矩陣P和Q轉置的乘積:
(5)

(6)
作為真實的評分值和預測評分值之間的差距,可以用下式定義損失函數:
(7)
其中,D是所有評分后的用戶和項目集,即訓練集中的用戶和項目;而λ是控制正則化參數,防止過擬合。
近年來,基于矩陣分解的個性化推薦得到了廣泛的研究和應用,也取得了較好的效果。但是矩陣分解存在較為嚴重的冷啟動問題,即對于特別稀疏的評分矩陣,尤其是對于評分較少的冷啟動用戶,無法根據現有信息對用戶進行深入挖掘,所以便無法進行精準評分預測,從而無法為冷啟動用戶進行相關推薦。為了避免此類問題發生,越來越多的矩陣分解模型加入了諸如社會化網絡、異構網絡等信息,取得了更好的效果。在上述研究方法的啟發下,基于用戶屬性與項目屬性構建評分矩陣,筆者進行冷啟動用戶的初始評分預測,同時融合用戶對項目屬性的喜好構建用戶興趣矩陣、用戶屬性信息、項目屬性信息,將此類信息源融入現有的矩陣分解模型之中,以期取得更好的推薦效果,如圖2所示。

圖2 算法框圖
首先對冷啟動用戶基于其用戶屬性信息和已經觀看的電影類型信息進行建模,得到其近鄰集,根據K最近鄰算法得到冷啟動用戶的初始預測評分。其次,針對于已有用戶對其根據用戶屬性、項目屬性、用戶對項目屬性偏好信息進行矩陣分解建模,學習各相關參數。然后對冷啟動用戶使用矩陣分解建模,結合矩陣分解模型中已有的用戶評分信息、項目屬性信息、用戶對項目屬性的偏好信息所學習到的各種參數,融合冷啟動用戶初始評分預測信息,進行全局范圍的參數更新,最終得到新的評分矩陣,從而為冷啟動用戶進行更為精準的評分預測。最后對冷啟動用戶進行相關項目推薦。
對于冷啟動用戶,相互之間進行共同評分的項目較為匱乏。此時,首先基于用戶性別、年齡、職位等用戶人口統計學信息,對其進行相似度計算。其次,雖然冷啟動用戶的共同評分較少,但是對于有過評分記錄即使評分記錄不多的冷啟動用戶,可以同時基于項目視角,根據項目屬性相似度,計算冷啟動用戶與其他用戶之間的相似度。最終形成冷啟動用戶的推薦列表。
要基于用戶人口統計學信息進行用戶間相似度計算,可對這些信息按照一定標準進行數值化處理。比如,對于性別,按照男(M)女(F)作為劃分標準,使用數字1、0代替。對于職業信息,根據我國職業分類標準,用數字1~7代替。對于年齡信息可以根據年齡段進行處理,根據生物學年齡劃分標準,用數值1~7代替。處理后的人口統計學信息如表2所示。

表2 處理后的用戶人口統計學信息
對以上信息可根據下式進行歸一化處理:
(8)
接著,進行用戶之間相似度計算:
Ssimr(u,v)=αS(u,v)+βA(u,v)+(1-α-β)O(u,v) ,
(9)
其中,S(u,v)為性別相似性,A(u,v)為年齡相似性,O(u,v)為職位相似性。在進行上述屬性相似性計算時,可以使用余弦相似性計算方式。參數α、β、(1-α-β)分別代表性別、年齡、職位相似性的權重。根據實驗得知,當α、β、(1-α-β)各參數值為{0.6,0.1,0.3}時,所得到的相似度是最準確的。
以上步驟描述了基于用戶人口統計學信息進行相似度計算的過程。但是對于已經有過評分記錄的冷啟動用戶來說,僅僅基于用戶特征計算相似度,而忽略用戶本身與其他用戶在項目類型之間的相似度,往往不能精準全面地分析用戶行為。以電影為例,流派信息作為電影最為重要的類型信息,用于區別電影之間的不同。電影根據流派進行劃分,可以被劃分為16個流派:犯罪、浪漫、動作、喜劇、科幻、戲劇、幻想、黑色、紀錄片、恐怖、驚悚、兒童、戰爭、動畫、懸疑、冒險。假設用戶A、B的歷史觀看記錄中,表明兩者都喜歡觀看具有動畫、兒童、喜劇流派特征的電影,則表明兩者具有很大的相似性。如果A用戶已經觀看了電影《Toy Story (1995)》,則系統也可以將該電影推薦給用戶B。
根據這一思路,可以融合電影流派相似度計算用戶相似度。在評分矩陣R中,包含了用戶U、項目I,其中U={u1,u2,u3,…,um},I={i1,i2,i3,…,in},rui表示用戶u對項目i的評分。項目i的流派屬性集合G(i)={g1,g2,g3,…,gs}。假設項目i中具有該流派屬性,則gi為1;否則,gi為0。設用戶u看過的電影集合為Iu,則用戶u對于電影流派屬性gi的累加次數為
(10)
其中,gix表示在所有該用戶看過的電影Ix中流派屬性gi的累計次數。
假設對于固定電影項目I,共有m個流派屬性,根據式(10)可以得到某用戶u對于各項目流派屬性的偏好,記做Lui,則用戶u對于m個流派屬性的偏好可表示為(Lu1,Lu2,…,Lui,…,Lum)。此時,可以根據式(11)計算用戶u與用戶v基于項目屬性的相似度:
(11)

用戶之間的最終相似度為
Ssim(u,v)=λSsimr(u,v)+(1-λ)Ssimarr(u,v) ,
(12)
其中,Ssimr(u,v)表示用戶u與用戶v的人口統計學屬性相似度,simarr(u,v)表示用戶u與用戶v基于電影項目流派屬性喜好視角的相似度值,參數λ則表示各自的權重。
此時,可根據最終相似度尋找用戶u的最近鄰集,然后根據評分公式得到項目評分。算法如下。
算法1融合用戶屬性與電影流派信息的K最近鄰算法。
輸入:用戶評分矩陣UImatrix,用戶屬性矩陣UAmatrix,項目流派屬性矩陣IAmatrix,鄰居個數K。
輸出:預測后的用戶評分矩陣UImatrix′。
算法過程:
① 初始化評分矩陣UImatrix,相似度列表SimilarList,用戶評分UserPreference
② foru∈Unewdo
③ 使用式(11)得到用戶u相似度列表SimilarList
④ 通過對SimilarList進行排序,得到用戶u的前K個近鄰集Neighbor
⑤ foru∈Neighbor do
⑥ 根據式(3)得到用戶u的預測評分值UserPreference
⑦ end for
⑧ end for
⑨ 更新評分矩陣UImatrix′
⑩ 返回評分矩陣UImatrix′。
大量的心理學、營銷學理論表明,人們對于商品的偏好很大程度上依賴于對該商品所對應屬性的偏好。對于電影本身來說,其具有電影類型、年代、地區等重要屬性信息。對于每個屬性,也具有不同的屬性值。假設某用戶的項目評分記錄如表3所示。

表3 項目屬性信息
根據表3,假設ui表示第i個用戶;項目屬性集可以表示為A,共有m個屬性。每個屬性均有不同的屬性值,比如電影類型有浪漫、動作、喜劇等16種取值;地區有美國、英國、日本等;年代有80年代、90年代等。項目屬性集可以表示為C={a11,…,a1d,a21,…,a2k,…,am1,…,amn},amn表示項目中的第m個屬性的第n種取值。如果該項目中具有該屬性值,則為1;否則,為0。項目屬性矩陣可以表示為
此時,可計算用戶u對于某屬性值的偏好程度,計算公式如下:
(13)
其中,Cij表示用戶u對項目中第i個屬性中第j個值的偏好程度,比如可計算用戶A對電影類別信息中名為動作片的偏好程度;NCountij表示該用戶所觀看電影集中該屬性值的累計次數;z表示該用戶所觀看的電影數目。然而這種計算偏好的過程忽略了評分信息,用戶u對第i個屬性中第j個屬性值最終偏好可以表示為
Tui=puiCuirui,
(14)
其中,pui表示某屬性重要程度,Cui即為式(13)計算得到的屬性值偏好,Tui則代表用戶u對某屬性值的最終偏好。根據這一思想,即可得到所有用戶的屬性偏好矩陣Zu。
矩陣分解技術因其簡潔高效的特性,在個性化推薦領域占據著非常重要的地位,也被證明為效果優于傳統基于用戶協同過濾及基于項目協同過濾的經典算法。但在通常情況下,用戶對于項目的評分矩陣也與用戶與項目自身因素相關。比如有的用戶習慣于給所有項目都給予較高的評分,而有的用戶則恰恰相反;有的物品經常會被用戶給予較高的評分,而有的物品則會被給予較低的評分。所以,為了使得評分更加精準,需要考慮用戶和項目的偏置信息。新的預測函數和損失函數為
(15)
其中,μ代表全局平均分,bu代表物品評分偏置,bi代表用戶評分偏置。通常可以使用梯度下降最優化方法進行求解,從而得到預測評分。
盡管上述矩陣分解方法得到了很好的效果,但是對于冷啟動用戶來說,其評分項目較為匱乏,更需要考慮項目屬性信息及冷啟動用戶對已評分項目屬性的偏好信息。此時用算法1中得到的新的評分預測矩陣UImatrix′得到r′,即冷啟動用戶根據用戶相似度及所評分電影類型相似度共同計算出用戶最終的相似度,從而找到該相似用戶的最近鄰,進而計算出冷啟動用戶對項目的初始預測值。在此基礎上,融合用戶的屬性信息、用戶對項目屬性的偏好信息、項目屬性信息等作為輔助信息,對矩陣分解的隱類分解起到增強作用,更能提高最終冷啟動用戶的推薦效果。圖3為改進后的矩陣分解模型。

圖3 改進后的矩陣分解模型

最終預測函數如下:
(16)
其中,r′表示初始預測評分,M表示用戶屬性集,其相關特征權重也可以通過已知評分矩陣學習得到。Z表示用戶對項目屬性偏好矩陣,其相關特征權重可以通過已知評分矩陣學習得到。G表示項目屬性集,其相關特征權重也可以通過已知評分矩陣學習得到。
該評分預測函數的損失函數為
(17)
對應的參數更新公式如下:
(18)
具體算法見算法2。
算法2融合屬性信息的矩陣分解算法。
輸入:訓練集用戶評分矩陣Trainmatrix,訓練集用戶屬性矩陣G(u),訓練集項目屬性矩陣G(i),用戶對項目屬性偏好矩陣Z,學習率α。
輸出:預測后的用戶評分矩陣UImatrix′、用戶和項目特征矩陣P、Q,用戶對項目屬性偏好特征矩陣PF,項目屬性特征偏好矩陣QF。
算法過程:
① 初始化bu、bi、P、Q、PF、QF、UImatrix′
② forrui∈Trainmatrix do

⑤ 利用隨機梯度下降
⑥ 根據式(18)更新bu、bi、P、Q、PF、QF
⑦ 更新UImatrix′
⑧ 直到誤差不再發生變化
⑨ end for
⑩ 返回參數列表bu、bi、P、Q、PF、QF
第1步 通過測試集用戶項目評分矩陣用戶屬性矩陣項目屬性矩陣等得到用戶對項目屬性偏好矩陣。
第2步 通過節2.3中的算法得到的bu、bi、P、Q、PF、QF等參數,結合用戶評分矩陣、用戶屬性矩陣、用戶對項目屬性的偏好矩陣,在全局范圍內利用梯度下降法更新bu、bi、P、Q、PF、QF等參數,直到誤差不再發生變化。
第3步 根據第2步得到的最優參數進行非純冷啟動用戶的項目預測評分。
第4步 對預測評分矩陣進行排序,選取top-N個項目推薦給非純冷啟動用戶。
由于推薦系統領域專門針對處理冷啟動用戶問題數據集并不多見,文中采用的是推薦系統領域內美國明尼蘇達計算機學院的GroupLens小組提供的MovieLens中的ML-100K,ML-1M數據集,如表4所示。

表4 實驗數據集
為了真實地模擬出非純冷用戶,在仿真實驗中將用戶數據分為70%的訓練集,30%的測試集。對于每個測試集用戶,隨機選取5~10個項目作為其測試集項目。此時,測試集用戶被模擬成為非純冷啟動用戶。訓練集用戶的屬性信息、訓練集用戶的評分信息以及通過計算得到的訓練集用戶對項目屬性的偏好信息、訓練集用戶屬性信息與電影流派偏好得到的預測評分矩陣信息作為輸入數據。經過矩陣分解算法得到預測值,再經由實際值與預測值之間的差額逐步找到各個參數的最優值。而測試集用戶被認為是冷啟動用戶,根據其用戶屬性信息與電影流派偏好得到的預測評分矩陣,同時融合其用戶屬性信息、用戶對電影項目屬性偏好信息,經過矩陣分解得到全局最優參數及評分預測值,最終形成推薦列表。
實驗軟件環境為:Windows10-64bits,Anaconda3、Python3.7。硬件環境為:CPU是英特爾 Core i7-8750H @ 2.20GHz 六核,內存為16 GB。
在推薦系統中,能夠衡量推薦質量的標準很多,比如精度、召回率、F1度量等。用平均絕對誤差(MAE)、均方根誤差(RMSE)對推薦準確性進行評價。平均絕對誤差也能夠非常直觀地度量推薦算法的準確性。平均絕對誤差越小,推薦準確性越高。其定義為
(19)
其中,pu,i表示目標用戶u對項目i的預測評分,Ru,i表示目標用戶u對項目i的實際評分。而均方根誤差為
(20)
通過以下實驗,旨在解決如下問題:
(1) 文中算法中的不同參數對于實驗結果的影響。
(2) 文中算法與其他算法比較在準確性方面的提升。
實驗1 鄰居個數K值對推薦準確性的影響。
通過K指定近鄰項目的數量。為了驗證K值對于推薦準確性的影響,分別選取MovieLens ML-100K,ML-1M兩種數據集進行測試。對于第1種數據集,設K從3開始,逐步遞增,步長為1,直到20結束。第2種數據集,設K從5開始,逐步遞增,步長為5,直到100結束。觀察不同K值下的平均絕對誤差(MAE)及均方根誤差(RMSE),實驗結果如圖4所示。

(a) ML-100K數據集中不同K值對MAE的影響
從實驗結果可以得知,隨著K值的增大,兩個數據集均呈現了平均絕對誤差及均方根誤差先減后增的趨勢。對于ML-100K數據集,當K=10時,平均絕對誤差、均方根誤差達到最小值,此時得到最佳的推薦性能。對于ML-1M數據集,當K=38時,得到最佳的推薦性能。
實驗2 參數λ對推薦準確性的影響。
參數λ控制著正則化項的程度,對于推薦準確性也有很大的影響。現將λ從0.01增加至0.20,并保持其他參數不變,實驗結果如圖5所示。

(a) ML-100K數據集中不同λ值對MAE的影響
從圖5中可以看出,隨著參數λ的變化,平均絕對誤差與均方根誤差也隨之變化。這是因為當參數λ變化時,其賦予模型中屬性的權重也隨之變化,過大或者過小,都會影響最終的預測效果。在ML-100K數據集中,當λ=0.20時推薦性能最優;而在ML-1M數據集中,當λ=0.15時,推薦性能最優。
實驗3 迭代次數對推薦準確性的影響。
為了驗證文中算法的平均絕對誤差、均方根誤差隨著迭代次數變化的情況,在ML-1M數據集中,假定正則化參數λ=0.15時,試驗結果如圖6所示。

(a) ML-1M數據集中迭代次數對MAE的影響
從圖6可以觀察到,當迭代次數小于200時,推薦效果較差。隨著迭代次數的不斷增加,推薦效果趨于平緩。當迭代次數等于250時,推薦效果最優。
實驗4 不同算法的性能比較。
為了驗證筆者提出的算法,通過選取以下4種算法進行比較。
傳統矩陣分解算法(SVD):算法假設用戶對項目最終評分在很大程度上取決于用戶和項目的潛在屬性。通過將評分矩陣分解為2個低秩的用戶項目矩陣,即用戶隱特征矩陣P以及項目隱特征矩陣Q,降低了矩陣維度。
SVD++:由KOREN[26]提出,在進行評分預測時,同時考慮了用戶、物品的偏置信息。
PMF:由SALAKHUTDINOV等[27]提出的基于概率矩陣分解的個性化推薦算法。
CBMF:該方法由NGUYEN等[28]提出,將內容信息直接整合到矩陣分解方法中,以提高推薦的質量。
FSVD:由GUO等[20]提出,該算法將項目屬性信息和評分信息進行有效結合,較好地解決了冷啟動問題。
為了驗證筆者提出算法的有效性,假定用戶和項目因子固定不變,且正則化參數λ的值保持一致,觀察各算法的平均絕對誤差在ML-1M數據集中隨迭代次數變化的情況。實驗結果如圖7所示。

(a) ML-1M數據集中各算法隨迭代次數變化的MAE值
從圖7中可以看出,當矩陣分解算法在迭代次數大于250次時,趨于穩定;SVD++則一直處于比較平穩的狀態,平均絕對誤差隨著迭代次數呈較為平緩的下降趨勢。PMF算法則剛開始一直處于比較急劇的下降狀態,當迭代大于200次時,平均絕對誤差達到最低,且趨于平緩。FASVD算法和文中算法在剛開始時,呈下降趨勢,當迭代次數大于250時,呈平穩趨勢,且在迭代次數等于250時,平均絕對誤差達到最低,推薦效果最優。均方根誤差也有同樣效果的表現。同時,可以看到文中算法在與其他算法進行比較時,在推薦準確性方面均優于其他算法。
實驗5 可擴展性驗證。
為了驗證文中算法的可擴展性,選取了Douban Movie數據集作為驗證。實驗通過設置鄰居個數K值以及迭代次數,來研究文中算法在其他數據集上的性能表現。圖8記錄了最終實驗結果。
從圖8(a)中可以看出,當K值發生變化時,平均絕對誤差值也隨之發生變化。當K小于55時,平均絕對誤差呈下降趨勢;當K值等于55時,平均絕對誤差達到最小值,推薦效果最優,隨后又平緩增加。而圖8(b)則表明,隨著迭代次數的增加,系統模型趨于穩定。當迭代次數等于250時,推薦效果最優。

(a) Douban Movie數據集中不同K值對MAE的影響
在傳統矩陣分解的基礎上,筆者充分考慮了用戶屬性信息、項目屬性信息、用戶對項目類型偏好信息,對矩陣分解中隱類信息的分解起到了增強作用。同時使用冷啟動用戶基于用戶屬性及所評項目類型得到近鄰集,從而計算出冷啟動用戶的初始評分預測值,替代在矩陣分解中的全局平均分,更能逼近冷啟動最終真實評分值。通過與其他算法進行比較,表明筆者提出的算法在推薦準確性方面有一定的提升。同時,在擴展性方面,也具備了一定的優勢。事實證明:筆者提出的算法在數據較為稀疏的情況下,充分考慮用戶屬性信息、項目屬性信息、用戶對項目類型偏好信息,能較好地解決用戶冷啟動問題,同時提高了推薦準確性。但是對于用戶屬性和項目屬性,其有著更為豐富的內容,且用戶和用戶、項目和項目、用戶和項目之間都存在某種程度的關聯。如何將這些信息加以考慮,對算法進行更深層次的優化,是未來研究的重點,也是需要進一步改進的方向。