1914DIEN:深度兴趣演化⽹络
Posted 炫云云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1914DIEN:深度兴趣演化⽹络相关的知识,希望对你有一定的参考价值。
19【13】DIN:深度兴趣网络
1、前言
阿里巴巴提出 DIN模型之后,并没有停止其推荐模型演化的进程,而是于2019年正式提出了DIN模型的演化版本——DIEN 。模型的应用场景和DIN完全一致 ,其创新在于用序列模型模拟了用户兴趣的进化过程。
DIN指出用户浏览商品时的兴趣是具备多样性的,所以在浏览商品时可能只与某一个兴趣有关,所以没有必要同时将用户的所有兴趣压缩到同一向量中。阿里的同学采用了Attention模型结构来激活用户的局部兴趣,从而丰富了用户的兴趣表达,并在线上CTR系统中提高了10%。
而今天介绍的DIEN主要是用来优化的DIN模型中的 Attention部分。具体来说,DIEN 设计了一个兴趣提取层和兴趣演化层分别用来捕捉用户行为背后的真实兴趣和用户兴趣的动态变化。
2、相关知识
在大部分非搜索类电商领域中,用户并不会主动表达自己的兴趣,所以如何设计出既能够捕捉用户兴趣又能捕捉用户动态的模型是提高CTR预测性能的关键。
目前诸多CTR模型都在由传统方法转向深度CTR模型,但是大多数深度CTR模型都只关注于捕捉不同领域特征的交互,而忽视用户的兴趣表示。深度兴趣网络(Deep Interest Netword,DIN)强调用户兴趣是多样化的,并使用了基于Attention的模型来捕获目标的相关性,把自适应的进行兴趣表示。然而DIN等模型的一大缺点在于直接将用户的行为视为用户的真实兴趣而没有去挖掘行为背后真正的兴趣。此外诸多模型也都没有考虑用户兴趣的动态变化,而捕捉用户的动态兴趣对用户兴趣表示非常重要。
针对目前工作的不足,作者提出了深度兴趣演化网络(Deep Interest Evolution Network,DIEN)来提高CTR的性能。
DIEN 的“进化”动机
无论是电商购买行为,还是视频网站的观看行为,或是新闻应用的阅读行为,特定用户的历史行为都是一个随时间排序的序列。既然是时间相关的序列,就一定存在或深或浅的前后依赖关系,这样的序列信息对于推荐过程无疑是有价值的。但本章之前介绍的所有模型,有没有利用到这层序列信息呢?答案是否定的。即使是引人了注意力机制的AFM或DIN模型,也仅是对不同行为的重要性进行打分,这样的得分是时间无关的,是序列无关的。
那么,为什么说序列信息对推荐来说是有价值的呢?一个典型的电商用户的行为现象可以说明这一点。对于一个综合电商来说,用户兴趣的迁移其实非常快,例如,上周一位用户在挑选一双篮球鞋,这位用户上周的行为序列都会集中在篮球鞋这个品类的商品上,但在他完成购买后,本周他的购物兴趣可能变成买一个机械键盘。序列信息的重要性在于:
- 它加强了最近行为对下次行为预测的影响。在这个例子中,用户近期购买机械键盘的概率会明显高于再买一双篮球鞋或购买其他商品的概率。
- 序列模型能够学习到购买趋势的信息。在这个例子中,序列模型能够在一定程度上建立“篮球鞋”到“机械键盘”的转移概率。如果这个转移概率在全局统计意义上是足够高的,那么在用户购买篮球鞋时,推荐机械键盘也会成为一个不错的选项。直观上,二者的用户群体很有可能是一致的。
如果放弃序列信息,则模型学习时间和趋势这类信息的能力就不会那么强,推荐模型就仍然是基于用户所有购买历史的综合推荐,而不是针对“下一次购买”推荐。显然,从业务的角度看,后者才是推荐系统正确的推荐目标。
3、模型结构
DIEN中有两个关键模块:一个是从用户行为中提取用户潜在的兴趣,另一个是对兴趣演化过程进行建模。
-
前者为兴趣提取层,DIEN通过GRU来建模行为之间的依赖关系﹔
-
后者称为兴趣演化层,作者设计了带有注意力更新门的GRU (AUGRU),并基于从兴趣提取层中获得的兴趣序列和item进行关联计算,增强相对兴趣对兴趣演化的影响,弱化兴趣飘逸所产生的非相对兴趣效应。
接下来我们来看DIEN的具体架构。
图 1 : D I E N 模 型 的 结 构 图 图1:DIEN模型的结构图 图1:DIEN模型的结构图
基于引进“序列”信息的动机,阿里巴巴对 DIN模型进行了改进,形成了DIEN模型的结构。如图1所示,模型仍是输入层+Embedding 层+连接层+多层全连接神经网络+输出层的整体架构。图中彩色的“兴趣进化网络”被认为是一种用户兴趣的Embedding 方法,它最终的输出是 h ′ ( T ) h'(T) h′(T)这个用户兴趣向量。DIEN模型的创新点在于如何构建“兴趣进化网络”。
兴趣进化网络分为三层,从下至上依次是:
- 行为序列层(Behavior Layer,浅绿色部分):其主要作用是把原始的id类行为序列转换成Embedding行为序列。
- 兴趣抽取层(Interest Extractor Layer,米黄色部分):其主要作用是通过模拟用户兴趣迁移过程,抽取用户兴趣。
- 兴趣进化层( Interest Evolving Layer,浅红色部分):其主要作用是通过在兴趣抽取层基础上加入注意力机制,模拟与当前目标广告相关的兴趣进化过程。
在兴趣进化网络中,行为序列层的结构与普通的Embedding层是一致的,模拟用户兴趣进化的关键在于“兴趣抽取层”和“兴趣进化层”。
兴趣抽取层的结构
由于用户行为是用户兴趣的潜在载体,所以在兴趣提取层的目的从连续的用户行为中提取了一系列的兴趣状态。
由于用户的点击行为非常频繁,即使在短时间内其行为序列可能也会很长。为了平衡效率和性能,作者采用
G
R
U
\\mathrm{GRU}
GRU 来对建模用户行为之间的历来关系。其中,
G
R
U
\\mathrm{GRU}
GRU 的输入是按行为发生的时间顺序进行排序的。GRU 相比
R
N
N
\\mathrm{RNN}
RNN 来说克服了梯度消失的问题,比 LSTM 速度更快。其计算公式如下:
u
t
=
σ
(
W
u
i
t
+
U
u
h
t
−
1
+
b
u
)
r
t
=
σ
(
W
r
i
t
+
U
r
h
h
−
1
+
b
r
)
h
~
t
=
tanh
(
W
h
i
t
+
r
t
∘
U
t
−
1
h
+
b
h
)
h
t
=
(
1
−
u
t
)
∘
h
t
−
1
+
u
t
∘
h
~
t
(1)
\\begin{aligned} u_{t} &=\\sigma\\left(W^{u} i_{t}+U^{u} h_{t-1}+b^{u}\\right) \\\\ r_{t} &=\\sigma\\left(W^{r} i_{t}+U^{r} h_{h-1}+b^{r}\\right) \\\\ \\tilde{h}_{t} &=\\tanh \\left(W^{h} i_{t}+r_{t} \\circ U_{t-1}^{h}+b^{h}\\right) \\\\ h_{t} &=\\left(1-u_{t}\\right) \\circ h_{t-1}+u_{t} \\circ \\tilde{h}_{t} \\end{aligned}\\tag{1}
utrth~tht=σ(Wuit+Uuht−1+bu)=σ(Writ+Urhh−1+br)=tanh(Whit+rt∘Ut−1h+bh)=(1−ut)∘ht−1+ut∘h~t(1)
其中,
σ
\\sigma
σ 是 sigmoid 激活函数; ○ 是元素点积(内积);
W
u
,
W
r
,
W
h
∈
R
n
H
×
n
I
;
U
z
,
U
r
,
U
h
∈
n
H
×
n
H
W^{u}, W^{r}, W^{h} \\in R^{n_{H} \\times n_{I}} ; U^{z}, U^{r}, U^{h} \\in n_{H} \\times n_{H}
Wu,Wr,Wh∈RnH×nI;Uz,Ur,Uh∈nH×nH;
n
H
n_{H}
nH 为隐藏层大小;
n
I
n_{I}
nI 为输入层大小;
i
t
i_{t}
it 为
G
R
U
\\mathrm{GRU}
GRU 的输入,
i
t
=
e
b
[
t
]
i_{t}=e_{b}[t]
it=eb[t] 表示用户的第
t
\\mathrm{t}
t 个行为
;
h
t
; h_{t}
;ht 表示第
t
\\mathrm{t}
t 个隐藏层。
但是隐藏层 h t h_{t} ht 仅能捕获行为之间的依赖关系,并不能有效表示用户兴趣。损失函数 ( L target ) \\left(L_{\\text {target }}\\right) (Ltarget ) 只反映了最终的用户兴趣 (最终兴趣反映点击行为) , 而隐藏层的历史状态 h t ( t < T ) h_{t}(t<T) ht(t<T) 并不能得到有效的监督信息来指导学习。
而我们知道,每一步的兴趣状态都会直接导致连续的行为。所以作者提出了辅助损失(Auxiliary Loss),利用 t + 1 \\mathrm{t}+1 t+1 时刻的用户行为 b t + 1 b_{t+1} bt+1 来作为隐藏层 h t h_{t} ht 的学习目标。
除了利用真实的下一个行为来作为正样本外,作者还对末点击的商品进行采样来作为负样本。此时便有了 N \\mathrm{N} N 对用户行为序列: e b i , e ^ b i ∈ D B , i ∈ 1 , 2 , … , N e_{b}^{i}, \\hat{e}_{b}^{i} \\in D_{B}, i \\in 1,2, \\ldots, N ebDIEN: 阿里点击率预估之深度兴趣进化网络
[阿里DIEN] 深度兴趣进化网络源码分析 之 Keras版本
推荐系统阿里深度兴趣网络:DIEN模型(Deep Interest Evolution Network)