推荐系统(十三)阿里深度兴趣网络:DSIN模型(Deep Session Interest Network)
Posted 天泽28
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统(十三)阿里深度兴趣网络:DSIN模型(Deep Session Interest Network)相关的知识,希望对你有一定的参考价值。
推荐系统(十三)阿里深度兴趣网络(三):DSIN模型(Deep Session Interest Network)
推荐系统系列博客:
- 推荐系统(一)推荐系统整体概览
- 推荐系统(二)GBDT+LR模型
- 推荐系统(三)Factorization Machines(FM)
- 推荐系统(四)Field-aware Factorization Machines(FFM)
- 推荐系统(五)wide&deep
- 推荐系统(六)Deep & Cross Network(DCN)
- 推荐系统(七)xDeepFM模型
- 推荐系统(八)FNN模型(FM+MLP=FNN)
- 推荐系统(九)PNN模型(Product-based Neural Networks)
- 推荐系统(十)DeepFM模型
- 推荐系统(十一)阿里深度兴趣网络(一):DIN模型(Deep Interest Network)
- 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
写在前面:
这篇发表在IJCAI’2019S上的文章,实际上有点对不起标题,与阿里前两篇paper(DIN,DIEN)相比,DSIN是一篇典型的离线跑跑实验,发发paper(俗称灌水?)的论文,我的标题把它与DIN 、DIEN组成一个系列,甚至觉得这是对前两篇的不公,毕竟质量悬殊太大…个人对这篇论文的评价:估计写这篇paper的团队纯粹为了KPI,他们大概率根本部署到线上,以这篇paper所描述网络结构的复杂度,即使以阿里的工程能力,个人都觉得很难部署到线上,所以这篇paper只提到了在阿里真的数据集(记住是数据集)上做了评估,只字未提部署到淘宝的线上推荐服务中。这篇文章在工业界没有引起什么注意,我想原因也是这个。
本篇博客将会从以下几个方面介绍DSIN:
- 动机
- DSIN整体网络结构
- Session Division Layer
- Session Interest Extractor Layer
- Session Interest Interacting Layer
- Session Interest Activating Layer
- 总结
一、动机
DSIN的动机挺好的,无论是在DIN还是DIEN中,对于用户行为序列都没有引入session的概念,比如DIEN中直接用用户过去14天的点击序列,实际上这会导致两个问题:1. 序列长度过长,当序列长度达到数百个时,即使有attention的存在,效果也会受到一定影响。2. 跨session的序列item,用户点击的item存在突变,比如前一个session内点的都是电子产品相关的,后一个就是服饰。也就是说session与session间存在异构性,同一个session内的item存在同构性。
动机是非常好的立意点,失败(对于工业场景,对于发paper可以说是成功点)的地方在于为了发paper,各种transformer,双向LSTM堆起来,导致工业场景根本没法用。
二、DSIN整体网络结构
整体网络结构自从往上依次为:
- session division layer:用于把用户行为序列切分为一个个session,这里按照时间间隔大于30min来切分的。
- session interest extractor layer:用于提取用户session内的兴趣
- session interest interacting layer:用于学习session内用户兴趣的顺序关系
- session interest activating layer:和DIN、DIEN中一样,算一下target item和用户兴趣因向量之间的相关性当做attention分数。
三、Session Division Layer
这一层没什么,就是简单的把用户行为序列切分成多个session,session切分的依据是时间间隔大于30min。原文:The segmentation of users’ ses- sions exists between adjacent behaviors whose time interval is more than 30 minutes。需要注意的是,这里每个item都是embedding向量,比如session k,用公式表示为: Q k = [ b 1 , . . . , b T ] ∈ R T ∗ d m o d e l Q_k=[b_1,...,b_T] \\in R^T*d_model Qk=[b1,...,bT]∈RT∗dmodel, T T T是session内行为item的个数, b i b_i bi为第 i i i个行为的embedding向量,embedding size为 d m o d e l d_model dmodel。
四、Session Interest Extractor Layer
这一层差点直接整个transformer过来,multi-head self-attention整起来,当然直接抄似乎又没什么创新点,要被审稿人喷啊,那好,把自注意力中的positional encoding魔改下,提出个Bias Encoding(BE),直接看公式吧:
B
E
(
k
,
t
,
c
)
=
W
k
K
+
W
t
T
+
W
c
C
(1)
BE_(k,t,c) = W^K_k + W^T_t + W^C_c \\tag1
BE(k,t,c)=WkK+WtT+WcC(1)
W
k
K
W^K_k
WkK 表示第
k
k
k个session的bias vector,
W
t
T
W^T_t
WtT表示session内第
t
t
t个行为的bias vector,
W
c
C
W^C_c
WcC表示行为embedding向量中第
c
c
c个bit。所以,用户行为最终的embedding向量
Q
Q
Q也就变成了
Q
=
Q
+
B
E
Q = Q+BE
Q=Q+BE。
然后,套了一波Multi-head Self-attention,关于Multi-head Self-attention一直久闻其大名,但毕竟在推荐系统中用的还不错,所以也没有很细致的去探究,后面有时间一定补一篇关于Multi-head Self-attention的博客。
经过Multi-head Self-attention后,得到
I
k
Q
I_k^Q
IkQ,即用户第
k
k
k个session的向量(有
Q
Q
Q个item),因此还需要做个pooling,DSIN这里做的average pooling,即:
I
k
=
A
V
G
(
I
K
Q
)
(2)
I_k = AVG(I_K^Q) \\tag2
Ik=AVG(IKQ)(2)
五、Session Interest Interacting Layer
这一层,直接套了个双向LSTM,没太搞明白套双向的目的,论文中也没有介绍,另外在DIEN中极力克制时间复杂度使用GRU的情况下,这篇DSIN竟然本质倒末又用回了LSTM,并且还是双向的!!!关于LSTM可以参见本人博客:LSTM(Long Short-Term Memory),我这里为了和论文符号保持一致,直接搬下论文的公式:
(
i
n
p
u
t
g
a
t
e
)
i
t
=
σ
(
W
x
i
I
t
+
W
h
i
h
t
−
1
+
W
c
i
c
t
−
1
+
b
i
)
(
f
o
r
g
e
t
g
a
t
e
)
f
t
=
σ
(
W
x
f
I
t
+
W
h
f
h
t
−
1
+
W
c
f
c
t
−
1
+
b
f
)
(
c
e
l
l
v
e
c
t
o
r
)
c
t
=
f
t
c
t
−
1
+
i
t
t
a
n
h
(
W
x
c
I
t
+
W
h
c
h
t
−
1
+
b
c
)
(
o
u
t
p
u
t
g
a
t
e
)
f
t
=
σ
(
W
x
o
I
t
+
W
h
o
h
t
−
1
+
W
c
o
c
t
−
1
+
b
f
)
h
t
=
o
t
t
a
n
h
(
c
t
)
(3)
\\beginaligned (input\\ gate)\\ \\ \\ i_t &= \\sigma(W_xiI_t + W_hih_t-1 + W_cic_t-1 + b_i) \\\\ (forget\\ gate)\\ \\ \\ f_t &= \\sigma(W_xfI_t + W_hfh_t-1 + W_cfc_t-1 + b_f) \\\\ (cell\\ vector)\\ \\ \\ c_t &= f_tc_t-1 + i_ttanh(W_xcI_t + W_hch_t-1 + b_c) \\\\ (output\\ gate)\\ \\ \\ f_t &= \\sigma(W_xoI_t + W_hoh_t-1 + W_coc_t-1 + b_f) \\\\ h_t &= o_t tanh(c_t) \\endaligned \\tag3
(input gate) it(forget gate) ft(cell vector) ct(output gate) ftht=σ(WxiIt+Whiht−1+Wcict−1+bi)=σ(WxfIt+Whfht−1+Wcfct−1+b以上是关于推荐系统(十三)阿里深度兴趣网络:DSIN模型(Deep Session Interest Network)的主要内容,如果未能解决你的问题,请参考以下文章
推荐系统(十三)阿里深度兴趣网络:DSIN模型(Deep Session Interest Network)
推荐系统阿里深度兴趣网络:DIN模型(Deep Interest Network)
推荐系统阿里深度兴趣网络:DIN模型(Deep Interest Network)
推荐系统阿里深度兴趣网络:DIEN模型(Deep Interest Evolution Network)