Query 改写

RAG 搜索优化 - Query 改写

前言

不同于词替换的Term改写,Query改写是指在Query粒度下,将用户的原始Query改写为新的Query,即Query2Query。Query改写不依赖分词,改写结果语义连贯性更好(完整Query),语义泛化能力更强,且有更深的技术空间。

业界常用的Query技术框架为召回-排序范式,召回方式主要有向量召回、倒排检索召回、KV词典召回、生成式模型召回,排序则从改写结果的语义相关性、Doc召回增量等角度评估和筛选改写结果。‘

改写类型

Query改写针对不同场景需求有多种形态:同义、泛化、细化、激发

  • 同义
    • 改写Query和原Query语义相同
    • 如:西蓝花功效 --> 吃西兰花的好处
  • 泛化
    • 将具体的细节描述变为更宽泛、更具概括性的表述
    • 如:NBA球赛 --> 篮球比赛
  • 细化
    • 与泛化相反,将大的主题概念变得更详细具体,常见的细化方向有:需求澄清、个性化改写
    • 如:人工智能课程 --> 机器学习导论
  • 激发
    • 原主体保持不变,但主要需求发生迁移,目的是激发搜索
    • 如:美国大选结果 --> 美国大选摇摆州

改写召回

改写召回的技术方案大体和通用搜索召回一致,本质上都是对文档召回,主要有向量召回、倒排召回、KV词典召回、生成式召回四种召回通路。

其中:

向量召回覆盖率高(大部分Query都能有召回结果),以相似度距离海选打分会优先选择TopN最相近的结果 倒排召回在结果命中关键词后,一般以结果质量分截断候选,即TopN召回结果以高质量为主要目标导向 KV词典以Query间的共点信息挖掘,这种挖掘方式导致召回结果天然的主要覆盖头部腰部Query(冷启动问题),由于其充分利用了搜索后验信息,其召回结果更符合系统生态

生成式改写相比前三种基于检索的方式,优势在于改写结果更灵活多样,Query召回覆盖面广,即能应对各种长冷Query生成改写结果,缺点是质量不稳定、计算成本高。

向量召回

向量召回基于一个向量索引库,通过将Query和文档(改写Query)映射到高维空间中的向量,利用向量之间的相似度来进行检索。

  • 索引库

召回匹配库以历史上出现的高质量Query进行向量索引建库,高质量Query筛选的判断依据依赖多个特征,包括Query的历史检索量、点击率、满意度、文本表述(是否错词/语义清晰通常)等为特征,并根据业务需要进行安全过滤(黄赌毒反)。·

  • 向量模型训练集

向量模型需要海量的训练数据集,一种常见的方式是基于共点Doc挖掘Query-Query Pair,并通过样本增强 + 相关性模型打分的方式生成海量训练集。

训练结束后,离线对高质量Query生成向量表征并可用Faiss等工具构建索引库,线上改写时可以对Query进行近邻向量检索,召回TopN个相似Query。

倒排检索召回

如向量召回一样,倒排召回同样需要挖掘高质量Query建立倒排索引库。召回方式可以采用检索词Query的核心词、同义词、标签等构建布尔查询串。倒排检索召回TopN的筛选可以参考改写Query质量分,质量分可以参考历史点击率、历史搜索量、搜索结果满意度(检索结果相关性、多样性等,用户行为中的跳出率、停留时长、后续查询行为等)。

KV词典召回

KV词典召回方式是以检索词Query作为Key,基于KV形式的Query-Query词表召回改写Query(Value)。词表大部分数据基于图方法挖掘,常见的方法是采用协同过滤的方式,如:ItemCF、Swing、SimRank++,这种方法适用于用户行为比较丰富的Query。KV词典召回覆盖头部查询词,目标是将历史点击率低、检索结果相关性差的Query改成高质量的Query(高点击率、高满意度)。

生成式召回

生成式改写不受统计特征约束,可以做到全覆盖式改写,即在长尾Query上有显著的优势,且在问答式Query的非对称改写上,生成式改写是不二的选择。此外,生成式改写灵活性高且泛化能力强,具备目标导向的可定制化,能利用LLM本身自带的先验知识结合查询场景,并根据需求自适应生成最优改写。但是由于生成式改写基于LLM,对算力要求较高且推理时间长,出于对成本的控制和耗时的妥协,生成式改写一般只对圈定Query触发且通常根据模型参数量走Nearline链路(介于Online和Offline之间)和Offline链路。

改写排序

在改写语义判别模块对改写召回结果完成打分和过滤后,需要对改写Query的质量进行评估和排序,以选出最优的改写Query。改写结果主要以改写结果相关性和召回Doc增量为目标,由于这两个目标直接与检索最终结果挂钩,所以相关性和增量是衡量改写结果在搜索应用有效性的最直接的指标:

  • 相关性(Relevance):衡量改写Query检索结果与查询词原始意图的一致性
  • 增量(Increment):衡量改写Query的语义扩展程度

改写排序模型可以采用基于Pairwise或Listwise的训练方法,训练数据集的构建可以采用以下方式:

  • 给定查询Query,召回改写Query候选
  • 对查询Query和改写Query分别通过离线搜索系统检索获取各召回Doc
  • 对改写Query召回Doc与查询Query进行Query-Doc相关性打分,作为改写Query的相关性指标(Relevance)
  • 计算改写Query召回Doc满足Query-Doc相关性大于阈值的增量Doc量作为改写Query的增量指标(Increment)
  • 综合相关性和增量指标,对改写Query排序,排序Index可作为训练标签

个性化改写

为了在改写时更好地贴合不同用户的搜索意图和偏好,可以通过个性化改写的方式实现用户体验的优化。实现个性化改写的核心在于结合用户的个性化特征和历史行为来调整改写策略。

  • 用户画像构建:通过用户的历史查询、点击等消费记录,获得用户的兴趣领域和偏好
  • 上下文信息:基于用户当前的查询上下文信息(如搜索的时段、地点、会话内的前后关联查询)实现动态改写

总结

综上,Query改写链路可以看做为一个小型搜索系统,所以搜索系统中的方法或多或少可以作为Query改写实现中的方案参考。Query改写的核心目标是通过增强查询的准确性、表达的丰富性和意图的清晰度,让系统在更大范围内捕捉和满足用户的搜索意图,从而提升整体的用户体验和检索效果。所以,在设计改写方案时,需要明确改写目标和应用场景。在评估和迭代优化中通过A/B测试和用户反馈收集以优化改写规则和模型,确保改写系统不断学习和改善。

评论


暂无评论

* 登录后即可评论