找回密码
 立即注册
首页 业界区 科技 混合检索(Hybrid Search):多模态检索实战指南(第四 ...

混合检索(Hybrid Search):多模态检索实战指南(第四章)

蒙飘 昨天 19:50

1. 从 Corrective RAG 到多模态检索

在第三章,我们学习了 Corrective RAG(CRAG),通过文档评分和托底机制来提升 RAG 系统的可靠性。CRAG 主要解决检索结果的质量验证问题,但在检索环节本身,传统 RAG 系统还存在一个根本性的问题:单一检索方式的盲区。

本章将解决这个问题:如何通过混合检索(Hybrid Search)结合多种检索方式,提升检索的召回率和精确度。

2. 为什么需要混合检索?

2.1 什么是混合检索?

混合检索(Hybrid Search)是一种结合向量检索、稀疏检索、全文检索三种模态,通过加权分数融合来提升检索效果的技术。它通过让不同检索方式互补,克服单一检索方式的盲区,从而提高召回率和精确度。

2.2 单一检索方式的问题

我们先来看看单靠一种检索方式会遇到什么问题。

向量检索的盲区:

向量检索擅长理解语义和概念,但它会遗漏精确的关键词。比如你搜索 “GAAP” 或 “Q3 2023” 这样的专有名词,向量检索可能会返回一些概念相似但实际不相关的结果。还有一个问题是过度泛化——它可能返回概念上相似,但实际上答非所问的文档。

关键词检索的盲区:

关键词检索擅长匹配精确的术语,但它不理解语义。比如你搜索 “machine learning”,它找不到包含 “AI” 的文档;你搜索 “revenue”,它找不到包含 “earnings” 或 “income” 的内容。这就是语义盲区的问题。

问题的本质在于:向量检索会遗漏关键词,关键词检索会遗漏语义——每种方法都有自己的盲区。

2.3 混合检索:融合三种模态

混合检索的思路是:既然单一方法都有盲区,那就把它们组合起来。具体来说,混合检索结合了三种互补的检索方式:

1.jpeg

三种检索方式各有侧重:

  • Vector Search(向量检索) → 理解语义相似度
  • Sparse Search (稀疏检索) → 匹配关键词和同义词
  • Full-text Search (全文检索) → 精确短语匹配

2.4 Hybrid RAG vs Corrective RAG

混合检索和纠错机制解决的是不同阶段的问题:

对比维度 Hybrid RAG (本章) Corrective RAG (第三章)
核心目标 Better Retrieval (更好的检索) Better Validation (更好的验证)
实现方式 结合 3 种检索模态 文档相关性评分
关键机制 加权分数融合 查询重写 + 托底机制
作用阶段 检索阶段 检索后验证阶段
Agent 作用 选择检索策略 评估质量 + 触发托底

这两种技术可以完美配合:用混合检索提升检索质量,再用 Corrective RAG 进行质量验证。

3. 三种检索模态详解

理解了混合检索的必要性后,我们来深入了解构成混合检索的三种核心模态。

向量检索通过将文本转换为稠密向量(Dense Embeddings,通常 768-1536 维),然后使用余弦相似度测量向量之间的角度,返回语义上最相似的文档。

它的优势在于理解概念和语义关系,能够处理释义和同义表达。但它无法精确匹配特定术语,比如 “GAAP” 或 “SKU-12345” 这样的专有名词。

适用场景:概念性查询,比如 “What causes inflation?”

稀疏检索使用 TF-IDF(词频-逆文档频率)提取关键词,可以在词汇表内扩展同义词,基于关键词权重进行匹配(不是精确字符串匹配)。

TF-IDF 的原理是:Term Frequency × Inverse Document Frequency——在整个文档集中越罕见的词获得越高的权重。

稀疏检索的优势是能够匹配相关术语,比如 revenue、earnings、income 这些同义词,而且不需要嵌入模型。但它受词汇表维度限制,难以处理稀有专有名词。

典型应用场景:工具选择(Tool Selection)

稀疏检索在混合检索中发挥关键词匹配作用,特别在工具选择、术语敏感查询(如专有名词、技术缩写)中表现优异。

全文检索通过构建带分词的倒排索引(Inverted Index),应用 BM25 评分算法(改进的 TF-IDF,加入了文档长度归一化),返回精确短语匹配的结果。

BM25 是 TF-IDF 的改进版本,它加入了文档长度归一化,避免长文档获得不公平的高分。

全文检索的优势是能够精确匹配短语(如 “Item 1A Risk Factors”),处理稀有专有名词,支持精确章节定位。但它无法处理拼写错误或变体,也不理解语义关系。

适用场景:精确章节查找,比如 “查找第 10-K 报告的风险因素章节”

3.4 三种模态的选择

没有单一模态是最好的,关键是根据查询模式组合使用:

检索模态 最适合的查询类型 示例查询 核心优势
向量检索 概念性查询,需要语义理解 “What are Nike’s financial risks?” 语义理解
稀疏检索 同义词感知的关键词匹配 “Nike earnings 2023” 关键词泛化
全文检索 精确短语查询,章节名称 “Item 1A Risk Factors” 精确匹配

4. seekdb:AI 原生的搜索数据库

4.1 seekdb 是什么?

seekdb 是 OceanBase 推出的 AI 原生搜索数据库,它将向量存储、关系数据、全文搜索整合到一个统一的平台中。传统方案需要使用专门的向量数据库,会带来额外的运维成本和系统复杂度,seekdb 通过统一的多模型引擎解决了这个问题。

4.2 seekdb 的核心优势

2.jpeg

4.3 为什么选择 seekdb 实现混合检索?

  • 单次查询就能调用 3 种模态,无需调用外部服务
  • 原生加权融合,内置 RRF 和线性组合算法
  • 自动索引同步,向量、稀疏、BM25 索引自动维护
  • MySQL 协议,兼容现有工具和驱动
  • 可以无缝迁移到 OceanBase 集群

5. 实战:实现混合检索

5.1 准备环境:

[code]import os from dotenv import load_dotenv # Load environment variables load_dotenv("../.env") # Verify configuration print("✅ Configuration loaded:") print(f"
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册