10

是否有支持高维向量空间中快速近似最近邻查询的数据库?

我正在寻找适合以下用例的数据库:

  • 适用于数百万点
  • 适用于数十万维度
  • 可能使用覆盖树或局部敏感散列进行索引

是否存在一个强大的实现?

4

3 回答 3

3

ANN库非常适用于高维大型数据集,但它不是一个完整的“数据库”,也不是一个分布式解决方案。

有一家名为 SpaceCurve 的初创公司(与我无关)致力于商业空间数据库,因此根据您的需求和预算,它们可能值得研究。

作为一条建议:当您谈论“十万维”时,您应该深入思考“最近的邻居”的真正含义。如果你在一个 20 维的立方体中取一百万个随机点,任何两个最近邻之间的平均距离已经大约是立方体边缘长度的一半。

当您添加维度时,这只会以指数方式变得更糟。一旦你谈论数百个维度,如果它们有点均匀分布,你真的需要大量的点(比如 > 10 30 );如果它们分布不同,则最好使用其他分类方法。

于 2013-09-16T00:51:51.193 回答
1

看看AnnDB

它是一个分布式近似最近邻数据库,可让您水平扩展至数百万个高维向量。

免责声明:我是 AnnDB 的作者。

于 2020-04-14T06:52:10.470 回答
0

你可能想看看 Facebook 的 Faiss。

从文档中:

Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量集中搜索的算法,直到那些可能不适合 RAM 的向量

请注意,它仅适用于 L2(欧几里得)距离和点积。

项目链接 - Faiss

于 2019-05-02T11:54:49.713 回答