稠密向量与稀疏向量

稠密向量(Dense Vector)与稀疏向量(Sparse Vector)是向量表示的两种基本形式,核心区别在于信息密度适用场景的不同。稠密向量侧重于语义泛化,稀疏向量侧重于字面精确匹配

一、 稠密向量(Dense Vector)

1. 定义与特征

  • 定义:低维向量(通常几十到几千维),绝大部分元素为非零的连续实数(如 [0.12, -0.45, 0.78, …])。
  • 特征:信息紧凑,每一维代表抽象的语义特征,维度之间高度关联;计算效率高(适合GPU并行计算),但单条向量占用内存相对较大。

2. 生成方式

  • 主要通过深度学习模型(如 BERT、Word2Vec、ResNet 等)生成,通过上下文学习得到,能够捕捉数据的语义和上下文关系。

3. 适用场景

  • 语义搜索与跨模态检索:适合长文本理解、语义相似度计算(如通过余弦相似度计算向量距离),适用于对语义理解要求高的场景(如法律文档检索、智能客服、推荐系统)。

二、 稀疏向量(Sparse Vector)

1. 定义与特征

  • 定义:高维向量(通常数万到百万维),绝大部分元素为0,仅少数维度为非零值(如 [0, 0, 3.5, 0, 0, -1.2, 0, 0] 或 {2: 0.2, 9997: 0.5})。
  • 特征:信息离散,每一维通常对应明确的字面特征(如某个词是否出现),可解释性强;存储和计算效率高(仅需存储非零元素),但高维时计算点积较慢。

2. 生成方式

  • 主要通过传统统计方法生成,如词袋模型(Bag-of-Words)、TF-IDF、BM25 等,基于词频或字面匹配生成。

3. 适用场景

  • 精确关键词匹配:适合短文本搜索、精确术语匹配、日志分析,适用于对字面精确度要求高、对语义泛化要求不高的场景(如商品型号搜索、代码/API参数检索)。

三、 核心对比总结

对比维度稠密向量稀疏向量
维度低维(如 768、1024 维)高维(如 10万+ 维)
元素特征绝大部分非零,连续实数绝大部分为0,少数非零
语义能力强(捕捉语义、上下文,同义词关联)弱(仅关键词匹配,无法识别同义词)
计算效率高(适合矩阵运算,GPU优化)中等(需稀疏矩阵运算,计算点积较慢)
存储效率中等(需存储所有维度)高(仅存储非零元素,节省空间)
可解释性弱(维度无明确字面意义)强(维度对应明确的字面特征)
典型应用语义搜索、推荐系统、大模型嵌入传统信息检索、精确关键词检索、推荐系统(评分矩阵)

四、 实际应用建议

  • 单路检索:长文本、语义理解需求高时用稠密向量;短文本、精确关键词匹配需求高时用稀疏向量。
  • 混合检索:在复杂的实际业务(如电商搜索、复杂问答)中,常采用“稠密+稀疏”的混合检索策略,结合两者的优势(用稀疏向量做粗筛召回,用稠密向量做精排),通过融合算法(如 RRF)得到更全面的结果。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注