论文状态:已完成

Recommender Systems with Generative Retrieval

发表:2023/05/09
原文链接PDF 下载
价格:0.100000
价格:0.100000
已有 2 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

本文提出了一种新颖的生成式检索方法,通过自回归解码目标候选的语义ID,以提升推荐系统的性能。基于Transformer的序列模型可有效预测用户下一个互动的物品。实验显示,该方法在多数据集上超过了现有的最先进模型,并增强了对新物品的检索能力。

摘要

Modern recommender systems perform large-scale retrieval by first embedding queries and item candidates in the same unified space, followed by approximate nearest neighbor search to select top candidates given a query embedding. In this paper, we propose a novel generative retrieval approach, where the retrieval model autoregressively decodes the identifiers of the target candidates. To that end, we create semantically meaningful tuple of codewords to serve as a Semantic ID for each item. Given Semantic IDs for items in a user session, a Transformer-based sequence-to-sequence model is trained to predict the Semantic ID of the next item that the user will interact with. To the best of our knowledge, this is the first Semantic ID-based generative model for recommendation tasks. We show that recommender systems trained with the proposed paradigm significantly outperform the current SOTA models on various datasets. In addition, we show that incorporating Semantic IDs into the sequence-to-sequence model enhances its ability to generalize, as evidenced by the improved retrieval performance observed for items with no prior interaction history.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

推荐系统中的生成式检索 (Recommender Systems with Generative Retrieval)

1.2. 作者

Shashank Rajput* (威斯康星大学麦迪逊分校), Nikhil Mehta* (Google DeepMind), Anima Singh (Google DeepMind), Raghunandan Keshavan (Google), Trung Vu (Google), Lukasz Heldt (Google), Lichan Hong (Google DeepMind), Yi Tay (Google DeepMind), Vinh Q. Tran (Google), Jonah Samost (Google), Maciej Kula (Google DeepMind), Ed H. Chi (Google DeepMind), Maheswaran Sathiamoorthy (Google DeepMind)。 (* 表示共同第一作者)

1.3. 发表期刊/会议

该论文作为预印本 (arXiv preprint) 发布,目前尚未在期刊或会议上正式发表。arXiv是一个存储电子预印本的开放获取档案库,常用于研究人员分享最新研究成果,其在相关领域的声誉和影响力取决于其被引用的情况和后续是否被顶级会议或期刊接受。

1.4. 发表年份

2023年

1.5. 摘要

现代推荐系统通过将查询 (queries) 和候选物品 (item candidates) 嵌入到同一统一空间中,然后进行近似最近邻 (Approximate Nearest Neighbors, ANN) 搜索来选择给定查询嵌入的顶部候选。本文提出了一种新颖的生成式检索 (generative retrieval) 方法,其中检索模型自回归地解码目标候选的标识符。为此,作者为每个物品创建了具有语义意义的码字元组,作为每个物品的语义ID (Semantic ID)。给定用户会话中的物品语义ID,训练一个基于 Transformer 的序列到序列模型来预测用户将要交互的下一个物品的语义ID。据作者所知,这是首个基于语义ID的推荐任务生成模型。实验表明,使用所提出的范式训练的推荐系统在各种数据集上显著优于当前的 state-of-the-art (SOTA) 模型。此外,将语义ID整合到序列到序列模型中增强了其泛化能力,这体现在对没有历史交互的新物品的检索性能有所改善。

1.6. 原文链接

原文链接: https://arxiv.org/abs/2305.05065 PDF 链接: https://arxiv.org/pdf/2305.05065v3.pdf 发布状态:预印本

2. 整体概括

2.1. 研究背景与动机

推荐系统在各种领域(如视频、应用、商品、音乐)中无处不在,帮助用户发现感兴趣的内容。现代推荐系统通常采用“检索-排序”策略,即首先检索一组候选物品,然后使用排序模型对这些物品进行排序。由于排序模型只处理检索阶段提供的候选物品,因此检索阶段能够提供高度相关的候选物品至关重要。

现有的检索模型主要依赖于双编码器 (dual-encoder) 架构,将查询和物品嵌入到同一高维空间中,并通过近似最近邻 (ANN) 搜索进行检索。这种方法在处理大规模物品库时面临挑战,例如需要维护巨大的嵌入表 (embedding table),并且对新物品(冷启动问题)的泛化能力较弱,因为新物品缺乏交互历史,难以生成有效的嵌入。此外,传统的基于嵌入的方法容易受到固有反馈循环 (feedback loop) 的影响。

本文的动机在于提出一种新的推荐系统检索范式,旨在克服传统方法的这些局限性。作者希望通过生成式方法直接预测物品的标识符,从而消除对大型嵌入表和ANN搜索的依赖,并增强模型处理冷启动物品的能力。

2.2. 核心贡献/主要发现

本文提出了名为 TIGER (Transformer Index for GEnerative Recommenders) 的新型生成式检索框架,其核心贡献和主要发现如下:

  • 提出 TIGER 框架: 引入了一种新颖的生成式检索范式用于推荐系统。该框架通过为每个物品分配具有语义意义的语义ID (Semantic ID),并训练一个生成模型来预测用户将要交互的下一个物品的语义ID。这是首次将生成式检索方法和语义ID相结合应用于推荐任务。
  • 语义ID的引入: 提出了一种基于残差量化变分自编码器 (Residual-Quantized Variational AutoEncoder, RQ-VAE) 的语义ID生成方法。这种方法能够从物品内容特征中提取语义信息,并将其编码成一个离散的、具有层次结构的码字元组,从而为物品提供了一种紧凑且富有语义的表示。这种语义ID可以有效避免使用随机原子ID带来的问题,减少模型对物品固有反馈循环的敏感性,并提高对新物品的泛化能力。
  • 卓越的性能: 在多个Amazon商品评论数据集(BeautySports and OutdoorsToys and Games)上,TIGER 在 Recall@KNDCG@K 等指标上显著优于当前的 state-of-the-art (SOTA) 推荐模型。
  • 解决冷启动问题: TIGER 框架能够有效处理新物品的冷启动推荐,因为它利用物品的语义信息进行预测,而不是依赖物品的交互历史。实验结果表明,TIGER 在冷启动设置下的检索性能显著优于基于KNN的方法。
  • 提高推荐多样性: 通过在解码过程中使用基于温度的采样 (temperature-based sampling),TIGER 可以有效地控制推荐结果的多样性,并且由于RQ-VAE语义ID的层次性,模型可以在不同粒度(粗略类别或细粒度类别)上实现多样化推荐。
  • 内存效率: TIGER 使用的嵌入表大小不随物品数量线性增长,而是依赖于码本大小和语义ID长度,这使得其在处理大规模物品库时更具内存效率。

3. 预备知识与相关工作

3.1. 基础概念

为了理解本文提出的 TIGER 框架,需要了解以下几个核心概念:

  • 推荐系统 (Recommender Systems): 旨在预测用户对物品的偏好,并向用户推荐他们可能感兴趣的物品。常见的应用包括电商平台的商品推荐、视频平台的电影推荐等。
  • 检索与排序 (Retrieve-and-Rank): 现代推荐系统常用的两阶段架构。
    • 检索阶段 (Retrieval Stage): 从大规模物品库中快速筛选出一小部分用户可能感兴趣的候选物品。这一阶段通常注重效率和召回率 (recall)。
    • 排序阶段 (Ranking Stage): 对检索阶段得到的候选物品进行精细排序,以确定最终向用户展示的物品列表。这一阶段通常注重准确性和相关性。
  • 嵌入 (Embedding): 将离散的实体(如用户、物品、词语)映射到低维连续向量空间的技术。在推荐系统中,物品嵌入和用户嵌入通常用于表示它们的特征和偏好,并通过向量间的相似度(如内积、余弦相似度)来衡量物品与查询或用户偏好之间的相关性。
  • 近似最近邻搜索 (Approximate Nearest Neighbors, ANN): 在大规模高维向量空间中,快速找到给定查询向量的近似最近邻。由于精确最近邻搜索计算成本高,ANN算法牺牲少量精度以换取查询速度。
  • 生成模型 (Generative Models): 能够学习数据分布并生成新样本的模型。在自然语言处理中,常常用于生成文本序列。
  • 自回归模型 (Autoregressive Models): 一种生成模型,其在生成序列中的当前元素时,会以所有先前生成的元素为条件。例如,在文本生成中,每个词的生成都依赖于它前面的词。
  • Transformer 模型 (Transformer Model): 一种基于自注意力 (self-attention) 机制的神经网络架构,在自然语言处理任务中取得了巨大成功。其核心是注意力机制,允许模型在处理序列时关注输入序列的不同部分。
    • 自注意力 (Self-Attention): Transformer 的关键组件,它允许模型在编码单个词时,同时考虑输入序列中所有其他词的重要性。其计算公式如下: Attention(Q,K,V)=softmax(QKTdk)V \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V 其中:
      • QQ (Query), KK (Key), VV (Value) 分别是通过输入嵌入与不同的权重矩阵相乘得到的矩阵。它们可以理解为在搜索信息时,Query 用于查询,Key 用于被查询,Value 则是找到 Key 对应的信息。
      • QKTQ K^T 计算 QueryKey 之间的点积相似度,表示查询与每个 Key 的相关程度。
      • dk\sqrt{d_k} 是一个缩放因子,用于防止点积结果过大导致 softmax 函数的梯度过小。dkd_kKey 向量的维度。
      • softmax\mathrm{softmax} 函数将相似度分数转换为概率分布,使得所有值的和为1。
      • softmax 结果与 Value 矩阵相乘,得到加权后的 Value 向量,表示注意力机制的输出。
    • 编码器-解码器架构 (Encoder-Decoder Architecture): Transformer 模型通常采用这种架构。编码器将输入序列(如用户历史交互序列)映射到一个连续的表示,解码器则根据这个表示自回归地生成输出序列(如目标物品的语义ID)。
  • 向量量化 (Vector Quantization, VQ): 将连续的向量空间映射到离散的码本 (codebook) 中的码字 (codeword) 的过程。它通过寻找码本中与输入向量最接近的码字来表示输入向量,从而实现数据压缩和离散化。
  • 冷启动问题 (Cold-Start Problem): 推荐系统中常见的问题,指新用户或新物品由于缺乏历史交互数据,导致推荐模型难以生成准确推荐的现象。

3.2. 前人工作

论文在 Related Work 部分提及了以下关键前人工作:

  • 序列推荐器 (Sequential Recommenders):

    • GRU4Rec [11]: 最早使用基于 GRU 的 RNN (循环神经网络) 进行序列推荐的工作,捕捉用户会话中的短期依赖。
    • NARM [24]: 结合注意力机制和 GRU 来捕捉用户长期意图的序列推荐模型。
    • AttRec [41] / SASRec [17]: 引入自注意力机制来建模用户会话中的物品交互,SASRec 是其中一个代表,使用类似 decoder-only Transformer 模型的架构。
    • BERT4Rec [32] / Transformers4Rec [6]:masked language modeling 启发,利用 Transformer 模型和掩码策略进行序列推荐。
    • S3^3-Rec [44]: 进一步通过四种自监督任务进行预训练,以改进数据表示。
    • P5 [8]: 使用预训练的大型语言模型 (LLM) 进行多任务推荐,将推荐任务表达为语言处理问题。它使用 LLM 的分词器(如 SentencePiece)从随机分配的物品ID生成 token
  • 语义ID (Semantic IDs):

    • VQ-Rec [12]: 侯等人的工作,使用物品内容信息生成“代码”(类似于语义ID),但其主要关注点是构建可迁移的推荐系统,并未以生成方式用于检索。他们也使用乘积量化 (Product Quantization) 生成代码。
    • Singh et al. [31]: 同期工作,指出分层语义ID可以替代物品ID用于大规模推荐系统中的排序模型,并改善泛化能力。
  • 生成式检索 (Generative Retrieval):

    • 传统文档检索通常使用双塔模型和ANN/MIPS,但面临嵌入表大和效率问题。生成式检索是一种新方法,通过自回归生成文档ID、标题或名称。
    • GENRE [5]: 针对实体检索,使用基于 Transformer 的架构逐 token 返回实体名称。
    • DSI [34]: 首次为每个文档分配结构化的语义 DocID,并使用 Transformer 模型自回归地逐 token 返回 DocID,标志着信息检索领域的范式转变。
    • NCI [37]: 补充了 DSI 中基于分层 k-means 聚类的语义 DocID,提出新的解码器架构考虑 DocID 的前缀。
    • CGR [22]: 结合双编码器和生成式检索的优点,允许解码器学习上下文嵌入。
    • RQ-VAE [40, 21]: 残差量化变分自编码器,用于图像生成中的 token 生成。

3.3. 技术演进

推荐系统从早期的协同过滤、矩阵分解,逐步发展到利用深度学习模型(如RNN、CNN、Transformer)来捕捉用户行为序列。在检索阶段,从简单的哈希或倒排索引,演变为基于嵌入的双编码器模型结合ANN搜索。这些基于嵌入的方法在效果上取得了显著进展,但也带来了维护大型嵌入表、冷启动以及模型泛化能力的挑战。

生成式检索是信息检索领域的一个新兴方向,旨在通过直接生成目标文档或物品的标识符来替代传统的ANN搜索。DSI 等工作在文档检索领域展示了这种方法的潜力。本文 TIGER 正是将这一生成式检索范式引入到推荐系统中,并创新性地结合了语义ID的概念,旨在解决传统推荐系统在检索阶段面临的诸多问题。通过将物品表示为具有语义意义的离散 token 序列,TIGER 能够更好地处理冷启动、提高泛化能力,并可能降低内存消耗。

3.4. 差异化分析

本文的 TIGER 方法与相关工作中的主要方法的区别和创新点在于:

  • 与传统序列推荐模型的区别 (SASRec, BERT4Rec, S3^3-Rec等):

    • 核心机制: 传统模型学习每个物品的高维嵌入,并通过最大内积搜索 (MIPS) 或 ANN 来找到最相似的物品。TIGER 则采用生成式检索,直接自回归地预测下一个物品的语义ID token 序列。
    • 物品表示: 传统模型通常使用随机分配的原子物品ID (atomic item IDs) 并学习其嵌入。TIGER 使用语义ID,这些ID是通过物品内容特征(如标题、描述)经过 RQ-VAE 量化生成的,具有丰富的语义信息和层次结构。
    • 检索方式: 传统模型在推理时依赖于预构建的物品嵌入索引和ANN算法。TIGER 则将 Transformer 的记忆 (parameters) 作为端到端的索引,直接生成物品ID。
  • 与 P5 的区别 [8]:

    • 物品表示的来源: P5 利用 LLM 的 tokenizer(如 SentencePiece)从随机分配的物品ID生成 token。TIGER 则使用 RQ-VAE 基于物品的内容信息学习生成语义ID。TIGER 在实验中(Table 2)证明了基于语义ID的表示比随机代码能产生更好的推荐结果。
  • 与 VQ-Rec [12] 的区别:

    • 使用方式: VQ-Rec 也使用内容信息生成“代码”,但其重点在于构建可迁移的推荐系统,并未以生成式的方式用于检索。TIGER 的核心创新在于将语义ID应用于生成式检索。
    • 量化技术: VQ-Rec 使用乘积量化 (Product Quantization),而 TIGER 使用 RQ-VAE,这使得 TIGER 的语义ID具有层次结构,从而带来冷启动和多样性等额外能力。
  • 与 DSI [34] 等生成式检索的区别:

    • 应用领域: DSI 主要用于文档检索,而 TIGER 是首个将生成式检索方法应用于推荐系统,并结合语义ID表示。
    • 语义ID生成方法: DSI 使用基于分层 k-means 聚类的方法生成 DocID。TIGER 使用 RQ-VAE 这种更复杂的神经网络量化器生成语义ID,这种方法能更好地保留语义信息并提供层次结构,如 Section 4.2 所展示的。

4. 方法论

本文提出的 TIGER 框架包含两个主要阶段:1) 基于内容特征的语义ID生成,以及 2) 使用语义ID训练生成式推荐系统。

4.1. 语义ID生成

4.1.1. 过程概述

语义ID生成旨在将每个物品的丰富内容特征转换为一个离散的、具有语义意义的码字元组。这个过程首先将物品的内容特征(例如标题、描述、图像)通过一个预训练的内容编码器 (content encoder) 转换为稠密的语义嵌入 (semantic embedding) xRd\pmb{x} \in \mathbb{R}^d。例如,可以使用像 Sentence-T5 [27] 或 BERT [7] 这样的预训练文本编码器来处理文本特征。接着,这些语义嵌入会通过一个量化器 (quantizer) 转换为语义ID。

如下图(原文 Figure 2a)所示,物品的各项内容信息(如 Item ID, Title, Description, Category, Brand)首先输入到一个内容编码器中,生成物品的稠密嵌入。随后,这个稠密嵌入被送入量化器,生成一个离散的语义ID。

Figure 2: An overview of the modeling approach used in TIGER.
该图像是示意图,展示了在TIGER模型中的建模方法。左侧部分展示了如何将物品内容信息(如ItemID、标题、描述、类别和品牌)通过内容编码器和量化处理生成语义ID的嵌入表示。右侧部分展示了使用双向Transformer编码器对用户互动历史进行编码,并通过Transformer解码器预测下一个可能交互的项目及其语义ID。

Figure 2: An overview of the modeling approach used in TIGER. (a) Semantic ID generation for items using quantization of content embeddings.

语义ID被定义为一个长度为 mm 的码字元组,其中每个码字来自一个不同的码本 (codebook)。通过这种方式,语义ID能够表示的物品数量是各个码本大小的乘积。理想的语义ID应具备的特性是:相似的物品(具有相似内容特征或语义嵌入距离相近的物品)应具有重叠的语义ID。例如,语义ID为 (10,21,35)(10, 21, 35) 的物品应比语义ID为 (10,23,32)(10, 23, 32) 的物品更相似于语义ID为 (10,21,40)(10, 21, 40) 的物品。

4.1.2. 基于 RQ-VAE 的语义ID生成

本文主要采用残差量化变分自编码器 (Residual-Quantized Variational AutoEncoder, RQ-VAE) [40] 来生成语义ID。RQ-VAE 是一种多级向量量化器,它通过对残差进行量化来生成码字元组。整个 RQ-VAE 模型是联合训练的,包括更新量化码本和深度神经网络 (DNN) 编码器-解码器的参数。

RQ-VAE 的语义ID生成过程如下图(原文 Figure 3)所示:

Figure 3: RQ-VAE: In the figure, the vector output by the DNN Encoder, say \(\\mathbf { \\nabla } _ { \\mathbf { r } _ { 0 } }\) (represented by the blue bar), is fed to the quantizer, which works iteratively. First, the closest vector to \(\\mathbf { \\boldsymbol { r } } _ { 0 }\) is found in the first level codebook. Let this closest vector be `e _ { c _ { 0 } }` (represented by the red bar). Then, the residual error is computed as \(\\pmb { r } _ { 1 } : = \\pmb { r } _ { 0 } - \\pmb { e } _ { c _ { 0 } }\) . This is fed into the second level of the quantizer, and the process is repeated: The closest vector to \(\\mathbf { \\Delta } _ { \\mathbf { r } _ { 1 } }\) is found in the second level, say `e _ { c _ { 1 } }` (represented by the green bar), and then the second level residual error is computed as \({ \\pmb r } _ { 2 } = { \\pmb r } _ { 1 } - e _ { c _ { 1 } } ^ { \\prime }\) . Then, the process is repeated for a third time on \(\\mathbf { \\boldsymbol { r } } _ { 2 }\) . The semantic codes are computed as the indices of `e _ { c _ { 0 } } , e _ { c _ { 1 } }` , and `e _ { c _ { 2 } }` in their respective codebooks. In the example shown in the figure, this results in the code \(( 7 , 1 , 4 )\) .
该图像是示意图,展示了残差量化(Residual Quantization)的过程。首先,DNN编码器输出的向量通过第一个码本找到最接近的向量,生成第一个残差。该残差再依次通过第二、第三个码本进行量化。经过三次量化后,生成的语义代码为 (7,1,4)(7, 1, 4),并用于量化表示的解码。

Figure 3: RQ-VAE: In the figure, the vector output by the DNN Encoder, say r0\mathbf { \nabla } _ { \mathbf { r } _ { 0 } } (represented by the blue bar), is fed to the quantizer, which works iteratively. First, the closest vector to r0\mathbf { \boldsymbol { r } } _ { 0 } is found in the first level codebook. Let this closest vector be e _ { c _ { 0 } } (represented by the red bar). Then, the residual error is computed as r1:=r0ec0\pmb { r } _ { 1 } : = \pmb { r } _ { 0 } - \pmb { e } _ { c _ { 0 } } . This is fed into the second level of the quantizer, and the process is repeated: The closest vector to Δr1\mathbf { \Delta } _ { \mathbf { r } _ { 1 } } is found in the second level, say e _ { c _ { 1 } } (represented by the green bar), and then the second level residual error is computed as r2=r1ec1{ \pmb r } _ { 2 } = { \pmb r } _ { 1 } - e _ { c _ { 1 } } ^ { \prime } . Then, the process is repeated for a third time on r2\mathbf { \boldsymbol { r } } _ { 2 } . The semantic codes are computed as the indices of e _ { c _ { 0 } } , e _ { c _ { 1 } } , and e _ { c _ { 2 } } in their respective codebooks. In the example shown in the figure, this results in the code (7,1,4)( 7 , 1 , 4 ) .

具体步骤如下:

  1. 编码器 (Encoder): RQ-VAE 首先通过一个编码器 E\mathcal{E} 将输入的语义嵌入 x\pmb{x} 编码成一个潜在表示 z:=E(x)z := \mathcal{E}(\pmb{x})
  2. 残差量化 (Residual Quantization):
    • 初始残差: 在第 0 层,初始残差定义为 r0:=zr_0 := z
    • 逐层量化: 对于每个级别 dd,有一个对应的码本 Cd:={ek}k=1K\mathcal{C}_d := \{e_k\}_{k=1}^K,其中 KK 是码本大小。
      • 首先,在第 0 层的码本中找到与 r0r_0 最接近的嵌入向量 ec0e_{c_0}。其索引 c0=argminir0ekc_0 = \arg \min_i \|r_0 - e_k\| 即为第一个码字。
      • 接着,计算残差 r1:=r0ec0r_1 := r_0 - e_{c_0}
      • 这个残差 r1r_1 被送入下一个量化级别(第 1 层),并重复上述过程,从第 1 层的码本中找到最接近 r1r_1 的嵌入 ec1e_{c_1},得到第二个码字 c1c_1
      • 此过程递归重复 mm 次,最终得到一个包含 mm 个码字的元组 (c0,,cm1)(c_0, \ldots, c_{m-1}),这便是物品的语义ID。
    • 分层码本: 作者选择为每个级别使用独立的码本,而非一个大的联合码本。这是因为残差的范数 (norm) 随着级别增加而减小,独立的码本允许在不同级别采用不同的粒度进行量化。
  3. 量化表示与解码: 获得语义ID (c0,,cm1)(c_0, \ldots, c_{m-1}) 后,会计算一个量化后的表示 z^:=d=0m1ecd\widehat{z} := \sum_{d=0}^{m-1} e_{c_d}。然后,一个解码器 D\mathcal{D} 利用 z^\widehat{z} 来重构原始输入 x\pmb{x},得到 x^:=D(z^)\widehat{\pmb{x}} := \mathcal{D}(\widehat{z})
  4. 损失函数: RQ-VAE 的损失函数定义为重构损失 Lrecon\mathcal{L}_{\mathrm{recon}} 和 RQ-VAE 损失 Lrqvae\mathcal{L}_{\mathrm{rqvae}} 的组合: L(x):=Lrecon+Lrqvae \mathcal{L}(\pmb{x}) := \mathcal{L}_{\mathrm{recon}} + \mathcal{L}_{\mathrm{rqvae}} 其中:
    • 重构损失衡量重构结果与原始输入的差异: Lrecon:=xx^2 \mathcal{L}_{\mathrm{recon}} := \|\pmb{x} - \widehat{\pmb{x}}\|^2
    • RQ-VAE 损失旨在更新码本嵌入并确保编码器输出与码本嵌入对齐,同时防止码本坍塌: Lrqvae:=d=0m1sg[ri]eci2+βrisg[eci]2 \mathcal{L}_{\mathrm{rqvae}} := \sum_{d=0}^{m-1} \|\mathrm{sg}[\pmb{r}_i] - \pmb{e}_{c_i}\|^2 + \beta \|\pmb{r}_i - \mathrm{sg}[\pmb{e}_{c_i}]\|^2 这里:
      • sg[]\mathrm{sg}[\cdot]stop-gradient 操作,表示在反向传播时不计算其梯度。
      • 第一项 sg[ri]eci2\|\mathrm{sg}[\pmb{r}_i] - \pmb{e}_{c_i}\|^2 鼓励码本嵌入 eci\pmb{e}_{c_i} 接近编码器输出的残差 ri\pmb{r}_i,但梯度只通过 eci\pmb{e}_{c_i} 传播,以更新码本。
      • 第二项 βrisg[eci]2\beta \|\pmb{r}_i - \mathrm{sg}[\pmb{e}_{c_i}]\|^2 鼓励编码器输出的残差 ri\pmb{r}_i 接近码本嵌入 eci\pmb{e}_{c_i},但梯度只通过 ri\pmb{r}_i 传播,以更新编码器。
      • β\beta 是一个超参数,用于平衡这两个项。
  5. 码本初始化: 为防止码本坍塌(即大多数输入都映射到少数几个码本向量),作者采用 k-means 聚类进行码本初始化。具体来说,对第一个训练批次应用 k-means 算法,并使用其质心 (centroids) 作为码本的初始值。

4.1.3. 碰撞处理

由于语义ID可能存在碰撞(即多个物品映射到相同的语义ID),作者通过在码字元组末尾追加一个额外的 token 来确保每个物品的语义ID是唯一的。例如,如果两个物品共享语义ID (12,24,52)(12, 24, 52),它们将被分配为 (12,24,52,0)(12, 24, 52, 0)(12,24,52,1)(12, 24, 52, 1)。如果不存在碰撞,则仍分配 0 作为第四个码字。碰撞检测和修正只在 RQ-VAE 模型训练完成后执行一次。由于语义ID是整数元组,与高维嵌入相比,查询表 (lookup table) 的存储效率更高。

4.2. 基于语义ID的生成式检索

4.2.1. 任务定义

在得到每个物品的语义ID后,推荐任务被重新定义为一个生成问题。对于每个用户,通过时间顺序排列其交互过的物品来构建物品序列。给定一个用户历史交互序列 (item1,,itemn)(item_1, \ldots, item_n),推荐系统的目标是预测用户将要交互的下一个物品 itemn+1item_{n+1}。本文提出的是一种生成式方法,直接预测 itemn+1item_{n+1} 的语义ID。

4.2.2. 序列构建

假设 itemiitem_i 的语义ID是 (ci,0,,ci,m1)(c_{i,0}, \ldots, c_{i,m-1})(长度为 mm)。那么,用户交互序列被转换为一个更长的 token 序列: (c1,0,,c1,m1,c2,0,,c2,m1,,cn,0,,cn,m1) (c_{1,0}, \ldots, c_{1,m-1}, c_{2,0}, \ldots, c_{2,m-1}, \ldots, c_{n,0}, \ldots, c_{n,m-1}) 这个序列将作为序列到序列模型的输入。

4.2.3. Transformer 模型训练

本文使用一个基于 Transformer 的序列到序列模型来预测下一个物品的语义ID (cn+1,0,,cn+1,m1)(c_{n+1,0}, \ldots, c_{n+1,m-1})

  • 模型架构: 使用 encoder-decoder 架构的 Transformer 模型。
    • 编码器 (Encoder): 接收由用户ID token 和用户历史交互物品的语义ID token 组成的输入序列。
    • 解码器 (Decoder): 自回归地生成下一个物品的语义ID token 序列。
  • 词汇表 (Vocabulary): 模型的词汇表包含每个语义码字的 token。例如,如果每个码本大小为 256,语义ID长度为 4,则有 256×4=1024256 \times 4 = 1024token 用于表示物品。此外,为了实现个性化推荐,词汇表还包含用户特定的 token。为了控制词汇表大小,对用户ID使用哈希技巧 (Hashing Trick) [38],将其映射到有限数量的用户ID token 中。
  • 训练目标: 模型被训练来最大化预测下一个语义ID序列的概率。
  • 生成无效ID的考量: 由于模型的生成性质,解码器可能会生成不匹配任何实际物品的语义ID(无效ID)。论文在 Appendix ESection 4.5 中讨论了这种可能性,并指出其发生概率较低,可以通过增加 beam size 和过滤等方法处理。

4.3. TIGER 框架总览

如下图(原文 Figure 1)所示,TIGER 框架通过将用户历史交互的物品(如 Item A, Item B, Item C)转换为它们的语义ID元组。这些语义ID序列连同用户ID一起作为 Transformer 模型的输入。Transformer 模型学习从这些输入中预测下一个物品的语义ID(如 Item D 的语义ID)。

Figure 1: Overview of the Transformer Index for GEnerative Recommenders (TIGER) framework. With TIGER, sequential recommendation is expressed as a generative retrieval task by representing each item as a tuple of discrete semantic tokens.
该图像是示意图,展示了生成推荐系统中的Transformer Index for Generative Recommenders (TIGER)框架。用户历史记录的语义ID生成器生成相应的元组,将推荐任务转化为生成检索任务,最终用于查找下一个可能的项目。

Figure 1: Overview of the Transformer Index for GEnerative Recommenders (TIGER) framework. With TIGER, sequential recommendation is expressed as a generative retrieval task by representing each item as a tuple of discrete semantic tokens.

Transformer 模型将自身的参数作为端到端的索引,从而在推荐系统中实现检索功能,这类似于 Tay et al. [34] 使用 Transformer 记忆进行文档检索的方法。这种方法的好处是,语义ID的引入使得模型能够共享知识,减少对随机原子ID的依赖,并提高对新物品的泛化能力。此外,语义 token 序列表示有助于解决物品库规模带来的挑战,因为可表示的物品数量是码本大小的乘积,这比为每个物品学习唯一嵌入更具内存效率。

5. 实验设置

5.1. 数据集

实验使用了来自 Amazon 产品评论数据集 [10] 的三个公开真实世界基准:

  • Beauty (美容)

  • Sports and Outdoors (运动与户外)

  • Toys and Games (玩具与游戏)

    这些数据集包含从 1996 年 5 月到 2014 年 7 月的用户评论和物品元数据。 数据集统计信息 (原文 Table 6):

Dataset # Users # Items Sequence Length Mean Sequence Length Median
Beauty 22,363 12,101 8.87 6
Sports and Outdoors 35,598 18,357 8.32 6
Toys and Games 19,412 11,924 8.63 6

数据预处理:

  • 使用用户评论历史来创建按时间戳排序的物品序列。
  • 过滤掉评论数量少于 5 次的用户。
  • 遵循标准评估协议 [17, 8],采用 leave-one-out 策略进行评估:
    • 每个物品序列的最后一个物品用于测试。
    • 倒数第二个物品用于验证。
    • 其余物品用于训练。
  • 训练期间,将用户历史中的物品数量限制为 20。

5.2. 评估指标

评估推荐性能使用以下两个常用的 top-k 指标,其中 KK 取值为 5 和 10:

  1. Recall@K (召回率@K):
    • 概念定义: 衡量推荐系统在生成的 top-K 推荐列表中,实际用户交互过的物品(或相关物品)所占的比例。它关注的是模型“找全”相关物品的能力,即在所有相关的物品中,有多少被推荐出来了。
    • 数学公式: Recall@K=Recommended_Items_at_KRelevant_ItemsRelevant_Items \mathrm{Recall@K} = \frac{|\mathrm{Recommended\_Items\_at\_K} \cap \mathrm{Relevant\_Items}|}{|\mathrm{Relevant\_Items}|}
    • 符号解释:
      • Recommended_Items_at_K|\mathrm{Recommended\_Items\_at\_K}|: 模型生成的 top-K 推荐列表中的物品数量。
      • Relevant_Items\mathrm{Relevant\_Items}: 用户实际交互过或被标记为相关的物品集合。
      • Recommended_Items_at_KRelevant_Items\mathrm{Recommended\_Items\_at\_K} \cap \mathrm{Relevant\_Items}: top-K 推荐列表中与相关物品的交集,即被成功推荐的相关物品数量。
      • Relevant_Items|\mathrm{Relevant\_Items}|: 相关物品的总数量。
  2. Normalized Discounted Cumulative Gain (NDCG@K) (归一化折损累计增益@K):
    • 概念定义: 衡量推荐系统生成的 top-K 推荐列表的质量,考虑了推荐物品的相关性以及它们在列表中的位置。排名靠前的相关物品贡献的增益更高,而不相关的物品贡献的增益为零。NDCG 旨在解决 RecallPrecision 没有考虑推荐顺序的问题。
    • 数学公式: NDCG@K=DCG@KIDCG@K \mathrm{NDCG@K} = \frac{\mathrm{DCG@K}}{\mathrm{IDCG@K}} 其中,DCG@K (Discounted Cumulative Gain at K) 的公式为: DCG@K=i=1K2reli1log2(i+1) \mathrm{DCG@K} = \sum_{i=1}^{K} \frac{2^{\mathrm{rel}_i} - 1}{\log_2(i+1)} IDCG@K (Ideal Discounted Cumulative Gain at K) 是理想情况下,按相关性从高到低排序的列表的 DCG@K 值,即最高可能的 DCG@K
    • 符号解释:
      • reli\mathrm{rel}_i: 推荐列表中第 ii 个物品的相关性分数。在二元相关性(0或1)的情况下,如果物品相关则为1,不相关则为0。
      • ii: 推荐列表中的物品位置(从1开始计数)。
      • log2(i+1)\log_2(i+1): 折损因子,使得排名靠后的物品贡献的增益减少。
      • DCG@K\mathrm{DCG@K}: 推荐列表中前 KK 个物品的折损累计增益。
      • IDCG@K\mathrm{IDCG@K}: 理想推荐列表(所有相关物品按最高相关性排序)中前 KK 个物品的折损累计增益,用作归一化因子。

5.3. 对比基线

论文将 TIGER 与以下 sequential recommendation 方法进行了比较 (具体描述在 Appendix B 中):

  • P5 [8]: 基于预训练大型语言模型的 multi-task 推荐系统。

  • Caser [33]: 使用 CNN 架构通过水平和垂直卷积操作捕获高阶马尔可夫链。

  • HGN [25]: 分层门控网络 (Hierarchical Gating Network),通过新的门控架构捕获用户的长期和短期兴趣。

  • GRU4Rec [11]: 首个使用定制化 GRU 的 RNN sequential recommendation 方法。

  • BERT4Rec [32]: 使用 bi-directional self-attention Transformer 解决 uni-directional 架构的局限性。

  • FDSA [42]: Feature-level Deeper Self-Attention Network,将物品特征作为输入序列的一部分引入 Transformer。

  • SASRec [17]: Self-Attentive Sequential Recommendation,使用 causal mask Transformer 建模用户序列交互。

  • S3^3-Rec [44]: Self-Supervised Learning for Sequential Recommendation,通过自监督任务预训练 bi-directional Transformer 以改进序列推荐。

    基线模型的共同点: 除 P5 外,所有基线模型都通过双编码器学习高维向量空间,其中用户过去的物品交互和候选物品被编码为高维表示,然后使用 Maximum Inner Product Search (MIPS) 来检索用户可能交互的下一个候选物品。 P5 的处理: 对于 P5,作者使用了作者提供的源代码,但更新了数据预处理方法,使其与其余基线和 TIGER 的方法保持一致,以确保公平比较。具体修改见 Appendix D

5.4. RQ-VAE 实现细节

  • 内容嵌入: 使用预训练的 Sentence-T5 [27] 模型获取物品的语义嵌入。将物品的内容特征(如 title, price, brand, category)构建成一个句子,输入 Sentence-T5 模型,得到 768 维的物品语义嵌入。
  • DNN 编码器: 将输入的语义嵌入编码为潜在表示。编码器有三层中间层,大小分别为 512、256、128,使用 ReLU 激活函数,最终潜在表示维度为 32。
  • 残差量化器: 进行三级残差量化。每个级别维护一个大小为 256 的码本,码本中的每个向量维度为 32。
  • 损失函数参数: 计算总损失时,β=0.25\beta = 0.25
  • 训练: RQ-VAE 模型训练 20k20 \mathrm{k} epochs,以确保码本利用率 80%\geq 80\%。使用 Adagrad optimizer,学习率为 0.4,批次大小为 1024。
  • 语义ID长度: 训练完成后,使用学习到的编码器和量化组件为每个物品生成一个 3 元组语义ID。为了避免多个物品映射到相同的语义ID,对于共享相同前三个码字的物品,会追加一个唯一的第 4 个码字。例如,(7,1,4)(7, 1, 4) 会被分配为 (7,1,4,0)(7, 1, 4, 0)(7,1,4,1)(7, 1, 4, 1)。这确保了每个物品都有一个唯一的长度为 4 的语义ID。

5.5. 序列到序列模型实现细节

  • 框架: 使用开源的 T5X 框架 [28] 实现基于 Transformer 的 encoder-decoder 架构。
  • 词汇表:
    • 包含用于表示每个语义码字的 token。语义ID包含 4 个码字,每个码本大小为 256,因此共有 256×4=1024256 \times 4 = 1024 个物品相关 token
    • 额外添加用户特定 token 到词汇表。为限制词汇表大小,仅添加 2000 个用户ID token,通过哈希技巧 [38] 将原始用户ID映射到这些 token 之一。
  • 输入序列构建: 将用户ID token 放在输入序列的最前面,后接用户物品交互历史的语义ID token 序列。加入用户ID有助于模型的个性化检索。
  • Transformer 配置:
    • 编码器和解码器各有 4 层。
    • 每层有 6 个自注意力头,维度为 64。
    • 使用 ReLU 激活函数。
    • MLP 和输入维度设置为 1024 和 128。
    • Dropout 率为 0.1。
    • 模型总参数量约为 1300 万。
  • 训练:
    • BeautySports and Outdoors 数据集训练 200k200 \mathrm{k} 步。
    • Toys and Games 数据集由于规模较小,训练 100k100 \mathrm{k} 步。
    • 批次大小为 256。
    • 学习率在前 10k10 \mathrm{k} 步为 0.01,之后遵循 inverse square root decay schedule

6. 实验结果与分析

6.1. 核心结果分析

6.1.1. 序列推荐性能

论文将提出的 TIGER 框架与多个 state-of-the-art (SOTA) 序列推荐基线模型进行了比较。所有基线(P5 除外)的结果引自 Zhou et al. [44] 公开提供的数据。P5 的结果则是在作者使用其源代码并进行数据预处理调整后获得的。

以下是原文 Table 1 的结果,展示了 TIGER 在三个数据集上的性能表现:

Methods Sports and Outdoors Recall @5 NDCG @5 Recall @10 NDCG @10 Beauty Recall @5 NDCG @5 Recall @10 NDCG @10 Toys and Games Recall @5 NDCG @5 Recall @10 NDCG @10
P5 [8] 0.0061 0.0041 0.0095 0.0052 0.0163 0.0107 0.0254 0.0136 0.0070 0.0050 0.0121 0.0066
Caser [33] 0.0116 0.0072 0.0194 0.0097 0.0205 0.0131 0.0347 0.0176 0.0166 0.0107 0.0270 0.0141
HGN [25] 0.0189 0.0120 0.0313 0.0159 0.0325 0.0206 0.0512 0.0266 0.0321 0.0221 0.0497 0.0277
GRU4Rec [11] 0.0129 0.0086 0.0204 0.0110 0.0164 0.0099 0.0283 0.0137 0.0097 0.0059 0.0176 0.0084
BERT4Rec [32] 0.0115 0.0075 0.0191 0.0099 0.0203 0.0124 0.0347 0.0170 0.0116 0.0071 0.0203 0.0099
FDSA [42] 0.0182 0.0122 0.0288 0.0156 0.0267 0.0163 0.0407 0.0208 0.0228 0.0140 0.0381 0.0189
SASRec [17] 0.0233 0.0154 0.0350 0.0192 0.0387 0.0249 0.0605 0.0318 0.0463 0.0306 0.0675 0.0374
S3-Rec [44] 0.0251\underline{0.0251} 0.0161\underline{0.0161} 0.0385\underline{0.0385} 0.0204\underline{0.0204} 0.0387\underline{0.0387} 0.0244\underline{0.0244} 0.0647\underline{0.0647} 0.0327\underline{0.0327} 0.0443\underline{0.0443} 0.0294\underline{0.0294} 0.0700\underline{0.0700} 0.0376\underline{0.0376}
TIGER [Ours] 0.0264 0.0181 0.0400 0.0225 0.0454 0.0321 0.0648 0.0384 0.0521 0.0371 0.0712 0.0432
% Improvement +5.22% +12.55% +3.90% +10.29% +17.31% +29.04% +0.15% +17.43% +12.53% +21.24% +1.71% +14.97%

分析:

  • TIGER 在所有三个数据集上均持续优于所有现有基线模型,并在所有评估指标 (Recall@5, NDCG@5, Recall@10, NDCG@10) 上取得了最佳性能。
  • Beauty 数据集上,TIGER 表现出最显著的提升,相对于次优基线 (SS^3-Rec),NDCG@5 提升高达 29.04%,Recall@5 提升 17.31%。
  • Toys and Games 数据集上,TIGER 在 NDCG@5NDCG@10 上分别提升了 21.24% 和 14.97%。
  • 这些结果强有力地验证了 TIGER 提出的生成式检索范式和语义ID在序列推荐任务上的有效性。其性能优势表明,通过直接生成具有语义意义的ID,模型能够更准确地预测用户未来的交互。

6.1.2. 物品表示的消融研究

论文研究了不同ID生成技术对生成式检索性能的影响,对比了随机ID、LSH 语义ID和 RQ-VAE 语义ID。

以下是原文 Table 2 的结果:

Methods Sports and Outdoors Recall @5 NDCG @5 Recall @10 NDCG @10 Beauty Recall @5 NDCG @5 Recall @10 NDCG @10 Toys and Games Recall @5 NDCG @5 Recall @10 NDCG @10
Random ID 0.007 0.005 0.0116 0.0063 0.0296 0.0205 0.0434 0.0250 0.0362 0.0270 0.0448 0.0298
LSH SID 0.0215 0.0146 0.0321 0.0180 0.0379 0.0259 0.0533 0.0309 0.0412 0.0299 0.0566 0.0349
RQ-VAE SID 0.0264 0.0181 0.0400 0.0225 0.0454 0.0321 0.0648 0.0384 0.0521 0.0371 0.0712 0.0432

分析:

  • 语义ID的重要性: Random ID 基线表现最差,远低于 LSH SIDRQ-VAE SID。这突出了利用物品内容信息生成语义ID的重要性,证明了语义信息对推荐性能的积极影响。
  • RQ-VAE 的优越性: RQ-VAE SID 始终优于 LSH SID。这表明通过非线性 DNN 架构学习语义ID(如 RQ-VAE)能够比基于随机投影的 LSH 产生更好的量化效果,更好地捕捉物品的语义特征。

6.1.3. 定性分析:RQ-VAE 语义ID的层次结构

论文对 RQ-VAE 学习到的语义ID进行了定性分析,以验证其层次结构和语义捕获能力。在亚马逊 Beauty 数据集上,将 RQ-VAE 的级别数设置为 3,码本大小分别为 4、16、256。即对于一个语义ID (c1,c2,c3)(c_1, c_2, c_3),有 0c130 \le c_1 \le 3, 0c2150 \le c_2 \le 15, 0c32550 \le c_3 \le 255

如下图(原文 Figure 4a)所示,展示了数据集中所有物品的 ground-truth 类别分布,并根据第一个码字 c1c_1 的值进行了颜色编码。

该图像是一个条形图,展示了不同类别(如美发工具、护肤品等)与对应概率的关系。各类别的概率水平通过不同颜色的条形表示,并标注了相关的语义ID。
该图像是一个条形图,展示了不同类别(如美发工具、护肤品等)与对应概率的关系。各类别的概率水平通过不同颜色的条形表示,并标注了相关的语义ID。

如下图(原文 Figure 4b)所示,展示了固定 c1c_1 后,不同 c2c_2 值对应的类别分布。

Figure 4: Qualitative study of RQ-VAE Semantic IDs `( c _ { 1 } , c _ { 2 } , c _ { 3 } , c _ { 4 } )` on the Amazon Beauty dataset. We show that the ground-truth categories are distribute across different Semantictokens. Moreover, the RQVAE semantic IDs form a hierarchy of items, where the first semantic token \(\\left( c _ { 1 } \\right)\) corresponds to coarse-level category, while second/third semantic token \(\\left( c _ { 2 } / c _ { 3 } \\right)\) correspond to fine-grained categories.
该图像是图表,展示了RQ-VAE语义ID在亚马逊美容数据集上的定性研究。图表分为上下两部分,左侧显示不同类别(如洗发水、护肤品等)与其对应的语义ID(如(3,15,4)(3, 15, 4))的概率分布,右侧则展示各类别的语义ID与其概率的关系。每一个条形图反映了语义ID与特定类别之间的细致层次,强调了粗细分类的层级关系。

Figure 4: Qualitative study of RQ-VAE Semantic IDs ( c _ { 1 } , c _ { 2 } , c _ { 3 } , c _ { 4 } ) on the Amazon Beauty dataset. We show that the ground-truth categories are distribute across different Semantictokens. Moreover, the RQVAE semantic IDs form a hierarchy of items, where the first semantic token left(c1right)\\left( c _ { 1 } \\right) corresponds to coarse-level category, while second/third semantic token left(c2/c3right)\\left( c _ { 2 } / c _ { 3 } \\right) correspond to fine-grained categories.

分析:

  • 粗粒度类别: c1c_1 能够捕获物品的高层类别。例如,当 c1=3c_1 = 3 时,大部分产品与“Hair”相关;当 c1=1c_1 = 1 时,大部分是“Makeup”和“Skin”产品。这表明第一个码字成功地将物品分为了几个大的语义簇。
  • 细粒度类别: 固定 c1c_1 后,第二个码字 c2c_2 能够进一步将高层语义细分为更细粒度的类别。这验证了 RQ-VAE 学习到的语义ID具有分层性质。
  • 知识共享与泛化: 这种分层、语义化的物品表示使得 TIGER 模型能够有效地在语义相似的物品之间共享知识,从而在基于随机原子ID的现有推荐系统模型中实现更好的泛化能力。

6.2. 新能力

6.2.1. 冷启动推荐

TIGER 框架在处理冷启动推荐方面表现出显著优势。由于新物品缺乏用户交互历史,传统方法难以对其进行推荐。TIGER 通过利用物品的语义信息来预测下一个物品,从而能够对新物品进行推荐。

实验设置:

  • Beauty 数据集上,从训练集中移除 5% 的测试物品,将其视为“未见物品 (unseen items)”来模拟冷启动。

  • TIGER 使用长度为 4 的语义ID,前 3 个 token 由 RQ-VAE 生成,第 4 个 token 用于确保唯一性。

  • 模型在训练集上训练 RQ-VAE 量化器和序列到序列模型。

  • 推理时,模型预测语义ID。如果预测的语义ID对应于一个“已见物品 (seen item)”,则检索该物品。如果预测的语义ID与“未见物品”共享相同的前三个语义 token,则也将该“未见物品”包含在检索的候选列表中。

  • 引入超参数 ϵ\epsilon,指定框架选择未见物品的最大比例。

  • 与基于 k-Nearest Neighbors (KNN) 的方法 Semantic_KNN 进行比较,该方法在语义表示空间中执行最近邻搜索。

    如下图(原文 Figure 5a)所示,展示了 TIGER 和 Semantic_KNN 在冷启动设置下的性能比较。

    Figure 5: Performance in the cold-start retrieval setting. 该图像是图表,展示了在冷启动检索设置下模型的召回率表现。图(a)显示了 Recall@K 与 K 的关系,图(b)展示了 Recall@10 与 ε 的关系,结果表明所提出的模型在Overall和Unseen类别中均表现优越。

Figure 5: Performance in the cold-start retrieval setting.

分析:

  • TIGER 优于 Semantic_KNNϵ=0.1\epsilon = 0.1 的设置下,TIGER 在所有 Recall@K 指标上持续优于 Semantic_KNN,无论是在 Overall 还是 Unseen 物品的召回上。这表明 TIGER 能够有效地利用语义信息进行冷启动推荐。
  • ϵ\epsilon 的影响: 如下图(原文 Figure 5b)所示,对于所有 ϵ0.1\epsilon \geq 0.1 的值,TIGER 的表现都优于基线。这表明 TIGER 在引入一定比例的未见物品时,依然能保持或提升性能。

6.2.2. 推荐多样性

除了召回率和 NDCG,推荐多样性也是一个关键目标。TIGER 框架可以通过温度采样 (temperature-based sampling) 来控制推荐的多样性。

实验设置:

  • 通过解码过程中的温度采样来控制多样性。

  • 多样性通过 Entropy@K 指标衡量,即计算 top-K 预测物品的 ground-truth 类别分布的熵。熵值越高表示多样性越大。

    以下是原文 Table 3 的结果:

    Temperature Entropy@10 Entropy@20 Entropy@50
    T = 1.0 0.76 1.14 1.70
    T = 1.5 1.14 1.52 2.06
    T = 2.0 1.38 1.76 2.28

分析:

  • 温度采样提升多样性: 随着温度 TT 的增加,Entropy@K 值也随之增加,表明解码过程中的温度采样能够有效提升预测结果的类别多样性。

  • 层次多样性控制: 由于 RQ-VAE 语义ID的层次性,TIGER 可以在不同粒度上控制多样性。例如,采样语义ID的第一个 token 可以从粗粒度类别中选择物品,而采样第二个或第三个 token 则可以在特定类别内进行细粒度采样。

    以下是原文 Table 4 的结果,展示了温度采样对推荐多样性的定性影响:

    Target Category Most-common Categories for top-10 predicted items (T = 1.0) Most-common Categories for top-10 predicted items (T = 2.0)
    Hair Styling Products Hair Styling Products Hair Styling Products, Hair Styling Tools, Skin Face
    Tools Nail Tools Nail Tools Nail, Makeup Nails
    Makeup Nails Makeup Nails Makeup Nails, Skin Hands & Nails, Tools Nail
    Skin Eyes Skin Eyes Hair Relaxers, Skin Face, Hair Styling Products, Skin Eyes
    Makeup Face Tools Makeup Brushes, Makeup Face Tools Makeup Brushes, Makeup Face, Skin Face, Makeup Sets, Hair Styling Tools
    Hair Loss Products Hair Loss Products, Skin Face, Skin Body Skin Face, Hair Loss Products, Hair Shampoos, Hair & Scalp Treatments, Hair Conditioners

分析:

  • T=1.0T = 1.0 时,推荐的物品类别通常集中在目标类别本身或与其高度相关的少数类别中。
  • T=2.0T = 2.0 时,推荐的物品类别变得更加广泛和多样化,包含了更多与目标类别相关但更广泛的类别(例如,Hair Styling Products 对应的推荐增加了 Hair Styling Tools, Skin Face)。这定性地验证了温度采样能够有效增加推荐的多样性。

6.3. 消融实验

6.3.1. 序列到序列模型层数的影响

论文研究了序列到序列模型中 Transformer 层数对性能的影响。

以下是原文 Table 5 的结果:

Number of Layers Recall@5 NDCG@5 Recall@10 NDCG@10
3 0.04499 0.03062 0.06699 0.03768
4 0.0454 0.0321 0.0648 0.0384
5 0.04633 0.03206 0.06596 0.03834

分析:

  • 随着模型层数的增加,性能(RecallNDCG)略有改善,但这种改善并不显著。这表明模型在 4 层时已经能够较好地捕捉序列依赖关系,进一步增加层数带来的边际效益递减。作者在主实验中采用了 4 层。

6.3.2. 用户信息的影响

论文还在 Appendix D 的 Table 8 中评估了提供用户ID信息对推荐系统的影响。

以下是原文 Table 8 的结果:

Recall@5 NDCG@5 Recall@10 NDCG@10
No user information 0.04458 0.0302 0.06479 0.0367
With user id (reported in the paper) 0.0454 0.0321 0.0648 0.0384

分析:

  • 提供用户ID信息(即个性化)对推荐性能有积极影响,所有指标均略有提升。这说明将用户ID作为输入序列的一部分,能够帮助模型更好地捕获用户的个性化偏好,从而生成更准确的推荐。

6.4. 无效ID的处理

由于模型自回归地解码语义ID的码字,可能会生成无法映射到数据集中任何实际物品的“无效ID”。 如下图(原文 Figure 6)所示,展示了 TIGER 生成无效ID的百分比随检索物品数量 KK 的变化。

Figure 6: Percentage of invalid IDs when generating Semantic IDs using Beam search for various values of \(K\) . As shown, \(\\sim 0 . 3 \\% - 6 \\%\) of the IDs are invalid when retrieving the top-20 items.
该图像是图表,展示了使用 Beam search 生成语义 ID 时,针对不同 K 值的无效 ID 百分比。在 "Sports and Outdoors"、"Beauty" 和 "Toys and Games" 三个类别中,当 K 从 1 增加到 20,出现的无效 ID 百分比分别在 0.3%0.3\%6%6\%之间。

Figure 6: Percentage of invalid IDs when generating Semantic IDs using Beam search for various values of KK . As shown, sim0.3\\sim 0 . 3 \\% - 6 \\% of the IDs are invalid when retrieving the top-20 items.

分析:

  • 对于 top-10 预测,无效ID的比例在三个数据集上约为 0.1%0.1\%1.6%1.6\%
  • 当检索 top-20 物品时,无效ID的比例在 0.3%0.3\%6%6\% 之间。
  • 尽管存在无效ID,TIGER 仍能实现 state-of-the-art 性能。
  • 处理方法: 可以通过增加 beam searchbeam size,并在生成过程中过滤掉无效ID来确保所有检索到的ID都是有效的。
  • 未来工作: 论文提出,可以探索前缀匹配 (prefix matching) 的方法来处理无效 token。例如,如果模型生成的前缀与某个物品的语义ID前缀匹配,即使完整ID无效,也可以检索具有该前缀的物品。这可以被视为模型在预测物品类别而非具体物品索引,有望进一步提升 recallNDCG

6.5. 可伸缩性测试

论文测试了语义ID的可伸缩性,将三个数据集合并后生成语义ID,并在 Beauty 数据集上进行推荐,与仅在 Beauty 数据集上生成语义ID的结果进行比较。

以下是原文 Table 10 的结果:

Recall@5 NDCG@5 Recall@10 NDCG@10
Semantic ID [Combined datasets] 0.04355 0.3047 0.06314 0.03676
Semantic ID [Amazon Beauty] 0.0454 0.0321 0.0648 0.0384

分析:

  • 即使在更大的合并数据集上生成语义ID,并在其中一个子数据集上进行推荐,性能也仅有小幅下降。这表明 TIGER 框架的语义ID生成机制在处理更大规模的物品语料库时具有较好的可伸缩性。

7. 总结与思考

7.1. 结论总结

本文提出了 TIGER (Transformer Index for GEnerative Recommenders) 框架,一种用于推荐系统生成式检索的新范式。该方法的核心在于为每个物品创建具有语义意义的语义ID,通过 RQ-VAE (Residual-Quantized Variational AutoEncoder) 将物品内容嵌入量化为离散的、分层结构的码字元组。接着,一个基于 Transformer 的序列到序列模型被训练来预测用户会话中下一个物品的语义ID。

实验结果表明,TIGER 在多个 Amazon 产品评论数据集上显著优于现有的 state-of-the-art 序列推荐模型,并在 Recall@KNDCG@K 指标上取得了卓越的性能。除了优越的性能,TIGER 还展示了两项重要的新能力:

  1. 冷启动推荐: 能够有效地推荐新加入或未曾交互过的物品,这得益于其对物品语义信息的利用,而非仅仅依赖交互历史。

  2. 推荐多样性: 通过解码过程中的温度采样,模型可以灵活地控制推荐结果的多样性,并且由于语义ID的层次结构,可以实现不同粒度的多样化推荐。

    此外,TIGER 的嵌入表大小不随物品空间线性增长,而是依赖于码本大小和语义ID长度,这使其在处理大规模物品库时更具内存效率。它将 Transformer 的记忆直接用作物品的语义索引,避免了传统方法中构建和维护大型外部索引的需要。

7.2. 局限性与未来工作

论文作者指出了 TIGER 框架的以下局限性并提出了未来研究方向:

  • 推理成本: 尽管 TIGER 在序列推荐任务上取得了显著成功,但在推理阶段,由于自回归解码过程中需要进行 beam search,其计算成本可能高于基于 ANN 的模型。作者强调本工作的目标并非优化计算效率,而是开辟生成式检索在推荐系统中的新研究领域。未来的工作将探索如何减小模型规模或提高推理效率。
  • 无效ID处理的进一步优化: 尽管模型生成无效ID的概率较低(在 top-10 预测中约为 0.1%1.6%0.1\%-1.6\%),但仍需通过增加 beam size 和过滤来确保检索结果的有效性。作者建议未来可以探索语义ID的前缀匹配 (prefix matching) 机制,当模型生成无效 token 时,可以检索具有相似语义前缀的物品,这将使得模型能够预测物品类别而非具体物品索引,有望进一步提高 recallNDCG
  • 语义ID长度和码本大小的鲁棒性: 论文提到尝试了不同的语义ID长度和码本大小配置(例如 6 个码字,每个码本大小 64),发现推荐指标对这些变化具有鲁棒性。然而,较长的ID会导致输入序列长度增加,从而增加 Transformer 模型的计算成本,这需要在未来工作中进行权衡。

7.3. 个人启发与批判

7.3.1. 个人启发

  1. 范式转变的潜力: TIGER 提出了一种全新的推荐系统检索范式,将生成式检索从文档检索领域引入到推荐领域,这具有开创性意义。它打破了传统“嵌入 + ANN 搜索”的固定模式,为推荐系统的设计提供了新的思路。
  2. 语义ID的价值: 语义ID的设计是 TIGER 成功的关键。通过将物品内容特征编码为结构化、层次化的离散 token 序列,模型能够更好地理解物品的内在语义,从而解决冷启动、提高泛化能力和控制多样性。这种基于语义而非随机ID的表示方法,对于构建更智能、更鲁棒的推荐系统具有重要意义。
  3. 内存效率的优势: TIGER 在内存方面的优势(嵌入表大小不随物品数量线性增长)对于处理拥有海量物品的工业级推荐系统至关重要。这可能降低部署成本,并提高系统的可扩展性。
  4. 可解释性的潜力: 语义ID的层次结构可能为推荐结果提供一定的可解释性。例如,如果某个物品的语义ID以特定 token 序列开头,可以推断其属于某个粗粒度类别,这有助于用户理解推荐理由。

7.3.2. 批判性思考

  1. 推理延迟问题: 尽管论文承认了 beam search 带来的推理成本,但对于需要低延迟响应的实时推荐场景,这可能是一个严重的限制。如何有效优化 autoregressive decoding 的速度,使其达到工业级应用的水平,是一个巨大的挑战。可以探索更高效的解码策略,如 speculative decoding 或模型蒸馏。
  2. 语义ID的稳定性和适应性: RQ-VAE 训练完成后,语义ID是固定的。当物品内容信息发生变化(例如商品描述更新)或新的物品加入时,是否需要重新训练 RQ-VAE?以及这个过程的频率和成本如何?此外,RQ-VAE 的码本初始化依赖于 k-means,这可能对语义ID的质量产生影响。
  3. 对物品内容特征的依赖: TIGER 严重依赖物品的丰富内容特征来生成语义ID。对于那些内容特征稀疏或缺失的物品(例如一些纯UGC内容),如何有效地生成高质量的语义ID是一个问题。
  4. 无效ID的严格处理: 尽管论文指出无效ID的比例不高,但在实际应用中,任何无效ID都可能导致用户体验问题。单纯增加 beam size 会增加推理时间,而前缀匹配的策略也可能带来模糊性(多个物品匹配同一前缀)。需要更鲁棒和精确的机制来确保生成ID的有效性,例如在训练过程中引入惩罚项,或者设计一个可回退的机制。
  5. 与排序阶段的集成: 论文主要关注检索阶段。在实际推荐系统中,检索阶段之后通常还有一个排序阶段。语义ID如何进一步赋能或简化排序阶段的模型,例如作为排序模型的特征输入,或者利用其层次结构进行更精细的排序,是值得探讨的方向。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。