推荐算法行为序列建模

DIN、DIEN 与 BST 等序列建模方法

📸 Posted by iStar on March 27, 2025

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


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

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

行为序列建模的目标:

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

二、DIN(Deep Interest Network)

核心思想

DIN 提出了一种局部激活机制:对于给定的候选物品,只激活与该物品相关的历史行为,而不是对所有历史行为做简单的平均。

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

激活单元

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

效果

  • 在阿里数据集上,CTR 预估 AUC 提升显著
  • 计算复杂度 O(N),N 为历史行为长度

三、DIEN(Deep Interest Evolution Network)

核心思想

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

行为序列 → GRU → 兴趣演化序列 → AUP(Attention Update Gate)→ 用户兴趣

兴趣抽取层

使用辅助 loss 来约束 GRU 的隐藏状态,使其真正学习到用户的兴趣表示。

兴趣演化层

在兴趣抽取的基础上,引入 AUP(Attention Update Gate)机制,根据候选物品对兴趣演化进行针对性更新。

四、BST(Behavior Sequence Transformer)

核心思想

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

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

优势

  • 全局注意力:每个行为都能看到其他所有行为
  • 并行计算:相比 RNN 更高效
  • 灵活的位置编码:可以加入时间间隔信息

五、SIM(Search-based Interest Model)

问题

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

方案

SIM 采用两阶段方案:

  1. 通用搜索:从超长序列中筛选出与候选物品相关的子序列
  2. 精确建模:在子序列上使用 DIN/DIEN 进行精细建模

六、总结

模型 核心机制 复杂度 适用场景
DIN 局部激活 O(N) 中等长度序列
DIEN GRU + 兴趣演化 O(N) 需要建模兴趣变化
BST Transformer 自注意力 O(N²) 短序列高精度
SIM 两阶段检索 O(N) 超长序列(1000+)

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