Comparthing Logo
信息检索向量搜索语义搜索BM25嵌入自然语言处理人工智能搜索混合检索

密集向量检索与稀疏向量检索

在现代人工智能系统中,密集向量检索和稀疏向量检索代表了两种截然不同的信息检索方法。密集方法利用神经嵌入来捕捉语义信息,而稀疏方法则依赖于传统的基于关键词的表示方法,例如BM25。根据不同的搜索需求,这两种方法各有优势。

亮点

  • 密集检索通过神经嵌入捕捉语义含义,而稀疏检索则依赖于精确的关键词匹配。
  • 稀疏方法具有更优异的可解释性,因为每个向量维度都对应于一个特定的项。
  • 密集匹配方法能够处理稀疏匹配方法通常会忽略的同义词匹配和释义匹配。
  • 结合两种方法的混合检索系统始终优于任何单一方法。

密集向量检索是什么?

一种基于神经嵌入的搜索方法,通过将文本表示为高维空间中的连续向量来捕捉语义含义。

  • 稠密向量通常具有数百到数千维,常见的维度为 384、768 或 1024,具体取决于模型。
  • 它们由基于Transformer的模型(如BERT、SBERT)或专门的句子编码器生成。
  • 即使关键词不完全匹配,密集检索也能出色地找到语义相似的内容。
  • 常用的密集检索系统包括DPR、ColBERT和ANCE,以及FAISS和Pinecone等矢量数据库。
  • 与关键词方法不同,稠密向量可以理解同义词、释义以及概念之间的上下文关系。

稀疏向量检索是什么?

一种传统的基于关键词的检索方法,使用高维稀疏表示,其中大多数维度为零。

  • 稀疏向量的维度通常与词汇表的大小相匹配,有时甚至达到数万个词项。
  • BM25(最佳匹配25)仍然是应用最广泛的稀疏检索算法之一。
  • 稀疏方法(例如 SPLADE)将传统的关键词匹配与神经网络扩展相结合。
  • 词频和逆文档频率构成了大多数稀疏方法的数学基础。
  • 稀疏检索在精确关键词匹配方面表现出色,并且具有很高的可解释性,因为每个维度都对应一个特定的词项。

比较表

功能 密集向量检索 稀疏向量检索
表示类型 连续稠密嵌入 大部分值为零的高维稀疏向量
典型尺寸 尺寸范围为 384 至 1024 厘米 词汇量通常在 10,000 到 50,000 以上
语义理解 较强的语义和语境理解能力 仅限于词汇匹配,不进行扩展
关键词匹配 可能会错过完全匹配的术语 擅长精准关键词匹配
可解释性 低 - 矢量图是不透明的 高 - 每个维度都对应一个术语
培训要求 需要标记数据和神经网络训练 最少的培训,通常基于规则
计算成本 编码效率更高,对人工神经网络搜索更高效 总体较低,采用倒排索引
存储效率 每个向量都很紧凑,但需要专门的索引。 采用倒置索引结构时效率极高
最佳用例 自然语言查询、语义搜索 精确术语匹配、技术文档
示例方法 DPR、ColBERT、SBERT、BGE BM25、TF-IDF、SPLADE、Elasticsearch 默认值

详细对比

核心机制与表征

稠密向量检索将文本转换为固定长度的连续向量,其中每个维度都包含一个数值。这些向量嵌入通过神经网络训练学习,使模型能够编码词义、上下文以及词语之间的关系。相比之下,稀疏向量检索使用向量来表示文档,其中大部分值为零,非零值对应于文档中出现的特定词汇。这种根本差异决定了两种方法处理和匹配信息的方式。

语义匹配与词汇匹配

当用户使用自然语言搜索,或者查询词汇与文档词汇存在差异时,密集检索的优势尤为突出。例如,搜索“经济适用房选择”可以匹配到关于“低成本住宿”的文档,因为词嵌入能够捕捉语义相似性。稀疏检索依赖于重叠词,因此除非出现完全相同的词语,否则它会错过这种关联。然而,稀疏方法能够更可靠地处理罕见的技术术语、产品代码和特定标识符,因为它们不依赖于学习到的关联。

性能和可扩展性

密集检索需要在索引过程中通过神经网络模型对所有文档进行编码,这在前期计算成本较高。索引完成后,诸如 HNSW 或 IVF 之类的近似最近邻搜索算法即使在数百万个向量的情况下也能实现快速检索。稀疏检索则受益于数十年来优化的倒排索引结构,这些结构使得关键词查找速度极快且内存效率极高。对于非常大的数据集,稀疏方法通常具有更低的架构成本,尽管混合方法也越来越普遍。

可解释性和调试

稀疏检索的一大优势在于其可解释性。当文档匹配成功时,您可以清楚地看到哪些关键词触发了匹配,以及其排名背后的原因。这使得调试和调优变得更加直接。而密集检索则更像是一个黑箱,要理解为什么两个文本被认为是相似的,需要分析嵌入空间或使用注意力可视化技术。对于法律或医学检索等需要可解释性的应用场景而言,这种差异至关重要。

混合方法与现代趋势

检索领域正日益转向融合两种方法的混合系统。例如,SPLADE 等方法利用神经网络扩展稀疏表示,而互惠排序融合则将密集系统和稀疏系统的结果合并。混合检索通常优于任何单一方法,它既能利用密集模型的语义理解能力,又能利用稀疏匹配的精确性。许多生产级搜索系统现在都采用集成方法,尤其是在复杂的企业级搜索和 RAG(评级、可用性、可寻址、可查找)应用中。

优点与缺点

密集向量检索

优点

  • + 较强的语义理解能力
  • + 能很好地处理同义词。
  • + 对词汇不匹配具有鲁棒性
  • + 对自然语言查询有效

继续

  • 需要训练数据
  • 较难解读
  • 更高的计算成本
  • 可能会错过精确的关键词匹配

稀疏向量检索

优点

  • + 关键词匹配效果极佳
  • + 高度可解读
  • + 降低基础设施成本
  • + 使用倒排索引速度很快

继续

  • 语义理解能力有限
  • 词汇不匹配问题
  • 难以进行释义
  • 对于自然查询效果较差

常见误解

神话

在现代搜索任务中,密集检索始终优于稀疏检索。

现实

基准测试结果表明,这种情况并非普遍适用。在许多以关键词为中心的任务中,BM25 和其他稀疏方法仍然具有竞争力甚至更胜一筹。而对于需要精确匹配词项的查询,例如搜索特定产品代码或技术标识符,密集模型的性能实际上可能会下降。最佳选择很大程度上取决于您的具体用例和查询模式。

神话

稀疏检索已经过时,正在被神经方法所取代。

现实

稀疏检索仍然是现代搜索基础设施的基础。主流搜索引擎和企业系统仍然严重依赖BM25及类似算法。稀疏检索方法并没有被取代,而是通过引入神经网络组件得到增强,例如SPLADE等方法以及结合两种范式的混合检索系统。

神话

稠密向量比稀疏向量需要更少的存储空间,因为它们的维度更少。

现实

存储需求取决于索引结构,而不仅仅是向量维度。虽然稠密向量本身结构紧凑,但它们需要专门的近似最近邻索引,这可能会消耗大量内存。稀疏向量与仅存储非零条目的倒排索引配合使用效率更高,通常可以降低大型文档集合的总体存储需求。

神话

密集检索不需要任何预处理或分词。

现实

密集检索仍然需要文本预处理、分词,并且通常需要对超出模型上下文窗口的长文档进行专门处理。文档必须进行适当的分块,而分块策略的选择会显著影响检索质量。神经编码步骤会增加计算开销,而稀疏检索方法则完全避免了这一点。

神话

一旦有了稠密嵌入,就不需要考虑查询的构建方式了。

现实

在密集检索中,查询语句的构建仍然至关重要。查询语句的扩展、重构以及查询编码器的选择都会影响检索结果。诸如假设文档嵌入(HyDE)和多向量方法(如ColBERT)等技术表明,精细的查询处理对于实现最佳的密集检索性能仍然至关重要。

常见问题解答

密集向量检索和稀疏向量检索的主要区别是什么?
核心区别在于文本的表示方式。密集检索使用神经网络生成的词嵌入,其中每个维度都具有连续值,从而捕捉语义含义。稀疏检索使用传统的基于关键词的向量,其中大多数维度为零,非零值对应于特定的词汇术语。密集检索方法能够理解语义和上下文,而稀疏检索方法则擅长精确的关键词匹配。
对于大规模搜索,哪种检索方法速度更快?
由于经过数十年的优化,稀疏检索通常在大规模搜索中速度更快。密集检索需要近似最近邻搜索算法,虽然速度快,但计算开销较大。然而,随着 FAISS、Pinecone 和 Milvus 等专用向量数据库利用 GPU 加速和高效索引,密集检索速度已显著提升。
能否将密集检索和稀疏检索结合起来?
是的,结合两种方法的混合检索越来越普遍,而且通常能取得最佳效果。这些方法包括互惠排序融合(将来自单独的密集搜索和稀疏搜索的排名结果合并),以及像 SPLADE 这样的学习型稀疏模型(为稀疏表示添加神经功能)。目前大多数生产环境中的 RAG 系统都采用混合方法,以便同时利用语义理解和精确的关键词匹配。
什么时候应该使用 BM25 而不是密集检索?
当精确关键词匹配至关重要时,例如搜索产品名称、技术术语、法律引文或代码标识符,BM25 和稀疏检索效果最佳。此外,当需要可解释的结果、训练数据有限或对基础设施成本要求较低时,它们也是更佳选择。对于许多用户清楚自己要查找内容的企业搜索场景,稀疏检索方法仍然极具竞争力。
稠密向量检索通常使用哪些模型?
常用的密集检索模型包括 DPR(密集段落检索)、ColBERT、ANCE、BGE(BAAI 通用嵌入)、E5 和 OpenAI 的文本嵌入模型。Sentence-BERT (SBERT) 广泛用于生成嵌入。具体选择取决于您的语言要求、领域,以及是否需要多语言支持或特定领域的调优。
如何为密集检索选择合适的嵌入维度?
嵌入维度会影响性能和计算成本。常见的选择范围在 384 到 1024 维之间。较小的维度(384)速度更快,占用内存更少,但可能捕捉到的信息量较少。较大的维度(1024 维及以上)可以编码更多信息,但需要更多的存储空间和计算资源。建议从像 BGE 或 E5 这样经过验证的模型入手,然后根据评估结果进行微调,而不是随意选择维度。
在现代人工智能时代,稀疏检索是否仍然适用?
没错。稀疏检索仍然非常重要,并且已经集成到大多数现代搜索系统中。神经信息检索研究实际上通过学习稀疏表示增强了稀疏方法。像 Elastic 和 Vespa 这样的公司仍在持续投资稀疏检索,而结合稀疏和密集方法的混合系统在许多应用中被认为是最先进的技术。
SPLADE是什么?它与稀疏检索有何关系?
SPLADE(稀疏词汇扩展模型)是一种神经网络模型,它利用基于Transformer的架构生成稀疏表示。它使用训练过程中学习到的相关术语扩展文档和查询,将稀疏向量的可解释性与一定的语义理解相结合。SPLADE介于传统的BM25和完全密集检索之间,通常在基准数据集上取得了优异的成绩。
RAG 如何使用向量检索?
检索增强生成(RAG)系统利用向量检索来寻找与语言模型相关的上下文。密集检索和稀疏检索方法均可用于RAG,其中密集检索因其语义能力而更为常用。检索到的文档提供基础信息,帮助语言模型生成更准确、更及时、更符合上下文的响应,同时减少错误信息。
每种检索类型分别需要怎样的存储空间?
根据维度数量和精度(float32 与 int8),密集向量通常每个文档需要 1-6 KB 的空间。稀疏向量每个文档通常更小,因为它只存储非零条目,通常只有几百字节。然而,密集检索需要专门的向量索引,这会增加额外的开销,而稀疏检索则使用紧凑的倒排索引。总存储空间取决于集合大小和所选的索引结构。
我可以在不训练自己的模型的情况下使用密集检索吗?
是的,许多预训练的嵌入模型可以直接使用。例如,BGE、E5、Sentence-BERT 和 OpenAI 的嵌入 API 等模型无需任何训练即可提供高质量的密集表示。您可以使用这些模型对文档进行编码,并将其存储在向量数据库中。微调是可选的,仅在通用模型性能不佳的特定领域才需要。

裁决

当您的查询涉及自然语言、需要语义理解,或者用户搜索时使用的措辞可能与您的内容有所不同时,请选择密集向量检索。当精确的关键词匹配至关重要、您需要可解释的结果,或者您正在处理技术内容且特定术语必须精确匹配时,请选择稀疏向量检索。对于大多数生产系统,建议采用混合方法,结合两种方法以发挥它们的互补优势。

相关比较

AI 错误检测与人工审核对比

人工智能质量检测利用机器学习模型大规模标记低质量或人工智能生成的内容,而人工审核则依靠训练有素的编辑通过判断和上下文来评估内容质量。每种方法各有优势,许多组织现在都将两者结合起来以获得最佳效果。

AI管道中的迭代检索与一次性检索系统

人工智能流程中的迭代检索通过多次搜索和推理循环来优化结果,而一次性检索系统则只需一次遍历即可获取信息。迭代方法擅长处理复杂的多跳查询,而一次性方法则优先考虑速度和简洁性,适用于简单的查询。

AI伙伴 vs 人类友谊

人工智能伴侣是旨在模拟对话、情感支持和临场感的数字系统,而人类友谊则建立在共同的生活经验、信任和情感互惠之上。本文将对比探讨这两种连接方式如何在日益数字化的世界中塑造沟通、情感支持、孤独感和社会行为。

AI计算排放与传统云排放对比

人工智能计算产生的排放主要来自训练大型模型的高能耗GPU集群,而传统云的排放则来自运行日常工作负载的通用数据中心。人工智能工作负载的单次任务耗电量远高于传统云,但传统云的运行规模要大得多。

AI检测与基于规则的检测

现代数字环境需要强大的防御机制,但其底层方法却截然不同,威胁、欺诈或异常情况的检测方式也大相径庭。基于规则的系统依赖于严格的预配置条件来标记已知威胁,而人工智能模型则通过分析行为来发现不常见的异常情况。在两者之间做出选择意味着需要在绝对确定性和适应性灵活性之间取得平衡。