CN112418298A - 数据检索方法、装置以及计算机可读存储介质 - Google Patents
数据检索方法、装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112418298A CN112418298A CN202011302942.7A CN202011302942A CN112418298A CN 112418298 A CN112418298 A CN 112418298A CN 202011302942 A CN202011302942 A CN 202011302942A CN 112418298 A CN112418298 A CN 112418298A
- Authority
- CN
- China
- Prior art keywords
- vector
- distance
- sample
- integer
- sub
- 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.)
- Granted
Links
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/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据检索技术领域,具体提供了一种数据检索方法、装置以及计算机可读存储介质,旨在解决快速且准确地对大批量数据进行数据检索的技术问题。为此目的,根据本发明实施例的方法,利用PQ算法对向量样本进行相似数据检索,相较于暴力搜索的方法,能够显著提高数据的检索效率。同时,在获取到利用PQ算法生成的向量距离查询表之后,可以将向量距离查询表中的浮点型向量距离转换为整型向量距离,以降低向量距离查询表的数据大小,满足处理器的一级缓存的缓存存储要求,使得处理器只需在一级缓存中加载一次向量距离查询表,就可以完成对一个向量样本的相似性检索,克服了现有技术中由于反复加载向量距离查询表导致的检索效率下降的缺陷。
Description
技术领域
本发明涉及数据检索技术领域,具体涉及一种数据检索方法、装置以及计算机可读存储介质。
背景技术
在利用深度学习算法对待处理数据(如待处理的图像或语音等)进行人脸类别识别或语音类别识别等数据识别处理时,往往需要根据待处理数据对数据库中预先存储的数据样本进行相似性检索,以获取与待处理数据相似的数据样本,最后根据这些数据样本的数据类别确定待处理数据的数据类别。例如:在对待处理图像进行人脸类别识别(如识别图像中的人脸具体属于哪一个人的人脸)时,首先提取待处理图像中的人脸特征,然后根据人脸特征对预设的人脸图像样本进行相似性检索,得到与待处理图像中的人脸相似的人脸图像样本,最后根据这些人脸图像样本对应的人脸类别确定待处理图像中人脸的人脸类别。
为了提高对待处理数据进行相似性检索的准确性,目前主要是采用暴力搜索(Violent search)的方法进行检索。具体而言,可以将待处理数据与每个数据样本逐一进行相似度计算,根据每个数据样本各自对应的相似度计算的结果,选取与待处理数据相似的一个或多个数据样本。然而,在需要进行检索的数据样本的数据量较大的应用场景(例如对火车站内监控装置采集到的包含了数亿个人脸图像的历史监控视频进行人脸识别)中,如果仍采用暴力搜索的方法进行数据检索,将会极大地延长数据的检索时间,从而导致数据识别处理的处理效率下降。
发明内容
为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决如何快速且准确地对大批量数据进行数据检索的技术问题的数据检索方法、装置以及计算机可读存储介质。
第一方面,提供一种数据检索方法,所述数据检索方法包括:
利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表;
将所述向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表;
根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离;
按照距离值选取多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本。
在上述数据检索方法的一个技术方案中,“将所述向量距离查询表中的浮点型向量距离转换为整型向量距离”的步骤具体包括:
获取所述向量距离查询表中的最大浮点型向量距离;
根据所述最大浮点型向量距离并且按照下式所示的方法将所述向量距离查询表中的每个浮点型向量距离分别转换为整型向量距离:
其中,所述Vquantized_i表示对所述向量距离查询表中的第i个浮点型向量距离Vfloat_i转换后得到的整型向量距离,所述Vmax表示所述最大浮点型向量距离。
在上述数据检索方法的一个技术方案中,在“利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤之前,所述方法还包括:
分别对所述当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取所述每个向量样本各自对应的m个维度是d1/m的子向量样本;所述d1是向量样本的维度且d1>m>1;
获取所述每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组;
分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取所述每个子向量样本组各自对应的多个聚类中心向量;
根据所述每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组;
根据所述每个向量分割排列顺序以及各自对应的聚类中心向量组,构建向量码本。
在上述数据检索方法的一个技术方案中,“获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤具体包括:
对待检索向量进行向量分割并且根据向量分割的结果获取所述待检索向量对应的m个维度是d2/m的子检索向量;所述d2是待检索向量的维度且d2=d1;
根据每个子检索向量各自对应的向量分割排列顺序,以及所述向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在所述向量码本中所述每个子检索向量各自对应的聚类中心向量组;
分别计算所述每个子检索向量与相应的聚类中心向量组中每个聚类中心向量之间的浮点型向量距离;
根据所述子检索向量与所述浮点型向量距离的对应关系获取所述向量距离查询表;
并且/或者,“根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离”的步骤具体包括:
分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码;
查询所述整型向量距离查询表中与每个量化编码对应的第二整型向量距离;
分别对所述每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到所述每个向量样本各自对应的向量距离和;
根据每个向量距离和分别获取相应的向量样本与所述待检索向量之间的第一整型向量距离;
其中,子向量样本对应的量化编码是在所述向量码本中与所述子向量样本对应的聚类中心向量组中特定聚类中心向量在所述聚类中心向量组中的向量排序编号;所述特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。
在上述数据检索方法的一个技术方案中,其特征在于,在,在“利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤之前,所述方法还包括:
利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;
分别计算所述待检索向量与每个粗聚类中心向量之间的向量距离;
按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。
在上述数据检索方法的一个技术方案中,在“按照距离值由小至大的顺序选取多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本”的步骤之后,所述方法还包括:
判断所述当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组;
若是,则分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与所述待检索向量的第一整型向量距离;
将所述第一整型向量距离转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与所述待检索向量相似的最终相似向量样本。
在上述数据检索方法的一个技术方案中,“根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离”的步骤具体包括:
当利用处理器加载并运行所述数据检索方法时,将所述整型向量距离查询表加载至所述处理器的一级缓存中,以便所述处理器能够通过访问所述一级缓存中的整型向量距离查询表获取所述当前目标向量样本组中每个向量样本与所述待检索向量之间的第一整型向量距离;
其中,所述一级缓存是所述处理器的缓存中访问速度最快的缓存。
第二方面,提供一种数据检索装置,所述数据检索装置包括:
向量距离查询表获取模块,其被配置成利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表;
向量距离查询表转换模块,其被配置成将所述向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表;
向量距离查询表查询模块,其被配置成根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离;
相似向量样本获取模块,其被配置成按照距离值选取多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本。
在上述数据检索装置的一个技术方案中,所述向量距离查询表转换模块被进一步配置成执行以下操作:
获取所述向量距离查询表中的最大浮点型向量距离;
根据所述最大浮点型向量距离并且按照下式所示的方法将所述向量距离查询表中的每个浮点型向量距离分别转换为整型向量距离:
其中,所述Vquantized_i表示对所述向量距离查询表中的第i个浮点型向量距离Vfloat_i转换后得到的整型向量距离,所述Vmax表示所述最大浮点型向量距离。
在上述数据检索装置的一个技术方案中,所述装置还包括向量码本获取模块,所述向量码本获取模块被配置成执行以下操作:
分别对所述当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取所述每个向量样本各自对应的m个维度是d1/m的子向量样本;所述d1是向量样本的维度且d1>m>1;
获取所述每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组;
分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取所述每个子向量样本组各自对应的多个聚类中心向量;
根据所述每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组;
根据所述每个向量分割排列顺序以及各自对应的聚类中心向量组,构建向量码本。
在上述数据检索装置的一个技术方案中,所述向量距离查询表获取模块被进一步配置成执行以下操作:
对待检索向量进行向量分割并且根据向量分割的结果获取所述待检索向量对应的m个维度是d2/m的子检索向量;所述d2是待检索向量的维度且d2=d1;
根据每个子检索向量各自对应的向量分割排列顺序,以及所述向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在所述向量码本中所述每个子检索向量各自对应的聚类中心向量组;
分别计算所述每个子检索向量与相应的聚类中心向量组中每个聚类中心向量之间的浮点型向量距离;
根据所述子检索向量与所述浮点型向量距离的对应关系获取所述向量距离查询表;
并且/或者,所述向量距离查询表查询模块被进一步配置成执行以下操作:
分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码;
查询所述整型向量距离查询表中与每个量化编码对应的第二整型向量距离;
分别对所述每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到所述每个向量样本各自对应的向量距离和;
根据每个向量距离和分别获取相应的向量样本与所述待检索向量之间的第一整型向量距离;
其中,子向量样本对应的量化编码是在所述向量码本中与所述子向量样本对应的聚类中心向量组中特定聚类中心向量在所述聚类中心向量组中的向量排序编号;所述特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。
在上述数据检索装置的一个技术方案中,所述装置还包括目标向量样本组获取模块,所述目标向量样本组获取模块被配置成执行以下操作:
利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;
分别计算所述待检索向量与每个粗聚类中心向量之间的向量距离;
按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。
在上述数据检索装置的一个技术方案中,所述相似向量样本获取模块被进一步配置成执行以下操作:
在获取到当前目标向量样本组中与待检索向量相似的相似向量样本之后,判断所述当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组;
若是,则分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与所述待检索向量的第一整型向量距离;
将所述第一整型向量距离转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与所述待检索向量相似的最终相似向量样本。
在上述数据检索装置的一个技术方案中,所述向量距离查询表查询模块被进一步配置成执行以下操作:
将所述整型向量距离查询表加载至所述数据检索装置的一级缓存中,以便能够通过访问所述一级缓存中的整型向量距离查询表获取所述当前目标向量样本组中每个向量样本与所述待检索向量之间的第一整型向量距离;
其中,所述一级缓存是所述数据检索装置的缓存中访问速度最快的缓存。
第三方面,提供一种数据检索装置,该数据检索装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述数据检索方法的技术方案中任一项技术方案所述的数据检索方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述数据检索方法的技术方案中任一项技术方案所述的数据检索方法。
本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
在实施本发明的技术方案中,可以利用PQ算法对待检索向量与向量样本进行相似数据检索,基于PQ算法对向量距离计算过程的优化,相较于暴力搜索的方法,利用PQ算法对待检索向量与向量样本进行相似数据检索,能够显著提高数据的检索效率。进一步,在实施本发明的技术方案中,在获取到利用PQ算法生成的向量距离查询表之后,可以将该向量距离查询表中的浮点型向量距离转换为整型向量距离,以降低向量距离查询表的数据大小,满足处理器的一级缓存的缓存存储要求,使得处理器只需在一级缓存中加载一次向量距离查询表,就可以完成对一个向量样本的相似性检索,克服了现有技术中在利用PQ算法对一个向量样本进行相似性检索时由于反复加载向量距离查询表导致的检索效率下降的缺陷。
附图说明
下面参照附图来描述本发明的具体实施方式,附图中:
图1是根据本发明的一个实施例的数据检索方法的主要步骤流程示意图;
图2是根据本发明的一个实施例的数据检索装置的主要结构框图。
附图标记列表:
11:向量距离查询表获取模块;12:向量距离查询表转换模块;13:向量距离查询表查询模块;14:相似向量样本获取模块。
具体实施方式
下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。
这里先解释本发明涉及到的一些术语。
PQ(Product Quantization)算法是机器学习技术领域中的一种常规的近似最近邻算法,IVF(Inverted File System)算法是相似性数据检索技术领域中一种常规的算法,为了描述简洁,在此不再对PQ算法和IVF算法的具体工作原理进行赘述。
目前为了提高对待处理数据进行相似性检索的准确性,主要是采用暴力搜索的方法进行检索。由于这种方法需要对待处理数据与每个数据样本逐一进行相似度计算,当数据样本的数据量较大时,会显著增加数据的检索时间,因此并不适用于数据样本的数据量较大的应用场景,例如对火车站内监控装置采集到的包含了数亿个人脸图像的历史监控视频进行人脸识别。
在本发明实施例中,可以利用PQ算法对向量样本(数据样本)进行相似数据检索,由于PQ算法能够优化待检索向量与向量样本之间的向量距离计算过程,因此相较于暴力搜索的方法,PQ算法能够显著提高数据的检索效率。进一步,当利用处理器加载并运行PQ算法时,由于利用PQ算法生成的向量距离查询表的数据大小往往大于处理器的一级缓存(具备最高访问速度的缓存)中可存储的数据大小(例如:向量距离查询表的数据大小是64KB,处理器的一级缓存的可存储的数据大小是32KB),因此在对每个向量样本进行相似性检索时,处理器都需要将向量距离查询表反复加载至一级缓存中进行查询,才能完成对一个向量样本的相似性检索。为了克服在利用PQ算法对每个向量样本进行相似性检索时由于反复加载向量距离查询表导致的检索效率下降的缺陷,本发明实施例可以在获取到利用PQ算法生成的向量距离查询表之后,对该向量距离查询表中的向量距离进行数据转换(将向量距离查询表中的浮点型向量距离转换为整型向量距离),以降低向量距离查询表的数据大小,满足处理器的一级缓存的缓存存储要求,使得处理器只需加载一次向量距离查询表,就可以完成对一个向量样本的相似性检索。
参阅附图1,图1是根据本发明的一个实施例的数据检索方法的主要步骤流程示意图。如图1所示,本发明实施例中的数据检索方法主要包括以下步骤:
步骤S101:利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与待检索向量和当前目标向量样本组对应的向量距离查询表。
目标向量样本组指的是由多个向量样本组成的数据组。一个例子:如果待检索向量是人脸图像的人脸特征向量,那么目标向量样本组可以是由多个人脸特征向量样本组成的数据组。
向量距离查询表指的是由多个浮点型向量距离组成的数据表。其中,浮点型向量距离指的是待检索向量中的每个子检索向量与每个子检索向量各自对应的聚类中心向量组中的每个聚类中心向量之间的浮点型向量距离。子检索向量对应的聚类中心向量组是在基于当前目标向量样本组与待检索向量构建的向量码本中与子检索向量对应的聚类中心向量组。
一个例子:如果待检索向量包括子检索向量A、B和C,在相应的向量码本中子检索向量A、B和C对应的聚类中心向量组分别是聚类中心向量组α、β和γ,聚类中心向量组α、β和γ分别包括3个聚类中心向量。子检索向量A与聚类中心向量α中的3个聚类中心向量之间的浮点型向量距离依次是dA_α1、dA_α2、dA_α3,子检索向量B与聚类中心向量β中的3个聚类中心向量之间的浮点型向量距离依次是dB_β1、dB_β2、dB_β3,子检索向量C与聚类中心向量γ中的3个聚类中心向量之间的浮点型向量距离依次是dC_γ1、dC_γ2、dC_γ3。综上,可以得到与待检索向量和目标向量样本组对应的向量距离查询表,如下表1所示:
表1
一个实施方式中,可以按照以下步骤11-步骤15来构建向量码本:
步骤11:分别对当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取每个向量样本各自对应的m个维度是d1/m的子向量样本;d1是向量样本的维度且d1>m>1。
一个例子:如果向量样本分别是128维的向量且m=4,那么在对向量样本进行向量分割后,可以得到四个32维的子向量样本。
步骤12:获取每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组。
一个例子:如果当前目标向量样本组包括向量样本1和向量样本2,对向量样本1进行向量分割后得到子向量样本11(向量分割排列顺序是1)、子向量样本12(向量分割排列顺序是2)、子向量样本13(向量分割排列顺序是3)和子向量样本14(向量分割排列顺序是4),对向量样本2进行向量分割后得到子向量样本21(向量分割排列顺序是1)、子向量样本22(向量分割排列顺序是2)、子向量样本23(向量分割排列顺序是3)和子向量样本24(向量分割排列顺序是4)。
那么,可以得到:
第1个向量分割排列顺序对应的子向量样本组包括子向量样本11和子向量样本21;
第2个向量分割排列顺序对应的子向量样本组包括子向量样本12和子向量样本22;
第3个向量分割排列顺序对应的子向量样本组包括子向量样本13和子向量样本23;
第4个向量分割排列顺序对应的子向量样本组包括子向量样本14和子向量样本24。
步骤13:分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取每个子向量样本组各自对应的多个聚类中心向量。
在本实施例中可以采用数据聚类处理技术领域中常规的数据聚类算法对分别对每个子向量样本组进行聚类处理。数据聚类算法包括但不限于:K均值聚类算法(K-meansclustering algorithm)。为了描述简洁,在此不再对上述数据聚类算法的具体工作原理进行赘述。
步骤14:根据每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组。
一个例子:如果某个子向量样本组对应的向量分割排列顺序是1,并且对这个子向量样本组进行聚类处理后得到了3个聚类中心向量a1、a2和a3,那么可以得到:第1个向量分割排列顺序对应的聚类中心向量组包括聚类中心向量a1、a2和a3。
步骤15:根据每个向量分割排列顺序以及各自对应的聚类中心向量组,获取向量码本。一个例子,向量码本可以如下表2所示:
表2
在获取到向量码本后,可以按照以下步骤21-步骤24获取与待检索向量和当前目标向量样本组对应的向量距离查询表:
步骤21:对待检索向量进行向量分割并且根据向量分割的结果获取待检索向量对应的m个维度是d2/m的子检索向量,d2是待检索向量的维度且d2=d1,本实施方式中的步骤21采用与步骤11中相同的向量分割方法对待检索向量进行向量分割。
步骤22:根据每个子检索向量各自对应的向量分割排列顺序,以及向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在步骤15得到的向量码本中每个子检索向量各自对应的聚类中心向量组。
一个例子:参阅表2,如果待检索向量被分割为子检索向量1(向量分割排列顺序是1)、子检索向量2(向量分割排列顺序是2)和子检索向量3(向量分割排列顺序是3),那么根据表2可以得到子检索向量1对应的聚类中心向量组包括聚类中心向量a1、a2和a3,子检索向量2对应的聚类中心向量组包括聚类中心向量b1、b2和b3,子检索向量3对应的聚类中心向量组包括聚类中心向量c1、c2和c3。
步骤23:分别计算每个子检索向量与相应的聚类中心向量组(根据步骤22确定的)中每个聚类中心向量之间的浮点型向量距离。
步骤24:根据子检索向量与浮点型向量距离的对应关系获取向量距离查询表。
步骤S102:将向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表。
具体而言,在本实施例中可以按照下式(1)所示的方法将向量距离查询表中的每个浮点型向量距离分别转换为整型向量距离:
公式(1)中各参数含义是:
Vquantized_i表示对向量距离查询表中的第i个浮点型向量距离Vfloat_i转换后得到的整型向量距离,Vmax表示向量距离查询表中的最大浮点型向量距离。
一个例子:继续参阅表1,如果将表1中的每个浮点型向量距离分别转换成整型向量距离,可以得到如下表3所示的整型向量距离查询表:
表3
步骤S103:根据整型向量距离查询表获取步骤S101中所述的当前目标向量样本组中的每个向量样本与待检索向量之间的第一整型向量距离。
具体而言,在本实施例中可以按照以下步骤31-步骤34获取向量样本与待检索向量之间的第一整型向量距离:
步骤31:分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码。
在本实施例中子向量样本对应的量化编码是在步骤S101中所述的向量码本中与子向量样本对应的聚类中心向量组中特定聚类中心向量在聚类中心向量组中的向量排序编号;特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。
一个例子:对向量样本1进行向量分割后得到子向量样本11(向量分割排列顺序是1)、子向量样本12(向量分割排列顺序是2)和子向量样本13(向量分割排列顺序是3),这三个子向量样本各自对应的聚类中心向量组如表2所示。如果在“第1个向量分割排列顺序对应的聚类中心向量组的聚类中心向量”中与子向量样本11之间的向量距离最小的距离中心向量是a1,在“第2个向量分割排列顺序对应的聚类中心向量组的聚类中心向量”中与子向量样本12之间的向量距离最小的距离中心向量是b2,在“第3个向量分割排列顺序对应的聚类中心向量组的聚类中心向量”中与子向量样本13之间的向量距离最小的距离中心向量是c3,那么根据a1、b2和c3的向量编号(1、2、3),可以得到子向量样本11、子向量样本12和子向量样本13的量化编码分别1、2、3。
步骤32:查询整型向量距离查询表中与每个量化编码对应的第二整型向量距离。
继续参阅步骤31中的例子以及表3,通过查询表3可以得到:子向量样本11的量化编码1对应的第二整型向量距离是dqA_α1,子向量样本12的量化编码2对应的第二整型向量距离是dqB-β2,子向量样本13的量化编码3对应的第二整型向量距离是dqC_γ3。
步骤33:分别对每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到每个向量样本各自对应的向量距离和。
继续参阅步骤33中的例子,对子向量样本11、子向量样本12和子向量样本13各自对应的第二整型向量距离进行加和计算,可以得到向量样本1对应的向量距离和sum_1=dqA_α1+dqB_β2+dqC_γ3。
步骤34:根据每个向量距离和分别获取相应的向量样本与待检索向量之间的第一整型向量距离。
在本实施例中可以将步骤33计算得到的向量距离和的具体数值直接设定为第一整型向量距离,也可以采用相同的方法分别对每个向量样本各自对应的向量距离和的具体数值进行数值调整后,将调整后的数值设定为第一整型向量距离。
一个实施方式中,当利用处理器加载并运行数据检索方法时,可以将整型向量距离查询表加载至处理器的一级缓存中,以便处理器能够通过访问一级缓存中的整型向量距离查询表获取当前目标向量样本组中每个向量样本与待检索向量之间的第一整型向量距离。其中,一级缓存是处理器的缓存中访问速度最快的缓存。
一个例子:如果处理器的缓存包括一级缓存、二级缓存和三级缓存,一级缓存、二级缓存和三级缓存的缓存空间逐级增大,而能够支持处理器访问的速度逐级下降。因此,可以将整型向量距离查询表加载至处理器的一级缓存中,以提高处理器运行数据检索方法的运行效率,进而提高数据检索的效率。由于现有技术中利用PQ算法生成的浮点型向量距离查询表的数据大小往往大于一级缓存中可存储的数据大小(例如:向量距离查询表的数据大小是64KB,处理器的一级缓存的可存储的数据大小是32KB),因此在对每个向量样本进行相似性检索时,处理器都需要将浮点型向量距离查询表反复加载至一级缓存中进行查询,才能完成对一个向量样本的相似性检索。而根据前述步骤S102可知,本发明实施例已经将浮点型向量距离查询表转换为整型向量距离查询表,减小了向量距离查询表的数据大小,使其能够满足一级缓存的缓存存储要求,进而使得处理器只需在一级缓存中加载一次整型向量距离查询表,就可以完成对一个向量样本的相似性检索,进一步提高了数据检索效率。
步骤S104:按照距离值选取多个第一整型向量距离对应的向量样本作为与待检索向量相似的相似向量样本。一个实施方式中,可以按照距离值由小至大的顺序选取多个第一整型向量距离对应的向量样本作为相似向量样本。
基于PQ算法对向量距离计算过程的优化,相较于暴力搜索的方法,本发明实施例利用PQ算法对向量样本进行相似数据检索,能够显著提高数据的检索效率。同时,本发明实施例可以在获取到利用PQ算法生成的向量距离查询表之后,对该向量距离查询表中的向量距离进行数据转换(将向量距离查询表中的浮点型向量距离转换为整型向量距离),以降低向量距离查询表的数据大小,满足处理器的一级缓存的缓存存储要求,使得处理器只需在一级缓存中加载一次向量距离查询表,就可以完成对一个向量样本的相似性检索,克服了现有技术中在利用PQ算法对大批量的向量样本进行相似性检索时由于反复加载向量距离查询表导致的检索效率下降的缺陷。
此外,为了进一步提高利用PQ算法对大批量向量样本的检索效率,可以将这些向量样本聚类为多个不同的向量样本组,然后选取与待检索向量相似的向量样本组,对这些向量样本组中的向量样本进行检索,从而可以节省对其他不相似的向量样本组进行检索的时间。在一个实施方式中,可以在执行步骤S101之前,先对获取到的向量样本进行分组,然后选取与待检索向量相似的向量样本组作为目标向量样本组,最后针对每个目标向量样本组分别执行步骤S101-步骤S104所述的数据检索方法进行向量样本检索。具体而言,在步骤S101之前,数据检索方法还可以包括以下步骤S100。
步骤S100:利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;分别计算待检索向量与每个粗聚类中心向量之间的向量距离;按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。
在本发明实施例中,当针对每个目标向量样本组都通过执行步骤S101-步骤S104完成数据检索得到每个目标向量样本组各自对应的相似向量样本以后,可以对这些相似向量样本再次进行筛选,选取与待检索向量相似的最终相似向量样本,以进一步提高相似向量样本的检索准确性。具体而言,一个实施方式中,在步骤S104之后,数据检索方法还可以包括以下步骤S105-步骤S107。
步骤S105:判断步骤S101所述的当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组,即判断该目标向量样本组是否为步骤S100中得到的多个目标向量样本组中最后一个完成数据检索的目标向量样本组。如果当前目标向量样本组是最后一个完成数据检索的目标向量样本组,则转至步骤S106。如果当前目标向量样本组不是最后一个完成数据检索的目标向量样本组,则转至步骤S101,继续获取下一个待检索的目标向量样本组进行数据检索。
步骤S106:分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与待检索向量的第一整型向量距离,即分别获取步骤S100中得到的多个目标向量样本组中每个目标向量样本组各自对应的相似向量样本以及第一整型向量距离。
步骤S107:将每个第一整型向量距离分别转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与待检索向量相似的最终相似向量样本。
由于浮点型数据的精度高于整型数据的精度,因此先将第一整型向量距离转换为第一浮点型向量距离,再根据第一浮点型向量距离筛选与待检索向量相似的最终相似向量样本,能够提高相似向量样本的筛选准确性。需要说明的是,在本实施例中,可以采用计算机数据处理技术领域中常规的整型数据与浮点型数据之间的数据转换方法,将第一整型向量距离转换为第一浮点型向量距离,为了描述简洁,在此不再对上述数据转换方法进行赘述。
需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。
进一步,本发明还提供了一种数据检索装置。
参阅附图2,图2是根据本发明的一个实施例的数据检索装置的主要结构框图。如图2所示,本发明实施例中的数据检索装置主要包括向量距离查询表获取模块11、向量距离查询表转换模块12和向量距离查询表查询模块13。在一些实施例中,向量距离查询表获取模块11、向量距离查询表转换模块12和向量距离查询表查询模块13中的一个或多个可以合并在一起成为一个模块。在一些实施例中,
向量距离查询表获取模块11可以被配置成利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与待检索向量和当前目标向量样本组对应的向量距离查询表。向量距离查询表转换模块12可以被配置成将向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表。向量距离查询表查询模块13可以被配置成根据整型向量距离查询表获取当前目标向量样本组中的每个向量样本与待检索向量之间的第一整型向量距离。相似向量样本获取模块14可以被配置成按照距离值选取多个第一整型向量距离对应的向量样本作为与待检索向量相似的相似向量样本。一个实施方式中,具体实现功能的描述可以参见步骤S101-步骤S104所述。
在一个实施方式中,向量距离查询表转换模块12可以被进一步配置成执行前述公式(1)所示的方法将向量距离查询表中的每个浮点型向量距离分别转换为整型向量距离。一个实施方式中,具体实现功能的描述可以参见步骤S102所述。
在一个实施方式中,图2所示的数据检索方法还可以包括向量码本获取模块。在本实施方式中,向量码本获取模块可以被配置成执行以下操作:分别对当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取每个向量样本各自对应的m个维度是d1/m的子向量样本;d1是向量样本的维度且d1>m>1;获取每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组;分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取每个子向量样本组各自对应的多个聚类中心向量;根据每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组;根据每个向量分割排列顺序以及各自对应的聚类中心向量组,构建向量码本。一个实施方式中,具体实现功能的描述可以参见步骤S101所述。
在一个实施方式中,向量距离查询表获取模块可以被进一步配置成执行以下操作:对待检索向量进行向量分割并且根据向量分割的结果获取待检索向量对应的m个维度是d2/m的子检索向量;d2是待检索向量的维度且d2=d1;根据每个子检索向量各自对应的向量分割排列顺序,以及向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在向量码本中每个子检索向量各自对应的聚类中心向量组;分别计算每个子检索向量与相应的聚类中心向量组中每个聚类中心向量之间的浮点型向量距离;根据子检索向量与浮点型向量距离的对应关系获取向量距离查询表。一个实施方式中,具体实现功能的描述可以参见步骤S101所述。
在一个实施方式中,向量距离查询表查询模块13可以被进一步配置成执行以下操作:
分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码;查询整型向量距离查询表中与每个量化编码对应的第二整型向量距离;分别对每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到每个向量样本各自对应的向量距离和;根据每个向量距离和分别获取相应的向量样本与待检索向量之间的第一整型向量距离;其中,子向量样本对应的量化编码是在向量码本中与子向量样本对应的聚类中心向量组中特定聚类中心向量在聚类中心向量组中的向量排序编号;特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。一个实施方式中,具体实现功能的描述可以参见步骤S103所述。
在一个实施方式中,图2所示的数据检索方法还可以包括目标向量样本组获取模块。在本实施方式中,目标向量样本组获取模块可以被配置成执行以下操作:利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;分别计算待检索向量与每个粗聚类中心向量之间的向量距离;按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。一个实施方式中,具体实现功能的描述可以参见步骤S100所述。
在一个实施方式中,相似向量样本获取模块14可以被进一步配置成执行以下操作:
在获取到当前目标向量样本组中与待检索向量相似的相似向量样本之后,判断当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组;若是,则分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与待检索向量的第一整型向量距离;将第一整型向量距离转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与待检索向量相似的最终相似向量样本。一个实施方式中,具体实现功能的描述可以参见步骤S105-步骤S107所述。
在一个实施方式中,向量距离查询表查询模块13可以被进一步配置成执行以下操作:将整型向量距离查询表加载至数据检索装置的一级缓存中,以便能够通过访问一级缓存中的整型向量距离查询表获取当前目标向量样本组中每个向量样本与待检索向量之间的第一整型向量距离。其中,一级缓存是数据检索装置的缓存中访问速度最快的缓存。一个实施方式中,具体实现功能的描述可以参见步骤S103所述。
上述数据检索装置以用于执行图1所示的数据检索方法实施例,两者的技术原理、所解决的技术问题及产生的技术效果相似,本技术领域技术人员可以清楚地了解到,为了描述的方便和简洁,数据检索装置的具体工作过程及有关说明,可以参考数据检索方法的实施例所描述的内容,此处不再赘述。
本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的数据检索方法的程序,该程序可以由处理器加载并运行以实现上述数据检索方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。
进一步,本发明还提供了一种数据检索装置。在根据本发明的一个数据检索装置实施例中,数据检索装置包括处理器和存储装置,存储装置可以被配置成存储执行上述方法实施例的数据检索方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的数据检索方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该数据检索装置可以是包括各种电子设备形成的控制装置设备。
进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的系统的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
本领域技术人员能够理解的是,可以对系统中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
至此,已经结合附图所示的一个实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (16)
1.一种数据检索方法,其特征在于,所述方法包括:
利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表;
将所述向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表;
根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离;
按照距离值选取一个或多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本。
3.根据权利要求1所述的数据检索方法,其特征在于,在“利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤之前,所述方法还包括:
分别对所述当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取所述每个向量样本各自对应的m个维度是d1/m的子向量样本;所述d1是向量样本的维度且d1>m>1;
获取所述每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组;
分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取所述每个子向量样本组各自对应的多个聚类中心向量;
根据所述每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组;
根据所述每个向量分割排列顺序以及各自对应的聚类中心向量组,构建向量码本。
4.根据权利要求3所述的数据检索方法,其特征在于,“获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤具体包括:
对待检索向量进行向量分割并且根据向量分割的结果获取所述待检索向量对应的m个维度是d2/m的子检索向量;所述d2是待检索向量的维度且d2=d1;
根据每个子检索向量各自对应的向量分割排列顺序,以及所述向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在所述向量码本中所述每个子检索向量各自对应的聚类中心向量组;
分别计算所述每个子检索向量与相应的聚类中心向量组中每个聚类中心向量之间的浮点型向量距离;
根据所述子检索向量与所述浮点型向量距离的对应关系获取所述向量距离查询表;
并且/或者,
“根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离”的步骤具体包括:
分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码;
查询所述整型向量距离查询表中与每个量化编码对应的第二整型向量距离;
分别对所述每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到所述每个向量样本各自对应的向量距离和;
根据每个向量距离和分别获取相应的向量样本与所述待检索向量之间的第一整型向量距离;
其中,
子向量样本对应的量化编码是在所述向量码本中与所述子向量样本对应的聚类中心向量组中特定聚类中心向量在所述聚类中心向量组中的向量排序编号;所述特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。
5.根据权利要求1至4中任一项所述的数据检索方法,其特征在于,在,在“利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表”的步骤之前,所述方法还包括:
利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;
分别计算所述待检索向量与每个粗聚类中心向量之间的向量距离;
按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。
6.根据权利要求5所述的数据检索方法,其特征在于,在“按照距离值由小至大的顺序选取多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本”的步骤之后,所述方法还包括:
判断所述当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组;
若是,则分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与所述待检索向量的第一整型向量距离;
将所述第一整型向量距离转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与所述待检索向量相似的最终相似向量样本。
7.根据权利要求1至4中任一项所述的数据检索方法,其特征在于,“根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离”的步骤具体包括:
当利用处理器加载并运行所述数据检索方法时,将所述整型向量距离查询表加载至所述处理器的一级缓存中,以便所述处理器能够通过访问所述一级缓存中的整型向量距离查询表获取所述当前目标向量样本组中每个向量样本与所述待检索向量之间的第一整型向量距离;
其中,所述一级缓存是所述处理器的缓存中访问速度最快的缓存。
8.一种数据检索装置,其特征在于,所述装置包括:
向量距离查询表获取模块,其被配置成利用PQ算法并且根据待检索向量与当前目标向量样本组,获取与所述待检索向量和所述当前目标向量样本组对应的向量距离查询表;
向量距离查询表转换模块,其被配置成将所述向量距离查询表中的浮点型向量距离转换为整型向量距离,以形成整型向量距离查询表;
向量距离查询表查询模块,其被配置成根据所述整型向量距离查询表获取所述当前目标向量样本组中的每个向量样本与所述待检索向量之间的第一整型向量距离;
相似向量样本获取模块,其被配置成按照距离值选取一个或多个所述第一整型向量距离对应的向量样本作为与所述待检索向量相似的相似向量样本。
10.根据权利要求8所述的数据检索装置,其特征在于,所述装置还包括向量码本获取模块,所述向量码本获取模块被配置成执行以下操作:
分别对所述当前目标向量样本组中的每个向量样本进行向量分割,并且根据向量分割的结果获取所述每个向量样本各自对应的m个维度是d1/m的子向量样本;所述d1是向量样本的维度且d1>m>1;
获取所述每个向量样本各自对应的每个子向量样本中向量分割排列顺序相同的子向量样本,以形成每个向量分割排列顺序各自对应的子向量样本组;
分别对每个子向量样本组进行聚类处理,并且根据聚类处理的结果获取所述每个子向量样本组各自对应的多个聚类中心向量;
根据所述每个子向量样本组各自对应的向量分割排列顺序以及多个聚类中心向量,获取每个向量分割排列顺序各自对应的聚类中心向量组;
根据所述每个向量分割排列顺序以及各自对应的聚类中心向量组,构建向量码本。
11.根据权利要求10所述的数据检索装置,其特征在于,所述向量距离查询表获取模块被进一步配置成执行以下操作:
对待检索向量进行向量分割并且根据向量分割的结果获取所述待检索向量对应的m个维度是d2/m的子检索向量;所述d2是待检索向量的维度且d2=d1;
根据每个子检索向量各自对应的向量分割排列顺序,以及所述向量码本中每个向量分割排列顺序各自对应的聚类中心向量组,获取在所述向量码本中所述每个子检索向量各自对应的聚类中心向量组;
分别计算所述每个子检索向量与相应的聚类中心向量组中每个聚类中心向量之间的浮点型向量距离;
根据所述子检索向量与所述浮点型向量距离的对应关系获取所述向量距离查询表;
并且/或者,
所述向量距离查询表查询模块被进一步配置成执行以下操作:
分别获取当前目标向量样本组中每个向量样本中的每个子向量样本各自对应的量化编码;
查询所述整型向量距离查询表中与每个量化编码对应的第二整型向量距离;
分别对所述每个向量样本各自对应的所有第二整型向量距离进行加和计算,得到所述每个向量样本各自对应的向量距离和;
根据每个向量距离和分别获取相应的向量样本与所述待检索向量之间的第一整型向量距离;
其中,
子向量样本对应的量化编码是在所述向量码本中与所述子向量样本对应的聚类中心向量组中特定聚类中心向量在所述聚类中心向量组中的向量排序编号;所述特定聚类中心向量是在相应的聚类中心向量组中与子向量样本的向量距离最小的聚类中心向量。
12.根据权利要求8至11中任一项所述的数据检索装置,其特征在于,所述装置还包括目标向量样本组获取模块,所述目标向量样本组获取模块被配置成执行以下操作:
利用IVF算法对预先获取到的向量样本进行聚类处理,得到多个向量样本组以及每个向量样本组各自对应的粗聚类中心向量;
分别计算所述待检索向量与每个粗聚类中心向量之间的向量距离;
按照距离值由小至大的顺序选取多个向量距离对应的向量样本组,并且将选取到的向量样本组作为目标向量样本组。
13.根据权利要求12所述的数据检索装置,其特征在于,所述相似向量样本获取模块被进一步配置成执行以下操作:
在获取到当前目标向量样本组中与待检索向量相似的相似向量样本之后,判断所述当前目标向量样本组是否为最后一个完成数据检索的目标向量样本组;
若是,则分别获取每个目标向量样本组各自对应的相似向量样本以及每个相似向量样本各自对应的与所述待检索向量的第一整型向量距离;
将所述第一整型向量距离转换为第一浮点型向量距离并且按照数值由小至大的顺序选取多个第一浮点型向量距离对应的相似向量样本作为与所述待检索向量相似的最终相似向量样本。
14.根据权利要求8至11中任一项所述的数据检索装置,其特征在于,所述向量距离查询表查询模块被进一步配置成执行以下操作:
将所述整型向量距离查询表加载至所述数据检索装置的一级缓存中,以便能够通过访问所述一级缓存中的整型向量距离查询表获取所述当前目标向量样本组中每个向量样本与所述待检索向量之间的第一整型向量距离;
其中,所述一级缓存是所述数据检索装置的缓存中访问速度最快的缓存。
15.一种数据检索装置,包括处理器和存储装置,所述存储装置适于存储多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行权利要求1至7中任一项所述的数据检索方法。
16.一种计算机可读存储介质,其中存储有多条程序代码,其特征在于,所述程序代码适于由处理器加载并运行以执行权利要求1至7中任一项所述的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302942.7A CN112418298B (zh) | 2020-11-19 | 2020-11-19 | 数据检索方法、装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302942.7A CN112418298B (zh) | 2020-11-19 | 2020-11-19 | 数据检索方法、装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112418298A true CN112418298A (zh) | 2021-02-26 |
CN112418298B CN112418298B (zh) | 2021-12-03 |
Family
ID=74773157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011302942.7A Active CN112418298B (zh) | 2020-11-19 | 2020-11-19 | 数据检索方法、装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112418298B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127672A (zh) * | 2021-04-21 | 2021-07-16 | 鹏城实验室 | 量化图像检索模型的生成方法、检索方法、介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085607A (zh) * | 2017-04-19 | 2017-08-22 | 电子科技大学 | 一种图像特征点匹配方法 |
US20180101570A1 (en) * | 2016-10-11 | 2018-04-12 | Google Inc. | Hierarchical quantization for fast inner product search |
CN110609916A (zh) * | 2019-09-25 | 2019-12-24 | 四川东方网力科技有限公司 | 视频图像数据检索方法、装置、设备和存储介质 |
CN111767419A (zh) * | 2019-05-22 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 图片搜索方法、装置、设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143597B (zh) * | 2019-12-13 | 2023-06-20 | 浙江大华技术股份有限公司 | 图像检索方法、终端及存储装置 |
-
2020
- 2020-11-19 CN CN202011302942.7A patent/CN112418298B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180101570A1 (en) * | 2016-10-11 | 2018-04-12 | Google Inc. | Hierarchical quantization for fast inner product search |
CN107085607A (zh) * | 2017-04-19 | 2017-08-22 | 电子科技大学 | 一种图像特征点匹配方法 |
CN111767419A (zh) * | 2019-05-22 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 图片搜索方法、装置、设备及计算机可读存储介质 |
CN110609916A (zh) * | 2019-09-25 | 2019-12-24 | 四川东方网力科技有限公司 | 视频图像数据检索方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
HERV´E J´EGOU ET AL: "《Product quantization for nearest neighbor search》", 《IEEE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127672A (zh) * | 2021-04-21 | 2021-07-16 | 鹏城实验室 | 量化图像检索模型的生成方法、检索方法、介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112418298B (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107085607B (zh) | 一种图像特征点匹配方法 | |
CN111177438B (zh) | 图像特征值的搜索方法、装置、电子设备及存储介质 | |
WO2012102926A1 (en) | Method and apparatus of identifying similar images | |
KR101958939B1 (ko) | 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법 | |
CN110874417B (zh) | 数据检索的方法和装置 | |
CN109902190B (zh) | 图像检索模型优化方法、检索方法、装置、系统及介质 | |
CN113918753A (zh) | 基于人工智能的图像检索方法及相关设备 | |
CN112994701A (zh) | 数据压缩方法、装置、电子设备及计算机可读介质 | |
CN112418298B (zh) | 数据检索方法、装置以及计算机可读存储介质 | |
CN113536020B (zh) | 数据查询的方法、存储介质和计算机程序产品 | |
CN113409827B (zh) | 基于局部卷积块注意力网络的语音端点检测方法及系统 | |
EP3655862B1 (en) | Multiscale quantization for fast similarity search | |
CN112948613B (zh) | 图像增量聚类方法、系统、介质及装置 | |
WO2021007999A1 (zh) | 视频帧处理方法及装置 | |
CN113743593B (zh) | 神经网络量化方法、系统、存储介质及终端 | |
CN111767419A (zh) | 图片搜索方法、装置、设备及计算机可读存储介质 | |
CN115129949A (zh) | 向量范围检索的方法、装置、设备、介质及程序产品 | |
CN109299260B (zh) | 数据分类方法、装置以及计算机可读存储介质 | |
CN114913358B (zh) | 一种基于自动编码器的医药高光谱异物检测方法 | |
CN116091867B (zh) | 一种模型训练、图像识别方法、装置、设备及存储介质 | |
CN117235137B (zh) | 一种基于向量数据库的职业信息查询方法及装置 | |
CN111291602A (zh) | 视频检测方法、装置、电子设备及计算机可读存储介质 | |
CN116108219B (zh) | 图像检索方法、装置、电子设备和存储介质 | |
CN117131228A (zh) | 一种向量检索方法及装置 | |
Chaisorn et al. | A fast and efficient framework for indexing and detection of modified copies in video |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |