推荐算法(十一)——阿里深度会话兴趣网络 DSIN

目录

    • 1 介绍
    • 2 原理
      • 2.1 Session Division Layer
      • 2.2 Session Interest Extractor Layer
      • 2.3 Session Interest Interacting Layer
      • 2.4 Session Interest Activating Layer
    • 3 实验
    • 4 总结
    • 写在最后

1 介绍

本文为 推荐系统专栏 的第十一篇文章,也是阿里三部曲 DIN、DIEN、DSIN中的最后一篇。

本篇的深度会话兴趣网络 DSIN,是将行为序列划分为多个 Session,然后针对每个 Session 去挖掘用户的兴趣以及兴趣变化趋势。

在真实场景中,用户短时间内浏览的商品往往比较相似,兴趣比较集中,所以以 Session 为粒度进行兴趣的提取会更加准确。

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第1张图片
论文传送门:Deep Session Interest Network for Click-Through Rate Prediction

2 原理

同 DIN 与 DIEN,DSIN 的创新主要集中在用户行为序列 Sequence 的建模上。模型结构如下:

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第2张图片

2.1 Session Division Layer

该层为会话切分层,用于将行为 Sequence 划分为多个 Session。划分规则是:如果两个行为发生的时间间隔很长或者大于设定的阈值,就可以以此为分割点,这样划分得到的每个 Session 中的行为发生时间比较紧凑,用户的兴趣也会比较集中。

为了保证每个 Session 中行为数量一致,通常会使用截断处理或者 padding。

2.2 Session Interest Extractor Layer

该层为会话兴趣提取层,这里使用 Transformer 中的一个 Encoder 单元进行兴趣的提取。因为 Transformer 抛弃了顺序输入的方式,所以模型不会自动考虑输入 Session 的相对位置信息,因此在输入之前需要对 Session 进行位置编码。

Bias Encoding:

跟一般的编码方式不同的是,这里不仅需要对每个 Session 进行位置编码,同时也需要对 Session 中的每个行为进行位置编码,该模块统称为 Bias Encoding。

在这里插入图片描述
BE 由三个一维向量累加得到,其中 W K W^{K} WK 为 K 维向量,用于区分 K 个 Session 的位置差异, W T W^{T} WT 为 T 维向量,用于区分每个 Session 中 T 个行为的位置差异, W C W^{C} WC 为 C 维向量,用于区分每个 C 维行为 embedding 不同维度的位置差异。
在这里插入图片描述
向量相加得到形状为 (K,T,C) 的 BE 矩阵,该形状和上层的输出 Q 是一样的,直接相加即可,这样每个会话、会话中的每个行为、行为 embedding 的每个位置都加上了偏置项。

Interest Extractor:
推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第3张图片
每个会话加上位置编码后,紧接一个 Transformer Encoder 单元进行兴趣提取。Encoder 单元结构不再赘述,由四层组成:多头注意力层 + LN层 + 两层全连接 + LN层。

Encoder 单元不会改变输入的形状,对于每个形状为 (T,C) 的会话,经过兴趣提取层后形状保持不变。
在这里插入图片描述

然后在第一维做 AveragePooling,将每个会话转换成一个 C 维向量 I I I,K 个会话就得到 K 个 I I I,表示每个会话上提取得到的兴趣表示。

2.3 Session Interest Interacting Layer

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第4张图片

该层为兴趣交互层,由双层双向 LSTM 构成,类似于 DIEN 中的双层 GRU,用于提取用户兴趣的变化趋势。

在这里插入图片描述
每时刻的隐状态 h 由前向、后向 LSTM 的隐状态 concat 得到,用于表示每时刻用户兴趣的变化趋势。

2.4 Session Interest Activating Layer

该层为兴趣激活层,以待推荐的 Item Profile 向量为 Query,分别计算兴趣序列 I I I 与兴趣变化序列 H H H 的重要性权重,突出关键兴趣的重要性。

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第5张图片
权重计算方式采用内积形式,公式如下:

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第6张图片
X I X^{I} XI 为目标 Item,计算每个兴趣 I I I 的权重,然后加权累加得到 U I U^{I} UI

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第7张图片
同理,计算每个兴趣变化 H H H 的权重,然后加权累加得到 U H U^{H} UH

最后将四部分向量横向拼接,输入全连接做最后的预测即可。

3 实验

与其他经典模型的对比实验如下:

推荐算法(十一)——阿里深度会话兴趣网络 DSIN_第8张图片

4 总结

优点:

  1. 以会话粒度进行兴趣的提取,提取结果更精确;
  2. 利用 Transformer Encoder 挖掘用户兴趣,学习能力更强;
  3. 引入 双向 LSTM,挖掘用户的兴趣变化趋势;
  4. 引入 Attention 机制,突出关键行为的重要性。

缺点:

  1. 引入 Encoder 单元,双层的LSTM,训练复杂度大,给模型上线带来压力。

写在最后

下一篇预告: 推荐算法(十二)——多任务模型之专家网络 MMOE

推荐算法Github 仓库:

Recommend-System-tf2.0

希望看完此文的你,能够有所收获!

你可能感兴趣的:(推荐算法也可以很简单,推荐算法,算法,推荐系统,计算广告,深度学习)