張浩博,薛 峰,劉 凱
(合肥工業(yè)大學計算機與信息學院,合肥 230601)
隨著互聯(lián)網的快速發(fā)展,網絡信息呈指數級增長,如何從海量信息中分析和挖掘潛在有價值的知識或者規(guī)律,幫助用戶找到感興趣的信息意義重大。由于主動搜索用戶感興趣內容的方式局限性較大,因此推薦系統(tǒng)應運而生。推薦系統(tǒng)能夠快速地從海量信息中過濾出符合用戶需求的內容并主動推送給用戶,已被廣泛應用于電子商務推薦、個性化廣告推薦、新聞推薦等諸多領域。
推薦系統(tǒng)主要分為基于協(xié)同過濾的推薦系統(tǒng)和基于內容的推薦系統(tǒng)兩類[1-2]?;趨f(xié)同過濾的推薦系統(tǒng)利用用戶過去對物品的評分或交互歷史進行推薦?;趦热莸耐扑]系統(tǒng)則是為每一個用戶和物品生成一個畫像,然后向用戶推薦與其畫像最相似的物品集合?;趨f(xié)同過濾的推薦算法由于具有較好的推薦效果而受到學者的廣泛關注。矩陣分解(Matrix Factorization,MF)算法[3-4]是基于協(xié)同過濾的推薦算法中的主流算法,其利用用戶物品交互矩陣來學習用戶和物品特征的隱含向量。然而,在實際應用中,用戶物品交互矩陣通常會非常稀疏,從而導致矩陣分解算法的推薦效果不理想,同時矩陣分解算法還存在冷啟動問題[5],不適用于新用戶和新物品的推薦。為解決上述問題,文獻[6-8]提出方法將用戶或物品的一些輔助信息融入矩陣分解模型。這些輔助信息包括用戶人口統(tǒng)計學信息、物品類別、用戶評論等信息,但是這些方法只是將輔助信息作為附加項,在模型訓練過程中并沒有與矩陣分解算法中的用戶、物品隱含向量進行聯(lián)合更新。此外,由于輔助信息也比較稀疏,如果提取的輔助信息特征質量較差,則會影響矩陣分解算法效果,因此學者們嘗試研究性能更好的特征提取模型來得到更具表達力的用戶物品隱含向量。
近年來,深度學習技術[9-10]在自然語言處理、圖像識別等領域取得了巨大成功,其能從大量數據中發(fā)現其中的隱含特征,已有很多學者將深度學習技術應用于推薦系統(tǒng)。文獻[11-12]通過受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)、多層感知機(Multi-Layer Perceptron,MLP)等將深度神經網絡直接應用于協(xié)同過濾算法,但其沒有利用輔助信息進一步提升推薦效果。文獻[13]提出基于自編碼器的協(xié)同過濾算法AutoRec,該算法是較早將自編碼器應用于推薦系統(tǒng)的算法,此后涌現出一系列基于自編碼器的算法,如文獻[14]通過自編碼器提取物品特征并將其融入矩陣分解模型的物品隱向量中。該算法雖然提升了推薦效果,但會受限于提取出的物品特征質量。文獻[15]提出基于半自動編碼器的混合推薦算法,將用戶交互歷史與用戶輔助信息向量拼接后通過半自動編碼器進行重構以得到缺失評分。雖然該算法使用半自動編碼器進行推薦,但是推薦效果提升不明顯。文獻[16]提出基于邊際降噪自編碼器的混合協(xié)同過濾推薦算法,雖然該算法將輔助信息特征提取融入矩陣分解模型,但其沒有利用用戶和物品的交互歷史,推薦效果還有較大的提升空間。由文獻[14-16]研究結果可知:通過深度學習技術提取用戶和物品輔助信息,并結合矩陣分解模型進行聯(lián)合學習具有更好的推薦效果。本文提出一種基于半自動編碼器的協(xié)同過濾推薦算法Semi-Autoencoder MF,該算法利用半自動編碼器提取用戶和物品的輔助信息特征,然后將提取出的特征融入矩陣分解模型,使得半自動編碼器與矩陣分解模型進行聯(lián)合更新以提升推薦效果。
矩陣分解算法是運用最廣泛的協(xié)同過濾推薦算法之一,由于在Netflix[17]主辦的推薦系統(tǒng)比賽中取得優(yōu)異成績而備受關注。廣義上,矩陣分解是指將一個矩陣分解成兩個或多個矩陣的乘積。在推薦系統(tǒng)中,矩陣分解是指將高維的用戶物品交互矩陣分解成兩個低維的用戶矩陣和物品矩陣的乘積,如式(1)所示:
其中,R∈Rm×n表示用戶物品交互矩陣,U∈Rm×d表示用戶矩陣,V∈Rd×n表示物品矩陣,m表示用戶數,n表示物品數,d表示隱式特征的維數表示用戶對物品的預測評分矩陣。
基于上述基礎矩陣分解模型衍生出一系列矩陣分解的變種算法。例如,文獻[18]提出一種融合偏置的奇異值分解(Biased Singular Value Decomposition,Biased SVD)算法,在基礎矩陣分解模型上增加了偏置項進一步提高SVD 模型的預測精度。該文作者認為傳統(tǒng)矩陣分解模型將所有用戶和物品無差別對待,不符合實際情況。以電影推薦為例,若某些用戶非常挑剔,則對大部分電影的評分均偏低,此時就需要引入偏置項來消除這些因素的負面影響。Biased SVD 模型的預測評分計算如式(2)所示:
自動編碼器通常要求輸入層和輸出層的向量維度相等,但是當輸入層和輸出層的向量維度不等時,自動編碼器就有更加靈活的結構。受此啟發(fā),文獻[15]提出半自動編碼器結構,如圖1 所示。
圖1 半自動編碼器結構Fig.1 Structure of semi-autoencoder
基礎的半自動編碼器結構與自動編碼器結構類似,也包括輸入層x∈RS、隱藏層h∈RH以及輸出層x′∈RD,其中S、H、D分別表示輸入層、隱藏層、輸出層的向量維數且滿足H 其中,V∈RH×S和V1∈RD×H表示權重矩陣,b∈RH和b1∈RD表示偏置項。當計算損失函數時,半動編碼器旨在優(yōu)化x′與sub(x)的誤差。半自動編碼器結構具有以下優(yōu)勢:1)通過采樣輸入的不同子集來靈活地獲得輸入向量的多種表示;2)由于輸入維數大于輸出維數,因此可在輸入層中添加一些輔助信息。 由于用戶和物品由很多特征組成,因此這些特征在某種程度上可看作是矩陣分解模型中的隱式向量在其他特征空間中的表示。以電影為例,一部電影有類別、上映年份、演員、導演等結構化特征,還可能有電影海報、電影片段等視覺特征。這些多樣的特征對用戶和物品的實體表示會有不同的影響,并且可以映射到用戶或物品的隱式向量上。本文的目標就是設計一種能夠將用戶和物品的多樣特征與矩陣分解相關聯(lián)的方法,從而充分利用矩陣分解模型和輔助信息各自的優(yōu)勢來達到更好的推薦效果。由于半自動編碼器能夠有效提取輸入向量的特征,因此本文提出基于半自動編碼器的協(xié)同過濾推薦算法。 本文提出基于半自編碼器的協(xié)同過濾推薦算法Semi-Autoencoder MF,其模型結構如圖2 所示。 圖2 Semi-Autoencoder MF 模型結構Fig.2 Structure of Semi-Autoencoder MF model 在圖2 中,用戶與物品的相關輔助信息分別通過兩個半自動編碼器提取兩個中間特征,然后利用映射矩陣映射到矩陣分解模型的用戶或物品的隱式向量中,通過不斷縮小預測評分和真實評分之間的誤差進行模型訓練。由于模型的用戶和物品特征提取部分是對稱的,因此本文主要介紹用戶特征提取部分的具體過程。 假設向量ui表示用戶i對所有物品的評分,向量vj表示所有用戶對物品j的評分,xi表示用戶i的輔助信息,yj表示物品j的輔助信息。 1)將評分向量ui和用戶輔助向量xi拼接得到向量s,將其作為半自動編碼器的輸入層。 2)向量s經過半自動編碼器進行編碼得到中間層向量h,然后由h重構輸入層的用戶對物品的歷史評分子集得到輸出層,這部分的損失函數如式(7)所示: 3)使用一個映射矩陣M1將中間層h映射到用戶的隱含向量上,這樣在模型訓練時可通過反向傳播算法帶動半自動編碼器的更新,從而使得半自動編碼器的特征與矩陣分解模型相關聯(lián),實現聯(lián)合更新。使用映射矩陣實現聯(lián)合更新的優(yōu)勢在于聯(lián)合更新能同時根據半自動編碼器的特征提取損失函數和矩陣分解損失函數進行模型訓練,取得更好的訓練效果。 將物品特征提取步驟添加至用戶特征提取過程中,就能得到本文Semi-Autoencoder MF 模型的完整結構。Semi-Autoencoder MF 模型的損失函數定義如式(8)所示: 在式(8)中,等式右邊的第1 項代表矩陣分解模型的損失函數,第2 項和第3 項分別代表使用半自動編碼器提取用戶特征和物品特征的損失函數,第4 項和第5 項是將提取的用戶和物品特征分別映射到矩陣分解模型的隱式向量上的損失函數,第6項代表正則項。由于各函數都為凸函數,因此式(8)會收斂于全局最優(yōu)解。 為驗證本文算法的有效性,選取MovieLens-100K和Book-Crossing兩個數據集進行實驗。MovieLens-100K和Book-Crossing 是評估協(xié)同過濾推薦算法的常用數據集,其中,MovieLens-100K 數據集的評分值為[1,5]的整數,Book-Crossing 數據集的評分值為[0,10]的整數。這兩個數據集的統(tǒng)計信息如表1 所示。 表1 MovieLens-100K 和Book-Crossing 數據集的統(tǒng)計信息Table 1 Statistical information of MovieLens-100K and Book-Crossing datasets 本文從用戶和物品的輔助信息中提取相關特征,輔助信息的具體構成如表2 所示。對于MovieLens-100K 數據集,本文將用戶輔助信息和物品輔助信息分別編碼成30 維和39 維的multi-hot 向量;對于Book-Crossing 數據集,本文將用戶輔助信息和物品輔助信息分別編碼成10 維和32 維的multihot 向量。本文分別隨機采樣原始數據集的80%和90%數據項作為訓練集,剩余數據項作為測試集。同時,使用均方根誤差(Root Mean Square Error,RMSE)作為評價指標評估推薦效果。 表2 MovieLens-100K 和Book-Crossing 數據集的輔助信息Table 2 Auxiliary information of MovieLens-100K and Book-Crossing datasets 為驗證Semi-Autoencoder MF 算法的有效性,將其與以下推薦算法進行對比: 1)Biased SVD[18]:該算法是在基礎MF 算法上融合偏置項,提升了推薦準確性。 2)概率矩陣分解(Probabilistic Matrix Factorization,PMF)[19]:該算法是在基礎MF 算法上引入概率模型做了進一步優(yōu)化,其假設用戶和物品的隱含向量與用戶對物品的評分服從高斯分布。 3)SVD++[20]:該算法是Biased SVD 的變種算法,在Biased SVD 模型中融入隱式信息,通過用戶交互物品表示用戶偏好。 4)U-AutoRec[13]:該算法是基于自動編碼器結構范式的新型協(xié)同過濾推薦算法,其將添加隨機噪聲的評分矩陣的每一列作為輸入層,然后重構此列進而得到評分矩陣中的缺失值。 5)DCF[16]:該算法是一種基于概率矩陣分解和邊際降噪自編碼器的混合推薦算法。 在Semi-Autoencoder MF 算法與上述推薦算法的對比過程中,為保證公平性,基于用戶和物品隱含向量的協(xié)同過濾推薦算法(PMF、Biased SVD、SVD++、U-AutoRec 和DCF)中的隱含向量維度均設為20,每個實驗重復5 次后取平均值作為最終實驗結果。表3 和表4 分別為6 種算法在2 個數據集上采用80%和90%數據項的訓練集的實驗結果。 表3 6 種算法在MovieLens-100K 數據集上的RMSE 比較Table 3 RMSE comparison of six algorithms on MovieLens-100K dataset 表4 6 種算法在Book-Crossing 數據集上的RMSE 對比Table 4 RMSE comparison of six algorithms on the Book-Crossing dataset 由表3 和表4 的實驗結果可以看出:1)Semi-Autoencoder MF 和 DCF 比 PMF、Biased SVD、SVD++和U-AutoRec 的推薦效果更好,這說明將輔助信息融入矩陣分解模型能提升推薦性能;2)Semi-Autoencoder MF 比DCF 推薦效果更好,這說明使用半自動編碼器提取用戶和物品的輔助信息特征并融入矩陣分解模型中有助于提升推薦效果。 3.3.1 不同隱含向量維度的實驗結果 為驗證隱含向量維度對性能的影響,本文對比Semi-Autoencoder MF 和相關對比算法在不同隱含向量維度下的實驗結果。本文將隱含向量維度分別設置為10、20、40 和80,在MovieLens-100K 和Book-Crossing 數據集上的實驗結果如圖3、圖4 所示。 圖3 在MovieLens-100K 數據集上不同隱含向量維度的RMSE 對比Fig.3 RMSE comparison of different hidden vector dimensions on the MovieLens-100K dataset 圖4 在Book-Crossing 數據集上不同隱含向量維度的RMSE 對比Fig.4 RMSE comparison of different hidden vector dimensions on the Book-Crossing dataset 由圖3、圖4可以看出,隨著隱含向量維度的增大,各種算法的RMSE 都呈現下降趨勢,而Semi-Autoencoder MF算法在有關隱含向量維度實驗中的RMSE都優(yōu)于其他對比算法,充分說明了其性能的優(yōu)越性。 3.3.2 不同β值的實驗結果 Semi-Autoencoder MF 模型主要由矩陣分解部分及用戶和物品特征提取部分組成。β值在Semi-Autoencoder MF 模型中的作用是調節(jié)用戶、物品特征提取部分的損失函數對整個模型損失函數的影響。為觀察特征提取部分對推薦性能的影響,本文對不同β值下的Semi-Autoencoder MF 算法進行對比實驗,結果如圖5、圖6 所示。由圖5、圖6 可以看出,不同β值對實驗結果具有不同影響。當β=0 時,Semi-Autoencoder MF 模型就退化為普通矩陣分解模型。在MovieLens-100K 數據集上,當β=0.1 時Semi-Autoencoder MF 算法性能最佳,在Book-Crossing 數據集上,當β=0.05 時Semi-Autoencoder MF 算法性能最佳。 圖5 在MovieLens-100K 數據集上不同β 值的RMSE 對比Fig.5 RMSE comparison of different β values on the MovieLens-100K dataset 圖6 在Book-Crossing 數據集上不同β 值的RMSE 對比Fig.6 RMSE comparison of different β values on the Book-Crossing dataset 本文提出一種基于半自動編碼器的協(xié)同過濾推薦算法Semi-Autoencoder MF。利用半自動編碼器良好的特征提取能力對用戶和物品的輔助信息進行特征提取,將半自動編碼器和矩陣分解模型通過反向傳播算法進行聯(lián)合更新。在MovieLens-100K 和Book-Crossing 公開數據集上的實驗結果驗證了Semi-Autoencoder MF 算法的有效性。后續(xù)可將視覺、文本等領域的模態(tài)特征融入Semi-Autoencoder MF 算法中,進一步提升推薦效果。2 基于半自動編碼器的協(xié)同過濾推薦
2.1 算法原理
2.2 算法模型
3 實驗結果與分析
3.1 實驗數據集與設置
3.2 算法性能對比
3.3 超參數對算法性能的影響分析
4 結束語