腾讯 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 进行行为序列建模存在不足和参数冗余。
2.3 模型冗余性分析
相比于 PLMs,传统的基于物品 ID 的序列推荐模型通常结构简单,层数头数较少(例如,SASRec 采用 2 层和 1 个头),而 Longformer 有 12 层和 12 个头。为了进一步验证模型参数冗余现象,作者冻结了 Recformer 中的大部分参数,仅训练微调某些特定的层。
实验结果表明,仅微调 Recformer 中特定的几层(如 3、7、11 层)即可达到甚至超过全量微调的效果。这再次说明基于 PLMs 的序列推荐模型存在功能分层和参数冗余现象。为此,作者认为很有必要简化基于 PLMs 的序列建模方式。
3. 实验分析与验证
基于前面的数据分析和观察,作者考虑保留 Recformer 编码得到的物品 Embedding,并将其序列建模模型替换为结构相对简单的基于物品 ID 的序列推荐模型(如 SASRec 或 BERT4Rec 模型)作为 Backbone。
3.1 简化序列推荐建模方式
在实验过程中,作者使用了 3 种版本的 Recformer 编码物品 Embedding:
- LF:原始的 Longformer,即未在行为数据上训练的 Recformer。
- PT:在预训练数据集上训练得到的 Recformer。
- FT:在目标域数据集上微调后得到的 Recformer(即 Stage-FT1 之后的)。
作者提出了 3 种简化序列推荐建模的方式:
- Embedding-init (freeze):使用冻结的物品 Embedding,仅训练序列建模模型部分。这个过程其实就是简化版的 Recformer 的 Stage-FT2。
- embedding-init (trainable):使用前面编码后得到的物品 Embedding 作为物品 ID Embedding 的初始化,在序列建模的过程中这些 Embedding 可进行正常更新。这种方式可以验证通过 PLM 得到的物品 Embedding 的作用与影响。
- further-train:在完成 Embedding-init (freeze) 的 FT 版本的训练后,再进行训练。分为 All 版本(更新全部参数)和 Emb 版本(冻结序列建模部分,只训练更新物品 Embedding)。
实验结果(以 SASRec 作为 Backbone)显示:
- 基于 PLMs 的序列建模存在参数冗余现象:PLMs 强大的序列建模能力在序列推荐场景没有得到充分发挥。比如使用 FT 版本的 embedding-init (freeze) 方法在大多数数据集上的表现都比 Recformer 要好,这说明简单模型已经足够胜任序列推荐中的行为序列建模任务。
- 基于行为微调的 PLMs 初始化物品 Embedding 效果更好:无论是 Embedding-init (freeze) 还是 embedding-init (trainable),PT 和 FT 版本的模型都显著好于 LF 的模型。且与随机初始化相比,基于行为微调的 PLMs 初始化能显著提升模型性能。未使用行为微调的 PLMs 初始化反而可能引入额外的噪声,使得模型性能下降,这说明使用行为数据微调的必要性。
- 对基于行为微调的 PLMs 的物品 Embedding 进一步微调能提升模型性能:从整体效果来看,further-train > embedding-init (trainable) > embedding-init (freeze)。这说明行为微调的 PLM 的物品 Embedding 初始化需要进一步适应以获得足够的行为信息。此外,通过进一步训练物品 Embedding(即固定序列建模部分)在进一步训练中表现最佳,这表明进一步训练 Embedding 可能是提高模型性能使其更有效和稳定的一种方式。
- 基于行为微调 PLMs 的物品 Embed 作为 ID Embed 初始化的方法具有可迁移性:即使是在预训练数据集上微调 (PT) 的 PLMs,使用物品 Embed 初始化 ID Embed 也能为下游新领域带来显著提升。
- 使用具有与行为微调的 PLMs 类似架构和训练目标的序列推荐模型,能获得更大提升:相比而言,在 embedding-init (freeze) 情况下,BERT4Rec 作为 Backbone 的模型在多个数据集上都好于以 SASRec 作为 Backbone 的效果。作者把这归因为 Recformer 和 BERT4Rec 在序列建模架构和训练损失方面的相似性。同时,这也进一步支撑了作者的假设,即 PLMs 可能对于行为序列建模过于复杂,可以用更简单的序列模型替代。
3.2 全量排序设定下验证所示方法泛化性
前面实验是在随机负采样设定下进行的,为了进一步验证基于行为微调后的 PLMs 初始化物品 Embedding 方法的泛化性,作者在全量排序的设定下也进行了相关的实验。
结果显示:
- 使用行为微调的 PLMs 初始化的物品 Embedding 在全量排序设定下,仍能大幅提高 SASRec 的模型性能,特别是在粗粒度的 HR@k 指标上,这表明所提方法在提升模型的泛化能力上有优势。
- 所提方法在所有数据集上都好于 Recformer。虽然相对提升没有前面随机采样设定下那么明显,但考虑到该方法在模型推理效率上的优点(没有额外的时延),这样的提升也是可接受的。
3.3 进一步验证有效性和鲁棒性
为了进一步探索所提基于行为微调的 PLM 初始化物品 Embed 方法对序列推荐的有效性和鲁棒性,作者对物品初始化做了两种变体:
- 与可训练的物品 ID Embed 协作:将行为微调的 PLM 初始化的物品 Embedding 作为 SASRec 额外的文本 Embed,在训练的过程中冻结住,并与物品 ID Embed 相加。
- 与 Recformer 的序列建模模型协作:将 Recformer 在 Stage-FT2 中微调的物品 Embed 设为可训练的,然后其它保持不变。
结果表明:
- 变种 1 的实验中,使用行为微调的 PLMs 初始化的 Embed (PT 和 FT) 都显著提升了模型性能,而原始的 PLMs 编码的 Embed (LF) 则没有提升。这进一步说明了,提升序列推荐性能的是基于行为感知的语义信息,而非原始的语义信息起到作用。
- 变种 2 的实验中,trainable 的 Recformer 在所有数据集上模型性能都显著好于原始的 Recformer,这说明即使是基于 PLM 的序列建模,行为微调的 PLMs 初始化 Embed 也是有益的,这验证了基于行为微调 PLMs 初始化物品 Embed 方法的有效性。此外,对比基于 SASRec 的序列建模模型,其表现还是稍逊,这进一步说明了预训练语言模型在序列推荐过程的冗余性。
基于行为微调的 PLMs 编码得到的物品 Embed 的行为信息还是比较匮乏。由于物品文本和行为表征之间的巨大冲突,用 PLM 表示物品的更优策略是,不要强行与文本耦合,而是使用行为微调的 PLMs 进行物品 Embed 的初始化。也就是说,序列推荐场景中,物品表征应该更注重行为信息,这些相关的语义信息可以作为重要的补充。
3.4 预训练数据集规模的影响
这里,作者探索预训练数据集的大小对基于行为微调 PLMs 初始化物品 Embed 方法的影响。作者随机采样了比例不等(从 0.01% 至 50%)的数据集分别预训练了 PLMs。
结果表明,即使是最小规模(几千用户)的基于行为的预训练,也可以带来大幅度的提升。这进一步验证了所提方法的效果提升主要归因于行为感知的 PLMs,而不是原始的 PLMs。同时,这也表明,对于新的序列推荐场景,少量基于行为的预训练可能足以将语言模型有效迁移到序列推荐任务中,说明了所提方法的实用性和有效性。
4. 总结与展望
本研究通过分析 Recformer 的注意力机制和参数冗余性,提出了一种利用行为微调后的 LLM 初始化物品 Embedding 的简单高效方式。核心结论如下:
- 去冗余化:复杂的 PLM 序列建模能力在推荐场景中并非必需,简单的 ID-based 模型配合高质量的 Embedding 初始化即可达到更好效果。
- 行为感知:必须使用推荐行为数据对 PLM 进行微调,才能提取出对推荐有效的语义信息,原始文本语义可能存在噪声。
- 低成本迁移:少量的行为数据预训练即可实现有效的知识迁移,降低了部署成本。
未来工作可进一步探索如何在多模态场景下结合视觉、文本和行为信号,以及如何在资源受限的边缘设备上部署此类轻量级模型。该研究为工业界落地大模型推荐系统提供了重要的理论依据和实践路径。