Semantics Meet Signals: Dual Codebook Representationl Learning for Generative Recommendation
TL;DR 精炼摘要
本文提出了一种名为FlexCode的新框架,通过双码本表示学习平衡协同过滤和语义理解的关系,从而提升生成式推荐系统的性能。FlexCode自适应地分配词元预算,采用轻量级混合专家模型增强预测准确性与长尾物品的鲁棒性,在各类数据集中表现优于基线模型。
摘要
Generative recommendation has recently emerged as a powerful paradigm that unifies retrieval and generation, representing items as discrete semantic tokens and enabling flexible sequence modeling with autoregressive models. Despite its success, existing approaches rely on a single, uniform codebook to encode all items, overlooking the inherent imbalance between popular items rich in collaborative signals and long-tail items that depend on semantic understanding. We argue that this uniform treatment limits representational efficiency and hinders generalization. To address this, we introduce FlexCode, a popularity-aware framework that adaptively allocates a fixed token budget between a collaborative filtering (CF) codebook and a semantic codebook. A lightweight MoE dynamically balances CF-specific precision and semantic generalization, while an alignment and smoothness objective maintains coherence across the popularity spectrum. We perform experiments on both public and industrial-scale datasets, showing that FlexCode consistently outperform strong baselines. FlexCode provides a new mechanism for token representation in generative recommenders, achieving stronger accuracy and tail robustness, and offering a new perspective on balancing memorization and generalization in token-based recommendation models.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Semantics Meet Signals: Dual Codebook Representation Learning for Generative Recommendation (语义与信号的交汇:生成式推荐的双码本表示学习)
1.2. 作者
Zheng Hui, Xiaokai Wei, Reza Shirkavand, Chen Wang, Weizhi Zhang, Alejandro Peláez, Michelle Gong 等人。 作者的隶属机构包括:University of Cambridge (剑桥大学), Roblox Corporation (Roblox 公司), University of Maryland (马里兰大学), University of Illinois Chicago (伊利诺伊大学芝加哥分校)。
1.3. 发表期刊/会议
该论文发布于 arXiv 预印本平台。
1.4. 发表年份
2025年。
1.5. 摘要
生成式推荐 (Generative recommendation) 作为一种统一了检索和生成的新范式,通过将物品表示为离散的语义词元 (semantic tokens),并利用自回归 (autoregressive) 模型进行灵活的序列建模,取得了显著成功。然而,现有方法普遍采用单一且统一的码本 (codebook) 来编码所有物品,这忽略了流行物品(拥有丰富的协同信号)和长尾物品(更依赖语义理解)之间固有的不平衡。本文指出,这种统一处理限制了表示效率并阻碍了泛化 (generalization)。为解决此问题,论文引入了 FlexCode,一个流行度感知 (popularity-aware) 的框架,它自适应地将固定的词元预算 (token budget) 分配给一个协同过滤 (CF) 码本和一个语义码本。通过一个轻量级的混合专家模型 (Mixture-of-Experts, MoE) 动态平衡协同过滤的特异性精度和语义泛化能力,同时借助对齐和平滑目标 (alignment and smoothness objective) 来保持整个流行度谱的连贯性。论文在公共数据集和工业级数据集上进行了实验,结果表明 FlexCode 持续优于强大的基线模型。FlexCode 为生成式推荐器中的词元表示提供了一种新机制,实现了更强的准确性和长尾鲁棒性 (tail robustness),并为基于词元的推荐模型中平衡记忆 (memorization) 和泛化提供了新视角。
1.6. 原文链接
原文链接: https://arxiv.org/abs/2511.20673v1 PDF 链接: https://arxiv.org/pdf/2511.20673v1.pdf 发布状态: 预印本 (Preprint)。
2. 整体概括
2.1. 研究背景与动机
推荐系统是现代信息平台的核心组成部分,广泛应用于电子商务、流媒体和社交媒体等领域。传统的推荐方法(如协同过滤)通过用户-物品交互数据学习隐式表示,对频繁交互的(头部,head)物品表现良好,能够记忆细粒度的共现结构。然而,这些方法在长尾 (long-tail) 和冷启动 (cold-start) 物品上表现不佳,因为这些物品的交互数据非常稀疏。这反映了传统方法固有的记忆偏见:协同过滤虽然能捕捉关系特异性,但缺乏语义泛化能力。
近年来,基于语义 ID 的生成式推荐 (Generative recommendation) 作为一种有前景的替代范式出现。它将物品映射到离散的语义词元,然后训练自回归模型来生成未来物品序列。这种方法将推荐与序列生成统一起来,与大语言模型 (Large Language Models, LLMs) 兼容,并能利用文本、视觉或元数据等语义信息,从而更好地泛化到未见物品。
尽管有这些优点,当前的生成式推荐器仍面临两个主要局限性,阻碍了它们在实践中完全取代传统协同过滤系统:
-
表示纠缠 (Representation Entanglement): 大多数现有方法采用单一的共享码本来编码所有物品,试图将语义内容信息和协同交互信息压缩到同一个量化空间中。这导致学习到的物品词元既非纯粹的语义表示,也非精确的协同表示。单一词元被期望同时反映语义意义和高阶共现结构,这种耦合会造成干扰。对于头部物品,语义信号可能稀释高度局部的协同模式;对于长尾物品,协同信号即使在统计上不可靠也可能占据主导,从而损害冷启动行为。这最终导致表示崩溃:两种信息都未能得到优化建模。
-
静态容量分配 (Static Capacity Allocation): 现有方法为每个物品分配固定数量和类型的码本词元,而不考虑其流行度和数据状况。这与推荐数据固有的长尾特性相矛盾。头部物品拥有丰富的交互数据,因此受益于高容量的协同表示;而长尾物品缺乏交互支持,更依赖于文本描述、视觉属性或结构化元数据等语义证据。对这两类物品进行相同处理,会导致在某一领域浪费容量,而在另一领域则容量不足,具体表现为对头部物品过拟合 (overfitting) 而对长尾物品欠表示 (under-representing)。
论文将这两个限制视为生成式推荐中更普遍的“自适应容量分配 (adaptive capacity allocation)”问题:在给定固定词元预算的情况下,系统应如何决定将多少容量用于协同特异性,多少用于语义泛化,以及如何避免两者之间的破坏性干扰?
2.2. 核心贡献/主要发现
为了解决上述挑战,本文提出了 FlexCode 框架,其核心贡献和主要发现如下:
- 识别并形式化了现有生成式推荐器的结构性限制: 明确指出了单一共享码本中的表示纠缠问题和忽略物品流行度及数据稀疏性的静态容量分配问题,并将它们形式化为自适应容量分配问题。
- 提出了 FlexCode 框架:
- 将物品表示分解为协同码本 (Collaborative Codebook) 和 语义码本 (Semantic Codebook)。
- 引入了流行度感知 (Popularity-Aware) 的混合专家模型 (Mixture-of-Experts, MoE) 门控机制,根据每个物品的流行度动态地在两个码本之间分配固定的词元预算。头部物品倾向于获得更多协同词元,而长尾物品则获得更多语义词元。
- 设计了对齐和平滑目标 (Alignment and Smoothness Objective) 来确保两个码本之间的连贯性和稳定性。
- 在多尺度数据集上验证了其优越性: 在公共基准数据集和大规模工业数据集上进行了实验,FlexCode 持续优于 ItemID-based (基于物品 ID)、Semantic-ID (语义 ID) 和统一表示 (unified representation) 的基线模型。
- 实现了更强的准确性和长尾鲁棒性: FlexCode 提供了生成式推荐器中词元表示的新机制,在整体准确性上取得提升,并且在长尾物品推荐方面展现出卓越的鲁棒性,有效平衡了基于词元的推荐模型中的记忆和泛化能力。
3. 预备知识与相关工作
3.1. 基础概念
- 生成式推荐 (Generative Recommendation): 一种新兴的推荐范式,将推荐任务视为一个序列生成问题。不同于传统的预测评分或排序,生成式推荐器学习生成表示物品的离散词元序列,然后通过自回归模型预测用户接下来可能交互的物品序列。这种方法使得推荐系统能够利用大语言模型 (LLMs) 的能力,并更好地处理冷启动和长尾物品。
- 物品词元 (Item Tokens): 在生成式推荐中,物品不再被简单地表示为一个唯一的 ID,而是被映射到一系列离散的数字或符号,这些数字或符号被称为词元。这些词元通常通过向量量化 (Vector Quantization) 技术从物品的连续嵌入中获得。
- 码本 (Codebook): 码本是一个离散的向量字典,其中每个条目(码字)代表一个特定的语义或协同概念。当一个连续的物品嵌入被量化时,它会通过查找码本中最近的码字来获得一个或多个索引(即词元)。
- 自回归模型 (Autoregressive Model): 一类序列模型,其核心思想是预测序列中的下一个元素时,只依赖于当前元素之前的所有历史元素。在生成式推荐中,一个常见的自回归模型是 Transformer 解码器,它学习从用户历史交互物品的词元序列中预测下一个目标物品的词元序列。
- 协同过滤 (Collaborative Filtering, CF): 一种广泛使用的推荐技术,通过分析用户-物品交互数据(如购买、点击、评分)来发现用户或物品之间的相似性。它假设喜欢相似物品的用户也可能喜欢彼此的其他物品。协同过滤擅长捕捉物品之间的细粒度共现模式,但对数据稀疏的冷启动和长尾物品效果不佳。
- 语义表示 (Semantic Representation): 物品的语义表示是指从物品的非交互数据(如文本描述、图片、类别、品牌等元数据)中学习到的向量。这些表示捕捉了物品的内在含义和属性,使得模型能够在没有足够交互数据时,通过语义相似性进行泛化推荐。
- 向量量化变分自编码器 (Vector Quantized Variational Autoencoder, VQ-VAE): 一种深度学习模型,旨在学习离散的潜在表示。它结合了变分自编码器 (VAE) 的生成能力和向量量化 (VQ) 的离散化能力。VQ-VAE 将连续的潜在向量“捕捉”到码本中最近的离散码字上,从而实现离散表示的学习。
- 残差量化变分自编码器 (Residual Quantization Variational Autoencoder, RQ-VAE): 是 VQ-VAE 的一个变体,它通过分层或残差的方式进行量化,每次量化只编码前一次量化未捕捉到的残差信息。这种方法可以生成更丰富、更精细的离散表示序列,通常用于生成多个词元来表示一个物品。
- InfoNCE 损失 (InfoNCE Loss): InfoNCE (Information Noise Contrastive Estimation) 是一种对比学习 (contrastive learning) 损失函数。它旨在最大化正样本对(例如,同一物品在不同视图下的表示)之间的相似性,同时最小化正样本与大量负样本之间的相似性。这种损失函数在自监督学习和表示学习中非常流行,因为它能鼓励模型学习到具有良好区分性的表示。
- 混合专家模型 (Mixture-of-Experts, MoE): MoE 是一种神经网络架构,由一个门控网络 (gating network) 和多个专家网络 (expert networks) 组成。门控网络根据输入决定将数据路由到哪个(或哪些)专家网络进行处理,或者如何组合不同专家的输出。这种架构可以提高模型的容量和效率,允许不同专家专注于数据空间的不同子区域或任务的不同方面。
- 长尾物品 (Long-tail Items): 在推荐系统中,长尾物品是指那些用户交互频率非常低,数据量稀疏的物品。由于缺乏足够的交互数据,推荐系统很难为这些物品生成准确的协同表示。
- 冷启动物品 (Cold-start Items): 指那些刚刚进入系统,没有任何用户交互数据的新物品。对于这类物品,协同过滤方法完全失效,只能依赖物品的语义信息进行推荐。
- 流行物品 (Head Items): 与长尾物品相对,指那些用户交互频率高,数据量丰富的物品。
3.2. 前人工作
- 传统协同过滤 (CF) 模型: 如矩阵分解 (Matrix Factorization) (Koren et al., 2009) 和神经协同过滤 (Neural Collaborative Filtering) (He et al., 2017) 等,通过学习用户-物品交互的隐式表示来预测评分或偏好。这些方法在头部物品上表现良好,但对长尾和冷启动物品存在系统性退化 (Zhang et al., 2021; Liu et al., 2023)。
- 序列推荐模型 (Sequential Recommendation Models): 如 Caser (Tang and Wang, 2018), GRU4Rec (Hidasi et al., 2015), HGN (Ma et al., 2019), BERT4Rec (Sun et al., 2019), SASRec (Kang and McAuley, 2018) 等,通过建模用户交互序列来预测下一个物品。其中,SASRec 及其变体利用自注意力 (Self-Attention) 机制捕捉序列中的长距离依赖关系,是许多后续序列模型的基础。
- 基于语义 ID 的生成式推荐 (Semantic-ID based Generative Recommendation): 这类方法将物品表示为离散的语义词元,然后使用自回归模型进行推荐。
- VQRec (Hou et al., 2023) 和 TIGER (Rajput et al., 2023) 是该领域的早期代表,它们通过向量量化将物品语义嵌入转换为离散词元。
- LC-Rec (Zheng et al., 2024) 和 COBRA (Yang et al., 2025) 则进一步探索了语义编码和生成机制。
- Unified Representation Learning (URL) (Lin et al., 2025) 试图将 ItemID 和语义信息融合到统一的表示中。
- 语义码本学习 (Semantic Codebook Learning) 的相关工作包括 Lv et al., 2024。
3.3. 技术演进
推荐系统的发展经历了从早期基于内容和协同过滤的传统方法,到基于深度学习的序列推荐模型,再到近年来融合了语言模型思想的生成式推荐。在生成式推荐领域,最初的方法主要关注将物品映射到单一语义词元序列,以实现与大语言模型的兼容性和对冷启动物品的泛化。然而,这种统一的单码本方法逐渐暴露出其局限性,即难以同时高效地捕捉协同信号的精确性和语义信号的泛化性,导致表示纠缠和容量分配不均的问题。FlexCode 正是在这一背景下,通过引入双码本结构和流行度感知 (popularity-aware) 的动态分配机制,来解决这些深层问题,代表了生成式推荐在精细化表示学习方面的重要进展。
3.4. 差异化分析
FlexCode 与现有方法的关键区别和创新点在于:
- 双码本结构 (Dual Codebook Structure): 现有生成式推荐器大多使用单一码本将所有物品编码为词元,导致语义和协同信息纠缠。FlexCode 明确地将物品表示分解为独立的协同码本 (Collaborative Codebook) 和语义码本 (Semantic Codebook),从而解决了表示纠缠问题,使得每个码本能够专注于捕捉特定类型的信息。
- 流行度感知词元分配 (Popularity-Aware Token Allocation, PATA): 现有方法通常对所有物品采用静态的词元分配策略,忽略了物品流行度的巨大差异。FlexCode 引入了一个轻量级的混合专家模型 (MoE) 路由器,能够根据物品的流行度等统计特征,动态地调整每个物品从协同码本和语义码本中获取的词元比例。这使得模型能够为头部物品分配更多协同容量以进行精确记忆,为长尾物品分配更多语义容量以进行泛化,从而实现更高效的容量利用和更好的头尾平衡。
- 跨码本对齐 (Cross-Codebook Alignment, CCA): 虽然引入了双码本,但 FlexCode 通过对比学习的 InfoNCE 损失确保两个码本在学习不同方面信息的同时,仍然保持语义上的一致性,防止它们漂移到不相关的表示空间,从而增强了系统的稳定性和连贯性。
- 更强的泛化能力和鲁棒性: 通过上述机制,FlexCode 在保持整体推荐准确性的同时,显著提升了对长尾和冷启动物品的推荐效果,解决了现有方法在记忆和泛化之间难以平衡的困境。
4. 方法论
本节将详细阐述 FlexCode 框架的各个组成部分。FlexCode 通过引入新颖的双码本架构、流行度感知词元分配机制以及稳健的自回归生成方案,解决了现有生成式推荐系统中表示纠缠和静态容量分配的挑战。整个框架的概览如原文 Figure 1 所示。
Figure 1: Overview of the FlexCode framework for generative recommendation. Each item is encoded by a dual codebook with collaborativeand semanticcodebooks,aligned viaacross-codebookcontrastiveobjective.A popularity-aware Mixture-o-Experts (MoE) router adaptivelyallocates the budget between codebooks, and an autoregressive Transformer is trained on the resulting sequences to generate items.
Figure 1: Overview of the FlexCode framework for generative recommendation. Each item is encoded by a dual codebook with collaborativeand semanticcodebooks,aligned viaacross-codebookcontrastiveobjective.A popularity-aware Mixture-o-Experts (MoE) router adaptivelyallocates the budget between codebooks, and an autoregressive Transformer is trained on the resulting sequences to generate items.
4.1. 双码本构建 (Dual Codebook Construction)
为了解决表示纠缠问题,FlexCode 为每个物品引入了两个专门的码本:一个用于捕捉模态特定含义的语义码本 (Semantic Codebook, SC) 和一个用于编码高阶交互模式的协同码本 (Collaborative Codebook, CC)。
4.1.1. 语义码本学习 (Semantic Codebook Learning, SCL)
语义码本旨在从物品相关的文本和类别元数据中提炼出其固有的含义。
- 特征提取: 对于每个物品 ,首先将其描述性属性(如品牌、类别、价格和标题)拼接成一个统一的文本字符串。然后,将该字符串输入一个强大的预训练文本嵌入模型 (pretrained text embedding model),以获得一个稠密的语义嵌入 。
- 离散化: 为了将这些连续的语义嵌入转换为离散码本,我们采用残差量化变分自编码器 (Residual Quantization Variational Autoencoder, RQ-VAE) (Lee et al., 2022)。对于每个 ,RQ-VAE 将其编码成一个由 个离散码向量组成的序列,表示为 ,其中每个 是一个共享语义码本 中某个条目的索引。
- 损失函数: 语义码本的总重构损失定义为:
- 符号解释:
- :语义码本学习的总损失。
- :对从语义嵌入分布 中采样的物品语义嵌入 进行期望计算。
- :重构损失,衡量原始语义嵌入 与其从量化表示 解码 (Decode) 出来的重构嵌入之间的 L2 范数平方距离。这部分确保了离散表示能够忠实地重构原始语义信息。
- :标准的 VQ-VAE (向量量化变分自编码器) 损失。这部分通常包括编码器输出与码本条目之间的距离项、码本条目与编码器输出之间的距离项(用于更新码本),以及承诺损失 (commitment loss)。在 RQ-VAE 中,它可能在每个残差量化步骤上应用。
- 和 :表示在 RQ-VAE 的第 步中,编码器的输出(或残差)和对应的码本量化向量。
- 这个阶段的输出是物品 的语义码本 ,它实际上是物品 对应的语义词元序列。
- 符号解释:
4.1.2. 协同码本学习 (Collaborative Codebook Learning, CCL)
协同码本旨在捕捉高阶的共同购买或共同浏览模式。
- 特征提取: 为了获得丰富的协同嵌入,我们使用类似 SASRec 的架构 (Kang and McAuley, 2018) 来为每个物品 导出上下文感知的协同嵌入 。
- 离散化: 类似于语义码本,我们应用 RQ-VAE 将这些协同嵌入离散化为由 个离散码向量组成的序列 ,这些向量来自一个协同码本 。
- 损失函数: 损失函数 的定义与 类似:
- 符号解释:
- :协同码本学习的总损失。
- :对从协同嵌入分布 中采样的物品协同嵌入 进行期望计算。
- :重构损失,衡量原始协同嵌入 与其从量化表示 解码出来的重构嵌入之间的 L2 范数平方距离。
- :VQ-VAE 损失,用于协同码本的量化步骤。
- 这个阶段的输出是物品 的协同码本 。
- 符号解释:
4.2. 跨码本对齐 (Cross-Codebook Alignment, CCA)
尽管两个码本捕捉了物品的不同方面,但它们必须保持连贯,不能漂移到不相关的表示空间。为确保这种一致性,我们引入了跨码本对齐 (CCA) 目标。
- 操作对象: 该目标作用于重构的嵌入,即从语义码本解码得到的 和从协同码本解码得到的 。对重构向量进行对齐,确保对齐损失作用于码本实际保留的信息上,从而强制它们学习的量化表示不仅对齐,而且能够解码到一个连贯的共享空间。
- 投影: 设 和 是将这些重构嵌入映射到共享潜在空间 (shared latent space) 的投影头 (projection heads)。
- 损失函数: 对齐损失 使用 InfoNCE 目标 (InfoNCE objective) 定义:
- 符号解释:
- :跨码本对齐损失。
- :余弦相似度 (cosine similarity),用于衡量两个向量之间的相似性。
- :温度参数 (temperature parameter),控制对比损失中正负样本区分的严格程度。
- :将物品 的重构语义嵌入投影到共享潜在空间。
- :将物品 的重构协同嵌入投影到共享潜在空间。
- :遍历所有物品 作为负样本。
- 这个损失函数通过将同一物品的语义和协同表示(经过投影)拉近,同时将该物品的语义表示与其负样本(其他物品)的协同表示推开,来促进两个码本的对齐。此外,这种对比压力也作为强大的正则化器,鼓励码本条目更均匀地使用,并缓解 VQ-based 模型中常见的码本崩溃 (codebook collapse) 问题。
- 符号解释:
4.3. 流行度感知词元分配 (Popularity-Aware Token Allocation, PATA)
为了在两个码本之间自适应地分配固定的总词元预算 ,我们引入了一个轻量级的混合专家模型 (Mixture-of-Experts, MoE) 路由器。目标是为流行 (头部) 物品分配更多协同容量,为稀疏 (长尾) 物品分配更多语义容量。
- 物品特征: 对于每个物品 ,我们构建一个特征向量 。
- :物品 的归一化交互频率(经验流行度)。
- :物品自引入系统以来的时间。
- :物品交互密度的倒数。
- :物品在训练期间嵌入的方差。
- 虽然简单的 sigmoid 函数作用于流行度也可以提供单调的分配,但我们选择使用基于多层感知机 (MLP) 的路由器 来捕捉这些特征之间更复杂、非线性的交互,从而实现更细致的分配决策。
- 路由决策: 路由器(一个浅层 MLP)处理 以产生 logits 。然后,通过温度缩放的 softmax 函数得到路由概率 ,从中定义协同分配比例 。
- 软词元分配: 这个比例决定了每个码本的软词元数量:
- 符号解释:
- :物品 从协同码本中分配到的软词元数量。
- :物品 从语义码本中分配到的软词元数量。
- :物品 的协同分配比例,由 MoE 路由器根据物品特征动态生成。
- :每个物品的总词元预算,是固定的。
- 符号解释:
- 软选择与离散化: 为了保持可微分性 (differentiability),我们在训练期间使用基于 sigmoid 的掩码 (sigmoid-based masks) 来软选择词元:
- 符号解释:
- :协同码本中第 个词元的掩码值。
- :语义码本中第 个词元的掩码值。
- :sigmoid 函数。
- :词元在序列中的索引。
- :超参数,控制软到硬转换的平滑度。在推断时,分配通过四舍五入进行离散化。
- 最终的组合表示 将被掩码的码本进行拼接。
- 符号解释:
- 路由器正则化: 为确保路由器的稳定性,我们使用分层负载均衡 (stratified load-balancing, ) 在流行度区间内进行平衡,并对分配比例 施加局部平滑性正则化器 ()。
4.4. 自回归生成 (Autoregressive Generation, ARG)
给定用户 的历史物品序列 ,我们检索其对应的组合码本 。一个自回归 Transformer 模型被训练来最大化下一个物品码本 的似然。
- 损失函数: 损失是标准交叉熵 (cross-entropy) 在预测词元序列上的求和:
- 符号解释:
- :自回归生成损失。
- :序列长度。
- :每个物品的总词元数量。
- :预测下一个物品 的第 个词元 的概率,条件是用户历史序列中直到 时刻的物品码本 以及当前目标物品 中已经生成的第
1到k-1个词元 。
- 这个损失函数使得 Transformer 能够学习根据用户的历史交互序列和当前正在生成的物品的已生成部分来预测下一个词元。
- 符号解释:
4.5. 总体目标与训练 (Overall Objective and Training)
整个 FlexCode 框架以端到端 (end-to-end) 方式进行联合训练。最终的目标函数是所有组件损失的加权和:
- 符号解释:
- :总的训练损失。
- :语义码本学习损失。
- :协同码本学习损失。
- :跨码本对齐损失 的权重超参数。
- :自回归生成损失 的权重超参数。
- :负载均衡损失 的权重超参数。
- :平滑性正则化损失 的权重超参数。
- 这种端到端训练使得码本、路由器和自回归模型能够协同适应,从而产生一个更有效、更具凝聚力的最终系统。
5. 实验设置
本节将详细阐述实验设置,包括使用的数据集、评估指标以及对比基线模型,以全面评估 FlexCode 框架的有效性和效率。
5.1. 数据集
为了在不同领域和数据特征下全面评估我们的框架,实验在三个广泛使用的公共基准数据集和一个大规模专有工业数据集上进行。遵循现有研究 (He et al., 2017; Sun et al., 2019; Zhou et al., 2020),我们将每个用户的按时间顺序排列的交互历史视为一个有序序列。采用标准的留一法 (leave-last-out) 评估协议 (Kang and McAuley, 2018),即使用用户交互历史中的最后一个物品进行测试,倒数第二个物品用于验证。此外,遵循惯例,应用 5-core 过滤策略(即每个用户和物品至少有 5 次交互)。
- 公共基准数据集:
- Amazon-Beauty (McAuley et al., 2015): 一个相对密集、中等规模的电子商务数据集,包含用户对美容产品的评论和购买行为。
- Amazon-Sports and Outdoors (McAuley et al., 2015): 一个规模更大、数据更稀疏的电子商务数据集,涵盖运动与户外产品。
- KuaiRand-1K (Gao et al., 2022): 一个大规模短视频推荐数据集,具有丰富的侧边信息,反映了现代内容平台的特点。
- 专有工业数据集 (Proprietary Industrial Dataset):
-
为了进一步验证 FlexCode 在生产级条件下的有效性,还在一个从商业平台收集的内部工业数据集上进行了训练和评估。
-
该数据集包含数千万用户及其在一年多时间内的数万个物品上的交互序列。
-
使用最后一天记录的交互数据进行评估,以模拟在线推断场景。
-
由于保密协议,仅报告近似、四舍五入的统计数据。
以下是原文 Table 2 的结果,展示了这些数据集的详细统计信息:
Dataset #Users #Items #Interactions Avg. Seq. Beauty 22,363 12,101 198,360 8.87 Sports 35,598 18,357 296,175 8.32 KuaiRand 1,000 3.6M 11M 11.71 Proprietary 1.5M+ 1M+ 45M+ 28.0
-
Table 2: Statistics of public benchmark datasets after preprocessing.
5.2. 评估指标
我们使用 Recall@K (召回率@K) 和 NDCG@K (归一化折损累计增益@K) 来评估模型性能,其中 ,这与现有研究 (Rajput et al., 2023) 保持一致。
5.2.1. Recall@K (召回率@K)
- 概念定义: Recall@K 衡量的是在模型生成的 Top-K 推荐列表中,实际用户交互过的目标物品被成功召回的比例。它关注模型发现所有相关物品的能力,即使这些物品排名不是最高的。在推荐场景中,通常每个用户只有一个真实目标物品。
- 数学公式: 或者,当 通常只包含一个目标物品时,可以简化为:
- 符号解释:
- :用户总数。
- :指示函数,如果括号内的条件为真则为 1,否则为 0。
- :为用户 生成的 Top-K 推荐列表。
- :用户 实际交互的下一个物品集合(通常包含一个目标物品 )。
- :用户 实际交互的下一个目标物品。
5.2.2. NDCG@K (归一化折损累计增益@K)
- 概念定义: NDCG@K 是一种常用的评估推荐列表排序质量的指标。它不仅考虑推荐列表中是否包含相关物品,还考虑这些相关物品在列表中的位置。排名靠前的相关物品会获得更高的权重(更大的增益),而排名靠后的相关物品增益会折损。NDCG 的值介于 0 到 1 之间,1 表示完美排序。
- 数学公式: 其中,折损累计增益 (Discounted Cumulative Gain, DCG) 为: 理想折损累计增益 (Ideal Discounted Cumulative Gain, IDCG) 为:
- 符号解释:
- :用户总数。
- :用户 在 Top-K 列表上的折损累计增益。
- :用户 在理想排序(即所有真实相关物品都排在最前面)下的理想折损累计增益。
- :在推荐列表的第 个位置上的物品与目标物品的相关性得分。在二元相关性(0 或 1)场景中,如果第 个物品是目标物品,则 ,否则为 0。
- :在理想排序中,第 个位置上的物品与目标物品的相关性得分。
- :对排名位置 的惩罚因子,排名越靠后惩罚越大。
- :用户 的真实交互物品的数量(通常为 1)。
5.3. 对比基线
为了全面评估 FlexCode 的性能,我们将其与两类代表性的基线模型进行比较:
5.3.1. Item ID-based methods (基于物品 ID 的方法)
这类模型直接从用户-物品交互历史中学习物品表示,通常是序列推荐模型。
- Caser (Tang and Wang, 2018): 利用卷积序列嵌入进行个性化 Top-N 序列推荐。
- GRU4Rec (Hidasi et al., 2015): 基于循环神经网络 (RNN) 的序列推荐模型,擅长建模会话数据。
- HGN (Ma et al., 2019): 序列推荐的层次门控网络。
- BERT4Rec (Sun et al., 2019): 借鉴 BERT 的双向编码器表示,使用掩码语言模型 (Masked Language Model, MLM) 任务进行序列推荐。
- SASRec (Kang and McAuley, 2018): 基于自注意力机制的序列推荐模型,能够捕捉长距离依赖。
- S3-Rec (Zhou et al., 2020): 采用自监督学习,通过互信息最大化进行序列推荐。
- Recformer (Li et al., 2023): 专注于语言表示学习的序列推荐模型。
5.3.2. Semantic ID-based methods (基于语义 ID 的方法)
这类方法将物品表示或量化为离散的语义标识符,是生成式推荐的代表。
- VQ-Rec (Hou et al., 2023): 为可迁移序列推荐学习向量量化物品表示。
- TIGER (Rajput et al., 2023): 采用生成式检索的推荐系统。
- LC-Rec (Zheng et al., 2024): 通过集成协同语义来适应大型语言模型进行推荐。
- COBRA (Yang et al., 2025): 稀疏与稠密结合:利用级联稀疏-稠密表示的统一生成式推荐。
- URL (Unified Representation Learning) (Lin et al., 2025): 深度推荐器的统一语义和 ID 表示学习。
- FlexCode-SID only: FlexCode 的变体,仅使用语义码本进行推荐。
- FlexCode-CF only: FlexCode 的变体,仅使用协同码本进行推荐。
- FlexCode-Fix: FlexCode 的变体,禁用 MoE 门控网络,而是采用固定的 50/50 词元分配比例。
6. 实验结果与分析
本节将通过实证数据展示 FlexCode 方法的有效性和效率,并对其性能进行深入分析。
6.1. 核心结果分析
6.1.1. 公共基准数据集上的主要结果
以下是原文 Table 1 的结果,展示了 FlexCode 和基线模型在三个公共基准数据集上的整体性能比较:
| Model | Beauty | Sports and Outdoors | KuaiRand | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| R@5 | N@5 | R@10 | N@10 | R@5 | N@5 | R@10 | N@10 | R@5 | N@5 | R@10 | N@10 | |
| Item ID-based methods | ||||||||||||
| Caser | 0.0205 | 0.0131 | 0.0347 | 0.0176 | 0.0116 | 0.0072 | 0.0194 | 0.0097 | 0.0074 | 0.0068 | 0.0118 | 0.0095 |
| GRU4Rec | 0.0164 | 0.0099 | 0.0283 | 0.0137 | 0.0129 | 0.0086 | 0.0204 | 0.0110 | 0.0298 | 00217 | 0.0383 | 0.0245 |
| HGN | 0.0325 | 0.0206 | 0.0512 | 0.0266 | 0.0189 | 0.0120 | 0.0313 | 0.0159 | 0.0297 | 0.0169 | 0.0354 | 0.0219 |
| BERT4Rec | 0.0203 | 0.0124 | 0.0347 | 0.0170 | 0.0115 | 0.0075 | 0.0191 | 0.0099 | 0.0185 | 0.0196 | 0.0217 | 0.0236 |
| SASRec | 0.0387 | 0.0249 | 0.0605 | 0.0318 | 0.0233 | 0.0154 | 0.0350 | 0.0192 | 0.0332 | 0.0338 | 0.0405 | 0.0372 |
| S3-Rec | 0.0387 | 0.0244 | 0.0647 | 0.0327 | 0.0251 | 0.0161 | 0.0385 | 0.0204 | — | — | — | — |
| Recformer | 0.0379 | 0.0257 | 0.0589 | 0.0321 | 0.0249 | 0.0154 | 0.0370 | 0.0201 | — | — | — | — |
| Semantic ID-based methods | ||||||||||||
| VQ-Rec | 0.0457 | 0.0317 | 0.0664 | 0.0383 | 0.0208 | 0.0144 | 0.0300 | 0.0173 | 0.0513 | 0.0354 | 0.0589 | 0.0412 |
| TIGER | 0.0454 | 0.0321 | 0.0648 | 0.0384 | 0.0264 | 0.0181 | 0.0400 | 0.0225 | 0.0557 | 0.0383 | 0.0624 | 0.0445 |
| LC-Rec | 0.0478 | 0.0329 | 0.0679 | 0.0389 | 0.0268 | 0.0177 | 0.0412 | 0.0221 | 0.0622 | 0.0403 | 0.0684 | 0.0497 |
| COBRA | 0.0537 | 0.0395 | 0.0725 | 0.0456 | 0.0306 | 0.0215 | 0.0434 | 0.0257 | — | — | — | — |
| URL | 0.0553 | 0.0410 | 0.0736 | 0.0471 | 0.0305 | 0.0218 | 0.0449 | 0.0273 | 0.0654 | 0.0481 | 0.0778 | 0.0585 |
| FlexCode-SID only | 0.0510 | 0.0375 | 0.0689 | 0.0433 | 0.0291 | 0.0204 | 0.0412 | 0.0244 | 0.0523 | 0.0461 | 0.0759 | 0.0517 |
| FlexCode-CF only | 0.0360 | 0.0232 | 0.0563 | 0.0296 | 0.0217 | 0.0143 | 0.0326 | 0.0179 | 0.0309 | 0.0314 | 0.0377 | 0.0346 |
| FlexCode-Fix | 0.0531 | 0.0394 | 0.0707 | 0.0452 | 0.0293 | 0.0209 | 0.0431 | 0.0262 | 0.0628 | 0.0462 | 0.0747 | 0.0562 |
| FlexCode (ours) | 0.0578 | 0.0415 | 0.0769 | 0.0483 | 0.0329 | 0.0232 | 0.0471 | 0.0275 | 0.0709 | 0.0524 | 0.0825 | 0.0632 |
Table 1: Overall comparison of FlexCode and baseline models on three datasets.Best results are in bold, anc second-best are underlined. All improvements are statistically significant with .
- FlexCode 持续超越基线: 从 Table 1 可以看出,FlexCode 在所有三个公共基准数据集上,无论是 Recall@K 还是 NDCG@K,都持续优于所有基线模型。这种优势在规模更大、数据更稀疏的数据集上尤为显著。
- 在 Amazon-Sports 上的表现: 在 Amazon-Sports 数据集上,FlexCode 的 Recall@10 达到了 0.0471,相较于最强的语义基线模型 URL 提升了 5.3% 的相对性能。
- 在 KuaiRand 上的优势: 这种性能差距在大型 KuaiRand 数据集上进一步扩大,FlexCode 的 NDCG@10 达到了 0.0632,相较于 URL 提升了 8.0%。这表明 FlexCode 对多样化的数据特性具有强大的鲁棒性。
- 设计原理的验证:
- 语义泛化与协同精确性: 相较于 SASRec 等基于物品 ID 的模型,FlexCode 引入了专用的语义码本,解决了传统模型在稀疏数据上缺乏语义泛化能力的问题。同时,它通过显式分离协同信号和语义信号,避免了 URL 等单一码本生成模型中常见的表示纠缠问题。
- 双码本结构 (FlexCode-Fix): FlexCode-Fix 版本(采用静态 50/50 词元分配)已经超越了大多数基线模型,这证实了分离双码本结构本身的内在优势。
- 流行度感知词元分配 (PATA): 更进一步,完整的 FlexCode 模型持续优于 FlexCode-Fix,这凸显了流行度感知词元分配 (PATA) 机制的关键贡献。例如,在 KuaiRand 数据集上,PATA 的动态分配使 NDCG@10 从 0.0562 提升到 0.0632,相对固定分配模型增长了 12.5%。这有力证明了表示解耦和自适应分配这两种架构组件对于实现最先进性能都至关重要。
6.1.2. 工业数据集上的进一步分析
在验证了 FlexCode 的整体优越性后,论文在专有的工业数据集上进行了分析,以考察其在生产规模条件下的鲁棒性和适应性。
下图(原文 Figure 2)展示了在大型工业数据集上的性能评估:
Figure 2: Performance evaluation on the large-scale industrial dataset.
Figure 2: Performance evaluation on the large-scale industrial dataset.
-
整体工业性能 (Figure 2a):
- Figure 2a 展示了生成模型相对于 SASRec 基线模型的性能提升。
- 纯协同生成模型 (CF only) 的性能下降了 5% 以上,而像 URL 这样的先进统一模型仅带来了 4.9% 的 NDCG@10 适度提升。
- FlexCode 实现了显著提升: FlexCode 在 NDCG@10 上提升了 13.2%,在 HR@10 上提升了 16.5%。
- 在如此大规模、嘈杂和生产级的数据集上取得的巨大优势,进一步证实了 FlexCode 的架构原则不仅在理论上合理,而且在真实世界的工业环境中具有可扩展性和高效性。
-
冷启动和长尾物品性能 (Figure 2b):
- 论文的核心主张是自适应分配对于平衡流行物品的记忆和稀有物品的泛化至关重要。Figure 2b 直接验证了这一主张。
- 基线的权衡: 基线模型展示了明显的性能权衡:
- CF-only 模型提升了头部物品的性能,但使长尾物品性能下降了 5.5%。
- SID-only 模型提升了长尾物品的性能 5.7%,但以牺牲头部物品性能为代价。
- FlexCode 解决了冲突: FlexCode 成功解决了这一冲突。
- 对于头部物品,其 MoE 路由器正确地将更多词元分配给协同码本,实现了细粒度记忆,带来了 3.0% 的 NDCG@10 提升。
- 对于长尾物品,路由器将容量转移到语义码本,以实现从内容特征进行泛化,从而带来 11.3% 的 NDCG@10 提升。
- 这代表了在长尾物品上取得的最大增益,并且具有高度的实际重要性,因为改善长尾发现是工业推荐系统的主要目标。通过动态分配表示预算,FlexCode 在整个物品流行度谱上展现出卓越的性能。
6.2. 消融实验与参数分析
6.2.1. 消融实验 (Ablation Study)
以下是原文 Table 3 的结果,展示了在 KuaiRand 数据集上的消融实验,每行移除或修改了 FlexCode 的一个关键组件:
| Model Variant | Recall@10 | NDCG@10 |
|---|---|---|
| FlexCode (Full) | 0.0825 | 0.0632 |
| FlexCode (CID Only) | 0.0405 | 0.0372 |
| FlexCode (SID Only) | 0.0511 | 0.0401 |
| w/o MoE Gating (Fixed Split) | 0.0791 | 0.0598 |
| w/o Alignment Loss | 0.0809 | 0.0615 |
Table 3: Ablation study on the KuaiRand dataset. Each row removes or modifies a key component of FlexCode.
- 双码本结构的重要性: 移除双码本结构,仅使用协同 ID (FlexCode (CID Only)) 或仅使用语义 ID (FlexCode (SID Only)),都导致了性能的显著下降。这表明分离并结合协同和语义表示对于 FlexCode 的性能至关重要。
- MoE 门控机制的作用: 禁用 MoE 门控网络并使用固定的 50/50 词元分配(w/o MoE Gating (Fixed Split))降低了模型对物品流行度的适应性,从而损害了性能。这验证了流行度感知动态分配的关键性。
- 对齐损失的必要性: 排除对齐损失(w/o Alignment Loss)也导致性能下降,证实了其在维护跨码本连贯性方面的重要性。
6.2.2. 词元预算敏感性 (Token Budget Sensitivity)
以下是原文 Table 4 的结果,展示了在 KuaiRand 数据集上不同词元预算 下的性能 (NDCG@10):
| Model | L=3 | L= 4 | L=5 | L = 6 |
|---|---|---|---|---|
| FlexCode (SID Only) | 0.0401 | 0.0415 | 0.0418 | 0.0420 |
| FlexCode (CID Only) | 0.0372 | 0.0389 | 0.0395 | 0.0397 |
| FlexCode-Fix (50/50 Split) | 0.0598 | 0.0615 | 0.0619 | 0.0621 |
| FlexCode (ours) | 0.0632 | 0.0685 | 0.0691 | 0.0693 |
Table 4: Token budget sensitivity on the KuaiRand dataset .
- FlexCode 在不同词元预算下(L=3, 4, 5, 6)始终保持强大的性能,即使在词元容量减少的情况下也表现良好。这表明其自适应容量再分配机制能够更有效地利用有限的表示资源,这对于实际部署是一个关键优势。
6.2.3. 超参数分析 (Hyper-Parameter Analysis)
以下是原文 Table 5 的结果,展示了在 KuaiRand 数据集上关键超参数的敏感性分析:
| Parameter Setting | K | d | λalign | λsmooth | NDCG@10 |
|---|---|---|---|---|---|
| Default (Base) | 512 | 64 | 0.1 | 0.01 | 0.0632 |
| K Variation | 256 | 64 | 0.1 | 0.01 | 0.0603 |
| 1024 | 64 | 0.1 | 0.01 | 0.0635 | |
| d Variation | 512 | 32 | 0.1 | 0.01 | 0.0611 |
| 512 | 128 | 0.1 | 0.01 | 0.0639 | |
| λalign Variation | 512 | 64 | 0.01 | 0.01 | 0.0618 |
| 512 | 64 | 0.5 | 0.01 | 0.0625 | |
| 512 | 64 | 1.0 | 0.01 | 0.0609 | |
| λsmooth Variation | 512 | 64 | 0.1 | 0.001 | 0.0621 |
| 512 | 64 | 0.1 | 0.05 | 0.0628 | |
| 512 | 64 | 0.1 | 0.1 | 0.0615 |
Table 5: Hyper-parameter sensitivity analysis on the KuaiRand dataset.
- FlexCode 对各种设置下的超参数表现出普遍的稳定性。
- 更大的码本大小
(K)和嵌入维度(d)在达到饱和之前能带来轻微的性能提升。 - 模型对正则化权重(, )的适度变化表现出鲁棒性,这表明模型对精确的超参数调优不敏感。
7. 总结与思考
7.1. 结论总结
本文从自适应容量分配 (adaptive capacity allocation) 的角度探讨了生成式推荐 (generative recommendation),并提出了 FlexCode 框架。FlexCode 引入了双码本结构 (dual-codebook framework) 和流行度感知路由 (popularity-aware routing) 机制,有效地解决了现有生成式推荐模型中存在的表示纠缠 (representation entanglement) 和静态容量分配 (static capacity allocation) 问题。通过为物品分别构建协同码本 (CF codebook) 和语义码本 (semantic codebook),并利用轻量级混合专家模型 (MoE) 动态调整词元 (token) 分配比例,FlexCode 能够根据物品的流行度,平衡对头部物品的精确记忆 (memorization) 和对长尾物品的语义泛化 (generalization)。实验结果表明,FlexCode 在公共基准数据集和工业级数据集上均持续优于强大的基线模型,不仅提高了整体推荐准确性,还显著增强了长尾鲁棒性 (tail robustness)。这为基于词元的推荐模型中如何有效地平衡记忆与泛化提供了一个新的视角和机制。
7.2. 局限性与未来工作
论文作者指出了 FlexCode 存在的局限性并提出了以下几个未来研究方向:
- 扩展自适应容量分配: 将自适应容量分配机制扩展到更丰富的多模态物品描述 (multi-modal item descriptors) 和用户侧建模 (user-side modeling),从而实现对用户和物品码本的联合推理。
- 与大语言模型和在线学习集成: 将 FlexCode 与大语言模型 (LLMs) 和在线学习管道 (online learning pipelines) 相结合,研究流行度感知词元化如何与探索 (exploration)、时间漂移 (temporal drift) 和校准 (calibration) 等真实世界部署挑战相互作用。
- 公平性和曝光度研究: 审视不同路由策略下长尾内容的公平性 (fairness) 和曝光度 (exposure) 问题。
- 理论工具开发: 开发理论工具以理解双码本架构相比统一词元化 (unified tokenizations) 具有优势的原因和适用场景。
7.3. 个人启发与批判
7.3.1. 个人启发
- 针对异质性数据设计的表示学习: FlexCode 的核心思想是根据数据本身的异质性(流行度差异)来设计不同的表示策略,并通过动态机制进行分配。这对于处理任何具有长尾分布或多模态特征的数据集都具有普遍的启发意义。例如,在自然语言处理中,对于常见词汇和稀有词汇,是否也可以采用协同(上下文共现)和语义(词性、概念)双码本,并根据词频动态分配表示预算?
- 解耦与对齐的平衡: 论文强调了表示解耦 (disentanglement) 的重要性,即为不同信息(协同、语义)分配独立码本,但同时也强调了跨码本对齐 (cross-codebook alignment) 以保持连贯性。这提示我们在设计复杂系统时,解耦不应是绝对的孤立,而应在一定约束下进行,以实现模块化与协同的平衡。
- MoE 在推荐系统中的潜力: 轻量级 MoE 路由器在此处展现了其在动态资源分配中的强大能力。这表明 MoE 不仅可以用于模型容量扩展,更可以作为一种智能决策机制,根据输入特征动态调整模型的内部行为,从而优化推荐效果。
7.3.2. 批判与潜在改进
- 流行度特征的局限性: 论文中用于 PATA 的物品特征包括流行度、年龄、稀疏度、不确定性。虽然这些特征有效,但在某些场景下可能不足以捕捉物品的全部“推荐价值”。例如,一个新发布的、高质量但尚未流行的物品可能被误分配更多语义词元,而错过早期协同信号的积累。未来的工作可以探索更复杂的特征,如物品的潜在增长趋势、用户群体对物品的兴趣分布多样性等。
- MoE 门控机制的透明度与可解释性: MoE 路由器虽然提升了性能,但其决策过程可能相对不透明。对于工业应用,理解为何一个物品被分配更多协同或语义词元是重要的,尤其是在进行故障排除或满足合规性要求时。未来的研究可以探索更具可解释性的门控机制,或提供工具来分析路由器的决策分布。
- 计算开销考量: 引入双码本和 MoE 路由器必然会增加模型的复杂度和训练/推断开销。尽管论文提到“轻量级 MoE”,但实际的计算效率(尤其是对于超大规模码本和实时推荐)仍需更详细的分析。例如,在 RQ-VAE 的训练过程中,码本的更新和量化操作可能非常耗时。
- 冷启动物品的初始语义质量: 对于真正意义上的冷启动物品(无任何交互),其协同码本将是空的或无效的,所有容量都将分配给语义码本。此时,语义码本的初始质量就变得至关重要。如果物品的元数据本身质量不高或信息不足,那么即使有了语义码本,推荐效果也可能受限。如何确保冷启动物品的语义表示在训练初期就能足够丰富和准确,是一个值得深思的问题。
- 泛化到更复杂的交互模式: 论文主要关注用户-物品交互序列。未来的工作可以考虑更复杂的交互模式,如多模态交互(用户与图片、视频、评论等互动),或者用户与用户之间的社交关系,这些都可能为码本学习和词元分配带来新的挑战和机遇。
相似论文推荐
基于向量语义检索推荐的相关论文。