核心要点

  • 序列推荐:按用户行为发生的先后建模,预测「下一个」要交互的物品

  • GRU4Rec:用 GRU(RNN)建模会话内行为序列,适合 session-based 推荐

  • SASRec:用 Transformer注意力建模序列,能捕捉长程依赖、并行训练

  • 相比 CF/MF,序列推荐显式利用行为顺序信息,对兴趣演化更敏感

标准回答

核心范式:序列推荐把推荐建模为下一个物品预测(next-item prediction)——给定用户按时间排列的行为序列,预测其最可能交互的下一个物品。与协同过滤把交互看作无序集合不同,它显式利用行为的先后顺序。

GRU4Rec:早期代表,用 GRU(一种 RNN) 逐步编码会话内的点击序列,隐状态作为当前兴趣表示。适合无登录用户的 session-based 场景,但 RNN 串行、对长序列的长程依赖较弱。

SASRec(Self-Attentive Sequential Recommendation):用 Transformer 的自注意力 替代 RNN,每个位置可直接关注序列中任意历史物品,更好捕捉长程依赖;自注意力可并行,训练比 RNN 高效。通过 causal mask 保证只看历史、不泄露未来。

二者都属于序列建模,区别在于编码器:RNN(顺序、递归)vs 自注意力(全局、并行)。后续还有 BERT4Rec(双向 Cloze 任务)等变体。

常见误区

⚠️ 常见踩坑

SASRec 训练时必须加因果掩码(causal mask),只允许关注当前位置之前的行为;否则会用到「未来」信息造成数据穿越,离线指标虚高、上线失效。

追问

追问 1SASRec 相比 GRU4Rec 的主要优势?

自注意力让任意两个历史物品直接交互,长程依赖建模更强;且可并行计算,训练效率高于串行的 RNN。对长行为序列,SASRec 通常显著更优。

追问 2BERT4Rec 与 SASRec 的训练目标有何不同?

SASRec 是单向自回归,用因果掩码预测下一个物品;BERT4Rec 借鉴 BERT 的 Cloze 任务,随机遮蔽序列中的物品做双向预测,能利用左右上下文,但推理时需特殊处理(在序列尾部追加 mask)。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。