本人才疏學淺,不足之處歡迎大家指出和交流。

本週更新,今天繼續更阿里系CTR模型三部曲之二,一起學習吧。

今天要分享的是阿里針對

電子商務領域

的CTR預估的Deep Interest Evolution Network理論,針對DIN做出了相關改進。該模型

要點為

:主要解決DIN無法捕捉使用者興趣的動態變化性的缺點,提出了興趣抽取層Interest Extractor Layer、興趣進化層Interest Evolution Layer。

原文:《Deep Interest Evolution Network for Click-Through Rate Prediction》

1。 背景

這裡略去相關的背景介紹,有關DIN和Base Model的細節請大家參閱上一篇文章:

在前文DIN中提到的觀點是:

(1)

在電商平臺中,使用者行為是興趣的載體,且是以時間而產生的序列資料,其間存在的依賴、次序隱藏著使用者喜好。

(2)

當前時刻的興趣直接導致了下一行為的產生。因此設計了DIN模型將使用者的歷史行為來表示使用者的興趣,透過attention來捕獲和目標物品相關的興趣。

但是在電商推薦的場景下,可以觀察到

使用者的興趣是不斷變化

的。例如使用者對衣服的喜好,會隨季節、時尚風潮以及個人品味的變化而變化,呈現一種連續的變遷趨勢。這說明使用者的興趣是不斷進化的,而DIN抽取的使用者興趣之間是獨立無關聯的,沒有捕獲到興趣的動態進化性,這是需要解決的第一個問題。

其次在淘寶平臺中,使用者的興趣是豐富多樣的,且每個興趣的演變基本互不影響。此外,影響最終行為的僅僅是與目標商品相關的興趣。所以DIEN仍然採用了attention機制,

捕獲與目標商品相關商品的興趣發展路徑

總結:

DIEN最大的特點是不但要找到使用者的interest,還要抓住使用者interest的進化過程。作者們將GRU融合到網路中,從而捕獲到變化的sequence。

DIEN關注電商場景中興趣演化的過程,並提出了新的網路結構來建模興趣進化的過程,這個模型能夠更精確的表達使用者興趣,同時帶來更高的CTR預估準確率。

設計了興趣抽取層,並透過計算一個輔助loss,來提升興趣表達的準確性。

設計了興趣進化層,來更加準確的表達使用者興趣的動態變化性。

2、模型

DIEN模型整體結構如下:

推薦系統之CTR預估-DIEN模型

可以看到,新模型較之於base model和DIN,其他部分保持一致,變化只在於使用者行為序列(UBS)的處理做了調整,將其組織成了序列資料的形式。這裡包含了3個部分,最底層是Behavior Layer,用於將使用者瀏覽過的商品轉換成對應的embedding,並且按照瀏覽時間做排序,中間層是興趣提取層Interest Extractor Layer,最上層是興趣發展層Interest Evolving Layer,我們重點介紹上面兩個Layer。

2.1、

興趣抽取層Interest Extractor Layer

如上圖中黃色區域所示,興趣抽取層Interest Extractor Layer的主要目標是從embedding資料中提取出interest。但一個使用者在某一時間的interest不僅與當前的behavior有關,也與之前的behavior相關,所以作者們使用GRU單元來提取interest,GRU輸出h(t)如下所示:

推薦系統之CTR預估-DIEN模型

這裡可以認為h(t)是提取出的使用者的

初步興趣表示

,為了更好地表達使用者的興趣,作者還為興趣抽取層引入了一個有監督學習:輸入是按照時間步排列的商品embedding向量,假設第t個時間步輸入e(t),GRU輸出隱單元h(t),令下一個時間步的輸入向量e(t+1)作為正樣本,隨機取樣負樣本

e(t+1)

,且

e(t+1)

,h(t)與正負樣本向量分別做內積,得到預測結果,並引入一個輔助的logloss:

推薦系統之CTR預估-DIEN模型

二分類模型

推薦系統之CTR預估-DIEN模型

輔助loss

L_{target}

是CTR任務的logloss函式,將CTR的loss和輔助loss相加定義為整個網路的loss進行最佳化。

\alpha

是超引數來平衡兩個loss的權重。這裡輔助loss有幾個好處,當GRU處理較長序列的時候有助於降低反向傳播的難度,對於商品embedding的學習也有助益。

推薦系統之CTR預估-DIEN模型

整體loss

2.2 興趣進化層Interest Evolution Layer

有了使用者的興趣表示,Evolution Layer的主要目標就是去刻畫使用者興趣的演變過程(

觀測到興趣隨環境和認知的變化而變化

)。因此作者設計了AUGRU結構,用attention機制來區域性啟用與

目標商品相關的區域性興趣

,並對存在於這些興趣之間的依賴建模,捕捉興趣的演變過程。

具體如模型中紅色區域所示,這裡使用了第2個GRU。將目標商品的embedding向量與第1個GRU的輸出隱向量發生互動,生成attention score,計算公式如下所示:其中,

h_t

是隱向量,

e_a

是目標商品的嵌入向量,W是需要訓練的引數矩陣。最後用softmax對attention score進行歸一化。

推薦系統之CTR預估-DIEN模型

推薦系統之CTR預估-DIEN模型

對於如何結合attention和GRU,文中介紹了三種方式:

GRU with attentional input (AIGRU)

用attention直接影響這一層的輸入:

推薦系統之CTR預估-DIEN模型

2. Attention based GRU(AGRU)

a_{t}

代替GRU的update gate輸出:

推薦系統之CTR預估-DIEN模型

3。

GRU with attentional update gate (AUGRU)

a_{t}

影響GRU的update gate輸出(保留每個維度的影響):

推薦系統之CTR預估-DIEN模型

簡單分析一下:先從AIGRU開始,從上面的公式中可以看出,AIGRU 啟用區域性興趣和捕獲興趣演變的過程是相互獨立的。僅僅是用attention來影響GRU的輸入,且即便輸入為 0(無關的興趣)也還是會對hidden state產生影響;

AGRU用

a_{t}

替代 GRU 的 update gate,直接控制 hidden state 的更新,將 attention 機制融入到了捕獲興趣演變的過程中,一定程度上彌補了 AIGRU 的不足。

但是,原先 GRU 中控制 hidden state 更新的是一個包含多個維度的向量,AGRU 用純量替代略有不妥,因此這篇文章設計了 AUGRU,用 #FormatImgID_30# 影響 #FormatImgID_31# ,以間接作用於 hidden state的更新。

3、實驗

文章在公共資料集Amazon Dataset和工業資料集上都做了實驗,並選取了不同的對比模型,離線實驗結果如下:

推薦系統之CTR預估-DIEN模型

推薦系統之CTR預估-DIEN模型

推薦系統之CTR預估-DIEN模型

其他相關實驗細節參閱原論文,接下來會更新阿里系CTR預估第三篇DSIN。

實現DIEN的一個Demo,感興趣的童鞋可以看下我的[github]。