Milvus作为一款开源的向量数据库,专为高性能、高可用的向量数据管理与检索设计,已成为处理海量非结构化数据的核心工具之一。
其架构融合了分布式存储与索引机制,通过模块化设计实现了存储、计算和检索的高效协同
FAISS(Facebook AI Similarity Search)作为一款高效的向量搜索工具,在大规模高维数据的索引与检索中展现了卓越的性能。
FAISS是一个开源的向量检索库,专为高效的相似性搜索和密集向量聚类任务设计,适用于大规模数据集处理场景,
FAISS支持多种索引类型,用于满足不同场景下的向量检索需求。
Flat索引以高精度著称,但计算量较大,适合小规模数据集;
IVF(Inverted File)索引通过分区减少计算量,适合中等规模的数据场景;
HNSW(Hierarchical Navigable Small World)索引则在大规模高维向量检索中展现出了高效性。
近似最近邻(ANN)算法
若直接计算所有向量的余弦相似度,检索效率会很低,例如处理 100 万向量时,计算量将达到 100 万次 。
为提升检索速度,向量数据库采用近似最近邻(ANN, Approximate Nearest Neighbor)算法 。
该算法通过构建索引(如树形结构或图结构),快速缩小搜索范围,虽然会牺牲一点精度,
但时间效率大幅提升,且误差可控制在 1% 以内 。
常见的 ANN 算法有:
FAISS(Facebook 开源):采用倒排文件 + PQ 量化,适合大规模数据处理;
HNSW(层次化可导航小世界图):利用图结构连接相似向量,适合实时检索场景 。
向量数据库的核心能力之一是 “快速计算两个向量的相似度”,最常用的算法是余弦相似度(Cosine Similarity)
两个向量在空间中的夹角越小,其相似度越高
向量化将原始数据(文本、图片等)映射到高维向量空间(常见维度有 128 维、512 维、768 维等),
每个数据对应空间中的一个点,点之间的距离(或夹角)反映数据的语义相似性 。
杰卡德相似度是衡量集合相似性的重要指标,特别适合用于稀疏向量场景。
稀疏向量通常由高维数据中大部分元素为零的特性构成,例如文本数据的词频矩阵或用户行为矩阵。
通过计算交集与并集的比例,杰卡德相似度能够有效评估稀疏向量之间的相似性。
杰卡德相似度定义为两个集合交集的大小除以并集的大小,例如用户行为分析和文本检索。
杰卡德相似度因其适用于稀疏向量的特点,在推荐系统中具有重要意义
曼哈顿距离又称为“城市街区距离”,通过计算两个点之间在每个维度上的绝对差值之和来测量它们的距离。
其几何意义可以理解为在网格化路径中沿坐标轴移动的总距离,而不是欧氏距离中的直线距离。
曼哈顿距离适用于网格化空间、离散数据和不关注对角线方向的场景,例如物流路径规划、棋盘问题等
HNSW利用分层图结构和高效的搜索路径优化,能够在复杂的高维空间中实现高精度的近邻搜索,其在推荐系统中展现出了显著的效果。
LSH通过哈希函数将向量快速分桶,显著减少了候选向量的数量,适用于大规模数据的快速初筛。
局部敏感哈希(Locality Sensitive Hashing,LSH)是一种通过哈希函数对高维数据进行分区,从而实现高效相似性搜索的技术。
LSH的核心在于设计特殊的哈希函数,使得相似的数据点倾向于被分配到相同的哈希桶中,减少搜索范围
在海量数据的向量检索中,暴力搜索因计算复杂度较高而难以满足性能需求,
分层定位(Hierarchical Navigable Small World,HNSW)和局部敏感哈希(Locality-Sensitive Hashing,LSH)成为解决高效检索问题的重要技术。
HNSW是一种基于图结构的高效近邻搜索算法,其核心思想是通过构建分层图索引,在高维空间中快速找到近邻向量
第一页
上一页
下一页
最后一页