用于大数据应用的分层局部敏感哈希(LSH)分区索引制造技术

技术编号:25998825 阅读:18 留言:0更新日期:2020-10-20 19:09
本发明专利技术描述了用于对多个数据对象进行分区的系统和方法,其中,每个数据对象由各自的高维特征向量表示。该方法包括:对每个高维特征向量执行哈希函数,以为由所述高维特征向量表示的数据对象生成各自的低维二进制紧凑特征向量;对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。

【技术实现步骤摘要】
【国外来华专利技术】用于大数据应用的分层局部敏感哈希(LSH)分区索引相关申请本申请要求于2018年3月1日递交的第62/637,278号美国临时专利申请和于2018年7月24日递交的第16/044,362号美国实用型专利申请的益处和在先申请优先权,该内容皆以引入的方式并入本文中。
本专利技术通常涉及数据库的索引和搜索,特别涉及非结构化数据的分区索引。
技术介绍
存储在数字信息存储库(例如在线互联网和基于云的数据库)中的非结构化多媒体数据对象(例如包括图像数据、视频数据、音频数据,文本数据和其他复杂的数字对象)的数量正在急剧增长。以准确且资源有效的方式处理非结构化数据的搜索查询是一项技术挑战。相似度搜索是一种基于查询对象和搜索数据库中的数据对象的相似度之间的比较来搜索非结构化数据对象的数据搜索方法。相似度搜索通常涉及为数据库中存储的每个数据对象创建元数据,为查询对象创建元数据,然后比较所述查询对象的元数据与所述数据对象的元数据。每个对象的元数据可以采用特征向量的形式,该特征向量是表示所述对象的多维数值特征向量。在这方面,相似度搜索可以被定义为从数据库中存储的多个特征向量中找到与给定特征向量(例如,查询向量)最相似的特征向量。相似度搜索算法可用于模式识别与分类、推荐系统、统计机器学习以及诸多其它领域。因此,相似度搜索通常涉及使用特征提取算法将查询对象(例如,图像、视频样本、音频样本或文本)翻译为(转换为)表示所述查询对象的查询特征向量。然后,所述查询特征向量用于搜索特征向量的数据库,以定位与所述查询特征向量最相似的一个或多个数据对象特征向量(例如,存储在所述数据库中的数据对象的特征向量)。在非结构化数据对象的情况下,所述特征向量通常是高维向量。在高维特征空间中,给定数据集的数据变得稀疏,因此距离和相似度失去了统计意义,造成查询性能会随着维度数量的增加呈指数下降。这称为“维数灾难”问题。解决“维数灾难”问题的一种方法包括:对存储在数据库中的每个特征向量应用降维算法,以生成每个特征向量的较短版本(例如,紧凑特征向量)。在为所述数据库中存储的每个对象的每个特征向量生成紧凑特征向量后,使用索引生成算法从所述紧凑特征向量中生成搜索索引。所述降维算法也可应用于所述查询特征向量,以生成所述查询特征向量的较短版本(例如,紧凑查询特征向量)。然后,可以通过向搜索算法提供所述紧凑查询向量和所述搜索索引以查找与所述查询特征向量最相似的候选数据对象特征向量来执行相似度搜索。将向量维数较大的特征向量转换为向量维数减少的紧凑特征向量并生成相应的搜索索引的一种方法是应用基于哈希的近似最近邻(approximatenearestneighbor,简称ANN)算法。例如,局部敏感哈希(localitysensitivehashing,简称LSH)可以用于降低高维数据的维数。LSH对输入项进行哈希处理,使得相似项以高概率映射到相同的“桶”中(桶的数量要比可能的输入项的总和少得多)。特别地,可以使用LSH算法对特征向量进行哈希处理,以生成作为所述紧凑特征向量的LSH哈希值。然而,现有的基于LSH-ANN的索引和搜索算法存在的一个问题是,这些算法可能导致搜索查询过度偏向于紧凑特征向量的最高有效位(mostsignificantbit,简称MSB)之间的相似度。特别地,现有的索引生成方法可使用紧凑特征向量的前几位(或者其它连续位组,例如最后几位)来标识相似的特征向量。然而,这些位可能无法很好地指示相似度,从而导致搜索不准确以及计算资源的使用效率低下。图1A说明了此类MSB问题的一个示例,其示出了基于LSH的索引与搜索方法100的一个示例。在图1A中的例子中,索引102指向不同的槽或桶104(1),104(2),其中,每个槽或桶都以紧凑特征向量Ki的形式包含各自的哈希值集。根据公共前缀最长长度(longestlengthofcommonprefix,简称LLCP)或其它定义的距离测量法,所述紧凑特征向量Ki分组到各自的桶104(1),104(2)中。如图1A所示,根据欧氏距离,与紧凑特征向量K3相比,紧凑特征向量K1与紧凑特征向量K2更相似。然而,基于所述紧凑特征向量K1的前两(2)个分量(例如,前两位)与紧凑特征向量K2和K3的前(2)两个分量(例如,前两位)之间的比较,图1中的索引生成方法将所述紧凑特征向量K1和K2分到不同的桶104(1)和104(2)中,并将所述紧凑特征向量K1和K3结合到同一个桶104(2)中。当紧凑查询特征向量q进入,基于前两个分量,所述紧凑查询特征向量q会更接近所述第一桶104(1),因此紧凑特征向量K1和K3作为候选最近邻被返回。其中,理想情况下紧凑特征向量K1和K2应作为紧凑查询特征向量q的最近邻被返回。这个错误是因为尽管在选择哈希函数时没有优先选择左边的分量或位,但在分区时优先考虑了该分量或位而导致的。这影响了使用生成的搜索索引进行相似度搜索时的准确性。在具有多个搜索查询以搜索存储在数字信息存储库中的大量的非结构化数据对象的环境下,可以使用并发搜索查询分区策略对数据索引进行分组。例如,为了方便搜索,可以将索引分区或划分为分区组(其可以包括槽或者桶),并将据称相似的对象分配到相同的分区组中。与上述MSB问题类似,现有的分区方法使用紧凑特征向量中的固定数量的前导位将紧凑特征向量分区为分区组。在执行查询时,只对一个分区组进行搜索会产生很大错误。图1B示出了传统(不基于内容)的分区方法的一个示例。基于前导2位,将紧凑特征向量K2和K3放入分区组11,并将紧凑特征向量K1和K4放入分区组01。尽管哈希值K1和K2除它们的第一位外几乎相同,但所述传统分区方法把哈希值K1和K2放入不同的分区组中。并且,传统分区方法将极为不同的哈希值K2和K3放入相同的分区组中。因此,相似的紧凑特征向量很可能被放入不同的子索引(例如,分区组)中,这会影响相似度搜索的准确性和一致性。因此,本文公开了解决上述分区问题以提高搜索存储在数字信息存储库中的大规模非结构化数据的准确性和效率的方法和系统,包括能够提高搜索时的计算效率和搜索精确度的系统和方法。
技术实现思路
示例性实施例通过示例在说明书和权利要求书中公开。根据一个示例方面,描述了一种用于生成索引结构以索引多个非结构化数据对象的系统和方法,包括:生成紧凑特征向量集,所述集合包括每个所述数据对象的紧凑特征向量,每个数据对象的紧凑特征向量包括表示所述数据对象的哈希值的序列;并基于所述紧凑特征向量的内容将所述紧凑特征向量索引到分区组中。根据第一示例方面,描述了一种用于对多个数据对象进行分区的方法,其中,每个数据对象由各自的高维特征向量表示。该方法包括:对每个高维特征向量执行哈希函数,以为由所述高维特征向量表示的数据对象生成各自的低维二进制紧凑特征向量;对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。在一些示例性实施例中,对本文档来自技高网
...

【技术保护点】
1.一种用于对多个数据对象进行分区的方法,其特征在于,每个数据对象由各自的高维特征向量表示,包括:/n对每个高维特征向量执行哈希函数,以为由所述高维特征向量表示的数据对象生成各自的低维二进制紧凑特征向量;/n对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;/n将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。/n

【技术特征摘要】
【国外来华专利技术】20180301 US 62/637,278;20180724 US 16/044,3621.一种用于对多个数据对象进行分区的方法,其特征在于,每个数据对象由各自的高维特征向量表示,包括:
对每个高维特征向量执行哈希函数,以为由所述高维特征向量表示的数据对象生成各自的低维二进制紧凑特征向量;
对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;
将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。


2.根据权利要求1所述的方法,其特征在于,对每个高维特征向量执行的所述哈希函数为局部敏感哈希(localitysensitivehashing,简称LSH)函数,对每个紧凑特征向量执行的所述另一个哈希函数也是LSH函数。


3.根据权利要求2所述的方法,其特征在于,所述哈希函数和所述另一个哈希函数为正交角哈希函数。


4.根据权利要求3所述的方法,其特征在于,包括:为每个所述各自的分区组生成可搜索的子索引结构。


5.根据权利要求4所述的方法,其特征在于,每个紧凑特征向量仅分区到单个所述分区组。


6.根据权利要求4或5所述的方法,其特征在于,包括:将所述子索引结构作为独立可搜索的结构存储,使得所述子索引结构彼此间可以并发搜索。


7.根据权利要求4至6中任一项所述的方法,其特征在于,所述为每个所述各自的分区组生成可搜索的子索引结构包括:对于每个分区组:
为所述分区组中的紧凑特征向量生成多个扭曲紧凑特征向量集,其中,每个所述扭曲紧凑特征向量集是通过对所述分区组中的紧凑特征向量应用各自的随机置乱排列生成的;
对于每个扭曲紧凑特征向量集,基于所述扭曲紧凑特征向量集中的哈希值的序列,为由所述分区组中的紧凑特征向量表示的数据对象生成索引表;
包括为所述分区组的可搜索子索引结构中的每个所述扭曲紧凑特征向量集生成的索引表。


8.一种用于对数据对象进行分区的系统,其特征在于,每个数据对象由各自的高维特征向量表示,包括:
一个或多个处理单元;
系统存储设备,与每个所述处理单元耦合,所述系统存储设备上有形地存储可执行指令,当所述可执行指令由所述一个或多个处理单元执行时,使得所述系统:
对每个高维特征向量执行哈希函数,以为由所述高维特征向量表示的数据对象生成各自的低维二进制紧凑特征向量;
对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;
将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。


9.根据权利要求8所述的系统,其特征在于,对每个高维特征向量执行的所述哈希函数为局部敏感哈希(localitysensitivehashing,简称LSH)函数,对每个紧凑特征向量执行的所述另一个哈希函数也是LSH函数。


10.根据权利要求9所述的系统,其特征在于,所述哈希函数和所述另一个哈希函数为正交角哈希函数。


11.根据权利要求10所述的系统,其特征在于,包括:为每个所述各自的分区组生成可搜索的子索引结构,其中,每个紧凑特征向量仅分区到单个所述分区组。


12.根据权利要求11所述的系统,其特征在于,当所述可执行指令由所述一个或多个处理单元执行时,使得所述系统将所述子索引结构作为独立可搜索的结构存储在一个或多个存储器中,使得所述子索引结构彼此间可以并发搜索。


13.根据权利要求11或12所述的系统,其特征在于,当所述可执行指令由所述一个或多个处理单元执行时,使得所述系统通过以下操作为每个所述各自的分区组生成所述可搜索子索引结构:
为所述分区组中的紧凑特征向量生成多个扭曲紧凑特征向量集,其中,每个所述扭曲紧凑特征向量集是通过对所述分区组中的紧凑特征向量应用各自的随机置乱排列生成的;
对于每个扭曲紧凑特征向量集,基于所述扭曲紧凑特征向量集中的哈希值的序列,为由所述分区组中的紧凑特征向量表示的数据对象生成索引表;
包括为所述分区组的可搜索子索引结构中的每个所述扭曲紧凑特征向量集生成的索引表。


14.一种计算机程序产品,其特征在于,包括一种媒介,其上有形地存储可执行指令,当所述可执行指令由数字处理系统执行时,使得所述数字处理系统:
对多个高维特征向量中的每个高维特征向量执行哈希函数,以生成各自的低维二进制紧凑特征向量,每个所述高维特征向量表示各自的数据对象;
对每个紧凑特征向量执行另一个哈希函数,以将子索引ID分配给所述紧凑特征向量;
将紧凑特征向量分区到各自的分区组中,其中,所述各自的分区组对应于分配给所述紧凑特征向量的子索引ID。

【专利技术属性】
技术研发人员:路阳迪何文波阿米尔·纳巴契安
申请(专利权)人:华为技术加拿大有限公司
类型:发明
国别省市:加拿大;CA

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

1