CN115757465A - 一种向量检索方法及装置 - Google Patents
一种向量检索方法及装置 Download PDFInfo
- Publication number
- CN115757465A CN115757465A CN202211453113.8A CN202211453113A CN115757465A CN 115757465 A CN115757465 A CN 115757465A CN 202211453113 A CN202211453113 A CN 202211453113A CN 115757465 A CN115757465 A CN 115757465A
- Authority
- CN
- China
- Prior art keywords
- query
- vector
- index
- filtering condition
- attribute
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种向量检索方法包括:获取查询对象和过滤条件;基于查询向量和过滤条件,查询向量索引,其中,查询向量基于对查询对象进行特征提取得到,向量索引中的索引值包括特征向量和属性特征,特征向量基于对物料库中的对象进行特征提取得到,属性特征基于物料库中的对象的属性信息得到;基于过滤条件与属性特征的匹配结果,和查询向量与特征向量的相似度,得到召回结果;基于所述召回结果,从物料库中得到查询结果。本申请提供的向量检索方法向量索引中的索引值包括物料的特征向量和属性特征,在检索查询时,计算向量距离之前先进行过滤,实现单阶段过滤检索,能够减少冗余的向量计算和过滤操作,并避免无法满召回的情况发生。
Description
技术领域
本申请涉及检索技术领域,尤其涉及一种向量检索方法及装置。
背景技术
随着AI技术的广泛应用,自然语言处理等技术的出现推动了传统检索领域的变革和发展。在传统的搜索领域中,多采用关键词等确定性的检索算法。而AI技术加强了对非结构化数据的处理能力,支持将非结构化数据转为多维向量,从而将搜索由原来的关键词检索转为向量化检索,由确定性检索转为相似性检索。
在向量检索领域中,通过向量之间的距离来表征对应数据的相似性程度。而且在大部分业务场景中,在满足相似性检索的前提下,搜索结果还需要满足属性特征过滤条件。该类问题可描述为带属性过滤条件的向量检索。
为了完成带属性过滤条件的向量检索技术实现,业界有如下的解决方法:
1)先过滤再检索:milvus、vearch等相关产品均采用该方法,该方法能够保证搜索到满足对应条件的结果,但在大规模数据的情况下,对于全量数据的过滤操作会导致时延过大,不满足业务性能需求;
2)检索、过滤分开进行然后再进行多路归并:该方法能够并行操作,降低时延,但是多路归并的结果会常常出现结果召不满,甚至结果为空的情况。
发明内容
本申请的实施例提供一种向量检索方法及装置,向量索引中的索引值包括物料的特征向量和属性特征,在检索查询时,计算向量距离之前先进行过滤,实现单阶段过滤检索,能够减少冗余的向量计算和过滤操作,并避免无法满召回的情况发生。
第一方面,本申请实施例提供了一种向量检索方法,包括获取查询对象和过滤条件;基于查询向量和过滤条件,查询向量索引,其中,查询向量基于对查询对象进行特征提取得到,向量索引中的索引值包括特征向量和属性特征,特征向量基于对物料库中的对象进行特征提取得到,属性特征基于物料库中的对象的属性信息得到;基于过滤条件与属性特征的匹配结果,和查询向量与特征向量的相似度,得到召回结果;基于所述召回结果,从物料库中得到查询结果。
本申请实施例提供的向量检索方法,构建的向量索引中的索引值包括物料的特征向量和属性特征,在检索查询时,计算向量距离之前先进行过滤,实现单阶段过滤检索,能够减少冗余的向量计算和过滤操作,并避免无法满召回的情况发生。
在一个可能的实现中,向量索引包括一级索引和二级索引,该一级索引包括多个聚类簇中各个聚类簇对应的索引值,该二级索引包括各个所述聚类簇中的索引值;基于查询向量和过滤条件,查询向量索引,包括:基于查询向量或过滤条件查询一级索引,得到若干目标查询聚类簇;基于查询向量和过滤条件查询若干目标查询聚类簇对应的二级索引,以得到召回结果。
在该可能的实现中,向量索引通过两级索引结构的设置,即包括各个聚类簇的索引值的一级索引结构和包括各个聚类簇中的索引值的二级索引,通过查询一级索引定位到符合过滤条件或向量相似度的目标查询聚类簇,最终检索计算时,只查询目标查询聚类簇中的索引值,避免将所有索引值都读取和计算一遍,降低内存开销和计算资源消耗,增加检索效率。
在一个可能的实现中,一级索引包括向量一级索引和属性特征一级索引,其中,向量一级索引基于各个聚类簇的向量质心构建,属性特征一级索引基于各个聚类簇的属性特征分布构建;基于查询向量或过滤条件查询一级索引,得到若干目标查询聚类簇,包括:基于过滤条件和属性特征统计信息,得到查询策略,属性特征统计信息基于对各个聚类簇中的索引值中的属性特征进行统计得到;查询策略包括第一查询策略和第二查询策略,第一查询策略指示基于查询向量,通过查询向量一级索引,得到若干目标查询聚类簇;第二查询策略指示基于过滤条件,通过查询属性特征一级索引,得到若干目标查询聚类簇。
在该可能的实现中,通过属性特征统计对满足过滤条件的聚类簇数量进行估计,以对查询检索进行规划,有利于改善过滤条件极端情况下搜索效果不佳的情况,并有效降低检索时延。
在另一个可能的实现中,基于过滤条件和属性特征统计信息,得到查询策略,包括:基于过滤条件和属性特征统计信息,估计与过滤条件匹配的聚类簇的数量;当与过滤条件匹配的聚类簇的数量大于或等于预设阈值,将查询策略确定为第一查询策略;当与过滤条件匹配的聚类簇的数量小于预设阈值,将查询策略确定为第二查询策略。
也就是说,当满足过滤条件的聚类簇的数量较多时,则根据查询向量通过向量质心索引(即向量一级索引)进行查询,对检索范围进行剪枝,确定目标查询聚类簇;当满足过滤条件的聚类簇的数量较少时,则根据过滤条件在属性特征索引(即属性特征一级索引)进行查询,对检索范围进行剪枝,确定目标查询聚类簇。
在另一个可能的实现中,本申请实施例提供的向量检索方法还包括:对过滤条件进行编码,得到过滤编码。
在另一个可能的实现中,本申请实施例提供的向量检索方法还包括,对过滤条件进行解析,得到多个子过滤条件集;对多个子过滤条件集进行编码,得到过滤编码集。
在一个示例中,索引值中的属性特征为属性特征编码。将物料进行编码,减少冗余存储,降低内存成本,以及通过过滤编码和属性特征编码的判断,快速判断物料是否满足过滤条件,减少判断时延,进一步增加检索效率。
第二方面,本申请实施例提供一种向量检索装置,包括获取模块、查询模块、召回模块和结果模块,其中,获取模块用于获取查询对象和过滤条件;查询模块用于基于查询向量和过滤条件,查询向量索引,其中,查询向量基于对查询对象进行特征提取得到,向量索引中的索引值包括特征向量和属性特征,特征向量基于对物料库中的对象进行特征提取得到,属性特征基于物料库中的对象的属性信息得到;召回模块用于基于过滤条件与属性特征的匹配结果,和查询向量与特征向量的相似度,得到召回结果;结果模块用于基于召回结果,从物料库中得到查询结果。
在另一个可能的实现中,向量索引包括一级索引和二级索引,一级索引包括多个聚类簇中各个聚类簇对应的索引值,二级索引包括各个聚类簇中的所述索引值;查询模块具体用于:基于查询向量或过滤条件查询一级索引,得到若干目标查询聚类簇;基于查询向量和过滤条件查询若干目标查询聚类簇对应的二级索引,以得到召回结果。
在另一个可能的实现中,一级索引包括向量一级索引和属性特征一级索引,其中,向量一级索引基于各个聚类簇的向量质心构建,属性特征一级索引基于各个聚类簇的属性特征分布构建;查询模块还用于:基于过滤条件和属性特征统计信息,得到查询策略,属性特征统计信息基于对各个聚类簇中的索引值中的属性特征进行统计得到;查询策略包括第一查询策略和第二查询策略,第一查询策略指示基于查询向量,通过查询向量一级索引,得到若干目标查询聚类簇;第二查询策略指示基于过滤条件,通过查询属性特征一级索引,得到若干目标查询聚类簇。
在另一个可能的实现中,查询模块还用于:基于过滤条件和属性特征统计信息,估计与过滤条件匹配的聚类簇的数量;当与过滤条件匹配的聚类簇的数量大于或等于预设阈值,将查询策略确定为第一查询策略;当与过滤条件匹配的聚类簇的数量小于预设阈值,将查询策略确定为第二查询策略。
在另一个可能的实现中,本申请实施例提供的向量检索装置还包括编码模块,该编码模块用于对过滤条件进行编码,得到过滤编码。
在另一个可能的实现中,本申请实施例提供的向量检索装置还包括解析编码模块,该解析编码模块用于对过滤条件进行解析,得到多个子过滤条件集;对多个子过滤条件集进行编码,得到过滤编码集。
在另一个可能的实现中,索引值中的属性特征为属性特征编码。
第三方面,本申请提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码,实现本申请第一方面提供的方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本申请第一方面提供的方法。
第五方面,本申请提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品包括指令,当所述指令被执行时,实现本申请第一方面提供的方法。
附图说明
图1为本申请实施例提供的一种向量检索方法的应用场景示意图;
图2为本申请实施例提供的一种向量检索方法的流程示意图;
图3为本申请实施例提供的检索方法中的离线部分的向量索引构建和在线部分的向量检索过程的示意图;
图4为过滤条件和物料的属性特征编码进行的示意图;
图5为本申请实施例提供的向量检索方法中涉及的向量索引的存储结构示意图;
图6为本申请实施例提供的一种向量检索方法的具体实现过程示意图;
图7为本申请实施例提供的向量检索装置的结构示意图;
图8为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
为了便于理解本申请实施例提供的向量检索方法及装置,下面对本申请实施例涉及到的部分技术术语进行简单说明。
非结构化数据:没有固定组织原则的未经过滤的信息,常见示例包括网页日志、XML、JSON、文本文档、图像、视频和音频文件。
结构化数据:采用标准化格式的数据,具有明确定义的结构,符合数据模型,遵循持久的顺序,并且易于人类和程序访问。此数据类型通常存储在数据库中。
向量召回:获得与查询向量相近的向量数据。
向量索引:向量检索时候需要的一种数据结构,可以提高向量近似近邻(Approximate Nearest Neighbor,ANN)检索性能。
下面具体介绍本申请实施例提供的向量检索方法及装置的具体实现。
图1为本申请实施例提供的一种向量检索方法的应用场景示意图。该应用场景为一个典型的“以图搜图”的向量检索场景。向量检索主要包括离线部分和在线检索部分,在离线部分中,将物料库中的物料的图片信息进行特征抽取,利用图片编码器(ImageEncoder)将图片编码为其对应的特征向量,将物料转化成的特征向量与属性信息一起,训练向量索引构建模型(VectorIndexBuilder),将物料对应的特征向量与属性信息输入模型中,构建向量索引。在线部分中,用户使用“以图搜图”服务时,输入对应的查询图片,并设置相应的过滤条件,例如类别(category)设置为家具(furniture);用户输入的图片通过图片编码器编码转化为特征向量,与过滤条件一起,输入给检索引擎(VectorEngine)进行搜索;向量检索引擎接收到对应的检索请求后,在构建好的向量索引中进行向量检索,输出符合条件的ANN召回结果;根据向量引擎输出的召回结果,从对应的数据库中获取图片展示给用户。
需要解释说明的是,图1仅为本申请实施例提供的一种向量检索方法的应用场景,并不构成对本申请实施例的限定,例如,本申请实施例提供的向量检索方法还可以应用于文本模态的向量检索和视频模态的向量检索等,或者跨模态的向量检索场景,例如,以图片搜索视频和以文本搜索图片等跨模态的向量检索场景。
下面以“以图搜图”检索场景为例介绍本申请实施例提供的向量检索方法及装置的具体实现。
图2为本申请实施例提供的一种向量检索方法的流程示意图。该方法可以应用于任何具有计算能力的装置、设备、平台或设备集群,以实现针对带过滤条件的向量检索的低检索时延。如图2所示,该向量检索方法,至少包括步骤S201-S204。
在步骤S201中,获取查询图片和过滤条件。
用户通过输入框输入查询图片和过滤条件,检索引擎接收用户输入的查询图片和过滤条件。本申请实施例对用户输入查询图片和过滤条件的方式不进行具体限定,用户可以通过多种方式输入查询图片,例如,在查询输入框中选择拍照选项,通过相机直接拍照的方式输入查询图片,或者,在查询输入框中选择从相册选择/本地上传的方式输入查询图片,用户从相册/本地中选择需要查询的图片,上传图片至输入框中;检索引擎接收查询输入框中输入的查询图片以得到查询图片。
用户可以通过多种方式输入过滤条件,例如,在输入框中直接输入文字“类别,家具”的方式输入过滤条件,或者,在输入框中选择语音输入选项,然后说出“类别,家具”,通过语音输入的方式输入过滤条件,检索引擎接收查询输入框中输入的过滤条件以得到向量检索的过滤条件。
可以理解的是,用户输入过滤条件,是为了筛选到符合自己特定要求属性的图片,例如,用户输入的过滤条件为“类别,鞋子”,则意味着用户想要查询到鞋子类别属性的图片。因此,当向量检索中,接收到的查询请求除了包括查询对象,还包括过滤条件时,则向量检索的任务,不单单是检索到相似度相近的物料,还需要同时满足过滤条件的物料。
查询对象在不同的检索场景中为相应的查询内容,例如,在“以图搜图”场景中,查询对象为图片,在“以文搜图”场景中,查询对象为文字等。
在步骤S202中,基于查询向量和过滤条件,查询向量索引。
在获取到用户输入的查询图片和过滤条件后,将查询图片输入图片编码器中,进行特征提取得到查询向量(query vector),将过滤条件和查询向量输入检索引擎,通过查询向量索引,得到召回结果,召回结果包括符合过滤条件和向量相似度的标识(Identitydocument,id),每个id对应一个图片和图片的特征向量+属性特征。
在一个示例中,为了降低内存开销,如图3所示,将过滤条件进行编码(encoder),得到过滤编码,由于该过滤编码为标量编码(scalar code),也可以称之为查询标量编码(query code)。相应的,对物料库中的图片的属性特征也进行编码,得到对应图片的标量编码(scalar code),在判断图片是否符合过滤条件时,只需在比较查询标量编码和标量编码即可。
本申请实施例通过将过滤条件和物料的属性特征进行编码,减少冗余存储,降低内存开销,另外,当检索时,判断物料是否满足过滤条件时,通过匹配过滤条件编码和属性特征编码,快速判断物料是否满足过滤条件,减少过滤条件的判断时延,进一步降低检索时延。
过滤条件的编码和物料库中图片的属性特征信息的编码实现可以参见图4所示。示例性的,首先对物料库中所有图片的属性特征信息进行统计并进行编码,例如采用独热编码(one-hot)的方式对物料库中图片的属性特征信息进行统计编码得到码表,如国家:中国特征在码表中的位置为0,那么包含该属性特征信息的图片的属性特征进行编码后,0位均为1。然后根据码表对物料库中的各个图片进行属性特征编码集,例如,针对物料库中的每个图片的属性信息,结合码表,得到每个图片的属性特征编码,属性特征编码如果有多个的话,多个属性特征编码求并集,得到该图片的属性特征编码集。
针对过滤条件的编码,首先对过滤条件进行解析,得到多个子过滤条件集,示例性的,先对用户输入的过滤条件进行解析得到过滤条件的逻辑,一般过滤条件包括交并非逻辑,例如,图4中的过滤条件为:红色AND(NOT(颜色:黄色)AND(国家:中国)OR(国家:美国)),然后将过滤条件中的交并非逻辑转化为多个子过滤条件的交集(A∩B∩C...),例如,子过滤条件1、颜色:红色;2、NOT(颜色:黄色);3、((国家:中国)OR(国家:美国));然后结合码表对多个子过滤条件进行编码,得到查询标量编码集。当物料库中的图片的属性特征编码与查询遍历编码集中的任一编码不存在交集时,则判断该图片不满足过滤条件。例如,查询国家为中国的过滤条件时,根据码表,将过滤条件编码为第0位置为1,那么只有物料库中图片的属性特征编码中第0位置为1的标量编码才能与查询标量编码有交集,即该图片的属性特征与过滤条件匹配成功。
为了实现向量检索时,过滤条件和向量的相关性,将过滤条件编码(query code)和查询向量(query vector)结合到一起输入作为查询编码集(query vector+code)输入给检索引擎,对应的将物料库中各个图片的特征向量和属性特征编码组装成对象作为图片的索引值,当进行向量检索时,先匹配过滤条件和属性特征编码部分,若匹配成功再计算查询向量与特征向量之间的相似度,若匹配不成功则跳过向量计算部分,实现了单阶段过滤检索,减少冗余的向量计算,降低检索时延。
在步骤S303中,基于所述过滤条件与所述属性特征的匹配结果,和所述查询向量与所述特征向量的相似度,得到召回结果。
在通过向量检索时,针对一个索引值,进行属性匹配,即该索引值中的属性特征部分是否与过滤条件匹配,若匹配则继续计算查询向量与索引值中的特征向量的相似度;若不匹配则跳过该索引值,继续计算下一索引值;最终召回符合过滤条件且与查询向量相似的前k个索引值,一般在召回时是召回索引值对应的id,示例性的,通过K最邻近算法(k-nearest neighbor)得到KNN结果,即召回得到前top k个id,在物料库中该id对应物料,因此通过该召回结果id即可找到与查询图片对应的图片。
在步骤S304中,基于召回结果,从物料库中得到查询结果。
得到召回结果后,根据召回结果从物料库中的图片数据库(image database)中查找得到与召回结果对应的图片,然后将检索到的图片展示给用户。
为了更好的用户体验,物料库还包括正排数据库(forward database),在得到召回结果后,根据排序算法进行排序,然后根据排序结果将召回结果对应的图片数据库中的图片按照排序展示给用户。
本申请实施例提供的向量检索方法,构建的向量索引中的索引值包括物料的特征向量和属性特征,在检索查询时,计算向量距离之前先进行过滤,实现单阶段过滤检索,能够减少冗余向量计算和过滤操作,并避免无法满召回的情况发生。
在另一个示例中,向量索引包括两级索引结构,即一级索引结构和二级索引结构,二级索引结构包括物料库中各个图片的索引值,基于索引值中的特征向量部分,对索引值进行聚类处理,得到多个聚类簇;一级索引为多个聚类簇中各个聚类簇的索引值。
例如,可以通过计算聚类簇的向量质心,以各个聚类簇的向量质心构建一级索引,向量索引查询时,先基于查询向量在一级索引中进行查询,对检索范围进行剪枝,查询得到与查询向量相近的聚类簇,也就是若干目标查询聚类簇,然后只对目标查询聚类簇中的二级索引进行查询检索,减少检索读取数据的数据量和计算量,增加检索效率。
也可以统计聚类簇中的属性特征分布,得到表征各个聚类簇的属性特征的属性特征向量,基于各个聚类簇的属性特征向量构建一级索引,向量索引查询时,先基于查询标量编码集(即过滤条件)在一级索引中进行查询,对检索范围进行剪枝,查询得到与过滤条件匹配的聚类簇,将其确定为目标查询聚类簇,然后只对目标查询聚类簇中的二级索引进行查询检索,减少检索读取数据的数据量和计算量,增加检索效率。
在另一个示例中,向量索引的结构如图5所示,包括三层结构,最下层为二级索引,即基于二级索引中的索引值的特征向量部分进行聚类得到多个聚类簇,例如,聚类簇0、聚类簇1、…、聚类簇n,每个聚类簇中包括索引值中特征向量部分相近的索引值,也就是说,基于索引值中的特征向量部分进行聚类,得到多个聚类簇,聚类簇中为索引值中特征向量部分相近的索引值。中间层为一级索引,一级索引包括基于各个聚类簇的向量质心构建的向量一级索引,和基于各个聚类簇中的属性特征向量构建的属性特征一级索引。最上层为各个聚类簇的属性特征统计信息,换言之,最上层为统计每个聚类簇中各个索引值的属性特征,得到多个聚类簇的属性特征统计信息。
在通过向量索引查询时,先通过过滤条件和属性特征统计信息,确定相应的检索计划。例如,如图6所示,结合过滤条件和属性特征统计信息,估计符合过滤条件的聚类簇的数量大于或等于预设阈值时,即估计匹配过滤条件的聚类簇数量较多时,则执行的检索计划为:根据查询向量通过查询向量一级索引,得到目标查询聚类簇;当估计符合过滤条件的聚类簇的数量小于预设阈值时,即估计匹配过滤条件的聚类簇数量较少时,则执行的检索计划为:根据过滤条件通过查询属性特征一级索引,得到目标查询聚类簇。
然后扫描目标查询聚类簇中的所有索引值,遇到每一个索引值,先进性属性特征匹配,当匹配成功时,继续计算向量距离,匹配不成功时,跳过该索引值。
本申请实施例结合过滤条件和属性特征统计信息对满足过滤条件的聚类簇数量进行估计,并以此对检索进行规划,有利于改善过滤条件极端情况下搜索效果不佳的情况,并有效降低检索时延。
与前述的向量检索方法的实施例基于相同的构思,本申请实施例中还提供了一种向量检索装置700,该向量检索装置700包括用以实现图1-6所示的向量检索方法中的各个步骤的单元或模块。
图7为本申请实施例提供的向量检索装置的结构示意图。该装置可部署于任何具有计算能力的装置、设备、平台或设备集群,例如可以是计算机或服务器,以实现降低检索时延,特别是在超大规模检索场景下,降低检索时延尤为显著。
如图7所示,本申请实施例提供的向量检索装置700,包括获取模块701、查询模块702、召回模块703和结果模块704,其中,获取模块701用于获取查询对象和过滤条件;查询模块702用于基于查询向量和过滤条件,查询向量索引,其中,查询向量基于对查询对象进行特征提取得到,向量索引中的索引值包括特征向量和属性特征,特征向量基于对物料库中的对象进行特征提取得到,属性特征基于物料库中的对象的属性信息得到;召回模块703用于基于过滤条件与属性特征的匹配结果,和查询向量与特征向量的相似度,得到召回结果;结果模块704用于基于召回结果,从物料库中得到查询结果。
在另一个可能的实现中,向量索引包括一级索引和二级索引,一级索引包括多个聚类簇中各个聚类簇对应的索引值,二级索引包括各个聚类簇中的所述索引值;查询模块702具体用于:基于查询向量或过滤条件查询一级索引,得到若干目标查询聚类簇;基于查询向量和过滤条件查询若干目标查询聚类簇对应的二级索引,以得到召回结果。
在另一个可能的实现中,一级索引包括向量一级索引和属性特征一级索引,其中,向量一级索引基于各个聚类簇的向量质心构建,属性特征一级索引基于各个聚类簇的属性特征分布构建;查询模块702还用于:基于过滤条件和属性特征统计信息,得到查询策略,属性特征统计信息基于对各个聚类簇中的索引值中的属性特征进行统计得到;查询策略包括第一查询策略和第二查询策略,第一查询策略指示基于查询向量,通过查询向量一级索引,得到若干目标查询聚类簇;第二查询策略指示基于过滤条件,通过查询属性特征一级索引,得到若干目标查询聚类簇。
在另一个可能的实现中,查询模块702还用于:基于过滤条件和属性特征统计信息,确定与过滤条件匹配的聚类簇;当与过滤条件匹配的聚类簇的数量大于或等于预设阈值,将查询策略确定为第一查询策略;当与过滤条件匹配的聚类簇的数量小于预设阈值,将查询策略确定为第二查询策略。
在另一个可能的实现中,本申请实施例提供的向量检索装置还包括编码模块705,该编码模块705用于对过滤条件进行编码,得到过滤编码。
在另一个可能的实现中,本申请实施例提供的向量检索装置还包括解析编码模块,该解析编码模块用于对过滤条件进行解析,得到多个子过滤条件集;对多个子过滤条件集进行编码,得到过滤编码集。
在另一个可能的实现中,索引值中的属性特征为属性特征编码。
根据本申请实施例的向量检索装置700可对应于执行本申请实施例中描述的方法,并且向量检索装置700中的各个模块的上述和其它操作和/或功能分别为了实现图1-6中的各个方法的相应流程,为了简洁,在此不再赘述。
与前述的方法的实施例基于相同的构思,本申请实施例中还提供了一种计算设备,该计算设备至少包括处理器和存储器,存储器上存储有程序,处理器该程序时,可以实现图1-6所示的方法中的各个步骤的单元或模块。
图8为本申请实施例提供的一种计算设备的结构示意图。
如图8所示,所述计算设备800包括至少一个处理器801、存储器802和通信接口803。其中,处理器801、存储器802和通信接口803通信连接,可以通过有线(例如总线)的方式实现通信连接,也可以通过无线的方式实现通信连接。该通信接口803用于接收其他设备发送的数据(例如查询请求数据,包括查询对象和过滤条件);存储器802存储有计算机指令,处理器801执行该计算机指令,执行前述方法实施例中的方法。
应理解,在本申请实施例中,该处理器801可以是中央处理单元CPU,该处理器801还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802还可以包括非易失性随机存取存储器。
该存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
应理解,根据本申请实施例的计算设备800可以执行实现本申请实施例中图1-6所示方法,该方法实现的详细描述参见上文,为了简洁,在此不再赘述。
本申请的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机指令在被处理器执行时,使得上文提及的方法被实现。
本申请的实施例提供了一种芯片,该芯片包括至少一个处理器和接口,所述至少一个处理器通过所述接口确定程序指令或者数据;该至少一个处理器用于执行所述程序指令,以实现上文提及的方法。
本申请的实施例提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括指令,当该指令执行时,令计算机执行上文提及的方法。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种向量检索方法,其特征在于,包括:
获取查询对象和过滤条件;
基于查询向量和所述过滤条件,查询向量索引,其中,所述查询向量基于对所述查询对象进行特征提取得到,所述向量索引中的索引值包括特征向量和属性特征,所述特征向量基于对物料库中的对象进行特征提取得到,所述属性特征基于所述物料库中的对象的属性信息得到;
基于所述过滤条件与所述属性特征的匹配结果,和所述查询向量与所述特征向量的相似度,得到召回结果;
基于所述召回结果,从所述物料库中得到查询结果。
2.根据权利要求1所述的方法,其特征在于,所述向量索引包括一级索引和二级索引,所述一级索引包括多个聚类簇中各个聚类簇对应的索引值,所述二级索引包括各个所述聚类簇中的所述索引值;
所述基于查询向量和所述过滤条件,查询向量索引,包括:
基于所述查询向量或所述过滤条件查询所述一级索引,得到若干目标查询聚类簇;
基于所述查询向量和所述过滤条件查询所述若干目标查询聚类簇对应的所述二级索引,以得到所述召回结果。
3.根据权利要求2所述的方法,其特征在于,所述一级索引包括向量一级索引和属性特征一级索引,其中,所述向量一级索引基于各个所述聚类簇的向量质心构建,所述属性特征一级索引基于各个所述聚类簇的属性特征分布构建;
所述基于所述查询向量或所述过滤条件查询所述一级索引,得到若干目标查询聚类簇,包括:
基于所述过滤条件和属性特征统计信息,得到查询策略,所述属性特征统计信息基于对各个所述聚类簇中的索引值中的属性特征进行统计得到;
所述查询策略包括第一查询策略和第二查询策略,所述第一查询策略指示基于所述查询向量,通过查询向量一级索引,得到若干所述目标查询聚类簇;所述第二查询策略指示基于所述过滤条件,通过查询属性特征一级索引,得到若干所述目标查询聚类簇。
4.根据权利要求3所述的方法,其特征在于,所述基于所述过滤条件和属性特征统计信息,得到查询策略,包括:
基于所述过滤条件和属性特征统计信息,估计与所述过滤条件匹配的所述聚类簇的数量;
当与所述过滤条件匹配的聚类簇的数量大于或等于预设阈值,将所述查询策略确定为所述第一查询策略;
当与所述过滤条件匹配的聚类簇的数量小于所述预设阈值,将所述查询策略确定为所述第二查询策略。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
对所述过滤条件进行编码,得到过滤编码。
6.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
对所述过滤条件进行解析,得到多个子过滤条件集;
对所述多个子过滤条件集进行编码,得到过滤编码集。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述索引值中的属性特征为属性特征编码。
8.一种向量检索装置,其特征在于,包括:
获取模块,用于获取查询对象和过滤条件;
查询模块,用于基于查询向量和所述过滤条件,查询向量索引,其中,所述查询向量基于对所述查询对象进行特征提取得到,所述向量索引中的索引值包括特征向量和属性特征,所述特征向量基于对物料库中的对象进行特征提取得到,所述属性特征基于所述物料库中的对象的属性信息得到;
召回模块,用于基于所述过滤条件与所述属性特征的匹配结果,和所述查询向量与所述特征向量的相似度,得到召回结果;
结果模块,用于基于所述召回结果,从所述物料库中得到查询结果。
9.根据权利要求8所述的装置,其特征在于,所述向量索引包括一级索引和二级索引,所述一级索引包括多个聚类簇中各个聚类簇对应的索引值,所述二级索引包括各个所述聚类簇中的所述索引值;
所述查询模块具体用于:
基于所述查询向量或所述过滤条件查询所述一级索引,得到若干目标查询聚类簇;
基于所述查询向量和所述过滤条件查询所述若干目标查询聚类簇对应的所述二级索引,以得到所述召回结果。
10.根据权利要求9所述的装置,其特征在于,所述一级索引包括向量一级索引和属性特征一级索引,其中,所述向量一级索引基于各个所述聚类簇的向量质心构建,所述属性特征一级索引基于各个所述聚类簇的属性特征分布构建;
所述查询模块还用于:
基于所述过滤条件和属性特征统计信息,得到查询策略,所述属性特征统计信息基于对各个所述聚类簇中的索引值中的属性特征进行统计得到;
所述查询策略包括第一查询策略和第二查询策略,所述第一查询策略指示基于所述查询向量,通过查询向量一级索引,得到若干所述目标查询聚类簇;所述第二查询策略指示基于所述过滤条件,通过查询属性特征一级索引,得到若干所述目标查询聚类簇。
11.根据权利要求10所述的装置,其特征在于,所述查询模块还用于:
基于所述过滤条件和属性特征统计信息,估计与所述过滤条件匹配的所述聚类簇的数量;
当与所述过滤条件匹配的聚类簇的数量大于或等于预设阈值,将所述查询策略确定为所述第一查询策略;
当与所述过滤条件匹配的聚类簇的数量小于所述预设阈值,将所述查询策略确定为所述第二查询策略。
12.根据权利要求8-11任一项所述的装置,其特征在于,还包括:
编码模块,用于对所述过滤条件进行编码,得到过滤编码。
13.根据权利要求8-11任一项所述的装置,其特征在于,还包括:
解析编码模块,用于对所述过滤条件进行解析,得到多个子过滤条件集;
对所述多个子过滤条件集进行编码,得到过滤编码集。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述索引值中的属性特征为属性特征编码。
15.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码,实现权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453113.8A CN115757465A (zh) | 2022-11-21 | 2022-11-21 | 一种向量检索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453113.8A CN115757465A (zh) | 2022-11-21 | 2022-11-21 | 一种向量检索方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757465A true CN115757465A (zh) | 2023-03-07 |
Family
ID=85333143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211453113.8A Pending CN115757465A (zh) | 2022-11-21 | 2022-11-21 | 一种向量检索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757465A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541420A (zh) * | 2023-07-07 | 2023-08-04 | 上海爱可生信息技术股份有限公司 | 向量数据的查询方法 |
CN116541418A (zh) * | 2023-06-30 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 数据查询方法、电子设备及计算机可读存储介质 |
-
2022
- 2022-11-21 CN CN202211453113.8A patent/CN115757465A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541418A (zh) * | 2023-06-30 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 数据查询方法、电子设备及计算机可读存储介质 |
CN116541418B (zh) * | 2023-06-30 | 2023-09-15 | 阿里巴巴(中国)有限公司 | 数据查询方法、电子设备及计算机可读存储介质 |
CN116541420A (zh) * | 2023-07-07 | 2023-08-04 | 上海爱可生信息技术股份有限公司 | 向量数据的查询方法 |
CN116541420B (zh) * | 2023-07-07 | 2023-09-15 | 上海爱可生信息技术股份有限公司 | 向量数据的查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115757465A (zh) | 一种向量检索方法及装置 | |
EP3709184B1 (en) | Sample set processing method and apparatus, and sample querying method and apparatus | |
CN111897875A (zh) | 城市多源异构数据的融合处理方法、装置和计算机设备 | |
US9043316B1 (en) | Visual content retrieval | |
CN110909725A (zh) | 识别文本的方法、装置、设备及存储介质 | |
US20160267351A1 (en) | Compact and robust signature for large scale visual search, retrieval and classification | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
CN112541074A (zh) | 日志解析方法、装置、服务器和存储介质 | |
US11734341B2 (en) | Information processing method, related device, and computer storage medium | |
US20120117090A1 (en) | System and method for managing digital contents | |
CN110674328A (zh) | 一种商标图像检索方法、系统、介质及设备 | |
CN109766918B (zh) | 基于多层次上下文信息融合的显著性物体检测方法 | |
CN114245896A (zh) | 向量查询方法、装置、电子设备及存储介质 | |
CN111353055B (zh) | 基于智能标签扩展元数据的编目方法及系统 | |
Wan et al. | Data driven multi-index hashing | |
CN110825902B (zh) | 特征相似性搜索的实现方法、装置、电子设备及存储介质 | |
CN112035701A (zh) | 一种互联网短视频溯源的方法及系统 | |
CN111444390A (zh) | 一种基于Spark和深度哈希的视频并行检索方法 | |
CN108764258B (zh) | 一种用于群体图像插入的最优图像集选取方法 | |
CN112446405A (zh) | 一种家电客服的用户意图引导方法及智能家电 | |
CN111460114A (zh) | 检索方法、装置、设备及计算机可读存储介质 | |
CN108536769B (zh) | 图像分析方法、搜索方法及装置、计算机装置及存储介质 | |
CN115984671A (zh) | 模型在线更新方法、装置、电子设备及可读存储介质 | |
Dourado et al. | Event prediction based on unsupervised graph-based rank-fusion models | |
JP2012226429A (ja) | 画像検索および認識システム |
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 |