1. 程式人生 > >Deep Learning based Recommender System: A Survey and New Perspectives (2)

Deep Learning based Recommender System: A Survey and New Perspectives (2)

感想

篇幅有限,這是接著上面的續篇,let's continue

4.2基於Autoencoder的推薦系統

現存的兩種把autoencoder運用到推薦系統上的方法為:(1)使用autoencoder在bottleneck層學習低維特徵表達;(2)直接在重構層填充評分矩陣的空白。

4.2.1 僅僅依賴於Autoencoder的推薦

AutoRec

AutoRec把使用者部分向量r^((u))或者物品部分向量r^((i))作為輸入,旨在在輸出層重構它們。明顯的,它有兩個變體:基於物品的AtuoRec(Item-based AutoRec, I-AutoRec)和基於使用者的AutoRec(User-based AutoRec, U-AutoRec)。對應兩種型別的輸入。這裡,我們只介紹I-AutoRec, U-AutoRec可以很容易的推匯出來。

上圖為I-AutoRec的結構。給定輸入r^((i)),重構輸出為:

其中f和g是激勵函式,引數θ={W,V,μ,b}. I-AutoRec的目標函式定義為:

其中,表示的僅僅考慮觀察的評級,目標函式可以通過Resilient Propagation(收斂得更快,產生較好的結果)或者L-BFGS(Limited-memory Broyden FletcherGoldfarb Shanno algorithm).)進行優化。Auto在部署前有四個值得注意的點: 1.I-AutoRec比U-AutoRec表現得更好,這可能是由於使用者部分觀測向量的偏差過大造成的。
2.不同激勵函式的結合會對結果影響很大。
3.增加隱藏單元的大小會提升結果,因為拓展隱藏層的維度會給予AutoRec對輸入特徵(the characteristics of the input)更多的建模能力。
4.增加更多的層來構造更深的網路會有效的提升效能。

Collaborative Filtering Neural network(CFN)

它是AutoRec的一個拓展,有兩個優點:(1)它利用了降噪的技術,使得CFN更加的魯棒;(2)它融合了邊資訊來緩解稀疏性和冷啟動的影響,例如使用者畫像和物品描述。CFN的輸入是部分觀察向量,它有兩個變體:I-CFN和U-CFN,分別把r^((i))和r^((u))作為輸入。
作者用了三種corruption的方法來corrupt輸入:Gaussian noise,masking Noise和salt-and-pepper noise。為了處理丟失的元素(它們的值為0),我們強加了masking noise,作為在CFN中的強正則項。 讓r^((i))表示腐敗的輸入(the corrupted input),訓練損失的定義如下:

在這個等式中,表示觀察元素的索引,表示corrupted元素的索引。α和β是平衡這兩個部件影響的超引數,代表對corrupted輸入的重構。
進一步拓展的CFN也融合了邊資訊,不同於以前把邊資訊融入第一層,CFN在每一層都注入了邊資訊。於是,重構輸入變為:
其中,si是邊資訊,{r ̃^((i) ),s_i}表示r ̃^((i) )和s_i的連線操作,混合邊資訊來改進預測精度,加速訓練過程,使得模型更加魯棒。

Autoencoder-based Collaborative Filtering(ACF)

據我們所知,ACF是第一個基於Autoencoder的協同推薦模型。和以前使用部分觀察向量不同,它把向量分解為整數評級。例如,如果評級分數是整數,在[1,5]的範圍內,每個r^((i))被分為5部分向量。

上圖是一個ACF的例子,評級範圍是[1,5],陰影的條目表示使用者已經對電影進行了相應的評級,例如使用者給物品i評級為1,給物品2評級為4。和AutoRec以及CFN相似,ACF的代價函式旨在減少均方平方損失,ACF的評級預測的計算是對每個條目的五個向量的求和,在這個樣例中,評級的最大值為5。它使用RBM去預訓練引數以避免區域性最優值,堆疊一些autoencoder在一起也可以稍稍提高精度。可是,ACF有兩個缺點:(1)它不能解決非整數評級;(2)部分觀察向量的分解會增加輸入資料的稀疏性,導致精度的降低。

Collaborative Denoising Auto-Encoder(CDAE)

回顧的這三個模型早期主要是為評級預測而設計的,CDAE主要用於排序預測(ranking prediction)。CDAE的輸入是使用者部分觀察的隱式反饋r_pref^((u)),如果使用者喜歡電影,輸入的值為1,否則為0。它也可以被認為是一個偏好向量,用來把使用者的興趣對映到物品上。

上圖表示的是CDAE的結構,CDAE的輸入用高斯噪聲進行了處理,corrupted的輸入r ̃_pref^((u))遵循一個條件高斯分佈重構輸入的定義為:

其中,V_u∈R^K表示上述使用者結點的權重矩陣,每個使用者的權重矩陣都是唯一的,並且極大地提高的效能。引數是通過最小化重構誤差獲得的。

其中,損失函式可以是平方損失或者logistic損失,採用l2-norm來正則化權重項和偏置項,而沒有采用Frobenius範數.

這裡解釋一下Frobenius norm:向量v的歐幾里得範數或者說l2範數為,v有n個元素,


一個m*n(m>2,n>2)的矩陣的x的Frobenius Norm定義為,

CDAE使用SGD初始的更新所有反饋的引數。可是,作者認為這對將所有的評級考慮在內的真實世界應用是不實用的,因此它們採用一個負取樣技術從負集合(使用者沒有進行互動的物品)中取樣一小部分資料集,這減少了時間複雜度,而且評級質量沒有退化。

4.2.2 把傳統的推薦系統和Autoencoder整合

緊耦合模型(Tightly coupled model)同時學習autoencoder和推薦模型的引數,這使得推薦模型為autoencoder提供指導,以學習更多的語義特徵。鬆耦合模型分兩步來做的:通過autoencoder來學習突出的特徵,然後把這些特徵用於推薦系統。這兩種形式都有其優點和缺點。例如,緊耦合模型需要精心的設計和優化,以避免區域性最優,但是推薦和特徵學習可以同時進行;鬆耦合方法可以很容易地拓展現有的先進的模型(advanced models),但是需要更多的訓練步。

緊耦合模型

協同深度學習(Collaborative Deep Learning, CDL)
CDL是一個層級的貝葉斯模型,它把SDAE(stacked denoising autoencoder)融入到了概率矩陣分解中;為了無縫的結合深度學習和推薦模型,作者提出了一個一般的貝葉斯深度學習框架,框架由兩個緊鉸鏈元件組成:感知元件(深度神經網路)和特定任務元件。特別地,CDL的感知元件是一個序數的SDAE的概率解釋,PMF扮演的是特定任務的元件。這種緊耦合可是使CDL平衡邊資訊和評級的影響。CDL的生成過程如下:

其中,Wl為l層的權重矩陣,bl為l層的偏置矩陣,Xl代表第l層。λ_w,λ_s,λ_n,λ_v,λ_u是超引數,C_ui是一個置信引數,用來衡量觀察的置信度。

上圖的紅色方框為CDL的圖模型。作者利用EM風格的演算法來學習引數,在每一次迭代中,首先更新U和V,隨後通過固定U和V來更新W和b.作者也引入了一個基於取樣的演算法來避免區域性最優。
在CDL之前,Wang等人提出了一個相似的模型用於標籤推薦(tag recommendation),relational stacked denoising autoencoders(RSDAE)。RSDAE和CDL的區別為RSDAE用一個關係資訊矩陣代替了PMF.CDL的另一個拓展是collaborative variational autoencoder(CVAE),它用variational autoencoder來替換CDL的深度神經元件。CVAE學習內容概率因子變數(probabilistic latent variables),用於表示內容資訊(content information),這可以很容易的融合多媒體資料來源。
Collaborative Deep Ranking(CDR)
CDR是一個特別為top-n推薦的成對的框架,CDL是一個point-wise模型,最初是為評分預測而提出來的。可是,研究證明成對的模型對評分列表產生更合適。實驗結果也證明CDR在評分預測上超過了CDL的表現。

上圖的右邊為CDR的結構,CDR的第一個和第二個生成步驟和CDL一樣,第三步和第四步如下:


其中δ_uij=rui-ruj,代表使用者對物品i和j的成對的關係,C_uij^(-1)是一個置信度的值,它表示使用者u對物品i比對物品j的偏好程度,優化過程和CDL一樣。

Deep Collaborative Filtering Framework
它是一個融合深度學習方法和協同過濾模型的一般框架,有了這個框架,我們就很容易利用深度學習技術來輔助協同推薦。正式地,深度協同過濾框架定義如下:

其中,β,ℽ和δ是權衡引數,用來均衡這三個部分的影響,X和Y是邊資訊,l(.)是協同過濾的損失,L(X,U)和L(Y,V)扮演著鉸鏈的角色,連線深度學習和協同過濾模型,以及連線邊資訊和隱式因子。這個框架的頂部,作者提出了基於協同過濾模型的marginalized denoising autoencoder(mDA-CF)。和CDL相比,mDA-CF是一個autoencoder計算高效的變體。它通過邊緣化損壞的輸入,以節省了尋找充足的損壞輸入版本(searching sufficient corrupted version of input)的代價,這使得mDA-CF比CDL可拓展性更強。另外,mDA-CF嵌入了使用者和物品的內容資訊,而CDL只考慮物品特徵的影響。
框架圖如下:

鬆耦合模型

AutoSVD++利用的是contractive autoencoder去學習物品的特徵表示,之後把特徵整合到經典的推薦模型,SVD++。提出的模型有如下的優點:(1)和其它autoencoder變體相比,contractive autoencoder能捕獲無窮小的輸入變化;(2)它對隱式反饋進行建模,以進一步提高精度;(3)有一個高效的訓練演算法,可以減少訓練時間。
HRCD是一個基於autoencoder和timeSVD++的混合協同模型,這是一個時間感知模型,它使用SDAE學習從原始特徵中學習物品表示,目的是解決冷啟動問題。可是,基於相似度的冷物品的推薦就算代價很高。

4.3基於卷積神經網路的推薦系統

卷積神經網路能強有力的處理視覺,文字和聲音資訊。大多數基於CNN的推薦系統都是利用CNN做特徵提取。

4.3.1 僅依賴於CNN做推薦

Attention based CNN.

Gong等人提出了一個基於注意力機制的CNN系統做微博的hashtag推薦,它把hashtag推薦看作是一個多類別分類問題。提出的模型由全域性通道(global channel)和區域性注意力通道(local attention channel)組成。global channel由卷積濾波器和最大池化層組成。所有的詞都編碼為global channel的輸入,local attention channel有一個attention層,視窗大小為h,閾值為η,用來選擇有資訊的單詞(在這個工作中被稱為觸發詞)。因此,只有觸發詞在下面的層中起作用。這裡,我們講一下區域性注意力channel的細節。令w_(i:i+h)表示單詞wi,…wi+h的連線,視窗的中間的單詞(w_((2i+h-1)/2))計算:

其中,W為權重矩陣,g(.)為非線性激勵。只有得分超過η的單詞會保留下來。

上圖為attention-based CNN模型。左邊的部分代表區域性注意力channel,右邊的部分代表CNN全域性channel。在接下來的工作中,Seo等人利用兩個神經網路來學習使用者和物品文字評論的特徵表示,在最後一層用點積預測得分。

Personalized CNN Tag Recommendation

Nguyen提出了基於CNN的個性化標籤推薦系統。

結構如上圖,它利用卷積核池化層去得到圖片片段的視覺特徵,注入使用者資訊來產生個性化推薦。為了優化網路,採用了Bayesian Personalized Ranking(BPR)演算法最大化相關和不相關的標籤(tags)。

4.3.2 把CNN融入到傳統的推薦系統中

和AE一樣,CNN可以融入到傳統模型中。可是,現有的整合型別沒有像建立在AE上的型別那樣豐富,前面基於AE的回顧應該向CNN拓展。

緊耦合模型

Deep Cooperative Neural Network (DeepCoNN)
DeepCoNN採用了兩個並行的卷積神經網路,來對使用者行為和物品屬性進行建模,這些來自評論文字。在最後一層,運用因子分解機(the factorization machine)來捕捉評分預測的互動。利用評論文字豐富的語義表示,緩解了稀疏性問題,增強了模型的可解釋性。它利用word embedding技術,把評論文字對映到一個低維的語義空間,也保留了單詞序列的資訊。抽取的評論表示通過一個卷積層,一個最大池化層,一個連續的全連線層。使用者網路的輸出x_u和物品網路的輸出x_i最終連線在一起作為因子分
解機的輸入。
ConvMF. ConvMF結合了CNN和PMF模型,結合的方式和CDL相似。CDL使用autoencoder學習物品特徵表示,而ConvMF利用CNN學習高階物品表示。ConvMF和CDL相比,其優點為CNN可以捕獲更精確的物品上下文資訊,這些是通過word embedding和卷積核實現的。

上圖為ConvMF的圖結構,通過替換CDL中的和CNN輸出cnn(W,X_i), 其中W為CNN的引數,我們很容易得出這個概率模型的公式。ConvMF的目標函式定義為

其中,λ_u,λ_v,λ_w是超引數。U和V通過座標下降法學到,CNN的引數是通過固定U和V得到的。

這裡解釋一下座標下降法:(1)座標下降法在每次迭代中在當前點處沿一個座標方向進行一維搜尋 ,固定其他的座標方向,找到一個函式的區域性極小值。(2)座標下降優化方法是一種非梯度優化演算法。在整個過程中依次迴圈使用不同的座標方向進行迭代,一個週期的一維搜尋迭代過程相當於一個梯度迭代。(3)gradient descent 方法是利用目標函式的導數(梯度)來確定搜尋方向的,該梯度方向可能不與任何座標軸平行。而coordinate descent方法是利用當前座標方向進行搜尋,不需要求目標函式的導數,只按照某一座標方向進行搜尋最小值。
詳情請看我的參考文獻。

鬆耦合模型

根據CNN處理的特徵型別的不同,我們把鬆耦合模型分為以下的三個類別。
CNN for Image Feature Extraction

Wang等人調研了視覺特徵對POI(Point-of-Interest)推薦的影響,提出了一個視覺內容增強的POI推薦系統(POI recommender system,VPOI)。VPOI採用了CNN去提取圖片特徵。推薦模型建立在PMF之上,利用(1)視覺內容和隱式使用者因子的互動;(2)視覺內容和隱式位置因子的互動。Chu等人利用了餐廳推薦上的視覺資訊(例如食物的圖片和餐廳的陳設)的有效性,通過CNN提取視覺資訊,加上文字表示,作為MF,BPRMF和FM的輸入,用來測試他們的效果,結果表明視覺資訊在一定程度上提升了效能,但是不明顯。He等人設計了一個視覺貝葉斯個性化排序(visual Bayesian personalized ranking)演算法,把視覺特徵融入到矩陣分解中;He等人又對VBPR進行了拓展,探索使用者的時尚感知,以及當用戶考慮選擇物品的時候,視覺因素的進化。

CNN for Audio Feature Extraction
Van等人提出了使用CNN來從音樂訊號中提取特徵。卷積核和池化層允許在不同時間尺度上操作。這個基於內容的模型可以緩解音樂推薦中的冷啟動問題。讓y^'表示CNN的輸出,y表示從權重矩陣分解學到的物品隱式因子,CNN的目標是最小化y和y^'的平方誤差。
CNN for Text Feature Extraction
Shen等人建立了一個e-learning資源推薦模型,它使用CNN從學習資源的文字資訊中提取物品特徵,例如學習材料的介紹和內容,然後做推薦。