论文概览
一句话定位:将生成式检索作为电商搜索召回阶段的补充(而非替代),通过聚类语义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% |
高层流程
研究脉络
本文试图弥合两个研究社区之间的鸿沟:生成式检索的学术前沿 vs 电商搜索的工业约束。
相关工作链条
提出用单个Transformer模型把query直接映射到文档ID,替代传统的索引-检索管线。但假设每个文档有唯一ID,这对数亿商品的电商场景不现实。
用残差向量量化把高维embedding压缩成层次化的离散ID。本文以此为底座,但发现标准RQ-VAE的聚类质量在电商场景下不够好。
DeepSeek提出的Group Relative Policy Optimization,不用critic model,通过对组内输出做归一化计算advantage。本文发现标准GRPO在稀疏奖励下会模式坍塌。
本文的定位:不是"用生成式替代召回",而是"作为多通道召回方案的补充"。这个定位很务实——工业系统不追求纯学术的优雅,追求的是可度量的增量收益。
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,分四个阶段渐进训练:
用(item title, SID)配对做SFT。目标是让模型学会从商品文本描述映射到语义ID。核心是建立文本理解 → 离散ID的桥梁。
用(query, SID)配对做SFT。基于用户真实搜索日志,query对应的SID来自用户点击/购买的商品。这一步让模型学会理解搜索意图映射到语义ID。
对每个query,加入曝光未点击的商品SID作为负例。防止模型只是学会"给任意query生成热门SID"。
在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 | 极弱正信号,保底 |
| Otherwise | 0.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@1 | clk@10 | exp@1 | exp@10 | pvr |
|---|---|---|---|---|---|
| CQ-SID (no RL) | 0.4370 | 0.7240 | 0.8089 | 0.9590 | 0.1799 |
| + GRPO (K=0) | 0.4638 | 0.7178 | 0.8468 | 0.9739 | 0.1697 |
| + EG-GRPO (K=1) | 0.4533 | 0.7345 | 0.8617 | 0.9771 | 0.1853 |
| + EG-GRPO (K=3) | 0.4422 | 0.7609 | 0.8623 | 0.9846 | 0.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信号而失去自我探索的能力。
在线推理
推理时,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万商品。
| Method | beam@1 | beam@10 | beam@100 |
|---|---|---|---|
| RQ-VAE(baseline) | 0.0598 | 0.2579 | 0.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-VAE | 0.4275 | 65 | baseline |
| CQ-SID | 0.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-VAE | CQ-SID | 改进 |
|---|---|---|---|
| 相同beam峰值hitrate | 0.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% 成交
工程指标: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的局限(unique ID不能scale),才能理解CQ-SID的动机。
CQ-SID的编码底座。层次化离散编码的前身,SoundStream论文中的技术。
DeepSeek的RL训练框架。EG-GRPO直接在其上做改进。理解GRPO才能理解Expert Guidance的动机。
同期对比
同样来自阿里,探索电商搜索的端到端生成式框架。本文在Related Work中引用,可以对比"端到端替代"和"补充"两种设计哲学。
工程参考
本文的在线推理部分(动态beam size、SID→Items lookup table、效率分过滤)是一个可复用的工程模式,对任何想在生产环境部署生成式召回的团队都有参考价值。