【论文笔记】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)建模兴趣的演化过程。

具体的,整个兴趣建模的过程分为: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)DN(ylogp(x)+(1y)log(1p(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_第1张图片

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} utrth~tht=σ(Wuit+Uuht1+bu)=σ(Writ+Urht1+br)=tanh(Whit+rtUhht1+bh)=(1ut)ht1+uth~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=1Ntlogσ(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=1Texp(hjWea)exp(htWea),其中 e a e_a ea表示target ad的embedding, W ∈ R n H × n A W \in R^{n_H \times n_A} WRnH×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~tht=atut=(1ut)ht1+u~th~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,ht1,h~t表示GRU单元的隐藏层
在AUGRU单元中,通过attention score来放缩更新门向量的不同维度,让与隐藏层不太相关的兴趣在兴趣的演化中致以较低的权重。因此,AUGRU减少了兴趣漂移带来的影响,专注与target ad有关的兴趣演化过程的学习。

3. expriments and results

在Amazon dataset上,利用前 T − 1 T-1 T1的点击行为,来预测接下来第 T T T的点击情况,AUC的结果见下图:

【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction_第2张图片

对应工业的广告点击率预测数据集,在训练集中,我们将最近49天点击的广告作为目标项目。 每个目标项目及其相应的点击行为都构成一个实例。 以一个目标项目 a a a为例,我们将单击 a a a的日期设置为最后一天,该用户在过去14天内采取的行为是历史行为。 同样,从第二天的测试集中选择目标项目,其行为与训练数据相同。实验结果见:

【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction_第3张图片

附加的loss: L a u x L_{aux} Laux对于模型训练的的影响:

【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction_第4张图片

attention score对于历史行为中target ad相关的兴趣的学习的影响:
【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction_第5张图片

参考文献

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

你可能感兴趣的:(论文笔记,论文笔记,推荐系统,CTR预测)