Back to blog

Recommender Systems with Generative Retrieval

TIGER 框架将推荐重新定义为生成式检索任务,使用 RQ-VAE 生成 Semantic ID,Transformer 自回归解码预测下一个物品,在多个数据集上超越 SOTA

Recommender Systems with Generative Retrieval

一、论文概述

项目内容
标题Recommender Systems with Generative Retrieval
作者Shashank Rajput, Nikhil Mehta, Anima Singh, Raghunandan H. Keshavan, Trung Vu, Lukasz Heldt, Lichan Hong, Yi Tay, Vinh Q. Tran, Ed H. Chi, Jonah Samost, Maciej Kula, Maheswaran Sathiamoorthy
机构Google DeepMind, Google, University of Wisconsin-Madison
论文arXiv:2305.05065
发布2023-05-08 (v1), 2023-11-03 (v3)
会议NeurIPS 2023
许可未明确

二、核心思想

问题定义

传统推荐系统的检索阶段采用”嵌入+近似最近邻搜索”范式:

  1. 将查询和候选物品嵌入到统一向量空间
  2. 使用 ANN 算法(如 MIPS)检索 top-K 候选

核心瓶颈:

  • 需要维护大规模索引结构
  • 随机原子 ID 无法捕获物品语义
  • 冷启动物品缺乏交互历史,无法被检索

解决方案概述

TIGER (Transformer Index for GEnerative Recommenders) 提出全新范式:

  1. Semantic ID:使用 RQ-VAE 对物品内容嵌入进行残差量化,生成语义有意义的离散 ID
  2. 生成式检索:Transformer seq2seq 模型自回归解码预测下一个物品的 Semantic ID
  3. Transformer 即索引:模型参数本身充当语义索引,无需额外索引结构

三、技术架构

整体框架图

TIGER 框架概览

TIGER Framework
├── Stage 1: Semantic ID Generation (Offline)
│   ├── Input: Item content features (title, price, brand, category)
│   ├── Sentence-T5 → 768-dim content embedding
│   ├── RQ-VAE Quantization
│   │   ├── Encoder: 3 layers (512→256→128) + ReLU
│   │   ├── 3-level Residual Quantization (codebook size=256 each)
│   │   └── Output: 3-tuple Semantic ID (c₁, c₂, c₃)
│   └── Collision Resolution: Append 4th token for uniqueness
├── Stage 2: Generative Retrieval (Training)
│   ├── Input: User ID token + Semantic ID sequence
│   │   e.g., [user_hash, c₁⁽¹⁾, c₂⁽¹⁾, c₃⁽¹⁾, c₄⁽¹⁾, ..., c₁⁽ⁿ⁾, c₂⁽ⁿ⁾, c₃⁽ⁿ⁾, c₄⁽ⁿ⁾]
│   ├── Transformer Encoder-Decoder (4 layers, 6 heads, d=64)
│   └── Output: Predict Semantic ID of next item (c₁⁽ⁿ⁺¹⁾, c₂⁽ⁿ⁺¹⁾, c₃⁽ⁿ⁺¹⁾, c₄⁽ⁿ⁺¹⁾)
└── Stage 3: Inference
    ├── Autoregressive decoding of Semantic ID tokens
    ├── Beam search for top-K candidates
    └── Lookup table to map Semantic ID → item

核心公式

RQ-VAE 残差量化过程:

r0:=z=E(x)r_0 := z = \mathcal{E}(x)

cd=arg⁡min⁡i∥rd−ek∥c_d = \arg\min_i \| r_d - e_{k} \|

rd+1:=rd−ecdr_{d+1} := r_d - e_{c_d}

其中 rdr_d 是第 dd 级残差,ecde_{c_d} 是码本中最接近的向量,cdc_d 是对应的码字索引。

量化重建:

z^=∑d=0m−1ecd\hat{z} = \sum_{d=0}^{m-1} e_{c_d}

RQ-VAE 损失函数:

L(x)=Lrecon+Lrqvae\mathcal{L}(x) = \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{rqvae}}

Lrecon=∥x−x^∥2\mathcal{L}_{\text{recon}} = \| x - \hat{x} \|^2

Lrqvae=∑d=0m−1∥sg[rd]−ecd∥2+β∥rd−sg[ecd]∥2\mathcal{L}_{\text{rqvae}} = \sum_{d=0}^{m-1} \| \text{sg}[r_d] - e_{c_d} \|^2 + \beta \| r_d - \text{sg}[e_{c_d}] \|^2

其中 sg\text{sg} 是 stop-gradient 操作,β=0.25\beta = 0.25。

Semantic ID 层次结构

建模方法概览

Semantic ID (c₁, c₂, c₃, c₄)
├── c₁ (粗粒度): 对应物品大类
│   e.g., c₁=3 → Hair 相关产品
│   e.g., c₁=1 → Makeup/Skin 产品
├── c₂ (中粒度): 细分类别
│   e.g., (1, *, *) → Makeup 细分
└── c₃ (细粒度): 具体子类别
    e.g., (1, 5, *) → Makeup Face 子类别
└── c₄ (唯一性): 解决碰撞
    e.g., (7, 1, 4, 0) 和 (7, 1, 4, 1) 表示两个不同物品

RQ-VAE 量化过程

RQ-VAE 残差量化

关键特性:

  • 层次化表示:从粗到细逐步细化
  • 相似物品共享前缀码字
  • 码本大小:每级 K=256,共 m=3 级
  • 总 ID 空间:256³ = 16,777,216
  • 碰撞处理后:长度为 4 的唯一 ID

四、核心创新

创新点说明理论/实验依据
Semantic ID使用 RQ-VAE 生成语义有意义的离散 ID图 4,表 2
生成式检索Transformer 自回归解码预测物品 ID图 1,表 1
Transformer 即索引模型参数充当语义索引,无需额外索引图 1
冷启动能力未见物品可通过语义 ID 被检索图 5
可调多样性温度采样控制推荐多样性表 3-4

五、实验结果

主要性能对比

方法Sports@5Sports@10Beauty@5Beauty@10Toys@5Toys@10
P50.00610.00950.01630.02540.00700.0121
Caser0.01160.01940.02050.03470.01660.0270
HGN0.01890.03130.03250.05120.03210.0497
GRU4Rec0.01290.02040.01640.02830.00970.0176
BERT4Rec0.01150.01910.02030.03470.01160.0203
SASRec0.02330.03500.03870.06050.04630.0675
S³-Rec0.02510.03850.03870.06470.04430.0700
TIGER0.02640.04000.04540.06480.05210.0712
提升+5.2%+3.9%+17.3%+0.2%+12.5%+1.7%

关键发现:

  • TIGER 在所有数据集上超越所有 baseline
  • Beauty 数据集提升最大:NDCG@5 +29.0%,Recall@5 +17.3%
  • Toys and Games:NDCG@5 +21.2%,NDCG@10 +15.0%

消融实验:ID 生成方式

方法Sports@5Sports@10Beauty@5Beauty@10
Random ID0.0070.01160.02960.0434
LSH SID0.02150.03210.03790.0533
RQ-VAE SID0.02640.04000.04540.0648

发现:

  • RQ-VAE Semantic ID 显著优于 Random ID(+277% Recall@5 on Sports)
  • RQ-VAE 优于 LSH(+23% Recall@5 on Sports)
  • 语义有意义的 ID 是性能关键

冷启动推荐

冷启动 Recall@K vs K

冷启动 Recall@10 vs ε

实验设置:移除 5% 测试物品作为”未见物品”

发现:

  • TIGER 在所有 Recall@K 上优于 Semantic KNN
  • ε=0.1 时已显著优于 baseline
  • 未见物品可通过共享的 Semantic ID 前缀被检索

推荐多样性

温度 TEntropy@10Entropy@20Entropy@50
1.00.761.141.70
1.51.141.522.06
2.01.381.762.28

发现:温度采样可有效控制推荐多样性

六、模型配置

RQ-VAE 配置

参数值
预训练编码器Sentence-T5 (768-dim)
DNN 编码器3 层 (512→256→128) + ReLU
潜在维度32
量化级别3 级
码本大小256 (每级)
β0.25
训练轮数20k epochs
优化器Adagrad (lr=0.4)
批大小1024
码本使用率≥80%

Transformer 配置

参数值
编码器层数4
解码器层数4
注意力头数6
头维度64
MLP 维度1024
输入维度128
Dropout0.1
词表大小1024 (256×4) + 2000 (user)
总参数量~13M
训练步数200k (Beauty/Sports), 100k (Toys)
批大小256
学习率0.01 (前 10k 步) + inverse sqrt decay

七、相关工作

工作方法与 TIGER 的差异
SASRec自注意力序列推荐学习高维嵌入 + MIPS,非生成式
BERT4Rec双向掩码语言模型双向上下文,非自回归
P5微调 LLM使用随机 ID + SentencePiece tokenizer
VQ-VAE向量量化用于迁移推荐,非生成式检索
DSI可微分搜索索引文档检索,非推荐系统
GENRE自回归实体检索实体检索,非推荐系统

八、总结

核心贡献

  1. 新范式:提出 TIGER,将推荐重新定义为生成式检索任务
  2. Semantic ID:使用 RQ-VAE 生成层次化语义 ID,替代随机原子 ID
  3. 性能提升:在 3 个 Amazon 数据集上超越所有 SOTA baseline
  4. 冷启动能力:未见物品可通过语义 ID 被检索(无需交互历史)
  5. 可调多样性:温度采样控制推荐多样性
  6. 无索引架构:Transformer 参数即索引,无需维护额外索引结构

技术影响

  • 检索范式转变:从”嵌入+ANN”到”生成式解码”
  • 语义表示:Semantic ID 可迁移至排序模型
  • 冷启动解决方案:为新物品推荐提供新思路
  • 推荐基础模型:为构建推荐系统的基础模型铺路

局限性

  • 无效 ID:自回归解码可能生成不在词表中的 ID(0.1%-1.6%)
  • 规模验证:实验在 10K-20K 物品数据集上,大规模验证不足
  • 词表爆炸:物品规模增大时,Semantic ID 词表可能过大
  • 训练复杂度:需要两阶段训练(RQ-VAE + Transformer)
  • 个性化有限:用户 ID 通过 Hashing Trick 映射到 2000 个 token

九、参考资源