DSIN模型解读


深度会话兴趣网络Deep Session Interest Network for Click-Through Rate Prediction,跟 DINDIEN 相比,最大的不同在于对用户的历史点击行为划分为不同session,对每个session使用Transformer学习session embedding,最后使用BiLSTM对session序列建模。

在推荐系统中,用户兴趣是十分广泛的,但在一个较短的时间内,用户的兴趣是集中的,我们称这段时间为一个Session。例如:把间隔30分钟以上的不同行为item划归成不同的Session。

模型结构

在这里插入图片描述

User Behaviors 部分

一共包括四层。

1、第一层是Session Division Layer是对用户的历史行为划分到不同session;

这一层将用户的行文进行切分,首先将用户的点击行为按照时间排序,判断每两个行为之间的时间间隔,前后的时间间隔大于30min,就进行切分。文章将间隔超过30分钟作为session的划分,比如将历史点击序列 S \mathcal S S 转换为session Q \mathcal Q Q,第 k k k个session表示为:
Q k = [ b 1 , ⋯   , b i , ⋯   , b T ] ∈ R T × d m o d e l Q_k =[b_1,\cdots,b_i,\cdots,b_T] \in R^{T\times d_{model}} Qk=[b1,,bi,,bT]RT×dmodel
其中, T T T是第 k k k个session的长度, d m o d e l d_{model} dmodel是输入item的embedding大小。

2、第二层是Session Interest Extractor Layer是学习session的表征;

在这里插入图片描述

在每一个session内,每个用户的行为是高度相关的。为了刻画相同session内行为间的相关性,DSIN使用了Bias Encoding。DSIN使用multi-head self-attention对每个session建模。为了刻画不同session间的顺序。

2.1 Bias Encoding

为了利用序列间的顺序关系,self-Attention机制将位置编码应用于输入的嵌入。此外,还需要捕获位于不同session的会话的顺序关系和偏差。所以,定义基于位置编码的偏差bias为:
B E ( k , t , c ) = w k K + w t T + w c C \bold {BE}_{(k,t,c)} = \bold w_k^K + \bold w_t^T + \bold w_c^C BE(k,t,c)=wkK+wtT+wcC
其中, w k K \bold w_k^K wkK是session的bias, w t T \bold w_t^T wtT是位置的bias, w c C \bold w_c^C wcC是每个物品的bias。

入bias encoding后,用户的session表示为:
Q = Q + B E Q = Q +BE Q=Q+BE
2.2 Multi-head Self-attention

在推荐系统中,用户的点击行为会受各种因素影响。多头自我注意机制(Multi-head Self-attention)可以捕获不同表示子空间中的关系。每个head的输出可以表示为:
 head  h =  Attention  ( Q k h W Q , Q k h W K , Q k h W V ) = softmax ⁡ ( Q k h W Q W K Q k h T d model  ) Q k h W V \begin{aligned} \text { head }_{h} &=\text { Attention }\left(\mathbf{Q}_{k h} \mathbf{W}^{Q}, \mathbf{Q}_{k h} \mathbf{W}^{K}, \mathbf{Q}_{k h} \mathbf{W}^{V}\right) \\ &=\operatorname{softmax}\left(\frac{\mathbf{Q}_{k h} \mathbf{W}^{Q} \mathbf{W}^{K} \mathbf{Q}_{k h}^{T}}{\sqrt{d_{\text {model }}}}\right) \mathbf{Q}_{k h} \mathbf{W}^{V} \end{aligned}  head h= Attention (QkhWQ,QkhWK,QkhWV)=softmax(dmodel  QkhWQWKQkhT)QkhWV
其中, Q k h \mathbf{Q}_{k h} Qkh 表示第 k 个 session的第 h 个 head。

然后将 head 的输出concat到一起,再接入一个FFN网络(全连接网络):
I k Q = F F N ( C o n c a t ( h e a d 1 , ⋯   , h e a d H ) W O ) \mathbf I_k^Q = FFN(Concat(head_1,\cdots,head_H)W^O) IkQ=FFN(Concat(head1,,headH)WO)
其中, W O W^O WO表示线性矩阵。

经过Multi-head self attention处理之后,每个session得到的结果仍然是 T × d m o d e l \mathbf T \times d_{model} T×dmodel 大小,随后,经过一个avg pooling操作,将每个session兴趣转换成一个 d m o d e l d_{model} dmodel 维向量
I k = A v g ( I k Q ) \mathbf I_k = \mathbf {Avg}(\mathbf I_k^Q) Ik=Avg(IkQ)
论文同时还依次进行残差连接和层归一化。

3、第三层是Session Interest Interacting Layer是学习session之间的演变;

在这里插入图片描述

使用双向LSTM建模session之间的演变。双向意味着存在向前和向后RNN,以及隐藏状态H的计算如下:
H t = h f t ⃗ ⊕ h b t ⃗ \mathbf H_t =\vec {\mathbf h_{ft}} \oplus \vec {\mathbf h_{bt}} Ht=hft hbt
上式中的两项分别表示前向的隐藏层状态和反向的隐藏层状态。

4、第四层是Session Interest Activating Layer是学习当前item和历史点击session的相关性。

这部分主要是通过Attention机制刻画Item和session之间的相关性。用户的session与目标物品越相近,越应该赋予更大的权重。使用注意力机制来刻画这种相关性:
a k H = exp ⁡ ( H k W H X I ) ) ∑ k K exp ⁡ ( H k W H X I ) U H = ∑ k K a k H H k \begin{aligned} a_{k}^{H} &=\frac{\left.\exp \left(\mathbf{H}_{k} \mathbf{W}^{H} \mathbf{X}^{I}\right)\right)}{\sum_{k}^{K} \exp \left(\mathbf{H}_{k} \mathbf{W}^{H} \mathbf{X}^{I}\right)} \\ \mathbf{U}^{H} &=\sum_{k}^{K} a_{k}^{H} \mathbf{H}_{k} \end{aligned} akHUH=kKexp(HkWHXI)exp(HkWHXI))=kKakHHk
其中 X I \mathbf X^I XI是目标item的embedding

其他部分

最后,就是把四部分的向量:用户特征向量、待推荐物品向量、会话兴趣加权向量UI、带上下文信息的会话兴趣加权向量UH进行横向拼接,输入到全连接层中,得到输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值