CN115757896A - 向量检索方法、装置、设备及可读存储介质 - Google Patents
向量检索方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115757896A CN115757896A CN202211548682.0A CN202211548682A CN115757896A CN 115757896 A CN115757896 A CN 115757896A CN 202211548682 A CN202211548682 A CN 202211548682A CN 115757896 A CN115757896 A CN 115757896A
- Authority
- CN
- China
- Prior art keywords
- vector
- retrieved
- retrieval
- value
- mean
- 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
本申请公开了一种向量检索方法、装置、设备及可读存储介质,预先构建被检索向量的索引信息,该索引信息包括被检索向量的均值向量、基底向量、被检索向量去除均值向量后在每个基底向量上的投影值,以及各个投影值对应的索引标识,在获取待检索向量之后,针对每个基底向量,基于待检索向量、预设检索阈值以及被检索向量的索引信息,确定基底向量对应的检索结果,最后基于各基底向量对应的检索结果,确定与待检索的向量对应的最终检索结果。由于预设检索阈值可以限定检索结果与待检索向量之间的相似程度,基于预设检索阈值得到的检索结果不是特定的TopK,因此,在要求高相似度而不限定数量的场景,基于预设检索阈值得到的检索结果具有更好的召回效果。
Description
技术领域
本申请涉及信息检索技术领域,更具体的说,是涉及一种向量检索方法、装置、设备及可读存储介质。
背景技术
当前社会处于数据时代,信息检索已经成为日常工作和生活的重要部分,广泛应用于搜索引擎、广告推荐、智能问答等众多领域。信息检索当前有多种方式,向量检索就是其中一种。向量检索是指在一个给定的向量数据库中,按照某种度量方式(如欧式距离、余弦、内积、海明距离等),检索出与待检索向量相似的向量。
目前常用的向量检索方式,按照检索算法实现方式,大概可以分为基于近邻图的向量检索方式、基于聚类的方式和基于空间划分的方式,这些向量检索方式均是采用TopK的检索方式,即检索出K个和待检索向量最相似的向量进行召回。但是,对于一些要求高相似度而不限定数量的场景(如,相似文本推荐场景),这种TopK的检索方式会导致召回效果下降。
因此,如何提供一种适用于要求高相似度而不限定数量的场景的向量检索方式,成为本领域技术人员亟待解决的技术问题。
发明内容
鉴于上述问题,本申请提出了一种向量检索方法、装置、设备及可读存储介质。具体方案如下:
一种向量检索方法,所述方法包括:
获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
可选地,所述被检索向量的均值向量的确定方式为:
获取被检索向量;
基于所述被检索向量,确定所述被检索向量对应的特征矩阵,所述特征矩阵的行数为被检索向量的数量,列数为每个被检索向量的维度;
计算所述特征矩阵中每一列的均值,得到所述被检索向量的均值向量。
可选地,所述基底向量的确定方式为:
从所述被检索向量中随机抽取第一预设数量个被检索向量;
对所述第一预设数量个被检索向量进行施密特正交化处理,得到第一预设数量个初始基底向量;
对每个所述初始基底向量进行归一化处理,得到所述基底向量。
可选地,所述基底向量的确定方式为:
基于所述被检索向量的均值向量对所述被检索向量进行去均值处理,得到去均值处理后的被检索向量;
确定去均值处理后的被检索向量对应的特征矩阵;
基于所述去均值处理后的被检索向量对应的特征矩阵,确定协方差矩阵;
对所述协方差矩阵求取特征值和特征向量,并按照所述特征值的大小降序排列所述特征向量,确定排名靠前的第二预设数量个所述特征向量作为所述基底向量。
可选地,所述被检索向量去除所述均值向量后在每个所述基底向量上的投影值按照投影值大小排序后使用跳表维护。
可选地,所述方法还包括:
确定待删被检索向量;
将所述跳表中,所述待删被检索向量在每个所述基底向量上的投影值删除。
可选地,所述方法还包括:
确定待增被检索向量;
基于所述被检索向量的均值向量对所述待增被检索向量进行去均值处理,得到去均值处理后的待增被检索向量;
计算所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值;
将所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值,按照投影值大小顺序插入至所述跳表中。
可选地,所述基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果,包括:
计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值;
基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间;
将所述被检索向量去除所述均值向量后在所述基底向量上的投影值中处于所述检索区间内的投影值确定为目标投影值;
将所述目标投影值对应的索引标识,确定为所述基底向量对应的检索结果。
可选地,所述基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间,包括:
确定第一数值与第二数值,所述第一数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的差值,所述第二数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的和值;
将不大于第一数值并且不小于第二数值的区间确定为检索区间。
一种向量检索装置,所述装置包括:
获取单元,用于获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
基底向量对应的检索结果确定单元,用于针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
最终检索结果确定单元,用于基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
可选地,所述装置包括均值向量确定单元;
所述均值向量确定单元,用于获取被检索向量;基于所述被检索向量,确定所述被检索向量对应的特征矩阵,所述特征矩阵的行数为被检索向量的数量,列数为每个被检索向量的维度;计算所述特征矩阵中每一列的均值,得到所述被检索向量的均值向量。
可选地,所述装置包括第一基底向量确定单元;
所述第一基底向量确定单元,用于从所述被检索向量中随机抽取第一预设数量个被检索向量;对所述第一预设数量个被检索向量进行施密特正交化处理,得到第一预设数量个初始基底向量;对每个所述初始基底向量进行归一化处理,得到所述基底向量。
可选地,所述装置包括第二基底向量确定单元;
所述第二基底向量确定单元,用于基于所述被检索向量的均值向量对所述被检索向量进行去均值处理,得到去均值处理后的被检索向量;确定去均值处理后的被检索向量对应的特征矩阵;基于所述去均值处理后的被检索向量对应的特征矩阵,确定协方差矩阵;对所述协方差矩阵求取特征值和特征向量,并按照所述特征值的大小降序排列所述特征向量,确定排名靠前的第二预设数量个所述特征向量作为所述基底向量。
可选地,所述被检索向量去除所述均值向量后在每个所述基底向量上的投影值按照投影值大小排序后使用跳表维护。
可选地,所述装置还包括向量删除单元;
所述向量删除单元,用于确定待删被检索向量;将所述跳表中,所述待删被检索向量在每个所述基底向量上的投影值删除。
可选地,所述装置还包括:向量增加单元;
所述向量增加单元,用于确定待增被检索向量;基于所述被检索向量的均值向量对所述待增被检索向量进行去均值处理,得到去均值处理后的待增被检索向量;计算所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值;将所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值,按照投影值大小顺序插入至所述跳表中。
可选地,所述基底向量对应的检索结果确定单元,包括:
计算单元,用于计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值;
检索区间确定单元,用于基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间;
目标投影值确定单元,用于将所述被检索向量去除所述均值向量后在所述基底向量上的投影值中处于所述检索区间内的投影值确定为目标投影值;
检索结果确定单元,用于将所述目标投影值对应的索引标识,确定为所述基底向量对应的检索结果。
可选地,所述检索区间确定单元,具体用于:
确定第一数值与第二数值,所述第一数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的差值,所述第二数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的和值;
将不大于第一数值并且不小于第二数值的区间确定为检索区间。
一种向量检索设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的向量检索方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的向量检索方法的各个步骤。
借由上述技术方案,本申请公开了一种向量检索方法、装置、设备及可读存储介质,该方案中,预先构建被检索向量的索引信息,该索引信息包括被检索向量的均值向量、基底向量、被检索向量去除均值向量后在每个基底向量上的投影值,以及各个投影值对应的索引标识,在进行向量检索时,获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,针对每个基底向量,基于待检索向量、预设检索阈值以及被检索向量的索引信息,确定基底向量对应的检索结果,最后基于各基底向量对应的检索结果,确定与待检索的向量对应的最终检索结果。本方案中,预设检索阈值可以限定检索结果与待检索向量之间的相似程度,基于预设检索阈值得到的检索结果不是特定的TopK,因此,在要求高相似度而不限定数量的场景,基于预设检索阈值得到的检索结果具有更好的召回效果。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例公开的一种向量检索方法的流程示意图;
图2为本申请实施例公开的一种被检索向量的索引信息构建方法的流程示意图;
图3为本申请实施例公开的一种基于待检索向量、预设检索阈值以及被检索向量的索引信息,确定基底向量对应的检索结果的方法的流程示意图;
图4为本申请实施例公开的一种向量检索装置结构示意图;
图5为本申请实施例公开的一种向量检索设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好地理解本申请的方案,首先对目前常用的向量检索方式进行介绍,具体如下:
当前社会处于数据时代,信息检索已经成为日常工作和生活的重要部分,广泛应用于搜索引擎、广告推荐、智能问答等众多领域。信息检索当前有多种方式,向量检索就是其中一种。
向量检索是指在一个给定的向量数据库中,按照某种度量方式(如欧式距离、余弦、内积、海明距离等),检索出与待检索向量相似的向量。待检索向量以及向量数据库中的向量可以是借助一些映射手段(比如,人工智能技术、机器学习技术等)将非结构化数据(如文本、音频、视频、图像等)进行转换得到的。
目前,常用的向量检索方式,按照检索算法实现方式,大概可以分为基于近邻图的向量检索方式、基于聚类的向量检索方式和基于空间划分的向量检索方式,其中:
基于近邻图的向量检索方式,代表算法是NSW(Navigable small world models,可导航小世界图)算法和HNSW(Hierarchical Navigable Small World graphs,分层可导航小世界图)算法,NSW算法的思想是在近邻图中建立高速路节点,将两个相隔较远的节点链接起来,用于提升检索的速度;在此基础上,HNSW算法构建了一种分层可导航的近邻图,顶层节点作为入点,随着层数的增加,每层的节点数也增加,而底层图包含了全部节点,在向量检索时,只在每层节点关联的TopK个近邻节点之间向下层检索。
基于聚类的向量检索方式中,向量按照中心距离进行聚类,聚类的结果是众多向量被划分为多个类簇,检索时只需要找到最相似的簇,然后在簇内暴力搜索,得到TopK的结果,这种方式的检索效果受参数配置影响较大。
基于空间划分的向量检索方式,例如,KD-Tree是按照每一个维度取其中位数,将向量二分,如此分割至最小单元,然后保留搜索TopK的结果;VP-Tree(制高点树)是一种二叉树划分的方法,按照从二叉树的顶点自顶向下查询的方式进行,得到TopK的结果;LSH(局部敏感哈希)算法是通过哈希映射到相邻的空间内检索得到TopK的结果。
向量检索方式的应用场景千差万别,以广告推荐算法为例,算法初期阶段需要进行粗排,因此需要召回上千条相似向量,用于保证后期精排的效果;而对于相似文本推荐领域,需要保证召回的向量的相似度控制在一定的阈值内,低于阈值的文本大多数为不相关文本,因而对于条数并无太大要求。另外,对于相似元素去重、判断相似元素是否存在的场景,更倾向于看重召回向量的相似程度而非单纯的检索TopK。
但是,目前常用的上述向量检索方式均是采用TopK的检索方式,即检索出K个和待检索向量最相似的向量进行召回。但是,对于一些要求高相似度而不限定数量的场景(如,相似文本推荐场景、相似元素去重、判断相似元素是否存在的场景等),这种TopK的检索方式会导致召回效果下降。
因此,如何提供一种适用于要求高相似度而不限定数量的场景的向量检索方式,成为本领域技术人员亟待解决的技术问题。
随着向量检索方式应用场景的复杂化,向量数据库的容量可以到数亿级别,与此同时,大多数场景对于向量检索的实时性要求较高,索引是有效组织数据的过程,能够极大地加速对大型数据集的查询,为了提升向量检索的效率,可以为向量数据库中各个向量构建索引标识,这个索引标识用于链接向量和该向量所表征的非结构化数据,在向量数据库中各个向量的索引标识的基础上,可以按照检索算法实现方式预先构建索引信息,基于构建的索引信息实现向量检索。
现有向量检索方式,会基于向量数据库中各个向量的索引标识预先构建索引信息,不同的向量检索方式,其索引信息的形式也不相同,对于不同形式的索引信息,向量的增删,会导致索引信息的改变,索引信息的改变对于检索性能是有影响的,比如HNSW(Hierarchical Navigable Small World graphs,分层可导航小世界图)算法,如果需要增加向量,则增加待增向量的索引信息即可,如果需要删除向量,是将待删向量的索引信息进行标记删除,而不是真正的删除,如果频繁的增删向量,会导致内存急剧增加,从而影响检索性能。VP-Tree(制高点树)算法,如果频繁的增删向量,会导致树的深度累计恶化,最终影响检索性能。
鉴于上述问题,本案发明人进行了深入研究发现,由于空间中任意两个相近的点,其在任意向量上的投影距离不大于两点间的实际距离。如果空间中两点在多个正交向量上的投影距离相近,那么那他们的实际距离很可能相近。基于此,最终提出了一种向量检索方法,该向量检索方法适用于要求高相似度而不限定数量的场景,并且能够很好的处理向量的增删问题,使得检索性能不受向量增删的影响。
接下来,通过下述实施例对本申请提供的向量检索方法进行介绍。
参照图1,图1为本申请实施例公开的一种向量检索方法的流程示意图,该方法可以包括:
步骤S101:获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识。
在本申请中,待检索向量可以为任意非结构化数据(如文本、音频、视频、图像等)对应的向量。被检索向量为向量数据库中的部分或全部向量。预设检索阈值是基于场景需求设定的,用于表征检索结果与待检索向量之间的相似程度。被检索向量的索引信息的构建方式具体将通过后面的实施例详细说明,此处不再展开描述。
步骤S102:针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果。
在本申请中,可以计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值,并基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值、所述预设检索阈值、所述被检索向量去除所述均值向量后在所述基底向量上的投影值,以及各个投影值对应的索引标识,确定所述基底向量对应的检索结果。
在本申请中,基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值、所述预设检索阈值、所述被检索向量去除所述均值向量后在所述基底向量上的投影值,以及各个投影值对应的索引标识,确定所述基底向量对应的检索结果,即从被检索向量去除所述均值向量后在所述基底向量上的投影值中,确定出与所述待检索向量去除所述均值向量后在所述基底向量上的投影值之间的相似度程度符合预设检索阈值限定的投影值,并将符合预设检索阈值限定的投影值对应的索引标识,确定为所述基底向量对应的检索结果。具体实现方式将通过后面的实施例详细说明,此处不再展开描述。
步骤S103:基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
在本申请中,可以将各基底向量对应的检索结果的交集,确定为与所述待检索的向量对应的最终检索结果。各基底向量对应的检索结果可以为索引标识,最终检索结果除了索引标识之外,还可以包括对应的向量以及源数据。
本实施例公开了一种向量检索方法,该方法中,预先构建被检索向量的索引信息,该索引信息包括被检索向量的均值向量、基底向量、被检索向量去除均值向量后在每个基底向量上的投影值,以及各个投影值对应的索引标识,在进行向量检索时,获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,针对每个基底向量,基于待检索向量、预设检索阈值以及被检索向量的索引信息,确定基底向量对应的检索结果,最后基于各基底向量对应的检索结果,确定与待检索的向量对应的最终检索结果。本方案中,预设检索阈值可以限定检索结果与待检索向量之间的相似程度,基于预设检索阈值得到的检索结果不是特定的TopK,因此,在要求高相似度而不限定数量的场景,基于预设检索阈值得到的检索结果具有更好的召回效果。另外,对于要求高相似度而不限定数量的场景,预设检索阈值一般比较小,这就保证了每个基底向量对应的检索结果量级很小,因此,可以提高检索性能。
在本申请的另一个实施例中,对被检索向量的索引信息的构建方式进行详细说明。
参照图2,图2为本申请实施例公开的一种被检索向量的索引信息构建方法的流程示意图,该方法可以包括:
步骤S201:获取被检索向量。
被检索向量可以有多个,为便于说明,可以假设被检索向量有n个,每个被检索向量的维度为q。
步骤S202:确定所述被检索向量的均值向量。
作为一种可实施方式,所述被检索向量的均值向量的确定方式为:
基于所述被检索向量,确定所述被检索向量对应的特征矩阵,所述特征矩阵的行数为被检索向量的数量,列数为每个被检索向量的维度;计算所述特征矩阵中每一列的均值,得到所述被检索向量的均值向量。
为便于理解,如果被检索向量有n个,每个被检索向量的维度为q,则所述被检索向量对应的特征矩阵为[n,q]。
步骤S203:确定基底向量。
作为一种可实施方式,可以采用施密特正交化确定基底向量。即所述基底向量的确定方式为:从所述被检索向量中随机抽取第一预设数量个被检索向量;对所述第一预设数量个被检索向量进行施密特正交化处理,得到第一预设数量个初始基底向量;对每个所述初始基底向量进行归一化处理,得到所述基底向量。
具体的,首先任取t个被检索向量中的两组向量,记为S0和S1;令v0=S0,根据公式:
然后,再选择第三个被检索向量S2,得到:
依次进行,最终得到vt-1:
作为另一种可实施方式,可以采用主成分分析确定基底向量。即所述基底向量的确定方式为:基于所述被检索向量的均值向量对所述被检索向量进行去均值处理,得到去均值处理后的被检索向量;确定去均值处理后的被检索向量对应的特征矩阵;基于所述去均值处理后的被检索向量对应的特征矩阵,确定协方差矩阵;对所述协方差矩阵求取特征值和特征向量,并按照所述特征值的大小降序排列所述特征向量,确定排名靠前的第二预设数量个所述特征向量作为所述基底向量。
为便于理解,如果被检索向量有n个,第一预设数量为s,去均值处理后的被检索向量对应的特征矩阵为B,可以基于公式X=BT·B计算得到协方差矩阵X;
对协方差矩阵X求取特征值和特征向量,并且按照特征值大小降序排列特征向量,取前s个特征向量作为基底向量。
需要说明的是,由于采用施密特正交化确定基底向量的方式没有考虑向量间的特征分布,因此会导致基底向量确定不当,这种情况下一般会导致如下问题:一些向量聚集分布,很多原本不相近的向量在基底的投影上重合了,导致每个基底上召回的向量过于集中,这会导致实时检索的性能下降,同时误召回的概率增加,因此,施密特正交化确定基底向量的方式,比较适合于向量空间分布分散化,没有明显聚集的情况。当向量空间分布存在明显的特征聚类时,比较适合的方法是采用主成分分析确定基底向量。
还需要说明的是,对于向量空间分布分散化,没有明显聚集的情况,基底向量数量t可以适当少选,这会降低索引内存的占用和提升检索性能,但是会略微降低召回率。
步骤S204:确定被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识。
需要说明的是,每个投影值对应的索引标识即为该投影值对应的被检索向量的索引标识。被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识可以采用任意数据结构维护,作为一种可实施方式,在本申请中,所述被检索向量去除所述均值向量后在每个所述基底向量上的投影值按照投影值大小排序后使用跳表维护,可以提升检索性能,也能保证增加被检索向量或删除被检索向量时对索引信息的更改复杂度在对数级别。
需要说明的是,在本申请中,针对每个基底向量,可以为其绑定一个跳表,该跳表中维护有被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识。
作为一种可实施方式,当需要删除某个被检索向量时,可以采用如下方式:
确定待删被检索向量;
将所述跳表中,所述待删被检索向量在每个所述基底向量上的投影值删除。
作为另一种可实施方式,当需要增加某个被检索向量时,可以采用如下方式:
确定待增被检索向量;
基于所述被检索向量的均值向量对所述待增被检索向量进行去均值处理,得到去均值处理后的待增被检索向量;
计算所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值;
将所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值,按照投影值大小顺序插入至所述跳表中。
需要说明的是,在增加被检索向量或删除被检索向量之后,需同步增加或删除被检索向量的索引标识。
在本申请的另一个实施例中,对步骤S102基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果的具体实现方式进行说明。
参照图3,图3为本申请实施例公开的一种基于待检索向量、预设检索阈值以及被检索向量的索引信息,确定基底向量对应的检索结果的方法的流程示意图,该方法可以包括如下步骤:
步骤S301:计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值。
步骤S302:基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间。
作为一种可实施方式,所述基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间,包括:确定第一数值与第二数值,所述第一数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的差值,所述第二数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的和值;将不大于第一数值并且不小于第二数值的区间确定为检索区间。
为便于理解,假设待检索向量去除所述均值向量后在所述基底向量上的投影值为m,预设检索阈值为th,则检索区间为[m-th,m+th]。
步骤S303:将所述被检索向量去除所述均值向量后在所述基底向量上的投影值中处于所述检索区间内的投影值确定为目标投影值。
步骤S304:将所述目标投影值对应的索引标识,确定为所述基底向量对应的检索结果。
在确定索引标识之后,即可基于索引标识确定出对应的向量及原始数据。
下面对本申请实施例公开的向量检索装置进行描述,下文描述的向量检索装置与上文描述的向量检索方法可相互对应参照。
参照图4,图4为本申请实施例公开的一种向量检索装置结构示意图。如图4所示,该向量检索装置可以包括:
获取单元11,用于获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
基底向量对应的检索结果确定单元12,用于针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
最终检索结果确定单元13,用于基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
作为一种可实施方式,所述装置包括均值向量确定单元;
所述均值向量确定单元,用于获取被检索向量;基于所述被检索向量,确定所述被检索向量对应的特征矩阵,所述特征矩阵的行数为被检索向量的数量,列数为每个被检索向量的维度;计算所述特征矩阵中每一列的均值,得到所述被检索向量的均值向量。
作为一种可实施方式,所述装置包括第一基底向量确定单元;
所述第一基底向量确定单元,用于从所述被检索向量中随机抽取第一预设数量个被检索向量;对所述第一预设数量个被检索向量进行施密特正交化处理,得到第一预设数量个初始基底向量;对每个所述初始基底向量进行归一化处理,得到所述基底向量。
作为一种可实施方式,所述装置包括第二基底向量确定单元;
所述第二基底向量确定单元,用于基于所述被检索向量的均值向量对所述被检索向量进行去均值处理,得到去均值处理后的被检索向量;确定去均值处理后的被检索向量对应的特征矩阵;基于所述去均值处理后的被检索向量对应的特征矩阵,确定协方差矩阵;对所述协方差矩阵求取特征值和特征向量,并按照所述特征值的大小降序排列所述特征向量,确定排名靠前的第二预设数量个所述特征向量作为所述基底向量。
作为一种可实施方式,所述被检索向量去除所述均值向量后在每个所述基底向量上的投影值按照投影值大小排序后使用跳表维护。
作为一种可实施方式,所述装置还包括向量删除单元;
所述向量删除单元,用于确定待删被检索向量;将所述跳表中,所述待删被检索向量在每个所述基底向量上的投影值删除。
作为一种可实施方式,所述装置还包括:向量增加单元;
所述向量增加单元,用于确定待增被检索向量;基于所述被检索向量的均值向量对所述待增被检索向量进行去均值处理,得到去均值处理后的待增被检索向量;计算所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值;将所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值,按照投影值大小顺序插入至所述跳表中。
作为一种可实施方式,所述基底向量对应的检索结果确定单元,包括:
计算单元,用于计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值;
检索区间确定单元,用于基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间;
目标投影值确定单元,用于将所述被检索向量去除所述均值向量后在所述基底向量上的投影值中处于所述检索区间内的投影值确定为目标投影值;
检索结果确定单元,用于将所述目标投影值对应的索引标识,确定为所述基底向量对应的检索结果。
作为一种可实施方式,所述检索区间确定单元,具体用于:
确定第一数值与第二数值,所述第一数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的差值,所述第二数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的和值;
将不大于第一数值并且不小于第二数值的区间确定为检索区间。
参照图5,图5为本申请实施例提供的一种向量检索设备的硬件结构框图,参照图5,向量检索设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:
获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种向量检索方法,其特征在于,所述方法包括:
获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
2.根据权利要求1所述的方法,其特征在于,所述被检索向量的均值向量的确定方式为:
获取被检索向量;
基于所述被检索向量,确定所述被检索向量对应的特征矩阵,所述特征矩阵的行数为被检索向量的数量,列数为每个被检索向量的维度;
计算所述特征矩阵中每一列的均值,得到所述被检索向量的均值向量。
3.根据权利要求1所述的方法,其特征在于,所述基底向量的确定方式为:
从所述被检索向量中随机抽取第一预设数量个被检索向量;
对所述第一预设数量个被检索向量进行施密特正交化处理,得到第一预设数量个初始基底向量;
对每个所述初始基底向量进行归一化处理,得到所述基底向量。
4.根据权利要求1所述的方法,其特征在于,所述基底向量的确定方式为:
基于所述被检索向量的均值向量对所述被检索向量进行去均值处理,得到去均值处理后的被检索向量;
确定去均值处理后的被检索向量对应的特征矩阵;
基于所述去均值处理后的被检索向量对应的特征矩阵,确定协方差矩阵;
对所述协方差矩阵求取特征值和特征向量,并按照所述特征值的大小降序排列所述特征向量,确定排名靠前的第二预设数量个所述特征向量作为所述基底向量。
5.根据权利要求1所述的方法,其特征在于,所述被检索向量去除所述均值向量后在每个所述基底向量上的投影值按照投影值大小排序后使用跳表维护。
6.根据权利要求5所述的方法,其特征在于,还包括:
确定待删被检索向量;
将所述跳表中,所述待删被检索向量在每个所述基底向量上的投影值删除。
7.根据权利要求5所述的方法,其特征在于,还包括:
确定待增被检索向量;
基于所述被检索向量的均值向量对所述待增被检索向量进行去均值处理,得到去均值处理后的待增被检索向量;
计算所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值;
将所述去均值处理后的待增被检索向量在每个所述基底向量上的投影值,按照投影值大小顺序插入至所述跳表中。
8.根据权利要求1所述的方法,其特征在于,所述基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果,包括:
计算所述待检索向量去除所述均值向量后在所述基底向量上的投影值;
基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间;
将所述被检索向量去除所述均值向量后在所述基底向量上的投影值中处于所述检索区间内的投影值确定为目标投影值;
将所述目标投影值对应的索引标识,确定为所述基底向量对应的检索结果。
9.根据权利要求8所述的方法,其特征在于,所述基于所述待检索向量去除所述均值向量后在所述基底向量上的投影值和所述预设检索阈值,确定检索区间,包括:
确定第一数值与第二数值,所述第一数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的差值,所述第二数值为所述待检索向量去除所述均值向量后在所述基底向量上的投影值与所述预设检索阈值的和值;
将不大于第一数值并且不小于第二数值的区间确定为检索区间。
10.一种向量检索装置,其特征在于,所述装置包括:
获取单元,用于获取待检索向量,预设检索阈值以及预先构建的被检索向量的索引信息,所述索引信息包括被检索向量的均值向量、基底向量、被检索向量去除所述均值向量后在每个所述基底向量上的投影值,以及各个投影值对应的索引标识;
基底向量对应的检索结果确定单元,用于针对每个基底向量,基于所述待检索向量、所述预设检索阈值以及所述被检索向量的索引信息,确定所述基底向量对应的检索结果;
最终检索结果确定单元,用于基于各基底向量对应的检索结果,确定与所述待检索的向量对应的最终检索结果。
11.一种向量检索设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1至9中任一项所述的向量检索方法的各个步骤。
12.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至9中任一项所述的向量检索方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211548682.0A CN115757896A (zh) | 2022-12-05 | 2022-12-05 | 向量检索方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211548682.0A CN115757896A (zh) | 2022-12-05 | 2022-12-05 | 向量检索方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757896A true CN115757896A (zh) | 2023-03-07 |
Family
ID=85343237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211548682.0A Pending CN115757896A (zh) | 2022-12-05 | 2022-12-05 | 向量检索方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757896A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131283A (zh) * | 2023-10-27 | 2023-11-28 | 知学云(北京)科技股份有限公司 | 基于异步服务的智能问答方法和系统 |
-
2022
- 2022-12-05 CN CN202211548682.0A patent/CN115757896A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131283A (zh) * | 2023-10-27 | 2023-11-28 | 知学云(北京)科技股份有限公司 | 基于异步服务的智能问答方法和系统 |
CN117131283B (zh) * | 2023-10-27 | 2024-03-19 | 知学云(北京)科技股份有限公司 | 基于异步服务的智能问答方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189991B (zh) | 重复视频识别方法、装置、终端及计算机可读存储介质 | |
JP6544756B2 (ja) | 画像の高次元特徴の類似性を比較するための方法及びデバイス | |
CN110502664B (zh) | 视频标签索引库创建方法、视频标签生成方法及装置 | |
CN111177432B (zh) | 一种基于分层深度哈希的大规模图像检索方法 | |
JP5121917B2 (ja) | 画像検索装置、画像検索方法及びプログラム | |
WO2019137185A1 (zh) | 一种图片筛选方法及装置、存储介质、计算机设备 | |
US20190272341A1 (en) | Layered locality sensitive hashing (lsh) partition indexing for big data applications | |
US8254678B2 (en) | Image segmentation | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
CN108549696B (zh) | 一种基于内存计算的时间序列数据相似性查询方法 | |
JP4937395B2 (ja) | 特徴ベクトル生成装置、特徴ベクトル生成方法及びプログラム | |
CN110598061A (zh) | 一种多元图融合的异构信息网嵌入方法 | |
CN107180079B (zh) | 基于卷积神经网络以及树与哈希结合索引的图像检索方法 | |
Wang et al. | Duplicate discovery on 2 billion internet images | |
CN111859004A (zh) | 检索图像的获取方法、装置、设备及可读存储介质 | |
CN113821657A (zh) | 基于人工智能的图像处理模型训练方法及图像处理方法 | |
CN110837555A (zh) | 海量文本去重筛选的方法、设备和存储介质 | |
CN114048318A (zh) | 基于密度半径的聚类方法、系统、设备及存储介质 | |
CN115757896A (zh) | 向量检索方法、装置、设备及可读存储介质 | |
US8370363B2 (en) | Hybrid neighborhood graph search for scalable visual indexing | |
CN110083731B (zh) | 图像检索方法、装置、计算机设备及存储介质 | |
CN113255610B (zh) | 特征底库构建、特征检索方法以及相关装置 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
JP2004127055A (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 |