DL_端到端案例_阿里巴巴提出的BST(Behavior Sequence Transformer)

在深度学习和推荐系统领域,基于Transformer的端到端典型案例中最具代表性的是行为序列建模推荐系统(Sequential Recommendation),尤其是阿里巴巴提出的BST模型。该模型直接将用户历史行为序列作为输入,通过Transformer编码器进行端到端训练,预测用户对目标物品(如电影、商品)的偏好和评分。
下面我们将以BST模型在MovieLens数据集上预测用户对电影评分为例,进行端到端的详细分析,涵盖:任务定义、输入构造、模型架构、训练流程、损失函数、推理机制及优势特点。

一、任务定义:评分预测(Rating Prediction)

  • 目标:给定用户的历史行为序列和目标电影,预测用户对该电影的评分(1·5分)。
  • 本质:回归任务(也可转为分类任务)。
  • 关键挑战:捕捉用户兴趣的动态演化(如从“动作片”转向“科幻片”)。
    这是一个典型的上下文感知的序列推荐问题,而非仅基于协同过滤的静态推荐。

二、输入特征设计(多模态融合)

BST 模型的输入是 结构化+序列化 的混合特征,全部送入Transformer进行联合建模:

1、用户行为序列(核心)

对每个用户,按时间排序其历史交互记录,截取最近L个行为(如L=50):

  • movie_id_seq:[movie_123,movie_456,…,movie_789]
  • rating_seq:[4.0,5.0,…,3.0](可选,增强信号)
  • timestamp_seq:用于生成位置编码(或直接用行为顺序作为位置)

2.目标物品(Target Item)

  • target_movie_id
  • target_genres(如[“Romance”,“Comedy”])

3.用户静态画像(User Profile)

  • user_id
  • sex(“M”/“F”)
  • age_group(如“group_25”)
  • occupation(如“occupatiohn_4”)

4.电影元信息(Movie Features)

每部电影(包括序列中和目标)都关联其类型(genres),例如:

  • movie_123 —> [“Action”,“Sci_Fi”]
    所有类别型特征(如user_id、movie_id、genre)都将被嵌入(Embedding)为向量。

三、架构模型:端到端Transformer编码器

整个模型是一个纯前馈、无循环的端到端神经网络,结构如下:


[Input Features][Feature Embedding Layer] → 拼接所有嵌入向量
       ↓
[Sequence Construction] → 构造行为序列的 token 表示(含位置编码)
       ↓
[Transformer Encoder] → 多层自注意力 + FFN
       ↓
[Pooling / Target Attention] → 聚合序列表示
       ↓
[MLP Head] → 预测评分
       ↓
[Output: predicted_rating]

1.特征嵌入(Embedding)

user_id → eu​∈Rd
movie_id → em​∈Rd
genre → 多标签嵌入(如平均多个 genre 向量)
rating → 可学习的连续值嵌入(或线性投影)

对序列中的每个行为i,构造其token表示:
在这里插入图片描述
注意:这里将rating和genre融合进token表示,而非作为外部特征,这里对原始BST的改进。

2.Transformer编码器

将序列化 X输入标准Transformer编码(通常2~4层):

  • 每层包含:
    • Multi-Head Self-Attention
    • LayerNorm + Residual
    • Position-wise Feed-forward Network

输出:上下文感知的序列表示H=[h1, h2, …, hL]

3.序列聚合(Pooling)

常用方法:

  • 全局平均池化(Mean Pooling)
  • 最后时刻表示(hL)
  • Target-aware Attention:用目标电影嵌入作为query,对H做加权聚合

例如:
在这里插入图片描述

4.预测头(Prediction Head)

将以下向量拼接后输入MLP:

  • 用户画像嵌入 eu
  • 目标画像嵌入 etarget
  • 序列上下文向量 c

在这里插入图片描述

四、训练流程(端到端监督学习)

1.数据准备

  • 从MovieLens-1M 加载 users、movies、ratings;
  • 按user_id分组,按timestamp排序;
  • 对每个用户,滑动窗口构造样本:
    (history_seq, target_movie, true_rating)

2.损失函数

使用均方误差(MSE):
在这里插入图片描述

3.优化器

  • AdamW(带权重衰减)
  • 学习率调度(如warmup + cosine decay)

4.训练细节

  • Batch size:256~1024
  • 序列长度L:50(不足补零,mask padding)
  • Embedding维度d:64~128
  • 使用tf.data 或torch.utils.data.DataLoader高效加载

五、推理与部署

  • 离线训练:在全量用户行为日志上训练模型

  • 在线推理:

    • 实时获取用户最近L个行为;
    • 构造输入特征;
    • 模型输出对候选电影的预测评分;
    • 排序后返回top-K推荐。

可扩展为 召回+排序 两阶段:先用简单模型召回1000步电影,再用BST精排。

六、为什么是“端到端”?

  • 输入:原始行为日志(movie_id, rating, timestamp)+用户/电影元数据;
  • 输出:预测评分;
  • 中间过程:所有特征嵌入、序列建模、注意力计算、预测全部由一个神经网络完成;
  • 无需手工特征工程:如统计用户平均评分、热门度等传统特征不再需要。

模型自动学习:哪些历史行为重要?类型如何影响兴趣?性别是否相关?----全部由数据驱动。

七、优势与创新点

特征说明
序列建模能力强自注意力捕捉长期依赖,优于RNN/LSTM
多特征融合用户画像、电影类型、评分、位置统一建模
并行训练比RNN快得多,适合大规模数据
可解释性通过注意力权重分析用户关注哪些历史行为
灵活性高易扩展至点击率预测(CTR)、购买预测等任务

八、实际效果(MovieLens-1M上)

  • 指标:RMSE(越低越好)

    • 协同过滤(SVD):≈0.90
    • GRU4Rec: ≈0.87
    • BST(Transformer):≈0.83
  • 表明Transformer能更精确捕捉用户兴趣额演化。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值