温州网站建设制作设计公司,小程序定制开发广州,自己来建网站,自己做信息网站在前面的文章中#xff0c;DIN模型 在用户行为序列建模中引入注意力机制来强调加权与target item相关的行为#xff0c;以实现动态的兴趣表征#xff1b;而DIEN模型 则在DIN的基础上加入时间性信息#xff0c;使用注意力机制的GRU来挖掘用户兴趣的演变。
而今天的这篇文章…在前面的文章中DIN模型 在用户行为序列建模中引入注意力机制来强调加权与target item相关的行为以实现动态的兴趣表征而DIEN模型 则在DIN的基础上加入时间性信息使用注意力机制的GRU来挖掘用户兴趣的演变。
而今天的这篇文章也是继续这个主题再介绍一个引入将行为序列切分session来对用户兴趣建模的模型DSINDeep Session Interest Network。
概要 论文Deep Session Interest Network for Click-Through Rate Prediction 链接https://arxiv.org/pdf/1905.06482.pdf 这篇论文认为许多研究都忽视了序列的内在结构序列是由sessions组成sessions是按照发生时间切分的用户行为。
并且观察到用户的行为在每个session里几乎都是同类(homogeneous)的而在不同session之间又是混杂(heterogeneous)的即用户在某一时间内的行为会集中在某一个“类别/主题”上而在另一个时间段内则集中在另外一个“类别/主题”上。
如下图所示是一个从真实场景下收集到的数据下面的数字代表了当前点击商品与第一次点击商品的时间gap单位为秒session按照是否超过30min进行切分。 基础观察到这种规律论文提出了DSINDeep Session Interest Network来通过利用多个历史sessions来建模用户的行为序列。DSIN包含三个关键的组件
将用户的行为序列切分多个sessions然后使用带着偏置编码(bias encoding)的自注意力网络来建模多个sessions。自注意力可以捕获session之间的内在交互/相关关系然后提取每个session的用户兴趣因为这些不同的sessions可能会彼此相互关联遵循一种序列化的模式接着使用双向LSTM(Bi-LSTM) 来捕获这些不同的历史session兴趣的交互和演变最后考虑不同的session兴趣对target item有着不一样的影响设计了一个**局部激活单元(local activation uint)**去聚合它们去建模行为序列的最终表征
这里的自注意力类似于transformer将每个session类比token可以前往这篇文章BERT模型系列大全解读回顾下transformer和自注意力。
基础模型
在前面的两篇相关文章 CTR之行为序列建模用户兴趣DIN和CTR之行为序列建模用户兴趣DIEN中都详细地介绍了Base Model其主要包括四部分特征表征(Feature Representation)、Embedding、Multiple Layer Perceptron (MLP)和损失函数。
具体的内容在这里就不再赘述了但记住几个后面涉及的符号
用户行为embeddings S [ b 1 ; . . . ; b i ; . . . ; b N ] ∈ R N × d m o d e l S[b_1;...;b_i;...;b_N] \in \mathbb{R}^{N \times d_{model}} S[b1;...;bi;...;bN]∈RN×dmodeltarget item属性(Item Profile)表征embeddings X I ∈ R N i × d m o d e l X^I \in \mathbb{R}^{N_i \times d_{model}} XI∈RNi×dmodel
#DSIN结构 如上图所示DSIN在底层的特征表征和Embedding的后面MLP的前面即中间部分加入了四个特殊的网络层
session划分层将行为序列分割成不同的sessionssession兴趣提取层提取用户的session兴趣session兴趣交互层捕获session兴趣之间的序列关系session兴趣激活层考虑(w.r.t) target item对用户session兴趣应用局部激活单元。这与DIN中attention和DIEN中的GRU with attention一样的思想来激活与target item更为相关的行为序列或兴趣序列。
session划分层 为了提取用户更为准确的session兴趣论文将用户行为序列S划分成sessions集合Q第k个session表示为 Q k [ b 1 ; . . . ; b i ; . . . ; b T ] ∈ R T × d m o d e l Q_k[b_1;...;b_i;...;b_T] \in \mathbb{R}^{T \times d_{model}} Qk[b1;...;bi;...;bT]∈RT×dmodel
T是session保留的行为数量 b i b_i bi是session里的第i个行为。用户sessions的分割是以时间间隔超过30min的相邻行为。即当两个相邻的行为时间超过30min的话会以它们为界限前面一个行为保留在当前session后面一个行为会开启一个新的session。该做法出自《Framewise phoneme classification with bidirectional LSTM networks》的做法。
session兴趣提取层 在同一个session里的行为之间是强相关的。另外在一个session里用户那些随意的行为会让session兴趣偏离它原本的表现。
为了捕获同一个session的行为之间的内在关系降低那些不相关的行为的影响论文使用了多头自注意力并且进行了一些优化工作。
偏置编码
为了利用序列的顺序相关信息自注意力机制给输入embeddings加入了位置编码。
而sessions的顺序相关信息和不同表征子空间的偏置同样需要被捕获论文在位置编码的bias加入了bias encoding BE ∈ R K × T × d m o d e l \in \mathbb{R}^{K \times T \times d_{model}} ∈RK×T×dmodel具体如下式 w K ∈ R K w^K \in \mathbb{R}^K wK∈RK 是session的偏置向量k是session的索引 w T ∈ R T w^T \in \mathbb{R}^T wT∈RT 是session中的位置的偏置向量t是行为在session里的索引 w C ∈ R d m o d e l w^C \in \mathbb{R}^{d_{model}} wC∈Rdmodel 是行为embedding中的单位(unit)位置的偏置向量c是unit在embedding中的索引
加入偏置编码之后用户的行为sessions Q 则更新为 Q Q B E QQBE QQBE
多头自注意力
在推荐系统中用户的点击行为是被许多多样的因素影响的比如颜色、风格和价格等。多头自注意力可以捕获不同表征子空间的相关性。论文中使用的多头自注意力跟标准的Transformer其实是一样的结构。
让 Q k [ Q k 1 ; . . . ; Q k h ; . . . ; Q k H ] Q_k[Q_{k1};...;Q_{kh};...;Q_{kH}] Qk[Qk1;...;Qkh;...;QkH]其中 Q k h ∈ R T × d h Q_{kh} \in \mathbb{R}^{T \times d_h} Qkh∈RT×dh是 Q k Q_k Qk的第h个headH是heads的数量 d h 1 h d m o d e l d_h\frac{1}{h}d_{model} dhh1dmodel
那么第h个head的计算如下式 其中 W Q , W K , W V W^Q,W^K,W^V WQ,WK,WV 是线性矩阵。
接着所有heads的向量进行拼接喂给前馈网络层feed-forward networkFFN 其中 W O W^O WO是线性矩阵并且同样保留残差连接和layer normalization。
那么用户的第k个session兴趣 I k I_k Ik 如下式 I k A v g ( I k Q ) I_kAvg(I_k^Q) IkAvg(IkQ)
需要注意的是自注意力的参数在不同的sessions中是共享的。
session兴趣交互层 用户的session兴趣与上下文的其他sessions是有着顺序相关性的对动态的变化进行建模可以丰富session兴趣之间的相关性信息。
而LSTM则是善于捕获这种顺序相关性能够建模session兴趣之间的交互。 其中 σ ( ⋅ ) \sigma(\cdot) σ(⋅)是sigmoid函数ifo和 c 分别是输入门控遗忘门控输出门控和cell向量与 I t I_t It有着相同的size。
双向则意味着存在一个前向的RNN和后向的RNN那么其隐状态 H 计算如下式 H t h f t → ⊕ h b t ← H_t\overrightarrow{h_{ft}} \oplus \overleftarrow{h_{bt}} Hthft ⊕hbt
其中 h f t → \overrightarrow{h_{ft}} hft 是前向LSTM的隐状态 h b t ← \overleftarrow{h_{bt}} hbt 是后向LSTM的隐状态。
session兴趣激活层 与target item更相关的用户的session兴趣会对用户是否点击起着更为重要的影响。那么用户session兴趣对于target item的权重计算问题便随之而来。
注意力机制 使用source和target的软对齐已经被证明是一种有效的权重分配方法论文也使用该方法考虑target itemsession兴趣的自适应表征计算如下式 同理融合了上下文信息的session兴趣表征计算如下式 最后用户属性(User Profile)和item属性(Item profile)的embedding向量与 U I , U H U^I,U^H UI,UH进行拼接和压平(flatten)输入到最后的MLP层。
实验结果 总结
论文认为在推荐系统中用户的行为序列是由多个历史sessions构成在不同的session中展现了不同的兴趣然后使用多头注意力来捕获session行为的内存相关性并且提取每一个session兴趣另外用户的session兴趣是序列化的并且彼此相关联因此用适合序列结构的双向LSTM来捕获session之间的交互和session兴趣的变化最后再使用注意力机制来激活那些与target item更为相关的session兴趣不过对于某些场景比如新闻推荐类似的信息流场景用户大部分并不是主动行为那么点击的序列可能就不具备很强的连续性了因此不满足一个session内的点击都是同类(homogeneous)的这种场景下DSIN就并不一定适用了。
推荐系统CTR建模系列文章
CTR之行为序列建模用户兴趣DIEN
CTR之行为序列建模用户兴趣DIN
CTR特征重要性建模FiBiNetFiBiNet模型
CTR预估之FMs系列模型:FM/FFM/FwFM/FEFM
CTR预估之DNN系列模型:FNN/PNN/DeepCrossing
CTR预估之WideDeep系列模型:DeepFM/DCN
CTR预估之WideDeep系列(下):NFM/xDeepFM
CTR特征建模ContextNet MaskNet(Twitter在用的排序模型)