1. 程式人生 > >論文筆記:Tag-Aware Personalized Recommendation Using a Hybrid Deep Model

論文筆記:Tag-Aware Personalized Recommendation Using a Hybrid Deep Model

感想

這篇論文,我斷斷續續的看了幾天,作者做的工作也挺多的,我感覺論文的資料集還是不夠大,還不足以支撐訓練其它深度神經網路的地步。本文提出的混合深度學習完全是autoencoder的一個變體,用來解決標籤資料稀疏性,不可控詞彙表等問題,由於添加了重構誤差函式,和一般深度學習的稍稍損失函式不一樣,訓練時間消耗大大減少,最後,還採用了負取樣的技術,每一次訓練的時間大大提高。總體上,和深度學習不是那麼沾邊,但是也對我們用深度學習解決推薦問題提供了一個思路。

1. 介紹

在Web 2.0時代,許多網站引入了社會標籤系統,使用者可以自由的使用任意標籤(folksonomy)線上進行標註項。因為社交標籤是對相關項和使用者偏好的概述,標籤也幾乎不包含其創造者的敏感資訊(sensitive information)。他們對隱私增強的個性化推薦是很有價值的資訊。結果,研究者在標籤感知的個性化推薦上使用基於內容的過濾或者協同過濾上花費了很多精力。可是,使用者可以自由選擇他們的詞彙表,例如同形同音異義詞(homonyms),同義詞(synonyms),任意語言的詞(words in arbitrary languages),或者甚至是使用者創造的詞(user-created words)。這些導致了非常稀疏,冗餘,模糊的標籤資訊。這使得標籤感知的推薦系統的效能退化得嚴重。
一個對這個問題的解決辦法是在標籤空間中運用標籤空間。可是,聚類需要計算標籤之間的相似性,這是非常耗費時間的。另一個方法是使用自編碼器(autoencoders)。對於基於標籤的使用者資料的抽象特徵表達首次通過autoencoders進行了建模,之後把這些特徵作為基於使用者的協同過濾去產生推薦。即使這個方法比基於聚類的協同過濾方法取得的效果更好。但是還是有以下優點:模型的學習訊號和目標的個性化推薦不直接相關。例如,從不相關的標籤中區別使用者的目標項(user’s target items),因此,結果的抽象表示可能對於個性化推薦的不是有效地。

這篇文章中,受上述觀察的啟發,我們提出了用深度神經網路來解決不可控詞彙的問題,我們把基於標籤的使用者和項的資訊對映到一個抽象的深度特徵空間,使得使用者和他們的目標項的相似度最大,不相關的項使得相似度最小。我們把深度特徵空間的相似性叫做深度語義相似度(deep-semantic similarities),這是對基於相似度的深度語義個性化推薦的建模(deep-semantic similarity-based personalized recommendation,DSPR)。DSPR有著下面的優點:
(1)深度模型使用一個推薦學習訊號進行訓練,這直接把使用者目標項從不相關的項中區別開直接聯絡起來。因此,對於使用者和項資料(item profiles)的的抽象特徵對於個性化推薦是非常有效的表達。
(2)在SDPR的深度神經網路提取了更多抽象和密集的特徵。因此DSPR克服了輸入標籤空間的稀疏性和冗餘性。
(3)輸入的同義詞對於DSPR的輸出空特徵具有相似的影響,這解決了社交標籤空間的模糊性問題。
(4)解釋性是深度學習應用中的一個普遍關心的問題,這個問題在DSPR上可以得到改進,在輸出深度特徵空間中個,為每個抽象特徵找最有影響力的標籤,然後使用他們去總結對應特徵的語義。
即使取得了優秀的效果,訓練DSPR模型實際上是非常耗時的,這主要是應為DSPR有許多隱含層和大量的候選項。表面上,一方面,DSPR的深度神經網路有許多隱含層,當學習訊號傳播到開始的幾層的時候,訊號變得非常小且沒有意義(minuscule and insignificant),這就需要許多次的訓練以達到模型收斂。另一方面,為了訓練SDPR,訓練樣例中的使用者和所有候選項的深度語義相似性,這個相似性得在每次訓練中進行計算。因為對於線上推薦系統的候選項的數量通常非常大,訓練深度網路經常需要許多的訓練樣例,每一個訓練的過程是非常昂貴的。

為了解決前面的問題,我們提出了一個方法,叫做混合深度學習。直接把autoencoders和DSPR的神經網路整合,來產生基於重構誤差的額外學習訊號。實驗表明,混合深度學習可以加速深度學習模型的訓練過程,減少訓練模型需要的收斂時間。至於後面的問題,為了減少每次訓練的處理時間。我們利用負取樣的方法去隨機選擇樣例中的一小部分樣例去近似噪聲,這個高效的模型叫做利用負取樣的基於深度學習的混合個性化推薦方法(HDLPR-NS)。

2
貢獻

(1)    提出了DSPR模型,使用深度神經網路解決社交標籤中不可控的詞彙問題。

(2)    進一步提出了HDLPR-NS模型,使用混合深度學習和不採樣方法,訓練非常高效。

(3)    實驗結果表明,DSPR和HDLPR-NS的效果都超過了標籤感知推薦的最好方法的效果(是最好基準線的3.8倍)。通過混合深度學習和負取樣,HDLPR-NS的模型訓練比DSPR的效率高了幾百倍,然而這些方法取得了相似的訓練效果和推薦效能。

3準備工作(Preliminaries

個性化推薦定義如下,給定一個使用者u和一個項的集合{i1,i2,…,in},系統產生一個排序的推薦列表


其中,ia≥ib,當且僅當Rlv(u,ia)≥Rlv(u,ib), Rlv(u,i)是一個衡量專案i和使用者u的相似度量函式。
Folksonomy是一個元組F=(U,T,I,A), U,T和I是使用者,標籤和項的集合。A包含於UxTxI,A是一個指派集合(u,t,i),t為標籤,i為項,u為使用者。
使用者概況(user profile)是一個特徵向量

其中M=|T|, 即詞彙表的大小。Gju為

是使用者u為項打上標籤tj的次數。類似的,項概況(item profile)是一個向量


其中


即項i被標註為標籤tj的次數。


4 基於相似度的深度語義個性化推薦

圖1為一個DSPR模型(deep-semantic similarity-based personalized recommendation),DSPR把基於標籤的使用者(tag-based user)和項(item profiles)xu和xi作為兩個神經網路的輸入,兩個網路共享權重。這些輸入通過多個隱含層,投射到最終隱含層的一個抽象深度特徵空間,這個抽象特徵空間是用來計算使用者和項資訊抽象表達的相似度。最終,通過使用相關分數得到排序的推薦列表,相關分數是由softmax函式的相似度的結果計算的。

正式地,給定一個使用者畫像xu,項畫像(itemprofile)xi,一個全中矩陣W1,一個偏置向量b1.第一個中間隱藏層的輸出為h1:


Tanh作為激勵函式來用,相似的,第j個隱藏層的hj,j∈{2,…,K},定義如下:   Wj是權重矩陣,bj是偏置向量。K是隱藏層的層數。第K個隱藏層的輸出是使用者和項畫像的抽象特徵表示。分別用x ̃u和x ̃j表示 使用者u和專案i使用餘弦相似度計算器抽象表示的畫像,定義如下:

這叫做深度語義相似度(deep-semantic similarity)。

最終,給定使用者u的和專案I的相關性分數,是應用softmax函式產生u和i之間的深度語義相似度,這被用來對使用者u使用一個個性化推薦排序列表(rank a personalizedrecommendation list)。

一個給定使用者的目標項是那些使用者標好的資料,為了取得好的個性化推薦,這些項應該比其他的項有更高的相關性。我們於是以最大化目標項(target items)的相關性分數(relevance scores oftarget items)為目的,即最大化使用者和他們項的深度語義相似度,最小化無關項。正式的,這等同於最小化下面的損失函式:

Θ代表引數Wj和bj.(u,i*)是訓練集,為使用者u和目標項(target item)i*的對。是從訓練集中的(u,t,i*)產生的。
在訓練中,我們首先初始化權重矩陣Wj,使用隨機正態分佈,用零向量初始化bj;模型使用mini-batch梯度下降反向傳播進行訓練;最終,當模型收斂的時候或者達到最大訓練次數的時候停止。

5 基於混合深度學習的負取樣(Negative Sampling)個性化推薦

為了增強DSPR的訓練效率,確保實踐中的可拓展性(scalability),我們提出了使用負取樣的混合深度學習,以減少模型收斂所需要的訓練次數,並且減少每次訓練所需要的處理時間。這個模型叫做基於混合深度學習的負取樣個性化推薦(hybrid deep learning-based personalized recommendation with negative sampling,HDLPR-NS)。

5.1 混合深度學習

使用反向傳播訓練深度神經網路是困難的,當學習訊號傳遞到前面的幾層是,值變得非常小了,這樣會導致模型訓練更慢,需要更多的迭代次數才能夠收斂,這個問題叫做梯度消失。這可以使用反向傳播演算法預訓練模型,去微調整個網路。但是我們提出了一個新的混合深度學習的方法,它集成了autoencoders和深度神經網路DSPR,通過重構誤差產生額外的學習訊號(additional learning signals)。他結合了DSPR的深度語義相關性分數去形成模型的混合深度學習訊號。模型叫做基於混合深度學習模型的個性化推薦(hybrid deep learning-based personalized recommendation ,HDLPR)。

增加重構誤差作為學習訊號可以加速模型訓練過程,減少模型收斂所需要的訓練次數。在DSPR中,當傳播到前面幾層的時候,基於深度語義相似性的訊號會變得非常弱。因此學習前面基層權重矩陣非常的慢,例如W1和W2。在HDLPR中,我們使用了autoencoders中的系權重(tied weights),例如,解碼器的權重矩陣就是編碼器的轉置,基於重構誤差的學習訊號將會用於更新W1T,之後反向傳播更新W2T,W3T等等。因為更新WTj等同於更新Wj,它彌補了DSPR中的梯度消失問題。


圖2展示了我們提出的HDLPR的整個過程,HDLPR的結構和DSPR模型,但是添加了K層去形成decoder,通過把開始的K+1層作為encoder,我們把每層神經網路轉換成一個有系權重(tied weights)的autoencoder.隨後,decoders得到使用者和項畫像的抽象特徵表達。x ̃u和x ̃i作為輸入,在輸出層產生使用者和項畫像的重構誤差。用x’u,x’i表示。最後,我們用L2正則式計算計算使用者和項畫像的重構誤差。
正式的,編碼器的層數的定義和DSPR的神經網路一樣。至於decoders,中間K+j層隱含層的輸出HK+j,j∈{1,…,K-1},定義如下: 其中的T代表轉置的意思,bK+j為K+j隱藏層的偏置向量。第(2K-1)隱藏層的輸出用於重構使用者和項畫像。 使用者畫像的重構誤差用歐幾里得距離(L2正規化)來計算。通過整合DSPR的深度語義相關性分數的重構誤差,HDLPR的訓練目標就是最大化目標項的相關性分數,最小化訓練樣本中使用者和目標項的重構誤差。即最小化下面的混合損失函式:

第一項是一個L2正則,用於防止過擬合;第二項是訓練樣例中使用者和目標項畫像的重構誤差。第三項是基於深度語義相似性的學習訊號。λθ和λe引數表示對應項中的不同重要性。λθ>0, λe>0.λθ+λe<1。

5.2負取樣

即使混合深度學習極大地減少了模型收斂所需要的訓練次數,DSPR和HDLPR在每一次的訓練時間仍然很耗費時間。儘管L(Θ)是Lh(Θ)第三項,但是計算仍然非常昂貴。

特別地,在一次訓練的每個訓練樣例(u,i*),第二項L(Θ)需要計算u和所有候選項I的深度語義相似性的和。實際上,線上推薦系統中,候選項的數量往往非常大(數百萬),並且訓練一個深度神經網路經常需要訓練無數個訓練樣例;因此,訓練DSPR和HDLPR的代價非常高。可是,項本質上:不僅要最大化使用者和其目標項之間深度語義相似性,而且要最小化那些不相關的項,於是,它有助於把目標項從不相關的項中識別出來。

為了解決這個困境,我們使用負取樣已解決處理每個訓練樣例所需要的時間。在負取樣中,對每一個訓練樣例,我們隨機從候選項集中選擇很小數量(S)的無關項,其中的候選項為負樣例,是近似噪聲,用來區分目標項和無關項的。這個有負取樣的高效模型叫做HDLPR,它的損失函式定義如下:


其中,(u,i-)是負樣例,D-為一個負樣例資料集,對每個訓練樣例(u,i*),負樣例通過隨機取樣S中的負樣例i-產生。


6實驗

不可控詞彙問題的基準為:

i.         基於聚類的cosine相似度(CCS):層級聚類,以使用者和項作為聚類的特徵向量,他用cosine相似度的基於內容過濾,用於推薦。

ii.         基於內容的協同過濾(CCF):CCF和CCS在特徵模型上相似,但是它使用基於使用者的協同過濾做推薦。

iii.         基於Autoencoder的協同過濾(ACF):autoencoder用於獲取使用者畫像的抽象表達,把基於使用者的協同過濾用於推薦。

為了公平比較,實驗在相同的公開真實世界資料集(public real-worlddatasets)上執行,Zuo等人使用了Delicious和Last.Fm資料集,這是從Dellicious bookmarking系統和Last.Fm 自安縣音樂系統籌集的,併發布在了HetRec 2011上。在使用相同的預處理移除非頻繁標籤後,非頻繁標籤即在Delicious中使用少於15次的標籤,得到的資料集如表1:

正如假設,資料集中給定使用者的目標項是使用者標註的,我們隨機選擇了80%的指派集合作為資料集,5%的資料作為驗證集,15%的資料集作為測試集。訓練集中的指派(u,t,i*)用於構造使用者和項畫像,並且抽取使用者-項對用作訓練樣例,我們也從驗證集樣例上的指派中抽取使用者項對(user-item pairs),用作驗證集,驗證樣例是用來通過early stopping方法避免過擬合的。最後,從測試集上抽取的使用者-項對指派作為測試樣例,用來衡量推薦的效能。

所有的模型都用python和Theano實現,在NVIDIA Tesla K40GPU伺服器上執行,GPU有12GB的現存。DSPR的引數用網格搜尋選擇。用下面的方法設定:

i.         隱藏層的#是3;

ii.         第一層,二層,三層隱藏層的神經元的#分別是200,300,128;

iii.         訓練的batch size大小是128;

iv.         訓練模型的學習率是0.005.

這些引數和HELPR-NS模型一樣。另外

v.         有兩個額外的隱藏層,第四層和第五層的神經元的#分別是300和2000;

vi.         平衡引數λθ和λe分別設定為0.01和0.2;

vii.         每一個訓練樣例(S)的負樣例的#為127;

評估推薦系統最流行的矩陣是precision,reacall,F1-score。使用者僅瀏覽推薦的前幾項。我們把這些矩陣應用到一個階段的K個項之中(cutoff rank k)。例如只考慮推薦列表結果的top-k,叫做precision at k, recall at k, F1-score at k. 使用者在推薦列表上一直偏愛他們項排序的前k個,我們也用了mean reciprocal rank(MRR,說實話我也不瞭解,讀者自行百度吧)作為評估矩陣,這個矩陣使得排在前面的項給予更高的重要度。P-value用於衡量改進的意義。

6.1主要結果


圖3詳細描述了DSPR,HDLPR-NS和3個基準線的效能,評估的標準為[email protected],[email protected][email protected], 階段排序k=5, 10,…,5。資料集為Dellicious 和 Last.Fm.

如圖3,即使在隨機初始化和資料集分配上有點不一樣,CCF和ACF和Zuo等人在2016年報告的結果高度一致,一致在維度(magnitude),趨勢(tendencies,),相對效能(relative performances)。另外,DSPR和HDLPR-NS的效能非常相似,在Delicious 資料集刪,MRR上的p-value=94.31%.而在Last.Fm上,HDLPR-NS的效果稍稍比DSPR好。這表明,DSPR的混合深度學習和負取樣沒有使模型的效能退化。

通常,顯示DSPR和HDLPR-NS模型都超過了其它三個基準模型。DSPR和HELPR-NS的MRR都是最好基準的3.8(34%)倍,CCS在Delicious的p-value值小於0.04%,在Last.Fm小於0.09%,在其它矩陣上的提升也是相似的。DSPR和HDLPR-NS的優秀效能主要是應為其訓練目標直接能把使用者和不相關的項中區別開來。這些使用者和項的抽象特徵都是個性化推薦中非常有效的表達。

我們注意到圖3,項比資料集Last.Fm,DSPR和HDLPR-NS在Delicious上取得了更高的提升. 而DSPR和HELPR-NS在兩個資料集上都維持一個相對穩定的效能,但是在Delicious上的基準卻退化很嚴重,這可能是由於Last.Fm集中於音樂領域內,而Delicious是在頁面的多個域內;即使用一個更高的標籤移除閾值,Delicious仍然有一個更多變的,更冗餘的,更模糊的標籤空間,這使得基準測試的效能很差。這表明DSPR和HDLPR-NS在不可控詞彙表的問題上取得比baseline更好的效果。


6.2 效率和可拓展性

我們也調查了DSPR和HDLPR-NS的訓練效率(efficiency)和拓展性(scalability),記錄兩個模型的訓練時間用以比較其訓練的效率。但是標準的損失對比較模型訓練質量不合適,DSPR和HDLPR-NS有不同的損失函式。這裡,我們使在驗證集上用MRR去衡量模型訓練的質量。因為,兩個模型的訓練目標都是在個性化推薦上得到一個更好的效能。MRR-VS越高,模型就越好;為了避免過擬合,每10次訓練我們就計算一次MRR-VS的值,因此使用它不會增加訓練時間。

我們首先探究了使用混合深度學習的效果,為了避免干擾,我們使用HDLPR做比較做比較。


隨著訓練次數的增加,HDLPR比DSPR的收斂速度更快。DSPR在Delicious上迭代810次後收斂,在Last.Fm上迭代1750次後收斂。而HDLPR僅僅在Delicious上迭代了70次,在Last.Fm上迭代了80次。這表明混合深度學習可以有效地增強模型的學習過程,減少模型收斂所需要的迭代次數。當模型收斂後,HDLPR的MRR-VS值和DSPR的MRR-VS值幾乎一樣,在Delicious上,HDLPR為0.0244,DSPR為0.0245,在Last.Fm資料集上,HDLPR為0.0306,DSPR為0.0291。實驗證明,混合深度學習將不會使模型的訓練質量退化。

我們之後在HDLPR上應用負取樣,發現HDLPR-NS與HDLPR有一個相似的訓練過程。

表2表明在Delicious和Last,Fm上,在負取樣的幫助下,每一次迭代訓練的時間大大降低。證明,負取樣可以持續的減少每一次迭代的處理時間。

結果,HDLPR-NS上達到瘦臉的總時間消耗,在Delicious上只有0.665小時,在Last.Fm上只有0.296小時。在Dellicious是DSPR的492倍,在Last.Fm上是DSPR的668倍。總結一下,通過使用混合深度學習和負取樣,在維持相似訓練質量的情況下,HDLPR-NS的訓練效率比DSPR的更好。

參考文獻

[1]. Zhenghua Xu, Thomas Lukasiewicz, ChengChen, Yishu Miao, Xiangwu Meng:Tag-Aware Personalized Recommendation Usinga Hybrid Deep Model. IJCAI 2017: 3196-3202