当前位置: 首页 > 专利查询>GSI科技公司专利>正文

关联图搜索制造技术

技术编号:35730092 阅读:24 留言:0更新日期:2022-11-26 18:29
关联图搜索系统包括KNN图确定器,其用于提前确定数据集中的每个项目的W个邻居,并且将每个项目和该项目的邻居存储在KNN图中,在关联处理单元(APU)上实现的降维向量查找器,其用于查找查询向量的第一数量的第一最近邻,所述APU以恒定复杂度操作,而与数量的大小无关;结果扩展器,其用于使用KNN图针对每个第一最近邻查找W个第二最近邻,从而创建一组邻居;以及KNN全维向量重排器,其用于从该组邻居中查找全维查询向量的最终数量的全维最近邻。查找全维查询向量的最终数量的全维最近邻。查找全维查询向量的最终数量的全维最近邻。

【技术实现步骤摘要】
关联图搜索
[0001]相关申请的交叉引用
[0002]本申请要求享有于2021年5月23日提交的美国临时专利申请63/192,032和于2022年4月25日提交的美国临时专利申请63/334,216的优先权,两者均通过引用并入本文。


[0003]本专利技术总体上涉及关联存储器,并且涉及用于结合APU使用KNN图以提供快速且准确的K个最近邻的方法。

技术介绍

[0004]对象(例如,图片、文本、音乐等)可以通过数字的全维特征向量在数据集中进行语义表示。对象原始数据由数字特征表示,数字特征也称为特征嵌入,其可以在保留初始对象信息的同时被处理。
[0005]特征向量可以通过使用神经网络来获得,神经网络接收对象作为输入并提供全维特征向量(例如,128Kx1024字)作为输出。可以使用本领域已知的K个最近邻(KNN)算法来比较特征向量,并且各种应用使用KNN搜索算法来查找与查询对象最紧密相似的K个(例如,25个)对象(从大型数据集中)。这样的应用包括面部识别、图像识别、文档和文本搜索、音乐识别等。
[0006]应用可以将M个特征向量(M可能是几百万个)的大型数据集存储在关联处理单元(APU)中,例如,美国GSI Technology Inc.的Gemini Associative Processing Unit,其中KNN搜索算法非常快,并且以恒定的复杂度执行,而与数据集的大小无关。Gemini上的KNN实现在美国专利10,929,751中进行了描述,该专利已转让给申请人并通过引用并入本文。在APU中存储全维向量会占用大量存储器。当APU的关联存储器不足够大以容纳整个特征向量数据集时,整个数据集存储在主机设备的存储器中,主机设备一次将数据集的不同部分复制到关联存储器进行处理。
[0007]通过减少特征向量的维度(例如,减少到512

2000位),可以改进KNN搜索算法的性能和存储器利用率。可以(通过诸如神经代理散列(NPH)或局部敏感度散列化(LSH)之类的方法)创建每个元素的降维向量并将其存储在APU中,替代可以存储在主机中的全维特征向量。使用降维向量执行KNN搜索比对全维特征向量执行KNN搜索要快,因为与在GPU或CPU上执行的对全浮点MAC的操作相比,APU在执行二进制运算(例如,汉明距离、L1、L2、Tanimoto相似性搜索等)时非常高效。
[0008]需要注意的是,更小的向量意味着在APU中更快的搜索和更少的存储器占用。另一方面,更小的向量产生不那么准确的结果,因为每个降维向量包含更少的信息。
[0009]为了在使用降维向量时保持所要求的准确度,与使用全维向量时的全维相邻向量的初始数量K(例如,25)相比,KNN搜索算法返回更大数量K
rdv
个降维相邻向量(例如,4000)。需要注意的是,K
rdv
比K大得多。
[0010]此外,应在主机中执行最终的重排步骤以搜索作为查询向量的最近邻的最后25个
全维特征向量(在使用降维向量找到的4000个向量之中)。在此步骤中,主机应从数据库中取回全维向量(与较大数量K
rdv
个降维向量相关联),并在查询对象的全维向量和较大数量K
rdv
个全维向量之间执行第二KNN搜索操作,以查找最终初始数量K个最近邻。
[0011]现在参考的图1是现有技术系统10的示意图,该系统10接收全维查询向量11作为输入并提供其K个最近全维相邻向量的列表18作为输出。系统10包括主机15,主机15连接到APU12和存储全维向量的大型数据集的数据库16。APU 12包括存储记录的大型数据集的关联存储器阵列13。存储器阵列13中的每个记录包括索引和与数据库16中的全维向量相关联的降维向量。
[0012]主机15将全维查询向量11传递给APU 12,APU 12降低其维度并对数据库16执行第一KNN搜索算法,以查找查询向量11的K
rdv
个最近邻的列表(注意,对降维向量执行KNN)。主机15使用CPU或GPU进行最终的重排步骤,以提供APU 12找到的K
rdv
个向量之中的最终K个最近邻。
[0013]现在参考的图2是可以由系统10实现的流程的示意图。流程的输入是全维查询向量11。系统10可以在步骤22中,降低全维查询向量11的维度,并且在步骤24中,激活第一KNN搜索算法以查找相对大数量K
rdv
个降维最近邻,并且提供它们在数据库16中的索引。系统10可以在APU 13(图1)中执行步骤22和步骤24,并且将索引提供给主机15,主机15可以继续进行接下来的步骤。在步骤26中,主机15可以从数据库16中获取K
rdv
个全维向量,并且在步骤28中激活第二KNN搜索算法,以将结果重排,并且查找最终的K个全维最近邻,并且将它们作为输出18提供。
[0014]需要注意的是,如果要进一步降低维度(以节省APU 12中的存储器),则应当增加APU 12中第一KNN搜索操作需要找到的对象的数量K
rdv
,以便保持所需的准确度,并且在具有更多数量的向量的情况下在主机15上执行重排操作,因为可以通过增加降维向量的数量来补偿由降维向量提供的较低的准确度。
[0015]APU 12中的搜索非常快,并且无论数据集的大小如何都以恒定的复杂度执行,但是主机15为最终的重排操作需要执行的输入/输出(IO)操作随着应返回的索引数量的增加而变慢。当使用降维向量进行操作时,主机需要检索相对大量的索引,这会降低整体操作的性能。

技术实现思路

[0016]根据本专利技术的优选实施例,提供了一种关联图搜索系统,该关联图搜索系统包括:KNN图确定器,其用于提前确定数据集中的每个项目的W个邻居,并且将每个项目和该项目的邻居存储在KNN图中;在关联处理单元(APU)上实现的降维向量查找器,其用于查找查询向量的第一数量的第一最近邻,APU以恒定复杂度操作,而与所述数量的大小无关;结果扩展器,其用于使用KNN图针对每个第一最近邻查找W个第二最近邻,从而创建一组邻居;以及KNN全维向量重排器,其用于从该组邻居中查找全维查询向量的最终数量的全维最近邻。
[0017]另外,根据本专利技术的实施例,降维向量查找器使用相似性搜索方法,该相似性搜索方法为汉明距离、L1、L2或Tanimoto。
[0018]此外,根据本专利技术的实施例,关联图搜索系统通过在第二最近邻上激活结果扩展器来扩展该组邻居。
[0019]根据本专利技术的优选实施例,提供了一种方法,该方法包括以下步骤:接收全维查询向量;在关联存储器单元(APU)中,减少查询向量的大小;在APU中激活第一K个最近邻(KNN)算法以查找查询向量的小数量的最近邻,KNN算法以恒定复杂度操作,而与小数量的大小无关;通过使用KNN图在主机处理器中将小数量扩展到较大数量的最近邻;在主机处理器中获取与较大数量的最近邻相关联的全维向量;以及在主机处理器中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种关联图搜索系统,包括:KNN图确定器,其用于提前确定数据集中的每个项目的W个邻居,并且将每个项目和该项目的邻居存储在KNN图中;在关联处理单元(APU)上实现的降维向量查找器,其用于查找查询向量的第一数量的第一最近邻,所述APU以恒定复杂度操作,而与所述第一数量的大小无关;结果扩展器,其用于使用所述KNN图针对每个第一最近邻查找W个第二最近邻,从而创建一组邻居;以及KNN全维向量重排器,其用于从所述一组邻居中查找所述全维查询向量的最终数量的全维最近邻。2.根据权利要求1所述的关联图搜索系统,所述降维向量查找器使用相似性搜索方法,所述相似性搜索方法是以下各项之一:汉明距离、L1、L2和Tanimoto。3.根据权利要求1所述的关联图搜索系统,其中,所述关联图搜索系统通过在所述第二最近邻上激活所述结果扩展器来扩展所述一组邻居。4.一种方法,包括:接收全维查询向量;在关联存储器单元(APU)中,减少所述查询向量的大小;在所述APU中激活第一K个最近邻(KNN)算法以查找所述查询向量的小数量的最近邻,所述KNN算法以恒定复杂度操作,而与所述小数量的大小无关;通过使用KNN图在主机处理器中将所述小数量扩展到较大数量的最近邻;在所述主机处理器中获取与所述较大数量的最近邻相关联的全维向量;以及在所述主机处理器中激活第二K个最近邻(KNN)算法以查找所述查询向量的最终K个全维最近邻。5.根据权利要求4所...

【专利技术属性】
技术研发人员:A
申请(专利权)人:GSI科技公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1