一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

索引构建方法、装置、向量搜索方法及检索系统与流程

2022-07-02 09:24:10 来源:中国专利 TAG:


1.本技术涉及数据检索技术领域,特别涉及一种索引构建方法、装置、向量搜索方法及检索系统。


背景技术:

2.随着数据的快速增长,数据检索广泛应用于图像、视频、语音、蛋白质分子结构检索等领域中,由于各种数据,例如图片数据等均可以被抽象为高维度的特征向量,因此数据之间的相似度可以被量化为向量空间中的特征向量之间的距离。例如,两个特征向量之间的距离越近,则该两个特征向量对应的原始数据的相似度越高。因此数据检索可以转化为在向量空间中的向量搜索,即将在数据库中搜索与待查询数据相似的若干个数据的过程,转化为在数据库中搜索距离待查询数据所对应的查询向量最近的若干个特征向量的过程。
3.目前,一些检索系统会为数据库构建倒排索引以便于用户检索。其中,倒排索引的构建方法为首先将数据库中各数据对应的各特征向量通过聚类处理,例如通过k-means聚类处理,把整个向量空间划分为若干个聚类集合,每个聚类集合具有对应的代表点,并将每个特征向量归入到距离自身最近的代表点所对应的聚类集合中。如此,在进行查询向量的检索时,系统将会根据查询向量与多个代表点的距离确定出与查询向量最近的代表点,并对该代表点所在的聚类集合中的所有的特征向量进行搜索,可以理解,对所有的特征向量进行搜索即是获取每个特征向量与查询向量之间的距离。然后将该聚类集合中与查询向量之间距离较近的若干个特征向量作为搜索结果。
4.但是存在一些聚类集合中的某些特征向量距离查询向量相较于上述搜索出的特征向量更近,但是由于该聚类集合的代表点并不是距离查询向量最近的,因此,系统并未对该聚类聚合中的特征向量进行搜索,导致未获取到更加准确的查询向量的目标向量,使得检索结果的精确度较低。


技术实现要素:

5.为解决向量检索方法检索结果的精确度较低的文题,本技术实施例提供了一种索引构建方法、装置、向量搜索方法及检索系统。
6.第一方面,本技术实施例提供了一种索引构建方法,包括:
7.确定目标向量以及所述目标向量所在的第一聚类集合;
8.从所述第一聚类集合以外的其他聚类集合中,为所述目标向量确定出至少一个符合预设条件的第二聚类集合;
9.建立所述目标向量与所述第二聚类集合之间的索引关联。
10.基于上述方案,将数据库中的每个特征向量与除自身所在聚类集合之外的至少一个其他聚类集合之间建立关联。在后续进行向量检索的过程中,在检索完第一聚类集合后,可以根据其他聚类集合分别关联第一聚类集合中的向量数量确定待检索的下一个或多个聚类集合,能够有效增加数据库中的各特征向量被检索到的概率,且可以更加精确的获取
查询向量对应的目标向量。能够有效避免由于前述由于聚类集合的代表点并不能完全表示聚类集合中的所有特征向量所引起的搜索精确度较低的问题。
11.可以理解,本技术实施例中所提及的第一聚类集合中的目标向量可以为第一聚类集合中的任一向量。
12.在上述第一方面的一种可能的实现中,所述从所述第一聚类集合以外的其他聚类集合中,为所述目标向量确定出至少一个符合预设条件的第二聚类集合;包括:
13.获取目标向量与所述第一聚类集合之外的其他各聚类集合对应的代表点之间的距离;
14.根据所述距离,从所述第一聚类集合之外的其他聚类集合中,确定与所述目标向量对应的第一序列,并确定所述第一序列中的设定数量个聚类集合作为符合预设条件的第二聚类集合。
15.可以理解,本技术实施例中,可以根据各聚类集合对应的代表点与第一聚类集合中的各向量的距离确定出距离各向量较近的聚类集合,将距离各向量较近的聚类集合与各向量建立关联,能够在后续向量检索的过程中,在检索完第一聚类集合后,根据其他聚类集合分别关联第一聚类集合中的向量数量确定待检索的下一个或多个聚类集合,有效增加数据库中的各特征向量被检索到的概率,从而可以使得可以更加精确的获取查询向量对应的目标向量。
16.在上述第一方面的一种可能的实现中,所述根据所述距离,从所述第一聚类集合之外的其他聚类集合中,确定与所述目标向量对应的第一序列,并确定所述第一序列中的设定数量个聚类集合作为符合预设条件的第二聚类集合,包括:
17.根据所述距离由小至大对所述第一聚类集合之外的其他聚类集合进行排序,确定与所述目标向量对应的第一序列;
18.确定所述第一序列中的前设定数量个聚类集合作为符合预设条件的第二聚类集合。
19.可以理解,本技术实施例中,根据各聚类集合对应的代表点与第一聚类集合中的目标向量的距离,对各聚类集合进行排序,可以使得根据第二聚类集合的设定数量选取对应的第二聚类集合时更加方便。例如,第二聚类集合的设定数量为五个,则可以直接将排序即第一序列中的前五个聚类集合作为符合预设条件的第二聚类集合。且将第一序列的前设定数量个聚类集合作为第二聚类集合可以使得选取的第二聚类集合均是距离目标向量较近的聚类集合。提高后续检索过程中的检索精度。
20.在上述第一方面的一种可能的实现中,所述根据所述距离,从所述第一聚类集合之外的其他聚类集合中,确定与所述目标向量对应的第一序列,并确定所述第一序列中的设定数量个聚类集合作为符合预设条件的第二聚类集合,包括:
21.将所述第一聚类集合之外的其他聚类集合中,所述距离小于设定距离的聚类集合作为第一序列中的聚类集合;
22.将所述第一序列中的各聚类集合作为所述第二聚类集合;
23.或者,将所述第一序列中的各聚类集合,按照对应点与所述目标向量之间的距离由小至大排序,确定前设定次序的聚类集合作为符合预设条件的第二聚类集合。
24.可以理解,本技术实施例中,将所述第一聚类集合之外的其他聚类集合中,所述距
离小于设定距离的聚类集合作为第一序列中的聚类集合,即设定距离阈值确定第二聚类集合的方式可以使得选取的聚类集合与目标向量的距离处于用户规定的范围内,使得选取第二聚类集合的方式更加规范且简单。例如,可以只需在选取聚类集合的算法中设置相应的距离阈值参数即可实现第二聚类集合的获取。
25.在上述第一方面的一种可能的实现中,所述从所述第一聚类集合以外的其他聚类集合中,为所述目标向量确定出至少一个符合预设条件的第二聚类集合;包括:
26.获取目标向量与所述第一聚类集合之外的其他各聚类集合对应的代表点之间的距离;
27.获取所述第一聚类集合之外的其他各聚类集合的近似半径;
28.获取所述距离与所述近似半径之间的差值;
29.根据所述差值,从所述第一聚类集合之外的其他聚类集合中,确定与所述目标向量对应的第一序列,并确定所述第一序列中的设定数量个聚类集合作为符合预设条件的第二聚类集合。
30.可以理解,任一聚类集合的代表点与目标特征向量之间的距离与近似半径的差值可以近似代表该聚类集合中距离目标特征向量最近的边缘特征向量与目标特征向量之间的距离。当边缘特征向量距离目标特征向量之间的距离较近,则可能存在边缘特征向量与目标特征向量对应的原始数据比较相似。因此可以将该边缘特征向量所在的聚类集合与目标特征向量建立索引关联。
31.可以理解,在一些实施例中,上述获取除目标特征向量本身所在的第一聚类集合之外的各聚类集合的近似半径的方式可以为:获取各聚类集合中所有特征向量与各聚类集合中的代表点之间的距离,将所有特征向量与代表点之间的最大距离作为各聚类集合的近似半径。在一些实施例中,估算各聚类集合的近似半径的方式也可以为其他任意可实施的方式,例如通过神经网络模型或者相关算法估算等。
32.在上述第一方面的一种可能的实现中,确定所述目标向量所在的第一聚类集合,包括:
33.获取所述目标向量与所有聚类集合对应的代表点之间的距离;
34.将所有聚类集合中,对应的代表点与所述目标向量之间的距离最近的聚类集合作为所述目标向量所在的第一聚类集合。
35.在上述第一方面的一种可能的实现中,所述距离包括欧式距离和内积距离。
36.可以理解,本技术实施例中距离包括欧式距离和内积距离只是距离说明,也可以用其他任意可实施的距离表示。
37.第二方面,本技术实施例中提供一种索引构建装置,包括:
38.第一确定单元,用于确定目标向量以及所述目标向量所在的第一聚类集合;
39.第二确定单元,用于从所述第一聚类集合以外的其他聚类集合中,为所述目标向量确定出至少一个符合预设条件的第二聚类集合;
40.关联单元,用于建立所述目标向量与所述第二聚类集合之间的索引关联。
41.第三方面,本技术实施例中提供一种向量搜索方法,包括:
42.获取查询向量;
43.获取所述查询向量与所述数据库中每个聚类集合对应的代表点之间的距离;
44.确定出与所述查询向量距离最近的第一代表点,将所述第一代表点所对应的聚类集合作为第一级搜索的第一聚类集合,并确定所述第一聚类集合中的每个特征向量与查询向量之间的距离;
45.从所述第一聚类集合以外的其他聚类集合中,确定出关联所述第一聚类集合中特征向量数量满足预设条件的至少一个聚类集合作为第二级搜索的至少一个第二聚类集合,并确定所述第二聚类集合中每个特征向量与所述查询向量之间的距离;
46.当已搜索的聚类集合的数量达到预设数量,则将搜索过的所述第一聚类集合和所述第二聚类集合的所有特征向量中,与所述查询向量之间的距离在设定范围内的特征向量作为所述查询向量对应的目标向量。
47.可以理解,当某个聚类集合中关联第一聚类集合中特征向量数量最多,即第一聚类集合中的多个特征向量均与该聚类集合相关联,则证明,该聚类集合的代表点距离第一聚类集合中的多个特征向量之间的距离均较近,因此,该代表点对应的聚类集合中所包含的特征向量距离查询向量比较近的可能性也较大。因此,可以在该聚类集合中也进行搜索,如此,可以增加数据库中的各特征向量被检索到的概率,且可以更加精确的获取查询向量对应的目标向量。
48.在上述第三方面的一种可能的实现中,还包括:当已搜索的聚类集合的数量未达到预设数量,则
49.确定出关联所述第二聚类集合中特征向量数量最多的聚类集合作为待搜索的第三聚类集合。
50.可以理解,上述预设数量可以根据数据库向量数量的大小确定,当数据库向量数量较多时,上述预设数量可以较大,当数据库向量数量较少时,上述预设数量可以较少。
51.第四方面,本技术实施例提供一种搜索装置,应用于数据库:包括:
52.第一获取单元,用于获取查询向量;
53.第二获取单元,用于获取所述查询向量与所述数据库中每个聚类集合对应的代表点之间的距离;
54.第一确定单元,用于确定出与所述查询向量距离最近的第一代表点,将所述
55.第一对应点所对应的聚类集合作为第一级搜索的第一聚类集合,并确定所述第一聚类集合中的每个特征向量与查询向量之间的距离;
56.第二确定单元,用于从所述第一聚类集合以外的其他聚类集合中,确定出关联所述第一聚类集合中满足预设条件的至少一个聚类集合作为第二级搜索的第二聚类集合,并确定所述第二聚类集合中每个特征向量与所述查询向量之间的距离;
57.执行单元,用于当已搜索的聚类集合的数量达到预设数量,则将搜索过的所
58.述第一聚类集合和所述第二聚类集合的所有特征向量中,与所述查询向量之间的距离在设定范围内的特征向量作为所述查询向量对应的目标向量。
59.第五方面,本技术实施例提供一种检索系统,包括上述索引构建装置,和/或上述搜索装置。
60.第六方面,本技术实施例提供一种索引结构,包括代表点项和倒排文件项;所述代表点项包括数据库中各个聚类集合所对应的各代表点,所述倒排文件项包括所述各个聚类集合所对应的各倒排文件;
61.所述倒排文件包括所述倒排文件对应的聚类集合中的各个特征向量,以及所述各个特征向量的第二聚类集合信息。
62.第七方面,本技术实施例提供一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是所述电子设备的所述一个或多个处理器之一,用于执行上述索引构建方法或者上述搜索方法。
63.第八方面,本技术实施例提供一种可读介质,所述可读介质上存储有指令,该指令在电子设备上执行时使机器执行上述索引构建方法或者上述搜索方法。
64.第九方面,本技术实施例提供一种计算机程序产品,包括指令,所述指令用于实现上述索引构建方法或者上述搜索方法。
附图说明
65.图1a根据本技术的一些实施例,示出了一种图片数据库s的示意图;
66.图1b根据本技术的一些实施例,示出了一种对图片数据库s进行倒排索引构建的示意图;
67.图2a根据本技术的一些实施例,示出了一种图片数据库s的示意图;
68.图2b根据本技术的一些实施例,示出了一种对图片数据库s进行索引构建的示意图;
69.图2c根据本技术的一些实施例,示出了一种特征向量的数据信息和与特征向量具有索引关联的各聚类集合的数据信息的存储示意图;
70.图2d根据本技术的一些实施例,示出了一种数据库s中部分特征向量与各聚类集合的索引关联示意图;
71.图2e根据本技术的一些实施例,示出了一种向量检索的示意图;
72.图3根据本技术的一些实施例,示出了一种索引构建方法的流程示意图;
73.图4根据本技术的一些实施例,示出了一种数据库s所对应的索引结构的示意图;
74.图5根据本技术的一些实施例,示出了一种搜索方法的流程示意图;
75.图6根据本技术的一些实施例,示出了一种索引构建装置的流程示意图;
76.图7根据本技术的一些实施例,示出了一种搜索装置的示意图;
77.图8根据本技术的一些实施例,示出了一种检索系统的示意图;
78.图9根据本技术的一些实施例,示出了一种电子设备的框图。
具体实施方式
79.本技术的说明性实施例包括但不限于一种索引构建方法、装置、数据库及搜索方法。
80.如前所述,目前数据库中采用构建倒排索引的方式获得的检索结果的精确度会较低。
81.例如,图1a中为一种检索系统中图片数据库s的示意图,数据库s中包括各图片对应的各特征向量。图1b中为对图片数据库s进行倒排索引构建的示意图,如图1b所示,首先通过聚类处理将数据库s中各特征向量分配至四个聚类集合中,分别为聚类集合s1、聚类集合s2、聚类集合s3和聚类集合s4,其中,聚类集合s1具有对应的代表点c1,聚类集合s2具有
对应的代表点c2,聚类集合s3具有对应的代表点c3,和聚类集合s4具有对应的代表点c4。
82.可以理解,本技术实施例中提及的代表点可以是聚类集合的中心点,即与各个点的距离之间的差异在预设范围内的点;也可以是基于其他的规则制定的点。
83.在基于上述数据库s对查询图片所对应的查询向量a进行向量检索时,检索系统会确定出每个代表点与查询向量a之间的距离,例如,如图1b所示,检索系统会确定出代表点c1与查询向量a之间的距离为d1,代表点c2与查询向量a之间的距离为d2,代表点c3与查询向量a之间的距离为d3,代表点c4与查询向量a之间的距离为d4;假设d4>d3>d1>d2时,系统会确定出四个代表点中与查询向量a之间的距离最近的代表点为代表点c2,然后对代表点c2所在的聚类集合s2中的每个特征向量进行搜索,可以理解,对每个特征向量进行搜索即为获取每个特征向量与查询向量a之间的距离。并将聚类集合s2中与查询向量a较近的或处于设定距离范围内的特征向量y1和特征向量y2作为查询向量a的目标向量。然后将目标向量对应的原图片数据输出至客户端。
84.但是,如图1b所示,实质上聚类集合s1中的特征向量x1却是数据库s中距离查询向量a最近的特征向量,但由于聚类集合s1的代表点c1不是距离查询向量最近的,因此,系统并未对聚类集合s1中的特征向量进行搜索,使得未获取到准确的查询向量a的目标向量,导致漏掉了最确切的检索结果,影响检索的精确度。
85.为解决上述问题,本技术实施例提供了一种索引的构建方法,具体包括:获取待创建索引的数据库中各数据所对应的特征向量;对所述各特征向量进行聚类处理,获取多个聚类集合,每个聚类集合具有对应的代表点;将各特征向量都分别分配至各自对应的第一聚类集合中;继续地,确定各特征向量对应的除自身所在第一聚类集合之外的满足预设条件的至少一个第二聚类集合;最后,为各特征向量,根据第一聚类集合和至少一个第二聚类集合,建立索引关联。
86.可以理解,上述聚类处理的方式可以为k-means等聚类方式。其中,k-means聚类方式可以为首先预设任意数量的聚类集合以及该聚类集合对应的代表点,然后获取数据库中每个特征向量与各聚类集合对应的代表点的距离;将各特征向量分别分配至距离最近的代表点所对应的聚类集合中。
87.其中,获取各特征向量的满足预设条件的第二聚类集合的方式可以为:将上述多个聚类集合中除目标特征向量本身所在的第一聚类集合之外的各聚类集合,按照所述各聚类集合的代表点与该目标特征向量之间的距离进行由近至远的排序,获取该目标特征向量所对应的第一序列;将所述第一序列中的前预设数量个聚类集合作为第二聚类集合,并将目标特征向量与第二聚类集合建立索引关联。可以理解,每个特征向量均可以与除本身所在的聚类集合之外至少一个第二聚类集合相关联。
88.可以理解,本技术实施例中,根据各聚类集合对应的代表点与第一聚类集合中的目标向量的距离,对各聚类集合进行排序,可以使得根据第二聚类集合的设定数量选取对应的第二聚类集合时更加方便。例如,第二聚类集合的设定数量为五个,则可以直接将排序即第一序列中的前五个聚类集合作为符合预设条件的第二聚类集合。且将第一序列的前设定数量个聚类集合作为第二聚类集合可以使得选取的第二聚类集合均是距离目标向量较近的聚类集合。提高后续检索过程中的检索精度。
89.可以理解,上述通过按照各聚类集合的代表点与该目标特征向量之间的距离进行
排序来获取第二聚类集合的方式只是示例性说明。可实施的,本技术实施例获取第二聚类集合的方式也可以为其他方式。
90.例如,获取第二聚类集合的方式还可以为:将上述多个聚类集合中除目标特征向量本身所在的第一聚类集合之外的各聚类集合中,代表点与目标特征向量之间的距离小于设定距离的聚类集合组成第一序列中的聚类集合;然后将第一序列中的所有聚类集合作为第二聚类集合,或者将第一序列中的各聚类集合的代表点与该目标特征向量之间的距离进行由近至远的排序,将排序中位于前设定次序的聚类集合作为第二聚类集合。
91.可以理解,本技术实施例中,将所述第一聚类集合之外的其他聚类集合中,所述距离小于设定距离的聚类集合作为第一序列中的聚类集合,即设定距离阈值确定第二聚类集合的方式可以使得选取的聚类集合与目标向量的距离处于用户规定的范围内,使得选取第二聚类集合的方式更加规范且简单。例如,可以只需在选取聚类集合的算法中设置相应的距离阈值参数即可实现第二聚类集合的获取。
92.再例如,获取第二聚类集合的方式还可以为:估算除目标特征向量本身所在的第一聚类集合之外的各聚类集合的近似半径,以所述各聚类集合的代表点与目标特征向量的代表点之间的距离与近似半径的差值作为各聚类集合中的特征向量与目标向量之间的最近距离。根据各聚类集合中特征向量与目标向量距离的最近距离进行由近至远排序获取第一序列,将第一序列中的前预设数量个聚类集合作为第二聚类集合。
93.或者,将各聚类集合中,特征向量与目标向量距离的最近距离小于设定值的聚类集合组成第一序列,将第一序列中的所有聚类集合作为第二聚类集合,或者将第一序列中的各聚类集合中特征向量与目标特征向量距离的最近距离进行由近至远的排序,将排序中位于前设定次序的聚类集合作为第二聚类集合。
94.可以理解,任一聚类集合的代表点与目标特征向量之间的距离与近似半径的差值可以近似代表该聚类集合中距离目标特征向量最近的边缘特征向量与目标特征向量之间的距离。当边缘特征向量距离目标特征向量之间的距离较近,则可能存在边缘特征向量与目标特征向量对应的原始数据比较相似。因此可以将该边缘特征向量所在的聚类集合与目标特征向量建立索引关联。
95.可以理解,在一些实施例中,上述估算除目标特征向量本身所在的第一聚类集合之外的各聚类集合的近似半径的方式可以为:获取各聚类集合中所有特征向量与各聚类集合中的代表点之间的距离,将所有特征向量与代表点之间的最大距离作为各聚类集合的近似半径。在一些实施例中,估算各聚类集合的近似半径的方式也可以为其他任意可实施的方式,例如通过神经网络模型或者相关算法估算等。
96.上述与各特征向量建立索引关联的聚类集合的数量即上述提及的预设数量可以与数据库的数据量大小相关,例如,当数据库的数据量较大时,上述预设数量可以设置较多;当数据库的数据量较小时,上述预设数量可以设置较少。
97.与上面的向量索引构建方法相应地,在针对这样的向量进行检索时,可以使得在向量检索的过程中,检索系统可以先获取查询向量;然后确定数据库中与查询向量距离最近的代表点,将该代表点所对应的聚类集合作为第一级搜索的第一聚类集合,并确定第一聚类集合中的每个特征向量与查询向量之间的距离;然后获取第一聚类集合中的各特征向量所关联的聚类集合;将多个聚类集合中关联第一聚类集合中特征向量数量满足预设条件
的至少一个聚类集合作为第二级搜索的至少一个第二聚类集合;并获第二聚类集合中每个特征向量与查询向量之间的距离。当搜索的聚类集合的数量达到预设数量,则将搜索过的所有特征向量中与查询向量之间的距离在设定范围内的特征向量作为查询向量所对应的目标向量。当搜索的聚类集合的数量未达到预设数量,则继续获取下一级搜索的聚类集合,并对下一级搜索的聚类集合进行搜索。
98.可以理解,每一级搜索对中对应的需要搜索的聚类集合的数量可以为一个,也可以为多个。下面以确定第二级搜索的第二聚类集合的方式为例,说明每一级搜索的聚类集合的确定方式。其中,确定第二级搜索的第二聚类集合的方式可以为:
99.将关联第一聚类集合中特征向量数量最多的聚类集合作为第二级搜索的第二聚类集合。
100.或者,将除第一聚类集合之外的各聚类集合,按照关联第一聚类集合中特征向量数量进行由多到少排序,将排序中位于前设定次序的聚类集合作为第二级搜索的第二聚类集合。
101.可以理解,当某个聚类集合中关联第一聚类集合中特征向量数量最多,即第一聚类集合中的多个特征向量均与该聚类集合相关联,则证明,该聚类集合的代表点距离第一聚类集合中的多个特征向量之间的距离均较近,因此,该代表点对应的聚类集合中所包含的特征向量距离查询向量比较近的可能性也较大。因此,可以在该聚类集合中也进行搜索,如此,可以增加数据库中的各特征向量被检索到的概率,且可以更加精确的获取查询向量对应的目标向量。
102.基于上述方案,将数据库中的每个特征向量与除自身所在聚类集合之外的至少一个其他聚类集合之间建立关联。在后续进行向量检索的过程中,在检索完第一聚类集合后,可以根据其他聚类集合分别关联第一聚类集合中的向量数量确定待检索的下一个或多个聚类集合,能够有效增加数据库中的各特征向量被检索到的概率,且可以更加精确的获取查询向量对应的目标向量。能够有效避免由于前述由于聚类集合的代表点并不能完全表示聚类集合中的所有特征向量所引起的搜索精确度较低的问题。
103.例如,图2a中为一种检索系统中图片数据库s的示意图,数据库s中包括各图片对应的各特征向量。图2b中为本技术实施例对图片数据库s进行索引构建的示意图,如图2a和b所示,本技术实施例提供的索引构建的方法可以为系统首先将数据库s中的各特征向量通过上述k-means聚类处理分配至四个聚类集合中,四个聚类集合分别为聚类集合s1、聚类集合s2、聚类集合s3和聚类集合s4,其中,聚类集合s1具有对应的代表点c1,聚类集合s2具有对应的代表点c2,聚类集合s3具有对应的代表点c3,和聚类集合s4具有对应的代表点c4。然后将各聚类集合中的各特征向量与除自身所在聚类集合之外的满足预设条件的聚类集合建立索引关联。
104.如图2b中所示,以聚类集合s2中的特征向量y1为例,在构建索引的过程中,本技术的获取与聚类集合s2中的特征向量y1的满足预设条件的第二聚类集合的方式可以为:
105.获取特征向量y1与除聚类集合s2之外的其他聚类集合的代表点之间的距离,例如,可以获取到特征向量y1与聚类集合s1的代表点c1的距离为d5,特征向量y1与聚类集合s3的代表点c3的距离为d6,特征向量y1与聚类集合s4的代表点c4的距离为d7,然后将上述三个聚类集合,按照各自的代表点与特征向量y1之间的距离由近到远排序,获取特征向量
y1对应的第一序列;假设d5<d6<d7时,则特征向量y1对应的第一序列为聚类集合s1-聚类集合s3-聚类集合s4;此时,将特征向量y1与所述第一序列中的前预设数量个聚类集合建立索引关联。假设预设数量为2个,则可以将聚类集合s1、聚类集合s3作为特征向量y1的满足预设条件的第二聚类集合,并将特征向量y1与聚类集合s1、聚类集合s3建立索引关联。
106.在一些实施例中,各特征向量的数据信息和与各特征向量具有索引关联的各聚类集合的数据信息可以对应存储在各特征向量所在的聚类集合对应的倒排文件中。其中,特征向量的数据信息可以包括特征向量的身份标识号(identity document,id)和特征向量。与特征向量具有索引关联的各聚类集合的数据信息可以包括各聚类集合的id。
107.例如,图2c中示出了特征向量y1的数据信息和与特征向量y1具有索引关联的聚类集合s1的数据信息、聚类集合s3的数据信息,在特征向量y1所在的聚类集合s2对应的倒排文件中的存储格式示意图。如图2c中所示,特征向量y1的数据信息包括特征向量y1的id和特征向量y1,聚类集合s1的数据信息包括聚类集合s1的id,聚类集合s3的数据信息包括聚类集合s3的id。
108.依据上述方法,可以获取到聚类集合s2中每个特征向量的满足预设条件的第二聚类集合,并将每个特征向量与对应的满足预设条件的第二聚类集合之间建立索引关联。
109.图2d示出了数据库s中部分特征向量与各聚类集合的索引关联示意图,其中,聚类集合可以由聚类集合的代表点表示。数据库s中包括聚类集合s1、聚类集合s2、聚类集合s3和聚类集合s4,其中,聚类集合s1具有对应的代表点c1,聚类集合s2具有对应的代表点c2,聚类集合s3具有对应的代表点c3,和聚类集合s4具有对应的代表点c4。如图3中所示,聚类集合s2中的特征向量y1除了本身所在的聚类集合s2对应的代表点c2具有索引关联,还与聚类集合s1对应的代表点c1、聚类集合s3对应的代表点c3具有索引关联。
110.在基于上述数据库s对查询向量a进行向量检索时,检索系统会确定出数据库s中每个聚类集合的代表点与查询向量a之间的距离,例如,如图2e所示,检索系统会确定出代表点c1与查询向量a之间的距离为d1,代表点c2与查询向量a之间的距离为d2,代表点c3与查询向量a之间的距离为d3,代表点c4与查询向量a之间的距离为d4;并确定四个代表点中与查询向量a之间的距离最近的代表点为代表点c2,然后对代表点c2所在的聚类集合s2中的每个特征向量进行搜索,可以理解,对每个特征向量进行搜索即为获取每个特征向量与查询向量之间的距离。
111.根据为聚类集合s2中每个特征向量建立的索引,获取聚类集合s2中每个特征向量的第二聚类集合,确定出多个聚类集合中关联聚类集合s2特征向量最多的聚类集合作为第二级搜索的第二聚类集合,例如,聚类集合s1、聚类集合s3和聚类集合s4中关联聚类集合s2特征向量最多的聚类集合为聚类集合s1,则将聚类集合s1作为第二级搜索的第二聚类集合。
112.随后系统对聚类集合s1中的特征向量进行搜索,即获取聚类集合s1中的各个特征向量与查询向量a之间的距离。
113.假设系统设置的预设搜索集合的数量为两个,则结束搜索,将搜索过的聚类集合s2以及聚类集合s1的所有特征向量中,与查询向量a之间的距离满小于设定值的特征向量作为目标向量。例如,聚类集合s2以及聚类集合s1的特征向量中与查询向量a之间的距离满足设定值的特征向量为特征向量x1、特征向量y1和特征向量y2,则将特征向量x1、特征向量
y1和特征向量y2即为查询向量所对应的目标向量。
114.假设系统设置的预设搜索集合的数量大于两个,则进一步获取第三级搜索的第三聚类集合,其中,获取第三级搜索的第三聚类集合的方式与获取第二级搜索的第二聚类集合的方式一致,此处不再赘述。直至搜索的聚类集合的数量达到预设搜索集合的数量,结束搜索。
115.可以理解,本技术实施例中将索引构建方法应用于上述图片数据库中的索引构建只是举例说明,本技术实施例中提供的索引构建方法可以应用于各种视频、语音、蛋白质分子结构等数据库中,即本技术实施例中提供的索引构建方法可以广泛应用于图像、视频、语音、蛋白质分子结构检索等领域中。
116.可以理解,本技术实施例中提及的检索系统可以包括至少一个数据库,例如,可以包括上述图片数据库,还可以包括视频数据库、文档数据库等。其中,图片数据库包括有多个原始图片数据对应的特征向量,视频数据库包括有多个原始视频数据对应的特征向量,文档数据库包括有多个原始文档数据对应的特征向量。可实施的,每个数据库均可以采用上述索引构建方法进行索引的构建。
117.下边对本技术实施例提供的索引构建方法进行详细叙述。可以理解,本技术实施例提供的索引构建方法可以由检索系统执行,也可以由其他电子设备执行,即其他电子设备将对数据库进行索引的构建,然后将构建好索引的数据库部署至检索系统中。
118.下面以索引构建方法由检索系统执行为例对本技术实施例提供的索引构建方法进行详细叙述,图3示出了本技术实施例一种索引构建方法的流程示意图,
119.如图3所示,本技术实施例中的索引构建方法可以包括:
120.301:获取待创建索引的数据库中各数据所对应的各特征向量。
121.可以理解,所述数据库可以为包括有各种图片、视频、语音、蛋白质分子结构等数据结构中的一种或多种的数据库。由于各种数据均可以被转化为高维度的特征向量,因此,检索系统可以首先将数据库中的各原始数据转化为对应的特征向量。可以理解,数据库中的各原始数据也可以仍然保留并存储于数据库中。
122.例如,对于上述图片数据库,检索系统可以首先将图片数据库中各图片数据转化为对应的特征向量。
123.302:对各特征向量进行聚类处理,将各特征向量分别分配至对应的聚类集合中;其中,每个聚类集合具有对应的代表点。
124.可以理解,本技术实施例中对各特征向量进行聚类处理的方式可以为k-means聚类方式,其中,k-means聚类方式具体包括:
125.获取k个初始聚类代表点和预设的k个聚类集合,每个聚类集合对应一个代表点;可以理解,此时的聚类集合还未分配特征向量,只是一个具有对应的代表点的虚拟集合。其中,k的数值即聚类集合的个数可以根据实际需求进行人为设定。
126.获取数据库中每个特征向量与各聚类集合对应的初始代表点的距离;将各特征向量分别分配至距离最近的初始代表点所对应的聚类集合中。可以理解,本技术实施例中所提及的距离可以为欧式距离,也可以为内积距离等其他距离。
127.在一些实施例中,可以将上述各聚类集合对应的初始代表点作为聚类集合所对应的代表点。在另一些实施例中,可以重新确定每个聚类集合中的代表点。例如可以将该聚类
集合中所有特征向量的平均向量作为代表点。
128.可以理解,上述对所述各特征向量进行聚类处理的方式也可以为其他聚类方式。
129.303:确定各特征向量对应的除自身所在第一聚类集合之外的满足预设条件的至少一个第二聚类集合。
130.下面以其中任一个目标特征向量为例,说明获取该目标向量对应的满足预设条件的第二聚类集合的方式。
131.其中,获取目标特征向量的满足预设条件的第二聚类集合的方式可以为:将上述多个聚类集合中除目标特征向量本身所在的第一聚类集合之外的各聚类集合,按照所述各聚类集合的代表点与该目标特征向量之间的距离进行由近至远的排序,获取该目标特征向量所对应的第一序列;将所述第一序列中的前预设数量个聚类集合作为第二聚类集合,并将目标特征向量与第二聚类集合建立索引关联。可以理解,每个特征向量均可以与除本身所在的聚类集合之外至少一个第二聚类集合相关联。
132.可以理解,上述通过按照各聚类集合的代表点与目标特征向量之间的距离进行排序来获取第二聚类集合的方式只是示例性说明。可实施的,本技术实施例获取第二聚类集合的方式也可以为其他方式。
133.例如,获取第二聚类集合的方式还可以为:将上述多个聚类集合中除目标特征向量本身所在的第一聚类集合之外的各聚类集合中,代表点与目标特征向量之间的距离小于设定距离的聚类集合组成第一序列中的聚类集合;然后将第一序列中的所有聚类集合作为第二聚类集合,或者将第一序列中的各聚类集合的代表点与该目标特征向量之间的距离进行由近至远的排序,将排序中位于前设定次序的聚类集合作为第二聚类集合。
134.再例如,获取第二聚类集合的方式还可以为:估算除目标特征向量本身所在的第一聚类集合之外的各聚类集合的近似半径,以所述各聚类集合的代表点与目标特征向量的代表点之间的距离与近似半径的差值作为各聚类集合中的特征向量与目标向量之间的最近距离。将各聚类集合中特征向量与目标向量距离的最近距离小于设定值的聚类集合组成第一序列,将第一序列中的所有聚类集合作为第二聚类集合,或者将第一序列中的各聚类集合中特征向量与目标特征向量距离的最近距离进行由近至远的排序,将排序中位于前设定次序的聚类集合作为第二聚类集合。
135.可以理解,任一聚类集合的代表点与目标特征向量之间的距离与近似半径的差值可以近似代表该聚类集合中距离目标特征向量最近的边缘特征向量与目标特征向量之间的距离。当边缘特征向量距离目标特征向量之间的距离较近,则可能存在边缘特征向量与目标特征向量对应的原始数据比较相似。因此可以将该边缘特征向量所在的聚类集合与目标特征向量建立索引关联。
136.可以理解,在一些实施例中,上述估算除目标特征向量本身所在的第一聚类集合之外的各聚类集合的近似半径的方式可以为:获取各聚类集合中所有特征向量与各聚类集合中的代表点之间的距离,将所有特征向量与代表点之间的最大距离作为各聚类集合的近似半径。在一些实施例中,估算各聚类集合的近似半径的方式也可以为其他任意可实施的方式,例如通过神经网络模型或者相关算法估算等。
137.可以理解,上述预设数量可以与数据库的数据量大小相关,例如,当数据库的数据量较大时,上述预设数量可以较多;当数据库的数据量较小时,上述预设数量可以较少。
138.例如,对于前述图2b中的聚类集合s2中的特征向量y1,获取特征向量y1的满足预设条件对应的第二聚类集合的方式可以为:
139.获取特征向量y1与除聚类集合s2之外的其他聚类集合的代表点之间的距离,例如,可以获取到特征向量y1与聚类集合s1的代表点c1的距离为d5,特征向量y1与聚类集合s3的代表点c3的距离为d6,特征向量y1与聚类集合s4的代表点c4的距离为d7,然后将上述三个聚类集合各自的代表点与特征向量y1之间的距离由近到远排序,获取特征向量y1对应的第一序列;假设d5<d6<d7时,则特征向量y1对应的第一序列为聚类集合s1-聚类集合s3-聚类集合s4;此时,将特征向量y1与所述第一序列中的前预设数量个聚类集合建立索引关联。假设预设数量为2个,则可以将聚类集合s1、聚类集合s3作为特征向量y1的满足预设条件的第二聚类集合。
140.可以理解,在另一些实施例中,获取对应特征向量对应的满足预设条件的聚类集合的方式还可以为:
141.获取上述多个聚类集合中除对应特征向量本身所在的聚类集合之外的各聚类集合的代表点与对应特征向量之间的距离。将对应代表点与对应特征向量之间的距离小于设定值的聚类集合作为对应特征向量所对应的满足预设条件的聚类集合。
142.例如,对于前述图2中的聚类集合s2中的特征向量y1,特征向量y1的满足预设条件对应的第二聚类集合的方式还可以为:
143.获取特征向量y1与除聚类集合s2之外的其他聚类集合的代表点之间的距离,例如,可以获取到特征向量y1与聚类集合s1的代表点c1之间的距离为d5,特征向量y1与聚类集合s3的代表点c3的距离为d6,特征向量y1与聚类集合s4的代表点c4之间的距离为d7;经判断,特征向量y1与聚类集合s1的代表点c1之间的距离d5和特征向量y1与聚类集合s3的代表点c3的距离d6小于设定距离,因此将聚类集合s1以及聚类集合s3作为满足预设条件的第二聚类集合。
144.304:建立各特征向量分别与第一聚类集合以及至少一个第二聚类集合之间的索引关联。
145.本技术实施例中,在确定各特征向量对应的至少一个第二聚类集合后,可以将各特征向量与第二聚类集合建立索引关联。并将特征向量与自身所在的第一聚类集合建立索引关联。在一些实施例中,特征向量在被分配至对应的聚类集合中时,已经建立特征向量与该聚类集合之间的索引关联,此时可以只建立特征向量与第二聚类集合之间的索引关联。
146.例如,对于前述图2b中的聚类集合s2中的特征向量y1,对应的满足预设条件的第二聚类集合为聚类集合s1和聚类集合s3,此时,可以将特征向量y1与聚类集合s1以及聚类集合s3建立索引关联。另外,由于特征向量本身属于聚类集合s2,因此,可将特征向量y1与聚类集合s2建立索引关联。在一些实施例中,特征向量y1在被分配至聚类集合s2中时,已经建立特征向量y1与聚类集合s2之间的索引关联,此时可以只建立特征向量y1与聚类集合s1以及聚类集合s3之间的索引关联。
147.下面对本技术实施例中采用上述索引构建方法所构建的索引结构进行描述。索引结构可以包括两个部分,分别为代表点项和倒排文件项。代表点项可以包括各个聚类集合所对应的代表点,倒排文件项包括各个代表点所对应的倒排文件。其中,每个倒排文件中包括对应的代表点所对应的聚类集合中的各个特征向量以及各个特征向量的第二聚类集合
信息。
148.其中,各个特征向量的第二聚类集合信息可以为各个特征向量所关联的第二聚类集合的id和/或各个特征向量所关联的第二聚类集合所对应的代表点。
149.例如,图4示出了对于图2中所示的数据库s所对应的索引结构的示意图。如图4所示,数据库s的索引结构包括代表点项和倒排文件项。代表点项包括有四个代表点,分别为代表点c1、代表点c2、代表点c3和代表点c4。代表点c1具有对应的倒排文件的d1,该倒排文件d1中包括对应的代表点c1所对应的聚类集合s1中的各个特征向量以及各个特征向量的第二聚类集合信息。
150.代表点c2具有对应的倒排文件的d2,该倒排文件d2中包括对应的代表点c2所对应的聚类集合s2中的各个特征向量以及各个特征向量的第二聚类集合信息。
151.代表点c3具有对应的倒排文件的d3,该倒排文件d3中包括对应的代表点c3所对应的聚类集合s3中的各个特征向量以及各个特征向量的第二聚类集合信息。
152.代表点c4具有对应的倒排文件的d4,该倒排文件d4中包括对应的代表点c4所对应的聚类集合s4中的各个特征向量以及各个特征向量的第二聚类集合信息。
153.本技术实施例中还包括一种数据库,该数据库采用上述索引构建方法进行索引的构建,数据库包括:多个聚类集合,每个聚类集合中具有至少一个特征向量;其中,每个聚类集合具有对应的代表点;
154.每个聚类集合中的特征向量,与所述多个聚类集合中除各特征向量所在的聚类集合之外的至少一个满足预设条件的聚类集合具有索引关联。
155.图5示出了本技术实施例中一种搜索方法的流程示意图,该搜索方法可以用用于各种包括上述索引结构的数据库,该搜索方法可以由包括上述数据库的检索系统执行。如图5所示,本技术实施例中的搜索方法可以包括:
156.501:获取查询向量;
157.可以理解,用户在进行信息检索时,可以在检索系统的搜索窗口或搜索框中输入对应的查询数据,检索系统在获取到该查询数据后,可以将该查询数据转化为对应的查询向量。可以理解,用户输入的查询数据可以为任意格式的查询数据。
158.例如,用户输入的查询数据可以为图片格式,在检索系统在获取到该图片后,可以将该图片转化为对应的查询向量。
159.例如,用户输入的查询数据可以为文本格式,在检索系统在获取到该文本后,可以将该文本转化为对应的查询向量。
160.例如,用户输入的查询数据可以为视频格式,在检索系统在获取到该视频后,可以将该视频转化为对应的查询向量。
161.502:获取查询向量与数据库中每个聚类集合对应的代表点之间的距离;
162.可以理解,本技术实施例中,上述距离可以为欧式距离或内积距离等。
163.当获取到查询向量后,检索系统会确定出数据库中每个聚类集合的代表点与查询向量之间的距离。例如,如前述图2c所示,当获取到查询向量a后,检索系统会确定出查询向量a与代表点c1之间的距离为d1,查询向量a与代表点c2之间的距离为d2,查询向量a与代表点c3之间的距离为d3,查询向量a与代表点c4之间的距离为d4。
164.503:确定出数据库中与所述查询向量距离最近的第一代表点,将所述第一代表点
所对应的聚类集合作为第一级搜索的第一聚类集合,确定所述第一聚类集合中的每个特征向量与查询向量之间的距离。
165.可以理解,本技术实施例中,第一聚类集合是指距离各特征向量最近的代表点所在的聚类集合。
166.例如,如前述图2c所示,当确定四个代表点中与查询向量a之间的距离最近的代表点为代表点c2,则代表点c2所在的聚类集合s2即为第一聚类集合。
167.可以理解,本技术实施例中,可以将数据库中与所述查询向量距离最近的第一代表点所对应的聚类集合作为搜索的第一个聚类集合,然后对该聚类集合进行全量搜索,即获取聚类集合中的每个特征向量与查询向量之间的距离。
168.504:获取第一聚类集合中的各特征向量所关联的聚类集合。
169.可以理解,本技术实施例中,数据库的索引结构中的倒排文件中具有对应的代表点所对应的聚类集合中的各个特征向量以及各个特征向量的关联特征集合信息。其中,各个特征向量的关联特征集合信息包括各个特征向量所关联的特征集合和/或各个特征向量所关联的特征集合所对应的代表点。
170.因此,可以通过第一聚类集合的代表点所对应的倒排文件可以获取第一聚类集合中的各特征向量所关联的聚类集合或代表点。
171.505:将数据库的所有聚类集合中关联第一聚类集合中特征向量数量满足预设条件的至少一个聚类集合作为第二级搜索的至少一个第二聚类集合,确定第二聚类集合中每个特征向量与所述查询向量之间的距离。
172.可以理解,确定第二级搜索的第二聚类集合的方式可以为:
173.将关联第一聚类集合中特征向量数量最多的聚类集合作为第二级搜索的第二聚类集合。
174.或者,将除第一聚类集合之外的各聚类集合,按照关联第一聚类集合中特征向量数量进行由多到少排序,将排序中位于前设定次序的聚类集合作为第二级搜索的第二聚类集合。
175.可以理解,通过每个特征向量所关联的聚类集合,即每个特征向量与多个聚类集合之间的关联信息可以获取到多个聚类集合中关联第一聚类集合中特征向量数量最多的聚类集合。并将该聚类集合作为下一个搜索的聚类集合。
176.可以理解,当某个聚类集合中关联第一聚类集合中特征向量数量最多,即第一聚类集合中的多个特征向量均与该聚类集合相关联,则证明,该聚类集合的代表点距离第一聚类集合中的多个特征向量之间的距离均较近,因此,该代表点对应的聚类集合中所包含的特征向量距离查询向量比较近的可能性就较大。采用此种方式,可以更加精确的获取查询向量的目标向量。
177.在一些实施例中,获取所述多个聚类集合中关联第一聚类集合中特征向量数量最多的聚类集合的方式可以采用推举算法等。例如,推举算法的具体实施方式可以为采用对代表点计数的方式。具体的,对聚类集合中每个特征向量进行搜索时,每搜索一个特征向量,就对该特征向量所关联的聚类集合的代表点进行一次计数,当该聚类集合中的搜索完毕后,获取各个聚类集合所对应的代表点的计数值,该计数值即为关联的第一聚类集合中的特征向量的数量,如此,计数值最大的代表点即为关联的第一聚类集合中的特征向量数
量最多的代表点,则将计数值大的代表点所在的聚类集合作为下一个待搜索的聚类集合。
178.可以理解,本技术实施例中,在确定出下一个待搜索的聚类集合后,可以对下一个待搜索的聚类集合中的所有特征向量进行搜索,即获取下一个待搜索的聚类集合中的每个特征向量与查询向量之间的距离。
179.506:判断已搜索的聚类集合的数量是否达到预设数量。
180.若是,则转至507,将搜索过的聚类集合中的所有特征向量中,与查询向量之间的距离小于设定值的特征向量作为所述查询向量对应的目标向量。
181.若否,则转至508,将数据库中的所有聚类集合中关联第二聚类集合中特征向量数量最多的聚类集合作为第三级搜索的第三聚类集合,确定所述第三聚类集合中每个特征向量与查询向量之间的距离。
182.本技术实施例中,当搜索的聚类集合的数量达到预设数量,即当搜索的第二聚类集合为第预设数量个聚类集合,则结束搜索。
183.本技术实施例中,当搜索的聚类集合的数量未达到预设数量,则进行根据上述步骤获取下一级待搜索的聚类集合。直至当搜索的聚类集合的数量达到预设数量时结束搜索。
184.可以理解,当结束搜索后,需要确定出搜索过的聚类集合中所有特征向量中,与查询向量之间的距离小于设定值的特征向量作为该查询向量的目标向量。
185.可以理解,目标向量的数量可以为一个,也可以为多个。
186.507:将搜索过的聚类集合中的所有特征向量中,与查询向量之间的距离在设定范围内的特征向量作为查询向量对应的目标向量。
187.508:将数据库中的所有聚类集合中关联第二聚类集合中特征向量数量最多的聚类集合作为第三级搜索的第三聚类集合,确定第三聚类集合中每个特征向量与查询向量之间的距离。
188.可以理解,本技术实施例中,当检索系统获取到目标向量后,可以将目标向量对应的原始数据输出至客户端。
189.例如,当数据库为图片数据库,则检索系统可以将目标向量对应的原始图片数据输出至客户端。
190.可以理解,上述搜索方法可以用于对检索系统中的一个数据库进行搜索,也可以用于对检索系统中的多个数据库进行搜索。
191.例如,当检索系统中只包括一个数据库,当搜索方法用于对检索系统中该数据库进行搜索时,检索系统可以根据查询向量对该数据库中执行图5中所示的搜索方法,并获取对应该数据库的搜索结果输出。可以理解,搜索结果可以为在该数据库中检索到的查询向量的目标向量所对应的原始数据。
192.当检索系统中包括多个数据库时,检索系统可以基于查询向量对该多个数据库中的每个数据库执行上述图5中所示的搜索方法,并获取对应每个数据库对应的一个搜索结果,然后将所有的搜索结果输出。
193.可以理解,检索系统获取的输入数据以及检索系统确定出的输出数据的格式可以相同,也可以不同。输出数据格式与被搜索数据库所包含的数据格式相关,例如,当被搜索的数据库中的数据格式包括文本格式、图片格式或视频格式。则输出数据格式存在文本格
式、图片格式或视频格式的可能性。
194.例如,当输入数据的格式是图片,检索系统中包括一个数据库,且数据库中的数据格式均为图片,则输出的数据格式也为图片格式。
195.例如,当检索系统中包括一个数据库,且数据库中的数据格式包括文本格式、图片格式或视频格式,则检索系统输出的数据格式可能为文本格式、图片格式或视频格式。
196.例如,当检索系统中包括第一数据库、第二数据库和第三数据库,第一数据库中的数据格式包括文本格式,第二数据库中的数据格式包括图片格式,第三数据库中的数据格式包括视频格式,则检索系统输出的数据格式可能为文本格式、图片格式或视频格式。
197.图6示出了本技术实施例一种索引构建装置的示意图,如图6所示,索引构建装置包括:
198.第一确定单元,用于确定目标向量以及所述目标向量所在的第一聚类集合;
199.第二确定单元,用于从所述第一聚类集合以外的其他至少一个聚类集合中,确定出至少一个符合预设条件的第二聚类集合;
200.关联单元,用于建立所述目标向量与至少一个所述第二聚类集合之间的索引关联。
201.图7示出了本技术实施例一种搜索装置的示意图,如图7所示,搜索装置包括:包括:
202.第一获取单元,用于获取查询向量;
203.第二获取单元,用于获取所述查询向量与所述数据库中每个聚类集合对应的代表点之间的距离;
204.第一确定单元,用于确定出与所述查询向量距离最近的第一代表点,将所述第一对应点所对应的聚类集合作为第一级搜索的第一聚类集合,并确定所述第一聚类集合中的每个特征向量与查询向量之间的距离;
205.第二确定单元,用于从所述第一聚类集合以外的其他聚类集合中,确定出关联所述第一聚类集合中满足预设条件的至少一个聚类集合作为第二级搜索的第二聚类集合,并确定所述第二聚类集合中每个特征向量与所述查询向量之间的距离;
206.执行单元,用于当已搜索的聚类集合的数量达到预设数量,则将搜索过的所述第一聚类集合和所述第二聚类集合的所有特征向量中,与所述查询向量之间的距离在设定范围内的特征向量作为所述查询向量对应的目标向量。
207.本技术实施例中还包括一种检索系统,可以包括上述索引构建装置,和/或至少一个数据库和/或搜索装置。图8示出了本技术实施例一种检索系统的示意图,图8中所示的检索系统包括索引构建装置、数据库和搜索装置。
208.图9示出了本技术实施例一种电子设备的框图。在一个实施例中,电子设备1400可以包括一个或多个处理器1404,与处理器1404中的至少一个连接的系统控制逻辑1408,与系统控制逻辑1408连接的系统内存1412,与系统控制逻辑1408连接的非易失性存储器(nvm)1416,以及与系统控制逻辑1408连接的网络接口1420。
209.在一些实施例中,处理器1404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备1400采用enb(evolved node b,增强型基站)101或
ran(radio access network,无线接入网)控制器102的实施例中,处理器1404可以被配置为执行各种符合的实施例,例如,如图3或5所示的多个实施例中的一个或多个。
210.在一些实施例中,系统控制逻辑1408可以包括任意合适的接口控制器,以向处理器1404中的至少一个和/或与系统控制逻辑1408通信的任意合适的设备或组件提供任意合适的接口。
211.在一些实施例中,系统控制逻辑1408可以包括一个或多个存储器控制器,以提供连接到系统内存1412的接口。系统内存1412可以用于加载以及存储数据和/或指令。在一些实施例中电子设备1400的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
212.nvm/存储器1416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器1416可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器),cd(compact disc,光盘)驱动器,dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
213.nvm/存储器1416可以包括安装电子设备1400的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1420通过网络访问nvm/存储1416。
214.特别地,系统内存1412和nvm/存储器1416可以分别包括:指令1424的暂时副本和永久副本。指令1424可以包括:由处理器1404中的至少一个执行时导致电子设备1400实施如图3或5所示的方法的指令。在一些实施例中,指令1424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1408,网络接口1420和/或处理器1404中。
215.网络接口1420可以包括收发器,用于为电子设备1400提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1420可以集成于电子设备1400的其他组件。例如,网络接口1420可以集成于处理器1404的,系统内存1412,nvm/存储器1416,和具有指令的固件设备(未示出)中的至少一种,当处理器1404中的至少一个执行所述指令时,电子设备1400实现如图3或5所示的方法。
216.网络接口1420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
217.在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。
218.电子设备1400可以进一步包括:输入/输出(i/o)设备1432。i/o设备1432可以包括用户界面,使得用户能够与电子设备1400进行交互;外围组件接口的设计使得外围组件也能够与电子设备1400交互。在一些实施例中,电子设备1400还包括传感器,用于确定与电子设备1400相关的环境条件和位置信息的至少一种。
219.在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒
(例如,发光二极管闪光灯)和键盘。
220.在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
221.在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口1420的一部分或与网络接口1420交互,以与定位网络的组件(例如,全球定位系统(gps)卫星)进行通信。
222.本技术公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
223.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
224.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
225.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
226.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
227.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
228.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
229.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献