稀疏向量 vs 稠密向量

在向量检索、NLP 和 AI 应用中,稀疏向量稠密向量是两类最核心的向量表示方式,二者在生成逻辑、存储计算、语义表达、适用场景上有本质区别,也是理解混合检索(Hybrid Search)的基础。


一、基础定义与直观理解

1. 什么是向量?

向量是对数据(文本、图像、音频)的数学化表示,本质是一组有序的浮点数 / 整数数组,用来量化数据的特征。

  • 维度:向量中元素的个数(如 768 维、1024 维)
  • 相似度:通过向量间的距离(欧氏距离、余弦相似度)衡量数据的相似程度

2. 稀疏向量(Sparse Vector)

核心特征:绝大多数元素为 0,非零元素占比 < 1%,非零位置代表特征存在

直观理解:像一个「稀疏的表格」,大部分位置是空的,只有少数位置有值,值代表这个特征的权重。

  • 举个例子:10000 维的稀疏向量,可能只有 15 个非零元素,其余 9985 个都是 0
# 稀疏向量示例(维度=10,仅2个非零值)
[0, 0, 2.3, 0, 0, 0, 5.1, 0, 0, 0]

3. 稠密向量(Dense Vector)

核心特征:绝大多数元素都有非零值,每个维度都承载语义信息,无空值

直观理解:像一个「填满的数组」,每个位置的数值都代表数据的某一层语义特征,没有冗余的 0。

  • 举个例子:BGE 模型生成的 768 维向量,768 个元素几乎都是非零浮点数
# 稠密向量示例(维度=5,所有元素均非零)
[0.12, -0.34, 0.78, 0.21, -0.56]

二、核心区别全对比

维度 稀疏向量 稠密向量
非零元素占比 <1%,绝大多数为 0 >99%,几乎无 0 值
典型维度范围 1000 维~100 万维(高维度、极稀疏) 128 维~4096 维(低维度、稠密)
生成方式 传统统计方法:TF-IDF、BM25、One-Hot、词袋模型(BoW) 深度学习 Embedding 模型:BGE、OpenAI Embedding、Sentence-BERT、CLIP
语义表达逻辑 关键词匹配:非零位置对应词典中的词,值代表词的重要性只捕捉字面匹配,不理解语义 语义嵌入:每个维度对应神经网络学习到的隐层语义能理解同义词、上下文、深层语义
存储方式 仅存储「非零位置 + 对应值」,无需存 0,极致压缩100 万维稀疏向量仅占几 KB 必须存储所有维度的数值,体积固定768 维稠密向量占约 3KB
计算方式 仅计算非零位置的运算,计算量极小 全维度参与运算,计算量和维度成正比
召回特性 精确关键词匹配好,长尾词、专业术语召回率高同义词、语义相似但用词不同的内容无法召回 语义匹配能力强,能理解同义表达、上下文关键词精确匹配弱,容易漏专业术语
优点 计算快、存储成本低、可解释性强、关键词匹配精准 语义理解能力强、泛化性好、支持跨模态
缺点 无法理解语义、维度爆炸、泛化性差 计算成本高、可解释性差、关键词漏召
典型场景 全文检索、关键词匹配、标签检索、广告定向 RAG 语义检索、多模态检索、推荐系统、相似度匹配

三、稀疏向量详解

1. 常见生成方式

(1)One-Hot 编码(最基础稀疏向量)
  • 词典有 N 个词,每个词对应一个维度,某个词出现则对应位置为 1,其余为 0

  • 例子:词典为[Milvus, 向量, 数据库, AI],文本「Milvus 向量数据库」的 One-Hot 向量为:

    [1, 1, 1, 0]  # 4维,3个非零值
    
  • 缺点:完全没有语义,无法表达词的重要性,维度随词典大小爆炸

(2)TF-IDF / BM25(工业界最常用稀疏向量)
  • 核心逻辑:词在文档中出现越频繁、在全局语料中越罕见,权重越高
  • BM25 是当前全文检索的工业标准(Elasticsearch 核心算法),比 TF-IDF 更鲁棒
  • 生成的向量:维度 = 词典大小(通常 1 万~100 万维),每个非零值对应一个词的 BM25 权重
  • 优势:精准匹配关键词,专业术语、专有名词召回率 100%
(3)稀疏 Embedding 模型
  • 最新的稀疏模型(如 Splade、SparseEmbed):用深度学习生成稀疏向量,兼顾关键词和弱语义
  • 比传统 BM25 语义能力更强,同时保留稀疏向量的计算优势

2. 稀疏向量的核心优势

  1. 极致性价比:100 万维稀疏向量存储仅几 KB,检索速度是稠密向量的 10 倍以上
  2. 可解释性强:每个非零位置对应具体的词,能清楚知道「匹配了哪个关键词」
  3. 长尾匹配好:专业术语、生僻词、特定命名实体的召回率远高于稠密向量
  4. 无 Embedding 依赖:不需要调用大模型生成向量,直接基于文本统计生成,成本为 0

3. 适用场景

  • 全文检索、法律 / 医疗等专业文档检索(术语多)
  • 电商商品标题搜索(关键词匹配要求高)
  • 广告定向、标签匹配、用户画像检索
  • 对成本敏感、QPS 要求极高的场景

四、稠密向量详解

1. 常见生成方式

所有稠密向量都来自深度学习预训练 Embedding 模型,是大模型时代的主流向量表示:

  1. 文本 Embedding:BGE、M3E、OpenAI text-embedding-3、Sentence-BERT
    • 输出维度:768 维、1024 维、1536 维
  2. 多模态 Embedding:CLIP、BLIP(同时编码文本和图像)
    • 输出维度:512 维、768 维
  3. 代码 Embedding:CodeBERT、StarCoder Embedding

2. 稠密向量的核心优势

  1. 真正的语义理解:能识别「同义词、改写、上下文语义」,比如:
    • 「如何安装 Milvus」和「Milvus 部署教程」会被判定为高度相似(稠密向量相似度高)
    • 但稀疏向量会因为用词不同,判定为不相似
  2. 泛化能力强:能处理从未见过的句子,支持跨语言、跨领域匹配
  3. 支持多模态:同一向量空间可以同时编码文本、图像、音频,实现跨模态检索
  4. 长尾语义捕捉:能理解隐含语义、情感倾向,是 RAG 的核心基础

3. 稠密向量的核心痛点

  1. 成本高:生成需要调用 Embedding 模型,检索需要全维度计算,10 亿级稠密向量的存储和计算成本是稀疏向量的 10 倍以上
  2. 关键词漏召:对生僻词、专业术语、精确命名实体的召回率远低于稀疏向量
    • 比如搜索「Milvus 2.5.7 JSON 索引」,稠密向量可能召回大量 Milvus 相关但不包含 JSON 索引的内容
  3. 可解释性差:每个维度的语义是黑盒,无法解释「为什么这两个向量相似」

4. 适用场景

  • RAG 检索增强生成(核心场景)
  • 语义搜索、问答系统、知识库检索
  • 多模态检索(以图搜图、图文互搜)
  • 推荐系统、内容去重、相似内容推荐

五、稀疏 + 稠密混合检索(Hybrid Search)

1. 为什么要混合使用?

稀疏向量和稠密向量是完全互补的关系:

  • 稠密向量:抓「语义相似」,解决同义词、改写问题
  • 稀疏向量:抓「关键词精确匹配」,解决专业术语、精确匹配问题

单独用任何一种都有缺陷:

  • 只用稠密:专业术语漏召,关键词匹配不准
  • 只用稀疏:语义匹配差,同义表达无法召回

2. 混合检索的工作流程(RAG 场景最佳实践)

  1. 双路召回
    • 用户查询同时生成「稠密向量」和「稀疏 BM25 向量」
    • 分别用稠密索引和稀疏索引召回 Top-N 结果
  2. 结果融合
    • 对两路召回结果进行重排序(Rerank),融合相似度得分
    • 最终返回兼顾语义和关键词匹配的最优结果

3. 效果提升

混合检索相比单一稠密检索,RAG 场景的召回率提升 20%~40%,是当前生产级 RAG 系统的标准配置。


六、Milvus 中的稀疏向量支持

Milvus 2.5 + 版本原生支持稀疏向量,是少数同时支持稠密 + 稀疏混合检索的向量数据库:

1. 原生 BM25 稀疏向量

  • 无需额外对接 Elasticsearch,直接插入原始文本,Milvus 自动生成 BM25 稀疏向量并构建索引
  • 内置 Tantivy 搜索引擎,BM25 检索性能是 ES 的 3~7 倍
  • 支持和稠密向量在同一个 Collection 中进行混合检索

2. 稀疏向量索引

  • 支持 WAND(Weak AND)索引:专门为稀疏向量优化的索引,检索速度提升 10 倍
  • 支持稀疏向量的标量过滤、分区检索,和稠密向量用法完全一致

3. 混合检索 API

# Milvus 混合检索示例(稠密+BM25稀疏)
res = client.hybrid_search(
    collection_name="rag_knowledge",
    # 稠密检索参数
    dense_params={
        "data": [dense_query_vector],
        "anns_field": "dense_embedding",
        "limit": 10
    },
    # 稀疏BM25检索参数
    sparse_params={
        "data": "Milvus 2.5 JSON索引特性",  # 直接传文本,自动生成BM25稀疏向量
        "anns_field": "sparse_bm25",
        "limit": 10
    },
    # 融合方式:加权求和
    fusion_type="weighted_sum",
    output_fields=["content"]
)

总结:选型建议

场景 向量选型
快速原型、小知识库、通用语义检索 仅稠密向量
专业文档、法律 / 医疗知识库、电商搜索 稀疏 + 稠密混合检索
高 QPS、成本敏感、纯关键词匹配 仅稀疏向量
生产级 RAG 系统 稀疏 + 稠密混合检索 + Rerank 重排序
Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐