CN111026922A - 一种分布式向量索引方法、系统、插件及电子设备 - Google Patents
一种分布式向量索引方法、系统、插件及电子设备 Download PDFInfo
- Publication number
- CN111026922A CN111026922A CN201911369320.3A CN201911369320A CN111026922A CN 111026922 A CN111026922 A CN 111026922A CN 201911369320 A CN201911369320 A CN 201911369320A CN 111026922 A CN111026922 A CN 111026922A
- Authority
- CN
- China
- Prior art keywords
- vector
- retrieved
- hash value
- original
- vectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 title claims abstract description 408
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 238000005520 cutting process Methods 0.000 claims description 65
- 238000003860 storage Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 15
- 230000011218 segmentation Effects 0.000 description 15
- 230000009286 beneficial effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/5866—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种分布式向量索引方法、系统、插件及电子设备,利用在预设配置中预存的LSH算法对各原始向量进行处理得到Hash值,将入库Hash值以Term形式存入ElasticSearch中的向量字段中,并将相应的各原始向量也存入向量字段,完成入库;当用户输入待检索字段值时,利用设定配置中的LSH算法将待检索字段值进行处理后生成待检索Hash值,然后通过BooleanQuery检索出待检索Hash值的相关Term,进而得到相关Term的原始向量,再根据相似度计算方法按照顺序返回结果,可按照预设配置将文字、图片等转为入库Hash值以及Term存入向量字段后完成入库,在用户进行检索文字、图片等时,也会将其转为待检索Hash值,根据待检索Hash值可精确的从向量字段中完成精确检索,实现混合检索。
Description
技术领域
本发明涉及检索领域,尤其涉及一种分布式向量索引方法、系统、插件及电子设备。
背景技术
随着图片处理、自然语言处理等领域的发展,对高效、高质量的图片检索以及自然语言检索的需求日益增加,对全文检索、图片检索等领域混合检索的需求也日益突显,目前常用的技术手段有:
1)Faiss:由Facebook AI Research开发,是一个用于相似性搜索和密集向量聚类的高性能库,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。它包含多种搜索任意大小向量集的算法,以及用于算法评估和参数调整的支持代码。Faiss用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现;
2)申请号为CN201711242168.3、主题名称为“基于位置敏感哈希的分布式向量检索方法及系统”的发明专利:利用图像哈希值比对形成相似图像的目标图像集;利用分布式计算资源计算目标图像集中图像与待检索图像的特征向量的距离,以此确定相似图像,本发明提供检索方案能够大大提高图像检索的速度和精准度;
3)申请号为“201110125682.5”、主题名称为“支持向量检索的Web服务管理方法”的发明专利:第一步、采用词频TF/逆向文件频率IDF方法,对Web服务相应描述信息进行向量化;第二步、产生方法聚类背景;第三步、产生k维方法向量;第四步、生成向量服务格。充分利用Web服务向量描述和形式概念分析来建立一个基于方法向量概念的向量服务格,实现了在向量服务格采用基于向量的方法检索Web服务的方法,且发明人从理论和实验两个方面,都充分证明了该技术方法的可行性,以及具有优越的性能。这是其他技术和方法所不具备的,该技术填补了相关研究和技术领域的空白,并且具有广泛的实际应用价值;
4)申请号为“CN201910490118.X”、主题名称为“向量检索方法、装置和设备”的发明专利:首先提取检索对象的特征向量,然后从图形处理器GPU中获取与特征向量相似的向量,作为第一部分相似向量,从中央处理器CPU中获取与特征向量相似的向量,作为第二部分相似向量;最后,根据第一部分相似向量和第二部分相似向量,确定检索对象的检索结果;
5)申请号为“201810064350.2”、主题名称为“空间划分树与邻近图结合的向量检索技术”的发明专利:综合利用了空间划分树和基于邻近图这两种技术,构建出的一种基于联合索引的向量检索方案,先利用空间划分树索引进行粗粒度定位,然后再利用邻近图索引进行进一步向量检索,从而提高向量检索的效率。
6)申请号为“201310365592.2”、主题名称为“一种结合聚类和双key值的高维向量检索方法”的发明专利:首先采用聚类算法对高维向量集进行簇划分,然后为各簇数据构建双key值扩展B+-tree,形成CDKB-tree。进行检索时,只需对与查询范围相交的簇数据进行搜索,通过聚类实现第一次过滤,并通过主key和辅key(双key值),实现两次key值过滤,只需对主key和辅key均在搜索范围内的那些高维向量与查询向量间进行相似度匹配计算。本发明提出的索引结构通过聚类及简单的双key值大小比较,大大地减少了相似度匹配的运算量,极大地加快了检索速度。
但是,上述现有技术均不能实现图片检索、全文检索等不同检索方式的混合检索。
因此,如何实现能进行不同检索方式的混合检索是业内亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种分布式向量索引方法、系统、插件及电子设备。
本发明的一种分布式向量索引方法的方法的技术方案如下:
S1、将多个字段值分别转为相应的各原始向量,并利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
S2、将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
S3、利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
S4、利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
本发明的一种分布式向量索引方法的有益效果是:
利用在预设配置中预存的LSH算法对各所述原始向量进行处理处理得到入库Hash值,将生成的入库Hash值以Term形式存入ElasticSearch中的向量字段中,并将相应的各原始向量也存入向量字段,完成入库;当用户设定配置,当用户输入待检索字段值时,利用设定配置中的LSH算法将待检索字段值进行处理后生成待检索Hash值,然后通过BooleanQuery从入库后的向量字段中检索出待检索Hash值的相关Term,进而得到相关Term的原始向量,再根据相似度计算方法按照顺序返回结果,保证检索的精确度,其中,可按照预设配置将文字、图片等转为入库Hash值以及term存入向量字段后完成入库,在用户进行检索文字、图片等时,也会将其转为待检索Hash值,根据待检索Hash值可精确的从向量字段中完成精确检索,即实现了一种能进行不同检索方式的混合检索的分布式向量索引方法。
在上述方案的基础上,本发明的一种分布式向量索引方法还可以做如下改进。
进一步,S1中具体包括如下步骤:
S10、根据所述预设配置确定是否对各所述原始向量进行分段,若是,则执行S11,若否,则执行S12;
S11、对各所述原始向量进行拆分后形成多段拆分原始向量,利用所述预设配置中的LSH算法生成割面后对各所述拆分原始向量进行处理得到各相应的入库Hash值,记为分段入库Hash值;
S12、利用所述预设配置中的LSH算法生成割面后对各所述原始向量进行处理后得到各相应的入库Hash值,记为未分段入库Hash值;
S13、将各分段入库Hash值或各未分段入库Hash值以Term形式存入所述向量字段中,并将相应的各所述拆分原始向量或各所述原始向量存入所述向量字段。
采用上述进一步方案的有益效果是:对各原始向量进行分段处理后,提高了Hash的质量。
进一步,S2中具体包括如下步骤:
S20、根据所述设定配置确定是否对所述待检索向量进行分段,若是,则执行S21,若否,则执行S22;
S21、对所述待检索向量进行拆分后形成多段待检索拆分原始向量,利用所述设定配置中的LSH算法生成割面后对各所述待检索拆分原始向量进行处理得到各相应的待检索Hash值,记为分段待检索Hash值;
S22、利用所述设定配置中的LSH算法生成割面后对所述待检索向量进行处理得到各相应的待检索Hash值,记为未分段待检索Hash值。
采用上述进一步方案的有益效果是:对各待检索向量进行分段进行分段处理后,提高了Hash的质量。
进一步,S3和S4具体为:
利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述分段待检索Hash值或所述未分段待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量或拆分原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量或拆分原始向量进行排序后,按照顺序返回所述结果。
进一步,所述LSH算法随机生成割面,或,所述LSH算法生成割面的过程具体为:S100、在高维空间中随机生成多个向量,且每次随机选择其中一个向量的一个维度的斜率作为未知量;
S101、在各所述原始向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
采用上述进一步方案的有益效果是:
1)LSH算法随机生成割面时,对高维向量空间进行分割,根据不同特征向量所处的位置不同,对特征向量进行分类,从而加快检索效率;
2)但由于LSH算法随机生成割面时,无法保证割面有效生成在特征向量分布的范围内,导致无法对大量的特征向量进行有效分类,同时浪费了CPU算力,因此可对LSH算法进行优化,即:可在高维空间中随机生成向量,且每次随机选择一个维度的斜率作为未知量,在各所述原始向量和所述待检索向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成割面,避免随机生成随带来的弊端,生成有效性更高的割面,且能保证检索效率。
进一步,S100之后还包括如下步骤:S1000、利用聚类方法在各所述原始向量中生成多个不同的聚类中心,将各所述聚类中心带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
采用上述进一步方案的有益效果是:即便用上述方案生成了有效性更高的割面,以确保每次hash均能有效切分各原始向量,但是也可能会出现切分不均匀的情况,即大量原始向量的数据点出现在相同的切分子空间中,少量原始向量的数据点出现在不同的切分子空间中,此时采用聚类方法如k-means方法,得到k个不同的聚类中心,以替代在各所述原始向量和所述待检索向量中随机选择多个数据点,避免上述问题,而且,在高维空间中,几乎所有数据点对之间的距离都接近相等,基于距离的聚类算法表现很差,当经过上述分段处理后,即先将高维空间切分为多段,进行降维后会提高聚类算法的表现。
进一步,还包括如下步骤:利用所述预设配置中的LSH算法和所述设定配置中的LSH算法生成所述入库Hash值和所述待检索Hash值时,在所述入库Hash值和所述待检索Hash值分别增加相应的前缀。
采用上述进一步方案的有益效果是:有效避免向量字段膨胀问题。
本发明的一种分布式向量索引系统的技术方案:包括入库模块、检索模块,所述入库模块根据预设配置将多个字段值分别转为相应的各原始向量,并利用在所述预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
所述检索模块将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
所述检索模块还利用BooleanQuery从ElasticSearch的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
所述检索模块还利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回与各所述相关Term的原始向量。
本发明的一种分布式向量索引系统的有益效果如下:
利用入库模块在预设配置中预存的LSH算法对各所述原始向量进行处理后得到入库Hash值,将生成的入库Hash值以Term形式存入ElasticSearch中的向量字段中,并将相应的各原始向量也存入向量字段,完成字段值入库;当用户设定配置,并输入待检索字段值时,利用设定配置中的LSH算法将待检索字段值进行处理后生成待检索Hash值,然后通过BooleanQuery从入库后的向量字段中检索出待检索Hash值的相关Term,进而得到相关Term的原始向量,再根据相似度计算方法按照顺序返回结果,保证检索的精确度,其中,可按照预设配置将文字、图片等转为入库Hash值以及term存入向量字段后完成入库,在用户进行检索文字、图片等时,也会将其转为待检索Hash值,根据待检索Hash值可精确的从向量字段中完成精确检索,即实现了一种能进行不同检索方式的混合检索的分布式向量索引方法。
本发明的一种分布式向量索引插件的技术方案为:所述插件用于执行上述任一项所述的一种分布式向量索引方法。
本发明的一种分布式向量索引插件的有益效果是:以插件形式扩展了ElasticSearch固有的功能,提供了入库以及检索两套工具。将该插件集成至ElasticSearch之中,随ElasticSearch的启动运行,不需要运行额外的程序,更加方便、快捷。
本发明的一种电子设备的技术方案为:包括存储器、处理器以及上述插件,所述插件安装在所述存储器上并在所述处理器上运行。
本发明的一种电子设备的技术效果是:实现了一种可进行不同检索方式的混合检索的电子设备。
附图说明
图1为本发明实施例的一种分布式向量索引方法的流程示意图;
图2为LSH算法随机生成割面来分割特征向量集的示意图;
图3为随机选择特征向量作为数据点所生成的割面来分割特征向量集的示意图;
图4为使用聚类中心所生成的割面来分割特征向量集的示意图;
图5为本发明实施例的一种分布式向量索引方法的字段值入库的流程示意图;
图6为本发明实施例的一种分布式向量索引方法的检索待待检索字段值的流程示意图;
图7为本发明实施例的一种分布式向量索引系统的结构示意图。
具体实施方式
本发明实施例的一种分布式向量索引方法,如图1所示,包括如下步骤:
S1、将多个字段值分别转为相应的各原始向量,并利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
S2、将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
S3、利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
S4、利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,将生成的入库Hash值以Term形式存入ElasticSearch中的向量字段中,并将相应的各原始向量也存入向量字段,完成入库;当用户设定配置,并输入待检索字段值时,利用设定配置中的LSH算法将待检索字段值进行处理后生成待检索Hash值,然后通过BooleanQuery从入库后的向量字段中检索出待检索Hash值的相关Term,进而得到相关Term的原始向量,再根据相似度计算方法按照顺序返回结果,保证检索的精确度,其中,可按照预设配置将文字、图片等转为入库Hash值以及term存入向量字段后完成入库,在用户进行检索文字、图片等时,也会将其转为待检索Hash值,根据待检索Hash值可精确的从向量字段中完成精确检索,即实现了一种能进行不同检索方式的混合检索的分布式向量索引方法。其中,LSH为英文全称LocalitySensitive Hashing的简写。
其中,返回的结果为文档,文档(Document)是Lucene或ElasticSearch索引和搜索的基本单位。文档为包含一个或多个字段的容器,而字段则依次包含"真正的"被搜索内容。
具体地:
1)Term是索引及搜索功能的基本单元,Term对象包含一对字符串元素:字段名和单词(或字段文本值)。通过精心设计的数据结构,Lucene(搜索引擎)可以实现对Term的高效查找;
2)Lucene还提供的最基本的查询类型:TermQuery,TermQuery用来匹配指定字段中包含特定项的文本;
3)通过使用BooleanQuery,可以将各种查询类型组合成复杂的查询方式,且BooleanQuery本身是一个Boolean子句(clauses)的容器,这个子句可以是表示逻辑“与”、逻辑“或”或者逻辑“非”的一个子查询,且这些属性允许进行逻辑AND、OR和NOT组合。
较优地,在上述技术方案中,S1中具体包括如下步骤:
S10、根据所述预设配置确定是否对各所述原始向量进行分段,若是,则执行S11,若否,则执行S12;
S11、对各所述原始向量进行拆分后形成多段拆分原始向量,利用所述预设配置中的LSH算法生成割面后对各所述拆分原始向量进行处理得到各相应的入库Hash值,记为分段入库Hash值;
S12、利用所述预设配置中的LSH算法生成割面后对各所述原始向量进行处理后得到各相应的入库Hash值,记为未分段入库Hash值;
S13、将各分段入库Hash值或各未分段入库Hash值以Term形式存入所述向量字段中,并将相应的各所述拆分原始向量或各所述原始向量存入所述向量字段。对各原始向量进行分段处理后,提高了Hash的质量。
较优地,在上述技术方案中,S2中具体包括如下步骤:
S20、根据所述设定配置确定是否对所述待检索向量进行分段,若是,则执行S21,若否,则执行S22;
S21、对所述待检索向量进行拆分后形成多段待检索拆分原始向量,利用所述设定配置中的LSH算法生成割面后对各所述待检索拆分原始向量进行处理得到各相应的待检索Hash值,记为分段待检索Hash值;
S22、利用所述设定配置中的LSH算法生成割面后对所述待检索向量进行处理得到各相应的待检索Hash值,记为未分段待检索Hash值。
对各待检索向量进行分段进行分段处理后,提高了Hash的质量。
其中,各原始向量和各待检索向量分别相当于一个高维空间,对其进行分段相当于对高维空间进行降维处理,例如高维空间为D维空间,将其切分为M段,也就是将D维空间且分为M个D/M维度的低维子空间,其中,D和M均为正整数。
较优地,在上述技术方案中,S3和S4具体为:
利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述分段待检索Hash值或所述未分段待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量或拆分原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量或拆分原始向量进行排序后,按照顺序返回所述结果。
较优地,在上述技术方案中,所述LSH算法随机生成割面,或,所述LSH算法生成割面的过程具体为:S100、在高维空间中随机生成多个向量,且每次随机选择其中一个向量的一个维度的斜率作为未知量;
S101、在各所述原始向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
1)LSH算法随机生成割面时,对高维向量空间进行分割,根据不同特征向量所处的位置不同,对特征向量进行分类,从而加快检索效率;
但如图2所示,随机生成割面1、割面2和割面3,可以看出,割面1、割面2未有效分割特征向量集,割面3有效分割特征向量集,可见,当LSH算法随机生成割面时,会生成大量的无效割面,从而不能对特征向量进行有效分割,其中,多个特征向量形成所述特征向量集。
2)但由于LSH算法随机生成割面时,无法保证割面有效生成在特征向量分布的范围内,导致无法对大量的特征向量进行有效分类,同时浪费了CPU算力,因此可对LSH算法进行优化,即:可在高维空间中随机生成向量,且每次随机选择一个维度的斜率作为未知量,在各所述原始向量和所述待检索向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成割面,避免随机生成随带来的弊端,生成有效性更高的割面,且能保证检索效率。
对S100-S101具体解释为:
a1x1+a2x2+…+anxn=b
同时,要满足(a1,a2,…an)∈R,且a1,a2,…an不全为零,
其中,x1,x2,…xn表示n维向量实数空间中的数据n个数据点,Rn表示x1,x2,…xn均为实数,b为实数,为了方便理解,以以二维平面空间为例进行更为详尽的阐述:
假设在二维平面空间中,存在一个数据点(x,y),若给定一个斜率a,则可确定出一条直线为ax+y=b,例如将数据点(x,y)为(1,2),给定斜率a=3,则得出截距3×1+2=5,此时确定出直线为3x+y=5,该直线就是这个二维空间的一个割面,将该二维空间分割成两部分,例如将数据点(2,2)带入3x+y后得到3×2+2=8>5,将数据点(1,1)带入3x+y后得到3×1+1=4<5,则数据点(2,2)和数据点(1,1)被直线3x+y=5分割在两侧;
如果此时二维空间的维度增加一维,变成三维空间,多出的一维用z表示,则二维空间由于增加一维,此时上述直线变为平面即割面,例如生成平面即割面为3x+y+z=7,假如存在数据点(1,2,2),由于3×1+2+2=7=5,则该数据点(1,2,2)就在这个平面即割面上;同时,该割面将这个三维空间分为两部分,例如将数据点(1,1,1)带入3x+y+z后得到3×1+1+1=5<7,将数据点(2,2,2)带入3x+y+z后得到3×2+2+2=10>7,则数据点(1,1,1)和数据点(2,2,2)被平面即割面3x+y+z=7分割到两侧。
以此类推,可首先在高维空间中随机生成向量,且每次随机选择一个维度的斜率作为未知量;在各原始向量和各待检索向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成割面,以保证所生成割面的有效性具体地:
如图3所示,随机选择3个特征向量作为数据点1、数据点2和数据点3,经过三个数据点所形成的割面分别为割面4、割面5和割面6,可见,虽然未生成无效割面,但对特征向量集的分割可能并不充分;
其中,可以理解的是,各原始向量和各待检索向量相当于于上述的各数据点,在高维空间中生成的割面对数据点的分割就是对各原始向量和各待检索向量进行分别分割。
较优地,在上述技术方案中,S100之后还包括如下步骤:S1000、利用聚类方法在各所述原始向量和中生成多个不同的聚类中心,将各所述聚类中心带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。具体地:
如图4所示,利用聚类方法生成两个聚类中心,分别为聚类中心1和聚类中心2,经过两个聚类中心所形成的割面分别为割面8、割面9,可见,未生成无效割面,且对特征向量集的分割基本充分,其中聚类中心1和聚类中心2均用黑色方形进行表示。
即便用上述方案生成了有效性更高的割面,以确保每次hash均能有效切分各原始向量,但是也可能会出现切分不均匀的情况,即大量原始向量的数据点出现在相同的切分子空间中,少量原始向量的数据点出现在不同的切分子空间中,此时采用聚类方法如k-means方法,得到k个不同的聚类中心,以替代在各所述原始向量和所述待检索向量中随机选择多个数据点,避免上述问题,而且,在高维空间中,几乎所有数据点对之间的距离都接近相等,基于距离的聚类算法表现很差,当经过上述分段处理后,即先将高维空间切分为多段,进行降维后会提高聚类算法的表现。
也就是说,对传统的LSH算法进行优化,可以选择三种方式生成割面,分别为:
第一种:使用LSH算法随机生成割面;
第二种:根据S100和S101生成割面;
第三种:根据S100和S1000生成割面;
若选择第三种方式时,可先使用K-means算法,聚类多个聚类中心,生成割面对各原始向量进行分割再进行哈希,有效得解决了随机哈希时,不能保证每次哈希均有效的问题。提高了检索结果的准确性。
具体地:原始LSH算法所采用的hash函数为:其中,u是给定随机超平面的法向量,v是待哈希的向量,因为u是随机选择,可能会出现数据集中的所有向量均出现在该平面同一侧的情况。p为n维空间中的任一数据点,因此,随机选择的超平面,可能会出现不能有效区分数据的情况。针对这种情况,我们对LSH算法做了优化,不再随机选择超平面,而是先对原始数据进行聚类,选出聚类中心做为以上随机超平面中的一条向量,再生成该向量的法向量,做为u,可有效解决随机超平面不能有效切分数据的问题。
一个超平面可以将它所在的n维空间分成两半,它的法向量指向的那一半对应的一面是它的正面,另一面则是它的反面。对于n维空间中的任意一数据点p,满足以下公式:
可使用如下Hash函数:
可以理解的是,将超平面应用到本申请中即为割面。
较优地,在上述技术方案中,还包括如下步骤:利用所述预设配置中的哈希算法和所述设定配置中的哈希算法生成所述入库Hash值和所述待检索Hash值时,在所述入库Hash值和所述待检索Hash值分别增加相应的前缀。有效避免向量字段膨胀问题,具体为:
例如,高维空间中存在两个数据点:P1和P2,其中,P1的坐标为(c1,c2,…cw),P2的坐标为(d1,d2,…dw),其中,w为正整数,表示高维空间的维数,c1,c2,…cw表示数据点P1在各维中的坐标值,d1,d2,…dw表示数据点P2在各维中的坐标值,可分别用P1=(c1,c2,…cw)和P2=(d1,d2,…dw)进行表示,对数据点P1和数据点P2分别进行F次哈希后得到的结果分别为和只有对应位置的哈希值相同,数据点P1和数据点P2才具有一定的相似性,具体地:若时,数据点P1和数据点P2具有一定的相似性;且不同位置的哈希值不具有可比性,例如和不具有可比性,为达到此效果,目前常用的技术为:
建立F个字段,用来分别存储F次哈希的结果,但如果哈希次数过多时,即F较大时,需要建立很多字段,造成字段的数量急剧增加,即产生膨胀;而在本申请中,对入库Hash值和所述待检索Hash值分别增加相应的前缀,其前缀可代表当前进行哈希时所用的哈希函数,也就是说,将每次哈希的结果,增加一个代表当前哈希函数的前缀,前缀可为人为定义的字符串即可,具体地:
例如增加前缀为(E1,E2,…Ew),则对数据点P1和数据点P2进行哈希后的所述生成的结果分别为和其中,当同一位置的哈希值相同时,加前缀的值也相同,即时,不会影响到相似性判断,而且,不同位置的哈希值,由于前缀不同,哈希后的结果即使相同,加前缀后的结果也不可能相同,由此增加了入库和检索的精度,且这样可用一个字段存储最终的结果,达到之前生成F个字段的效果,有效解决了字段膨胀的问题,在本申请中为使用一个向量字段来存储最终结果,有效避免了向量字段膨胀问题。
较优地,如图5所示,对字段值入库进行详细阐述:
S40:导入各原始向量,具体的:
将多个字段值分别转为相应的各原始向量,此技术现有技术,可采用申请号为CN201711242168.3、主题名称为“基于位置敏感哈希的分布式向量检索方法及系统”、申请号为“201110125682.5”、主题名称为“支持向量检索的Web服务管理方法”以及申请号为“CN201910490118.X”、主题名称为“向量检索方法、装置和设备”的发明专利中方式进行将各字段值转为各原始向量,其中字段值可为文字或图片等;
在预设配置中已配置好是否分段、LSH算法、以及生成割面的方式,那么:
1)若预设配置中要进行分段处理S41,也就是将对各所述原始向量进行拆分后形成多段拆分原始向量,具体方式参考上文内容,在此不做赘述,继续执行S42,S42中生成割面的有如下三种方式:
第一种:使用LSH算法随机生成割面;
第二种:根据S100和S101生成割面;
第三种:根据S100和S1000生成割面;
选择其中任一种方式后,得到分段入库Hash值,然后执行S43,S43具体为:将各分段入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各拆分原始向量也存入所述向量字段,具体内容参考上文,在此不做赘述;
2)若预设配置中不进行分段处理S41,则直接执行S42,然后执行S43,具体为:将各未分段入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各未原始向量也存入所述向量字段,具体内容参考上文,在此不做赘述;
由此完成字段值入库,其中,不同的聚类方法对应着不同的哈希函数族,哈希函数族中哈希函数的数量也不同,在检索时,可以以参数形式将选择权交给用户,即用于用户完成设定配置,新建向量字段后,使用用户在设定配置中指定的哈希方法,生成用户指定数量的哈希函数簇,可对不同的哈希方法作了不同的优化,比如针对随机投影的方法,可限制了随机的范围,保证每一个随机产生的割面均能够有效分隔原始向量的数据点,不会出现所有原始向量的数据点均出现在同一侧的情况。这样可以大大减少所需随机生成割面的数量,并提升检索质量。
在字段值入库时,各原始向量也被编码为字节,作为向量字段的内部隐藏字段进行存储,以节省存储空间,方便后面取回重排序使用,同时,利用已生成的哈希算法,将原始向量哈希为哈希函数簇中的哈希函数数量的数组,并在在所述入库Hash值分别增加相应的前缀,作为一个个完整的token存入ElasticSearch中的向量字段。
如图6所示,在进行检索时,首先执行S50,得到待检索向量,具体地,可以将字段值转为原始向量的过程,做出输入窗口,接收用户输入的待检索字段值转为待检索向量,然后执行S51即根根据设定配置生成待检索Hash值或分段待检索Hash值;
其中,用户设定配置中已配置好是否分段、LSH算法、相似度计算方法以及生成割面的方式,其中用户在设定配置中配置生成割面时有三种方式:
第一种:使用LSH算法随机生成割面;
第二种:根据S100和S101生成割面;
第三种:根据S100和S1000生成割面;
便于用户进行选择配置,假设用户选择第三种方式,生成待检索Hash值,可在待检索Hash值前增加相应的前缀,然后执行S52,具体参考上文S3得到待检索Hash值的相关Term,进而得到相关Term的原始向量或或拆分原始向量,然后执行S53返回检索结果,具体参看上文S4。
也就是说,检索时,将待检索向量经过同样的哈希处理,得到一个哈希后的数组,利用BooleanQuery检索出一批待返回数据即相关Term,取回这批数据即相关Term的原始向量,解码后与待检索向量使用设定配置中给定的相似度计算方法计算出score,其中,score的展现形式具体为:可根据用户选择使用L2距离、Consine距离或Jaccard距离等,然后将各相关Term的原始向量或拆分原始向量重排序后,作为最终结果返回给用户。
其中可使用P-stable hash得到L2距离度量数据相似度、使用Random Projection得到、Consine距离度量数据相似度,且P-stable hash和Random Projection为现有技术,在此不做赘述。
在本申请中,扩展了ElasticSearch的字段类型,即新增加向量字段类型,作为向量字段的字段类型,实现对vector字段的检索,ElasticSearch本身并没有提供向量检索的方法,本申请使用LSH算法将向量检索的功能集成至ElasticSearch这一全文搜索引擎中,大量且高维度的原始向量通过LSH算法,以一个个Token(例如1,-2,3)表示,原始向量与待检索原始向量之间的相似度可以使用ElasticSearch提供的Boolean检索来高效实现,这样,就可以在ElasticSearch中实现大量且高维度的原始向量或拆分原始向量与待检索原始向量之间的相似度检索。
如图7所示,本发明实施例的一种分布式向量索引系统200,包括入库模块210、检索模块220,
所述入库模块210将多个字段值分别转为相应的各原始向量,并利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
所述检索模块220将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
所述检索模块220利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
所述检索模块220还利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
入库模块210利用在预设配置中预存的LSH算法对各所述原始向量进行处理得到入库Hash值,将生成的入库Hash值以Term形式存入ElasticSearch中的向量字段中,并将相应的各原始向量也存入向量字段,完成入库;当用户设定配置,并输入待检索字段值时,利用设定配置中的LSH算法将待检索字段值进行处理后生成待检索Hash值,然后通过BooleanQuery从入库后的向量字段中检索出待检索Hash值的相关Term,进而得到相关Term的原始向量,再根据相似度计算方法按照顺序返回结果,保证检索的精确度,其中,可按照预设配置将文字、图片等转为入库Hash值以及term存入向量字段后完成入库,在用户进行检索文字、图片等时,也会将其转为待检索Hash值,根据待检索Hash值可精确的从向量字段中完成精确检索,即实现了一种能进行不同检索方式的混合检索的分布式向量索引系统200。
较优地,在上述技术方案中,还包括分段模块,当所述入库模块210根据所述预设配置确定对各所述原始向量进行分段时,则所述分段模块对各所述原始向量进行拆分后形成多段拆分原始向量,利用所述预设配置中的LSH算法生成割面后对各所述拆分原始向量进行处理得到各相应的入库Hash值,记为分段入库Hash值;
当所述入库模块210根据所述预设配置不对各所述原始向量进行分段时,利用所述预设配置中的LSH算法生成割面后对各所述原始向量进行处理后得到各相应的入库Hash值,记为未分段入库Hash值;
所述生成模块将各分段入库Hash值或各未分段入库Hash值以Term形式存入所述向量字段中,并将相应的各所述拆分原始向量或各所述原始向量存入所述向量字段。
较优地,在上述技术方案中,还包括:当所述检索模块220根据所述设定配置确定对所述待检索向量进行分段时,所述分段模块对所述待检索向量进行拆分后形成多段待检索拆分原始向量,利用所述设定配置中的LSH算法生成割面后对各所述待检索拆分原始向量进行处理得到各相应的待检索Hash值,记为分段待检索Hash值;
当所述检索模块220根据所述设定配置确定不对所述待检索向量进行分段时,所述检索模块220利用所述设定配置中的LSH算法生成割面后对所述待检索向量进行处理得到各相应的待检索Hash值,记为未分段待检索Hash值。
较优地,在上述技术方案中,还包括:所述检索模块220利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述分段待检索Hash值或所述未分段待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量或拆分原始向量;
所述检索模块220还利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量或拆分原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量或拆分原始向量进行排序后,按照顺序返回所述结果。
较优地,在上述技术方案中,还包括割面生成模块,所述割面生成模块利用LSH算法随机生成割面,或,所述割面生成模块在高维空间中随机生成多个向量,且每次随机选择其中一个向量的一个维度的斜率作为未知量;并在各所述原始向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
较优地,在上述技术方案中,还包括聚类模块,所述聚类模块利用聚类方法在各所述原始向量中生成多个不同的聚类中心,将各所述聚类中心带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
较优地,在上述技术方案中,还包括前缀模块,所述前缀模块利用所述预设配置中的LSH算法和所述设定配置中的LSH算法生成所述入库Hash值和所述待检索Hash值时,在所述入库Hash值和所述待检索Hash值分别增加相应的前缀。
上述关于本发明的一种分布式向量索引系统200中的各参数和各个单元模块实现相应功能的步骤,可参考上文中关于一种分布式向量索引方法的实施例中的各参数和步骤,在此不做赘述。
本发明实施例的一种分布式向量索引插件,所述插件用于执行上述任一实施例中的所述的一种分布式向量索引方法。
以插件形式扩展了ElasticSearch固有的功能,提供了入库以及检索两套工具。将该插件集成至ElasticSearch之中,随ElasticSearch的启动运行,不需要运行额外的程序,更加方便、快捷。
其中插件以工具包(jar)方式体现,提供了方便应用程序开发的工具包(jar),在工具包中设置Restfull风格的http接口,便于用户输入待检索向量。
本发明实施例的一种电子设备,包括存储器、处理器以及上述插件,所述插件安装在所述存储器上并在所述处理器上运行。实现了一种可进行不同检索方式的混合检索的电子设备。其中,电子设备可为电脑、手机等。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种分布式向量索引方法,其特征在于,包括如下步骤:
S1、将多个字段值分别转为相应的各原始向量,并利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
S2、将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
S3、利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
S4、利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
2.根据权利要求1所述的一种分布式向量索引方法,其特征在于:S1中具体包括如下步骤:
S10、根据所述预设配置确定是否对各所述原始向量进行分段,若是,则执行S11,若否,则执行S12;
S11、对各所述原始向量进行拆分后形成多段拆分原始向量,利用所述预设配置中的LSH算法生成割面后对各所述拆分原始向量进行处理得到各相应的入库Hash值,记为分段入库Hash值;
S12、利用所述预设配置中的LSH算法生成割面后对各所述原始向量进行处理后得到各相应的入库Hash值,记为未分段入库Hash值;
S13、将各分段入库Hash值或各未分段入库Hash值以Term形式存入所述向量字段中,并将相应的各所述拆分原始向量或各所述原始向量存入所述向量字段。
3.根据权利要求2所述的一种分布式向量索引方法,其特征在于:S2中具体包括如下步骤:
S20、根据所述设定配置确定是否对所述待检索向量进行分段,若是,则执行S21,若否,则执行S22;
S21、对所述待检索向量进行拆分后形成多段待检索拆分原始向量,利用所述设定配置中的LSH算法生成割面后对各所述待检索拆分原始向量进行处理得到各相应的待检索Hash值,记为分段待检索Hash值;
S22、利用所述设定配置中的LSH算法生成割面后对所述待检索向量进行处理得到各相应的待检索Hash值,记为未分段待检索Hash值。
4.根据权利要求3所述的一种分布式向量索引方法,其特征在于,S3和S4具体为:
利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述分段待检索Hash值或所述未分段待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量或拆分原始向量;
利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量或拆分原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量或拆分原始向量进行排序后,按照顺序返回所述结果。
5.根据权利要求4所述的一种分布式向量索引方法,其特征在于,所述LSH算法随机生成割面,或,所述LSH算法生成割面的过程具体为:
S100、在高维空间中随机生成多个向量,且每次随机选择其中一个向量的一个维度的斜率作为未知量;
S101、在各所述原始向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
6.根据权利要求5所述的一种分布式向量索引方法,其特征在于,S100之后还包括如下步骤:
S1000、利用聚类方法在各所述原始向量中生成多个不同的聚类中心,将各所述聚类中心带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
7.根据权利要求1至6所述的一种分布式向量索引方法,其特征在于,还包括如下步骤:利用所述预设配置中的LSH算法和所述设定配置中的LSH算法生成所述入库Hash值和所述待检索Hash值时,在所述入库Hash值和所述待检索Hash值分别增加相应的前缀。
8.一种分布式向量索引系统,其特征在于,包括入库模块、检索模块,
所述入库模块将多个字段值分别转为相应的各原始向量,并利用在预设配置中预存的LSH算法对各所述原始向量进行处理后,分别生成相应的入库Hash值,并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各所述原始向量也存入所述向量字段;
所述检索模块将用户输入的待检索字段值转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
所述检索模块还利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
所述检索模块还利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
9.一种分布式向量索引插件,其特征在于,所述插件用于执行上述权利要求1至7任一项所述的一种分布式向量索引方法。
10.一种电子设备,其特征在于,包括存储器、处理器以及权利要求9的插件,所述插件安装在所述存储器上并在所述处理器上运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369320.3A CN111026922A (zh) | 2019-12-26 | 2019-12-26 | 一种分布式向量索引方法、系统、插件及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369320.3A CN111026922A (zh) | 2019-12-26 | 2019-12-26 | 一种分布式向量索引方法、系统、插件及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026922A true CN111026922A (zh) | 2020-04-17 |
Family
ID=70213951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911369320.3A Pending CN111026922A (zh) | 2019-12-26 | 2019-12-26 | 一种分布式向量索引方法、系统、插件及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026922A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115281A (zh) * | 2020-09-17 | 2020-12-22 | 杭州海康威视数字技术股份有限公司 | 数据检索方法、装置及存储介质 |
CN112966007A (zh) * | 2021-04-02 | 2021-06-15 | 新华智云科技有限公司 | 一种搜索终端的控制方法与搜索终端 |
CN117194737A (zh) * | 2023-09-14 | 2023-12-08 | 上海交通大学 | 基于距离阈值的近似近邻搜索方法、系统、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220325A (zh) * | 2017-05-22 | 2017-09-29 | 华中科技大学 | 一种基于卷积神经网络的app相似图标检索方法和系统 |
CN107992573A (zh) * | 2017-11-30 | 2018-05-04 | 公安部第三研究所 | 基于位置敏感哈希的分布式向量检索方法及系统 |
CN108241745A (zh) * | 2018-01-08 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 样本集的处理方法及装置、样本的查询方法及装置 |
CN110609916A (zh) * | 2019-09-25 | 2019-12-24 | 四川东方网力科技有限公司 | 视频图像数据检索方法、装置、设备和存储介质 |
-
2019
- 2019-12-26 CN CN201911369320.3A patent/CN111026922A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220325A (zh) * | 2017-05-22 | 2017-09-29 | 华中科技大学 | 一种基于卷积神经网络的app相似图标检索方法和系统 |
CN107992573A (zh) * | 2017-11-30 | 2018-05-04 | 公安部第三研究所 | 基于位置敏感哈希的分布式向量检索方法及系统 |
CN108241745A (zh) * | 2018-01-08 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 样本集的处理方法及装置、样本的查询方法及装置 |
WO2019134567A1 (zh) * | 2018-01-08 | 2019-07-11 | 阿里巴巴集团控股有限公司 | 样本集的处理方法及装置、样本的查询方法及装置 |
CN110609916A (zh) * | 2019-09-25 | 2019-12-24 | 四川东方网力科技有限公司 | 视频图像数据检索方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
张晓雨: "基于哈希的高维数据近似最近邻查询研究", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115281A (zh) * | 2020-09-17 | 2020-12-22 | 杭州海康威视数字技术股份有限公司 | 数据检索方法、装置及存储介质 |
CN112966007A (zh) * | 2021-04-02 | 2021-06-15 | 新华智云科技有限公司 | 一种搜索终端的控制方法与搜索终端 |
CN112966007B (zh) * | 2021-04-02 | 2022-06-17 | 新华智云科技有限公司 | 一种搜索终端的控制方法与搜索终端 |
CN117194737A (zh) * | 2023-09-14 | 2023-12-08 | 上海交通大学 | 基于距离阈值的近似近邻搜索方法、系统、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heo et al. | Spherical hashing | |
Wang et al. | Trinary-projection trees for approximate nearest neighbor search | |
Norouzi et al. | Fast exact search in hamming space with multi-index hashing | |
He et al. | Scalable similarity search with optimized kernel hashing | |
US9177388B2 (en) | Method, system and apparatus for determining a hash code representing a portion of an image | |
Lin et al. | Compressed hashing | |
US8625907B2 (en) | Image clustering | |
Zhen et al. | Spectral multimodal hashing and its application to multimedia retrieval | |
US20120117122A1 (en) | Optimized KD-Tree for Scalable Search | |
CN111026922A (zh) | 一种分布式向量索引方法、系统、插件及电子设备 | |
Van Leuken et al. | Selecting vantage objects for similarity indexing | |
EP4014132A1 (en) | Information retrieval and/or visualization method | |
CN109829066B (zh) | 基于分层结构的局部敏感哈希图像索引方法 | |
Gonzalez-Diaz et al. | Neighborhood matching for image retrieval | |
Huang et al. | Effective data co-reduction for multimedia similarity search | |
Song et al. | Brepartition: Optimized high-dimensional knn search with bregman distances | |
Sinha | LSH vs randomized partition trees: Which one to use for nearest neighbor search? | |
Singh et al. | Simp: accurate and efficient near neighbor search in high dimensional spaces | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
Schuh et al. | A comprehensive study of iDistance partitioning strategies for k NN queries and high-dimensional data indexing | |
Wu et al. | Efficient evaluation of object-centric exploration queries for visualization | |
Guzun et al. | Slicing the dimensionality: Top-k query processing for high-dimensional spaces | |
JP2004046612A (ja) | データマッチング方法、データマッチング装置、データマッチングプログラムおよびコンピュータで読み取り可能な記録媒体 | |
Vanco et al. | A hashing strategy for efficient k-nearest neighbors computation | |
Wang et al. | PL-Tree: An efficient indexing method for high-dimensional data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100190 17-19 / F, building a 1, 66 Zhongguancun East Road, Haidian District, Beijing Applicant after: New Great Wall Technology Co.,Ltd. Address before: 100190 17-19 / F, building a 1, 66 Zhongguancun East Road, Haidian District, Beijing Applicant before: GREAT WALL COMPUTER SOFTWARE & SYSTEMS Inc. |
|
CB02 | Change of applicant information |