CN110880005B - 向量索引建立方法及装置和向量检索方法及装置 - Google Patents
向量索引建立方法及装置和向量检索方法及装置 Download PDFInfo
- Publication number
- CN110880005B CN110880005B CN201811030612.XA CN201811030612A CN110880005B CN 110880005 B CN110880005 B CN 110880005B CN 201811030612 A CN201811030612 A CN 201811030612A CN 110880005 B CN110880005 B CN 110880005B
- Authority
- CN
- China
- Prior art keywords
- clustering
- cluster
- preset
- center
- binary
- 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.)
- Active
Links
- 239000013598 vector Substances 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000002776 aggregation Effects 0.000 claims description 27
- 238000012163 sequencing technique Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 11
- 238000004220 aggregation Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种向量索引建立方法及装置和向量检索方法及装置,本申请在每一个第一层的第一聚类簇内部再次进行第二层的聚类,实现了基于层次的二值聚类,减小了最终得到的聚类中心点与数据点的平均误差,降低了由于第一层的第一聚类中心误差大而导致的数据召不回的问题,进而提高了向量检索的准确度。
Description
技术领域
本申请涉及但不限于大数据搜索技术,尤指一种向量索引建立方法及装置和向量检索方法及装置。
背景技术
随着数据爆炸式的增长,向量检索在图像、视频、文字和语音等多媒体领域中已经越来越重要。其中,向量检索是指,对于查询(query)向量即用户输入的查询向量,在固定的一个向量库中,查找与这个query向量距离最近的若干个向量。
向量被二值化已然成为一种趋势,由于被二值化的向量是由0和1组成的二值特征,它不仅可以压缩存储,同时加速了计算。
发明内容
本发明实施例提供一种向量索引建立方法及装置和向量检索方法及装置,能够提高检索的准确度。
本发明实施例提供了一种向量索引建立方法,包括:
对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中,M、N为大于1的整数,M<N;
根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心;
根据获取的预设第二数值个第二聚类中心建立索引。
可选地,所述对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,包括:
根据所述N个二值特征中的M个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇,其中M<N;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和所述M个二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第一数值个第一聚类中心。
可选地,所述利用更新后的聚类中心和M个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇的步骤。
可选地,所述根据所述N个二值特征中的M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,包括:
从所述N个二值特征中采样所述M个二值特征;
从所述M个二值特征中采样所述预设第一数值个二值特征作为初始的第一聚类中心;
分别计算所述M个二值特征和初始的第一聚类中心的海明距离,使得所述M个二值特征分别归属于距离自身最近的第一聚类中心,以形成所述预设第一数值个第一聚类簇。
可选地,所述对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将所述第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第一聚类簇的聚类中心。
可选地,所述根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心,包括:
分别计算所述N个二值特征和获取的第一聚类中心的海明距离,分别找到与所述N个二值特征距离最近的第一聚类中心,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,将所述N个二值特征划分为预设第一数值个第三聚类簇;
对每个第三聚类簇中的二值特征分别进行聚类,获取所述预设第二数值个第二聚类中心。
可选地,所述对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心,包括:
根据所述第三聚类簇中的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和所述第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第二数值个第二聚类中心。
可选地,所述利用更新后的聚类中心和第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇的步骤。
可选地,所述根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇,包括:
从所述第三聚类簇中的二值特征中采样所述预设第二数值个二值特征作为初始的第二聚类中心;
分别计算所述第三聚类簇中的二值特征和初始的第二聚类中心的海明距离,使得所述第三聚类簇中的二值特征分别归属于距离自身最近的第二聚类中心,以形成所述预设第二数值个第二聚类簇。
可选地,所述对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将所述第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第二聚类簇的聚类中心。
可选地,所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数;或者,
所述迭代结束条件包括:所述更新后的聚类中心变化稳定;所述满足迭代结束条件包括:所述更新后的聚类中心的变化逐渐减小,直到所述更新后的聚类中心的变化稳定。
可选地,所述索引为倒排索引;
所述建立倒排索引之后,还包括:
对与所述倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
本申请还提供了一种向量检索方法,包括:
根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;
根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;
从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;
利用获取的预设查询数值个索引值获取对应数据。
可选地,所述确定预设排序数值个目标聚类中心,包括:
分别计算所述查询向量中的二值特征和每个所述第一聚类中心的第一海明距离,按照从小到大的顺序选取预设第一排序数值个小的第一海明距离对应的第一聚类中心,选取的第一聚类中心为所述第一目标聚类中心。
可选地,所述获取预设查询数值个索引值,包括:
将所述第二海明距离按照从小到大的顺序排序;
从最小的所述第二海明距离对应的第二聚类中心开始,从所述预先建立的索引中获取对应的索引值,直到获取的索引值大于或等于预设查询数值。
本申请再提供了一种向量索引建立装置,包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中M<N;
第二聚类模块,用于根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心;
建立模块,用于根据获取的预设第二数值个第二聚类中心建立索引。
可选地,所述索引为倒排索引;
所述索引装置还包括:优化模块,用于对与建立的倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
本申请又提供了一种向量检索装置,包括:第一处理模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;
查询模块,用于从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;
获取模块,用于利用获取的预设查询数值个索引值获取对应数据。
本申请向量索引建立方法包括:对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中M<N;根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心;根据获取的预设第二数值个第二聚类中心建立索引。本申请向量索引建立方法,在每一个第一聚类簇内部再次进行第二层的聚类,实现了基于层次的二值聚类,减小了最终得到的聚类中心点与数据点的平均误差,更好地保证了向量检索的准确度。
本申请向量检索方法包括:根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;利用获取的预设查询数值个索引值获取对应数据。本申请向量检索降低了由于第一层的第一聚类中心误差大而导致的数据召不回的问题,提高了检索的准确度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请向量索引建立方法的流程示意图;
图2为本申请向量检索方法的流程示意图;
图3为本申请向量索引建立装置的组成结构示意图;
图4为本申请向量检索装置的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本申请向量索引建立方法的流程示意图,本申请基于层次的二值聚类建立索引,如图1所示,包括:
步骤100:对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中,M、N为大于1的整数,M<N。
可选地,本步骤包括:
根据N个二值特征中的M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,其中M<N;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和M个二值特征进行聚类迭代直到满足迭代结束条件,得到预设第一数值个第一聚类中心。
在一种示例性实例中,利用更新后的聚类中心和M个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,重复执行以下步骤:
根据M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,直到满足迭代结束条件。
可选地,N值越大,预设第一数值越大。
在一个示例性实例中,如果N为1,000,000,那么,预设第一数值可以取值为1024。在一个示例性实例中,如果N为1,000,000,那么,M的取值可以为500,000。
可选地,N个二值特征的产生和获取并不用于限定本申请的保护范围,只要有N个二值特征即可应用本申请的索引建立和向量检索。
可选地,迭代结束条件可以是预先设置的迭代次数,那么,满足迭代结束条件就是达到所述迭代次数;迭代结束条件也可以使更新后的聚类中心变化稳定,那么,满足迭代结束条件就是:随着迭代次数的增减,更新后的聚类中心的变化逐渐减小,直到更新后的聚类中心的变化稳定,则结束迭代。
在一种示例性实例中,根据M个二值特征和预设第一数值,形成预设第一数值个第一聚类簇,包括:
从N个二值特征中采样如随机采样等M个二值特征,其中M<N;
从M个二值特征中采样如随机采样等预设第一数值个二值特征作为初始的第一聚类中心;
分别计算M个二值特征和初始的第一聚类中心的海明距离,使得M个二值特征分别归属于距离自身最近的第一聚类中心,以形成预设第一数值个第一聚类簇。
这样,M个二值特征就被分成了预设第一数值份数据。
本申请实施例中,用于二值聚类的数据是从用于建立索引的N个二值特征中通过降采样得到的M个二值特征,不但实现的效果不变,还提升了效率。
在一种示例性实例中,对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化;比如:将得到的商与0.5比较,如果得到的商大于或等于0.5,则取值为1;如果得到的商小于0.5,则取值为0;
将二值化后的商作为更新后的该第一聚类簇的聚类中心。
通过步骤100的第一层的聚类之后,数据集被分散开来。
步骤101:根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心。
可选地,本步骤包括:
分别计算N个二值特征和获取的第一聚类中心的海明距离,分别找到与N个二值特征距离最近的第一聚类中心,使得N个二值特征分别归属于距离自身最近的第一聚类中心,将N个二值特征划分为预设第一数值个第三聚类簇;
对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心。
在一种示例性实例中,对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心,包括:
根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,得到预设第二数值个第二聚类中心。
在一种示例性实例中,利用更新后的聚类中心和第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,重复执行以下步骤:
根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,直到满足迭代结束条件。
可选地,迭代结束条件可以是预先设置的迭代次数,那么,满足迭代结束条件就是达到所述迭代次数;迭代结束条件也可以使更新后的聚类中心变化稳定,那么,满足迭代结束条件就是:随着迭代次数的增减,更新后的聚类中心的变化逐渐减小,直到更新后的聚类中心的变化稳定,则结束迭代。
在一种示例性实例中,根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇,包括:
从第三聚类簇中的二值特征中采用如随机采样等预设第二数值个二值特征作为初始的第二聚类中心;
分别计算第三聚类簇中的二值特征和初始的第二聚类中心的海明距离,使得第三聚类簇中的二值特征分别归属于距离自身最近的第二聚类中心,以形成预设第二数值个第二聚类簇。
这样,每个第三聚类簇中的二值特征就分别都被分成了预设第二数值份数据。
在一种示例性实例中,对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化;比如:将得到的商与0.5比较,如果得到的商大于或等于0.5,则取值为1;如果得到的商小于0.5,则取值为0;
将二值化后的商作为更新后的该第二聚类簇的聚类中心。
可选地,预设第二数值可以等于预设第一数值,也可以与预设第一数值不同。
通过步骤101,实现了经过步骤100得到的每一个第一聚类簇内部再次进行第二层的聚类,即实现了基于层次的二值聚类,减小了最终得到的聚类中心点与数据点的平均误差,更好地保证了后续向量检索的准确度。这样,对于N个二值特征,形成了预设第一数值个第一聚类簇,以及第一聚类簇内部的预设第二数值个第二聚类簇,也就是说,在第一层的聚类中,产生了预设第一数值个第一聚类中心,在第二层的聚类中长生了预设第一数值乘以预设第二数值个第二聚类中心。在一种示例性实例中,假设预设第一数值=1024,预设第二数值=1024,那么,通过申请提供的索引建立方法,对于N个二值特征,形成了1024个第一层的二值中心点,以及1024*1024个第二层的二值中心点。
步骤102:根据获取的预设第二数值个第二聚类中心建立索引。
需要说明的是,本步骤的具体实现并不用于限定本申请的保护范围。
在一个示例性实例中,索引可以为倒排索引。
可选地,建立倒排索引之后,还包括:
对与倒排索引的各倒排链中的特征(即数据标识如DocId)对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。这样为大大提升后续向量检索的速度提供了保障。
倒排索引就是反向索引,是将索引存为倒排表和倒排链,其中,倒排表中存储的是所有的值,倒排链中存储的是数据的标识(DocId)列表。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图1所示实施例中任一项的向量索引建立方法。
本申请再提供一种计算机装置,包括存储器和处理器,其中,存储器中存储有存储有图1所示实施例中任一项的向量索引建立方法的步骤。
图2为本申请向量检索方法的流程示意图,如图2所示,包括:
步骤200:根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心。
可选地,本步骤包括:
分别计算用户输入的查询(query)向量中的二值特征和每个第一聚类中心的第一海明距离,按照从小到大的顺序选取预设第一排序数值个小的第一海明距离对应的第一聚类中心,选取的第一聚类中心为第一目标聚类中心。
步骤201:根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心。
步骤202:从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的。
可选地,本步骤包括:
将第二海明距离按照从小到大的顺序排序;
从最小的第二海明距离对应的第二聚类中心开始,从预先建立的索引如倒排索引中获取对应的索引值,直到获取的索引值的数量大于或等于预设查询数值。
在一个示例性实例中,假设预设查询数值为100,预先建立的倒排索引中,第一倒排链中对应10个索引值即数据的标识(DocId),第二倒排链中对应70个DocId,第三倒排链中对应50个DocId)…,那么,当从最小的第二海明距离对应的第二聚类中心开始,从该倒排索引中获取DocId时,首先会从第一倒排链中获取10个DocId,此时,获得的查询结果的数量10小于预设查询数值即100,因此,继续从第二倒排链中获取70个DocId,此时,获得的查询结果的数量为(10+70)=80,小于预设查询数值即100,因此,继续从第三倒排链中的获取获取50个DocId,此时,获得的查询结果的数量为(10+70+50)=130,大于预设查询数值即100,停止检索过程。
步骤203:利用获取的预设查询数值个索引值获取对应数据。
本步骤强调的是,本申请向量检索中,是一次性召回预设排序数值个第一层的第一聚类中心作为目标聚类中心,再一并按照查询向量与目标聚类中心内的第二次的第二聚类中心的第二海明距离从小到大取回预设查询数值个对应的数据。这种方法降低了由于第一层的第一聚类中心误差大而导致的数据召不回的问题,提高了向量检索的准确度。
需要说明的是,第一聚类中心的获取、第二聚类中心的获取,以及索引的建立请参见图1所示的实施例,这里不再赘述。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图2所示实施例中任一项的向量检索方法。
本申请再提供一种计算机装置,包括存储器和处理器,其中,存储器中存储有存储有图2所示实施例中任一项的向量检索方法的步骤。
图3为本申请向量索引建立装置的组成结构示意图,如图3所示,至少包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中M<N;
第二聚类模块,用于根据N个二值特征和获取的第一聚类中心进行聚类,获取预设第二数值个第二聚类中心;
建立模块,用于根据获取的预设第二数值个第二聚类中心建立索引。
在一个示例性实例中,索引可以为倒排索引。
可选地,本申请向量索引建立装置还包括优化模块,用于对与建立的倒排索引的各倒排链中的特征(即数据标识如DocId)对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
可选地,第一聚类模块具体用于:
根据N个二值特征中的M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,其中M<N;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和M个二值特征进行聚类迭代直到满足迭代结束条件,得到预设第一数值个第一聚类中心。
可选地,第二聚类模块具体用于:
分别计算N个二值特征和获取的第一聚类中心的海明距离,分别找到与N个二值特征距离最近的第一聚类中心,使得N个二值特征分别归属于距离自身最近的第一聚类中心,将N个二值特征划分为预设第一数值个第三聚类簇;
对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心。
图4为本申请向量检索装置的组成结构示意图,如图4所示,至少包括:第一处理模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;
查询模块,用于从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;
获取模块,用于利用获取的预设查询数值个索引值获取对应数据。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (17)
1.一种向量索引建立方法,包括:
对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中,M、N为大于1的整数,M<N;
分别计算所述N个二值特征和获取的第一聚类中心的海明距离,分别找到与所述N个二值特征距离最近的第一聚类中心,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,将所述N个二值特征划分为预设第一数值个第三聚类簇;对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心;
根据获取的预设第二数值个第二聚类中心建立索引。
2.根据权利要求1所述的向量索引建立方法,其中,所述对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,包括:
根据所述N个二值特征中的M个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇,其中M<N;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和所述M个二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第一数值个第一聚类中心。
3.根据权利要求2所述的向量索引建立方法,其中,所述利用更新后的聚类中心和M个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇的步骤。
4.根据权利要求2或3所述的向量索引建立方法,其中,所述根据所述N个二值特征中的M个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,包括:
从所述N个二值特征中采样所述M个二值特征;
从所述M个二值特征中采样所述预设第一数值个二值特征作为初始的第一聚类中心;
分别计算所述M个二值特征和初始的第一聚类中心的海明距离,使得所述M个二值特征分别归属于距离自身最近的第一聚类中心,以形成所述预设第一数值个第一聚类簇。
5.根据权利要求2或3所述的向量索引建立方法,其中,所述对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将所述第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第一聚类簇的聚类中心。
6.根据权利要求1所述的向量索引建立方法,其中,所述对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心,包括:
根据所述第三聚类簇中的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和所述第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第二数值个第二聚类中心。
7.根据权利要求6所述的向量索引建立方法,其中,所述利用更新后的聚类中心和第三聚类簇中的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇的步骤。
8.根据权利要求6或7所述的向量索引建立方法,其中,所述根据第三聚类簇中的二值特征和预设第二数值,获取预设第二数值个第二聚类簇,包括:
从所述第三聚类簇中的二值特征中采样所述预设第二数值个二值特征作为初始的第二聚类中心;
分别计算所述第三聚类簇中的二值特征和初始的第二聚类中心的海明距离,使得所述第三聚类簇中的二值特征分别归属于距离自身最近的第二聚类中心,以形成所述预设第二数值个第二聚类簇。
9.根据权利要求6或7所述的向量索引建立方法,其中,所述对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将所述第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第二聚类簇的聚类中心。
10.根据权利要求2、3、6或7所述的向量索引建立方法,其中,
所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数;或者,
所述迭代结束条件包括:所述更新后的聚类中心变化稳定;所述满足迭代结束条件包括:所述更新后的聚类中心的变化逐渐减小,直到所述更新后的聚类中心的变化稳定。
11.根据权利要求1所述的向量索引建立方法,其中,所述索引为倒排索引;
所述建立倒排索引之后,还包括:
对与所述倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
12.一种向量检索方法,包括:
根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;所述第一聚类中心为对N个二值特征中的M个二值特征进行聚类后获取,M、N为大于1的整数,M<N;
根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;
从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;所述预设第二数值个第二聚类中心通过以下方法获得:分别计算所述N个二值特征和获取的第一聚类中心的海明距离,分别找到与所述N个二值特征距离最近的第一聚类中心,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,将所述N个二值特征划分为预设第一数值个第三聚类簇;对每个第三聚类簇中的二值特征分别进行聚类,获取所述预设第二数值个第二聚类中心;
利用获取的预设查询数值个索引值获取对应数据。
13.根据权利要求12所述的向量检索方法,其中,所述确定预设排序数值个目标聚类中心,包括:
分别计算所述查询向量中的二值特征和每个所述第一聚类中心的第一海明距离,按照从小到大的顺序选取预设第一排序数值个小的第一海明距离对应的第一聚类中心,选取的第一聚类中心为第一目标聚类中心。
14.根据权利要求12所述的向量检索方法,其中,所述获取预设查询数值个索引值,包括:
将所述第二海明距离按照从小到大的顺序排序;
从最小的所述第二海明距离对应的第二聚类中心开始,从所述预先建立的索引中获取对应的索引值,直到获取的索引值大于或等于预设查询数值。
15.一种向量索引建立装置,包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于对N个二值特征中的M个二值特征进行聚类,获取预设第一数值个第一聚类中心,其中M<N;
第二聚类模块,用于分别计算所述N个二值特征和获取的第一聚类中心的海明距离,分别找到与所述N个二值特征距离最近的第一聚类中心,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,将所述N个二值特征划分为预设第一数值个第三聚类簇;对每个第三聚类簇中的二值特征分别进行聚类,获取预设第二数值个第二聚类中心;
建立模块,用于根据获取的预设第二数值个第二聚类中心建立索引。
16.根据权利要求15所述的向量索引建立装置,其中,所述索引为倒排索引;
所述向量索引建立装置还包括:优化模块,用于对与建立的倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
17.一种向量检索装置,包括:第一处理模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第一聚类中心的第一海明距离,确定预设排序数值个目标聚类中心;所述第一聚类中心为对N个二值特征中的M个二值特征进行聚类后获取,M、N为大于1的整数,M<N;
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中的每个预先获得的第二聚类中心,计算第二海明距离;其中,每个第一聚类中心对应的第一聚类簇内包括预设第二数值个第二聚类中心;
查询模块,用于从最小的第二海明距离对应的第二聚类中心开始,按照从小到大的顺序从预先建立的索引中获取预设查询数值个索引值;其中,索引为根据预先获得的预设第二数值个第二聚类中心建立的;所述预设第二数值个第二聚类中心通过以下方法获得:分别计算所述N个二值特征和获取的第一聚类中心的海明距离,分别找到与所述N个二值特征距离最近的第一聚类中心,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,将所述N个二值特征划分为预设第一数值个第三聚类簇;对每个第三聚类簇中的二值特征分别进行聚类,获取所述预设第二数值个第二聚类中心;
获取模块,用于利用获取的预设查询数值个索引值获取对应数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030612.XA CN110880005B (zh) | 2018-09-05 | 2018-09-05 | 向量索引建立方法及装置和向量检索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030612.XA CN110880005B (zh) | 2018-09-05 | 2018-09-05 | 向量索引建立方法及装置和向量检索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110880005A CN110880005A (zh) | 2020-03-13 |
CN110880005B true CN110880005B (zh) | 2023-06-23 |
Family
ID=69727249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811030612.XA Active CN110880005B (zh) | 2018-09-05 | 2018-09-05 | 向量索引建立方法及装置和向量检索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110880005B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131228A (zh) * | 2022-05-18 | 2023-11-28 | 华为技术有限公司 | 一种向量检索方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617217A (zh) * | 2013-11-20 | 2014-03-05 | 中国科学院信息工程研究所 | 一种基于层次索引的图像检索方法及系统 |
CN103744962A (zh) * | 2014-01-06 | 2014-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种实现K-means聚类的方法及装置 |
CN103744934A (zh) * | 2013-12-30 | 2014-04-23 | 南京大学 | 一种基于位置敏感哈希的分布式索引方法 |
CN104765768A (zh) * | 2015-03-09 | 2015-07-08 | 深圳云天励飞技术有限公司 | 海量人脸库的快速准确检索方法 |
CN105913077A (zh) * | 2016-04-07 | 2016-08-31 | 华北电力大学(保定) | 一种基于降维和抽样的数据聚类方法 |
WO2017020741A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 图像检索、获取图像信息及图像识别方法、装置及系统 |
-
2018
- 2018-09-05 CN CN201811030612.XA patent/CN110880005B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617217A (zh) * | 2013-11-20 | 2014-03-05 | 中国科学院信息工程研究所 | 一种基于层次索引的图像检索方法及系统 |
CN103744934A (zh) * | 2013-12-30 | 2014-04-23 | 南京大学 | 一种基于位置敏感哈希的分布式索引方法 |
CN103744962A (zh) * | 2014-01-06 | 2014-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种实现K-means聚类的方法及装置 |
CN104765768A (zh) * | 2015-03-09 | 2015-07-08 | 深圳云天励飞技术有限公司 | 海量人脸库的快速准确检索方法 |
WO2017020741A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 图像检索、获取图像信息及图像识别方法、装置及系统 |
CN105913077A (zh) * | 2016-04-07 | 2016-08-31 | 华北电力大学(保定) | 一种基于降维和抽样的数据聚类方法 |
Non-Patent Citations (2)
Title |
---|
Patrick Wieschollek 等.Efficient Large-Scale Approximate Nearest Neighbor Search on the GPU.《2016 IEEE Conference on Computer Vision and Pattern Recognition》.2016,2027-2035. * |
庄毅 ; 庄越挺 ; 吴飞 ; .基于混合距离树的海量书法字索引.计算机辅助设计与图形学学报.2007,(02),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110880005A (zh) | 2020-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019218B (zh) | 数据存储与查询方法及设备 | |
CN104199827B (zh) | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 | |
US9256665B2 (en) | Creation of inverted index system, and data processing method and apparatus | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN103744934A (zh) | 一种基于位置敏感哈希的分布式索引方法 | |
CN110889424B (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN108062384A (zh) | 数据检索的方法和装置 | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
CN110134335A (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
CN117251641A (zh) | 向量数据库检索方法、系统、电子设备及存储介质 | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN113656397A (zh) | 一种针对时序数据的索引构建及查询的方法、装置 | |
CN110880005B (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
CN110069523A (zh) | 一种数据查询方法、装置和查询系统 | |
CN116303625B (zh) | 一种数据查询的方法、装置、存储介质及电子设备 | |
CN117454206A (zh) | 针对晶圆的缺陷的聚类方法、系统、设备及计算机可读介质 | |
US11593412B2 (en) | Providing approximate top-k nearest neighbours using an inverted list | |
Lv et al. | Pf-face: A parallel framework for face classification and search from massive videos based on spark | |
CN113343141A (zh) | 一种网页获取方法及装置 | |
Zhou et al. | An index-based method for efficient maximizing range sum queries in road network | |
CN108073596B (zh) | 一种olap数据库的数据删除方法及装置 | |
CN111736845B (zh) | 一种编码方法和装置 | |
CN117540056B (zh) | 数据查询的方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |