首页 > 作文

百度识图搜索

更新时间:2023-03-01 03:47:45 阅读: 评论:0

稻盛和夫是什么人-如何申请护照

百度识图搜索
2023年3月1日发(作者:外国教育)

以图搜图实现四之ElastiarchAknn插件Api使⽤及其性能

1.创建LSH模型

给定⽮量样本,创建局部敏感散列(LSH)模型并将其存储为Elasticarch⽂档。

POST:9200/_aknn_create

{

“_index”:“aknn_models”,

“_type”:“aknn_model”,

“_id”:“twitter_image_arch”,

“_source”:{

“_aknn_description”:“LSHmodelforTwitterimagesimilarityarch”,

“_aknn_nb_tables”:64,

“_aknn_nb_bits_per_table”:18,

“_aknn_nb_dimensions”:1000

},

“_aknn_vector_sample”:[

#Provideasampleof2*_aknn_nb_tables*_aknn_nb_bits_per_tablevectors

[0.11,0.22,…],

[0.22,0.33,…],

[0.88,0.99,…]

]

}

返回:

{“took”:}

2.索引新向量

给定⼀批新向量,使⽤预定义的LSH模型对每个向量进⾏散列,并将其原始值和散列值存储在Elasticarch⽂档中。

POST:9200/_aknn_index

{

“_index”:“twitter_images”,

“_type”:“twitter_image”,

“_aknn_uri”:“aknn_models/aknn_model/twitter_image_arch”

“_aknn_docs”:[

{

“_id”:1,

“_source”:{

“_aknn_vector”:[0.12,0.23,…],

#Anyotherfieldsyouwant...

}

},...

]

}

返回:

{“took”:,“size”:}

3.相似性搜索

给定索引中的向量,搜索并返回其最近邻居。

GET:9200/twitter_images/twitter_image/1/_aknn_arch?k1=1000&k2=10

返回:

{

“took”:,

“timed_out”:fal,

"hits":{

"max_score":0,

"total":,

"hits":[

{

"_id":"...",

'_index':"twitter_images",

"_score":,

'_source':{

#Allofthedocumentfieldxceptforthepotentially

#largefieldscontainingthevectorandhashes.

}

},...

]

}

}

4.履⾏

关于实施的关键事项是:

EsAknn完全在现有的Elasticarch集群/节点中运⾏。它作为⼀组HTTP端点处理程序有效运⾏,并通过JavaClientAPI与

Elasticarch进⾏对话。

搜索可以并⾏运⾏。可以使⽤循环策略并⾏地在多个节点上索引新向量。单个节点上的并⾏索引尚未经过⼴泛测试。

EsAknn使⽤LocalitySensitiveHashing将浮点向量转换为离散表⽰,可以在Elasticarch中对其进⾏有效索引和检索。

EsAknn将LSH模型和向量存储为标准⽂档。

EsAknn使⽤Bool查询k1根据离散哈希查找近似最近邻居。然后计算到这些近似邻居的确切距离并返回k2最近的邻居。例如,您可以设置

k1=1000和k2=10。

EsAknn⽬前仅实现欧⼏⾥德距离,但可以添加与LSH兼容的任何距离函数。

5.性能速度

EsAknn的速度通常表征为:

创建⼀个新的LSH模型:<1分钟。

索引新向量:每秒数百到数千。

搜索向量的邻居:<500毫秒。搜索时间与语料库的⼤⼩呈线性关系。

语料库与搜索时间通常遵循如下的⼦线性模式:

除此之外,速度是以下因素的函数:

向量的维度。

LSH模型中的表(也称为散列函数或树)的数量。

LSH模型中哈希值的位数。

检索到的近似邻居数量,k1。

返回的确切邻居数量,k2。

在图像相似性搜索引擎中,您可以看到针对670万个1000维向量的索引的搜索很少超过200毫秒。

6.召回

Recall定义为为搜索返回的真实最近邻居的⽐例,可以在各种值下进⾏评估k2。例如,如果您知道您的应⽤程序需要检索前⼗个最相似的项

⽬,那么您应该评估召回时间k2=10。

与速度类似,召回取决于LSH配置。增加k1通常是增加召回的最简单⽅法,但表和位的数量也起着重要作⽤。找到最⼤化调⽤和最⼩化搜

索时间的配置可以被认为是超参数优化的⼀种形式。

下图表明,可以在各种语料库⼤⼩中找到具有⾼召回率和低搜索时间的配置。绘制的点代表召回/搜索时间的“前沿”。也就是说,我在许

多配置上运⾏基准测试,并选择具有最低中值搜索时间的配置,⽤于三个语料库⼤⼩的每次中值调⽤。

下表显⽰了每个语料库⼤⼩,中位数回忆,中位数搜索时间和中位数回忆的组合的最佳配置>=0.5。

语料库⼤⼩医学。召回医学。搜索时间K1_aknn_nb_tables_aknn_nb_bits_per_table

0百万2

1百万0.91

2百万0.86210005016

3百万0.7495005016

4百万0.6432505016

五百万0.5502505019

610012

71000000.9215005014

81000000.8142505018

91000000.7111005014

101000000.6111005019

111000000.514500108

1218

13100000.9五1005012

14100000.8五1005018

15100000.76250108

16100000.661510018

17100000.53155014

本文发布于:2023-03-01 03:47:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/167761366589171.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:百度识图搜索.doc

本文 PDF 下载地址:百度识图搜索.pdf

上一篇:三八祝福
下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26 专利检索|