双人成行:用强化学习协同进化的生成式关键词检索器 It Takes Two to Match: Co-Evolving Generative Retriever with Reinforcement Learning
训练查询侧与物品侧两个LLM关键词生成器,经交替GRPO强化学习协同进化,直接以倒排索引完成检索
前置知识
倒排索引与稀疏检索
倒排索引为每个词项维护包含它的文档列表,查询切词后查表取交集或并集即可快速召回候选,BM25 在其上按词频与文档长度打分排序。这类基于显式词项的方法统称稀疏检索,是搜索与广告系统的主流基础设施,广告主直接对关键词竞价。
CoGR 生成的关键词直接写入倒排索引、检索即两侧词集求交,物品侧奖励的高效计算也依赖查询侧倒排索引,不懂倒排索引就无法理解其匹配机制与工程设计。
稠密检索与生成式检索
稠密检索用双塔编码器把查询和物品映射到同一向量空间,以近邻相似度匹配,代表有 DPR、ANCE。生成式检索则让序列模型自回归地直接生成物品的语义标识符(如 DSI),用生成替代相似度搜索,但严重依赖标识符设计且面临解码扩展性与泛化难题。
论文的动机叙事和 10 个对比基线都来自这两大范式,CoGR 的定位(保留关键词接口、避开标识符设计)需要对照这两条技术路线才能看清。
GRPO(组相对策略优化)
GRPO 是一种免价值网络的强化学习算法:对同一提示采样一组回答,各自计算奖励后在组内做均值-方差归一化,得到相对优势用于策略梯度更新,省去 PPO 的 critic 模型。因奖励可验证的任务中实现简单、效果好而被广泛采用。
CoGR 两侧生成器的 RL 阶段都用 GRPO 训练:每条查询或物品采样多个关键词集做组内归一化,这是理解其训练流程的基础。
精确率、召回率与 F1
对查询 $q$,精确率 $P(q) = |rel(q) \cap I_{ret}(q)| / |I_{ret}(q)|$ 衡量召回集中相关物品的占比,召回率 $R(q) = |rel(q) \cap I_{ret}(q)| / |rel(q)|$ 衡量相关物品被找回的比例,$F1 = 2PR/(P+R)$ 是二者的调和平均。检索是漏斗第一环、错误不可逆,必须同时兼顾查准与查全。
F1 既是 CoGR 两侧共享的优化目标(查询侧直接奖励、物品侧边际奖励),也是论文主实验表与所有消融表的核心评价指标。
反事实边际贡献
反事实评估问的是:假如把某个物品的关键词换成候选集,全局检索质量会变化多少?做法是比较参考索引与只替换该物品关键词的反事实索引下所有查询 F1 之和,差值即该物品关键词的边际贡献。差分形式使 F1 不变的查询相互抵消,只需计算受影响查询。
物品侧奖励完全建立在这个思想上,是论文最巧妙的奖励设计;消融中的 Transposed F1 变体正是它的对照组。
SFT(监督微调)
SFT 用(输入,目标输出)数据对直接训练 LLM 模仿目标输出,是 RL 之前常用的能力初始化手段。本文先用基础 LLM 为每个物品生成 10 个关键词,再把每条查询的相关物品中出现频率最高的 15 个关键词作为查询侧监督目标,使两侧初始就共享关键词词汇。
Phase 1 的 SFT 构造方式决定了两侧关键词空间的初始对齐度和初始召回率,消融显示去掉 SFT 会让 F1 从 0.3963 跌到 0.3751。
研究动机
检索是现代搜索与广告系统的第一环:给定查询,要从大规模物品库中筛出候选集交给下游排序与竞价,且第一环的错误基本不可逆——没被召回的相关物品无法被后续模型挽回,无关候选又会加重下游负担。业界已大量引入 LLM 做查询扩展、数据合成与检索反馈训练,但这些方法几乎都只优化查询侧生成器,最终匹配仍交给一个独立的下游检索器。三条既有路线各有硬伤:稀疏检索(BM25、SPLADE)依赖字面重叠、难捕捉深层语义;稠密检索(DPR、ANCE)需要维护向量索引基础设施;生成式检索(DSI 等)直接生成物品标识符,但严重依赖标识符设计,且面临解码可扩展性和泛化问题。作者内部的 APP 市场搜索场景中每条查询平均约有 1000 个相关物品,这种多对多设置下只调一侧表示收益很快见顶:最强的 DeepRetrieval-4B 在该数据上 F1 仅 0.2750。
本文的目标是本文要回答一个很自然的问题:能否不再把 LLM 当作查询侧的辅助增强器,而是直接训练 LLM 为查询和物品两侧构建检索表示,让两侧表示直接匹配完成检索?具体目标有三。其一,训练查询侧和物品侧两个 LLM 关键词生成器,各自生成紧凑的关键词集合(每侧不超过 30 个),使语义相关的查询—物品对在关键词空间中可靠地产生交集。其二,保持与现有关键词倒排索引基础设施的兼容性——生成的关键词直接作为索引项,通过倒排索引匹配并用 BM25 排序,无需向量库或特殊解码器,可即插即用进现有系统。其三,在统一的查询到物品检索 F1 目标下让两侧共同进化:通过交替强化学习使两个关键词空间逐步对齐,最终在内部 APP 市场数据和公开 WANDS 商品搜索基准上同时超越稀疏、稠密、生成式三类共 10 个基线。
与已有工作不同的是,已有把 LLM 与检索结合的工作基本遵循固定套路:训练或提示 LLM 生成伪文档、改写查询或扩展关键词,再把产物喂给一个固定的下游检索器。DeepRetrieval 是其中最接近的——它用检索指标作奖励、以 RL 训练查询改写模型,但物品侧表示完全冻结。本文的独特切入点是把匹配的'两端'都变成可学习的生成器:查询和物品各有一个 LLM 关键词生成器,二者在训练中互为对方的检索环境——更新一侧时冻结另一侧构建的倒排索引,然后交替迭代。这种'协同进化'设计配合反事实边际奖励,让两侧关键词空间在共享 F1 目标下互相适应。据作者所知,这是首个把双侧生成式关键词检索统一进交替 RL 框架的工作,同时保留了与既有倒排索引系统的兼容性,也呼应了自进化 LLM 系统中多角色互相博弈提升的研究脉络。
核心方法
直觉上,如果查询和物品由同一门'语言'生成关键词,相关的查询—物品对自然会撞出交集,CoGR 就是让两个 LLM 学会这门共同语言。形式化地:给定查询 $q$ 和物品 $i$,两侧生成器分别产出 $S_q = G_q(q)$、$S_i = G_i(i)$,检索集为 $I_{ret}(q) = \{i : (S_q \cup \{q\}) \cap (S_i \cup \{i\}) \neq \emptyset\}$,即关键词有交集的物品被召回,再把关键词当词袋、按 BM25 打分排序。训练分两阶段:阶段一用监督微调建立对齐的关键词空间——为每个物品用基础 LLM 采样 10 个关键词,并把每条查询的相关物品关键词中最频繁的 15 个作为查询侧 SFT 目标,保证初始就有足够召回、RL 才有信息量足够的奖励信号;阶段二做协同进化强化学习,交替用 GRPO 优化两侧:查询侧直接以检索 F1 为奖励,物品侧以反事实边际奖励为信号,每次更新时冻结对侧的倒排索引,形成稳定的检索环境,共交替 5 轮,基座为 Qwen3-4B-Instruct 与 Qwen3-1.7B。
核心创新是'两侧协同进化 + 非对称奖励设计'。与 DeepRetrieval 等只训查询侧的方法本质不同,CoGR 把物品侧也变成可优化的一方,且两侧优化的是同一个查询到物品的检索 F1 目标。查询侧奖励很直接:$R_q(S_q) = F1(I_{ret}(q), rel(q))$,若关键词数超过预算 $K_{max}=30$ 则奖励置 0。物品侧的关键设计是反事实边际奖励:冻结查询索引后,构造一个只把物品 $i$ 的关键词替换为候选集 $S_i$、其余物品全部不变的反事实索引,奖励为 $$R_i(S_i) = \sum_{q \in Q} F1(I^{cand}_{ret}(q; S_i), rel(q)) - \sum_{q \in Q} F1(I^{ref}_{ret}(q), rel(q))$$(超预算则为 $-1$)。这个差分把单个物品关键词对全局检索质量的贡献从其他物品中隔离出来;而且 F1 不变的查询在差分中自动抵消,配合查询侧倒排索引与缓存的检索结果定位受影响查询,只需计算这些查询的贡献,奖励计算非常高效。
方法步骤详情
整个流程分三步。第一步 SFT 初始化:用基础 LLM $G_0$ 为每个物品 $i$ 采样 $M=10$ 个关键词得到 $S_i$,据此训练物品侧生成器 $G_i^{SFT}$;对每条查询 $q$,收集其相关物品的关键词多重集 $B_q = \cup_{i \in rel(q)} S_i$,取出现频率最高的 $N=15$ 个作为查询侧目标 $S_q$,训练得到 $G_q^{SFT}$——这样相关查询—物品对天然共享关键词。第二步查询侧 RL:由物品侧模型构建冻结倒排索引,对每条查询采样多个关键词集(上限 $K_{max}=30$),经关键词匹配检索、以公式 2.2 的 F1 奖励做 GRPO 更新,每轮训练 10 个 epoch。第三步物品侧 RL:由更新后的查询模型构建冻结查询索引,对物品 $i$ 的候选关键词集构造反事实索引,按公式 2.3 计算边际贡献奖励后 GRPO 更新,每轮 5 个 epoch;随后重建物品索引回到第二步,如此交替 5 轮。训练基于 verl 框架,直接生成关键词、不用思维链以避免额外推理开销;消融证明每一步设计都不可少。
技术新颖性
技术新颖性体现在四点。其一,问题形式化新:把'检索表示'本身定义为两侧 LLM 生成的关键词集合,匹配退化为倒排索引上的集合求交,绕开了生成式检索的标识符设计与自回归解码扩展性难题,也无需稠密向量基础设施。其二,训练范式新:两侧生成器互为对方的检索环境,交替优化、逐步对齐——论文实验证明这是性能来源,固定物品侧的 CoGR 变体与 DeepRetrieval 明显落后于完整 CoGR。其三,奖励设计巧:物品侧反事实边际奖励在数学上把单个物品的贡献从全局目标中隔离,工程上利用差分抵消与查询索引缓存,把奖励计算从'全库重算 F1'降为'只算受影响查询'。其四,框架灵活:奖励可换成加权 F-measure 或下游业务指标(如无关广告比例、收入),RL 算法可从 GRPO 换成 PPO,论文还指出该范式与自进化 LLM 系统的思想相通。
实验结果
主实验对比 10 个基线:稀疏的 BM25、SPLADE-v2,稠密的 DPR、ANCE、Qwen3-4B embedding(零样本及 ANCE 微调),生成式的 DSI、DSI-QG、RIPOR、DeepRetrieval-4B。内部 APP 市场数据上,CoGR-4B 全量 F1=0.3963(P=0.3976,R=0.4569),比最强基线 ANCE-Qwen4B 的 0.3575 相对提升 10.9%;WANDS 上 F1=0.6819(P=0.7940),相对提升 36.1%,MRR@100=0.9225、F1@100=0.4778 亦最佳(NDCG@100=0.7146 略低于 ANCE-Qwen4B 的 0.7955)。训练动态上,验证 F1 从协同进化前的约 0.16 涨到五轮后的约 0.40,首轮增益最大。消融(Table 3)显示三个设计均必要:Transposed F1 变体 0.3743、共享生成器 0.3798、去 SFT 0.3751,皆低于完整版但保持稳定。关键词演化(Figure 4)显示 unigram 占比从 37% 降到 13%、三词以上短语从 12% 升到 31%,两侧词表 3-4 轮后收敛。信息消融(Table 4)中去掉物品描述 F1 降至 0.3759,查询侧加入搜索结果则升至 0.4379。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 内部 APP 市场搜索检索(约 3.96 万应用,每查询约 1000 相关物品) | F1(全量召回集宏平均) | 0.3963(CoGR-4B) | 0.3575(ANCE-Qwen4B,最强基线) | 相对提升 10.9% |
| WANDS 商品搜索检索(Wayfair,4.3 万商品,每查询约 200 相关物品) | F1(全量召回集宏平均) | 0.6819(CoGR-4B) | 0.5012(ANCE-Qwen4B,最强基线) | 相对提升 36.1% |
| 训练设计消融(Internal 数据,Qwen3-4B) | F1 | 0.3963(完整 CoGR) | 0.3798(共享生成器)/ 0.3751(无 SFT)/ 0.3743(Transposed F1 奖励) | 相对提升 4.3%~5.9%,证明双侧协同进化、独立生成器与 SFT 初始化三者缺一不可 |
| 信息可用性消融(Internal 数据,Qwen3-4B) | F1 | 0.4379(查询侧提示加入搜索结果) | 0.3963(默认)/ 0.3759(去掉物品描述) | 外部信息相对提升 10.5%,说明 CoGR 能自然受益于外部语义信息 |
局限与改进
作者承认的方向性局限:排序阶段仍用生成关键词上的 BM25,属于够用但非最优的选择;奖励目前只覆盖相关性 F1,尚未接入广告系统的无关广告比例、收入增益等业务目标。我的补充观察:其一,实验物品库规模只有约 4 万(Internal 39,600 个应用、WANDS 42,994 个商品),反事实奖励需为每个采样关键词集重建部分索引并检索,虽然差分加缓存设计缓解了计算量,但在工业级亿级物品库上的可扩展性未经验证;其二,WANDS 只有 430 条训练查询、每条约 200 个相关物品,Internal 的标注来自内部系统,二者都不能代表开放域检索(如 MS MARCO 式的稀疏标注场景);其三,两侧交替 RL 的收敛没有理论保证,论文靠经验观察动态稳定性,交替轮数(5 轮)与两侧 epoch 分配(10:5)等超参较为启发式;其四,SFT 目标依赖相关性标注构造查询侧关键词,无标注的冷启动场景如何初始化未讨论;其五,全集宏平均 F1 的评价协议与常见的截断式 IR 指标不完全可比,跨论文对比需谨慎。
独立分析的弱点
独立分析几个弱点。第一,物品侧奖励的信用分配粒度过细:反事实奖励评估的是'替换单个物品关键词'的边际贡献,而单个物品往往只影响极少数查询的 F1,奖励信号稀疏且方差大;论文用受影响查询剪枝解决了计算量,但未讨论方差对训练稳定性的影响,可考虑按物品簇批量替换或引入组间基线。第二,匹配是硬交集:$I_{ret}(q) = \{i : (S_q \cup \{q\}) \cap (S_i \cup \{i\}) \neq \emptyset\}$ 意味着共享一个宽泛词(如 game)即被召回,候选集易爆炸且受倒排截断影响可能漏掉相关物品,改进方向是学习软性词权重(类似 SPLADE 的 term weighting)替代硬交集。第三,标签噪声放大:Internal 每查询约 1000 个相关物品的标注很可能来自行为日志,隐式假阴性会同时污染两侧奖励,可引入去噪或倾向得分校正。第四,双生成器意味着双倍训练与推理成本,1.7B 与 4B 在 WANDS 上 F1 相差 0.1134(0.5685 vs 0.6819),提示方法对模型规模较敏感,且交替预算(10:5 epoch)的敏感性缺少消融。
未来方向
作者明确提出的方向有二:一是把奖励从相关性 F1 扩展到下游业务目标,如无关广告比例与收入增益,让检索阶段直接对商业指标负责;二是设计比 BM25 更强的关键词排序模块,进一步提升整体检索质量。基于本文成果还可自然延伸:把'+Search Results'消融(F1 从 0.3963 提至 0.4379)系统化,让查询侧生成器接入搜索日志、用户画像等外部证据,形成带工具调用的检索代理;将协同进化 RL 与自进化 LLM 系统结合,引入排序器、标注器等更多角色互为环境共同进化;探索物品侧关键词的层次化生成(先类目后细粒度)以改善大规模索引下的可扩展性;用加权 F-measure 或 learning-to-rank 奖励替代标准 F1,适配精确率优先的广告场景;在 RAG 场景验证 CoGR,用下游答案质量作为终端奖励反向训练两侧关键词生成器,与 RLVR 的研究脉络衔接;此外在多语言、多模态物品(图片、视频)上扩展关键词空间也值得尝试。
复现评估
复现难度中等偏高。有利条件:WANDS 是公开数据集(Wayfair 商品搜索,430/50 条训练/验证查询、42,994 个商品);基座模型 Qwen3-4B-Instruct 与 Qwen3-1.7B 开源;RL 训练基于开源的 verl 框架,GRPO 算法公开;提示词模板在附录 Figure 5 给出,关键超参披露完整($M=10$、$N=15$、$K_{max}=30$,交替 5 轮,查询侧每轮 10 epoch、物品侧 5 epoch)。不利条件:核心的内部 APP 市场数据集(13,500/1,500 条查询、39,600 个应用、每查询约 1000 个相关物品)不可获取,+10.9% 这一半性能故事无法独立验证;论文未提及训练或推理代码开源;物品侧反事实奖励需要维护查询侧倒排索引与检索结果缓存,工程细节仅在附录 D 简述,复现奖励计算需要相当的系统功底;算力上需同时训练两个 GRPO 策略,4B 配置预计需要多卡 A100 级资源。总体判断:在 WANDS 上复现主结果可行,完整复现内部实验不现实。
论文图表