摘要:本文介绍推荐系统中用户行为序列建模的核心方法,包括 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 采用两阶段方案:
- 通用搜索:从超长序列中筛选出与候选物品相关的子序列
- 精确建模:在子序列上使用 DIN/DIEN 进行精细建模
六、总结
| 模型 | 核心机制 | 复杂度 | 适用场景 |
|---|---|---|---|
| DIN | 局部激活 | O(N) | 中等长度序列 |
| DIEN | GRU + 兴趣演化 | O(N) | 需要建模兴趣变化 |
| BST | Transformer 自注意力 | O(N²) | 短序列高精度 |
| SIM | 两阶段检索 | O(N) | 超长序列(1000+) |
本文为推荐算法系列之一,相关文章:召回策略、排序模型、特征交叉。