PLUM: Adapting Pre-trained Language Models for Industrial-scale Generative Recommendations


TL;DR

本文提出了一个名为 PLUM 的框架,旨在将预训练语言模型(LLM)应用于工业级生成式推荐任务,该框架通过语义ID(Semantic IDs)、领域持续预训练(CPT)和生成式微调三个阶段,实现了超越传统大规模嵌入模型的推荐效果和样本效率。

关键定义

相关工作

当前工业界主流的推荐系统严重依赖大规模嵌入模型(Large Embedding Models, LEMs),这些模型将绝大多数参数用于存储物品ID等高基数类别特征的嵌入表。这种架构虽然在记忆用户-物品交互方面很有效,但阻碍了更深、更复杂神经网络的应用,其扩展方式(增大嵌入表)与大语言模型(LLM)通过增加网络参数来学习紧凑输入Token组合的扩展路径截然不同。

LLM的成功启发了推荐系统领域的新范式,但直接应用通用LLM面临两大挑战:

  1. 领域鸿沟:LLM未在特定领域的用户行为数据和物品语料上预训练,难以理解用户偏好和物品的细微差别。
  2. 扩展瓶颈:传统的LEMs依赖巨大的嵌入表,训练成本高昂,难以支持大规模Transformer架构的训练。

本文旨在解决上述问题,提出PLUM框架,探索如何有效地将预训练LLM的能力迁移到工业级推荐任务中,并摆脱对大规模嵌入表的依赖。

本文方法

PLUM框架是一个包含三个核心阶段的系统,旨在将预训练LLM高效地适配于大规模生成式推荐。

语义ID (Semantic IDs)

本文方法的基础是将每个物品表示为一个称为语义ID(SID)的离散码字(codeword)元组。这基于一种改进的残差量化变分自编码器(Residual-Quantized Variational AutoEncoder, RQ-VAE)。相较于先前的工作,本文提出了SID-v2,包含以下几项关键创新:

SID模型训练设计

持续预训练 (Continued Pre-training)

在生成SID词表后,CPT阶段的目标是将SID作为一种新的模态与LLM已有的文本知识对齐。为此,模型在一个混合语料库上进行下一Token预测的训练。该语料库由两部分构成,各占50%:

通过CPT,模型不仅学会了根据用户历史生成SID,还保留了生成自由格式文本的能力,并展现出了一定的上下文少样本学习(in-context few-shot learning)能力。

生成式检索 (Generative Retrieval)

CPT之后的模型需要通过监督微调(Supervised Fine-Tuning, SFT)来针对具体的检索任务进行优化。此阶段模型会学习结合更丰富的实时上下文特征,并直接针对与用户体验相关的奖励信号进行优化。

生成式检索过程示意图

微调采用标准的自回归最大似然目标,模型学习预测用户点击视频的SID。损失函数如下:

\[\mathcal{L}_{\text{SFT}}=-\sum_{t=1}^{L}r(\text{user},v_{click})\cdot\log P(\text{sid}_{t} \mid \text{Context}_{\text{user}},\text{History}_{\text{user}},\text{sid}_{<t})\]

其中$[sid_1,..,sid_L]$是被点击视频$v_{click}$的SID序列,$r(\text{user}, v_{click})$是根据点击行为设计的奖励信号。在推理阶段,使用束搜索(beam search)解码生成多个候选SID序列,这些SID最终映射到视频库中成为推荐结果。

实验结论

本文通过一系列离线和在线实验,验证了PLUM框架的有效性。