Generative Recommendation with Semantic IDs: A Practitioner’s Handbook

47 阅读10分钟

标题:基于语义ID的生成式推荐:从业者指南
单位:snap

摘要

与传统模型相比,生成式推荐(GR)凭借其优异的性能获得了越来越多的关注。而生成式推荐取得成功的一个核心关键因素是语义ID(SID),它能将连续语义表征(例如来自大模型)转换为离散的 ID 序列。这使得基于 SID 的 GR 模型,既能融合语义信息、学习协同过滤信号,又能保留离散解码的优势。然而,现有文献中多样的建模技术、超参数设置和实验方案,使得不同 GR 方案之间难以进行直接对比。此外,开源统一框架的缺失,阻碍了系统性的基准测试与方法拓展,拖慢了模型迭代的速度。为解决这一挑战,本文提出并开源了一套面向基于语义ID的生成式推荐框架 GRID。该框架专为模块化设计,可便捷地替换各组件,加速算法创意的迭代验证。借助 GRID,我们在公开基准数据集上,对基于语义ID的 GR 模型的不同组件开展了系统性的实验与消融分析。大量实验结果表明,GR 模型中许多被忽视的架构组件,会对性能产生重大影响。这一发现不仅带来了全新的研究洞见,也验证了开源平台对于稳健基准测试、推动 GR 研究发展的实用价值。GRID 已开源至:github.com/snap-resear…

1 引言

推荐系统是提升各类网络服务用户体验的核心模块,典型场景包括商品推荐、视频推荐、好友推荐等。在所有推荐技术范式中,随着生成式模型在视觉与语言领域取得的突破性进展,GR 已成为发展最为迅速的方向之一。GR 充分利用生成式模型的技术优势,例如直接生成用户感兴趣物品的文本描述,或是从编码了开放世界知识的预训练模型中提取语义表征。

在 GR 领域,SID 是一种广受关注的技术范式,它能够弥合预训练基础模型与推荐系统之间的鸿沟。如图 1 所示,该范式首先利用模态编码器与量化分词器(例如RQ-VAE、VQ-VAE、残差K-means),将物品的图像、文本等模态特征转换为 SID;随后训练序列推荐模型,以用户历史交互物品的SID为输入,自回归地预测用户未来将交互物品的SID。

image.png 图 1:(a) GRID 的整体架构。GRID 将基于 SID 的 GR 工作流中的所有中间步骤模块化,以加速技术创新。(b) 基于 GRID 可直接实现 TIGER,仅需通过少量配置指定 GRID 中已有的相关组件,为从业者提供了可信赖的、可二次开发的参考实现。

基于SID的GR,为同时利用预训练基础模型中的语义知识,与用户-物品交互历史中编码的协同信号提供了有效途径:理论上,两个物品的SID重叠程度能够反映其语义相似度,而下一物品预测的监督信号,则能让 GR 模型学习跨 SID 的协同信号。自相关工作首次提出该范式以来,研究者们已提出多种基于 SID 的 GR 模型变体,其中不少方案实现了性能提升,或是完成了生产系统的部署验证。

尽管取得了可观的进展,基于 SID 的生成式推荐的进一步发展仍面临诸多挑战。首先,绝大多数相关文献并未提供开源实现,这给从业者与研究者带来了繁重的复现工作,不仅要求深厚的技术功底,还需要精细的超参数调优。而基于 SID 的 GR pipline 本身的复杂性,进一步加剧了这一挑战。正如本文后续将展示的,GR pipline 的优异性能,通常同时由多个耦合因素共同决定,例如合理的训练策略与精细的架构调优。从零搭建基于 SID 的GR pipline时,极难对潜在的性能不佳问题进行调试与根因定位,严重拖慢了研发与研究的进度。此外,现有文献通常未对基于 SID 的 GR 的设计选型进行充分探讨,导致从业者需要耗费宝贵的时间与算力资源,搭建专属的实验流水线来形成相关认知。

为填补上述空白,本文做出了如下贡献:

  1. 我们提出了 GRID,一个易用、灵活、高效的开发平台,可用于基于 SID 的生成式推荐方法的快速原型验证。GRID 包含了基于 SID 的生成式推荐核心组件的严谨实现(例如 SID 分词器、序列推荐器等),并可便捷地扩展以适配 GR 领域的最新研究进展。据我们所知,GRID 是首个能够复现现有文献报告结果的、面向 SID 生成式推荐原型开发的开源工具。
  2. 借助 GRID,我们开展了全面的实验,研究了基于 SID 的生成式推荐范式中各类组件的性能影响。
  3. 实验结果带来了多项出人意料的发现,揭示了现有文献中大多被忽视的关键建模与算法权衡关系。

2 相关工作

SID:推荐系统的性能核心取决于能否学习到高质量的表征。行业标准做法是为用户 / 物品分配唯一、无语义信息的 ID,再将其映射到能够捕捉协同信号的嵌入向量中。这种方法在可扩展性,以及稀疏、长尾场景的性能上存在明显短板。SID 则解决了这些问题:它首先通过 LLM 等模态编码器对文本等语义特征进行编码,再将稠密嵌入量化为稀疏 ID。常用的基于量化的分词器包括 RQ-VAE、RVQ 与残差K-means。

基于SID的生成式推荐:TIGER 首次将 Transformer 应用于推荐场景的物品 SID 预测,拓展了文档检索领域生成式检索的相关思路。后续工作从多个维度优化了 SID 的训练,包括融入协同信号、分布均衡化、引入先进的 LLM 或多模态编码器等。然而,该领域始终缺乏一个统一的开源框架。本文通过发布 GRID 这一模块化工具包,填补了这一空白,旨在简化并加速 GR 实验流程。

3 提出的框架:GRID—— 基于 SID 的生成式推荐框架

我们定义用户集合 UU 中的用户 u 与物品集合 II 中的物品发生交互。每个物品 iIi \in I 关联文本、图像等语义特征 fif_{i} ;每个用户 uUu \in U 拥有长度为 LuL_{u} 的交互序列,记为Su=[i1u,i2u,,iLuu]S_{u}=[i_{1}^{u}, i_{2}^{u}, \cdots, i_{L_{u}}^{u}]。不失一般性,我们通过模态编码器(如大语言模型、多模态大模型) E():fRdE(\cdot): f \to \mathbb{R}^{d},将 fif_{i} 转换为 d 维表征 hiRdh_{i} \in \mathbb{R}^{d}。生成式推荐旨在解决序列推荐任务:给定用户交互序列 SuS_{u},生成用户下一步将交互的物品(即 iLu+1ui_{L_{u}+1}^{u})的候选集。

3.1 架构:先 Token 化,后生成

GRID 将基于 SID 的 GR 拆分为两个独立阶段:Token 化阶段生成阶段,这也是该领域的通用范式(见图 1)。在 Token 化阶段,GRID 将物品嵌入(即 hih_{i})映射为 SID;在生成阶段,基于全量物品的 SID,GRID 通过 Transformer 等生成式模型架构,生成目标物品 iLu+1ui_{L_{u}+1}^{u} 的 SID。GRID 为每个阶段的组件都提供了灵活的实现方案。

SID Token 化:SID Token 化的流程为:首先通过预训练模态编码器 E()E(\cdot) 计算物品语义特征的嵌入 hih_{i},再通过层级聚类分词器,将这些嵌入映射为稀疏 ID 序列。SID 的层级化结构,能够通过不同的前缀层级实现精细的粒度控制。形式化而言,给定 hih_{i},分词器 Tokenizer():Rd{0,1,,W}LTokenizer(·) : \mathbb{R}^{d} \to \{0,1, \cdots, W\}^{L} 将物品嵌入 hih_{i} 映射为 ID 序列,公式为:

SIDi=Tokenizer(hi)=[SIDi0,SIDi1,,SIDiL1]SID_{i}=Tokenizer(h_{i})=[SID_{i}^{0}, SID_{i}^{1}, \cdots, SID_{i}^{L-1}]

其中 W 为每个 ID 的词表大小,L 为层级数量。

GRID 提供了即插即用的模块用于计算 hih_{i},可便捷地替换编码器 E()E(\cdot)——从业者既可以导入自定义模型,也可以直接使用 HuggingFace 上的现有模型。对于分词器,GRID 支持三种核心算法:残差 Mini-Batch K-Means(RK-Means,OneRec/QARM)、残差向量量化(R-VQ,Taming transformers for high-resolution image synthesis)、RQ-VAE(Autoregressive image generation using residual quantization)。例如,如图 1 所示,仅需通过几行配置修改,指定 T5 编码器生成物品表征、训练 RQ-VAE 生成 SID,即可实现 TIGER 的 Token 化阶段。

下一物品生成:完成全量物品的 SID 生成后,针对每个用户序列,GR 框架利用序列模型,生成用户最可能交互的候选物品列表。在 GRID 中,我们同时集成了 encoder-decoder 架构与 decoder-only 的模型,并提供了灵活的配置项(例如 Transformer 层的注意力头数、层数、混合专家模块配置等)。与 Token 化阶段一致,从业者可便捷地导入自定义架构,或是使用 HuggingFace 上公开的模型架构。

默认设置下,我们采用业界通用的下一个 Token 预测目标训练生成模型,并搭配滑动窗口增强。推理阶段通过带 KV 缓存的束搜索完成生成,支持束宽、是否限制搜索范围为有效 SID 等可调超参数。我们还实现了现有文献中广泛探索的多项技术技巧,以展示 GRID 的灵活性,包括用户 Token、SID 去重以避免冲突等。

4 基于 GRID 的实验

接下来,我们通过对基于 SID 的生成式推荐中,多个基础却被忽视的设计选型开展严谨的性能权衡分析,展示 GRID 的实用价值。

实验设置:我们在经过 5-core 过滤的 Amazon Beauty、Sports、Toys 数据集上进行评估,将每个用户的最后一个交互物品用于测试,倒数第二个用于验证,其余用于训练。物品文本特征包括标题、类目、描述与价格。语义嵌入通过 Flan-T5-Large、XL、XXL 模型的 final 隐层状态均值池化提取。Token 化阶段,我们对比了 RK-Means、R-VQ、RQ-VAE 三种算法;生成阶段,我们分析了上述各类架构选型。

分词器在 8 张 GPU 上训练,单设备批次大小为 2048。RK-Means 与 R-VQ 采用逐层训练,每层训练 1000 步;RQ-VAE 总计训练 15000 步。学习率设为 10310^{-3},R-VQ 使用 Adam 优化器,RQ-VAE 使用 Adagrad 优化器。为避免模型坍塌,我们对 RK-Means 与 R-VQ 的残差做了归一化处理,对 RQ-VAE 的嵌入做了白化处理。

生成式模型采用 Adam 优化器,学习率 5×1045 ×10^{-4},权重衰减 10610^{-6},批次大小 256。我们采用滑动窗口采样策略,当验证集 NDCG@10 连续 10 个验证间隔(每个间隔 100 步)无提升时,触发早停。生成模型的架构设置为:总计 8 个 Transformer 层(encoder-decoder 模型中编码器、解码器各 4 层),每层 6 个注意力头,嵌入维度 128,MLP 层隐层维度 1024。

我们在测试集上报告 K=5、10 时的 Recall@K 与 NDCG@K,采用验证集 Recall@10 最优的 checkpoint。所有结果均为 5 次不同随机种子实验的平均值。

4.1 语义ID Token 化

我们通过消融实验研究 SID Token 化的三个核心维度:(1)SID 分词器算法的选型;(2)预训练语义编码器的模型规模;(3)SID 分词器的残差层数 L 与每层 Token 数 W。我们训练了不同变体的 SID 分词器,并基于对应分词器训练基础序列推荐模型,评估其性能。除非特别说明,默认设置为:采用 (L,W)=(3,256)(L, W)=(3,256) 的 RK-Means 算法,编码器为 Flan-T5-XL。

SID 分词器算法:自 TIGER 提出以来,RQ-VAE 在现有文献中被作为默认的 SID 分词器广泛采用。然而,RQ-VAE 需要同时训练自编码器与量化器,带来了诸多挑战,也引发了一个问题:其带来的性能收益是否值得对应的实现复杂度?表 1 的结果给出了否定的答案:尽管我们对 RQ-VAE 的训练迭代次数是其他更简单算法的 5 倍,RK-Means(甚至 R-VQ)仍能带来比 RQ-VAE 更优的推荐性能。

image.png

语义编码器 size:接下来,我们调整了用于计算语义嵌入的 Flan-T5 模型规模,从 Large(7.8 亿参数)到 XL(3B 亿参数),再到 XXL(11B 亿参数)。表 2 的结果显示,尽管 LLM 的参数量提升了 14 倍以上,推荐性能仅出现了边际提升。这表明,当前基于 SID 的 GR 流水线,可通过更充分地利用 LLM 中更丰富的世界知识实现性能提升。

image.png

SID 分词器维度:在表 3 中,我们调整了 RK-Means 的残差层数L与每层 Token 数W,发现 (L,W)=(3,256)(L, W)=(3,256) 的默认设置带来了最优的推荐性能。出人意料的是,尽管更多的层级能为推荐模型传递更丰富的语义信息,模型性能却随着层数增加出现了显著下降。这揭示了 SID 序列的可学习性,与 SID 包含的语义信息量之间的权衡关系。

image.png

4.2 生成式推荐

为理解下一物品生成模型的设计选型对性能的影响,我们开展了消融实验,研究以下维度:(1)用户 Token 的数量;(2)encoder-decoder 与 decoder-only 架构的选型;(3)训练数据增强的引入;(4)ID 去重的实现方式;(5)约束 beam search 与无约束 beam search 的选型。我们采用前文所述的默认SID Token 化设置,评估下一物品的生成性能。

用户 Token 的数量:TIGER 为每个用户的语义标识符序列前置了一个用户 Token,用户 Token 通过随机哈希映射到固定大小的词表中。表 4 的结果显示,更大的用户 Token 词表并非总能提升性能,完全移除该设计(即用户 Token 数量为 0)反而取得了最优性能。这表明,当前基于 SID 的生成式推荐中用户 Token 的标准用法,并未实现其个性化的设计目标。

image.png

Encoder-decoder vs. Decoder-only架构:绝大多数现有文献采用基于Encoder-decoder的 Transformer 生成式模型。为探究Decoder-only架构的可行性,我们将骨干网络替换为Decoder-only架构。如表 5 所示,Decoder-only模型的性能显著低于Encoder-decoder模型。我们推测,这一巨大的性能差距源于Encoder-decoder模型的固有设计:编码器对用户全量历史的稠密注意力机制,能够有效捕捉更丰富、更全面的序列模式。这种深度上下文理解随后被解码器用于生成,对于生成式推荐这一具有挑战性的任务而言至关重要。

image.png

训练数据增强:表 6 中,我们研究了数据增强对基于 SID 的生成式推荐性能的影响。我们采用了滑动窗口数据增强,即单条用户序列可被扩展为所有可能的连续子序列。实验结果明确表明,合理的数据增强对于训练稳健、高性能的生成式推荐模型至关重要。该技术生成的更丰富、更多样的训练样本,很可能提升了模型从用户交互中学习可泛化模式的能力,缓解了过拟合,同时增强了模型在含噪声、稀疏数据场景下预测多样化下一物品的能力。

image.png

SID 去重:SID 去重对于精准检索至关重要。我们对比了两种策略:TIGER 提出的方法(为冲突的 SID 追加数字以解决冲突,即“With De-dup”),以及更简单的策略(SID 冲突时随机选择一个物品)。表 7 的结果显示,两种方法的性能相当,TIGER 的策略仅略有优势。但需要注意的是,TIGER 的策略增加了序列长度与解码复杂度,且其对全局 SID 分布信息的依赖,在大规模物品集场景中并不具备实用性。

image.png

约束 vs. 无约束 Beam Search:解码策略同时影响生成质量与计算效率。我们的消融实验对比了约束束搜索与无约束束搜索,这对于生成式推荐系统的部署至关重要。约束Beam Search会引导输出为有效的 SId,而无约束Beam Search则在无显式规则的情况下探索所有序列。表 8 的结果显示,两种方案取得了相近的性能。关键的是,无约束束搜索的计算效率显著更高,算力成本更低。这表明,结合模型学习到的模式,SID 生成任务的固有结构已足以生成高质量推荐结果,无需额外的显式约束带来的开销。

image.png

5 结论

本文中,我们阐明了基于 SID 的生成式推荐领域,对统一开源框架的迫切需求。借助 GRID,我们开展了系统性的实验,揭示了多项出人意料的研究洞见。我们发现,许多此前被认为是必要、且通常需要大量算力与工程投入的组件,实际上可以被更高效的替代方案替换,且不会损失性能。相反,许多常被忽视的设计选型,例如Encoder-decoder架构与数据增强,被证明是决定性能的核心因素。这些发现不仅为基于 SID 的生成式推荐性能的真正驱动因素提供了全新的洞见,也凸显了 GRID 这类开源平台,对于开展稳健的基准测试、加速研究进程的巨大价值。