孫肖依 劉華鋒 景麗萍 于 劍
(交通數據分析與挖掘北京市重點實驗室(北京交通大學) 北京 100044)(北京交通大學計算機與信息技術學院 北京 100044)(sunxiaoyi@bjtu.edu.cn)
隨著互聯網上的信息快速增長,推薦系統在信息過載的時代變得越來越不可或缺.推薦系統的主要目的是幫助用戶在大量的物品中選擇出他們可能感興趣的物品.一些推薦系統中還包括了對前N個物品(top-N)推薦,這些方法被廣泛應用于生成用戶的個性化推薦列表.例如在電子商務或者在線教育領域,系統通常只為用戶推薦一部分商品或課程,并根據系統推薦的前N個物品表現對推薦系統進行評估.
在已有的研究當中,協同過濾方法[1]由于只依賴于用戶過去的行為數據而在推薦系統中得到了廣泛的應用.其中基于隱因子模型(latent factor model, LFM)[2-5]的協同過濾方法因為其具有對隱藏的因果關系建模的能力而在諸多方法中備受關注.然而由于這些模型本質上都是線性模型,所以其建模能力有限.文獻[6]證明了在隱因子模型中添加非線性特征能夠顯著提高推薦的效果.所以在近些年,越來越多的方法提出將深度神經網絡應用到協同過濾中[7-12].然而與一般的深度模型相比,基于深度生成概率模型具有更強的靈活性,在推薦上取得了更好的效果.例如Mult-VAE[13]是一個具有多項式條件似然的深度生成模型,并使用貝葉斯推斷進行參數估計.然而,上述大多數模型并沒有為隱式反饋數據生成個性化的排序推薦列表.
因此本文提出了一個將列表級排序學習應用到深度生成模型上的方法去解決上述問題.我們用深度生成方法在隱式反饋數據上為每個用戶生成評分向量,并通過直接優化信息檢索中常用的評價指標歸一化折損累積增益(normalized discounted cumulative gain, NDCG)對評分進行建模.對于向用戶推薦有序的推薦列表來說,NDCG是對推薦結果度量非常重要的評價指標.
本文的主要貢獻有3個方面:
1) 提出了一種將列表級排序學習方法應用到深度生成模型上的方法,在隱式反饋數據上為用戶生成個性化排序推薦列表;
2) 利用一個平滑函數來近似NDCG評價指標,解決了NDCG評價指標是非平滑函數不能直接求導的問題;
3) 在3個不同領域的數據集上進行實驗驗證.結果表明我們所提出的模型相比于現有的一些推薦方法,能夠使用戶潛在感興趣的物品排在前面,從而提供更好的用戶體驗.
項目推薦的研究重點是預測用戶最喜歡的一組項目的個性化排名列表,其中協同過濾[1]是最常用的方法之一.在協同過濾方法的框架下,大多數推薦系統都致力于預測評分.隱因子模型LFM[2-5]是一種基于矩陣分解(matrix factorization, MF)方法的模型,已被證明在評分預測問題上有顯著的效果.這種隱表示建模對于表示用戶的歷史行為偏好非常有效.這些工作將推薦任務表述為一種回歸或多分類問題,推薦系統從訓練數據當中學習回歸或分類函數后對項目進行評分.這些方法統稱為點級推薦方法,與其不同的是,某些對項目推薦的研究方法著重于直接優化每個用戶的項目個性化排名.文獻[14]提出了一種貝葉斯個性化對級排序學習方法(Bayesian personal ranking, BPR),該方法根據用戶對于成對物品的相對偏好來優化模型;文獻[15]提出了一種通過整合用戶購買評分信息來推薦前N個物品的稀疏線性方法.不同于傳統的對級排序方法;文獻[16]通過直接最大化平均倒排名(mean reciprocal rank, MRR)評價指標來提升top-N推薦的性能.
近些年來的研究主要集中在非線性的特征學習,尤其是深度學習方面.相較于傳統方法,非線性模型能夠突破線性模型建模能力的限制.在一些早期基于深度模型的推薦方法中,例如基于神經網絡的協同過濾方法集中于利用用戶顯示反饋數據作為訓練集對物品做評分預測[8-9,17-18].Wide & Deep[19]是一個基于上下文的推薦模型,它利用多層感知機(multi-layer perceptron, MLP)來獲得隱表示.神經協同過濾(neural collaborative filtering, NCF)則將協同過濾中用戶和物品的隱表示之間點乘的操作,擴展成非線性的交互.文獻[7]在NCF的框架下提出了NeuMF,將MF和MLP統一在一個模型中,解決了MLP在獲取低秩關系時效率較低的問題.該模型以用戶嵌入和項目嵌入的組合作為MLP模型的輸入來進行預測.相比于NeuMF,NNCF[20]則在NCF框架的基礎上額外引入了用戶和物品的信息作為輸入.
與上述模型相比,深度生成模型可以有效結合線性隱因子模型與非線性深度網絡模型,因此我們可以探索由神經網絡驅動的非線性概率隱變量模型.文獻[18]提出了受限制玻爾茲曼機(restricted boltzmann machine, RBM),它是一種隨機遞歸神經網絡,本質上是二分圖結構的無向圖模型;文獻[21]提出E-RBM模型,它為每個用戶計算出top-N的物品推薦列表,彌補了RBM缺乏對推薦結果的可解釋性問題;文獻[22-23]利用堆棧式去噪自編碼器(stacked denoised autoencoder, SDAE)分別擴展了概率矩陣分解和邏輯回歸方法,并提出了統一的協同深度學習.最近,變分自編碼器(variational autoencoder, VAE)框架[24-25]在推薦系統中的應用使深度模型和隱變量模型關系更加緊密.協同變分自編碼器(CVAE)[26]將用戶和物品的低維表示與VAE生成的物品隱表示相結合,以獲得用戶的偏好矩陣.Mult-VAE[13]通過將原始的高斯似然替換為多項式似然來模擬隱式反饋數據的生成過程.然而,大多數深度生成推薦模型僅僅以重構偏好數據為目的,而無法顯式地為每個用戶學習個性化排序推薦列表.
本文提出了一個基于列表級排序方法的深度生成推薦模型.用平滑的函數近似NDCG,并使用隨機梯度下降方法完成深度生成模型的訓練過程.該模型能夠為用戶生成個性化排序推薦列表,具有很大的實際應用價值.
基于列表級排序的深度生成推薦方法包括點級隱式反饋數據生成和列表級排序列表生成2部分.模型結構如圖1所示.之后我們將介紹用來近似NDCG的平滑函數.

Fig. 1 The architecture of the proposed model圖1 本文所提出模型結構圖
本文考慮使用隱式反饋數據進行學習,并將用戶的點擊矩陣作為用戶與物品的交互矩陣進行二值化.文中用u∈{1,2,…,U}表示用戶,i∈{1,2,…,I}表示物品.zu是二進制向量,它索引了用戶在每個物品上點擊的歷史記錄.
我們提出的深度生成概率模型由VAE組成.每個VAE都利用編碼器將輸入壓縮為變分分布,然后解碼器通過接受從后驗概率分布中采樣的隱變量來獲得生成分布進行預測.
2.1.1 編碼器
為已觀測數據構建一個生成隱變量模型,首先假設用戶與物品交互數據點擊歷史eu=fφ(xu)可以從用戶的隱變量rj(在d維隱空間),其中zu可以從以標準高斯分布為先驗分布中采樣得到:
zu~N(0,Id).
(1)

1) 對于每個用戶u,重構一個已觀測數據的向量表示eu:
eu=fφ(xu).
(2)
2) 參數化用戶隱變量zu的變分分布:

(3)
其中,非線性函數fφ為適用于觀測數據的神經網絡,lφ為計算變分分布參數的線性變換,φ為fφ和lφ的參數集合.
2.1.2 解碼器
通過隱變量來生成預測的概率分布并且重構觀測數據,解碼器的生成過程為:


πu∝exp(fθ(zu)).
(4)
3) 從多項式分布中生成重構觀測數據xu:
xu~Mult(Nu,πu).
(5)

(6)
因為xu是從概率為πu的多項式分布中采樣得到的,所以用戶u的對數似然為
(7)
多項式分布中的概率分布值πu可以看作是用戶u對所有物品的喜好程度,因此它可以被用于為每個用戶構建所有物品的列表級排序列表.
我們可以通過最大化排序評價指標NDCG來構建列表級排序.但由于NDCG不可導,不能直接使用評價指標來作為損失函數進行優化求解,所以我們用連續可導的損失函數對評價指標進行近似.
具體來說,NDCG@k是一種用于評估排名列表前k個位置推薦效果的評價指標,它的定義為
(8)

(9)
由此可以看到NDCG評價指標是基于位置的,但是在訓練過程中,物品的位置會不斷發生變化,這使得對NDCG的處理變得更加困難.為了解決這個問題,我們需要使用索引重新定義NDCG.將NDCG重寫成:
(10)
其中,r(x)表示物品x的相關程度,r(x)越大表示物品越相關,等于0時為不相關物品.s(x)表示物品x當前的位置.但由于s(x)函數是非連續、不可導的,所以我們需要對它進行近似.利用深度生成模型得到的概率分布πu來重新表示s(x):
(11)
其中,πux,y=πux-πuy.即位置可以看作是排名函數的輸出.但由于指數函數也是非連續不可導的,所以用邏輯函數來近似指示函數1{πux,y<0}:

(12)
其中,α>0是一個度量常數.然后我們可以用近似后的函數來表示位置函數s(x):
(13)

(14)
按照文獻[27]的標準,我們使用變分推斷來學習隱變量模型,取數據的對數邊際似然的下界.這就形成了尋求最大化用戶u的目標,而數據集總體的目標函數是通過對所有用戶的目標函數求平均得到的:
logp(xu;θ)≥Eqφ(zu|xu)[logpθ(xu|zu)]-
KL(qφ(zu|xu)‖p(zu))?L(xu;θ,φ),
(15)
不等號右邊即為變分下界(evidence lower bound, ELBO).ELBO是參數為θ和φ的函數,我們可以通過采樣zu~qφ來獲得ELBO的無偏估計,然后通過隨機梯度下降法進行優化.也可以從另外一個角度來解讀ELBO:第1項可以解釋為重構誤差,第2項KL散度可以看作是參數的正則化項.那么我們可以為正則化項加上度量參數β來進行約束.這樣得到點級隱式反饋生成模型的目標函數:
LG(xu;θ,φ)=Eqφ(zu|xu)[logpθ(xu|zu)]-
β×KL(qφ(zu|xu)‖p(zu)).
(16)
為了建立個性化排序模型,我們定義了負的列表級排序模型的損失函數:
(17)
目標是最小化ELBO式(16)和排序損失式(17),可以通過最小化最終的目標函數來實現:

(18)
這里參數γ控制列表級排序學習對整體模型的影響程度.整體模型的訓練通過隨機梯度下降法來完成.
本節通過在3個真實數據集上的一系列實驗衡量我們所提出的基于列表級排序的深度生成推薦模型的表現,并將其與其他方法做對比.
我們在3個來自不同領域的真實數據集上進行了實驗:
MovieLens-100k(ML-100k).該數據集包含多個用戶對多部電影的評分.我們將用戶評分大于等于4的視為用戶偏好置為1,其余置為0.并且我們只保留至少看過5部電影的用戶.
XuetangX[28].該數據來自于中國最大的MOOC平臺之一的學堂在線,其中包括了用戶和他們學習過的課程.我們只保留了至少學習過5門課程的用戶.
Jester.這些數據包含了Jester笑話推薦系統中用戶對笑話的匿名評分.我們將這些評分映射到0~5的區間上,并且同ML-100k一樣劃分評分并保留至少評過5次分的用戶.
表1總結了實驗中使用的3個數據集的統計信息.

Table 1 Statistics of the Datasets表1 數據集的統計信息

用戶u的Recall@R表示為
(19)
其中,min(,)表示R和用戶點擊物品數目的最小值.當用戶所有點擊的物品都排在前R個位置,Recall@R將達到最大值為1.
DCG@R的表示為
(20)
NDCG@R是DCG@R的歸一化版本,所以NDCG@R的取值范圍在[0,1]之間.當用戶所有點擊的物品都排在前R個位置,NDCG@R將達到最大值為1.
我們隨機將所有用戶分為訓練集、驗證集和測試集,采用訓練集用戶的全部點擊歷史來訓練模型.為了對模型進行評估,通過獲取留出用戶(驗證和測試)的點擊歷史來學習模型的必要用戶級表示,然后通過對留出用戶和其未被觀測到的點擊歷史進行排序來計算度量結果.表1的最后一列列出了每個數據集的留出用戶數量.對于每個留出用戶,隨機選取80%的點擊歷史記錄來學習必要的用戶級表示,并使用其余的點擊歷史記錄來進行預測.
我們通過在驗證集用戶上評估NDCG@1來選擇模型的超參數和結構.對于所提出的模型,用于編碼器和解碼器的神經網絡具有對稱的體系結構,有3層感知機與結構[m→600→d→600→m],這里m表示物品的個數.在實驗中,我們將根據不同的數據集來選擇d的值.基于交叉驗證實驗,在3個數據集上都設置了α=10.使用tanh作為神經網絡層之間的激活函數.采用dropout[29]以0.5的概率應用于輸入層,并且不對任何部分應用權重衰減.使用Adam[30]對模型進行訓練,在ML-100k數據集上,設置批大小為150個用戶,在XuetangX和Jester數據集上設置批大小為2 000個用戶,在3個數據集上分別對模型訓練200次.
我們將所提出模型的實驗結果與3種類別的推薦模型做對比,包括傳統模型、深度神經網絡模型和深度生成模型:
1) 傳統模型.WMF[31]是用于隱式反饋的線性低秩模型;SLIM[24]也是一種學習稀疏物品到物品相似矩陣的線性模型,滿足了top-N推薦系統所要求的高質量和高效率.
2) 深度神經網絡模型.NCF[7]通過神經網絡探索用戶和物品之間的非線性交互;CDAE[9]是第一個將去噪自編碼器應用于top-N推薦問題的模型,它通過在輸入中加入每個用戶的潛在因子來提高降噪自編碼器的標準.
3) 深度生成模型:Mult-VAE[13]是一個具有多項式似然的生成模型,利用貝葉斯推斷進行參數估計,將變分自編碼器應用于隱式反饋的協同過濾.
首先進行一系列實驗來測試不同參數設置對模型結果的影響;其次定量地比較了我們所提出的方法與各種基線模型的排序估計.
3.5.1 參數影響
第1個實驗調查了隱空間大小d對推薦結果的影響.圖2顯示了在3個數據集上,d的大小從50變化至300時對Recall@10和NDCG@10結果的影響.正如我們所預期的,在一開始隨著d的增加,我們所提出的模型在每個數據集上的性能均會提高,并且ML-100k和XuetangX數據集在d=100,Jester數據集在d=150時分別達到最好的結果.當d的值在ML-100k和XuetangX數據集上超過100,在Jester數據集上超過150時,模型的表現就會下降.較大的d表示將在較高維的空間中表示用戶,但當較低維度的空間有足夠能力捕獲隱屬性時,增大d則會降低模型的泛化能力,不利于推薦性能的提高.

Fig. 2 Effect of the latent space size d in terms of NDCG@10 and Recall@10圖2 隱空間大小d對NDCG@10和Recall@10的影響
圖3顯示了正則化系數β在3個數據集上對Recall@10和NDCG@10評價指標的影響.結果表明隨著β值大小的增加,模型的表現變得更好,并且當ML-100k數據集上β=0.2,XuetangX數據集上β=0.03和Jester數據集上β=0.1時,模型結果最優,在此后隨著β的增大,模型的表現也隨之下降.這是因為較小的β可以充分利用zu的先驗和后驗之間的關系,而較大的β可能過于關注能力的限制,從而降低推薦的有效性.

Fig. 3 Effect of egularization coefficient β in terms of NDCG@10 and Recall@10圖3 正則化系數β對NDCG@10和Recall@10的影響
圖4顯示了排序損失系數γ在3個數據集上對Recall@10和NDCG@10評價指標的影響.結果表明了隨著γ值的增加,模型表現變得更優,并且當ML-100k數據集上γ=0.3,XuetangX數據集上γ=0.002和Jester數據集上γ=0.01時模型結果最好,在此后隨著γ的增大,模型的表現也隨之下降.結果表明,當γ增加時,我們所提出的個性化排名損失對于生成一個用戶的排序列表是有效的.但是當γ過大時模型性能會下降,這說明過大的γ會使個性化排名在模型的學習過程中占主導地位.

Fig. 4 Effect of ranking loss coefficient γ in terms of NDCG@10 and Recall@10圖4 排序損失系數γ對NDCG@10和Recall@10的影響
3.5.2 性能分析
本節將所提出的模型與3.4節提到的5個模型進行了實驗對比.我們在不同數量的推薦列表長度中計算了Recall和NDCG的結果,并記錄在表2~4中.最佳和次佳的結果分別用加粗和下劃線標記出來.從實驗結果可以看出,包括我們所提出的模型在內的多數深度模型(Mult-VAE,CDAE,NCF)比傳統模型(SLIM,WMF)在大多數實驗結果上表現得更好,這表明非線性的特征能夠有助于提升推薦效果.然而SLIM在ML-100k數據集上的實驗結果上好于一些深度模型,因為SLIM對稀疏數據上的top-N推薦更有效.此外,在大多數實驗結果中,包括我們所提出的模型和Mult-VAE在內的深度生成模型表現要優于其他深度模型CDAE,NCF,這表明了點級數據匹配的生成過程有助于學習更有效的用戶隱表示.我們所提出的模型在所有實驗上優于其他的深度方法Mult-VAE,CDAE,NCF,這表明了同時考慮隱式反饋數據生成和列表級排序可以提高推薦的有效性.

Table 2 Comparison Between Various Baselines and Our Proposed Method for ML-100k Dataset表2 在ML-100k數據集上基線模型與我們所提出的方法的對比

Table 3 Comparison Between Various Baselines and Our Proposed Method for XuetangX Dataset表3 在XuetangX數據集上基線模型與我們所提出的方法的對比

Table 4 Comparison Between Various Baselines and Our Proposed Method for Jester Dataset表4 在Jester數據集上基線模型與我們所提出的方法的對比
本文提出了一種將列表級排序學習方法應用到深度生成推薦模型中,生成隱式反饋數據的個性化排序推薦列表的方法.該模型可以作為聯合深度生成方法,采用多項式分布對隱式反饋數據進行特征描述,利用列表級排序模型對排序列表進行學習.實驗表明,該模型在一些場景下具有為用戶生成個性化排名列表的能力,例如課程、電影推薦.在所有實驗情況下,該模型在3個實際數據集上的表現均優于現有的一些排序模型.