← Back to list
TIGER

TIGER: Towards Generating Semantic IDs with Transformer for Scalable and Transferable Recommendation

生成式推荐 Google
Abstract 9 Reading 9 Rating —
2023-05-08
Shashank Rajput, Nikhil Mehta, Anima Singh, Raghunandan Keshavan, Trung Vu, Lukasz Heldt, Lichan Hong, Yi Tay, Vinh Q. Tran, Jonah Samost, Maciej Kula, Ed H. Chi, Maheswaran Sathiamoorthy
University of Wisconsin-Madison, Google DeepMind, Google
提出TIGER框架,首次将生成式检索范式引入推荐系统,通过RQ-VAE为物品生成层次化Semantic ID并用Transformer自回归预测,在多个数据集上显著超越SOTA
semantic-id transformer pretrained-lm cold-start academic

1 研究动机与核心贡献

1.1 问题背景

现代推荐系统的检索阶段通常采用 retrieve-and-rank 范式:将查询 (query) 和候选物品编码到同一向量空间,通过近似最近邻搜索 (ANN) 检索候选集,再由排序模型精排。这种方法依赖双塔结构 (dual-encoder),需要为所有物品维护一个高维嵌入索引,存在以下问题:

  1. 嵌入表规模线性增长:物品库规模可达数十亿,每个物品需独立嵌入向量,内存开销巨大
  2. 原子 ID 缺乏语义:传统方法使用随机或哈希生成的 atomic item ID,相似物品的 ID 之间无关联
  3. 冷启动困难:新物品缺乏交互历史,其嵌入无法有效学习

1.2 核心思路

TIGER (Transformer Index for GEnerative Recommenders) 提出一种全新的 生成式检索 (Generative Retrieval) 范式用于推荐系统:

  • 不再通过 ANN 在嵌入空间中搜索候选物品
  • 而是让模型 直接自回归生成目标物品的标识符 (Semantic ID)
  • Transformer 的参数记忆 (memory) 本身充当物品索引

1.3 主要贡献

  1. 提出 TIGER,首个基于生成式检索的推荐框架,为每个物品分配 Semantic ID,训练检索模型直接预测目标物品的 Semantic ID
  2. 在多个数据集上显著超越现有 SOTA 序列推荐模型(Recall 和 NDCG 指标)
  3. 生成式检索范式带来两项新能力:(a) 冷启动推荐——能推荐训练时未见过的新物品;(b) 推荐多样性——通过温度采样控制推荐结果的多样性

2 方法框架

TIGER 框架分为两个阶段:

2.1 Semantic ID 生成

目标:将每个物品的内容特征编码为一个离散语义码元组 (tuple of codewords),即 Semantic ID。

流程: 1. 内容编码:使用预训练文本编码器(如 Sentence-T5)将物品的文本特征(标题、价格、品牌、类别等)拼接为句子,编码为 768 维语义嵌入向量 $\boldsymbol{x} \in \mathbb{R}^d$ 2. 量化:通过 RQ-VAE 将嵌入向量量化为 $m$ 个码字的元组 $(c_0, c_1, \ldots, c_{m-1})$,即 Semantic ID

RQ-VAE 详解

Residual-Quantized Variational AutoEncoder (RQ-VAE) 是一种多级向量量化器,通过对残差进行迭代量化来生成码字序列。

结构

  • DNN 编码器:输入语义嵌入 $\boldsymbol{x}$,输出潜在表示 $\boldsymbol{z} := \mathcal{E}(\boldsymbol{x})$
  • 残差量化器:$m$ 级量化,每级使用独立码本 $C_d := \{e_k\}_{k=1}^K$
  • DNN 解码器:从量化表示重建输入

量化过程

初始残差 $\boldsymbol{r}_0 := \boldsymbol{z}$。在每一级 $d$:

$$c_d = \arg\min_i \|\boldsymbol{r}_d - \boldsymbol{e}_i\|$$

$$\boldsymbol{r}_{d+1} := \boldsymbol{r}_d - \boldsymbol{e}_{c_d}$$

最终得到 Semantic ID $(c_0, c_1, \ldots, c_{m-1})$,量化表示为:

$$\hat{\boldsymbol{z}} := \sum_{d=0}^{m-1} \boldsymbol{e}_{c_d}$$

损失函数

$$\mathcal{L}(\boldsymbol{x}) := \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{rqvae}}$$

其中:

$$\mathcal{L}_{\text{recon}} := \|\boldsymbol{x} - \hat{\boldsymbol{x}}\|^2$$

$$\mathcal{L}_{\text{rqvae}} := \sum_{d=0}^{m-1} \|\text{sg}[\boldsymbol{r}_d] - \boldsymbol{e}_{c_d}\|^2 + \beta \|\boldsymbol{r}_d - \text{sg}[\boldsymbol{e}_{c_d}]\|^2$$

其中 $\hat{\boldsymbol{x}}$ 是解码器输出,sg 为 stop-gradient 操作。

层次化语义性质:RQ-VAE 生成的 Semantic ID 具有自然的层次结构——第一个码字 $c_1$ 对应粗粒度类别(如 "Hair"、"Makeup"),后续码字 $c_2, c_3$ 对应细粒度子类别。Figure 4 的定性分析清楚展示了这一点。

碰撞处理:当多个物品映射到同一 Semantic ID 时,在末尾追加额外码字以消歧。例如两个物品都映射到 $(12, 24, 52)$,则分别表示为 $(12, 24, 52, 0)$ 和 $(12, 24, 52, 1)$。通过查找表维护映射关系。

RQ-VAE 实现细节

  • 编码器:3 层中间层,大小为 512、256、128,ReLU 激活,最终潜在维度 32
  • 量化:3 级残差量化,每级码本大小 $K = 256$,每个码向量维度 32
  • 训练:Adagrad 优化器,学习率 0.4,batch size 1024,训练 20k epochs
  • $\beta = 0.25$,目标码本使用率 $\geq 80\%$
  • 第 4 个码字用于碰撞消歧,最终 Semantic ID 长度为 4

2.2 基于 Semantic ID 的生成式检索

序列构建:对每个用户,按时间顺序排列其交互物品序列 $(\text{item}_1, \ldots, \text{item}_n)$。将每个物品替换为其 $m$ 长度的 Semantic ID,得到展平后的码字序列:

$$(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})$$

模型:使用 Transformer 编码器-解码器架构(基于 T5X 框架实现),训练目标是预测 $\text{item}_{n+1}$ 的 Semantic ID $(c_{n+1,0}, \ldots, c_{n+1,m-1})$。

词表设计

  • 物品语义码字:$256 \times 4 = 1024$ 个 token
  • 用户 ID token:2000 个(通过 Hashing Trick 将原始用户 ID 映射到 2000 个 token 之一)
  • 输入序列格式:用户 ID token + 物品交互历史的 Semantic ID token 序列

模型配置

  • 编码器和解码器均为 4 层 Transformer
  • 每层 6 个自注意力头,维度 64
  • MLP 输入维度 1024,嵌入维度 128
  • Dropout 0.1
  • 总参数量约 1300 万
  • 学习率:前 10k 步为 0.01,之后使用 inverse square root decay
  • Batch size 256
  • Beauty 和 Sports 数据集训练 200k 步,Toys 数据集训练 100k 步

3 实验

3.1 数据集

使用 Amazon Product Reviews 数据集的三个类别:

数据集 用户数 物品数 平均序列长度 中位序列长度
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 条评论的用户。评估采用 leave-one-out 策略:最后一个物品用于测试,倒数第二个用于验证,其余用于训练。用户历史限制为最近 20 个物品。

评估指标:Recall@K 和 NDCG@K,$K = 5, 10$。

3.2 序列推荐性能(Table 1)

Baselines:P5, Caser, HGN, GRU4Rec, BERT4Rec, FDSA, SASRec, S$^3$-Rec

Methods Sports R@5 Sports N@5 Sports R@10 Sports N@10 Beauty R@5 Beauty N@5 Beauty R@10 Beauty N@10 Toys R@5 Toys N@5 Toys R@10 Toys N@10
P5 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 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 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 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 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 0.0182 0.0122 0.0288 0.0156 0.0267 0.0163 0.0407 0.0208 0.0228 0.0140 0.0306 0.0189
SASRec 0.0233 0.0154 0.0350 0.0192 0.0387 0.0249 0.0605 0.0318 0.0463 0.0306 0.0675 0.0374
S$^3$-Rec 0.0251 0.0161 0.0385 0.0204 0.0387 0.0244 0.0647 0.0327 0.0443 0.0294 0.0700 0.0376
TIGER 0.0264 0.0181 0.0400 0.0225 0.0454 0.0321 0.0648 0.0384 0.0521 0.0371 0.0712 0.0432
提升 (vs 次优) +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 在所有三个数据集的所有指标上均超越现有 SOTA 方法
  • 在 Beauty 数据集上提升最为显著:NDCG@5 比 SASRec 高 29%,Recall@5 比 S$^3$-Rec 高 17.3%
  • 在 Toys and Games 上 NDCG@5 和 NDCG@10 分别提升 21% 和 15%
  • P5(使用随机 token 化的 LLM 方法)表现最差,凸显了语义 ID 的重要性

3.3 ID 生成方法对比(Table 2)

Methods Sports R@5 Sports N@5 Sports R@10 Sports N@10 Beauty R@5 Beauty N@5 Beauty R@10 Beauty N@10 Toys R@5 Toys N@5 Toys R@10 Toys N@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

结论

  • RQ-VAE Semantic ID 在所有数据集和指标上均大幅优于 Random ID 和 LSH Semantic ID
  • Random ID 表现最差,说明基于内容的语义信息至关重要
  • LSH 优于 Random ID 但不如 RQ-VAE,证明通过非线性 DNN 学习量化优于基于随机投影的哈希方法

3.4 冷启动推荐(Figure 5)

实验设置:从 Beauty 数据集中移除 5% 的测试物品作为 "unseen items",仅在训练集中训练 RQ-VAE 和推荐模型,然后为所有物品(含 unseen)生成 Semantic ID。

方法:给定模型预测的 Semantic ID $(c_1, c_2, c_3, c_4)$:

  • 若完全匹配某 seen item,直接检索
  • 若不匹配但前 3 个码字 $(c_1, c_2, c_3)$ 与某 unseen item 匹配,将其加入候选
  • 超参数 $\epsilon$ 控制 top-K 候选中 unseen items 的最大比例

对比基线:Semantic_KNN,使用语义表示空间做最近邻搜索。

结果

  • Figure 5a:在 $\epsilon = 0.1$ 下,TIGER 在所有 Recall@K 值上均优于 Semantic_KNN(包括 overall、item split 和 unseen 三种评估方式)
  • Figure 5b:在不同 $\epsilon$ 值下($\epsilon \geq 0.1$),TIGER 的 Recall@10 始终优于 Semantic_KNN

分析:TIGER 天然适合冷启动场景,因为 Semantic ID 的层次结构使得即使不精确匹配,前缀匹配也能找到语义相似的新物品。传统使用 atomic ID 的模型完全无法推荐训练时未见过的物品。

3.5 推荐多样性(Table 3 & Table 4)

通过调节解码时的温度参数 (temperature) 控制推荐多样性:

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

结论:温度越高,推荐结果的类别多样性越强。由于 Semantic ID 的层次结构,温度采样可以在不同层级上实现多样性——第一个 token 的采样对应粗粒度类别间的探索,后续 token 对应类别内的探索。

Table 4 的定性分析进一步证实:T=2.0 时推荐结果涵盖更多不同类别(如 "Hair Styling Products" 的目标类别在 T=2.0 时还会推荐 "Hair Styling Tools"、"Skin Face" 等相关类别)。

3.6 消融实验

层数消融(Table 5,Beauty 数据集)

层数 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

结论:增加层数有微小提升,4 层是性能和效率的良好平衡点。

用户信息的影响(Table 8,Beauty 数据集)

配置 Recall@5 NDCG@5 Recall@10 NDCG@10
无用户信息 0.04458 0.0302 0.06479 0.0367
有用户 ID 0.0454 0.0321 0.0648 0.0384

结论:加入用户 ID token 对性能有小幅提升。

标准差分析(Table 9,3 次随机种子)

数据集 Recall@5 NDCG@5 Recall@10 NDCG@10
Beauty 0.0441 $\pm$ 0.00069 0.0309 $\pm$ 0.00062 0.0642 $\pm$ 0.00092 0.0374 $\pm$ 0.00061
Sports 0.0278 $\pm$ 0.00069 0.0189 $\pm$ 0.00043 0.0419 $\pm$ 0.0010 0.0234 $\pm$ 0.00048
Toys 0.0518 $\pm$ 0.00064 0.0375 $\pm$ 0.00039 0.0698 $\pm$ 0.0013 0.0433 $\pm$ 0.00047

结论:标准差非常小,说明 TIGER 的性能稳定。

3.7 Invalid ID 分析

由于模型自回归生成 Semantic ID,可能产生不在语料库中的无效 ID。Figure 6 显示:

  • 对 top-10 预测,无效 ID 比例在 0.1%~1.6% 之间
  • 可通过增大 beam size 过滤无效 ID 来保证 top-K 均为有效结果

3.8 可扩展性(Table 10)

配置 Recall@5 NDCG@5 Recall@10 NDCG@10
合并三个数据集生成 SID 0.04355 0.3047 0.06314 0.03676
仅 Beauty 数据集生成 SID 0.0454 0.0321 0.0648 0.0384

结论:合并三个数据集生成 Semantic ID 后在 Beauty 上评估,性能仅有轻微下降,表明 Semantic ID 方案具有良好的可扩展性。

3.9 内存效率

TIGER 的嵌入表大小为 $1024d$($256 \times 4$ 个码字,每个维度 $d$),而传统推荐系统需要 $Nd$ 大小的嵌入表($N$ 为物品数,10K~20K)。TIGER 的内存占用与物品数量无关,仅与码本大小线性相关。

4 与其他量化方法的对比

方法 原理 语义保持 层次性
Random ID 随机分配码字
LSH (SimHash) 随机超平面投影 + 二值化 部分
VQ-VAE 向量量化自编码器 无(平坦结构)
RQ-VAE 残差量化自编码器 (从粗到细)

RQ-VAE 的关键优势在于层次化:第一级码字捕获粗粒度语义,后续级别逐步细化,形成自然的类别树结构。这不仅有助于推荐准确性,还为冷启动和多样性控制提供了结构化基础。

5 关键设计决策与讨论

  1. 为何用 Semantic ID 而非 atomic ID? 语义码字使相似物品共享前缀,Transformer 可以在相似物品间迁移知识,且新物品只需通过 RQ-VAE 获取 Semantic ID 即可被推荐
  2. 为何用编码器-解码器而非仅解码器? 编码器处理用户历史序列,解码器自回归生成目标 Semantic ID,这种分离更适合序列到序列的生成任务
  3. Inference 成本:beam search 解码比 ANN 搜索更耗时,这是当前的主要局限,论文将其留作未来工作
  4. P5 预处理修复:论文发现 P5 原始代码的预处理存在信息泄露问题(连续整数 ID + SentencePiece tokenizer 导致测试集和训练集共享子词),修复后 P5 性能进一步下降

6 总结

TIGER 是推荐系统领域的里程碑式工作,首次将生成式检索范式成功应用于推荐系统。其核心创新在于:(1) 用 RQ-VAE 将物品内容特征编码为层次化 Semantic ID;(2) 用 Transformer 编码器-解码器直接自回归生成目标物品的 Semantic ID。这一范式不仅在传统指标上超越 SOTA,还天然支持冷启动推荐和多样性控制,为后续大量生成式推荐工作奠定了基础。发表于 NeurIPS 2023。