陳 海,錢付蘭,陳 潔,趙 姝,張燕平
1.安徽大學 計算機科學與技術學院,合肥230601
2.安徽大學 計算智能與信號處理教育部重點實驗室,合肥230601
近年來,深度學習[1]模型在圖像分類領域的能力得到了指數級的提升,并成為人工智能領域的主要研究方向。然而在圖形圖像領域中存在深度學習模型魯棒性的問題,即已經訓練好的深度學習模型由于數據中少量噪聲的干擾,可能會造成圖像分類或者預測結果的較大偏差。這主要是由深度學習方法本身的局限性造成的。近年來,不少學者將深度學習方法應用到推薦系統中,推薦系統中也存在由于深度模型缺乏抗噪能力導致的推薦偏差問題。數據中含有噪聲是現實系統或者環境中不可避免的事實,如何減少噪聲對推薦結果的影響,設計具有抗噪能力的深度推薦模型,也成為當前推薦系統的研究問題。
學者們為了減少噪聲影響和提升抗噪能力,提出了一系列的深度學習推薦算法。Wang 等人[2]提出了ATMBPR(Adversarial Training-based Mean Bayesian Personalized Ranking)模型,該模型是基于貝葉斯個性化排序來執行Top-N推薦任務,通過對抗訓練MBPR 算法來最小化噪聲,進而提高算法的魯棒性。He等人[3]提出了一種對抗性個性化排序算法,在此算法上引入一個額外的目標函數來量化模型在參數擾動下的損失,使得模型更具魯棒性。Yuan 等人[4]提出了一種對抗協同自編碼器模型,通過在模型中增加噪聲嵌入權重矩陣來優化模型,從而平滑由于用戶評價不準確所帶來的自然噪聲干擾。Wang等人[5]將深度學習模型與基于MF(Matrix Factorization)的推薦系統相結合,提出了一種基于堆疊式判別去噪自編碼推薦系統SDDRS,從具有噪聲的Side Information 中提取有效的特征,從而與評分信息結合在一起,使得推薦結果更準確。
目前針對深度推薦算法中噪聲的處理大體上主要使用生成或是對抗模型來平滑自然噪聲對推薦性能的影響。也有部分算法直接對輸入數據噪聲進行降噪處理。而平滑自然噪聲可以通過優化目標函數最小化噪聲或者主動增加噪聲干擾優化模型的抗噪能力兩方面進行處理。本文從優化模型的抗噪能力出發,針對深度學習下推薦系統存在的噪聲問題提出了基于變分自編碼器的評分預測模型REVAE(REcommender Variational Auto-Encoder)。該模型是一種生成模型,通過在隱層表示中主動地添加噪聲,增加模型的健壯性,使得推薦結果不易受到噪聲的干擾,平滑了數據中自然噪聲對推薦結果的影響,從而提升了模型的推薦效果。首先,利用變分自編碼器(Variational Auto-Encoder,VAE)中后驗分布對隱層分布約束的特點,對REVAE 的隱層表示的分布進行約束。其次,VAE 具有獨特的編碼特點,也就是VAE有兩個編碼器,一個生成均值,另一個生成方差,本文利用方差動態調節噪聲強度的特點對隱層表示進行噪聲的添加。
本文的貢獻可以總結如下:
(1)在隱層表示中利用VAE 的特點進行噪聲的添加,并對隱層表示的分布進行約束,訓練得到具有抗噪能力的推薦算法模型。
(2)提出了一個新的模型REVAE,它基于VAE來進行評分預測任務。實驗結果表明,與其他模型相比,REVAE更具健壯性以及具有更好的推薦結果。
近年來深度學習被廣泛應用在圖像領域中,如Rosca等人[6]提出將自編碼器和生成對抗網絡結合在一起的深度模型,Takahashi等人[7]提出基于變分自編碼器的深度模型,都在圖像領域取得有效的成果。一些學者考慮到噪聲對模型的影響,但是大多數研究都是在輸入數據進行噪聲污染,如Li等人[8]提出基于降噪自編碼器的深度模型,Bigdeli等人[9]提出基于降噪自編碼器的深度生成模型,且都證明了其模型的可行性。近年來,一些學者將深度學習的自編碼器應用到推薦系統中,并取得了較好的結果。推薦系統近年來在銷售、電子商務等行業中扮演著重要的角色,大多數推薦模型都是執行Top-N推薦任務,少數推薦模型用于評分預測任務。RBM(Restricted Boltzmann Machine)[10]是第一個將神經網絡模型應用于推薦系統的研究,它的最終目的是對未評分的項目進行評分預測。隨著時代的發展,越來越多的推薦模型開始興起,如Sedhain等人[11]提出的AutoRec模型,該模型是基于自編碼器的評分預測模型;Wu等人[12]提出的CDAE 模型,該模型是基于降噪自編碼器進行Top-N任務的;Chae等人[13]提出的基于自編碼器的個性化排序模型,該模型充分利用了顯示反饋和隱式反饋信息;Ouyang等人[14]提出的基于自編碼器進行協同過濾的推薦模型;Yi等人[15]提出的AAE-RS模型,該模型結合評論和評分信息進行評分預測任務;Khan等人[16]在協同降噪自編碼器的基礎上提出的Top-N推薦任務;Shenbin等人[17]提出的RecVAE 模型,該模型是基于變分自編碼利用隱式反饋信息執行Top-N推薦任務。這些模型中CDAE和文獻[16]提出的模型考慮到噪聲對推薦結果的影響,但都是在輸入數據中添加噪聲,通過最小化預測的輸出與真實的數據集之差來達到降噪處理,這樣促使提出的模型需要去挖掘更多的用戶和項目的潛在信息,這些模型訓練好的參數是一個確定的值,因此得到的參數一旦稍微改動,將使推薦結果精度下降。而VAE 訓練得到的參數是一個分布,通過在此分布上隨機采樣得到隱層表示,然后生成輸出數據。在圖像領域中,VAE得到的輸出不僅可以重構輸入數據,還可以得到輸入數據以外的數據,只要在隱層分布中采樣即可。而遷移到推薦系統中,只要在隱層表示的分布范圍內,都可以有效重構輸入數據,而當隨機采樣的數據在隱層表示分布的峰值附近,得到的重構輸入數據效果最好,從而克服了參數變化對輸入數據的影響。這也是VAE的優點所在。
通過以上的研究和分析,本文結合VAE 的優點以及當前推薦模型存在噪聲干擾的問題,提出了一個新的評分預測模型REVAE,通過在模型上主動增加噪聲,重構輸入數據,訓練模型的抗噪能力,使得模型具有魯棒性,不至于因為外界噪聲導致推薦精度出現較大偏差。事實上外界噪聲的干擾在真實系統中是不可避免的,具有抗噪能力的模型可以通過平滑數據的自然噪聲所帶來的影響,保證和提升推薦精度。
本文將評分數據分為訓練集和測試集來完成推薦任務。在推薦設置中,有用戶N個,項目M個以及用戶和項目的交互Rij∈RN×M,每一個Rij代表用戶i對項目j的評分,其中評分信息是1 到5。推薦系統的最終目的是對未評分的數據進行評分預測。
本節將詳細介紹REVAE 模型,其結構如圖1 所示。圖中X為REVAE的輸入,通過一個非線性轉換函數f將輸入X映射到一個潛在的低維空間中得到ZI,其中μ、δ是由ZI得到的均值、方差,然后通過均值、方差得到ZS,其中ε是從高斯分布中隨機采樣得到,最后通過解碼層重構輸出,得到X′。模型主要分為三個階段,圖1(a)為編碼階段,圖1(b)為生成階段,圖1(c)為解碼階段。編碼階段是將輸入數據映射到一個低維空間中;生成階段主要是在隱變量上添加噪聲,隨機生成下一個隱變量;解碼階段是在隨機生成的具有噪聲的隱變量上對輸入進行重構。

圖1 REVAE模型框架Fig.1 REVAE model framework
變分自編碼器(VAE)作為深度生成模型的一種形式,是由Kingma 等人[18]于2014 年提出的基于變分貝葉斯(Variational Bayes,VB)推斷的生成式網絡結構。與傳統的自編碼器通過數值的方式描述潛在空間不同,它以概率的方式描述對潛在空間的觀察,在數據生成方面表現出了巨大的應用價值。如圖2所示。

圖2 變分自編碼器Fig.2 Variational auto-encoder
首先有一批數據樣本{X1,X2,…,Xn},其整體用X來描述,最好的結果是根據{X1,X2,…,Xn}得到X的分布p(X),然后通過p(X)來采樣,就可以得到所有可能的X了(包括{X1,X2,…,Xn}以外的),這是一個理想的生成模型,但是這種理想的生成模型很難實現,因此在給定輸入數據X的情況下,通過貝葉斯定理:

可知VAE 的編碼階段輸出的應該是Z的后驗分布p(Z|X)。但是這個p(Z|X)后驗分布很難計算,于是這里采用另一個可伸縮的分布q(Z|X)來近似p(Z|X)。通過深度網絡來學習q(Z|X)的參數,一步步優化q使其與p(Z|X)十分相似,就可以用它來對復雜的分布進行近似的推理。為了使得q和p這兩個分布盡可能相似,最小化兩個分布之間的KL散度。最終的損失函數為:

在VAE 中對后驗分布p(Z|X)假設為高斯分布,同時用KL散度來使得q和p最小化,這就給隱變量的分布添加了約束,生成的X′會接近于輸入X;另一方面,VAE在編碼過程中會生成均值和方差,VAE以其獨特的方式通過方差來動態調節噪聲的大小,使得VAE 具有良好的生成能力,這也是為什么VAE 被稱為生成模型的原因。
如圖1所示,REVAE共分為3個階段:
(1)編碼階段
輸入為X∈R,X是R的列向量,其中R∈RN×M。不同于VAE的是,REVAE在此階段多添加了一層隱層,即圖1 中的ZI。在編碼階段,REVAE 將輸入數據轉換為一個隱層的編碼ZI∈RD,D表示ZI的維數大小,表示如下:

其中,f為非線性轉換函數,θen表示編碼器的參數。由于其良好的非線性逼近能力,選擇非線性變換f作為深度神經網絡,本文實驗中選用的是sigmoid函數。
(2)生成階段
在生成階段,通過兩個全連接層由ZI得到均值μ,方差δ,然后通過VAE 中方差動態調節噪聲大小的特點,對ZI添加噪聲并進行隨機采樣,因此得到的添加噪聲后的隱變量ZS可以表示為:

其中,wμ、wδ為均值和方差的權重,bμ、bδ為均值和方差的偏置,且ε~N(0,1)。
(3)解碼階段
解碼器實施的是對輸入X的重構,因為REVAE旨在訓練一個具有抗噪能力的深度模型,所以解碼階段使用的是添加噪聲后的隱層表示,具體如圖1中解碼階段所示,重構的X′是由生成階段中添加噪聲后的隱層ZS得到,表示如下:

其中,f′是另一個非線性的解碼器函數,θde表示解碼器的參數,X′表示重構的輸出。
REVAE的損失函數定義如下:

本文優化此損失采用的是Adam優化函數,學習率設置為0.001。
第一部分是重構損失,表示解碼器是基于高斯分布的隨機采樣的編碼ZS來重構觀測數據,不同于VAE,這里隨機采樣的ZS是通過ZI添加噪聲后得到的,而ZI是由輸入數據直接得到的,此隱層中包含了輸入數據的潛在信息。越低的重構損失就表示編碼器學習了比較好的潛在表示,即模型解決了在隱層上存在噪聲的影響。第二部分是KL 散度,用來度量先驗分布和后驗分布p(ZS|X)的距離。這個散度反映了使用p(ZS|X)表示的信息損失,如圖1 中生成階段所示,ZS繼承了ZI的信息并隨機添加了一個高斯分布,KL散度的目的就是讓ZI和ZS的信息損失越低越好,這樣從隱層的角度充分處理了噪聲對模型的影響。
在REVAE 的隱層空間中,有兩個潛在表示ZI和ZS,前者是從輸入X直接編碼得到的,而后者是從后驗分布中隨機采樣得到的。由上面可以看出ZS是添加噪聲之后得到的潛在表示,因此選擇ZS來進行重構的潛在表示。
從式(4)中可以看出,ZI和ZS的期望和方差是不變的,因此對于同樣的輸入X,對應的ZI和ZS具有相同的統計特征,從而有:

這說明生成的ZS受到ZI分布的影響以及先驗分布pˉ(ZS)(或者ε)的影響。因此,ZS繼承了ZI的統計特征,在VAE 的基礎上巧妙地在輸入數據之后添加一層隱層表示,讓其包含輸入數據潛在信息,然后結合VAE 中方差動態調節噪聲的特點,在ZI的基礎上添加噪聲得到ZS,最后通過ZS解碼得到重構的輸出。
算法1 基于變分自編碼器的評分預測算法
輸入:用戶-項目評分矩陣Rij∈RN×M。
輸出:重構輸出X′。
步驟1初始化網絡參數θen、θde;
步驟2根據式(3)將輸入數據映射到潛在的低維空間,得到潛在表示ZI;
步驟3根據式(4)得到關于ZI的均值μ;
步驟4根據式(5)得到關于ZI的方差δ;
步驟5從高斯分布中隨機采樣ε作為噪聲;
步驟6根據式(6)生成加噪后的潛在表示ZS;
步驟7最后得到的潛在表示ZS經由式(7)重構輸出X′。
本文實驗使用的數據集為公開數據集Movielens 100k 和Movielens 1M。Movielens 100k 數據集包含100 000 個評分記錄,一共有943 個用戶對1 682 個項目的評分,所有評分值均為整數且不大于5,每個用戶評分至少評價20 部電影,評分越高表示用戶越喜歡這部電影。Movielens 1M 數據集包含來自6 040 位用戶對3 952 部電影的1 000 209 個評分記錄,每位用戶至少評價20 部電影,詳細信息如表1 所示。根據表1 可知,數據集越大,數據越稀疏。

表1 Movielens數據描述Table 1 Description of Movielens dataset
在本文的實驗中,采用了推薦系統中兩個常用的誤差度量來評估預測的準確性:均方根誤差(RMSE)、平均絕對誤差(MAE)。
RMSE表示如下:

其中,Rtest表示整個測試集,Rij表示第i個用戶對第j個項目的評分,′表示預測值。
MAE定義如下:

RMSE和MAE的值越小表示預測的準確度越高。
實驗用到的對比算法有:
RBM[10]:該算法是第一個將神經網絡模型應用于推薦系統的研究,它的最終目的是對未評分的項目進行評分預測。
NMF:矩陣分解中經典的非負矩陣分解算法。
SVD:基于用戶和項目的經典的奇異值矩陣分解算法。
2015年8月至2017年6月我院脊柱外科采用PVP治療椎體壓縮骨折患者105例,其中男性19例,女性86例,年齡45歲至97歲,平均69歲;所有患者術前均行MRI檢查,提示新鮮骨折椎體132個,所有患者病椎術中均采用負壓狀態下同軸取材法采集標本,所采集標本進行病理檢查,取材后常規行椎體成形術。
PMF[19]:概率矩陣分解模型是一種應用廣泛的矩陣分解模型。
HCRvSA[20]:基于自編碼器的半監督協同過濾模型。
U-AutoRec[11]:基于自編碼器的協同過濾模型。
BPMF[21]:用于推薦系統的貝葉斯概率矩陣分解。
I-RBM+INB[22]:基于受限玻爾茲曼機的協同過濾算法。
TWDA[23]:該算法提出了一種處理邊界區域的三支決策方法,并將邊界區域內的所有評價合理地劃分為正區域和負區域。
RegSVD[24]:基于SVD的評分預測算法。
HACF[25]:一種全新的分級自編碼器體系結構。在一個普通的堆疊去噪自動編碼器中,重構只發生在最后一層,中間層不直接負責的協同過濾算法。
TLCA[26]:一種結合時間加權和LDA 聚類的混合推薦算法。
REVAE使用公開數據集Movielens 100k和Movielens 1M進行實驗。實驗中使用用戶ID、電影ID和評分的信息。使用Adam 優化函數,學習率設置為0.001,編碼層激活函數為sigmoid函數。整個框架在TensorFlow上面進行編寫,共有4層全連接層。第一層編碼層對輸入進行編碼得到隱層表示ZI,輸出維度為500;第二層通過ZI生成均值和方差;第三層生成層隨機采樣潛在編碼得到添加噪聲的隱層表示ZS;第四層解碼層進行解碼。實驗周期為1 000,每訓練3 次輸出1 次結果,將90%數據作為訓練集,10%數據作為測試集,實驗結果取5次最佳結果的平均值。
實驗結果由表2和表3來闡述。表2使用RMSE指標來進行算法對比,表3使用MAE指標進行算法對比,黑體字表示結果最佳。

表2 實驗結果RMSE值對比Table 2 Comparison of experimental results on RMSE values
根據表2中Movielens 100k的結果可以看出,REVAE模型在RMSE 指標上數值為0.881,相比于其他算法至少提升1.0 個百分點,最多能夠提升8.1 個百分點,平均提升4.55個百分點。可以觀察到RBM、NMF、SVD、PMF算法的RMSE 值都在0.9 以上,其中HACF 的RMSE 值為0.901,下降得也比較明顯,而HCRvSA 和U-AutoRec的RMSE 值在0.9 以下,這兩個算法是基于自編碼器模型的,由此可見深度自編碼器模型在推薦系統中也是具有良好的推薦效果的。另外在Movielens 1M數據集的實驗結果中,REVAE在RMSE指標上數值為0.846,相比于其他算法至少提升0.3個百分點,最多能夠提升7.2個百分點,平均提升3.75個百分點。可以觀察到RBM、NMF、SVD、PMF、HACF 算法的RMSE 的數值比Movielens 100k的要低大概4個百分點左右。這表明數據集越大,算法可以學習更多用戶偏好信息,從而使預測評分更準確。這就是Movielens 1M 的實驗結果優于Movielens 100k 的原因。另外根據表1 對數據集的描述可知,Movielens 1M稀疏性要高于Movielens 100k,對算法推薦精度有一定的影響,因此推薦精度提升不夠明顯。相比之下,REVAE 的效果比其他算法有明顯的提升。在表3 的Movielens 100k 中,REVAE 的MAE 指標的數值為0.690,相比于其他算法至少提升0.9 個百分點,最多提升19.1個百分點,平均提升10個百分點。在Movielens 1M 中,REVAE 的MAE 指標的數值為0.660,相比于其他算法至少提升0.9 個百分點,最多提升3.8 個百分點,平均提升2.35個百分點。

表3 實驗結果MAE值對比Table 3 Comparison of experimental results on MAE values
通過以上實驗可以得出結論,REVAE 模型通過在VAE 的基礎上添加一層隱層表示,并根據VAE 的特點對此隱層進行約束和添加噪聲,使得模型的推薦精度更加準確,模型更加健壯。
He 等人[3]提出了一種基于生成對抗的排序算法APR,其目的是為了使模型更加健壯。APR 在user 和item的嵌入向量上添加對抗性擾動,使用博弈的思想來平滑對抗性擾動使得模型更加健壯;Wang 等人[2]提出一種對抗平均貝葉斯的排序算法AT-MBPR,該模型在添加對抗擾動時仿照APR 模型,在基于MBPR 的基礎上平滑了對抗性擾動,使得模型更加健壯。為了使REVAE 更加健壯,本文添加了一個生成過程,如圖1 所示,使用KL散度來衡量兩個分布之間的差異,進而平滑噪聲對模型的影響。為了證明該模型的健壯性,將生成過程移除,將移除生成過程后的模型稱為REVAE-g。在REVAE-g 的隱層上隨機添加噪聲,并和REVAE-g 以及REVAE的結果進行比較,實驗結果如表4所示。

表4 健壯性實驗結果對比Table 4 Comparison of experimental results on robustness
從Movielens 100k的結果中可以看出,移除生成過程后的模型在RMSE 的性能上下降了0.2 個百分點,在MAE指標上下降了0.2個百分點,在REVAE-g上添加隨機噪聲后,發現整體性能下降得很多,在RMSE 上就比REVAE下降了14.2個百分點,在MAE上下降了13.5個百分點。在Movielens 1M 數據集上,REVAE-g相比于REVAE,在RMSE上下降了0.1個百分點,在MAE指標上下降了0.3 個百分點,而在REVAE-g 上添加隨機噪聲后,相比于REVAE,RMSE下降了19.1個百分點,在MAE指標上下降了17個百分點。從總體的實驗結果中可以看出,當移除關鍵的生成過程之后,模型總體性能下降得不是很大,但是整體模型卻不夠健壯,從添加噪聲后得到的結果就可以看出來。因此,實驗得出,REVAE通過平滑自然噪聲對模型的影響之后,模型的健壯性得到明顯的提升。
在REVAE中,編碼階段將輸入X映射到一個潛在的低維空間中,在編碼層中,隱層維度是一個敏感的參數,這里對不同隱層的參數進行了實驗結果的對比,如表5 所示。從實驗結果可以看出,當隱層維度為500 的時候REVAE取得最佳性能。

表5 隱層維度的實驗結果對比Table 5 Comparison of experimental results on dimensions of hidden layer
本文提出了一種基于變分自編碼器的評分預測模型。外界噪聲的干擾在真實系統中是不可避免的,這樣會導致推薦結果精度不夠的問題。REVAE通過主動增加噪聲,訓練模型的抗噪聲能力,使得模型可以平滑數據的自然噪聲,從而提升推薦精度。REVAE 在VAE 的基礎上增加了一層隱層,該隱層是通過輸入數據直接得到的,利用VAE的獨特編碼方式,REVAE在該隱層的基礎上主動添加噪聲,得到加噪后的隱層表示,通過該隱層進行輸入數據的重構。實驗結果證明REVAE模型取得了較好的推薦結果。生成對抗網絡(GAN)廣泛應用于無監督學習和半監督學習領域中,受到GAN 中博弈思想的啟發,可以將REVAE中通過在隱層表示ZI上添加噪聲得到的下一個隱層表示ZS看作生成器生成的負樣本,在生成器和判別器的迭代訓練下得到的重構輸入數據可能比REVAE更準確,因此在接下來的工作中,將在REVAE 的基礎上考慮應用GAN 的思想使得模型更加健壯。