十四、DSIN

  1. CTR 预测任务中,一个持续研究的主题是:如何从用户行为序列中捕获用户不断变化的兴趣。

    大多数现有的研究都忽略了用户行为序列的内在结构:用户行为序列是由会话 session 组成的。其中会话是在给定时间内用户行为的列表。

    • 会话是根据时间来划分的。如:如果两次用户行为超过一定时间间隔(如 1小时),则它们分别属于两个独立的会话。
    • 同一个会话中的用户行为是高度同构的,不同会话中的行为是高度异构的。

    如下图所示,论文从淘宝中抽取了一名真实用户,根据其行为序列发生的时间划分为三个会话,每个会话的时间间隔超过30分钟。

    • 横坐标为时间,纵坐标为会话ID 。图片下方的数字为时间,代表了点击当前商品和点击第一个商品之间的时间间隔(单位秒)。
    • 用户在Session 1 中浏览裤子、在 Session 2 中浏览戒指、在 Session 3 中浏览外套。

    这个现象是普遍的,它反映了一个事实:

    • 用户通常在一个会话中具有明确的特定意图。
    • 当用户开始新的会话时,用户兴趣可能会急剧变化(相对于旧会话的用户兴趣)。

    基于此现象,论文 《Deep Session Interest Network for Click-Through Rate Prediction》 提出了模型 Deep Session Interest Network:DSIN ,该模型利用用户的历史会话来建模用户行为序列。

    十四、DSIN - 图1

14.1 模型

  1. DSIN 包含三个关键部分:

    • 第一部分:将用户行为划分为会话,然后使用 bias encoding 的自注意力机制对每个会话建模。

      自注意力机制可以捕获会话内部的相关性,然后提取用户在每个会话的兴趣。这些不同的会话兴趣可能会彼此相关,甚至会遵循某种序列模式。

    • 第二部分:利用双向 LSTM 来捕获用户不同的历史会话兴趣的交互和演变。

    • 第三部分:考虑到不同的会话兴趣对目标商品有不同的影响,论文设计了局部激活单元来聚合这些会话兴趣,从而生成用户行为序列的最终表达。

  2. BaseModel 基准模型:基准模型采用 Embedding &MLP 结构,其中:

    • 特征:BaseModel 中采用三组特征,每组特征都由一些稀疏特征构成,包括:

      • 用户画像:包括性别、城市等。
      • 商品画像:包含商品id、卖家 id 、品牌 id 等。
      • 用户历史行为:包含用户最近点击商品的商品 id。注意:商品的附带信息可以拼接起来从而表示商品。
    • embedding:通常我们采用 embedding 技术来将稀疏特征映射到低维的 dense vector

      • 用户画像的 embedding十四、DSIN - 图2 ,其中 十四、DSIN - 图3 表示用户画像的稀疏特征数量,十四、DSIN - 图4embedding 向量维度。

      • 商品画像的 embedding十四、DSIN - 图5 ,其中 十四、DSIN - 图6 表示商品画像的稀疏特征数量,十四、DSIN - 图7embedding 向量维度。

      • 用户历史行为的 embedding 为:

        十四、DSIN - 图8

        其中 十四、DSIN - 图9 为用户历史行为数量,十四、DSIN - 图10 为第 十四、DSIN - 图11 个行为的 embedding 向量,十四、DSIN - 图12embedding 向量维度。

    • MLP:我们将用户画像embedding、商品画像embedding、用户历史行为embedding 拼接、展平然后馈入MLP 网络中。

      MLP 中,我们采用 ReLU 激活函数并使用 softmax 输出单元来预测用户点击商品的概率。

    • 损失函数:我们采用负的对数似然作为损失函数:

      十四、DSIN - 图13

      其中:

      • 十四、DSIN - 图14 为训练集,十四、DSIN - 图15 为样本数量
      • 十四、DSIN - 图16 为样本经过 embedding 的特征,十四、DSIN - 图17 标记用户是否点击,十四、DSIN - 图18 表示网络预测用户点击的概率。
  3. 由于用户在不同的会话中表现出不同的兴趣,以及用户不同会话的兴趣之间存在关联,因此DSIN 采用专门的组件来提取会话兴趣、捕获会话兴趣序列的关系。

    DSIN 的基础架构类似 BaseModelEmbedding&MLP 架构,但是DSIN 模型在 EmbeddingMLP 之间还有四个layer,从上到下依次为:

    • 会话划分层 session division layer:将用户行为序列划分为不同的会话。
    • 会话兴趣提取层 sessioin interest extractor layer:抽取用户的会话兴趣。
    • 会话兴趣交互层 sesion interest interaction layer : 捕获用户的会话兴趣序列关系。
    • 会话兴趣激活层 session interest activating layer: 采用局部激活单元来建模会话兴趣对目标商品的影响。

    最后会话兴趣激活层的输出和用户画像embedding、商品画像embedding 一起馈入 MLP 来执行预测。

    十四、DSIN - 图19

14.1.1 会话划分层

  1. 为了更精确的抽取用户的会话兴趣,我们将用户行为序列 十四、DSIN - 图20 划分为会话序列 十四、DSIN - 图21,其中第 十四、DSIN - 图22 个会话为:

    十四、DSIN - 图23

    其中:

    • 十四、DSIN - 图24 为第 十四、DSIN - 图25 个会话中的行为数量,十四、DSIN - 图26 表示从第 十四、DSIN - 图27 到第十四、DSIN - 图28 个会话的累积行为数量。
    • 十四、DSIN - 图29 表示第 十四、DSIN - 图30 个会话中第 十四、DSIN - 图31 个用户行为embedding 向量。
  2. 通常拆分依据是:如果两个相邻的用户行为时间间隔超过,比如说30分钟,则将它们划分到两个会话中。否则它们同属于同一个会话。

    这个时间间隔根据不同的应用场景而选择不同的值。

14.1.2 会话兴趣提取层

  1. 同一会话的行为彼此密切相关,但是也有一些偶然行为与会话整体行为关系不大。

    为了捕获同一会话行为之间的内在关系,并且减少无关行为的影响,论文在每个会话中采用 multi-head self-attention 机制。

    另外,论文还对self-attention 机制做了一些改进,从而更好地实现会话兴趣提取这一目标。

  2. Bias Encoding:自注意力机制将位置编码应用于 input embedding ,但是在 DSIN 中我们还需要捕获会话之间的位置关系和bias,因此论文提出了bias encoding 来融合session biasposision biasunit bias 。为了讨论方便,假设所有会话的序列长度均为 十四、DSIN - 图32 、会话数量为 十四、DSIN - 图33。则 bias encoding 为:

    十四、DSIN - 图34

    其中:

    • 十四、DSIN - 图35 是会话的 bias 向量;十四、DSIN - 图36 为第 十四、DSIN - 图37 个分量,代表第 十四、DSIN - 图38 个会话的 bias十四、DSIN - 图39 为会话总数。
    • 十四、DSIN - 图40 为用户行为的 bias 向量;十四、DSIN - 图41 为第 十四、DSIN - 图42 个分量,代表会话 十四、DSIN - 图43 中第 十四、DSIN - 图44 个用户行为的 bias十四、DSIN - 图45 为会话 十四、DSIN - 图46 中用户行为总数 。
    • 十四、DSIN - 图47 为用户行为embeddingunitbias 向量;十四、DSIN - 图48 为第 十四、DSIN - 图49 个分量,代表embedding 向量第 十四、DSIN - 图50unitbias十四、DSIN - 图51 等于 十四、DSIN - 图52

    采用bias encoding 之后,用户的会话更新为:

    十四、DSIN - 图53

    其中 十四、DSIN - 图54

  3. Multi-head self-attention:在推荐系统中,用户点击行为会受到多种因素的影响(如颜色、款式、价格)。multi-head self-attention 可以捕获这类不同的表示子空间。

    假设将第 十四、DSIN - 图55 个会话沿着维度方向拆分为十四、DSIN - 图56head

    十四、DSIN - 图57

    其中: 十四、DSIN - 图58 表示第 十四、DSIN - 图59head 的输入;十四、DSIN - 图60head 数量,十四、DSIN - 图61十四、DSIN - 图62 表示 十四、DSIN - 图63 的第 十四、DSIN - 图64head

    则第 十四、DSIN - 图65head 的输出为:

    十四、DSIN - 图66

    其中 十四、DSIN - 图67 为对应的映射矩阵。

    • 拼接不同 head 的输出然后馈送到一个前馈神经网络:

      十四、DSIN - 图68

      其中 十四、DSIN - 图69 为前馈神经网络,十四、DSIN - 图70 为一个映射矩阵。

      在前馈神经网络中,论文也采用了残差连接和 layer normalization

    • 对输出的一组向量进行池化操作,则得到第 十四、DSIN - 图71 各会话兴趣为:

      十四、DSIN - 图72

      其中 十四、DSIN - 图73 为平均池化操作。

    注意:不同会话的self-attention 机制中的权重是共享的。

14.1.3 会话兴趣交互层

  1. 针对会话兴趣的动态变化建模可以丰富会话兴趣的表示。论文通过 Bi-LSTMDSIN 中的会话兴趣交互进行建模:

    十四、DSIN - 图74

    其中 十四、DSIN - 图75sigmoid 函数;十四、DSIN - 图76 为输入门、遗忘门、输出门、cell 向量,其维度和 十四、DSIN - 图77 维度相同。

    上述只是前向状态,考虑到前向、反向两个方向,隐向量计算为:

    十四、DSIN - 图78

    其中 十四、DSIN - 图79Bi-LSTM 前向隐向量,十四、DSIN - 图80Bi-LSTM 反向隐向量。

14.1.4 会话兴趣激活层

  1. 和目标商品相关性更强的会话兴趣对于用户的点击意愿的影响更大。因此对于每个目标商品,用户的会话兴趣需要重新分配权重。这里论文采用注意力机制分别将会话兴趣提取层、会话兴趣交互层的输出向量序列进行注意力融合:

    • 会话兴趣提取层:

      十四、DSIN - 图81

      其中 十四、DSIN - 图82 为目标商品的 embedding 向量,十四、DSIN - 图83 为对应权重,十四、DSIN - 图84 为第 十四、DSIN - 图85 个会话的会话兴趣对目标商品的注意力得分。

    • 会话兴趣交互层:

      十四、DSIN - 图86

      其中 十四、DSIN - 图87 为目标商品的 embedding 向量,十四、DSIN - 图88 为对应权重,十四、DSIN - 图89 为第 十四、DSIN - 图90 个会话的会话交互结果对目标商品的注意力得分。

    注意:这里计算注意力得分时没有进行维度缩放处理,标准的注意力得分为:

    十四、DSIN - 图91

  2. 将用户画像embedding 向量、商品画像embedding 向量、十四、DSIN - 图92十四、DSIN - 图93 一起拼接作为 MLP 层的输入。

14.2 实验

  1. 数据集:

    • Advertising Dataset:由阿里妈妈发布的公共数据集。数据集包含连续 8 天的用户曝光、点击日志,共覆盖100万用户、80万广告,包含2600万条记录。数据集中记录了用户最近的 200 个历史用户行为。

      我们采用前 7 天的数据为训练集,第八天数据为测试集。

    • Recommender Dataset:阿里巴巴线上推荐系统数据集。该数据集包含连续 8 天的 60 亿个曝光、点击日志,分别有 1 亿用户和 7000 万商品。数据集中也记录了用户最近的 200 个历史用户行为。

      我们采用前 7 天的数据为训练集,第八天数据为测试集。

  2. 比较模型:YoutubetNet、Wide&Deep、DIN、DIN-RNN、DIEN 。其中 DIN-RNNDIN 结构相似,但是 DIN-RNN 采用 Bi-LSTM 对用户的历史行为进行建模。

  3. 评估指标:AUC

  4. 模型评估结果如下表。其中:

    • YoutubeNet-NO-UB 表示不带用户行为信息的 YoutubeNet
    • DSIN-PE表示带 positional encodingDSIN
    • DSIN-BE-No-SIIL 表示带 bias encoding但是没有会话兴趣交互层及对应的激活单元的 DSIN
    • DSIN-BE 表示带bias encoding 以及其它完整结构的 DSIN

    结论:

    • 由于用户行为的原因,YoutubeNet 的表现要优于 YoutubeNet-No-User-Behavior

    • Wide&Deep 由于结合了 wide 侧的记忆功能从而获得更好的结果。

    • 由于用户行为序列的不连续性,两个数据集中的 DIN-RNN 结果都比 DIN 差。

    • DIEN 获得更好的结果,但是辅助损失和经过特殊设计的 AUGRU 产生了对行为原始表达的偏离 deviating

    • DSIN 在两个数据集上获得最佳结果。

      DSIN 将用户的历史行为提取到会话兴趣层,并对会话兴趣的动态演变过程进行建模。这两者都丰富了用户的表达。

      另外,DSIN 的本地激活单元有助于获得针对目标商品的用户会话兴趣的自适应表达。

    十四、DSIN - 图94

  5. 如上表所示,DIN-RNNDIN 基础上增加了序列建模,但是效果比 DIN 差;而 DSIN-BE 也在DSIN-BE-NO-SIIL 基础上增加了序列建模,但是效果比 DSIN-BE-NO-SIIL 好。

    为什么同样增加了序列进行建模,而前者效果差后者效果好?

    • DIN-RNN 中,行为的快速跳变和突然结束导致用户的行为序列噪声大。这将导致 RNN 中信息传输过程中有效信息丢失,从而进一步扰乱了用户行为序列的正确表达。

    • DSIN 中,我们将用户行为序列划分为多个会话,其中:

      • 用户行为在每个会话中通常都是同质的
      • 用户的会话兴趣遵循序列模式,因此更适合序列建模

      由于这两个因素,DSIN 提高了性能。

  6. 如上表所示,DSIN-BEDSIN-BE-NO-SIIL 仅仅多了会话兴趣交互层及对应的激活单元。结果表明 DSIN-BE 效果更好。

    通过会话兴趣交互层,用户的会话兴趣和上下文信息(历史兴趣上下文,如上一个兴趣、上上一个兴趣等等)融合在一起从而更具有表达能力,从而提高了 DSIN 的性能。

  7. 如上表所示,DSIN-BEDSIN-PE 相比,前者采用Bias Encoding后者采用 Position Encoding 。结果表明 DSIN-BE 效果更好。

    与二维的位置编码不同,Bias Encoding 除了捕获位置bias 还能够捕获会话bias

    经验上讲,Bias Encoding 可以成功捕获会话的次序信息从而提高 DSIN 性能。

  8. 如下图所示,我们给出了局部激活单元和自注意力机制中的注意力权重。图的下半部分给出了自注意力机制的权重、上半部分给出了激活单元的权重,颜色越深权重越大。

    注意:自注意力机制的注意力权重是每个head 的注意力权重之和。

    • 我们以第一个会话为例:用户主要浏览与裤子有关的商品,偶尔浏览外套有关的商品。

      可以看到:和裤子有关商品的权重通常都较高。经过自注意力机制之后,大部分和裤子有关的行为表达都被保留并提取到会话兴趣中。

    • 局部激活单元的工作方式是:使得与目标商品有关的用户会话兴趣更突出。

      图中的目标商品是黑色裤子,因此模型为与裤子相关的用户会话兴趣分配更大的权重,从而使得这部分会话兴趣对结果预测的影响更大。

    • 第三个会话与外套有关,但是用户对黑色的颜色偏好也有助于对目标黑色裤子的点击率预测。

    十四、DSIN - 图95