Command Palette
Search for a command to run...
匹配需双管齐下:基于强化学习的协同进化生成式检索器
匹配需双管齐下:基于强化学习的协同进化生成式检索器
Runpeng Dai Kaili Huang Changsung Kang Ciya Liao
摘要
检索是现代搜索与广告系统的第一阶段,负责从海量物品库中筛选候选集,供下游排序与竞价使用。近期研究越来越多地利用大语言模型(LLM),通过查询扩展、数据合成和检索反馈训练来改进检索。然而,生成组件通常仅用于查询侧增强,最终匹配仍交由下游检索器完成。本文提出 CoGR,一个训练 LLM 直接在查询侧和物品侧构建检索表示的检索框架。两侧生成器各自产生一组紧凑的关键词,通过倒排索引直接匹配,从而保持与现有基于关键词的检索基础设施的兼容性。CoGR 采用两阶段训练流程:监督微调首先建立对齐的关键词空间,随后协同进化强化学习利用 GRPO,交替优化查询侧和物品侧生成器,每次以对方冻结的索引为参照。两侧均优化相同的查询到物品检索 F1 目标:查询侧直接获得检索 F1,物品侧则接收一个反事实边际奖励,衡量其生成的关键词所引起的查询侧 F1 变化。在 10 个具有代表性的稀疏、稠密和生成式基线方法上,CoGR 在内部应用市场数据集和公开的 WANDS 基准上均取得了最佳性能,相较最强基线分别将 F1 提升了 10.9% 和 36.1%。进一步分析表明,训练过程中存在稳定的协同进化,且查询与物品关键词空间的对齐程度不断提高。
一句话总结
北卡罗来纳大学教堂山分校与苹果公司的研究者提出 CoGR,一种检索框架,由 LLM 为查询和项目分别生成关键词,通过倒排索引进行匹配,并借助 GRPO 强化学习协同演化,利用直接与反事实边际奖励优化检索 F1,在 APP 应用市场数据集上取得 10.9% 的最优 F1 提升,在 WANDS 上取得 36.1% 的提升。
核心贡献
- CoGR 是一种生成式检索框架,LLM 直接为查询和项目生成关键词集合,从而支持通过倒排索引实现端到端匹配,无需下游检索器。
- 该框架采用两阶段训练流程:首先通过监督微调对齐关键词空间,然后在共享检索 F1 目标下,利用 GRPO 强化学习交替优化查询与项目生成器,对方一侧的索引保持冻结。
- 在内部 APP 应用市场数据集和公开 WANDS 基准上的实验表明,CoGR 优于十种稀疏、稠密与生成式基线,相较最强基线 F1 分别提升 10.9% 和 36.1%,分析结果证实了稳定的协同演化以及逐渐对齐的查询-项目关键词空间。
引言
检索是搜索与推荐系统中至关重要的第一阶段,此阶段的错误不可逆转:遗漏的项目无法在后续得到恢复,而不相关的候选项则会加重下游排序的负担。传统词法方法如 BM25 依赖精确的词项匹配,但难以处理深层语义关系;稠密检索将查询和项目映射到连续向量空间;生成式检索则自回归地预测标识符,但面临可扩展性和泛化方面的挑战。近期工作利用大语言模型(LLM)通过查询扩展或关键词生成来改进检索,但这类方法通常仅训练查询侧,且仍依赖独立的检索器进行匹配。作者提出 CoGR,一种协同演化的生成式检索框架,训练独立 LLM 为查询和项目生成紧凑的关键词集合,从而支持通过倒排索引进行直接匹配。他们通过两阶段训练流程来应对对齐两个关键词空间的核心挑战:监督微调初始化对齐的表示,随后使用 GRPO 进行交替强化学习,利用共享的检索 F1 奖励在各侧基于冻结的对侧索引进行优化,使关键词空间逐步协同适应。
数据集
作者使用两个工业搜索数据集,两者均包含每个查询对应的多个相关项目,以更好地反映实际检索场景。
-
数据来源与构成
- 内部 APP 应用市场数据集:去标识化、随机采样的用户查询;每个项目为一个应用,由其标题和描述表示。
- WANDS (Wayfair):一个公开的产品搜索数据集,每个项目为一个产品,同样由其标题和描述表示。
-
各子集的关键细节
- 两个数据集均提供(查询,项目)对的分类相关性标注。
- 标注被二值化为相关与不相关两类(详见附录 A)。
- 训练和验证均保留完整的项目集合。
- 数据集统计信息(包括每个查询的相关项目数)总结于论文表 1 中。
- 文中除二值化之外未描述显式的大小或过滤规则;内部数据集为随机采样,WANDS 按原样使用。
-
数据处理与使用
- 数据仅沿查询维度划分,因此训练集和验证集包含不相交的查询,但共享相同的项目目录。
- 这种划分确保验证性能反映对未见查询的泛化能力。
- 未提及裁剪或额外的元数据构建;项目使用其标题和描述文本。
- 论文未指定混合比例或其他训练集划分细节,仅提及基于查询的划分方式。
方法
作者提出 CoGR,一种为查询和项目均生成关键词以执行基于关键词匹配的检索框架。给定查询 q∈Q 和项目 i∈I,两个独立的关键词生成器 Gq 和 Gi 分别产生关键词集合 Sq=Gq(q) 和 Si=Gi(i)。检索得到的项目集合定义为 Iret(q)={i:(Sq∪{q})∩(Si∪{i})=∅}。为实现检索排序,关键词集合被视为词袋,项目使用 BM25 分数进行排序。
训练流程包含两个阶段:一个用于初始化生成器的监督微调(SFT)阶段,以及一个用于优化检索质量的强化学习(RL)阶段。RL 阶段的交替训练范式如下图所示:
阶段一:基于监督微调的初始化 SFT 阶段建立一个对齐的关键词空间,并为 RL 阶段提供有意义的初始化。对于每个项目 i,原始 LLM 生成初始的项目侧关键词集合 Si。为构建查询侧目标,作者为每个查询 q 收集其相关项目,汇集这些项目的初始项目侧关键词,并选取频率最高的 top-N 个关键词作为目标集合 Sq。这确保了相关查询-项目对之间的关键词重叠。随后,查询侧生成器 Gq 和项目侧生成器 Gi 分别在 {(q,Sq)} 和 {(i,Si)} 上进行训练,得到初始化策略 GSFTq 和 GSFTi。
阶段二:协同演化强化学习 在初始化之后,RL 阶段采用交替训练范式直接针对检索质量优化生成器。查询侧和项目侧生成器轮流更新,而对侧的倒排索引保持冻结。这使得每个生成器都能在固定的检索环境中进行优化。
查询侧 RL 给定冻结的项目索引,查询侧生成器为每个查询 q 生成关键词集合 Sq。检索集合 Iret(q) 使用 F1 分数进行评估,以平衡精确率与召回率:
P(q)=∣Iret(q)∣∣rel(q)∩Iret(q)∣,R(q)=∣rel(q)∣∣rel(q)∩Iret(q)∣,F1(Iret(q),rel(q))=P(q)+R(q)2P(q)R(q)为约束输出长度,施加最大关键词预算 Kmax。奖励函数定义为:
Rq(Sq)={F1(Iret(q),rel(q)),0,∣Sq∣≤Kmax∣Sq∣>Kmax遵循 GRPO 范式,对每个查询采样多组关键词集合,并在每个 rollout 组内对奖励进行归一化,以计算用于优化的相对优势信号。
项目侧 RL 项目侧 RL 通过评估候选关键词集合 Si 对整体检索质量的边际贡献来优化项目关键词。在每个更新轮次开始时,查询侧索引被冻结。通过仅将项目 i 的参考关键词替换为 Si 来构建反事实索引。项目侧奖励定义为反事实索引与参考索引之间总体检索质量的差异:
Ri(Si)={∑q∈QF1(Iretcand(q;Si),rel(q))−∑q∈QF1(Iretref(q),rel(q)),−1,if ∣Si∣≤Kmaxotherwise这种基于差异的公式隔离了 Si 的影响,并使得只需评估 F1 分数发生变化的查询即可实现高效计算。
协同演化过程 RL 阶段在查询侧与项目侧优化之间迭代交替进行。从 SFT 后的模型开始,每侧均在由另一侧最新模型构建的索引上进行优化。这一协同演化过程使两个生成器能够逐步适应彼此的关键词空间,共同演化以提升整体检索质量。该框架保持灵活性,若精确率与召回率有不同的业务优先级,允许用加权 F-measure 替代 F1 奖励。
实验
该方法在两个具有二值化相关性的工业搜索数据集上进行评估,与稀疏、稠密和生成式检索基线对比。实验表明,协同演化的强化学习过程能够联合对齐查询与项目关键词空间,带来最强且最一致的检索性能。消融实验确认每个组件(边际项目侧奖励、独立生成器、SFT 初始化)均对性能提升有贡献,而关键词演化分析揭示了向更具体、多词短语和平衡词汇的转变。该框架还受益于更丰富的文本上下文,如项目描述和外部搜索结果。
内部 APP 应用市场数据集在查询量上远大于 WANDS,训练查询为 13,500 条,对比 WANDS 的 430 条,但两个数据集覆盖的项目集合规模相近,约为 40,000 个项目。内部数据集中每个查询的相关项目密度也远高于 WANDS,平均约为 1,000 个,而 WANDS 约为 200 个。内部数据集每个查询的相关项目数约为 WANDS 的五倍(≈1,000 vs ≈200)。两个数据集的项目集合规模可比,约为 40,000 个项目,但内部数据集提供的训练查询数量超过 30 倍。
CoGR 在两个验证数据集上均取得了最高的总体 F1,超过所有基线。联合演化查询与项目关键词空间至关重要,CoGR 显著优于仅优化查询侧的变体。在基线方法中,基于 ANCE-Qwen4B 的稠密检索表现最为一致,而稀疏和生成式方法在不同数据集上表现出明显的弱点。CoGR 在内部数据集上取得最佳总体 F1(0.396),在 WANDS 上取得 0.682。协同演化查询与项目关键词相比仅查询优化的方法(CoGR 领先 CoGR* 和 DeepRetrieval)带来了大幅提升。基于 ANCE-Qwen4B 的稠密检索是最强的基线,稀疏检索在内部数据集上表现不佳,生成式检索在 WANDS 上性能下降。
完整 CoGR 模型在所有配置中取得了最高的检索 F1。移除边际项目侧奖励、共享生成器或跳过 SFT 初始化均会导致性能下降,但所有变体仍产生合理的结果,证明了协同演化框架的鲁棒性。完整 CoGR 模型取得了最佳 F1 分数,优于所有消融变体。为查询侧和项目侧共享单一生成器相比使用独立生成器降低了检索性能。跳过 SFT 初始化阶段、直接从基模型开始 RL 会降低 F1,确认了热启动训练的好处。用对称的以项目为中心的目标替代边际项目侧奖励会降低精确率和 F1。所有消融变体均保持了稳定且合理的检索性能,表明该框架对这些设计变化具有韧性。
为关键词生成器丰富文本上下文能够持续提升检索性能。移除项目描述会降低 F1,而在查询侧提示中加入搜索结果则显著提升精确率和召回率,主要通过帮助处理歧义或非标准查询实现。移除项目描述使 F1 从 0.3963 降至 0.3759,表明在标题单独信息不足时描述提供了重要线索。加入搜索结果将 F1 提升至 0.4379,最大收益来自于更好地处理歧义、拼写错误、以实体为中心或非英语查询。
在内部 APP 应用市场数据集和公开 WANDS 数据集上的实验表明,CoGR 通过强化学习联合演化查询与项目关键词空间,取得了最高的检索 F1,优于稠密、稀疏和生成式基线。协同演化两侧至关重要,仅优化查询侧会显著落后,而加入项目描述和搜索结果上下文则进一步提升了性能。消融实验确认了框架的鲁棒性,所有变体在移除个别组件后仍保持合理的结果。