以图搜图实现一之概要

1. 概观
我构建了Elasticsearch-Aknn(EsAknn),一个Elasticsearch插件,它在Elasticsearch中实现近似ķ近邻搜索密集浮点向量。这使数据工程师可以避免重建大规模KNN的基础架构,而是利用Elasticsearch经过验证的分布式基础架构。
为了演示插件,我用它来实现图像相似性搜索引擎,用于670万张微图像的语料库。我使用卷积神经网络将每个图像转换为1000维浮点特征向量。我使用EsAknn存储向量并在Elasticsearch集群上搜索最近邻居。

2.用例
EsAknn对于粗略表征的问题非常有用:
有大量的特征向量,维数为50〜1000〜。
需要使用K-近邻运行相似性搜索。
需要水平扩展以支持许多并发相似性搜索。
需要通过近实时插入来支持不断增长的语料库。即当创建/摄取新的矢量时,它应该可以在不到10分钟的时间内进行搜索。

3. 它与其他近似最近邻库相比如何?
如果您需要在线设置中使用KNN,并且支持水平可伸缩搜索并近实时索引新矢量,请考虑EsAknn(特别是如果您已经使用Elasticsearch)。

部署最近邻搜索提供的基础设施非常少。具体来说,你还是要考虑:
你在哪里存储数百万个向量和索引?
你如何处理许多并发搜索?
你如何处理不断增长的语料库
如何分发索引并使搜索容错?
谁管理您为这种简单算法构建的所有基础设施?
Elasticsearch已经解决了非平凡的基础设施问题,并且EsAknn在这个经过验证的基础设施上实现了近似的最近邻居索引和搜索。

EsAknn的LSH实现在近似最近邻方法的宏观方案中非常简单,但它很好地映射到Elasticsearch并且仍然产生高召回率.EsAknn的串行查询速度比其他近似最近邻库快得多,但它也不是为串行查询而设计的。相反,它旨在通过方便的HTTP端点提供多个并发搜索,近实时索引新向量,并使用Elasticsearch进行水平扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值