它们通常结合在一起使用,是现代搜索引擎、推荐系统以及大模型(尤其是用于RAG-检索增强生成场景的大模型)的关键组成部分。

我们可以用一个图书馆找书的比喻来贯穿整个讲解,这样会更清晰。


第一部分:混合检索

1. 是什么?

混合检索指的是同时使用多种不同的检索方法,并将它们的结果融合在一起,以期获得比任何单一方法都更全面、更准确的结果。

最常见的混合形式是结合:

  • 稀疏向量检索: 又称关键词检索。比如传统的倒排索引、TF-IDF、BM25等。
  • 稠密向量检索: 又称语义检索。使用模型(如BERT、Embedding模型)将查询和文档都转换为高维向量(一组数字),然后通过计算向量间的相似度(如余弦相似度)来查找相关内容。
2. 为什么需要它?(动机)

因为单一检索方式有各自的优缺点:

  • 稀疏检索(关键词)的优缺点

    • 优点: 擅长精确匹配。对于技术术语、人名、地点等特定关键词,效果非常好,速度快,计算开销小。
    • 缺点: 无法处理词汇表不匹配问题。比如查询“汽车”,文档里写的是“车辆”,基于关键词的方法就无法找到。它缺乏语义理解能力。
  • 稠密检索(语义)的优缺点

    • 优点: 擅长语义匹配。它能理解查询背后的意图。比如查询“苹果公司最新手机”,它能找到关于“iPhone 15”的文档,即使文档里没有“苹果”和“公司”这些词。
    • 缺点: 有时会错过重要的关键词。对于非常细粒度的、具体的关键词匹配,可能不如稀疏检索可靠。并且需要模型推理,计算开销相对较大。

混合检索的核心思想就是:取长补短,强强联合。 我用关键词保证召回结果的精确性,同时用语义检索保证召回结果的语义相关性,确保不遗漏。

3. 如何工作?(技术实现)

混合检索通常分两步:

  1. 并行检索: 用户的查询同时发给稀疏检索器和稠密检索器。
  2. 结果融合: 将两个检索器返回的结果列表合并成一个最终的列表。融合策略有很多种,常见的有:
    • 加权综合评分: 给每个文档的两种得分(BM25分和语义相似度分)分配一个权重,计算加权后的综合分,然后重新排序。
      • 最终分数 = α * BM25_score + (1 - α) * Dense_score
    • RRF(倒数排序融合): 一种非常流行且有效的无需调权重的融合方法。它为每个文档在不同列表中的排名计算一个分数,然后汇总。
      • RRF分数 = 1 / (排名1 + k) + 1 / (排名2 + k) (k是一个常数,用于调整排名靠后项的影响)
    • 简单拼接去重: 简单地将两个列表拼接在一起,然后去掉重复的文档。

第二部分:重排

1. 是什么?

重排 是指在初步检索(比如上面的混合检索)返回一个候选文档列表之后,再使用一个更复杂、更精确但通常也更耗资源的模型对这个候选列表进行重新排序,以提升最顶部的结果质量。

你可以把它想象成:

  1. 检索阶段: 用一张大网(混合检索)从海洋(整个文档库)里捞出一网鱼(比如1000个候选文档)。这个阶段要求(高召回率)。
  2. 重排阶段: 把网里的鱼倒出来,用一个非常精细的筛子(重排模型)一条一条地仔细筛选,把最大、最好的鱼挑出来放在最前面。这个阶段要求(高精确率)。
2. 为什么需要它?(动机)

检索模型(无论是稀疏还是稠密)为了速度,通常只能进行“粗粒度”的匹配。而重排模型可以“慢工出细活”:

  • 更深入的理解: 重排模型可以同时看到查询候选文档的全文,进行更深层次的交叉语义理解和交互(例如使用Cross-Encoder),而检索阶段的稠密模型通常是双塔结构,查询和文档是单独编码的,没有交互。
  • 考虑更多特征: 重排模型不仅可以考虑语义相关性,还可以考虑其他特征,如:文档的新鲜度、权威性、用户个性化偏好、点击率等。
3. 如何工作?(技术实现)
  • 模型: 通常使用参数量更大、性能更强的预训练模型,如BERT等作为Cross-Encoder。它接收“查询:文档”对作为输入,直接输出一个相关度分数。
  • 过程
    1. 从混合检索阶段获得一个Top K(例如K=100)的候选文档列表。
    2. 将用户的查询分别与这100个候选文档一一配对,输入到重排模型中。
    3. 重排模型为每一对生成一个相关性分数。
    4. 根据这个新的分数,对100个文档进行降序排序,取出Top N(例如N=10)个最终结果返回给用户或大模型。

总结与比喻:图书馆找书

让我们用整个流程来比喻一下:

  1. 你(用户)提出查询: “帮我找关于现代人工智能之父最新观点的书。”

  2. 混合检索(图书管理员助理)

    • 关键词助理: 听到“人工智能”、“之父”,他跑去索引卡区(倒排索引)找含有“Alan Turing”、“John McCarthy”等关键词的书。(稀疏检索)
    • 语义助理: 理解你想要的是“AI领域开创者的近期言论”,他凭借对书籍内容的深刻理解(Embedding),找出了关于“Geoffrey Hinton”、“Yann LeCun”近期访谈的书籍。(稠密检索)
    • 助理们合作: 他们把找到的书合并成一个初始清单(共50本),交给了首席管理员。(结果融合)
  3. 重排(首席管理员)

    • 首席管理员拿到这个50本书的清单。他不需要再跑遍整个图书馆,只需要专注于这个清单。
    • 他拿起每一本书,仔细对比你的问题和书的目录、引言片段(Cross-Encoder深度交互)。
    • 他会判断哪本书最贴切、最新、最权威,然后重新整理这个清单,把最好的3本放在最上面交给你。(重排)
  4. 最终结果: 你拿到了最符合你需求的、质量最高的书籍。

效果与价值

  • 混合检索: 保证了召回率,即把所有可能相关的文档都找了出来,防止遗漏。
  • 重排: 保证了精确率,即确保最终排在前面、呈现给用户的结果是最精准、最相关的。

在大模型RAG应用中,这个“检索-重排”流程至关重要。它为大模型提供了最相关、最高质量的外部知识,从而让大模型能生成更准确、更可靠的回答,减少“幻觉”现象。

希望这个解释对你有帮助!这是构建高效RAG系统非常核心的一环。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐