论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction

本文记录DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction的学习笔记。DIEN在DIN的基础上,不光用了candidate ad作为attention机制的一部分来辅助不同兴趣的单独建模,其次采用了一个附加的loss来监督相邻的历史行为的变化过程,即考虑了用户的兴趣的演化过程。

文章目录

        • 论文及代码地址:
        • 论文细节
          • 1. motivation
          • 2. method
          • 2. 1 Feature Representation
          • 2. 2 Deep Interest Evolution Network
          • 3. expriments and results
        • 参考文献

论文及代码地址: 论文地址:https://arxiv.org/abs/1809.03672
代码地址:https://github.com/mouna99/dien
论文细节 1. motivation 之前的很多方法没有挖掘用户行为背后的兴趣问题,其次用户的兴趣可能是不断变化的,怎么建模来表示用户兴趣的演化过程呢?DIEN做到的地方有两点:1)从用户的历史行为序列中提取潜在的时序兴趣;2)建模兴趣的演化过程。
【论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction】具体的,整个兴趣建模的过程分为:interest extractor layer和interest evolving layer。在interest extractor layer,利用GRU建模历史行为间的依赖关系,其次提出了一个附加的loss来监督响铃两次行为对应的隐藏层的特征的变化;在interest evolving layer,作者采用了一种假设,即不同兴趣的演化过程是独立的,这样每次可以用候选的广告(或者理解为最后一次点击的商品)作为attention机制的一部分,让用户的历史行为能自适应的学习这种商品对应的兴趣的权重,为了在这部分也建模从前到后的演化过程,作者提出了一个AUGRU单元,这个AUGRU的作用一方面可以建模用户兴趣的演化过程,其次减弱兴趣漂移带来的影响。
2. method 2. 1 Feature Representation 在线上的展示系统中,一般分为四种特征:用户的画像,用户的行为,候选广告,点击的场景。用户画像通常包括:性别,年龄等;用户行为一般包括:一系列连续点击的商品的id;候选广告包括:广告的id等;点击的场景一般包括:点击的时间。
记用户的行为表示: x b = [ b 1 ; b 2 ; . . . , b T ] ∈ R K × T x_b=[b_1; b_2; ...,b_T] \in R^{K \times T} xb?=[b1?; b2?; ...,bT?]∈RK×T,其中 b t ∈ { 0 , 1 } K b_t \in \{0,1\}^K bt?∈{0,1}K, b t b_t bt?表示一个one-hot类型的向量,表示第 t t t次的行为, T T T表示点击的行为总数, K K K表示可以点击的商品或者广告总数。
BaseModel 一般采用embedding+MLP的模型,具体可见DIN的基础模型 embedding&MLP部分,用于点击率预测的loss记为:
L t a r g e t = ? 1 N ∑ ( x , y ) ∈ D N ( y l o g p ( x ) + ( 1 ? y ) l o g ( 1 ? p ( x ) ) ) L_{target}=-\frac{1}{N}\sum_{(x,y)\in D}^N(ylogp(x)+(1-y)log(1-p(x))) Ltarget?=?N1?(x,y)∈D∑N?(ylogp(x)+(1?y)log(1?p(x)))
其中 y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1}代表用户是否点击了target item, x x x表示输入特征的embedding向量, p ( x ) p(x) p(x)表示用于预测用户是否点击的概率。
2. 2 Deep Interest Evolution Network 如下图所示,DIEN主要包括三个部分:
  1. Behavior layer: 用于学习behavior序列对应的embedding向量
  2. Interest extractor layer: 用于从历史行为中挖掘出相应的兴趣
  3. Interest evolving layer: 用于建模与target Ad相关的兴趣的演化过程
    论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
    文章图片
Interest extractor layer:
用GRU的隐藏层输出表示用户行为的兴趣,GRU模块定义为:
u t = σ ( W u i t + U u h t ? 1 + b u ) r t = σ ( W r i t + U r h t ? 1 + b r ) h ~ t = t a n h ( W h i t + r t ? U h h t ? 1 + b h ) h t = ( 1 ? u t ) ? h t ? 1 + u t ? h ~ t \begin{aligned} u_t &= \sigma(W^ui_t+U^uh_{t-1}+b^u) \\ r_t &=\sigma(W^ri_t+U^rh_{t-1}+b^r) \\ \tilde{h}_t &= tanh(W^hi_t+r_t \cdot U^hh_{t-1}+b^h) \\ h_t &=(1-u_t)\cdot h_{t-1}+u_t\cdot \tilde h_t \end{aligned} ut?rt?h~t?ht??=σ(Wuit?+Uuht?1?+bu)=σ(Writ?+Urht?1?+br)=tanh(Whit?+rt??Uhht?1?+bh)=(1?ut?)?ht?1?+ut??h~t??
其中 i t i_t it?表示GRU模块的输入, i t = e b [ t ] i_t=e_b[t] it?=eb?[t]表示用户采用的第 t t t次行为,h t h_t ht?表示第 t t t个隐藏层的状态。 W W W, U U U表示GRU网络需要学习的内容。
然而,仅仅用上面的方式不能有效的建模用户行为的兴趣,比如隐藏层的状态 h t h_t ht?只能间接地表示兴趣,不能直接反应出当前的兴趣 h t h_t ht?对下一个点击决策 b t + 1 b_{t+1} bt+1?的影响。为了做到这一点,作者首先从所有行为的embedding中采样出来一个点击对(click pairs),包含正负样本,正样本为 b t + 1 b_{t+1} bt+1?表示实际行为下一个点击的样本,负样本从行为的embedding抽样一个 b ^ t + 1 \hat b_{t+1} b^t+1?,模拟下一次未被点击的样本。记这两个样本的embedding向量为 { e b i , e ^ b i } \{e^i_b, \hat{e}^i_b\} {ebi?,e^bi?},这部分监督隐藏层的loss记为:
L a u x = ? 1 N ( ∑ i = 1 N ∑ t l o g σ ( h t i , e b i [ t + 1 ] ) ) + l o g ( 1 ? σ ( h t i , e ^ b i [ t + 1 ] ) ) L_{aux}=-\frac{1}{N}(\sum_{i=1}^{N}\sum_t log\sigma (h_t^i, e_b^i [t+1]))+log(1-\sigma(h_t^i, \hat{e}_b^i[t+1])) Laux?=?N1?(∑i=1N?∑t?logσ(hti?,ebi?[t+1]))+log(1?σ(hti?,e^bi?[t+1]))
其中 σ ( x 1 , x 2 ) = 1 1 + e x p ( ? [ x 1 , x 2 ] ) \sigma(x_1, x_2)=\frac{1}{1+exp(-[x_1,x_2])} σ(x1?,x2?)=1+exp(?[x1?,x2?])1?,h t i h_t^i hti?表示对于用户 i i i第 t t t个隐藏层的变化。整个CTR预估模型的损失函数记为: L = L t a r g e t + α ? L a u x L=L_{target}+\alpha * L_{aux} L=Ltarget?+α?Laux?
Interest evolving layer:
这一层主要建立在下面两个假设上对用户的兴趣演化进行建模:
  1. 兴趣是多样性的,但是不同兴趣之间可能会出现转移。用户可能在某一阶段对一件物品感兴趣,同时也可能在另一阶段对其他物品感兴趣。
  2. 兴趣之间可能会相互影响,但是每个兴趣有自己的进化过程。在建模过程中,我们只需要考虑到与target有关的兴趣演化过程。比如如果候选的target是书籍,我们只需要考虑历史行为中与书籍相关的兴趣的演化过程。
为了建模与target ad有关系的兴趣演化的过程,在这里采用类似DIN的方式,将target ad作为attention的一部分加入到Interest extractor layer 提取到的兴趣(隐藏层 h i t h_i^t hit?),在attention 部分,记录attention score为: a t = e x p ( h t W e a ) ∑ j = 1 T e x p ( h j W e a ) a_t=\frac{exp(h_tWe_a)}{\sum_{j=1}^{T}exp(h_jWe_a)} at?=∑j=1T?exp(hj?Wea?)exp(ht?Wea?)?,其中 e a e_a ea?表示target ad的embedding,W ∈ R n H × n A W \in R^{n_H \times n_A} W∈RnH?×nA?是网络需要学习的权重,n H n_H nH?表示隐藏层的维度,n A n_A nA?表示embedding的维数。这个分数反应了target ad和输入的embedding之间的关系,越高的分数表示越强的相关性。
在兴趣的演化部分,采用了一个基于注意力机制有关的GRU单元,主要改进GRU单元的update gate。具体表示为:
u ~ t ′ = a t ? u t ′ h t ′ = ( 1 ? u t ′ ) ? h t ? 1 ′ + u ~ t ′ ? h ~ t ′ \begin{aligned} \tilde{u}_t^{\prime}&=a_t \cdot u_t^\prime \\ h_t^\prime &=(1-u_t^\prime) \cdot h_{t-1}^ \prime + \tilde{u}_t^\prime\cdot \tilde{h}_t^\prime \end{aligned} u~t′?ht′??=at??ut′?=(1?ut′?)?ht?1′?+u~t′??h~t′??
其中 u t ′ u_t^\prime ut′?表示GRU单元之前的更新门, u t ′ u_t^\prime ut′?表示考虑了attention score的更新门, h t ′ , h t ? 1 ′ , h ~ t ′ h_t^\prime, h_{t-1}^\prime, \tilde h_t^\prime ht′?,ht?1′?,h~t′?表示GRU单元的隐藏层
在AUGRU单元中,通过attention score来放缩更新门向量的不同维度,让与隐藏层不太相关的兴趣在兴趣的演化中致以较低的权重。因此,AUGRU减少了兴趣漂移带来的影响,专注与target ad有关的兴趣演化过程的学习。
3. expriments and results 在Amazon dataset上,利用前 T ? 1 T-1 T?1的点击行为,来预测接下来第 T T T的点击情况,AUC的结果见下图:
论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
文章图片
对应工业的广告点击率预测数据集,在训练集中,我们将最近49天点击的广告作为目标项目。 每个目标项目及其相应的点击行为都构成一个实例。 以一个目标项目 a a a为例,我们将单击 a a a的日期设置为最后一天,该用户在过去14天内采取的行为是历史行为。 同样,从第二天的测试集中选择目标项目,其行为与训练数据相同。实验结果见:
论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
文章图片
附加的loss: L a u x L_{aux} Laux?对于模型训练的的影响:
论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
文章图片
attention score对于历史行为中target ad相关的兴趣的学习的影响:
论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
文章图片

参考文献 [1] https://arxiv.org/abs/1809.03672
[2] https://github.com/mouna99/dien

    推荐阅读