核心要点
序列推荐:按用户行为发生的先后建模,预测「下一个」要交互的物品
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),只允许关注当前位置之前的行为;否则会用到「未来」信息造成数据穿越,离线指标虚高、上线失效。
追问
追问 1:SASRec 相比 GRU4Rec 的主要优势?
自注意力让任意两个历史物品直接交互,长程依赖建模更强;且可并行计算,训练效率高于串行的 RNN。对长行为序列,SASRec 通常显著更优。
追问 2:BERT4Rec 与 SASRec 的训练目标有何不同?
SASRec 是单向自回归,用因果掩码预测下一个物品;BERT4Rec 借鉴 BERT 的 Cloze 任务,随机遮蔽序列中的物品做双向预测,能利用左右上下文,但推理时需特殊处理(在序列尾部追加 mask)。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。