摘要:本文介绍推荐系统中用户行为序列建模的核心方法,包括 DIN(Deep Interest Network)、DIEN(Deep Interest Evolution Network)、BST(Behavior Sequence Transformer)等。


一、为什么需要行为序列建模?

用户的兴趣不是一成不变的,而是随着时间不断演化的。传统的推荐模型往往将用户特征做简单的池化(如平均),忽略了行为的时间顺序和兴趣演化。

行为序列建模的目标:

  • 捕捉用户兴趣的动态变化
  • 挖掘历史行为与候选物品之间的关联性
  • 利用序列模式提升推荐准确性

二、DIN(Deep Interest Network)

DIN 的核心思路

DIN 提出了一种局部激活机制:根据候选物品与每条历史行为的相关性产生权重,再加权求和;这不是必须把无关行为硬删除的检索操作。原论文 §4.3、式 (3) 特意不要求权重经过 Softmax 后和为 1,以保留兴趣强度信息。

基础 DIN 的逐项激活与求和没有显式建模时间顺序:若不额外提供位置/时间特征,置换相同历史行为的顺序不改变输出。它解决候选相关的兴趣聚合,DIEN 才进一步引入时序演化建模。

候选物品 → Attention → 用户历史行为序列 → 加权求和 → 用户兴趣向量

激活单元

# DIN 激活函数伪代码
def activation(candidate_item, behavior_item):
    concat = [behavior_item, candidate_item, behavior_item * candidate_item, behavior_item - candidate_item]
    return MLP(concat)

效果

  • 原论文在其工业数据集上报告了收益;具体幅度依数据、基线和实现而异
  • 计算复杂度 O(N),N 为历史行为长度

三、DIEN(Deep Interest Evolution Network)

DIEN 的核心思路

DIEN 在 DIN 的基础上进一步考虑了兴趣的时序演化,使用 GRU 建模兴趣演化过程。

行为序列 → GRU → 兴趣演化序列 → AUGRU(GRU with attentional update gate)→ 用户兴趣

兴趣抽取层

用当前隐藏状态区分下一次真实点击行为与采样的非点击行为,作为辅助损失,与最终 CTR 损失一起训练。这个监督使表示更贴近行为预测目标,但不是隐藏状态“必然等于真实兴趣”的保证。

兴趣演化层

在兴趣抽取的基础上,DIEN 使用 GRU with attentional update gate(AUGRU,带注意力更新门的 GRU),让候选物品相关性参与隐藏状态更新。它先用标量注意力分数 $a_t$ 缩放 GRU 原本的向量更新门 $u’_t$:

\[\tilde{u}'_t=a_tu'_t\]

再按维更新隐藏状态:

\[h'_t=(1-\tilde{u}'_t)\odot h'_{t-1}+\tilde{u}'_t\odot\tilde{h}'_t\]

因此它既保留了更新门不同维度的重要性,又让与候选物品关系较弱的历史兴趣少改变当前状态。DIEN 论文使用的名称是 AUGRU,不需要再引入另一个未定义缩写。

四、BST(Behavior Sequence Transformer)

BST 的核心思路

将 Transformer 的自注意力机制应用到用户行为序列建模中:

[历史行为1, 历史行为2, ..., 历史行为N, 候选物品] → Transformer → 用户兴趣表示

优势

  • 全局注意力:每个行为都能看到其他所有行为
  • 训练时可并行处理序列位置,减少 RNN 式串行依赖;实际速度仍受二次注意力开销、序列长度与实现影响,并非总比 RNN 更快
  • 灵活的位置编码:可以加入时间间隔信息

五、SIM(Search-based Interest Model)

问题

DIN 和 DIEN 的计算复杂度与历史行为长度成正比,当行为序列很长时(如 1000+)计算开销巨大。

方案

SIM 采用两阶段方案:

  1. General Search Unit(GSU):从超长序列中筛选出与候选物品相关的较短子序列。原论文同时讨论了逐项计算相关性的 soft-search,以及可借助预建索引进行快速查询的按类目 hard-search
  2. Exact Search Unit(ESU):在缩短后的子序列上精确建模;原论文明确指出这里可以使用 DIN、DIEN 等更复杂结构

两阶段的价值不只是改变渐进复杂度,还在于把昂贵模型处理的长度从原始 $N$ 降到 $K\ll N$。若 GSU 采用逐项 soft-search,它本身仍是 $O(N)$;只有配合可检索索引的 hard-search 等实现,在线查询才可能做到次线性。因此不能笼统地把所有 SIM 实现都标成同一个 $O(N)$。

六、总结

模型 核心机制 复杂度 适用场景
DIN 局部激活 O(N) 中等长度序列
DIEN GRU + 兴趣演化 O(N) 需要建模兴趣变化
BST Transformer 自注意力 O(N²) 短序列高精度
SIM GSU 检索 + ESU 精确建模 soft-search 为 $O(N)$;索引化 hard-search 可次线性,ESU 成本取决于长度 $K$ 和所选模型 超长序列

七、参考资料


本文为推荐算法系列之一,相关文章:召回策略、排序模型、特征交叉。