是否有支持高维向量空间中快速近似最近邻查询的数据库?
我正在寻找适合以下用例的数据库:
- 适用于数百万点
- 适用于数十万维度
- 可能使用覆盖树或局部敏感散列进行索引
是否存在一个强大的实现?
是否有支持高维向量空间中快速近似最近邻查询的数据库?
我正在寻找适合以下用例的数据库:
是否存在一个强大的实现?
ANN库非常适用于高维大型数据集,但它不是一个完整的“数据库”,也不是一个分布式解决方案。
有一家名为 SpaceCurve 的初创公司(与我无关)致力于商业空间数据库,因此根据您的需求和预算,它们可能值得研究。
作为一条建议:当您谈论“十万维”时,您应该深入思考“最近的邻居”的真正含义。如果你在一个 20 维的立方体中取一百万个随机点,任何两个最近邻之间的平均距离已经大约是立方体边缘长度的一半。
当您添加维度时,这只会以指数方式变得更糟。一旦你谈论数百个维度,如果它们有点均匀分布,你真的需要大量的点(比如 > 10 30 );如果它们分布不同,则最好使用其他分类方法。
你可能想看看 Facebook 的 Faiss。
从文档中:
Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量集中搜索的算法,直到那些可能不适合 RAM 的向量
请注意,它仅适用于 L2(欧几里得)距离和点积。
项目链接 - Faiss