向量数据库学习笔记
(2023-07-23 13:44:35)
标签:
向量数据库 |
分类: 工作学习 |
今天学习了向量数据库
(guangzhengli.com),学习笔记总结如下:
向量数据库相似性搜索主要思想是通过两种方式提高搜索效率:
1. 减少向量大小——通过降维或减少表示向量值的长度。
2.
缩小搜索范围——可以通过聚类或将向量组织成基于树形、图形结构来实现,并限制搜索范围仅在最接近的中进行,或者通过最相似的分支进行过滤。
向量数据库主要会用到的一些搜索算法(搜索算法都是在速度和质量还有内存上做一个权衡,这些算法也被称为近似最相邻Approximate
Nearest Neighbor,即ANN算法):
1. 聚类算法k-means,将向量拆分到K个聚类中心,通过先识别聚类中心来减小搜索范围。
2.
为了避免聚类边界处的最相似向量漏掉(搜索条件与搜索结果落入2个相邻的聚类中),引入的Faiss算法,在K-means基础上设置nprobe,即搜索最相近的n个聚类
3. 为了减少聚类算法所需维护的内存(聚类和向量、向量中心索引),引入了乘机量化算法(Product
Quantization,即PQ):
4. Hierarchical Navigable Small Worlds
(HNSW)算法,用构建树或图的方式实现ANN。
5. 局部敏感哈希LSH(Locality Sensitive Hashing),使用hash桶来判断相似性
6. Random Projection for LSH 随机投影
除了搜索算法,还需要做相似性测量,用于计算向量间的距离。
1. 欧几里得距离(Euclidean Distance)
2. 余弦相似度
3. 点积相似度
元数据过滤,向量搜索的结果需要考虑业务元数据层面的筛选需求。
1. 向量数据库通常维护两个索引:一个是向量索引,另一个是元数据索引。
2. 在进行相似性搜索本身之前或之后执行元数据过滤
向量数据库的分布式
1. 数据分片需要基于向量的相似性进行分片
2. 数据一致性与安全性与普通分布式数据库同
转载请注明转自高孝鑫的博客!
前一篇:保险养老金业务粗析