腾讯 RecSys'24:基于行为微调 LLM 初始化物品 Embedding 的高效推荐方式
1. 背景与动机
近年来,随着预训练语言模型(PLMs)的突破性发展,学术界和工业界开始广泛探索它们在序列推荐场景中的应用。目前,主流的应用方式主要有两种:
- 文本编码器模式:将 PLMs 当作物品的文本 Encoder,利用其包含的丰富先验知识来编码物品文本(如标题、品牌、描述等),得到文本 Embedding,用于替换或增强物品原始的 ID Embedding。
- 序列建模模式:通过提示(Prompting)或上下文学习的方式,利用 PLMs 优秀的序列建模能力直接处理用户历史行为序列,以提升序列推荐效果。
然而,由于自然语言建模与用户行为建模之间存在巨大差异,这些方法在冷启动场景中表现较好,但当物品拥有足够的交互数据时,效果往往欠佳。这是因为用户行为的协同信号对于推荐至关重要,而纯文本语义可能无法完全捕捉这种隐式关联。尽管已有部分研究尝试将用户行为协同信号引入到 LLM 中,但仍遗留两个核心问题:
- PLMs 强大的序列建模能力在序列推荐中是否能够被充分且高效地利用?
- 是否存在更有效、更通用、更经济的将 PLMs 应用于序列推荐的方式?
本文基于腾讯在 RecSys'24 发表的研究,深入分析了基于 PLMs 的序列推荐模型的机制,并提出了一种简单高效的改进方案。
2. 分析方法与观察
为了探究基于 PLMs 的序列推荐模型的具体机制,作者选择了代表性模型 Recformer 作为观察对象。
2.1 Recformer 简介
Recformer 是基于 PLM 的序列推荐模型,其整体框架采用类似于 Longformer 的双向 Transformer 结构,但具有不同的 Embedding 层以适应序列推荐任务。它对物品和用户历史行为序列文本进行编码,得到对应的物品表征以进行推荐。
Recformer 的训练过程包含三个阶段:
- 预训练阶段 (Stage-PT):包含 Masked Language Modeling (MLM) 和 Item-Item Contrastive Task (IIC) 两个任务,旨在让模型学习物品的语义表示。
- 微调阶段 1 (Stage-FT1):在每个 epoch 开始时使用模型重新编码全部物品更新物品 Embedding。在这一阶段,序列建模部分和物品嵌入部分同时被优化。
- 微调阶段 2 (Stage-FT2):仅更新序列建模部分,保持物品嵌入冻结。这是作者关注的重点,旨在验证序列建模能力的有效性。
两阶段微调的流程可以简单理解为:在第 1 阶段获得物品最优表征 Embedding,第 2 阶段获得最佳序列建模模型。
2.2 注意力差异分析
为了探究 PLMs 在序列推荐任务中的具体运行机制,作者对完成第 2 阶段微调后的 Recformer 的注意力分布进行了可视化分析。基于 Instruments 和 Pantry 数据集,绘制了 Recformer(及其 Backbone 模型 Longformer 作为对比)在 [CLS] token 的注意力分布图。
分析发现以下四点关键现象:
- 存在明显的分层现象:Recformer 的注意力分布存在明显的分层现象。如在特定层级范围内(如 0-3 层、4-7 层、8-11 层),注意力分布比较相似,表明不同层级承担了不同的功能。
- 浅层聚焦于首个 Token:Recformer 的 4-7 层注意力主要集中在每个物品的第 1 个 Token。这说明这些层正在学习建模物品边界的能力。物品的每个 Token 在浅层主要关注物品内部 Token,这与基于物品 ID 的序列推荐模型中物品 Embedding 的生成过程类似。
- 深层细化注意力分布:在 8-11 层,Recformer 中的注意力开始细粒度地关注每个物品中的关键 Token,同时表现出像 SASRec 这样基于物品 ID 的序列推荐模型的模式,更多关注最近交互的物品。
- 存在明显的参数冗余现象:在 Recformer 的某些层和注意力头中,存在几乎相同的注意力分布,表明基于 PLM 的序列推荐模型中存在明显的参数冗余现象。
这些现象在不同实例和数据集中都广泛存在。Recformer 与其骨干 Longformer 完全不同,但在一定程度上类似于传统的基于物品 ID 的序列推荐模型。这说明原始的语言模型并不直接具有良好的处理用户行为序列的能力,需要使用用户行为数据做微调。此外,这些现象也意味着当前使用 PLMs 进行行为序列建模存在不足和参数冗余。


