RAG:七种用于向量数据库+相似性搜索的索引方法 原创

发布于 2025-1-26 09:13
浏览
0收藏

01、概述

在现代数据库类型中,尽管关系型数据库(Relational DB)、NoSQL数据库和图数据库(Graph DB)各有千秋,但在RAG(Retrieval-Augmented Generation)系统中,Vector DB却成为首选。它不仅支持水平扩展,还能结合CRUD操作(Create, Read, Update, Delete)提供元数据过滤功能,大幅提升数据检索效率和智能性。

本文将带你全面解析Vector DB,从基础概念、工作原理到查询加速的核心算法,帮助你更好地理解其强大功能及在RAG管道中的不可替代性。

02、为什么选择Vector DB?

在一个包含1000份文档的RAG系统中,假设我们将文档分块并嵌入到向量空间,生成三维向量,存储词条如“dog”“cat”“ball”。当用户查询“horse”时,传统关系型数据库只能检索精确匹配的记录,而Vector DB通过近似最近邻搜索(Approximate Nearest Neighbour, ANN),能够返回“donkey”这一语义上最相似的记录。

这种语义匹配能力使得Vector DB在知识增强生成(RAG)系统中脱颖而出。无论是回答简单查询,还是在高维向量空间中发现隐藏的语义关联,Vector DB的性能和灵活性都远胜其他类型数据库。

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

03、Vector DB与其他数据库对比

主要数据库类型及其应用场景

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

与其他数据库相比,Vector DB最大的特点是能以高效方式存储和检索高维向量。它不仅仅是数据存储工具,更是支持语义推理和智能查询的基础设施。

04、Vector DB的核心工作原理

Vector DB的关键在于存储和高效检索高维向量,其主要流程包括:

  1. 索引构建(Indexing)
  2. 查询处理(Querying)
  3. 后处理(Post-Processing)

以下将重点介绍索引构建中的关键算法,以及如何通过查询和相似性度量加速检索过程。

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

05、索引构建:加速查询的核心算法

索引是Vector DB性能的基石。良好的索引设计可在保证查询精度的前提下,大幅提升检索速度。以下是几种常见索引构建算法:

1) Flat Index(全量比较)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

Flat Index采用暴力搜索方法,将每个查询点与数据库中的所有向量逐一比较,返回与查询点最接近的k个向量。

  • 优点:精度最高,适合对查询结果要求极高的场景。
  • 缺点:速度慢,尤其在高维数据和大规模数据集上。

2) 局部敏感哈希(Local Sensitivity Hashing, LSH)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

LSH通过哈希函数将相似的高维向量分组至相同的哈希桶中,只需在对应桶内搜索即可。

  • 特点:适合处理包含大量相似向量的大型数据集。
  • 挑战:哈希函数和桶大小的选择直接影响性能。

3) 层次化小世界图(Hierarchical Navigable Small World, HNSW)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

HNSW是一种基于图结构的算法,分层存储向量数据。每一层的节点通过边相连,边的权重表示相似性。

  • 工作原理:查询时从顶层随机节点开始,逐层向下搜索相似节点,最终在底层找到最相似的向量。
  • 优势:高效处理大规模数据,查询速度快。

4) 倒排文件索引(Inverted File Indexing, IVF)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

IVF通过聚类算法将向量划分为多个簇,并构建簇的索引。查询时仅需在相关簇中进行搜索。

  • 特点:通过控制簇的数量(nprobes)权衡精度与速度。
  • 应用:适合中等规模数据集的快速查询。

5) 产品量化(Product Quantization, PQ)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

PQ将高维向量分割为多个子向量,每个子向量通过k-means算法聚类,并存储其代表性质心。

  • 优点:显著减少存储需求,同时保持相似性信息。
  • 适用场景:需要在存储和性能之间寻求平衡的应用。

6) Spotify的ANNOY算法

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

ANNOY通过递归分割向量空间构建层次化索引,查询时沿层次结构搜索直到叶节点。

  • 特点:轻量、高效,特别适合小型数据集或实时场景。

7) 随机投影(Random Projection)

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

随机投影通过随机矩阵将高维向量映射到低维空间,保留向量间的相似性关系。

  • 优点:大幅减少维度,同时保留查询的准确性。
  • 应用:适合维度极高的数据集。

06、查询与相似性度量

RAG:七种用于向量数据库+相似性搜索的索引方法-AI.x社区

查询的核心是衡量向量间的相似性,以下是常见的相似性度量方式:

  1. 点积(Dot Product):衡量两个向量间的点积值,适合高维空间的相似性计算。
  2. 余弦相似度(Cosine Similarity):计算向量间夹角的余弦值,范围从-1到1。
  3. 欧几里得距离(Euclidean Distance):计算两向量间的直线距离,用于衡量绝对相似性。

07、总结与展望

Vector DB在RAG管道中的核心作用在于通过高效的索引与查询算法,支持语义相似性检索,弥补传统数据库在智能性上的不足。从Flat Index到HNSW,每种算法各有优劣,可根据具体应用场景选择合适的方案。


参考:

  1. ​https://www.ai-bites.net/rag-7-indexing-methods-for-vector-dbs-similarity-search/​


本文转载自公众号Halo咯咯    作者:基咯咯

原文链接:​​https://mp.weixin.qq.com/s/hGdzMGqw168a8S8gCSNtzA​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-1-26 09:16:16修改
收藏
回复
举报
回复
相关推荐