No history yet

混合检索与召回调优

向量检索的局限性

我们已经知道,向量检索(Vector Search)擅长理解查询的“语义”或“含义”。如果你搜索“能飞的宠物”,它能聪明地返回“鹦鹉”或“金刚鹦鹉”的结果,即使你的查询中并未包含这些词。这在需要理解上下文和概念的场景中非常强大。

然而,单纯的向量检索也有其弱点。当用户查询包含特定的、必须精确匹配的关键词时,比如产品型号(“iPhone 15 Pro”)、专有名词(“广达香肉酱”)或代码错误信息(TypeError: 'NoneType' object is not iterable),向量检索就可能力不从心了。它可能会返回语义上相关但并非精确匹配的结果,例如返回“iPhone 15”或功能相似的安卓手机,这显然不是用户想要的。

向量检索关注“意思”,而关键词检索关注“字眼”。当“字眼”本身至关重要时,我们就需要一种更直接的匹配方法。

混合检索:两全其美

为了解决这个问题,我们引入了混合检索(Hybrid Search)。这种方法并非用一种技术取代另一种,而是将两者的优点结合起来。它同时运行两种搜索:

  1. 关键词检索(Keyword Search):通常使用像 BM25 这样的经典算法。它擅长查找包含确切词语或短语的文档。你可以把它看作是传统的搜索引擎,对特定术语的匹配非常精确。
  2. 向量检索(Vector Search):利用嵌入(embeddings)来捕捉查询的语义含义,找到概念上相似的内容。

通过并行执行这两种检索,我们能同时捕捉到查询的字面意图和深层含义。

融合与排序

得到两份独立的排名列表后,下一个关键步骤是如何将它们智能地合并成一个统一、更相关的结果列表。这个过程称为“结果融合”(Results Fusion)。有两种常用方法:倒数排名融合和加权评分。

倒数排名融合(Reciprocal Rank Fusion, RRF)

RRF 是一种简单而高效的无参数融合算法。它的核心思想是:一个文档在多个检索结果列表中的排名越靠前,其最终得分就越高。与具体的相似度分数不同,RRF 只关心文档的“位次”(rank)。这种方法可以有效地平衡不同来源的检索结果,而无需进行复杂的归一化处理。

RRF Score(d)=i1k+ranki(d)\text{RRF Score}(d) = \sum_{i} \frac{1}{k + \text{rank}_i(d)}

加权评分

另一种方法是为每个检索系统的得分分配一个权重。例如,你可以给向量检索的得分分配一个权重 α\alpha,给 BM25 的得分分配权重 (1α)(1 - \alpha)。然后将加权后的分数相加,得到最终的混合分数。

这种方法的优势在于它的可控性。通过调整 α\alpha 的值,你可以精确控制语义匹配和关键词匹配在最终排名中的相对重要性。

Hybrid Score=(α×Vector Score)+((1α)×BM25 Score)\text{Hybrid Score} = (\alpha \times \text{Vector Score}) + ((1 - \alpha) \times \text{BM25 Score})

选择哪种融合策略取决于具体的应用场景。RRF 无需调参,普适性强。而加权法则提供了更精细的控制,但需要根据实际数据进行调优以找到最佳的 α\alpha 值。例如,在电商搜索场景中,用户经常搜索精确的型号,此时可以将 α\alpha 调低,赋予关键词匹配更高的权重。而在知识库问答中,理解用户的意图更为重要,这时可以将 α\alpha 调高。

领域适配与召回优化

为了进一步提升混合检索的效果,特别是向量检索部分的质量,我们可以对嵌入模型(Embedding Model)进行微调(Fine-tuning)。

通用的嵌入模型是在海量的互联网文本上训练的,它们对通用语言的理解能力很强。但对于特定领域,如法律、医疗或金融,这些模型可能无法很好地捕捉专业术语的细微差别。例如,“流动性”在金融领域和在物理学中的含义就截然不同。

通过在你自己的专业数据集上对嵌入模型进行微调,可以使其更好地理解你所在领域的专业词汇和上下文关系。这会直接提升向量检索的召回质量,从而为混合检索系统提供更相关的候选文档,最终生成更精准的答案。

混合检索结合了 BM25 关键词搜索的精确匹配能力和密集嵌入的语义理解能力,从而在各种查询类型上都能提供卓越的性能。

最终,一个强大的 RAG 系统的核心在于其检索组件的质量。混合检索通过结合不同检索策略的优势,并针对特定领域进行优化,为大型语言模型提供了更准确、更丰富的上下文信息,是构建企业级智能应用的关键一步。

Quiz Questions 1/5

在以下哪种搜索场景中,单纯的向量检索(Vector Search)最可能表现不佳?

Quiz Questions 2/5

混合检索(Hybrid Search)通过结合关键词检索和向量检索的优点来提升搜索质量。