论文概览

一句话定位:将生成式检索作为电商搜索召回阶段的补充(而非替代),通过聚类语义ID(CQ-SID)降低beam search复杂度,再用RL(EG-GRPO)对齐下游排序目标。最终在淘宝APP上线,GMV +1.15%。

本文来自阿里巴巴,针对工业电商搜索中生成式检索落地难的三个核心痛点做逐一突破:

📦

海量动态商品目录

数亿商品,每日更新。传统DSI方法要求每个商品有唯一ID,不适合工业规模。

严格延迟要求

生产环境 beam search 必须在毫秒级完成。聚类ID设计大幅压缩搜索空间。

🎯

召回与排序目标对齐

召回只看相关性不够,要预测用户最终会点击/购买什么。

核心贡献速览

贡献 问题 方案 效果
CQ-SID 传统DSI的unique ID方案在大规模商品集上不可行 聚类语义ID(RQ-VAE + 类别约束 + 对比学习) beam@1 hitrate 提升 +26.76%
渐进式训练 生成式模型直接从query学到SID很难 4阶段渐进训练:item→SID → query→SID → 负采样 → 个性化 稳定的训练收敛
EG-GRPO 标准GRPO在稀疏奖励下模式坍塌 注入K个ground-truth样本作为Expert Guidance clk@10 +5.09%, pvr +13.88%
在线部署 生成式召回从无到有的工业落地 动态beam size [20,50,100], 8 GPU, 200+ QPS GMV +1.15%, 点击渠道占比 58.96%

高层流程

Query输入用户搜索词 + 画像
Beam Search生成Top-K SIDs
SID→Item映射lookup table
物品过滤效率分筛选
下游Ranking精排/重排
✦ ✦ ✦

研究脉络

本文试图弥合两个研究社区之间的鸿沟:生成式检索的学术前沿 vs 电商搜索的工业约束。

相关工作链条

🔗 DSI (Tay et al., 2022) — 生成式检索的起点

提出用单个Transformer模型把query直接映射到文档ID,替代传统的索引-检索管线。但假设每个文档有唯一ID,这对数亿商品的电商场景不现实。

关键缺口:unique ID方案无法scale到电商规模,且无法处理新商品的增量加入。
🔗 RQ-VAE (Zeghidour et al., 2021; Rajput et al., 2023) — 语义ID编码

用残差向量量化把高维embedding压缩成层次化的离散ID。本文以此为底座,但发现标准RQ-VAE的聚类质量在电商场景下不够好。

关键缺口:无监督的RQ-VAE没有利用电商特有的类目体系和query-item交互信号。
🔗 GRPO (Shao et al., 2024) — 无Critic的RL训练

DeepSeek提出的Group Relative Policy Optimization,不用critic model,通过对组内输出做归一化计算advantage。本文发现标准GRPO在稀疏奖励下会模式坍塌。

关键缺口:GRPO在生成式召回场景下缺乏exploration,导致beam depth>1时效果反而变差。

本文的定位:不是"用生成式替代召回",而是"作为多通道召回方案的补充"。这个定位很务实——工业系统不追求纯学术的优雅,追求的是可度量的增量收益。

✦ ✦ ✦

CQ-SID · 语义ID编码

设计理念

标准的 RQ-VAE 对item做无监督聚类,本文提出 Category-and-Query constrained Semantic ID (CQ-SID),增加两类监督信号:

  • 类别约束:第一级codebook直接用商品的类目ID作为量化索引(1711个有效类目),强制SID的顶层语义对齐电商类目体系
  • Query-Item对比学习:让query和正例item的SID在embedding空间中靠近,负例远离

模型架构

三层残差向量量化(RQVQ),codebook尺寸 2048 × 1024 × 1024。

第一级量化:已知类目的商品强制使用其类目ID作为量化索引,未知类目的商品走标准最近邻量化。后两级codebook使用标准EMA更新,辅以codebook restart策略防止坍塌。

SID后处理

为了防止某些热门聚类ID被过多的商品命中(导致召回偏向热门商品),设置阈值 Tmax=50。当某个SID下的商品数超过50时,随机拆分成多个子组,用3位后缀标记。保持SID前缀的层次结构不变。

关键trade-off:聚类ID设计和unique ID设计的本质差异在于——一个SID命中时召回的是「一组语义相似的商品」而不是「一个特定商品」。这导致召回的候选集更大、覆盖率更高,但也丢失了精度(需要下游ranking来弥补)。这是"召回补充"而非"召回替代"定位的根源。

渐进式Query-to-SID学习

基于Qwen2.5-0.5B,分四个阶段渐进训练:

Stage 1Item→SID SFT
Stage 2Query→SID SFT
Stage 3负采样SFT
Stage 4个性化微调
Stage 1: Item→SID Mapping

用(item title, SID)配对做SFT。目标是让模型学会从商品文本描述映射到语义ID。核心是建立文本理解 → 离散ID的桥梁。

Stage 2: Query→SID Learning

用(query, SID)配对做SFT。基于用户真实搜索日志,query对应的SID来自用户点击/购买的商品。这一步让模型学会理解搜索意图映射到语义ID。

Stage 3: 负采样SFT

对每个query,加入曝光未点击的商品SID作为负例。防止模型只是学会"给任意query生成热门SID"。

Stage 4: 个性化微调

在query中拼接用户画像和近期行为特征,让模型生成用户特化的SID。这里有个微妙之处:召回阶段的个性化不是为了精排阶段推重复,而是为了"不同用户看到不同候选池"。

全部SFT使用标准next-token prediction loss。

EG-GRPO · 对齐Ranking目标

为什么GRPO在这里不够用?因为召回场景的reward信号非常稀疏(只有少数beam能命中点击/购买样本),导致标准GRPO倾向于将概率集中到少量高置信度的SID上,牺牲了beam depth>1时的多样性。

Reward设计

输出o的位置Reward含义
o ∈ Ppay (购买商品SID)1.0最高等级信号
o ∈ Pclk (点击商品SID)1.0同样高优先级
o ∈ Pexp (曝光SID)0.5中等信号,至少被用户看到过
o ∈ Svalid (有效SID但未交互)0.1极弱正信号,保底
Otherwise0.0无奖励

Advantage通过组内归一化计算:
A(o_i) = (R(o_i) - mean(R)) / (std(R) + ε)

Expert Guidance 的核心机制

标准GRPO的优化目标对所有生成输出一视同仁。EG-GRPO的关键改动:在reward计算时,向group中注入K个来自真实用户行为的SID作为Expert samples,但不计入policy gradient更新。

直觉解释:Expert Guidance就像在考试时给学生的草稿纸上写几个标准答案——学生不能直接抄(expert样本不计入梯度),但可以用它们来校准自己对"什么是好答案"的判断(expert样本参与group的mean/std计算)。这稳定了advantage估计,防止了sparse reward下的mode collapse。

方法clk@1clk@10exp@1exp@10pvr
CQ-SID (no RL)0.43700.72400.80890.95900.1799
+ GRPO (K=0)0.46380.71780.84680.97390.1697
+ EG-GRPO (K=1)0.45330.73450.86170.97710.1853
+ EG-GRPO (K=3)0.44220.76090.86230.98460.2049

beam@10, clk=click hitrate, exp=exposure hitrate, pvr=exposure coverage ratio

解读:标准GRPO (K=0) 让clk@1涨但clk@10跌——证实了mode collapse假设。EG-GRPO (K=3) 在保持top-1竞争力的同时,clk@10提升 +5.09%,pvr提升 +13.88%,说明expert guidance有效恢复了beam depth上的多样性。

🔵 基于证据的推断

EG-GRPO的K值是一个重要的超参。K=1已经能缓解mode collapse(clk@10不跌反涨),K=3达到最佳trade-off。更大的K可能会使模型过分依赖expert信号而失去自我探索的能力。

推断 本文没有做K>3的ablation,这是一个未探索的维度。

在线推理

推理时,query + 用户画像拼成prompt,模型通过beam search生成Top-K SID序列。通过预构建的SID-to-Items lookup table映射回具体商品。全量商品库(数亿)经过效率分过滤留下约2100万个商品作为生成式召回池。这个池每日动态更新——新品通过CQ-SID推理后加入到对应的语义聚类中。

关键工程细节:CQ-SID的聚类本质使得增量商品不需要重新训练模型,只需要对新增商品做编码 → 分配到已有SID即可。这与DSI类方案(需要增量学习新ID embedding)形成鲜明对比。

✦ ✦ ✦

语义召回 · 相同Beam对比

实验数据来自某头部电商平台的真实搜索日志,训练集3750万条query-item交互pair,在线全量池约2100万商品。

Methodbeam@1beam@10beam@100
RQ-VAE(baseline)0.05980.25790.5199
CQ-SID (w/o Cate)0.0680 (+13.71%)0.2870 (+11.28%)0.5578 (+7.29%)
CQ-SID (w/o QI)0.0596 (-0.33%)0.2691 (+4.34%)0.5652 (+8.71%)
CQ-SID (full)0.0758 (+26.76%)0.3161 (+22.57%)0.6181 (+18.89%)
🟢 直接证据:类别约束 + 对比学习有互补效果

去除类别约束(w/o Cate)在beam@1仍有+13.71%提升,说明对比学习本身就能提高语义对齐质量。去除对比学习(w/o QI)在beam@1几乎没增益,但在beam@100有+8.71%——说明对比学习对"精确命中"帮助更大,类别约束对"覆盖面"帮助更大。

Top-1K截断对比

不同SID方案每个ID关联的商品数不同,直接比beam size不够公平。因此固定候选集大小到1000个商品来比较。

Method峰值Hitrate达到峰值所需Beam数效率
RQ-VAE0.427565baseline
CQ-SID0.4422 (+3.44%)30 (-53.85%)🔑 beam数减半但有更好hitrate

工业意义:beam size从65降到30,意味着推理延迟降低 >50%。对200+ QPS的在线系统来说,这个效率提升是工程落地的关键。

一个有趣的现象:CQ-SID在beam > 30后hitrate反而下降。论文解释为:SID聚类质量高,小beam已经能覆盖关键语义,继续增加beam更多引入尾部噪声,被下游效率分筛选后反而降低了有效候选的质量。

个性化召回

在query中加入用户画像和近期行为,让模型生成用户特化的SID序列。CQ-SID在个性化场景下保持优势:

对比项RQ-VAECQ-SID改进
相同beam峰值hitrate0.7607 (b@195)0.7984 (b@160)+4.96% hitrate, -17.95% beam

CQ-SID在beam size从1到100的各个尺度上,相对RQ-VAE保持7%-11%的稳定提升。

EG-GRPO对齐效果

EG-GRPO的消融实验验证了三件事:

⚠️ 标准GRPO → Mode Collapse

K=0时clk@1提升但clk@10下降,pvr下降。独立证实了"sparse reward导致exploitation-dominant"的假设。

✅ EG-GRPO (K=3) → 多样性恢复

clk@10 +5.09%,pvr +13.88%。expert guidance有效引导模型探索更有意义的beam位置。

🔑 商业指标提升

对比无RL的CQ-SID,EG-GRPO把pvr从0.1799提升到0.2049。pvr表示被推荐的商品品类多样性——高pvr意味着用户有更多选择被曝光,对长期用户体验和平台GMV都有意义。

Online A/B Test

在天猫APP搜索产品线全量部署,两周在线A/B测试:

指标提升
GMV(成交额)+1.15%
UCTCVR(用户转化率)+0.40%
🟢 直接证据:生成式召回渠道的效果贡献

在所有召回渠道中,生成式召回渠道贡献了:
50.25% 曝光 · 58.96% 点击 · 72.63% 成交

直接证据 线上A/B测试,2周统计显著

工程指标:8块GPU,动态beam size [20,50,100],200+ QPS,端到端延迟 ~40ms,服务可用性99.9%。

✦ ✦ ✦

批判性分析

🔴 尚未验证:通用性

所有实验在单一电商平台(天猫)上完成。CQ-SID依赖商品类目体系来约束第一级量化——对于没有成熟类目体系的数据集(如网页搜索、文档检索),第一级强制类目索引无法直接复用。类别约束是方案特色,也是迁移的枷锁。

🟡 部分证据:SID聚类质量 vs 精度的trade-off

论文充分展示了CQ-SID的覆盖面优势,但对精度损失避而不谈。聚类SID的设计意味着一个SID对应多个商品,beam命中的一个SID可能同时命中好商品和差商品。论文没有分析生成式召回传来的候选在精排阶段的"通过率"是否有变化。

🟡 部分证据:EG-GRPO的K值敏感性

仅测试了K=0,1,3三档。K=5或K=10效果如何?K的取值是否与beam size有关?K与beam size的比例关系是否存在经验法则?这些问题未回答。

🔵 推断:渐进式训练的必要性

论文分4个Stage做SFT,但没有做ablation study验证每个Stage是否都真正必要。Stage 1 (item→SID) 和 Stage 2 (query→SID) 是否可以合并?Stage 3 (负采样) 的效果单独拆不开。训练管线复杂度的代价是调参和debug的工程成本。

🔵 推断:Qwen2.5-0.5B的选择动机

选择0.5B模型显然是出于延迟考虑(~40ms端到端),但论文没有讨论模型容量与召回质量的关系。更大的模型(如1.5B或3B)是否能进一步提升hitrate?延迟成本是否值得?如果换成更小的模型(如100M参数蒸馏版本)会怎样?

🔴 尚未验证:生成式召回的增量价值vs已有通道

论文提到"多通道召回方案",其中生成式召回是补充通道。但传统召回通道(稀疏/稠密检索)在这个系统中各自的贡献占比是多少?生成式召回带来的增量是否与已有通道高度重叠?72.63%的成交占比看着很高,但可能只是"大池子效应"——因为生成式召回池里的商品本来就有较高效率分。

✦ ✦ ✦

启发与意义

这篇文章最重要的洞察不是技术上的,而是设计哲学上的:生成式检索要做 recall-stage supplement 而不是 end-to-end replacement。 这种务实定位让它从众多"用生成式替代一切"的论文中脱颖而出。

对本领域的启发

🔗

召回+排序的RL对齐

EG-GRPO是少有的"把RL用在召回阶段并和下游排序目标对齐"的工作。大多数工作要么RL用在排序阶段,要么召回和排序各自独立优化。这个思路可以扩展到其他多阶段搜索系统。

🏗

聚类ID的工业设计空间

CQ-SID打开了"非唯一ID的生成式检索"的设计空间。类别约束、对比学习、后处理拆分——这套方法论可以推广到任何有层次化标签体系的检索场景(医疗、法律、电商)。

📏

Beam Search效率优化的新角度

从"优化beam search算法本身"转向"优化被搜索的空间结构"——减少语义搜索空间比优化搜索算法更有效。CQ-SID的hitrate@b=30超过RQ-VAE的b=65就是证明。

与你背景的关联

💡 你在1688做电商搜索:这篇文章的SID聚类 + 多通道召回补充的设计框架,可以迁移到B2B搜索场景(类目体系不一样,但思路一致)。

💡 你做CTR/CVR模型:EG-GRPO在召回阶段引入ranking signal的思路,反过来也可以——精排模型是否可以利用召回阶段的SID结构信息来做更好的特征?

💡 你做auto research:这篇论文是"从学术idea到工业落地"的完整案例,可以纳入Research Radar的"工业落地论文"收藏类别。

✦ ✦ ✦

延伸阅读

前置必读

DSI — Differentiable Search Index (Tay et al., 2022)

生成式检索的鼻祖。理解了DSI的局限(unique ID不能scale),才能理解CQ-SID的动机。

arXiv: 2202.06991
RQ-VAE — Residual Quantized VAE (Zeghidour et al., 2021)

CQ-SID的编码底座。层次化离散编码的前身,SoundStream论文中的技术。

GRPO — Group Relative Policy Optimization (Shao et al., 2024)

DeepSeek的RL训练框架。EG-GRPO直接在其上做改进。理解GRPO才能理解Expert Guidance的动机。

arXiv: 2402.03300

同期对比

OneSearch (Chen et al., 2025)

同样来自阿里,探索电商搜索的端到端生成式框架。本文在Related Work中引用,可以对比"端到端替代"和"补充"两种设计哲学。

arXiv: 2509.0xxxx

工程参考

Semantic IDs + Beam Search的工程落地

本文的在线推理部分(动态beam size、SID→Items lookup table、效率分过滤)是一个可复用的工程模式,对任何想在生产环境部署生成式召回的团队都有参考价值。

✦ ✦ ✦