RAG:七種用于向量數據庫+相似性搜索的索引方法 原創
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的性能和靈活性都遠勝其他類型數據庫。
03、Vector DB與其他數據庫對比
主要數據庫類型及其應用場景
與其他數據庫相比,Vector DB最大的特點是能以高效方式存儲和檢索高維向量。它不僅僅是數據存儲工具,更是支持語義推理和智能查詢的基礎設施。
04、Vector DB的核心工作原理
Vector DB的關鍵在于存儲和高效檢索高維向量,其主要流程包括:
- 索引構建(Indexing)
- 查詢處理(Querying)
- 后處理(Post-Processing)
以下將重點介紹索引構建中的關鍵算法,以及如何通過查詢和相似性度量加速檢索過程。
05、索引構建:加速查詢的核心算法
索引是Vector DB性能的基石。良好的索引設計可在保證查詢精度的前提下,大幅提升檢索速度。以下是幾種常見索引構建算法:
1) Flat Index(全量比較)
Flat Index采用暴力搜索方法,將每個查詢點與數據庫中的所有向量逐一比較,返回與查詢點最接近的k個向量。
- 優點:精度最高,適合對查詢結果要求極高的場景。
- 缺點:速度慢,尤其在高維數據和大規模數據集上。
2) 局部敏感哈希(Local Sensitivity Hashing, LSH)
LSH通過哈希函數將相似的高維向量分組至相同的哈希桶中,只需在對應桶內搜索即可。
- 特點:適合處理包含大量相似向量的大型數據集。
- 挑戰:哈希函數和桶大小的選擇直接影響性能。
3) 層次化小世界圖(Hierarchical Navigable Small World, HNSW)
HNSW是一種基于圖結構的算法,分層存儲向量數據。每一層的節點通過邊相連,邊的權重表示相似性。
- 工作原理:查詢時從頂層隨機節點開始,逐層向下搜索相似節點,最終在底層找到最相似的向量。
- 優勢:高效處理大規模數據,查詢速度快。
4) 倒排文件索引(Inverted File Indexing, IVF)
IVF通過聚類算法將向量劃分為多個簇,并構建簇的索引。查詢時僅需在相關簇中進行搜索。
- 特點:通過控制簇的數量(nprobes)權衡精度與速度。
- 應用:適合中等規模數據集的快速查詢。
5) 產品量化(Product Quantization, PQ)
PQ將高維向量分割為多個子向量,每個子向量通過k-means算法聚類,并存儲其代表性質心。
- 優點:顯著減少存儲需求,同時保持相似性信息。
- 適用場景:需要在存儲和性能之間尋求平衡的應用。
6) Spotify的ANNOY算法
ANNOY通過遞歸分割向量空間構建層次化索引,查詢時沿層次結構搜索直到葉節點。
- 特點:輕量、高效,特別適合小型數據集或實時場景。
7) 隨機投影(Random Projection)
隨機投影通過隨機矩陣將高維向量映射到低維空間,保留向量間的相似性關系。
- 優點:大幅減少維度,同時保留查詢的準確性。
- 應用:適合維度極高的數據集。
06、查詢與相似性度量
查詢的核心是衡量向量間的相似性,以下是常見的相似性度量方式:
- 點積(Dot Product):衡量兩個向量間的點積值,適合高維空間的相似性計算。
- 余弦相似度(Cosine Similarity):計算向量間夾角的余弦值,范圍從-1到1。
- 歐幾里得距離(Euclidean Distance):計算兩向量間的直線距離,用于衡量絕對相似性。
07、總結與展望
Vector DB在RAG管道中的核心作用在于通過高效的索引與查詢算法,支持語義相似性檢索,彌補傳統數據庫在智能性上的不足。從Flat Index到HNSW,每種算法各有優劣,可根據具體應用場景選擇合適的方案。
參考:
本文轉載自公眾號Halo咯咯 作者:基咯咯
原文鏈接:??https://mp.weixin.qq.com/s/hGdzMGqw168a8S8gCSNtzA??
