CN113742288A - 用于数据索引的方法、电子设备和计算机程序产品 - Google Patents

用于数据索引的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN113742288A
CN113742288A CN202010479672.0A CN202010479672A CN113742288A CN 113742288 A CN113742288 A CN 113742288A CN 202010479672 A CN202010479672 A CN 202010479672A CN 113742288 A CN113742288 A CN 113742288A
Authority
CN
China
Prior art keywords
vectorized
data
representation
query
training
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
Application number
CN202010479672.0A
Other languages
English (en)
Inventor
陈强
于靖
吴鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202010479672.0A priority Critical patent/CN113742288A/zh
Priority to US16/916,693 priority patent/US11620269B2/en
Publication of CN113742288A publication Critical patent/CN113742288A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

本公开的实施例提供了一种用于数据索引的方法、电子设备和计算机程序产品。用于数据索引的方法包括获得用于存储的多个数据块。该方法还包括生成多个数据块的多个向量化表示,使多个数据块中相似性更高的数据块的向量化表示之间的差异更小。该方法还包括存储多个向量化表示以用于分别索引多个数据块。通过向量化表示作为数据块的索引,可以借助向量化表示来有效衡量数据块的相似性,从而提供了基于相似性执行数据块的模糊搜索的可能性。

Description

用于数据索引的方法、电子设备和计算机程序产品
技术领域
本公开的实施例总体上涉及存储系统,并且更特别地,涉及一种用于数据索引的方法、电子设备和计算机程序产品。
背景技术
在存储系统中,诸如在文件系统、备份系统等系统中,文件和数据被划分为具有固定长度或可变长度的数据块进行存储。为了支持快速随机访问和重复数据删除,通常会构建数据块对应的索引,通过索引来从所存储的大量数据块中查找和定位期望的数据块。索引的构建将影响到数据查询和访问的效率和对不同应用场景的适用性。
发明内容
本公开的实施例涉及一种用于数据索引的改进方案。
在本公开的第一方面,提供了一种用于数据索引的方法。该方法包括获得用于存储的多个数据块。该方法还包括生成多个数据块的多个向量化表示,使多个数据块中相似性更高的数据块的向量化表示之间的差异更小。该方法还包括存储多个向量化表示以用于分别索引多个数据块。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使电子设备执行动作。动作包括:获得用于存储的多个数据块;生成多个数据块的多个向量化表示,使多个数据块中相似性更高的数据块的向量化表示之间的差异更小;以及存储多个向量化表示以用于分别索引多个数据块。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括计算机可执行指令。计算机可执行指令在被执行时使设备执行动作。动作包括:获得用于存储的多个数据块;生成多个数据块的多个向量化表示,使多个数据块中相似性更高的数据块的向量化表示之间的差异更小;以及存储多个向量化表示以用于分别索引多个数据块。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了本公开的实施例可以在其中被实现的示例环境的框图;
图2示出了在图1的环境中的数据查询的示例;
图3示出了根据本公开的一些实施例的数据管理系统的框图;
图4示出了根据本公开的一些实施例的用于训练表示生成模型的系统的框图;
图5示出了根据本公开的另一些实施例的数据管理系统的框图;
图6示出了根据本公开的一些实施例的用于存储索引的数据结构的示意图;
图7示出了根据本公开的一些实施例的用于数据索引的过程的流程图;以及
图8示出了可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如本文中所使用的,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联或函数关系,从而在训练完成后可以针对给定的输入,利用这样的关联或函数关系生成对应的输出。模型的生成可以基于机器学习技术。深度学习是一种机器学习算法,通过使用多层处理单元来处理输入和提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本文中,“模型”也可以被称为“机器学习模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。
机器学习一般至少包括两个阶段,即训练阶段和使用阶段(也称为推理阶段)。在训练阶段,给定的模型可以使用大量的训练数据进行训练,不断迭代,直到模型能够从训练数据中获取一致的、与人类智慧所能够做出的推理类似的推理。通过训练,模型可以被认为能够从训练数据中学习从输入与输出之间的关联(也称为输入与输出之间的函数关系)。经训练的模型的参数值被确定。也就是说,模型可以被表示为一个函数,用于将输入映射到输出。在使用阶段,模型可以被用于基于训练得到的参数值,对实际的输入进行处理,确定对应的输出。
图1示出了本公开的实施例可以在其中被实现的示例性环境100的示意图。在图1的示例中,数据管理系统110被配置为控制和管理存储系统120,包括将数据存储到存储系统120,提供对数据的访问,以及其他数据管理操作。数据管理系统110可以被实现在各种计算设备/服务器上。存储系统120可以包括各种存储设备,以用于提供数据的存储空间。各种存储设备可以是集中在一个站点或者分布在不同的位置。
数据管理系统110可以基于各种存储技术来控制和管理存储系统120。通常,数据管理系统110将要存储的数据(诸如各种文件、数据条目等)划分为具有固定长度或可变长度的数据块进行存储。例如,如图所示,文件140被划分为数据块142-1、142-2、……、140-M存储在存储系统120中;文件150被划分为数据块152-1、152-2、……、150-N存储在存储系统120中;文件160被划分为数据块162-1、162-2、……、160-P存储在存储系统120中。注意,虽然在图中被集中示出,但每个文件的数据块可以被分布在存储系统120的任何存储位置。
为了支持对所存储的数据的快速随机访问和重复数据删除,数据管理系统110还会构建每个数据块对应的索引,并且将数据块的索引存储在索引库130中,以用于支持后续对数据块的访问。
由于数据在很多活动中或者对于很多组织而言是重要资产之一,在一些情况下,可能会要求按周期或由事件触发(例如数据更新),将数据多次备份到存储系统120中,形成同一数据的不同版本,以达到数据保护的目的。在这种情况下,存储系统120可以包括主存储系统和一个或多个备份存储系统。在一些数据访问的应用中,可能期望访问存储系统120中相同或相似数据。这例如可以通过向数据管理系统110提供查询数据170来实现。图2示出了数据查询的两个示例。
在图2的示例(A)中,假设存储系统120中存储的文件140、150、……、160是同一个文件的不同版本,例如版本V1、V2至VK。不同版本中的数据可能稍有变化。例如,假设这些文件用于存储一个账号的个人信息,版本V1的文件140中可能存储初始个人信息,诸如用户名、电话号码、联系地址等,版本V2的文件150相对于文件140可能新增加了电话号码的区号,而版本VK的文件160中可能联系地址发生更新。
在一些情况下,如果该账号被删除或者其他原因,可能期望将被备份多次的这些个人信息从存储系统120删除。这在一些公司/商业组织的存储系统中较为常见,主要是为了满足对于用户隐私保护的要求。例如欧盟的《通用数据保护条例》(GDPR)就要求提供网站提供个人信息删除的选项。为了实现对同一文件的不同版本的删除,数据管理系统110可以基于该文件的当前版本或者其他可获得的版本VN,例如文件170,来从存储系统120中搜索与文件170匹配的数据以便进行删除。
在图2的示例(B)中,对于同一个文件,除了被单独存储之外,某个文件还可能被聚合到更大的文件中被存储在存储系统120。例如文件150的版本V2可能与另一个文件220的版本VM被合并在聚合文件210中。因此,在数据搜索和删除时,还要求能够利用文件170,从聚合文件210中查找到匹配的文件150。
当然,图2仅示出了在数据访问过程中可能出现的一些示例场景。在其他场景下也可能存在其他形式的数据访问、搜索等操作。
应当理解,图1仅示意性地示出了环境100,而不对本公开的实施例进行任何限制。环境100中的各个系统/设备可以以任何其他方式布置。例如,虽然被示出为与存储系统120分离,但索引库130也可以被集成在存储系统120中,由存储系统120提供对数据块的索引的存储空间。
在常规存储系统中,通常利用哈希函数计算数据块的哈希值,来构建数据块的索引。这样的索引也称为哈希索引。数据块的哈希值例如可以按默克尔(Merkle)树结构进行组织,该Merkle树从数据块的直接哈希值开始逐层向上计算哈希值,直到获得单个哈希值作为根节点。
由哈希值构成的层级哈希可以实现非常高效的基于精确匹配的数据搜索。然而,哈希函数的一个重要属性是,数据块的微小变化(例甚至微小到若干比特位的变化)就会导致完全不同的哈希值。这样的属性有助于将各个数据块分布到存储系统的所有可用空间,从而防止从哈希值反推出原始数据块。然而,在从存储系统执行副本数据删除、数据搜索等要求部分匹配以实现模糊搜索的应用中,基于哈希值的索引将难以实现。
例如,如果用文件的某个版本来搜索存储系统中存储的所有版本,通过各个文件的数据块的哈希值,可能仅能够获得某些最新版本的文件。又或者,在将文件划分为多个数据块时,由于文件中的更改比较集中,可能可以通过哈希值匹配找到完全未修改的数据块,从而定位相似文件。然而,这个过程需要足够的幸运,如果文件中的更改比较分散,则无法找到相似文件,因此不适用于实际应用。此外,这个过程通常会导致较高的计算复杂度和时间开销。
理论上可以不通过哈希索引,而是直接利用原始数据,例如原始文件的数据块进行查询。例如,给定查询数据块,可以通过计算给定查询数据块的字节序列与所存储的数据块的字节序列之间的相似性来判断两个数据块是否相似。然而,这个过程显然非常低效。在实际应用中,也难以通过轮询存储系统中的所有数据块来查找相似数据块。
另一种解决模糊匹配的方案是利用局部敏感哈希(LSH)。然而,LSH具有局限性,因为LSH仅在一个给定“桶”(例如给定数据块集合)中给出粗略结果,也就是仅能实现对相似内容的粗略估计。LSH无法给出任意两个输入的数据块之间相似度的度量。LSH的结果也是在概率的基础上,因而无法保证在一次调用中就能够找到所有相似的数据块。
考虑到当前哈希索引的不足以及对于从存储系统中执行模糊搜索的需求等诸多原因,期望能够提供一种改进的数据索引的方案。
根据本公开的示例实施例,提出了一种用于数据索引的方案。根据该方案,生成数据块的向量化表示以用于索引对应的数据块。所生成的向量化表示能够用于区分不同数据块的相似性,因此在多个数据块之间,相似性更高的数据块的向量化表示之间的差异更小,而相似性更低的数据块的向量化表示之间的差异更大。在一些实施例中,可以利用基于神经网络的表示生成模型来生成数据块的向量化表示。
通过向量化表示作为数据块的索引,可以借助向量化表示来有效衡量数据块的相似性,从而提供了基于相似性执行数据块的模糊搜索的可能性。此外,基于向量化表示的索引还可以与当前基于哈希值的索引兼容,共同支持对存储系统的数据的更多数据访问和搜索应用。
下文将参考附图来更详细描述本公开的实施例。
图2示出了根据本公开的一些实施例的数据管理系统的框图。为便于说明,参考图1的环境100来描述根据本公开的一些实施例的数据管理系统,表示为数据管理系统110。在图2的示例中,数据管理系统110被配置为已经存储在或者要被存储到存储系统120中的数据,例如数据302,生成相应的索引,以便于后续对数据块的搜索和访问。
具体地,数据管理系统110包括数据切块模块310,其被配置为将数据302划分为多个数据块,例如数据块304-1、304-2、……、304-K(其中K是大于1的整数)。为便于讨论,数据块304-1、304-2、……、304-K在本文中有时被统称为或单独称为数据块304。
数据302可以包括一个或多个文件、数据条目等形式的数据。数据类型例如可以是各电子文档、图像、音频、视频等。本公开的实施例对于可存储和索引的数据的类型不做限制。
数据切块模块310可以被配置为按固定长度或者按可变长度来划分数据302的字节序列。也就是说,多个数据块304可以具有相同的大小或者具有不同大小。在一些实施例中,在构建根据本公开的实施例所提出的索引时,数据302可能已经被划分为相应的数据块304并且存储在存储系统120中。在一些实施例中,数据302可以是提供给数据管理系统110的新数据。
数据管理系统110还包括表示生成模块320,其被配置为生成多个数据块304-1、304-2、……、304-K各自的向量化表示322-1、322-2、……、322-K。为便于讨论,向量化表示322-1、322-2、……、322-K在本文中有时被统称为或单独称为向量化表示322。数据块的向量化表示可以被认为是数据块的一种短的表示,通常可以由一定维度的数值向量表示。数据块的向量化表示有时也被称为数据块的特征表示、特征向量或嵌入向量。
根据本公开的实施例,表示生成模块320被配置为能够以这样的方式生成向量化表示,即:使相似性更高的数据块的向量化表示之间的差异更小(或向量化表示之间的相似性更高),相似性更低的数据块的向量化表示之间的差异更大(或向量化表示之间的相似性更低)。在这里,数据块之间的相似性或差异指的是数据块的内容相似性或差异。也就是说,两个数据块的向量化表示之间的差异可以等于或接近于这些两个数据块之间的差异(例如,数据块的原始字节序列之间的差异)。由此,不同数据块之间的相似性可以由向量化表示之间的差异来衡量。
不同数据块304的向量化表示322可以被表示为相同维度的数值向量,使得不同向量化表示322之间具有可比性,以便能够支持通过计算向量之间的距离来确定向量化表示322之间的差异。向量化表示322之间的差异例如可以通过任何衡量向量之间的距离的方法来确定,例如可以基于欧式距离(即,L2距离)、余弦距离等。本公开的实施例对此不作限定。
在一些实施例中,为了使基于向量化表示来衡量数据块之间的相似性是具有优势的,在以例如二进制、十进制等相同数据表示方式来表示向量化表示322和数据块304时,向量化表示322的维度要小于数据块304的维度。在一些实施例中,如果数据块304具有可变大小,表示生成模块320被配置为能够将可变大小的输入(即“数据块”)映射到相同维度的输出(即“向量化表示”)。当然,本公开的实施例对于向量化表示322的具体维度并不做限制。具体维度的选择可以取决于实际应用。
作为一个示例,假设向量化表示322的维度是3。对于某个数据块304以及与其非常相似的数据块304,表示生成模块320为这两个数据块304确定的向量化表示322可以分别是[1.0,1.0,1.0]和[1.1,1.0,0.9],两个向量化表示322之间的相似性可以达到90%,指示对应的数据块304的相似性很高。对于向量化表示为[1.0,1.0,1.0]的同一个数据块304,表示生成模块320为与其不相似的数据块304确定的向量化表示322可以是[0.5,0.3,2.1]。这两个向量化表示322之间的相似性为20%,指示对应的两个数据块304的相似性很低。应当理解,这里所给出的具体维度和向量值仅是为了解释说明的目的,而不对本公开的实施例做出任何限制。
在一些实施例中,表示生成模块320可以被配置为利用深度学习技术来实现数据块304的向量化表示322的生成。例如,表示生成模块320可以被配置为利用基于神经网络的模型(也称为表示生成模型)来生成数据块304的向量化表示322。由表示生成模块320可利用的表示生成模型是已经过训练数据的训练后。下文将会描述表示生成模型的示例训练过程。
表示生成模型可以接收数据块304(固定大小或可变大小)作为模型输入,并且通过处理模型输入,来生成对应的向量化表示322,作为模型输出。表示生成模型可以被配置为任何形式的神经网络模型。表示生成模型例如可以是循环神经网络(RNN)模型、卷积神经网络(CNN)、它们的任何变形模型,或者其他类型的模型。表示生成模型的输入例如可以是数据块304的原始字节序列,通常这样的原始字节序列将会被存储在存储系统120中。
除基于神经网络的模型之外,表示生成模块320也可以利用任何其他能够生成数据的向量化表示的技术,本公开的实施例对此不做限制。
经由表示生成模块320生成的向量化表示322被提供给数据管理系统110中的存储执行模块330。存储执行模块330被配置为将多个数据块304各自的向量化表示322存储到索引库130中,以用于分别索引被存储在存储系统120中的多个数据块304。在一些实施例中,如果数据块304是新数据的数据块,存储执行模块330还可以被配置为将数据块304存储到存储系统120中。
通过建立索引方式,可以经由向量化表示322查找到被存储在存储系统120中对应的数据块304。由于不同的向量化表示322可以用于衡量不同数据块之间的相似度,因此这样的向量化表示322也可以被称为数据块304的“相似性索引”。
在实际应用中,数据管理系统110可以随着新数据写入到存储系统120,而不断为新数据的一个或多个数据块生成对应的向量化表示作为相似性索引。数据管理系统110也可以为存储系统120中已有的数据块建立向量化表示322,以作为相似性索引。
由向量化表示322充当的相似性索引可以有助于从存储系统120中快速、准确地定位相似的数据块,这将在下文中将参考图5详细描述。在此之前,首先描述如何训练表示生成模块以用于生成数据块的向量化表示。
图4示出了根据本公开的一些实施例的表示生成模型420的模型训练系统400的示意图。训练后的表示生成模型420可以被提供给数据管理系统110的表示生成模块320使用。模型训练系统400可以独立于数据管理系统110实现。也就是说,表示生成模型的训练和使用可以由不同的系统完成。例如,模型训练系统400可以被实现在另外的计算设备或服务器上。在其他实施例中,表示生成模型420的训练也可以被集成到数据管理系统110中,例如模型训练系统400的功能可以由数据管理系统110来实现。
由于以上提及对于数据块的向量化表示的要求,表示生成模型420的训练目标是要使为相似数据块生成的向量化表示之间的差异较小,而为不相似数据块生成的向量化表示之间的差异较大。在图4的示例实施例中,基于三元组损失的训练技术来训练表示生成模型420。
具体地,模型训练系统400包括训练三元组确定模块410,其被配置为构建用于训练表示生成模型420的训练样本,每个训练样本包括三个训练数据块,分别为第一训练数据块(被表示为“P”)、与第一训练数据块相似的第二训练数据块(被表示为“S”)以及与第一训练数据块不相似的第三训练数据块(被表示为“N”)。
也就是说,第一训练数据块P和第二训练数据块S构成了一对相似数据块,而第一训练数据块P和第三训练数据块S构成一对不相似数据块。数据块的相似或者不相似可以通过设置相似性阈值来区分。如果两个数据块的原始字节序列之间的相似性大于等于相似性阈值,则可以认为两个数据块相似,否则认为两个数据块不相似。相似性阈值例如可以被设置为50%,或者任何其他适当的值。
在一些实施例中,训练三元组确定模块410可以从数据块集合402中选择第一训练数据块P和第三训练数据块N。数据块集合402可以包括从各种语料库等数据源源获得的多个训练数据块。训练三元组确定模块410可以从数据块集合402随机选择第一训练数据块P和第三训练数据块N。由于数据块集合402中的训练数据块通常可能各不相同,这样的随机选择可以一定程度上确保第一训练数据块P和第三训练数据块N不相似。当然,训练三元组确定模块410也可以通过具体计算选择出的训练数据块之间的相似度,来确保所确定的第一训练数据块P和第三训练数据块N之间的差异较大。
在一些实施例中,训练三元组确定模块410可以通过修改第一训练数据块P的一部分而生成第二训练数据块S。这样的修改可以是随机修改第一训练数据块P的任意部分。可以通过控制对第一训练数据块P的修改量来确保第二训练数据块S和第一训练数据块P有一定差异,同时有较为相似的部分。通过修改第一训练数据块P来获得第二训练数据块S,可以更快速获得与第一训练数据块P相似的第二训练数据块S。当然,训练三元组确定模块410也可以通过搜索数据块集合402来确定与第一训练数据块P相似的第二训练数据块S。
训练三元组的构建是为了使得表示生成模型420的训练目标可以被描述为:使训练后的表示生成模型420能够为第一训练数据块P和第二训练数据块S生成的向量化表示之间的差异小于为第一训练数据块P和第三训练数据块N生成的向量化表示之间的差异。
在一些实施例中,可以通过基于三元组损失(triplet loss)来引导模型训练过程,从而满足上述训练目标。三元组损失可以被表示为基于以下差异的损失函数:第一训练数据块P的向量化表示f(P)与第二训练数据块S的f(S)之间的差异和第一训练数据块P的向量化表示f(P)与第三训练数据块N的f(N)之间的差异。表示生成模型420可以在当前参数值的基础上,分别确定每个训练数据块的向量化表示。
在一个示例中,三元组损失(表示为
Figure BDA0002516884930000121
)可以确定:
Figure BDA0002516884930000122
在以上公式(1)中,dist(X,Y)表示两个向量化表示X和Y之间的差异或相似度。由于向量化表示可以理解为多维数值向量,因此两个向量化表示之间的相似度或差异可以利用任何适合用于衡量向量差异的方法来确定,例如欧式距离或余弦距离。在一个示例中,如果两个向量化表示之间的差异基于欧式距离来确定,距离越大意味着两个向量化表示之间的差异越大,相似度越小。
在公式(1)中,α表示第一训练数据块P和第二训练数据块S的向量化表示之间的差异和第一训练数据块P与第三训练数据块N的向量化表示之间的差异之间的最小间隔。α是模型的超参数,可以根据经验或者其他可能的方式被配置为预定值。
如果训练目标基于三元组损失,从公式(1)可以看出,如果f(P)与f(S)之间的差异大于等于f(P)与f(N)之间的差异和间隔α之和,三元组损失
Figure BDA0002516884930000123
大于零,这意味着当前轮次的训练仍有损失。如果f(P)与f(S)之间的差异小于f(P)与f(N)之间的差异和间隔α之和,三元组损失
Figure BDA0002516884930000124
取值为零。
在训练过程中,模型训练系统400中的模型训练模块430基于损失值来确定对表示生成模型420的参数更新。模型训练模块430可以基于各种适当的模型训练方法,诸如随机梯度下降法及其各种变形算法,来确定对于模型的参数值更新。为了达到训练目标,模型训练模块430可能需要基于多个训练三元组来不断迭代训练表示生成模型420,使三元组损失在多次迭代中越来越小,直至达到收敛。训练过程中所使用的每个训练三元组均可以根据以上讨论的实施例来确定。模型训练的收敛条件例如可以是三元组损失最小,例如等于零或者等于其他可接受的值。
应当理解,以上描述的三元组损失还是仅是一个示例。在利用训练三元组来进行模型训练的训练方法中,还可以构造其他损失函数来达到训练目标。除利用训练三元组来进行模型训练之外,还可以利用其它方式来训练表示生成模型420。本公开的实施例在此方面不受限制。训练完成后,表示生成模型420的参数值被确定。表示生成模型420可以被提供用于生成数据块的向量化表示。
接下来将讨论如何利用由向量化表示322充当的相似性索引来从存储系统120中快速、准确地定位相似的数据块。图5示出了这样的用于执行数据块搜索的示例实施例。与图3相比,在图5中,数据管理系统110还包括的搜索执行模块540,用于实现基于向量化表示的数据块搜索。
具体地,数据管理系统110可以响应于查询来执行数据块搜索。数据管理系统110可以获得针对数据502的查询。数据502可以是一个文件或者其他形式的数据。数据502可以是新数据,或者是用户指定的被存储在存储系统120中的数据。在一些实施例中,数据切块模块310可以执行数据502的切块,例如按照可变长度或不可变长度来切分。具体切分方式与先前对用于存储的数据302的切分相同。数据502可以被划分为一个或多个数据块504-1、504-2、……、504-J(为便于讨论,统称为或单独称为数据块504),其中J可以是大于等于1的整数。这样的数据块504也可以被称为查询数据块504。
数据管理系统110的表示生成模块320被配置为生成查询数据块504的向量化表示(称为“查询向量化表示”),例如查询向量化表示522-1、522-2、……、522-J,统称为或单独称为查询向量化表示522。对查询数据块504的查询向量化表示522的生成与数据块304的向量化表示322类似。例如,表示生成模块320可以利用训练后的表示生成模型420来生成每个查询数据块504的查询向量化表示522。
查询向量化表示522被提供给搜索执行模块540,用于执行相似数据块的搜索。具体地,对于每个数据块504的查询向量化表示522,搜索执行模块540被配置为从索引库130存储的多个向量化表示322中查找与该查询向量化表示522之间的差异小于差异阈值的至少一个向量化表示322。在此具体差异阈值可以根据实际需要设置。
借助数据块的向量化表示(即,相似性索引),相似数据块的搜索可以被转换为相似向量化表示的搜索。相似向量化表示的搜索可以被认为是在向量空间中查找一个或多个最近邻的问题。这可以通过多种方式来实现。一种简单直接的方式就是轮询索引库130所存储的多个向量化表示304。相比于直接计算查询数据块504和所存储的数据块304之间的相似度,计算向量化表示的相似度所需要的计算量会更低,因为向量化表示的维度更小。
在一些实施例中,为了提高从多个向量化表示304中搜索查询向量化表示504的相似向量化表示的效率,在存储向量化表示322时,存储执行模块330可以确定适用于近邻搜索的数据结构用于存储向量化表示322。一种示例的数据结构是K维树(KD)树数据结构。这样的数据结果可以将搜索时间从基于直接比较查询所耗费的时间O(n)降低到O(long(n)),其中n是索引库130中要与查询向量化表示522进行比较的向量化表示的数目。
图6示出了KD树数据结构的示意性表示。如图6所示,KD树数据结构可以将多个向量化表示610、620、622、630、632和634进行排序并组织为树结构601。这些向量化表示还可以被映射到二维空间坐标602中。注意,为了图示方便,图6中以简单的二维数值向量来表示向量化表示。这个示例并不对本公开的实施例的范围进行限制。
如果将索引库130中的向量化表示322也按KD树数结构进行存储,搜索执行模块540在搜索与查询向量化表示522相似的向量化表示时,可以从树结构的根节点开始,向下递归地查找与查询向量化表示522差异较小的向量化表示322。本领域技术人员对于如何基于KD数结构来找到与相似向量化表示是清楚的,因此在此不进行详细描述。
当然,除KD树结构之外,向量化表示322还可以按其他适用于近邻搜索的数据结构进行存储,本公开的实施例在此不局限限制。
在搜索执行模块540从索引库130中查找到与查询向量化表示522差异较小(例如小于差异阈值)的一个或多个向量化表示322之后,可以基于这些向量化表示322确定它们各自所引导的数据块304。所确定的一个或多个数据块304可以用作对于当前查询的响应,或者作为响应的候选(例如还可以基于其他准则进一步筛选)。对于每个查询数据块504,均可以类似确定存储系统120中的相似数据块304。借助于由向量化表示充当的相似性索引,搜索执行模块540可以有效且全面定位存储系统130中的相似数据块。
以上提及了本公开的示例实施例的数据索引。这样的相似性索引可以与其他索引,例如用于数据块的精确匹配的哈希索引互相兼容,共同用于提供对存储系统120中数据块的访问和搜索。
应当理解,在本文中所使用的“模块”可以由软件、硬件、固件或者它们的任何组合来实现。一个或多个模块可以被实现在单个计算设备上、多个计算设备上,或者被实现在云计算环境中。本公开的实施例在此方面不受限制。
图7示出了根据本公开的一些实施例的用于数据索引的过程700的流程图。过程700可以被实现在图2的数据管理系统110处。为便于讨论,从数据管理系统110的角度来描述过程700。
在框710,数据管理系统110获得用于存储的多个数据块。在框720,数据管理系统110生成多个数据块的多个向量化表示,使多个数据块中相似性更高的数据块的向量化表示之间的差异更小。在框730,数据管理系统110存储多个向量化表示以用于分别索引多个数据块。
在一些实施例中,多个向量化表示由相同维度的数值向量表示。
在一些实施例中,在生成多个数据块的多个向量化表示时,数据管理系统110可以利用已训练的表示生成模型来生成多个数据块的多个向量化表示。这样的表示生成模型为神经网络模型。
在一些实施例中,表示生成模型基于训练三元组被训练,训练三元组包括第一训练数据块、与第一训练数据块相似的第二训练数据块以及与第一训练数据块不相似的第三训练数据块。在一些实施例中,表示生成模型的训练目标是使表示生成模型为第一训练数据块和第二训练数据块生成的向量化表示之间的差异小于为第一训练数据块和第三训练数据块生成的向量化表示之间的差异。
在一些实施例中,第一训练数据块和第三训练数据块从数据块集合中选择,并且第二训练数据块通过修改第一训练数据块的一部分而生成。
在一些实施例中,在存储多个向量化表示时,数据管理系统110可以确定适用于近邻搜索的数据结构;以及将多个向量化表示按所选择的数据结构进行存储。
在一些实施例中,所存储的向量化表示可以用于支持相似数据块的查询。具体地,数据管理系统110可以获得与查询数据块相关联的查询。数据管理系统110可以生成查询数据块的查询向量化表示,并且从已存储的多个向量化表示中查找与查询向量化表示之间的差异小于差异阈值的至少一个向量化表示。然后,数据管理系统110可以基于多个数据块中由至少一个向量化表示索引的至少一个数据块,来确定针对查询的响应。
在一些实施例中,在生成查询数据块的查询向量化表示,数据管理系统110可以利用已训练的表示生成模型来生成查询数据块的查询向量化表示,这里使用的表示生成模型也被用于生成多个数据块的多个向量化表示。
图8示意性示出能够被用来实施本公开的实施例的设备800的框图。应当理解,图8所示出的设备800仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图8所示出的设备800可以用于实现图7的过程700。图8所示出的设备800可以被实现为或者被包括于图2的数据管理系统110。
如图8中所示出的,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储设备(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储设备(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程700可由处理单元801来执行。例如,在一些实施例中,过程700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的过程700的一个或多个步骤。
本公开的实施例还可以提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,计算机可执行指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置、设备、计算机可读介质和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。

Claims (24)

1.一种用于数据索引的方法,包括:
获得用于存储的多个数据块;
生成所述多个数据块的多个向量化表示,使所述多个数据块中相似性更高的数据块的向量化表示之间的差异更小;以及
存储所述多个向量化表示以用于分别索引所述多个数据块。
2.根据权利要求1所述的方法,其中生成所述多个数据块的所述多个向量化表示包括:
利用已训练的表示生成模型来生成所述多个数据块的所述多个向量化表示,所述表示生成模型为神经网络模型。
3.根据权利要求2所述的方法,其中所述表示生成模型基于训练三元组被训练,所述训练三元组包括第一训练数据块、与所述第一训练数据块相似的第二训练数据块以及与所述第一训练数据块不相似的第三训练数据块,并且
其中所述表示生成模型的训练目标是使所述表示生成模型为所述第一训练数据块和所述第二训练数据块生成的向量化表示之间的差异小于为所述第一训练数据块和所述第三训练数据块生成的向量化表示之间的差异。
4.根据权利要求3所述的方法,其中所述第一训练数据块和所述第三训练数据块从数据块集合中选择,并且所述第二训练数据块通过修改所述第一训练数据块的一部分而生成。
5.根据权利要求1所述的方法,其中所述多个向量化表示由相同维度的数值向量表示。
6.根据权利要求1所述的方法,其中存储所述多个向量化表示包括:
确定适用于近邻搜索的数据结构;以及
将所述多个向量化表示按所选择的数据结构进行存储。
7.根据权利要求1所述的方法,还包括:
获得与查询数据块相关联的查询;
生成所述查询数据块的查询向量化表示;
从所述多个向量化表示查找与所述查询向量化表示之间的差异小于差异阈值的至少一个向量化表示;以及
基于所述多个数据块中由所述至少一个向量化表示索引的至少一个数据块,来确定针对所述查询的响应。
8.根据权利要求7所述的方法,其中生成所述查询数据块的所述查询向量化表示包括:
利用已训练的表示生成模型来生成所述查询数据块的所述查询向量化表示,所述表示生成模型被用于生成所述多个数据块的所述多个向量化表示。
9.一种电子设备,包括:
至少一个处理器;以及
存储有计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使所述电子设备执行动作,所述动作包括:
获得用于存储的多个数据块;
生成所述多个数据块的多个向量化表示,使所述多个数据块中相似性更高的数据块的向量化表示之间的差异更小;以及
存储所述多个向量化表示以用于分别索引所述多个数据块。
10.根据权利要求9所述的设备,其中生成所述多个数据块的所述多个向量化表示包括:
利用已训练的表示生成模型来生成所述多个数据块的所述多个向量化表示,所述表示生成模型为神经网络模型。
11.根据权利要求10所述的设备,其中所述表示生成模型基于训练三元组被训练,所述训练三元组包括第一训练数据块、与所述第一训练数据块相似的第二训练数据块以及与所述第一训练数据块不相似的第三训练数据块,并且
其中所述表示生成模型的训练目标是使所述表示生成模型为所述第一训练数据块和所述第二训练数据块生成的向量化表示之间的差异小于为所述第一训练数据块和所述第三训练数据块生成的向量化表示之间的差异。
12.根据权利要求11所述的设备,其中所述第一训练数据块和所述第三训练数据块从数据块集合中选择,并且所述第二训练数据块通过修改所述第一训练数据块的一部分而生成。
13.根据权利要求9所述的设备,其中所述多个向量化表示由相同维度的数值向量表示。
14.根据权利要求9所述的设备,其中存储所述多个向量化表示包括:
确定适用于近邻搜索的数据结构;以及
将所述多个向量化表示按所选择的数据结构进行存储。
15.根据权利要求9所述的设备,其中所述动作还包括:
获得与查询数据块相关联的查询;
生成所述查询数据块的查询向量化表示;
从所述多个向量化表示查找与所述查询向量化表示之间的差异小于差异阈值的至少一个向量化表示;以及
基于所述多个数据块中由所述至少一个向量化表示索引的至少一个数据块,来确定针对所述查询的响应。
16.根据权利要求15所述的设备,其中生成所述查询数据块的所述查询向量化表示包括:
利用已训练的表示生成模型来生成所述查询数据块的所述查询向量化表示,所述表示生成模型被用于生成所述多个数据块的所述多个向量化表示。
17.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使设备执行动作,所述动作包括:
获得用于存储的多个数据块;
生成所述多个数据块的多个向量化表示,使所述多个数据块中相似性更高的数据块的向量化表示之间的差异更小;以及
存储所述多个向量化表示以用于分别索引所述多个数据块。
18.根据权利要求17所述的计算机程序产品,其中生成所述多个数据块的所述多个向量化表示包括:
利用已训练的表示生成模型来生成所述多个数据块的所述多个向量化表示,所述表示生成模型为神经网络模型。
19.根据权利要求18所述的计算机程序产品,其中所述表示生成模型基于训练三元组被训练,所述训练三元组包括第一训练数据块、与所述第一训练数据块相似的第二训练数据块以及与所述第一训练数据块不相似的第三训练数据块,并且
其中所述表示生成模型的训练目标是使所述表示生成模型为所述第一训练数据块和所述第二训练数据块生成的向量化表示之间的差异小于为所述第一训练数据块和所述第三训练数据块生成的向量化表示之间的差异。
20.根据权利要求19所述的计算机程序产品,其中所述第一训练数据块和所述第三训练数据块从数据块集合中选择,并且所述第二训练数据块通过修改所述第一训练数据块的一部分而生成。
21.根据权利要求17所述的计算机程序产品,其中所述多个向量化表示由相同维度的数值向量表示。
22.根据权利要求17所述的计算机程序产品,其中存储所述多个向量化表示包括:
确定适用于近邻搜索的数据结构;以及
将所述多个向量化表示按所选择的数据结构进行存储。
23.根据权利要求17所述的计算机程序产品,其中所述动作还包括:
获得与查询数据块相关联的查询;
生成所述查询数据块的查询向量化表示;
从所述多个向量化表示查找与所述查询向量化表示之间的差异小于差异阈值的至少一个向量化表示;以及
基于所述多个数据块中由所述至少一个向量化表示索引的至少一个数据块,来确定针对所述查询的响应。
24.根据权利要求23所述的计算机程序产品,其中生成所述查询数据块的所述查询向量化表示包括:
利用已训练的表示生成模型来生成所述查询数据块的所述查询向量化表示,所述表示生成模型被用于生成所述多个数据块的所述多个向量化表示。
CN202010479672.0A 2020-05-29 2020-05-29 用于数据索引的方法、电子设备和计算机程序产品 Pending CN113742288A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010479672.0A CN113742288A (zh) 2020-05-29 2020-05-29 用于数据索引的方法、电子设备和计算机程序产品
US16/916,693 US11620269B2 (en) 2020-05-29 2020-06-30 Method, electronic device, and computer program product for data indexing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010479672.0A CN113742288A (zh) 2020-05-29 2020-05-29 用于数据索引的方法、电子设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN113742288A true CN113742288A (zh) 2021-12-03

Family

ID=78706335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010479672.0A Pending CN113742288A (zh) 2020-05-29 2020-05-29 用于数据索引的方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11620269B2 (zh)
CN (1) CN113742288A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123375A (zh) * 2014-07-28 2014-10-29 清华大学 数据搜索方法及系统
CN106934035A (zh) * 2017-03-14 2017-07-07 合肥工业大学 一种基于类与特征分布的多标签数据流中概念漂移检测方法
CN109815355A (zh) * 2019-01-28 2019-05-28 网易(杭州)网络有限公司 图像搜索方法及装置、存储介质、电子设备
CN109871379A (zh) * 2018-12-10 2019-06-11 宁波大学 一种基于数据块学习的在线哈希最近邻查询方法
CN110941754A (zh) * 2018-09-21 2020-03-31 微软技术许可有限责任公司 基于增强学习生成向量最近邻搜索策略

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
JP2870415B2 (ja) * 1994-08-22 1999-03-17 日本電気株式会社 領域分割方法および装置
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
WO1999025122A2 (en) * 1997-11-07 1999-05-20 Koninklijke Philips Electronics N.V. Coding a sequence of pictures
US6782395B2 (en) * 1999-12-03 2004-08-24 Canon Kabushiki Kaisha Method and devices for indexing and seeking digital images taking into account the definition of regions of interest
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US6993532B1 (en) * 2001-05-30 2006-01-31 Microsoft Corporation Auto playlist generator
US6985622B2 (en) * 2001-09-21 2006-01-10 Hewlett-Packard Development Company, L.P. System and method for color correcting electronically captured images by determining input media types using color correlation matrix
JP3960151B2 (ja) * 2002-07-09 2007-08-15 ソニー株式会社 類似時系列検出方法及び装置、並びにプログラム
JP2004094644A (ja) * 2002-08-30 2004-03-25 Masakazu Yagi 画像処理装置、画像処理方法、記憶媒体及びプログラム
DE10310023A1 (de) * 2003-02-28 2004-09-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Anordnung zur Videocodierung, wobei die Videocodierung Texturanalyse und Textursynthese umfasst, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
KR100510137B1 (ko) * 2003-04-30 2005-08-26 삼성전자주식회사 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
US7379627B2 (en) * 2003-10-20 2008-05-27 Microsoft Corporation Integrated solution to digital image similarity searching
US7822281B2 (en) * 2003-10-31 2010-10-26 Canon Kabushiki Kaisha Digital video compression
US7664173B2 (en) * 2004-06-07 2010-02-16 Nahava Inc. Method and apparatus for cached adaptive transforms for compressing data streams, computing similarity, and recognizing patterns
JP4189358B2 (ja) * 2004-06-17 2008-12-03 株式会社東芝 画像符号化装置及び方法
ATE361524T1 (de) * 2005-01-31 2007-05-15 Harman Becker Automotive Sys Erweiterung der bandbreite eines schmalbandigen sprachsignals
KR20070069615A (ko) * 2005-12-28 2007-07-03 삼성전자주식회사 움직임 추정장치 및 움직임 추정방법
JP4766030B2 (ja) * 2007-10-11 2011-09-07 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
US8086040B2 (en) * 2007-12-05 2011-12-27 Xerox Corporation Text representation method and apparatus
JP5063422B2 (ja) * 2008-03-14 2012-10-31 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム
JP5028337B2 (ja) * 2008-05-30 2012-09-19 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、及び記憶媒体
GB2469679B (en) * 2009-04-23 2012-05-02 Imagination Tech Ltd Object tracking using momentum and acceleration vectors in a motion estimation system
US9210436B2 (en) * 2010-01-11 2015-12-08 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video coding/decoding method, distributed video coding/decoding apparatus, and transcoding apparatus
US8620093B2 (en) * 2010-03-15 2013-12-31 The United States Of America As Represented By The Secretary Of The Army Method and system for image registration and change detection
US8699773B2 (en) * 2010-10-21 2014-04-15 Beth Israel Deaconess Medical Center Method for image reconstruction using low-dimensional-structure self-learning and thresholding
AU2011201024A1 (en) * 2011-03-08 2012-09-27 Canon Kabushiki Kaisha Shape parameterisation for editable document generation
US8774509B1 (en) * 2012-03-01 2014-07-08 Google Inc. Method and system for creating a two-dimensional representation of an image based upon local representations throughout the image structure
US9710882B2 (en) * 2013-06-25 2017-07-18 Iteris Inc. Data overlay for animated map weather display and method of rapidly loading animated raster data
US9964621B2 (en) * 2013-10-01 2018-05-08 Beth Israel Deaconess Medical Center, Inc. Methods and apparatus for reducing scan time of phase contrast MRI
US10565496B2 (en) * 2016-02-04 2020-02-18 Nec Corporation Distance metric learning with N-pair loss
US10268931B2 (en) * 2016-03-30 2019-04-23 The United States Of America As Represented By Secretary Of The Navy Spatiotemporal method for anomaly detection in dictionary learning and sparse signal recognition
WO2018094438A1 (de) * 2016-11-25 2018-05-31 Contextflow Gmbh Verfahren und system zum erstellen einer medizinischen bilddatenbank mittels eines konvolutionellen neuronalen netzwerk
KR20180087994A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 스테레오 매칭 방법 및 영상 처리 장치
US11263523B1 (en) * 2017-01-27 2022-03-01 Manzama, Inc. System and method for organizational health analysis
US10275820B2 (en) * 2017-01-31 2019-04-30 Walmart Apollo, Llc Systems and methods for utilizing a convolutional neural network architecture for visual product recommendations
WO2018163857A1 (ja) * 2017-03-10 2018-09-13 ソニー株式会社 画像処理装置および方法
US10318306B1 (en) * 2017-05-03 2019-06-11 Ambarella, Inc. Multidimensional vectors in a coprocessor
KR101834778B1 (ko) * 2017-05-30 2018-03-07 만도헬라일렉트로닉스(주) 교통 표지판 인식장치 및 방법
US10338902B1 (en) * 2017-06-26 2019-07-02 Unity IPR ApS Method and system for a compiler and decompiler
JP7168593B2 (ja) * 2017-07-03 2022-11-09 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
JP2019049873A (ja) * 2017-09-11 2019-03-28 株式会社Screenホールディングス 同義語辞書作成装置、同義語辞書作成プログラム及び同義語辞書作成方法
KR101909022B1 (ko) * 2017-09-12 2018-10-17 만도헬라일렉트로닉스(주) 카메라 자동 초점 조절장치 및 방법
US10055685B1 (en) * 2017-10-16 2018-08-21 Apprente, Inc. Machine learning architecture for lifelong learning
KR101882704B1 (ko) * 2017-12-18 2018-07-27 삼성전자주식회사 전자 장치 및 그 제어 방법
US11758175B2 (en) * 2018-06-30 2023-09-12 B1 Institute Of Image Technology, Inc Image encoding/decoding method and apparatus
US10491912B1 (en) * 2018-07-09 2019-11-26 Tencent America LLC Method and apparatus for video coding
US10798386B2 (en) * 2019-01-25 2020-10-06 At&T Intellectual Property I, L.P. Video compression with generative models
WO2020209839A1 (en) * 2019-04-09 2020-10-15 Hewlett-Packard Development Company, L.P. Image selection from a database
US11163956B1 (en) * 2019-05-23 2021-11-02 Intuit Inc. System and method for recognizing domain specific named entities using domain specific word embeddings
US11604934B2 (en) * 2019-05-29 2023-03-14 Nec Corporation Failure prediction using gradient-based sensor identification
US10855881B1 (en) * 2019-12-18 2020-12-01 Ricoh Company, Ltd. Vectorized multi-level halftoning using ternary logic
US11222167B2 (en) * 2019-12-19 2022-01-11 Adobe Inc. Generating structured text summaries of digital documents using interactive collaboration
EP4127967A4 (en) * 2020-03-23 2024-05-01 Sorcero Inc FEATURE ENGINEERING WITH QUESTION GENERATION
US11087511B1 (en) * 2020-04-24 2021-08-10 Adobe Inc. Automated vectorization of a raster image using a gradient mesh with arbitrary topology

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123375A (zh) * 2014-07-28 2014-10-29 清华大学 数据搜索方法及系统
CN106934035A (zh) * 2017-03-14 2017-07-07 合肥工业大学 一种基于类与特征分布的多标签数据流中概念漂移检测方法
CN110941754A (zh) * 2018-09-21 2020-03-31 微软技术许可有限责任公司 基于增强学习生成向量最近邻搜索策略
CN109871379A (zh) * 2018-12-10 2019-06-11 宁波大学 一种基于数据块学习的在线哈希最近邻查询方法
CN109815355A (zh) * 2019-01-28 2019-05-28 网易(杭州)网络有限公司 图像搜索方法及装置、存储介质、电子设备

Also Published As

Publication number Publication date
US20210374114A1 (en) 2021-12-02
US11620269B2 (en) 2023-04-04

Similar Documents

Publication Publication Date Title
Qi et al. Effectively learning spatial indices
Malkov et al. Approximate nearest neighbor algorithm based on navigable small world graphs
CN110168523B (zh) 改变监测跨图查询
US6446068B1 (en) System and method of finding near neighbors in large metric space databases
CN109684625B (zh) 实体处理方法、装置和存储介质
EP2742446B1 (en) A system and method to store video fingerprints on distributed nodes in cloud systems
Chen et al. Efficient metric indexing for similarity search and similarity joins
CN107895038B (zh) 一种链路预测关系推荐方法及装置
CN110569328A (zh) 实体链接方法、电子装置及计算机设备
Deshpande et al. Efficient reverse skyline retrieval with arbitrary non-metric similarity measures
CN108563715B (zh) 一种分布式的趋同行为挖掘方法与系统
Silva et al. MapReduce-based similarity join for metric spaces
Jo et al. A progressive kd tree for approximate k-nearest neighbors
AU2015203002A1 (en) Information processing apparatus, program, and information processing method
Tang et al. Efficient Processing of Hamming-Distance-Based Similarity-Search Queries Over MapReduce.
US11630854B2 (en) Segmenting users with sparse data utilizing hash partitions
Zhang et al. Fast eclat algorithms based on minwise hashing for large scale transactions
CN113918733A (zh) 一种获取目标知识图谱的数据处理系统
Epasto et al. Massively parallel and dynamic algorithms for minimum size clustering
JP2021131783A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
KR101467707B1 (ko) 지식 베이스의 개체 매칭 방법 및 이를 위한 장치
Peng et al. Efficient approximate nearest neighbor search in multi-dimensional databases
CN110334290B (zh) 一种基于MF-Octree的时空数据快速检索方法
Čech et al. Comparing MapReduce-based k-NN similarity joins on Hadoop for high-dimensional data
US11620269B2 (en) Method, electronic device, and computer program product for data indexing

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