天天看點

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

**

A Simple Convolutional Generative Network for Next Item Recommendation

**

2019 WSDM

這篇文章主要是與Caser進行對比,設計了NextItNet模型,它借鑒pixelCNN的思想,采用層疊的1維空洞卷積擴大感受野來提取item序列特征,加入了殘差學習的機制以防止梯度消失的問題,并且為了減少模型中的參數,使用了1*1卷積核進行降維和升維操作。

Problem

  • 基于RNN的序列推薦模型,通常依賴于整個過去的隐藏狀态,不能充分利用序列進行并行計算,是以模型的速度在訓練和評估中受到了限制。
  • Caser的局限性:

    (1)對長序列資料模組化時,使用max pooling不能确定重要特征出現的次數(可能有多個重要特征,但max pooling隻提取了一個)并且無法确定該重要特征的位置;

    (2)Caser屬于淺層網絡,難以捕獲複雜的關系以及對長期依賴模組化;

    (3)在生成下一個item時,caser隻考慮了最後一個item的條件機率分布。

Caser的大緻結構:

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

本文模型與Caser的不同之處:

(1)機率估計顯式模組化了序列中所有item的狀态轉移分布,而不僅是最後一個item;

(2)NextItNet是一個深層的網絡結構;

(3)卷積層采用的1維空洞卷積而不是标準的2維卷積;

(4)沒有使用pooling層。

對Caser局限性(3)的解釋說明:

Caser和GRURec在預測下一個item xi時,僅考慮了x0:i−1即前i-1個item,即是單一條件機率:p(xi |x0:i−1, θ)

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

是以,通常情況下需生成多個子序列資料進行模型訓練

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

作者認為這種方式是分别對子序列進行各自優化,不能保證最優結果,而且會導緻很多計算上的浪費。

于是作者采用了如下預測方式:輸入序列為x0:14,目标為x15,輸出為x1:15

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

p(x)表示item序列x = {x0, …, xt }的聯合機率分布,作者使用了條件分布的乘積對p(x)模組化:

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

Network Architecture

Embedding Look-up Layer:

給定item序列 {x0, …, xt },對前t個item {x0, …, xt−1} 做embedding,每個item embedding的次元為2k

得到item embedding矩陣大小為t×2k

Dilated layer(空洞卷積層):

使用空洞卷積增大感受野的同時不會改變“圖像”大小,,間隔使用零填充,不會引入更多的參數,是以更适用與長序列。

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

其中,使用的卷積核大小為1×3,感受野(receptive field):r,第j層卷積層:Fj,通道(channel):C,空洞大小:l(每隔l-1個孔卷一下)

b圖中,空洞大小l取值為 1,2,4,8,由這四層堆疊而成。當卷積核寬度為f=3時,空洞卷積的感受野呈指數增長為 r=2(j+1)-1,而普通卷積的感受野呈線性增長為r=2j+1。

空洞卷積的視窗大小為:

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

空洞卷積運算的結果:

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

One-dimensional Transformation:

由于卷積層采用了1維空洞卷積,而embedding層得到的是size為t×2k的嵌入矩陣E。是以,需先将E reshape。

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

Masked Convolutional Residual Network

使用殘差塊,緩解梯度消失問題。

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

(a)是每經過一次卷積就進行一次殘差連接配接,其中采用1×1卷積将通道數從2k縮到k,再用1x1卷積将其恢複為2k,用以減少網絡中的參數;

(b)是每經過兩次卷積就進行一次殘差連接配接(如圖2(b)中的藍線)。兩圖采用的normalization均為layer normalization。

(a)中參數個數:1 × 1 × 2k × k + 1 × 3 × k × k + 1 × 1 × k × 2k = 7k2

(b)中參數個數:1 × 3 × 2k × 2k = 12k2

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

Dropout-mask

為了避免未來的資訊洩露,不讓網絡用未來的item資訊預測目前item的資訊,作者使用方式(d)進行padding,padding的大小為(f − 1) ∗ l。

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

Final Layer

在最後一層卷積層的輸出Eo∈Rt×2k,由于最後的輸出應該為x1:t的機率分布矩陣,即Ep ∈ Rt×n,輸出矩陣的每一行代表softmax操作後xi(0 < i ≤ t)的分類機率分布。是以作者在最後一層卷積層後又加了一層卷積卷積核大小為1×1×2k×n(n代表所有item的數量)。與(c)同理,将Eo(t×2k,1)轉換為(1×t,2k)的size,然後用n個1×1×2k卷積核卷積。

模型訓練

優化目标是最大化log-likelihood, 最大化logP(x)等價于最小化x1:t序列中每個item的二進制交叉熵損失之和。

在實際場景中,softmax開銷太大,用smapled softmax和負采樣解決,此時要将最後一層1×1卷積層替換為權重Eg∈R2k×n的FC層。

Experiments

資料集

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

評估标準

[email protected] (Mean Reciprocal Rank) , [email protected] (Hit Ratio) and [email protected] (Normalized Discounted Cumulative Gain). N is set to 5 and 20 for comparison.

實驗結果

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

表4中without表示不包含sub-session sequence

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

表5證明NextItNet中殘差子產品提高了模型的性能

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

表6說明了不同embedding size對模型性能的影響

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

表7展示了三個模型訓練速度的比較

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

圖5證明本文模型的收斂速度快于另兩個模型

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

Future work

将考慮引入上下文資訊和使用者資訊。

【序列推薦論文閱讀】A Simple Convolutional Generative Network for Next Item Recommendation

繼續閱讀