多模态相似性搜索的统一框架的制作方法

文档序号:27015450发布日期:2021-10-23 00:09阅读:224来源:国知局
多模态相似性搜索的统一框架的制作方法

1.本公开的各个方面涉及计算硬件、软件和服务的领域,具体地涉及相似性搜索技术。


背景技术:

2.相似性搜索通常通过比较对象对之间的相似性来起作用。例如,可以基于集合中的每个对象与查询对象的比较在数据集中搜索最类似于查询对象的前k个对象。因此,可以基于给定对中的目标对象与查询对象的相似性来评估由查询对象和集合中的每个对象组成的对象的唯一对。可以基于可视相似性、概念相似性或任何其他模态来评估一个对象与另一对象的相似性,并且可以针对任何期望的模态来优化搜索流水线。
3.搜索流水线大体上包括特征提取阶段(或嵌入),随后是评估阶段。在第一阶段期间提取查询对象的特征,并将其作为输入供应给评估阶段。在评估阶段,将查询对象的特征与目标对象的特征进行比较,以找到最类似的对象。特征提取可以取决于所选优化向一个维度或另一维度被加权,就像特征评估可以被加权一样。例如,可以针对对象的可视特征优化与查询对象在视觉上最类似的对象的搜索,而可以针对概念(或文本)特征优化概念上类似的对象的搜索。
4.现存优化技术的缺点是,关注于一个模态或维度的相似性搜索往往会错过可能与其他模态类似的对象。另一缺点(至少相对于采用机器学习模型的搜索解决方案)是每种优化类型都需要单独的模型。即,针对不同模态被优化的两个模型将分别在不同的数据集上进行训练,以便产生期望的优化。因此,当前的优化缺乏对相似性方面的细粒度控制,并且相对于添加新的模态也缺乏可扩展性。这种约束使得搜索优化成为繁琐的工作,特别是相对于采用机器学习模型的那些优化而言。
5.机器学习模型可以在特征提取阶段和评估阶段中的一者或两者中的相似性搜索的上下文中被采用。在特征提取期间,可以将查询对象输入给产生该对象的嵌入的模型。然后,可以将嵌入传递给任何类型的搜索工具

无论是利用机器学习模型还是传统的基于规则的方法。搜索工具将查询对象的嵌入与目标数据集中的对象的嵌入进行比较,以标识并返回被认为是集合中的前k个最类似对象的对象。
6.一些解决方案使用在现存对象的图形(graph)(例如graphsage)上训练的模型来产生查询对象的嵌入。包括代表对象及其互连的节点和边的图形将查询对象作为输入,并产生对象的嵌入作为输出。然后可以将嵌入传递给搜索工具,以在现存对象的集合中找到其k个最近邻。通过选择强调一个模态或另一模态的训练数据,可以针对一个模态或另一模态对模型进行优化。不幸的是,如上面所讨论的,该技术针对每个优化都需要不同的模型,并且既不易于解释也不可扩展。
7.在简要示例中,可以查询现存图像集合以找到类似于查询图像的图像。为了搜索现存图像,利用图形来在节点嵌入上训练机器学习模型。该图形包括代表图像的节点和代表其连接的边。例如,图像可以被连接至集合中与给定图像类似的其他图像。猫的图像将与
猫的其他图像连接;狗的图像将与狗的其他图像连接;猫和狗的图像将与猫的图像和狗的图像连接等。
8.节点包括嵌入或特征向量,其对关于每个图像的信息进行编码。在图形上训练机器学习模型以生成新输入图像的嵌入:训练后的模型将查询图像作为输入,并产生图像的嵌入作为输出。然后,可以在数据集的相似性搜索中使用给定查询图像的嵌入,以找到与查询图像类似的那些图像。不幸的是,一旦模型已经被训练,其模态就无法改变,并且模型将始终根据其被训练的单个模态生成嵌入。


技术实现要素:

9.本文公开了一种用于相似性搜索的统一框架,其允许多个模态被联合建模,使得要在搜索中被强调的维度可以在每个搜索的基础上被选择。这种框架可以被扩展到任何数量的维度,并且对模态选择的控制可以是显式的、隐式的或其他方式。为给定搜索选择的模态影响以下一项或两项:查询对象的哪些边要输入给产生该对象的嵌入的模型;以及适用于嵌入的加权(weighting)。所得的嵌入故意将相似性搜索偏向期望的模态。
10.在各种实现中,搜索环境包括一个或多个计算硬件、软件和/或固件组件以支持增强型相似性搜索。在操作中,一个或多个组件标识相对于查询对象的相似性搜索的模态。该组件基于模态并且基于查询对象与图形中的邻近节点之间的连接来生成查询对象的嵌入。查询对象的嵌入为类似对象的搜索提供了基础。
11.在一些实现中,该图形用于训练机器学习模型,该机器学习模型产生查询对象的嵌入。由模型产生的嵌入可能会由于供应给模型的输入而偏向。在一些情况下,一个或多个组件选择性地标识哪些边要与模型输入中的查询对象包括在一起,以使所得的嵌入偏向多个可能模态中的一个可能模态。由模型输出的嵌入可以被提供给搜索组件以找到类似的对象。
12.在相同实现或其他实现中,从机器学习模型获得的输出可以被认为是查询对象的初始嵌入。初始嵌入可以与标签嵌入组合为被输入给相似性搜索的组合嵌入。初始嵌入和标签嵌入可以基于由模态指定的加权来组合,使得组合嵌入偏向所选的模态,从而影响搜索的最终结果。
13.提供本发明内容来以简化的形式介绍对下面在详细描述中进一步描述的概念的选择。可以理解的是,该概述不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
14.参照以下附图可以更好地理解本公开的许多方面。附图中的组件不一定按比例绘制,而是将重点放在清晰地说明本公开的原理上。而且,在附图中,相同的附图标记在多个视图中指明对应的零件。尽管结合这些附图描述了几个实施例,但是本公开不限于本文所公开的实施例。相反,其意图是覆盖所有备选方案、修改和等效物。
15.图1图示了实现中的搜索环境。
16.图2图示了实现中的搜索过程。
17.图3图示了实现中的嵌入过程。
18.图4a至图4b分别图示了实现和两个操作场景中的搜索环境。
19.图5图示了实现中的嵌入过程。
20.图6a至图6b分别图示了实现和两个操作场景中的搜索环境。
21.图7a至图7d图示了在实现中经由两个不同模态进行的示例性相似性搜索。
22.图8图示了适合于实现下面相对于附图讨论的各种操作环境、模块、架构、过程、场景和序列的计算系统。
具体实施方式
23.针对期望模态优化相似性搜索是在表示学习中要解决的众所周知的难题,特别是相对于可视搜索而言。仅针对可视相似性进行优化所产生的结果相对于概念相似性缺乏多样性,就像针对概念相似性进行优化所产生的结果缺乏可视相似性一样。另外,优化一个模态对另一模态的相似性搜索会限制或完全抑制结果的解释值和能力。添加新维度来呈现相似性搜索框架也非常困难。
24.本文所公开的统一框架提出了在将对象及其元数据(标签)包括在一起的多模态图形上的表示学习。可以以至少两个模态(例如可视的和概念的)对图形进行联合建模,使得所得的模型可以根据多个模态产生嵌入。另外,推理边连接提供了解释值,并且提供为相似性搜索(例如可视的或概念的)选择哪个维度的控制。基于诸如搜索查询等用户意图,该控制可以是隐式的,或者使用用户界面接受模态选择,该控制可以是显式的。选择性地标识到图形的连接提供了控制搜索模式的能力。
25.维度不必限于可视的或概念的,而是可扩展到由图形结构中的可用元数据或机器学习推理支持的任何维度。另外,统一框架适用于各种数据,包括图像、文档、视频、生物结构、化学结构等。
26.在本文公开的各种实现中,提出了一种图形,其包括具有不同模态的节点的组合以及它们之间的边以建立关联。示例包括对象、对象标签和基于相似性确定的连接。该图形将每个对象与其对应的标签以及给定对象的k个最近邻连接在一起。标签可以是对象的一部分(例如在图像中嵌入的文本),或者它们可以包括描述对象内容的短词序列。
27.基于语料库中的所有对象与查询对象的第一维度的相似性分数(排名最接近,因此是“最近的”),来确定对象的k个最近邻。示例维度是由独立的深度神经网络确定的图像的“可视”相似性,该深度神经网络经过训练和优化以表示高维空间中的图像的学习,其中可以通过距离度量(距离中最接近的更相似)来捕获相似性。图形中的邻近边的可视相似性度量只是框架如何可通用化到相同类型的节点之间或不同节点类型之间的任何相似性度量的一个示例。
28.一旦已经构建了多模态图形,就在图形上训练模型以将每个节点转换为嵌入(特征向量),其包含通过图形连接提取的一个维度的信息(例如可视的)和至少第二维度的信息(例如概念的)。在一些实现中,图形中的对象节点利用大小为512的resnet

18特征初始化。标签节点利用大小为512的标签嵌入被随机地初始化。该训练力图减小直接连接的节点嵌入之间的距离,并增大相距多于一跳的节点嵌入之间的距离。然后可以在联合表示学习的支持下部署训练后的模型。即,该模型可以用于对其进行训练的多个模态中的任何一个的相似性搜索。
29.该模型可以用于至少两个不同的目的。在一个目的中,该模型可以用于预测查询对象的标签。使用图像作为示例,给定查询图像基于最小距离被连接至图形中的前k个图像。然后将查询图像及其连接输入给模型,以生成查询节点的嵌入。然后可以基于查询节点嵌入和图形中的标签的标签嵌入之间的最小距离来找到前k个标签。
30.该模型也可以用于对象搜索和取回中。当没有标签可用于查询对象时,第一方法利用对象

对象连接。在这种情况下,查询对象被连接至图形中的前k个最接近对象,以生成新的查询嵌入。然后可以基于查询对象嵌入与图形中的对象嵌入的最小距离比较来找到相似的对象。
31.在变型中,除了对象

对象节点之外,还可以利用对象

标签节点。查询对象再次被连接至图形中的前k个对象,但也被连接至图形中的其对应标签节点。基于查询对象、其对象

对象连接及其对象

标签连接,产生新的查询嵌入。所得的查询嵌入可以用于找到图形中的前k个类似对象。在替代方案中,可以将对象

标签节点专门用于生成新的查询嵌入。
32.图1图示了用于多模式相似性搜索的统一框架的实现中的搜索环境100。搜索环境100包括模型训练组件101、嵌入组件111和评估组件121。模型训练组件101、嵌入组件111和评估组件121一起起作用以提供增强型相似性搜索能力。搜索环境100可以以硬件、软件和/或固件并且在一个或多个计算系统的上下文中实现,图8中的计算系统801是该一个或多个计算系统的代表。
33.广泛地说,搜索环境100将代表查询对象113的查询对象作为输入,并标识搜索结果125所代表的与查询对象113类似的多个对象。搜索环境110通过利用在图形107上训练的由模型110表示的联合模型产生由查询嵌入115表示的查询对象的嵌入来完成该任务。
34.更具体地,模型训练组件101在图形107上联合地训练模型110,图形107包括与现存对象、标签及其连接的数据集105相对应的节点和边。现存对象的示例包括但不限于图像、文档、视频、音频、分子和蛋白质。标签包括至少一些对象的文本描述或标记。例如,在图像集合中,标签可以标记单个图像中的情景或内容,而在文档集合中,标签可以描述该集合中的文档类型。
35.图形107中的节点对应于对象和标签,并且图形107中的边对应于其连接。彼此足够类似的对象对(object pair)通过边连接,而已标记的对象可以通过边被连接至标签节点。尽管一些对象可以被连接至一个或多个标签,但是给定对象根本不需要被连接至任何标签,尽管每个对象通过边被连接至至少一个其他对象。两个对象是否足够类似以被连接是基于经验证据的设计问题,并且可以认为超出本公开的范围。在一些情况下,图形107已经存在,并且其构造不必担心。除了节点和边之外,图形107还包括对每个对象和标签的信息进行编码的嵌入(特征向量)。现存嵌入也可以被先验地确定,并且与节点和边一起包括用于训练模型110的训练数据。
36.模型训练组件101在图形107及其与数据集105相关联的嵌入上联合地训练模型110。模型110被示出为在模型训练组件101中处于未训练状态(由无填充颜色表示),并且在嵌入组件111中处于其训练状态(由黑色填充表示)。模型110可以包括由神经元层组成的一个或多个人工神经网络。这些层以各种方式彼此连接,并且神经元响应于各种输入而激发。第一层处的输入是被分析的数据(例如图形107)。最终层处的输出表示神经网络已学习或识别的内容(例如嵌入)。在它们之间是执行附加处理的中间层或“隐藏”层。
37.每个神经元都具有基于其输入来告诉神经元激发(或不激发)的规则。对输入进行加权,并且可以基于反馈过程来改变权重。在图形数据的情况下,(多个)人工神经网络的第一层的输入是向量,这些向量填充了图形中代表现存数据集中的对象、标签和连接的节点和边的数字或符号描述。隐藏层的输入是第一层中的神经元的输出。在隐藏层内,来自一个层的输出是后续层的输入。人工神经网络的最后一层将最后一个隐藏层的输出作为输入,并且自身输出的值标识在信号通过神经元的各层时所学习的内容。
38.在神经网络的训练阶段期间,基于神经网络产生的结果与神经网络输入的正确嵌入之间的差异,改变与神经元相关联的权重。随着时间的流逝,并且在经过许多反馈周期后,权重被配置为使得神经网络可以准确地为新对象产生嵌入。权重和神经元的最终配置被认为是所审查主题(诸如对象及其嵌入)的模型。
39.嵌入组件111利用处于其训练状态的模型110来生成诸如查询对象113等查询对象的嵌入。嵌入组件111包括模态选择器112,该模态选择器112包括能够确定搜索模态的子组件,该子组件将考虑到嵌入组件111如何产生嵌入。模态选择器112可以显式地(例如从用户输入或其他这种指令)、隐式地或以其他方式确定模态。所得的查询嵌入115包括具有在其中编码的查询对象113的特性的数字和/或符号信息。
40.嵌入组件111将查询嵌入115传递给评估组件121,以用作搜索工具123的输入。搜索工具123通过将查询嵌入115与数据集中的对象的嵌入进行比较,来在数据集中搜索与查询对象113类似的对象。搜索工具123可以采用找到类似对象的机器学习方法、基于规则的方法、两者的组合或能够利用查询嵌入115的任何其他类型的搜索技术。目标数据集可以是数据集105及其嵌入,尽管有可能搜索除数据集105以外的数据集。评估组件121的输出包括由类似对象125表示的一个或多个对象,如所提及的,这些对象可以从数据集105得到。
41.为了实现上面讨论的增强型相似性搜索,提供搜索环境100的一个或多个计算系统在搜索环境100的组件的上下文中执行搜索过程200。图2所图示的搜索过程200可以在以下任何一个的上下文中以程序指令实现:硬件、软件应用、模块或包括模型训练组件101、嵌入组件111和评估组件121的其他这种编程元件。顺带参照图2中的步骤,程序指令指导(多个)其主机计算系统如针对搜索过程200所描述的那样进行操作。
42.在操作中,搜索过程200获得数据集中的现存对象的图形(步骤201)。该图形包括与数据集中的对象和标签相对应的节点和边、及其互连。然后,搜索过程200继续在图形和图形中的对象的嵌入上训练机器学习模型(步骤203)。嵌入可以被包括在图形中,尽管它们也可以被单独提供。
43.接下来,搜索过程200标识图形中的对象相对于查询对象的相似性搜索的模态(步骤205)。查询对象的示例包括图像、文档、蛋白质和可以为其创建嵌入的其他这种对象。这样,要搜索的数据集的示例包括图像储存库、文档储存库、蛋白质储存库等。可以从可能模态范围中选择模态,这些可能的模态关于它们如何影响为给定查询对象生成的嵌入而彼此不同。更具体地,至少一个可能模态将对查询对象到其所得嵌入中的标签的连接进行编码,其编码程度要大于其他模态,其中一些模态可能会完全忽略对象

标签连接。
44.例如,关于图像数据,模态可以至少从可视模态和概念模态中选择。可视模态将使嵌入偏向查询对象的可视特性或属性,而概念模态将使嵌入偏向查询对象的概念特性或属性。可视特性的示例包括但不限于光谱平均值、光谱最小值、光谱最大值等。概念属性的示
例与查询图像和数据集中的一个或多个标签之间的(多个)连接相关,因为标签描述了它们所连接到的图像的内容。
45.类似的概念适用于文档、蛋白质和其他可搜索对象。例如,与使用面向概念的模态时相比,还可以经由强调查询文档的可视属性的可视模态来搜索文档。当使用概念模态时,为查询文档产生的嵌入将使其文档

标签连接的编码比其他模态(尤其是完全忽略文档

标签连接的那些模态)所实现的编码更牢固。
46.可以了解,可视模态仅仅是各种可能模态的一个示例。其他示例包括基于内容的模态,其考虑到文档或其他这种对象中所包含的内容(词、短语等)的属性、或正被搜索的对象的分子或材料的化学组成的属性。无论如何,任何两个模态之间的签名差异在于,一个模态能够比另一模态更大程度地编码查询对象的对象

标签连接。
47.所标识的模态不必是非此即彼的选择。相反,所标识的模态可以驻留在连串模态内的任何位置。可以通过用户输入来确定模态,该用户输入包括从用户界面中的可能模态集合中选择模态。备选地,用户输入可以是两个模态之间的滑动标度上的位置(例如可以位于两个不同模态之间的任何位置的“滑块”)。
48.在模态被标识的情况下,搜索过程200继续基于所标识的模态和查询对象到图形的连接来生成查询对象的嵌入(步骤207)。到图形的连接可以包括对象

对象连接和对象

标签连接中的一者或两者。连接可以可选地包括查询对象、与除对象节点和标签节点之外的可以被包括在图形中的其他类型的节点之间的连接。
49.可以以多种方式使所得的嵌入偏向所选模态。在一些实现中,偏差是通过选择查询对象到图形的连接中相对于其他连接的某些连接来完成的。例如,可视搜索将选择对象

对象连接,并且将忽略或减少对象

标签连接。相比之下,概念搜索将比可视搜索包括更多的对象

标签连接。在滑动标度示例中,所得的模态将包括对象

标签连接,其程度越大,用户输入使滑块靠近纯概念搜索越近,而程度越小(如果有的话),滑块距离概念搜索越远。
50.在其他实现中,可以以不同的方式使嵌入偏向,从而为查询对象生成初始嵌入,然后将其与为关联标签生成的嵌入组合。初始嵌入与标签嵌入的组合导致查询对象的嵌入,并且可以基于所确定的模态对组合步骤进行加权。例如,加权可以强调或偏好概念模态的标签嵌入,同时不强调概念性较弱的模态(例如可视模态)的标签嵌入。在这种实施例中也可以使用滑动标度概念。在滑动标度实现中,用户输入使滑动靠向表示概念模态的一端越近,加权将对标签嵌入进行加权的程度更大。滑块与概念模态相距越远,在相对基础上给予标签嵌入的权重就越小。
51.搜索过程200获得查询对象的所得嵌入,并将其作为输入供应给相似性搜索功能(步骤209)。相似性搜索功能可以是例如k最近邻搜索,其将查询嵌入与目标数据集中的对象的嵌入进行比较。相似性搜索功能可以利用机器学习方法、基于规则的方法或其任何组合或变型,以基于其嵌入来搜索与查询对象类似的对象(步骤211)。搜索结果可以被返回到最初请求搜索的任何应用、服务或组件。
52.将搜索过程200应用于搜索环境100的元件,搜索环境100的组件如下执行。可以了解,尽管搜索过程200的步骤可以归因于搜索环境100中的特定组件,但是它们可以由图1所图示的一个或多个组件以及未示出的其他组件或搜索环境100外部的那些组件来执行。
53.在操作中,模型训练组件110获得数据集105中的现存对象的图形107。图形107包
括与数据集中的对象和标签相对应的节点和边、及其互连。然后,模型训练组件101继续在图形和图形中的对象的嵌入上训练模型110,并将处于其训练状态的模型110提供给嵌入组件111。
54.然后相对于查询对象113发起相似性搜索。模态选择器112确定搜索的模态,其通知嵌入组件111如何为查询对象113生成嵌入。可以显式地、隐式地或以其他方式通过可能的模态、范围或其他的集合确定模态。
55.嵌入组件111继续通过一个路径或可能的路径组合为查询对象生成嵌入。在一些场景中,嵌入组件111基于所确定的模态选择性地标识查询对象与图形中的其他对象之间的连接。然后将查询对象及其连接输入给模型110,以产生包括查询嵌入115的输出。在简要示例中,嵌入组件111可以根据一些模态包括对象

对象连接和对象

标签连接,同时在其他模态中排除或限制对象

标签连接。
56.在其他场景中,嵌入组件111可以根据任何模态为查询对象生成初始嵌入。如同上面刚刚讨论的场景一样,嵌入组件111将查询对象及其至少一些连接提供给模型110,以产生初始嵌入。然后,将初始嵌入与为与查询对象相关联的标签生成的标签嵌入进行组合。在该场景中,查询嵌入115是初始嵌入与标签嵌入的组合结果。标签嵌入可以是先验已知的,或者也可以由模型110生成。
57.在任一情况下,查询嵌入115都被提交给评估组件121。评估组件121将查询嵌入115作为输入提供给搜索功能123,该搜索功能123可以将查询嵌入和与数据集105相关联的嵌入进行比较,无论是使用机器学习方法、基于规则的方法或任何其他类型的搜索。鉴于搜索的模态,由搜索功能123输出的结果是被认为与查询对象113最类似的前k个对象。结果可以是例如类似于查询图像的图像、类似于查询文档的文档或类似于查询蛋白质的蛋白质。
58.图3图示了增强型相似性搜索的实现中的嵌入过程300。在一些实现中,可以在搜索过程200的上下文中采用嵌入过程300。另外,可以在硬件、软件应用、模块或包括搜索环境(诸如搜索环境100)的其他这种编程元件中的任何一个的上下文中以程序指令实现嵌入过程300。顺带参照图3,程序指令指导(多个)其主机计算系统如针对嵌入过程300所描述的那样进行操作。
59.在操作中,嵌入过程300获得、接收或以其他方式标识查询对象,诸如图像、文档、蛋白质等。查询对象包括对包括其他对象的数据集进行相似性搜索的主体。出于示例性目的,假设存在数据集中的现存对象的图形,并且该图形包括表示对象及其连接的边和节点。数据集还包括对象的嵌入。还假设,图形和嵌入已被用于训练能够为查询对象生成新嵌入的模型。
60.嵌入过程300继续标识图形中到查询对象的前k个最近邻(步骤301)。在一些实施例中,最近邻搜索可以包括基于神经网络对数据集中的对象的可视相似性搜索,该神经网络与针对嵌入而被训练的模型不同,其中对神经网络进行了训练和优化以用于高维空间中的学习表示。因此,可以在距离度量中捕获相似性,该距离度量可以被评估以找到最近邻。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。
61.嵌入过程300还标识与该对象相关联的一个或多个标签(步骤303)。标签的示例包括可能是对象的一部分的一个或多个词,诸如在图像中嵌入或在文档中包括的词、与图像
或文档相关联的元数据中的词、或者任何其他类型的描述或标识关于对象的词。嵌入过程300(或关联过程)还可以通过相对于对象应用文本识别算法或其他合适的工具来标识(多个)标签。备选地,对象可能已经被预处理或提前标记,使得其标签对于嵌入过程300是已知的。
62.接下来,嵌入过程300基于为相似性搜索标识的模态在查询对象和图形中的节点之间选择到图形的连接(步骤305)。嵌入过程300从查询对象与其在图形中的前k个最近邻之间的所有对象

对象连接、以及图形中的查询对象标签之间的类似于查询对象描述的对象

标签连接开始。然后,取决于为搜索选择的模态,一些对象

标签连接可能会从连接中被排除。例如,针对纯可视搜索,可以排除所有对象

标签连接,而针对高度概念化的搜索可以包括所有对象

标签连接。
63.嵌入过程300将查询对象及其所选的连接提交给模型,以获得查询对象的嵌入(步骤307)。将查询对象提交给模型可以包括将查询对象本身提供给模型的接口,然后该接口可以将查询对象变换为适合于模型的向量表示。类似地,所选的连接也可以经由接口来提交,使得模型和/或其环境可以将连接变换为向量表示。备选地,嵌入过程300或子过程可以将查询对象和所选的连接变换为适合于输入给模型的向量表示。
64.该模型将查询对象和所选的连接作为输入,并产生包括查询对象的嵌入(特征向量)的输出。因为已经在可视数据和概念数据(标签)上对模型进行了联合训练,所以所得的嵌入可能具有在其中编码的可视和概念信息,其程度取决于所选的搜索模态。更具可视效果的搜索将给予概念信息更小的权重,而更具概念性的搜索将给予概念信息更大的权重。这在上面的步骤307中完成,其中在由模态确定的程度上包括或排除对象

标签连接。
65.嵌入过程300将所生成的嵌入提交给相似性搜索组件,以获得包括数据集中与查询对象类似的对象的结果(步骤309)。结果被返回,并且可以包括找到的在可视基础、概念基础或其组合上与查询对象类似的一个或多个对象。
66.图4a至图4b图示了嵌入过程300到搜索环境100的元件的两个不同应用。可以了解,尽管嵌入过程300的步骤可以归因于搜索环境100中的特定组件,但是它们可以由图4所图示的一个或多个组件以及搜索环境100中未示出或未包括的其他组件执行。
67.图4a图示了示例性搜索场景,其中所选的模态包括可视模态,与图4b所图示并且在下面讨论的概念模态相反。在图4a中,模型训练组件110获得数据集105中的现存对象的图形107。如所提及的,图形107包括与数据集中的对象和标签相对应的节点和边及其互连。在该示例中,图形107中的标签节点由填充比其他节点深的标签节点表示,而对象节点由填充颜色相对较浅的对象节点表示。模型训练组件101在图形和图形中的对象的嵌入上训练模型110,使得可以在其训练状态嵌入组件111中提供模型110。
68.然后,相对于查询对象113发起相似性搜索。模态选择器112确定搜索的模态,其通知嵌入组件111如何为查询对象113生成嵌入。可以显式地、隐式地或以其他方式,通过可能的模态、范围或其他的集合确定模态。出于示例性目的,假设查询对象113是图像并且所确定的模态是可视模态。
69.嵌入组件111继续为查询对象生成嵌入,从标识图形中到查询对象的前k个最近邻开始。尽管可以利用其他搜索方法,但是最近邻搜索可以包括基于神经网络的数据集中的对象的可视相似性搜索。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的
任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。图形107中的前k个节点通过包围该节点的矩形突出显示,该矩形包括两个对象节点。嵌入组件111还标识与该示例中由标签节点135表示的对象相关联的一个或多个标签,该标签节点135也被矩形包围。
70.标签的示例包括可能是对象的一部分的一个或多个词,诸如被嵌入在图像中的或被包括在文档中的词、与图像或文档相关联的元数据中的词、或者任何其他类型的描述或标识关于对象的词。嵌入过程300(或关联过程)可以通过相对于对象应用文本识别算法或其他合适的工具来标识(多个)标签。备选地,对象可能已经被预处理或提前标记,使得其标签对于嵌入组件111是已知的。
71.接下来,嵌入组件111基于所确定的模态来选择性地标识查询对象与图形中的其他对象之间的连接。嵌入组件111根据可视模态确定将查询对象111连接至图形107中的其最近邻,不包括标签节点。换言之,在该示例中,可视模态对标签节点的重视程度比概念模态要小,如通过表达式tags
mv
<tags
mc
所表示的。因此,在图形中表示查询对象111的节点113通过边137被连接至图形中的两个对象节点,而标签节点135从连接组中排除。
72.然后,明显缺乏任何对象

标签连接的查询对象及其连接被输入到模型110,以产生包括查询嵌入115的输出。在模型110的内部,因为它同样已经在对象

对象节点和对象

标签节点上进行了联合训练,所以所得的嵌入可能已经在其中编码了一些对象

标签信息。然而,与输入包括一个或多个对象

标签连接相比,所得的嵌入中所编码的这种信息可能更少。
73.换句话说,相对于包括一个或多个这种连接时,当输入中不包括对象

标签连接时,查询对象113与图形107中的标签节点之间的对象

标签连接的影响较小。该语句必然意味着,当包括零个对象

标签连接时,对象

对象连接对所得嵌入的影响更大,而当输入中包括对象

标签连接时,其影响相对较小。重要的是,模型110能够对两种极端情况做出响应

当包括零个对象

标签连接时以及当包括许多对象

标签连接时

因为它已经在图形107上进行了联合训练。模型110也能够响应中间情况,其中输入数据中包括一个或多个对象

标签连接。这种灵活性的技术效果是,任何用户、上游应用、组件或服务都具有以下能力:在每次搜索的基础上确定使用哪个模态,而不必改变、调换或重新训练模型,也不必维护多个模型。
74.一旦生成,查询嵌入115就被提交给评估组件121。评估组件121将查询嵌入115作为输入提供给搜索功能123,该搜索功能123可以将查询嵌入和与数据集105相关联的嵌入进行比较,无论是使用机器学习方法、基于规则的方法或任何其他类型的搜索。鉴于搜索的模态,由搜索功能123输出的结果是被认为与查询对象113最类似的前k个对象。结果127可以是例如类似于查询图像的图像、类似于查询文档的文档、类似于查询视频的视频剪辑或者类似于查询蛋白质的蛋白质。
75.在图4b中,模型训练组件110再次获得数据集105中的现存对象的图形107。图形107中的标签节点由填充比其他节点深的标签节点表示,而对象节点由填充颜色相对较浅的对象节点表示。模型训练组件101在图形和图形中的对象的嵌入上训练模型110,使得可以在其训练状态嵌入组件111中提供模型110。
76.然后,相对于查询对象113发起相似性搜索。模态选择器112确定搜索的模态,其通
知嵌入组件111如何为查询对象113生成嵌入。可以显式地、隐式地或以其他方式通过可能的模态、范围或其他的集合确定模态。出于示例性目的,假设查询对象113是图像并且所确定的模态是概念模态,与图4a所图示的可视模态相反。
77.嵌入组件111继续为查询对象生成嵌入,从标识图形中到查询对象的前k个最近邻开始。尽管可以利用其他搜索方法,但是最近邻搜索可以包括基于神经网络的数据集中的对象的可视相似性搜索。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。图形107中的前k个节点通过包围该节点的矩形标识,该矩形包括两个对象节点。嵌入组件111还标识与该示例中由标签节点135表示的对象相关联的一个或多个标签,该标签节点135也被矩形包围。
78.标签的示例包括可能是对象的一部分的一个或多个词,诸如被嵌入在图像中的或被包括在文档中的词、与图像或文档相关联的元数据中的词、或者任何其他类型的描述或标识关于对象的词。嵌入过程300(或关联过程)可以通过相对于对象应用文本识别算法或其他合适的工具来标识(多个)标签。备选地,对象可能已经被预处理或提前标记,使得其标签对于嵌入组件111是已知的。
79.接下来,嵌入组件111基于所确定的模态选择性地标识查询对象与图形中的其他对象之间的连接。嵌入组件111根据概念模态确定将查询对象111连接至图形107中的其最近邻以及一个或多个标签节点。换言之,在该示例中,概念模态对标签节点的重视程度比可视模态要大,如通过表达式tags
mc
>tags
mv
所表示的。因此,表示图形中的查询对象111的节点113通过边139被连接至图形中的两个对象节点和一个标签节点。
80.然后,明显包括对象

标签连接的查询对象及其连接被输入到模型110,以产生包括查询嵌入116的输出。在模型110的内部,因为它已经同样地在对象

对象节点和对象

标签节点上进行了联合训练,所以所得的嵌入可能在其中编码了一些对象

标签信息,并且与输入排除所有对象

标签连接相比,在其中编码的这种信息可能更多。
81.换句话说,相对于不包括这种连接时,当输入中包括至少一个对象

标签连接时,查询对象113与图形107中的标签节点之间的对象

标签连接的影响更大。该语句必然意味着,当包括一个或多个对象

标签连接时,对象

标签连接对所得嵌入的影响更大,而当输入中包括较少(或没有)对象

标签连接时,其影响相对较小。如所提及的,模型110能够对两种极端情况以及中间情况做出响应,因为它已经在图形107上进行了联合训练。还如所提及的,这种灵活性的技术效果是,任何用户、上游应用、组件或服务都具有以下能力:在每次搜索的基础上确定使用哪个模态,而不必改变、调换或重新训练模型,也不必维护多个模型。
82.一旦生成,查询嵌入116就被提交给评估组件121。评估组件121将查询嵌入115作为输入提供给搜索功能123,该搜索功能123可以将查询嵌入和与数据集105相关联的嵌入进行比较,无论是使用机器学习方法、基于规则的方法或任何其他类型的搜索。鉴于搜索的模态,由搜索功能123输出的结果是被认为与查询对象113最类似的前k个对象。结果128可以是例如类似于查询图像的图像、类似于查询文档的文档、类似于查询视频的视频剪辑或者类似于查询蛋白质的蛋白质。
83.图5图示了增强型相似性搜索的另一实现中的嵌入过程500。在一些实现中,可以在搜索过程200的上下文中采用嵌入过程500。另外,可以在硬件、软件应用、模块或包括搜
索环境(诸如搜索环境100)的其他这种编程元件中的任何一个的上下文中以程序指令实现嵌入过程500。顺带参照图5,程序指令指导(多个)其主机计算系统如针对嵌入过程500所描述的那样进行操作。
84.在操作中,嵌入过程500获得、接收或以其他方式标识查询对象,诸如图像、文档、蛋白质等。查询对象包括对包括其他对象的数据集进行相似性搜索的主体。出于示例性目的,假设存在数据集中的现存对象的图形,并且该图形包括表示对象及其连接的边和节点。数据集还包括对象的嵌入。还假设,图形和嵌入已被用于训练能够为查询对象生成新嵌入的模型。
85.嵌入过程500继续标识图形中到查询对象的前k个最近邻(步骤501)。在一些实施例中,最近邻搜索可以包括基于神经网络对数据集中的对象的可视相似性搜索,该神经网络与针对嵌入而训练的模型不同,其中对神经网络进行了训练和优化以用于高维空间中的学习表示。因此,可以在距离度量中捕获相似性,该距离度量可以被评估为找到最近邻。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。
86.嵌入过程500还可以标识与该对象相关联的一个或多个标签。标签的示例包括可能是对象的一部分的一个或多个词,诸如被嵌入在图像中的或被包括在文档中的词、与图像或文档相关联的元数据中的词或任何其他类型的描述或标识关于对象的词。嵌入过程500(或关联过程)可以通过相对于对象应用文本识别算法或其他合适的工具来标识(多个)标签。备选地,对象可能已经被预处理或提前标记,使得其标签对于嵌入过程500是已知的。
87.接下来,嵌入过程500将查询对象及其所选的连接提交给模型,以获得查询对象的嵌入(步骤503)。将查询对象提交给模型可以包括将查询对象本身提供给模型的接口,然后该接口可以将查询对象变换为适合于模型的向量表示。类似地,所选的连接也可以经由接口来提交,使得模型和/或其环境可以将连接变换为向量表示。备选地,嵌入过程500或子过程可以将查询对象和所选的连接变换为适合于输入给模型的向量表示。
88.可以了解,连接可以仅包括对象

对象连接或对象

对象连接和对象

标签连接的混合。可以了解,嵌入过程500可以可选地包括基于所确定的模态来选择连接以进行相似性搜索,如上面相对于图3所描述的。例如,针对纯可视搜索,可以排除所有对象

标签连接,而针对概念搜索可以包括一个或多个对象

标签连接。
89.该模型将查询对象和所选的连接作为输入,并产生包括查询对象的初始嵌入(特征向量)的输出。因为已经在可视数据和概念数据(标签)上对模型进行了联合训练,所以初始嵌入可能具有在其中编码的可视信息和概念信息,其程度取决于输入中是否包括对象

标签连接。
90.嵌入过程500还获得与对象相关联的标签的标签嵌入(步骤505)。标签嵌入可以是预先已知的,或者嵌入过程500可以在运行时生成标签嵌入。嵌入过程500然后基于由所确定的用于搜索的模态指定的加权将初始嵌入与标签嵌入组合(步骤507)。因此,所得的查询嵌入是初始嵌入和标签嵌入的加权组合。例如,加权可以影响该组合以相对于可视模态将更多的标签嵌入编码为概念模态的查询嵌入。
91.最后,嵌入过程500将查询嵌入提交给相似性搜索组件,以获得包括数据集中与查询对象类似的对象的结果(步骤509)。结果被返回,并且可以包括找到的在可视基础、概念
基础或其组合上与查询对象类似的一个或多个对象。
92.图6a图示了示例性搜索场景中的嵌入过程300的应用,其中所选的模态包括可视模态,与图6b所图示并且在下面讨论的概念模态相反。在图6a中,模型训练组件110获得数据集105中的现存对象的图形107。图形107再次包括与数据集中的对象和标签相对应的节点和边及其互连。模型训练组件101在图形和图形中的对象的嵌入上训练模型110,使得可以在其训练状态嵌入组件111中提供模型110。
93.然后,相对于查询对象113发起相似性搜索。嵌入组件111继续为查询对象生成嵌入,从标识图形中到查询对象的前k个最近邻开始。尽管可以利用其他搜索方法,但是最近邻搜索可以包括基于神经网络的数据集中的对象的可视相似性搜索。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。嵌入组件111还标识与该对象相关联的一个或多个标签。标签的示例包括可能是对象的一部分的一个或多个词,诸如被嵌入在图像中的或被包括在文档中的词、与图像或文档相关联的元数据中的词或任何其他类型的描述或标识关于对象的词。
94.嵌入组件111标识查询对象与图形中的其他对象之间的连接。在一些实现中,嵌入组件111通过例如选择到所有前k个类似对象的所有连接而与所确定的模态无关地在相同的基础上标识连接。在其他实现中,嵌入组件111可以基于所确定的模态来选择性地选择连接,如上面相对于图3所讨论的。
95.然后,查询对象及其连接被输入到模型110,以产生包括初始嵌入141的输出。嵌入组件111基于模态选择器112为搜索确定的模态特定的加权将初始嵌入141与标签嵌入143组合。在可视搜索的情况下,与概念搜索的上下文中相比,模态给予模型110产生的初始嵌入141更大的权重,如通过表达式w(t)
v
<w(t)
c
所表示的。相反,与可视搜索相比,概念搜索给予标签嵌入更大的权重。因此,所得的组合嵌入145具有在其中编码的一定程度的概念信息,这取决于标签嵌入在组合中的加权强度。因此,与可视搜索相比,与查询对象相关联的标签的影响对于概念搜索来说更大。嵌入组件111能够响应两种极端情况(当对标签嵌入的加权为零时,以及对标签嵌入的加权最大时)以及对标签嵌入的加权量适中时的中间情况。这种灵活性的技术效果是,任何用户、上游应用、组件或服务都再次具有以下能力:在每次搜索的基础上确定使用哪个模态,而不必改变、调换或重新训练模型,也不必维护多个模型。
96.一旦生成,组合嵌入145就被提交给评估组件121。评估组件121将组合嵌入145作为输入提供给搜索功能123,该搜索功能123可以将组合嵌入和与数据集105相关联的嵌入进行比较,无论是使用机器学习方法、基于规则的方法或任何其他类型的搜索。鉴于搜索的模态,由搜索功能123输出的结果是被认为与查询对象113最类似的前k个对象。结果147可以是例如类似于查询图像的图像、类似于查询文档的文档、类似于查询视频的视频剪辑或者类似于查询蛋白质的蛋白质。
97.图6b图示了示例性搜索场景,其中所选的模态包括与可视模态相反的概念模态。在图6b中,模型训练组件110获得数据集105中的现存对象的图形107。图形107再次包括与数据集中的对象和标签相对应的节点和边及其互连。模型训练组件101在图形和图形中的对象的嵌入上训练模型110,使得可以在其训练状态嵌入组件111中提供模型110。
98.然后,相对于查询对象113发起相似性搜索。嵌入组件111继续为查询对象生成嵌入,从标识图形中到查询对象的前k个最近邻开始。尽管可以利用其他搜索方法,但是最近邻搜索可以包括基于神经网络的数据集中的对象的可视相似性搜索。尽管本文讨论了可视相似性,但是相反可以评估两个节点之间的任何类型的相似性,无论是相同类型的节点之间还是不同类型的节点之间。嵌入组件111还标识与该对象相关联的一个或多个标签。标签的示例包括可能是对象的一部分的一个或多个词,诸如被嵌入在图像中的或被包括在文档中的词、与图像或文档相关联的元数据中的词、或者任何其他类型的描述或标识关于对象的词。
99.嵌入组件111标识查询对象与图形中的其他对象之间的连接。在一些实现中,嵌入组件111通过例如选择到所有前k个类似对象的所有连接而与所确定的模态无关地在相同的基础上标识连接。在其他实现中,嵌入组件111可以基于所确定的模态来选择性地选择连接,如上面相对于图3所讨论的。
100.然后,查询对象及其连接被输入到模型110,以产生包括初始嵌入141的输出。嵌入组件111基于模态选择器112为搜索确定的模态特定的加权将初始嵌入141与标签嵌入143组合。在概念搜索的情况下,与可视搜索的上下文中相比,模态给予模型110产生的初始嵌入141更小的权重,如通过表达式w(t)
c
>w(t)
v
所表示的。换言之,与可视搜索相比,概念搜索给予标签嵌入更大的权重。因此,所得的组合嵌入146具有在其中编码的一定程度的概念信息,这取决于标签嵌入在组合中的加权强度。
101.一旦生成,组合嵌入146就被提交给评估组件121。评估组件121将组合嵌入146作为输入提供给搜索功能123,该搜索功能123可以将组合嵌入和与数据集105相关联的嵌入进行比较,无论是使用机器学习方法、基于规则的方法或任何其他类型的搜索。鉴于搜索的模态,由搜索功能123输出的结果是被认为与查询对象113最类似的前k个对象。结果148可以是例如类似于查询图像的图像、类似于查询文档的文档、类似于查询视频的视频剪辑或者类似于查询蛋白质的蛋白质。
102.图7a至图7d图示了本文提出的增强型相似性搜索的高度简化的示例实现中的操作场景700。操作场景700开始于对象、标签及其连接的现存图形710。现存图形710包括代表数据集中的图像的节点和描述图像队列的标签。例如,节点包括图像节点701、703、705、709、711、715、719和721。节点还包括标签节点707、713和717。
103.在预处理步骤中,某些节点对已经基于其相似性和/或适用性通过边被连接。例如,图像节点701通过边704被连接至图像节点703,因为两者都是一个或多个猫的图像。继而,图像节点701通过边708被连接至标签707,并且图像节点703也通过边706被连接至标签节点707,因为标签节点707包括描述“猫”。
104.标签节点707也被连接至图像节点705,因为它在图像中也包括猫。然而,图像节点705不被认为与要连接的图像节点701或图像节点703足够类似。图像节点705通过边714被连接至图像节点709,因为两者都包括烤面包机的图像。图像节点709被连接至标签722,因为标签722包括描述“烤面包机”,尽管图像节点705没有。另外,尽管图像节点711不连接至标签节点713,但是图像节点709通过边720连接至图像节点711。
105.狗和猫的图像节点715分别通过边718和边724被连接至图像节点703和标签节点717两者。标签节点717还分别通过边726和边728被连接至图像节点719和图像节点721。
106.一些图像节点可以彼此连接而没有连接至其他图像节点的原因可以包括通常在本公开的范围外的各种因素。然而,一个原因是,可以鉴于相对于彼此的不同判断或阈值来以不同方式构建图形。这导致在不同情况下关于哪些节点应该通过边连接的不同结论。因此,在该示例中,图像节点701可以被连接至图像节点703,而不被连接至图像节点705,即使两者都包括猫。同样地,相对于图像节点715、721和719,即使所有三个都包括狗的图像。
107.同样地,许多因素可能会影响为什么一些图像节点被连接至标签节点,而其他图像节点没有连接,或者为什么与看似类似的图像相关的图像节点未被连接至相同的标签。例如,图像节点711对应于烤面包机的图像,但未被连接至标签713。这可能是因为与图像节点711相对应的图像没有文本数据或其他这种信息以允许将其识别为烤面包机或连接至标签。
108.因此,可以了解,大多数图形不(并且无法)完美地表示数据集中的对象和标签之间的互连。相反,基于确定一个节点是否应该被连接至另一节点的各种因素和阈值,几乎无限数量的连接是可能的。这个现实正是为什么本文所公开的增强型相似性搜索提供了优于现有技术的原因

因为它允许图形中的连接在模型中被联合地表示,然后允许模型在一个模态或另一模态的方向上被选择性地利用。
109.继续操作场景700,在图7b中提供了查询图像731。查询图像731表面上是猫,并且相似性搜索的目标是基于所选的模态在现存图形710中找到前k个最类似的图像。第一步骤是基于独立的相似性搜索来标识现存图形710中到查询图像731的最近邻。搜索得到图像节点701和图像节点703,作为与查询图像713最类似的两个。
110.接下来,在图7c中,根据可视模态在查询图像731及其最近邻之间建立边。根据该示例中的可视模态,包括零个对象

标签连接。因此,当为查询图像生成嵌入时,查询图像731仅包括边732和边736。嵌入是由机器学习模型(例如模型110)以查询图像731及其边732和736作为输入来产生的。然后将所得的查询嵌入供应给评估组件,以相对于查询图像并且基于其嵌入来标识图形中最类似的图像。搜索结果750包括在可视基础上与查询图像731最类似的图像节点701和图像节点715。
111.相比之下,图7d图示了概念模态的示例。在图7d中,根据它们之间的可视相似性在查询图像731及其最近邻之间建立边。然而,根据该示例中的概念模态,还包括标签节点707的边734。因此,当为查询图像生成嵌入时,查询图像731包括边736和736以及边734。嵌入是由机器学习模型(例如模型110)以查询图像731及其边732、734和736作为输入来产生的。然后将所得的查询嵌入供应给评估组件,以相对于查询图像并且基于其嵌入来标识图形中最类似的图像。搜索结果755包括在可视基础上与查询图像731最类似的图像节点701和图像节点705。
112.值得注意的是,搜索结果755与搜索结果750不同,因为嵌入过程的输入不同。即,在图7c中,输入缺乏对象

标签边,而在图7d中,输入包括对象

标签边。在一个集合(搜索结果750)中,与图像节点715相关联的狗的图像可能比与图像节点705相关联的猫和烤面包机的图像在视觉上与查询图像731更类似。在另一集合(搜索结果755)中,猫和烤面包机的图像替换了狗的图像,这可能是由于其与标签节点707的连接所致。换言之,虽然狗和猫蜷缩在一起的图像(图像节点715)与猫和烤面包机的图像相比在视觉上看起来更类似于计算机视觉,但是猫和烤面包机的图像在概念上更类似。本文所公开的增强型相似性搜索和统一
框架允许用户探索这些不同的结果,而没有必须重新训练、维护或替换多个模型的负担。
113.图8图示了代表可以实现本文所公开的各个组件、模块、过程、程序和场景的任何系统或系统集合的计算系统801。计算系统801的示例包括但不限于服务器计算机、云计算平台和数据中心设备以及任何其他类型的物理或虚拟服务器机器、容器及其任何变型或组合。其他示例包括台式计算机、膝上型计算机、平板计算机、物联网(iot)设备、可穿戴设备及其任何其他物理或虚拟组合或变型。
114.计算系统801可以被实现为单个装置、系统或设备,或者可以以分布式方式被实现为多个装置、系统或设备。计算系统801包括但不限于处理系统802、存储系统803、软件805、通信接口系统807和用户界面系统809(可选的)。处理系统802与存储系统803、通信接口系统807和用户界面系统809操作地耦合。
115.处理系统802加载并执行来自存储系统803的软件805。软件805包括并实现搜索过程806,该搜索过程806代表相对于先前附图讨论的搜索过程。软件805还包括并实现嵌入过程816,该嵌入过程816代表相对于先前附图讨论的嵌入过程。当由处理系统802执行以提供增强型相似性搜索时,软件805指导处理系统802如本文针对至少在前述实现中讨论的各种过程、操作场景和序列而描述的那样操作。计算系统801可以可选地包括出于简洁目的而未讨论的附加设备、特征或功能性。
116.仍然参照图8,处理系统802可以包括微处理器和其他电路系统,其取回并执行来自存储系统803的软件805。处理系统802可以在单个处理设备内被实现,但也可以跨多个处理设备或在执行程序指令时进行协作的子系统分布。处理系统802的示例包括通用中央处理单元、图形处理单元、专用处理器和逻辑设备以及任何其他类型的处理设备、其组合或变型。
117.存储系统803可以包括由处理系统802可读并且能够存储软件805的任何计算机可读存储介质。存储系统803可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器和非虚拟存储器、磁盒、磁带、磁盘存储装置或其他磁性存储设备或者任何其他合适的存储介质。在任何情况下,计算机可读存储介质都不是传播信号。
118.除了计算机可读存储介质之外,在一些实现中,存储系统803还可以包括计算机可读通信介质,在其上可以在内部或外部传送软件805中的至少一些。存储系统803可以被实现为单个存储设备,但是还可以跨多个存储设备或相对于彼此位于同一位置或分布的子系统来实现。存储系统803可以包括能够与处理系统802或可能与其他系统通信的附加元件,诸如控制器。
119.软件805(包括搜索过程806和嵌入过程816)可以在程序指令中被实现,并且在其他功能中,当由处理系统802执行时,可以指导计算系统801如相对于本文图示的各种操作场景、序列和过程所描述的那样进行操作。例如,软件805可以包括用于实现本文描述的增强型相似性搜索的程序指令。
120.特别地,程序指令可以包括协作或以其他方式交互以执行本文描述的各种过程和操作场景的各种组件或模块。各种组件或模块可以被体现在编译或解译的指令中,或体现在指令的一些其他变型或组合中。各种组件或模块可以在单线程环境或多线程环境中以同
步或异步方式被串行或并行地执行,或者根据任何其他合适的执行范例、变型或其组合来执行。软件805可以包括附加的过程、程序或组件,诸如操作系统软件、虚拟化软件或其他应用软件。软件805还可以包括固件或由处理系统802可执行的某种其他形式的机器可读处理指令。
121.通常,当将软件805加载到处理系统802中并执行该软件805时,该软件805可以将总体上合适的装置、系统或设备(由计算系统801代表)从通用计算系统变换为被定制以提供增强型相似性搜索的专用计算系统。实际上,存储系统803上的编码软件805可以变换存储系统803的物理结构。物理结构的特定变换可以取决于该描述的不同实现中的各种因素。这种因素的示例可以包括但不限于:用于实现存储系统803的存储介质的技术、和计算机存储介质是否被表征为主要存储装置或辅助存储装置、以及其他因素。
122.例如,如果计算机可读存储介质被实现为基于半导体的存储器,则当程序指令被编码在其中时,软件805可以变换半导体存储器的物理状态,诸如通过变换晶体管、电容器或构成半导体存储器的其他分立电路元件的状态。相对于磁性或光学介质,可能会发生类似的变换。在不脱离本描述的范围的情况下,物理介质的其他变换也是可能的,其中提供前述示例仅是为了促进本讨论。
123.通信接口系统807可以包括允许通过通信网络(未示出)与其他计算系统(未示出)进行通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、rf电路系统、收发器和其他通信电路系统。连接和设备可以在通信介质上通信以与其他计算系统或系统网络交换通信,诸如金属、玻璃、空气或任何其他合适的通信介质。前述介质、连接和设备是众所周知的,并且此处无需过多讨论。
124.计算系统801与其他计算系统(未示出)之间的通信可以在一个或多个通信网络上并且根据各种通信协议、协议的组合或其变型发生。示例包括内联网、互联网、因特网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义网络、数据中心总线和背板或者任何其他类型的网络、网络组合或其变型。前述通信网络和协议是众所周知的,并且此处无需过多讨论。
125.所包括的描述和附图描绘了特定的实施例,以教导本领域技术人员如何制作和使用最佳模式。为了教导发明原理,已经简化或省略了一些常规方面。本领域技术人员将了解落入本公开的范围内的来自这些实施例的变型。本领域技术人员还将了解,可以以各种方式组合上述特征以形成多个实施例。因此,本发明不限于上述特定实施例或示例,而是仅由权利要求及其等同物限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1