CN110889424A - 向量索引建立方法及装置和向量检索方法及装置 - Google Patents

向量索引建立方法及装置和向量检索方法及装置 Download PDF

Info

Publication number
CN110889424A
CN110889424A CN201811058763.6A CN201811058763A CN110889424A CN 110889424 A CN110889424 A CN 110889424A CN 201811058763 A CN201811058763 A CN 201811058763A CN 110889424 A CN110889424 A CN 110889424A
Authority
CN
China
Prior art keywords
preset
clustering
cluster
index
center
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
Application number
CN201811058763.6A
Other languages
English (en)
Other versions
CN110889424B (zh
Inventor
赵康
潘攀
任小枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811058763.6A priority Critical patent/CN110889424B/zh
Publication of CN110889424A publication Critical patent/CN110889424A/zh
Application granted granted Critical
Publication of CN110889424B publication Critical patent/CN110889424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-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

本申请公开了一种向量索引建立方法及装置和向量检索方法及装置,本申请采用的是百万级的二值聚类,对于N个二值特征,产生出底层的第一聚类中心以及顶层的第二聚类中心,并且一个第一聚类中心同时归属于两个以上第二聚类中心所在聚类簇,这样,缓解了聚类边缘点误差较大的情况,更好地保证了向量检索的准确度。

Description

向量索引建立方法及装置和向量检索方法及装置
技术领域
本申请涉及但不限于大数据搜索技术,尤指一种向量索引建立方法及装置和向量检索方法及装置。
背景技术
随着数据爆炸式的增长,向量检索在图像、视频、文字和语音等多媒体领域中已经越来越重要。其中,向量检索是指,对于查询(query)向量即用户输入的查询向量,在固定的一个向量库中,查找与这个query向量距离最近的若干个向量。
向量被二值化已然成为一种趋势,由于被二值化的向量是由0和1组成的二值特征,它不仅可以压缩存储,同时加速了计算。
发明内容
本发明实施例提供一种向量索引建立方法及装置和向量检索方法及装置,能够提高检索的准确度。
本发明实施例提供了一种向量索引建立方法,包括:
根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值;
根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
可选地,所述根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,包括:
根据所述N个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和所述N个二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第一数值个第一聚类中心。
可选地,所述利用更新后的聚类中心和N个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据N个二值特征和预设第一数值,获取所述预设第一数值个第一聚类簇的步骤。
可选地,所述根据所述N个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇,包括:
从所述N个二值特征中采样所述预设第一数值个二值特征作为初始的第一聚类中心;
分别计算所述N个二值特征和初始的第一聚类中心的海明距离,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,以形成所述预设第一数值个第一聚类簇。
可选地,所述对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将所述第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第一聚类簇的聚类中心。
可选地,所述根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心,包括:
根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,得到预设第二数值个第二聚类中心;
分别计算所述预设第一数值个第一聚类中心和得到的预设第二数值个第二聚类中心的海明距离,使得所述预设第一数值个第一聚类中心对应的二值特征同时归属于距离自身最近的K个第二聚类中心,以更新所述获取的预设第二数值个第二聚类簇;其中,K为大于或等于2的整数。
可选地,所述利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,返回所述根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇的步骤。
可选地,所述根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇,包括:
从所述预设第一数值个第一聚类中心对应的二值特征中采样所述预设第二数值个二值特征作为初始的第二聚类中心;
分别计算所述预设第一数值个第一聚类中心对应的二值特征和初始的第二聚类中心的海明距离,使得所述预设第一数值个第一聚类中心对应的二值特征分别归属于距离自身最近的第二聚类中心,以形成所述预设第二数值个第二聚类簇。
可选地,所述更新获取的预设第二数值个第二聚类簇,包括:
将计算出的每个所述第一聚类中心对应的二值特征分别和每个初始的第二聚类中心的海明距离进行排序;
从距离最小的开始,依次选择所述K个第二聚类中心,使得该第一聚类中心同时归属于所述K个第二聚类中心。
可选地,所述对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将所述第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第二聚类簇的聚类中心。
可选地,所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数。
可选地,所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数;或者,
所述迭代结束条件包括:所述更新后的聚类中心变化稳定;所述满足迭代结束条件包括:所述更新后的聚类中心的变化逐渐减小,直到所述更新后的聚类中心的变化稳定。
可选地,所述第一索引为第一倒排索引;
所述建立第一倒排索引之后,还包括:
对与所述第一倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
可选地,所述第二索引为第一倒排索引;
所述建立第二倒排索引之后,还包括:
对与所述第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
本申请还提供了一种向量检索方法,包括:
根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心;
基于预先建立的第二索引对目标聚类中心所属聚类簇中的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的;
根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的;
利用获取的预设查询数值个第一索引值获取对应数据。
可选地,所述确定预设排序数值个目标聚类中心,包括:
分别计算所述查询向量中的二值特征和每个所述第二聚类中心的第二海明距离,按照从小到大的顺序选取预设排序数值个小的第二海明距离对应的第二聚类中心,选取的第二聚类中心为所述目标聚类中心。
可选地,所述获取预设查询数值个第一索引值,包括:
将所述第一海明距离按照从小到大的顺序排序;
从最小的所述第一海明距离对应的第一聚类中心开始,从所述预先建立的第一索引中获取对应的第一索引值,直到获取的第一索引值的数量大于或等于预设查询数值。
本申请又提供了一种向量索引建立装置,包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值;
第二聚类模块,用于根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
建立模块,用于根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
可选地,所述第一索引为第一倒排索引,所述第二索引为第二倒排索引;
所述索引装置还包括:优化模块,用于对与建立的第一倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的;和/或,用于对与建立的第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
本申请再提供了一种向量检索装置,包括:第一处理模块、去重模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心;
去重模块,用于基于预先建立的第二索引对目标聚类中心所属聚类簇中的预先获得的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的。
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
查询模块,用于从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的;
获取模块,用于利用获取的预设查询数值个第一索引值获取对应数据。
本申请向量索引建立方法包括:根据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个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值。
可选地,本步骤包括:
根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,其中,预设第一数值为百万级数值;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和N个二值特征进行聚类迭代直到满足迭代结束条件,得到预设第一数值个第一聚类中心。
在一种示例性实例中,利用更新后的聚类中心和N个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,重复执行以下步骤:
根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类簇;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,直到满足迭代结束条件。
可选地,N值越大,预设第一数值越大。比如,N大于或等于1亿,预设第一数值小于N且大于或等于一百万。
在一个示例性实例中,如果N为100,000,000,那么,预设第一数值可以取值为大于或等于1,000,000。
可选地,N个二值特征的产生和获取并不用于限定本申请的保护范围,只要有N个二值特征即可应用本申请的向量索引建立和向量检索。
可选地,迭代结束条件可以是预先设置的迭代次数,比如迭代次数小于10次,再如迭代次数为5次,那么,满足迭代结束条件就是达到所述迭代次数。
在一种示例性实例中,根据N个二值特征和预设第一数值,形成预设第一数值个第一聚类簇,包括:
从N个二值特征中采样如随机采样等预设第一数值个二值特征作为初始的第一聚类中心;
分别计算N个二值特征和初始的第一聚类中心的海明距离,使得N个二值特征分别归属于距离自身最近的第一聚类中心,以形成预设第一数值个第一聚类簇。
这样,N个二值特征就被分成了预设第一数值份数据。
在一种示例性实例中,对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化;比如:将得到的商与0.5比较,如果得到的商大于或等于0.5,则取值为1;如果得到的商小于0.5,则取值为0;
将二值化后的商作为更新后的该第一聚类簇的聚类中心。
通过步骤100的底层的聚类之后,数据集被分散开来。
步骤101:根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇。
可选地,本步骤包括:
根据预设第一数值个第一聚类中心对应的二值特征和预设第二数值,获取预设第二数值个第二聚类簇;其中,一个第一聚类中心归属于两个以上第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,得到预设第二数值个第二聚类中心;
分别计算预设第一数值个第一聚类中心和得到的预设第二数值个第二聚类中心的海明距离,使得预设第一数值个第一聚类中心对应的二值特征同时归属于距离自身最近的K个第二聚类中心,以更新所述获取的预设第二数值个第二聚类簇;其中,K为大于或等于2的整。
可选地,更新预设第二数值个第二聚类簇包括:
对于计算出来的每个第一聚类中心,将计算出该第一聚类中心对应的二值特征和每个初始的第二聚类中心的海明距离进行排序;
从距离最小的开始,依次选择K个第二聚类中心,使得该第一聚类中心同时归属于这K个第二聚类中心。
这样,采用百万级的二值聚类得到的预设第一数值个第一聚类中心对应的二值特征就被分成了预设第二数值份数据,而且每个第一聚类中心同时归属于K个第二聚类中心,也就是说,每个第一聚类中心被同时包含在K个第二聚类中心所在的簇中。在一种示例性实例中,K为大于或等于2的整数。
在一种示例性实例中,利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,重复执行以下步骤:
根据预设第一数值个第一聚类中心对应的二值特征和预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,直到满足迭代结束条件。
可选地,迭代结束条件可以是预先设置的迭代次数,比如迭代次数小于10次,再如迭代次数为5次,那么,满足迭代结束条件就是达到所述迭代次数;迭代结束条件也可以使更新后的聚类中心变化稳定,那么,满足迭代结束条件就是:随着迭代次数的增减,更新后的聚类中心的变化逐渐减小,直到更新后的聚类中心的变化稳定,则结束迭代。
在一种示例性实例中,根据预设第一数值个第一聚类中心对应的二值特征和预设第二数值,获取预设第二数值个第二聚类簇,包括:
从预设第一数值个第一聚类中心对应的二值特征中采样如随机采样等预设第二数值个二值特征作为初始的第二聚类中心;
分别计算预设第一数值个第一聚类中心对应的二值特征和初始的第二聚类中心的海明距离,使得预设第一数值个第一聚类中心对应的二值特征分别归属于距离自身最近的第二聚类中心,以形成预设第二数值个第二聚类簇。
在一种示例性实例中,对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化;比如:将得到的商与0.5比较,如果得到的商大于或等于0.5,则取值为1;如果得到的商小于0.5,则取值为0;
将二值化后的商作为更新后的该第二聚类簇的聚类中心。
通过步骤101的顶层的聚类之后,对于N个二值特征,产生出预设第一数值个底层的第一聚类中心,以及预设第二数值个顶层的第二聚类中心,而且第一聚类中心被同时包含在K个第二聚类中心所在的簇中即一个第一聚类中心同时被K个第二聚类中心覆盖。这样,缓解了聚类边缘点误差较大的情况,更好地保证了向量检索的准确度。
可选地,预设第一数值越大,预设第二数值越大。
在一个示例性实例中,如果预设第一数值为1,000,000,那么,预设第二数值可以取值为1024。
步骤102:根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
需要说明的是,本步骤的具体实现并不用于限定本申请的保护范围。
需要说明的是,步骤102中的根据获取的预设第一数值个第一聚类中心建立第一索引也可以在步骤100之后,步骤101之前执行,建立第一索引的执行时间点并不用于限定本申请的保护范围,只要在获取第一聚类中心之后建立都是可以的。
在一个示例性实例中,第一索引、第二索引均可以为倒排索引。
可选地,建立第一索引如第一倒排索引之后,还包括:
对与第一倒排索引的各倒排链中的特征(即数据标识如DocId)对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。这样为大大提升后续向量检索的速度提供了保障。
可选地,建立第二索引如第二倒排索引之后,还包括:
对与第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
倒排索引就是反向索引,是将索引存为倒排表和倒排链,其中,倒排表中存储的是所有的值,倒排链中存储的是数据的标识(DocId)列表。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图1所示实施例中任一项的向量索引建立方法。
本申请再提供一种计算机装置,包括存储器和处理器,其中,存储器中存储有存储有图1所示实施例中任一项的向量索引建立方法的步骤。
图2为本申请向量检索方法的流程示意图,如图2所示,包括:
步骤200:根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心。
可选地,本步骤包括:
分别计算用户输入的查询(query)向量中的二值特征和每个第二聚类中心的第二海明距离,按照从小到大的顺序选取预设排序数值个小的第二海明距离对应的第二聚类中心,选取的第二聚类中心为目标聚类中心。
步骤201:基于预先建立的第二索引对目标聚类中心所属聚类簇中的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的。
通过本步骤的处理,当目标聚类中心所属聚类簇中的第一聚类中心在第二索引中的标识重复出现时,对该第一聚类中心进行去重处理,因为这些第一聚类中心是相同的,只要保留其中一个该第一聚类中心即可。
步骤202:根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心。
步骤203:从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的。
可选地,本步骤包括:
将第一海明距离按照从小到大的顺序排序;
从最小的第一海明距离对应的第一聚类中心开始,从预先建立的第一索引如第一倒排索引中获取对应的第一索引值,直到获取的第一索引值的数量大于或等于预设查询数值。
在一个示例性实例中,假设预设查询数值为100,预先建立的第一倒排索引中,第1倒排链中对应10个第一索引值即数据的标识(DocId),第2倒排链中对应70个DocId,第3倒排链中对应50个DocId)…,那么,当从最小的第一海明距离对应的第一聚类中心开始,从该第一倒排索引中获取DocId时,首先会从第1倒排链中获取10个DocId,此时,获得的查询结果的数量10小于预设查询数值即100,因此,继续从第2倒排链中获取70个DocId,此时,获得的查询结果的数量为(10+70)=80,小于预设查询数值即100,因此,继续从第3倒排链中的获取获取50个DocId,此时,获得的查询结果的数量为(10+70+50)=130,大于预设查询数值即100,停止检索过程。
步骤203:利用获取的预设查询数值个第一索引值获取对应数据。
本步骤强调的是,本申请向量检索中,采用的是百万级的二值聚类,不是简单的采用hash表存储数据,每个百万级的二值聚类得到的第一聚类中心同时归属于多个第二聚类中心,缓解了聚类边缘点误差较大的问题,而且中心点达到百万规模,对海明半径很大的聚类中心也能有效召回,提高了向量检索的准确度。
需要说明的是,第一聚类中心的获取、第二聚类中心的获取,以及第一索引和第二索引的建立请参见图1所示的实施例,这里不再赘述。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图2所示实施例中任一项的向量检索方法。
本申请再提供一种计算机装置,包括存储器和处理器,其中,存储器中存储有存储有图2所示实施例中任一项的向量检索方法的步骤。
图3为本申请向量索引建立装置的组成结构示意图,如图3所示,至少包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值;
第二聚类模块,用于根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
建立模块,用于根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
在一个示例性实例中,索引可以为倒排索引。
可选地,第一索引为第一倒排索引,第二索引为第二倒排索引。本申请向量索引建立装置还包括优化模块,用于对与建立的第一倒排索引的各倒排链中的特征(即数据标识如DocId)对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的;和/或,用于对与建立的第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
可选地,第一聚类模块具体用于:
根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类簇,其中,预设第一数值为百万级数值;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和N个二值特征进行聚类迭代直到满足迭代结束条件,得到预设第一数值个第一聚类中心。
可选地,第二聚类模块具体用于:
根据预设第一数值个第一聚类中心对应的二值特征和预设第二数值,获取预设第二数值个第二聚类簇;其中,一个第一聚类中心归属于两个以上第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,得到预设第二数值个第二聚类中心;
分别计算预设第一数值个第一聚类中心和得到的预设第二数值个第二聚类中心的海明距离,使得预设第一数值个第一聚类中心对应的二值特征同时归属于距离自身最近的K个第二聚类中心,以更新获得的预设第二数值个第二聚类簇;其中,K为大于或等于2的整数。
可选地,第二聚类模块中的根据预设第一数值个第一聚类中心对应的二值特征和预设第二数值,获取预设第二数值个第二聚类簇,包括:
从预设第一数值个第一聚类中心对应的二值特征中采样如随机采样等预设第二数值个二值特征作为初始的第二聚类中心;
分别计算预设第一数值个第一聚类中心对应的二值特征和初始的第二聚类中心的海明距离,使得预设第一数值个第一聚类中心对应的二值特征分别归属于距离自身最近的第二聚类中心,以形成预设第二数值个第二聚类簇。
可选地,第二聚类模块中的更新获得的预设第二数值个第二聚类簇,包括:
对于计算出来的每个第一聚类中心,将计算出的该第一聚类中心对应的二值特征和每个初始的第二聚类中心的海明距离进行排序;
从距离最小的开始,依次选择K个第二聚类中心,使得该第一聚类中心同时归属于这K个第二聚类中心。
图4为本申请向量检索装置的组成结构示意图,如图4所示,至少包括:第一处理模块、去重模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心;
去重模块,用于基于预先建立的第二索引对目标聚类中心所属聚类簇中的预先获得的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的。
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
查询模块,用于从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的;
获取模块,用于利用获取的预设查询数值个第一索引值获取对应数据。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (20)

1.一种向量索引建立方法,包括:
根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值;
根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
2.根据权利要求1所述的向量索引建立方法,其中,所述根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,包括:
根据所述N个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇;
对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心;
利用更新后的聚类中心和所述N个二值特征进行聚类迭代直到满足迭代结束条件,得到所述预设第一数值个第一聚类中心。
3.根据权利要求2所述的向量索引建立方法,其中,所述利用更新后的聚类中心和N个二值特征进行聚类迭代直到满足迭代结束条件,包括:
以所述更新后得到的聚类中心替换上一次聚类中心,返回所述根据N个二值特征和预设第一数值,获取所述预设第一数值个第一聚类簇的步骤。
4.根据权利要求2或3所述的向量索引建立方法,其中,所述根据所述N个二值特征和所述预设第一数值,获取预设第一数值个第一聚类簇,包括:
从所述N个二值特征中采样所述预设第一数值个二值特征作为初始的第一聚类中心;
分别计算所述N个二值特征和初始的第一聚类中心的海明距离,使得所述N个二值特征分别归属于距离自身最近的第一聚类中心,以形成所述预设第一数值个第一聚类簇。
5.根据权利要求2或3所述的向量索引建立方法,其中,所述对获取的每个第一聚类簇,根据第一聚类簇包括的二值特征对应的维度更新该第一聚类簇的聚类中心,包括:
将所述第一聚类簇中的二值特征对应维度累加;
计算累加值与该第一聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第一聚类簇的聚类中心。
6.根据权利要求1所述的向量索引建立方法,其中,所述根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心,包括:
根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇;
对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心;
利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,得到预设第二数值个第二聚类中心;
分别计算所述预设第一数值个第一聚类中心和得到的预设第二数值个第二聚类中心的海明距离,使得所述预设第一数值个第一聚类中心对应的二值特征同时归属于距离自身最近的K个第二聚类中心,以更新所述获取的预设第二数值个第二聚类簇;其中,K为大于或等于2的整数。
7.根据权利要求6所述的向量索引建立方法,其中,所述利用更新后的聚类中心和预设第一数值个第一聚类中心对应的二值特征进行聚类迭代直到满足迭代结束条件,包括:
以更新后得到的聚类中心替换上一次聚类中心,返回所述根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇的步骤。
8.根据权利要求6或7所述的向量索引建立方法,其中,所述根据所述预设第一数值个第一聚类中心对应的二值特征和所述预设第二数值,获取预设第二数值个第二聚类簇,包括:
从所述预设第一数值个第一聚类中心对应的二值特征中采样所述预设第二数值个二值特征作为初始的第二聚类中心;
分别计算所述预设第一数值个第一聚类中心对应的二值特征和初始的第二聚类中心的海明距离,使得所述预设第一数值个第一聚类中心对应的二值特征分别归属于距离自身最近的第二聚类中心,以形成所述预设第二数值个第二聚类簇。
9.根据权利要求6所述的向量索引建立方法,其中,所述更新获取的预设第二数值个第二聚类簇,包括:
将计算出的每个所述第一聚类中心对应的二值特征分别和每个初始的第二聚类中心的海明距离进行排序;
从距离最小的开始,依次选择所述K个第二聚类中心,使得该第一聚类中心同时归属于所述K个第二聚类中心。
10.根据权利要求6或7所述的向量索引建立方法,其中,所述对获取的每个第二聚类簇,根据第二聚类簇包括的二值特征对应的维度更新该第二聚类簇的聚类中心,包括:
将所述第二聚类簇中的二值特征对应维度累加;
计算累加值与该第二聚类簇包括的二值特征的个数的商,将得到的商二值化并作为更新后的该第二聚类簇的聚类中心。
11.根据权利要求2或3所述的向量索引建立方法,其中,
所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数。
12.根据权利要求6或7所述的向量索引建立方法,其中,
所述迭代结束条件包括:预先设置的迭代次数;所述满足迭代结束条件包括:达到所述迭代次数;或者,
所述迭代结束条件包括:所述更新后的聚类中心变化稳定;所述满足迭代结束条件包括:所述更新后的聚类中心的变化逐渐减小,直到所述更新后的聚类中心的变化稳定。
13.根据权利要求1所述的向量索引建立方法,其中,所述第一索引为第一倒排索引;
所述建立第一倒排索引之后,还包括:
对与所述第一倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
14.根据权利要求1所述的向量索引建立方法,其中,所述第二索引为第一倒排索引;
所述建立第二倒排索引之后,还包括:
对与所述第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
15.一种向量检索方法,包括:
根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心;
基于预先建立的第二索引对目标聚类中心所属聚类簇中的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的;
根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的;
利用获取的预设查询数值个第一索引值获取对应数据。
16.根据权利要求15所述的向量检索方法,其中,所述确定预设排序数值个目标聚类中心,包括:
分别计算所述查询向量中的二值特征和每个所述第二聚类中心的第二海明距离,按照从小到大的顺序选取预设排序数值个小的第二海明距离对应的第二聚类中心,选取的第二聚类中心为所述目标聚类中心。
17.根据权利要求15所述的向量检索方法,其中,所述获取预设查询数值个第一索引值,包括:
将所述第一海明距离按照从小到大的顺序排序;
从最小的所述第一海明距离对应的第一聚类中心开始,从所述预先建立的第一索引中获取对应的第一索引值,直到获取的第一索引值的数量大于或等于预设查询数值。
18.一种向量索引建立装置,包括:第一聚类模块、第二聚类模块、建立模块;其中,
第一聚类模块,用于根据N个二值特征和预设第一数值,获取预设第一数值个第一聚类中心,其中,N为大于或等于亿级的数值,预设第一数值为百万级数值;
第二聚类模块,用于根据第一聚类中心和预设第二数值,获取预设第二数值个第二聚类中心;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
建立模块,用于根据获取的预设第一数值个第一聚类中心建立第一索引,根据获取的预设第二数值个第二聚类中心建立第二索引。
19.根据权利要求18所述的向量索引建立装置,其中,所述第一索引为第一倒排索引,所述第二索引为第二倒排索引;
所述索引装置还包括:优化模块,用于对与建立的第一倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的;和/或,用于对与建立的第二倒排索引的各倒排链中的特征对应的数据进行存储优化,使得每个倒排链中的特征对应的数据的物理存储位置是连续存储的。
20.一种向量检索装置,包括:第一处理模块、去重模块、第二处理模块、查询模块、获取模块;其中,
第一处理模块,用于根据查询向量中的二值特征与每个预先获得的第二聚类中心的第二海明距离,确定预设排序数值个目标聚类中心;
去重模块,用于基于预先建立的第二索引对目标聚类中心所属聚类簇中的预先获得的第一聚类中心进行去重处理;其中,第二索引为根据预先获得的预设第二数值个第二聚类中心建立的;
第二处理模块,用于根据查询向量中的二值特征与目标聚类中心所属聚类簇中去重后的每个第一聚类中心,计算第一海明距离;其中,一个第一聚类中心归属于两个以上第二聚类中心所在聚类簇;
查询模块,用于从最小的第一海明距离对应的第一聚类中心开始,按照从小到大的顺序从预先建立的第一索引中获取预设查询数值个第一索引值;其中,第一索引为根据预先获得的预设第一数值个第一聚类中心建立的;
获取模块,用于利用获取的预设查询数值个第一索引值获取对应数据。
CN201811058763.6A 2018-09-11 2018-09-11 向量索引建立方法及装置和向量检索方法及装置 Active CN110889424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811058763.6A CN110889424B (zh) 2018-09-11 2018-09-11 向量索引建立方法及装置和向量检索方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811058763.6A CN110889424B (zh) 2018-09-11 2018-09-11 向量索引建立方法及装置和向量检索方法及装置

Publications (2)

Publication Number Publication Date
CN110889424A true CN110889424A (zh) 2020-03-17
CN110889424B CN110889424B (zh) 2023-06-30

Family

ID=69745627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811058763.6A Active CN110889424B (zh) 2018-09-11 2018-09-11 向量索引建立方法及装置和向量检索方法及装置

Country Status (1)

Country Link
CN (1) CN110889424B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297331A (zh) * 2020-09-27 2021-08-24 阿里云计算有限公司 数据存储方法及装置、数据查询方法及装置
CN113626471A (zh) * 2021-08-05 2021-11-09 北京达佳互联信息技术有限公司 数据检索方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684219B1 (en) * 1999-11-24 2004-01-27 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for building and maintaining an object-oriented geospatial database
CN102915347A (zh) * 2012-09-26 2013-02-06 中国信息安全测评中心 一种分布式数据流聚类方法及系统
CN103631928A (zh) * 2013-12-05 2014-03-12 中国科学院信息工程研究所 一种基于局部敏感哈希的聚类索引方法及系统
CN107085607A (zh) * 2017-04-19 2017-08-22 电子科技大学 一种图像特征点匹配方法
CN108241745A (zh) * 2018-01-08 2018-07-03 阿里巴巴集团控股有限公司 样本集的处理方法及装置、样本的查询方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684219B1 (en) * 1999-11-24 2004-01-27 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for building and maintaining an object-oriented geospatial database
CN102915347A (zh) * 2012-09-26 2013-02-06 中国信息安全测评中心 一种分布式数据流聚类方法及系统
CN103631928A (zh) * 2013-12-05 2014-03-12 中国科学院信息工程研究所 一种基于局部敏感哈希的聚类索引方法及系统
CN107085607A (zh) * 2017-04-19 2017-08-22 电子科技大学 一种图像特征点匹配方法
CN108241745A (zh) * 2018-01-08 2018-07-03 阿里巴巴集团控股有限公司 样本集的处理方法及装置、样本的查询方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王青松;葛慧;: "相似聚类的二级索引重复数据删除算法" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297331A (zh) * 2020-09-27 2021-08-24 阿里云计算有限公司 数据存储方法及装置、数据查询方法及装置
CN113626471A (zh) * 2021-08-05 2021-11-09 北京达佳互联信息技术有限公司 数据检索方法、装置、电子设备及存储介质
CN113626471B (zh) * 2021-08-05 2024-02-23 北京达佳互联信息技术有限公司 数据检索方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110889424B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
US8625907B2 (en) Image clustering
US9256665B2 (en) Creation of inverted index system, and data processing method and apparatus
CN110019218B (zh) 数据存储与查询方法及设备
CN104199827B (zh) 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN107491487B (zh) 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质
Yagoubi et al. Dpisax: Massively distributed partitioned isax
US20150186471A1 (en) System and method for approximate searching very large data
CN103744934A (zh) 一种基于位置敏感哈希的分布式索引方法
CN109710792B (zh) 一种基于索引的快速人脸检索系统应用
US11327985B2 (en) System and method for subset searching and associated search operators
CN103870588A (zh) 一种在数据库中使用的方法及装置
CN114691721A (zh) 图数据的查询方法、装置、电子设备及存储介质
Adamu et al. A survey on big data indexing strategies
CN111177432A (zh) 一种基于分层深度哈希的大规模图像检索方法
Tang et al. Efficient Processing of Hamming-Distance-Based Similarity-Search Queries Over MapReduce.
CN110889424B (zh) 向量索引建立方法及装置和向量检索方法及装置
CN110837555A (zh) 海量文本去重筛选的方法、设备和存储介质
US20190303421A1 (en) Histogram sketching for time-series data
KR101116663B1 (ko) 고차원 데이터의 유사도 검색을 위한 데이터 분할방법
CN111125088B (zh) 多层级数据处理方法和装置
CN117251641A (zh) 向量数据库检索方法、系统、电子设备及存储介质
CN110880005B (zh) 向量索引建立方法及装置和向量检索方法及装置
CN107463578B (zh) 应用下载量统计数据去重方法、装置和终端设备
KR102006283B1 (ko) 패스트맵을 이용한 데이터셋의 m-트리 적재방법
Nie et al. Efficient storage support for real-time near-duplicate video retrieval

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