本文基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
1 引言
1.1 背景
当前天猫 APP 搜索召回机制主要由文本倒排索引、向量检索及基于 Trigger 的 I2I 召回构成。文本召回虽准确性高,但难以跨越语义鸿沟;向量检索能捕捉语义相似性,但在细粒度属性识别上存在局限;Trigger 召回依赖历史行为,易陷入信息茧房且缺乏新颖性。
随着大语言模型(LLM)的突破,生成式检索成为新范式。其核心是将商品语义编码为离散语义标识符(SID),利用大模型自回归生成相关 SID 列表,将检索转化为生成任务,从而简化系统架构。
1.2 挑战
尽管生成式检索在学术界表现优异,但在电商搜索落地仍面临四大挑战:
- 端到端生成的可行性:搜索场景对准确性要求极高,单一模型直接从上亿商品池中生成结果,面临建模充分性、马太效应及长尾覆盖等难题。
- 语义标识符(SID)设计困境:“一物一 ID"导致训练成本高、推理 Beam Search 耗时久;需在区分度与语义聚合之间取得平衡。
- 商品池动态演化:电商商品时效性强,如何高效支持模型参数的增量更新是难点。
- 召回与排序一致性:召回模型不仅需命中点击商品,更应提供下游排序可利用的高质量候选。
基于此,我们将生成式检索定位为搜索召回阶段的补充路径,并提出以下解决方案:
- 提出CQ-SID方法:基于 RQ-VAE,引入类目感知与 Query-Item 对比学习,构建平衡区分性与聚合性的语义簇标识。
- 设计渐进式训练流程:通过 Item2SID、Query2SID、(User+Query)2SID 三阶段 SFT,逐步建立个性化映射能力。
- 提出EG-GRPO方法:即专家引导的群组相对策略优化,注入真实 GT 样本以稳定稀疏奖励环境下的学习,对齐下游排序曝光。
2 方案设计
手猫搜索落地的生成式召回方案包含三个核心阶段:商品 SID 构建、用户个性化 Query 到 SID 的映射、以及对齐排序的专家引导强化学习。

2.1 商品 SID 构建
我们不追求 SID 的绝对唯一性,而是将其视为“语义簇”标识。该设计兼顾语义粒度合理性、召回效率与覆盖广度,具备以下特性:
- 语义聚合性:相似商品映射至同一 SID,允许合理范围内的挂载数量。
- 区分度保障:不相似商品映射至不同 SID。
- 层次化结构:相似特征商品拥有相同或相近的 SID 前缀。
2.1.1 模型结构
基于残差量化自编码器(RQ-VAE),引入类目约束与 Query-Item 对比学习,构建CQ-SID(Category-and-Query Constrained Semantic ID)。输入特征采用现有的 Query 和 Item 多模态向量。
(1)类目引导的残差量化模块
采用三层残差向量量化结构,码本配置为 $K_1 \times K_2 \times K_3 = 2048 \times 1024 \times 1024$。第一级为类目感知码本,选取商品数量大于阈值的二级类目(若无则取一级)作为约束,共涵盖 1711 个有效类目。训练时,已知类目商品强制使用类目标签更新码本,未知商品沿用最近邻检索。

(2)Query-Item 对比学习机制

(3)联合训练目标

2.1.2 SID 后处理


训练后的 SID 已具备高度语义相似性。通过随机后处理分割过大簇,既防止热门语义簇导致的检索偏差,又维持了 SID 前缀的层次化结构。
2.2 Query2SID 检索模型
采用渐进式训练策略,使模型逐步掌握从文本到个性化 SID 的生成能力。
2.2.1 Step1:Item-SID 映射学习
利用商品标题到 SID 的映射数据,对 Qwen2.5-0.5B 模型进行监督微调(SFT),损失函数为标准 NTP-Loss。
Step1: I2SID
- 输入:根据 item 生成对应的商品 id,item:{商品信息}
- 输出:{商品 SID}
此阶段得到基础模型 M1,使模型理解商品文本与 SID 的层次关系。
2.2.2 Step2:Query-SID 映射学习
利用 Query-Item 关联数据构造样本,每个 Query 随机采样 N 个(N=3)关联商品的 SID 作为目标。
Step2: Q2SID
- 输入:根据 query 生成对应的商品 id,query:{搜索词}
- 输出:{商品 SID}
基于 M1 继续训练得到模型 M2,建立搜索词到商品 SID 的生成能力。
2.2.3 Step3:(U+Query)-SID 学习
为适配个性化召回,加入用户性别、购买力及近期点击序列等特征。
Step3: UQ2SID
- 输入:请根据以下内容,为用户推荐商品 id。
性别:{gender};购买力:{user_power};
历史搜索词:{query_seq};历史相关类目点击商品:{rl_cate_seq_sid};
当前搜索词:{query}
- 输出:{商品 SID}
基于 M2 继续训练得到模型 M3,具备用户个性化的 Query2SID 能力。
2.2.4 Step4:对齐精排的 SID 召回
为提升下游排序选择空间,使用曝光商品集合作为参考信号,通过强化学习对齐排序效果。对模型 M3 使用 Group Relative Policy Optimization(GRPO)训练。
奖励函数 $R(o)$ 计算规则如下:

其中,$P_{pay}(x)$、$P_{clk}(x)$、$P_{exp}(x)$ 分别表示查询 $x$ 下用户实际购买、点击和曝光的商品 SID 集合,$S_{valid}$ 为合法 SID 集合。

针对稀疏奖励问题,提出专家引导的 GRPO(EG-GRPO):在每批次生成的 Group 采样中,从真实 Ground Truth 中随机采样加入作为伪生成结果,参与奖励计算与梯度更新。

通过专家引导,模型在稀疏奖励环境中获得更稳定的优化信号,最终得到模型 M4,在保证点击 Hitrate 的前提下提升曝光 Hitrate。

2.3 在线推理
在线阶段,组装用户 Query 及特征信息,通过模型 Beam Search 解码生成 Top-K 候选 SID。随后查表转换为具体商品列表。该路径融合了相关性、多样性和个性化优势,作为有效召回补充。
2.4 商品底池筛选策略
为避免全量商品池带来的噪声与低效,按效率分筛选约 2100 万商品作为初始底池。实施动态更新机制,每日将新晋高效率商品推理并挂载至相应 SID,确保时效性与质量。
3 实验与分析
3.1 SID 实验设置
数据集:基于手猫搜索真实业务数据,测试集按词频分层随机采样构建。
评价指标:主要采用 Hitrate。评估维度包括:(1)相同 Beam Size 下的 Hitrate;(2)按商品效率分截断取 Top-1K 后的 Hitrate。
基线方法:标准 RQ-VAE 模型。
消融实验:
- CQ-SID (w/o cate):移除类目约束。
- CQ-SID (w/o qi):移除 Query-Item 对比学习。
- CQ-SID:完整方法。
3.2 语义生成式召回实验结果
3.2.1 相同 Beam Size 下的对比
方案 |
beam@1 |
beam@10 |
beam@100 |
RQ-VAE |
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 |
0.0758 (+26.76%) |
0.3161 (+22.57%) |
0.6181 (+18.89%) |
完整 CQ-SID 方法在各 Beam Size 下均显著提升,beam@1 提升高达 26.76%。消融实验验证了类目约束与对比学习的协同效应。
3.2.2 Top-1K 下的对比
方案 |
beam@25 |
beam@30 |
beam@35 |
beam@60 |
beam@65 |
beam@70 |
RQ-VAE |
0.3675 |
0.3870 |
0.4016 |
0.4272 |
0.4275 |
0.4272 |
CQ-SID |
0.4370 |
0.4422 |
0.4403 |
0.4001 |
0.3911 |
0.3825 |
CQ-SID 仅需 Beam Size=30 即可达到最高 Hitrate 0.4422,相比 RQ-VAE(Beam Size=65)减少 53.85% 的计算资源,同时 Hitrate 提升 3.44%。结果表明 CQ-SID 在效率与质量间取得了更优权衡。
3.3 个性化生成式召回实验结果
加入用户个性化信息后,各方案 Hitrate 均有明显提升。
相同 Beam Size |
||||
方案 |
beam@1 |
beam@10 |
beam@50 |
beam@100 |
RQ-VAE |
0.1359 |
0.4787 |
0.6912 |
0.7513 |
CQ-SID |
0.1510 (+11.11%) |
0.5206 (+8.75%) |
0.7431 (+7.51%) |
0.8062 (+7.31%) |
Top-1K 截断 |
||||
方案 |
beam@155 |
beam@160 |
beam@190 |
beam@195 |
RQ-VAE |
0.7567 |
0.7575 |
0.7604 |
0.7607 |
CQ-SID |
0.7983 |
0.7984 |
0.7977 |
0.7975 |
在 Top-1K 截断下,CQ-SID 将 Beam Size 减少 17.95%,同时 Hitrate 提升 4.96%,进一步验证了其资源效率优势。
3.4 目标引导的强化学习实验结果
对比点击 Hitrate、曝光 Hitrate 及曝光覆盖占比(pvr@10)。
方案 |
clk@1 |
clk@10 |
exp@1 |
exp@10 |
pvr@10 |
CQ-SID |
0.1510 |
0.5206 |
0.5056 |
0.8693 |
0.4371 |
+ GRPO (K=0) |
0.1519 |
0.5196 |
0.5077 |
0.8702 |
0.4360 |
+ EG-GRPO (K=2) |
0.1524 |
0.5221 |
0.5091 |
0.8703 |
0.4377 |
+ EG-GRPO (K=4) |
0.1523 |
0.5219 |
0.5087 |
0.8711 |
0.4378 |
实验表明:
- 标准 GRPO(K=0)因稀疏奖励导致模式集中,降低了深层 Beam 的多样性。
- 引入专家引导(K=2/4)后,点击、曝光及覆盖度一致提升,实现了精确性与多样性的平衡。
- 适度专家引导即可获益,EG-GRPO 有效解决了多目标优化的难题。
3.5 Case 示例
3.5.1 个性化差异离线示例
输入 |
输出 beam@1 |
商品示例 |
性别:男 |
<s1_1388><s2_456><s3_10196003> |
|
性别:女 |
<s1_1389><s2_104><s3_112> |
|
性别:男 |
<s1_1388><s2_199><s3_10033000> |
|
3.5.2 线上曝光示例
Query:外骨骼助力行走器
红色框:生成式独占。
绿色框:生成式未召回,其他路召回。
其他:均为生成式带重召回。

SID |
挂载商品示例 |
说明 |
0217042100000007 |
|
生成式召回曝光独占商品 SID |
0217038600000138 |
|
BeamSearch 第一个 SID |
0413017200000119 |
|
BeamSearch 最后一个 SID |
3.6 线上实验
生成式召回上线采用动态 BeamSize=[20,50,100],平均总 RT 约 40ms。线上效果显著:GMV+1.15%,UCTCVR+0.40%。目前已在手猫搜索全量部署,生成式召回路的带重曝光占比达 50.25%,点击占比 58.96%,成交占比 72.63%。
4 总结与展望
本文介绍了 LLM 生成式检索在手机天猫搜索中的实践。针对电商场景挑战,提出了 CQ-SID 语义标识符构建方法及 EG-GRPO 目标引导强化学习范式。实验表明,CQ-SID 在语义与个性化召回中均显著优于基线,以更少资源实现更高命中率;EG-GRPO 则在提升点击率的同时有效对齐了排序效果。
未来将探索搜索生成式召粗一体范式,减少漏斗损失;并逐步验证端到端生成在特定垂类或长尾场景中的落地可行性。
参考链接:
[1] https://arxiv.org/abs/2605.14434







