数据库支持快速近似最近邻查询

时间:2013-09-15 22:13:38

标签: database algorithm nearest-neighbor

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

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

  • 适用于数百万积分
  • 适用于数十万个维度
  • 可能使用封面树或局部敏感散列进行索引

是否存在强有力的实施?

3 个答案:

答案 0 :(得分:3)

ANN库对于高维大型数据集非常有效,但它不是一个完整的数据库"并不是分布式解决方案。

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

作为一条建议:你应该深入思考最近的邻居"真的意味着当你谈论"数十万个维度"。如果在20维立方体中取一百万个随机点,则任何两个最近邻居之间的平均距离大约是立方体边缘长度的一半。

这只会在您添加尺寸时呈指数级变差。一旦你谈论了数百个维度,如果它们在某种程度上均匀分布,你真的需要不可能的大量积分(例如> 10 30 );如果他们的分布不同,那么你最好采用其他分类方法。

答案 1 :(得分:1)

看看AnnDB

这是一个分布式的近似最近邻居数据库,可让您水平缩放到数百万个高维向量。

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

答案 2 :(得分:0)

您可能想看看Facebook的Faiss。

从文档中:

  

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

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

链接到项目-Faiss