mongdb ngt_NGT:用于高速近似最近邻居搜索的库

文章介绍了NGT,一个由Yahoo日本开发的用于高维数据近似最近邻搜索的高性能开源库。NGT结合了图形和树结构,提供高效搜索性能。文章详细阐述了如何在Linux环境下安装NGT,使用命令行工具和Python API进行数据集生成、指标建设及近似最近邻搜索操作。
摘要由CSDN通过智能技术生成

mongdb ngt

深度学习中使用近似最近邻( ANN )搜索,以在给定集合中与另一点最相似的点进行最佳猜测。 本文介绍了ANN搜索与传统搜索方法之间的区别,并介绍了NGT ,这是Yahoo!开发的性能最高的开源ANN库。 日本研究

最近邻居搜索高维数据

此外,向量不仅代表源数据的文本和图像特征,而且还代表产品,人类,组织等。 因此,您可以搜索相似的文档和图像,以及具有相似属性的产品,具有相似技能的人,具有相似特征的服装等。 例如, Yahoo! 日本使用NGT提供了基于相似度的时尚商品搜索。

Nearest neighbour search

由于深度学习模型中的维数趋于增加,因此当搜索超过数百万个高维向量时,ANN搜索方法必不可少。 ANN搜索方法使您可以在高维空间中搜索指定查询向量的邻居。

有很多近邻搜索方法可供选择。 ANN Benchmarks评估了最著名的ANN搜索方法,包括Faiss(Facebook),Flann和Hnswlib。 根据此基准,NGT达到了顶级性能。

NGT算法

NGT索引结合了图形和树。 该结果具有非常好的搜索性能,其中图形的顶点表示可搜索的对象。 相邻的顶点通过边连接。

该动画显示了如何构造图。

NGT graph construction

在搜索过程中,可以找到指定查询的相邻顶点从图形下降。 密集连接的顶点使用户可以有效地浏览图形。

NGT graph

NGT提供了命令行工具,以及C,C ++和Python API。 本文重点介绍命令行工具和Python API。

在命令行工具中使用NGT

Linux安装

NGT最新版本下载为ZIP文件,并通过以下方式将其安装在Linux上:


   
   
   
unzip NGT-x.x.x.zip
cd NGT-x.x.x
mkdir build
cd build
cmake ..
make
make install

由于NGT库默认情况下安装在/ usr / local / lib(64)中 ,因此将目录添加到搜索路径:


   
   
   
export PATH = " $PATH :/opt/local/bin"
export LD_LIBRARY_PATH = " $LD_LIBRARY_PATH :/usr/local/lib"

样本数据集生成

在搜索大规模数据集之前,必须生成NGT数据集。 例如,从fastText网站 下载 fastText

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值