通过使用自注意力操作和交叉注意力操作使潜在嵌入丰富来生成神经网络输出
1.相关申请的交叉引用
2.本技术要求于2021年2月5日提交并且通过引用整体地并入本文的美国临时专利申请序号63/146,161“generating neural network outputs by enriching latent embeddings using self-attention and cross-attention operations(通过使用自注意力操作和交叉注意力操作使潜在嵌入丰富来生成神经网络输出)”的申请日的权益。
技术领域
3.本说明书涉及使用机器学习模型来处理数据。
背景技术:
4.机器学习模型接收输入并且基于所接收到的输入生成输出,例如,预测输出。一些机器学习模型是参数模型并且基于所接收到的输入和模型的参数的值生成输出。
5.一些机器学习模型是采用模型的多个层来针对接收到的输入生成输出的深度模型。例如,深度神经网络是包括输出层和一个或多个隐藏层的深度机器学习模型,每个隐藏层对接收到的输入应用非线性变换以生成输出。
技术实现要素:
6.本说明书总体上描述一种在一个或多个定位中的一个或多个计算机上作为计算机程序实现的系统,该系统使用神经网络来生成表征实体的网络输出。
7.贯穿本说明书,嵌入指数值的有序合集,例如,数值的向量、矩阵或其他张量。
8.块指神经网络中的一个或多个神经网络层的组。
9.神经网络能够被配置成处理表示任何适当类型的实体的数据元素嵌入。例如,实体能够包括图像、音频波形、点云(例如,由激光雷达或雷达传感器生成)、蛋白质、词(例如,其形成一个或多个句子或段落)的序列、视频(例如,由视频帧的序列表示)或其组合。
10.神经网络能够被配置成生成表征实体的任何适当的神经网络输出。例如,神经网络输出可以是分类输出、回归输出、序列输出(即,其包括输出元素的序列)、分段输出或其组合。
11.根据第一方面,提供了一种由一个或多个数据处理装置执行以用于使用神经网络来生成表征实体的网络输出的方法。该方法包括:获得实体的作为数据元素嵌入集合的表示;获得潜在嵌入集合;以及使用神经网络来处理:(i)数据元素嵌入集合和(ii)潜在嵌入集合,以生成表征实体的网络输出。该神经网络包括神经网络块序列,所述神经网络块序列包括:(i)一个或多个交叉注意力块、(ii)一个或多个自注意力块和(iii)输出块。每个交叉注意力块执行包括以下项的操作:使用对数据元素嵌入集合中的数据元素嵌入中的一些或全部数据元素嵌入的注意力来更新潜在嵌入集合中的每个潜在嵌入。每个自注意力块执行包括以下项的操作:使用对潜在嵌入集合的注意力来更新潜在嵌入集合中的每个潜在嵌
入。输出块执行包括以下项的操作:在使用一个或多个交叉注意力块和一个或多个自注意力块来更新潜在嵌入集合之后,处理来自潜在嵌入集合的一个或多个潜在嵌入以生成表征实体的网络输出。
12.在一些实施方式中,潜在嵌入集合中的潜在嵌入的数目小于数据元素嵌入集合中的数据元素嵌入的数目。
13.在一些实施方式中,潜在嵌入集合中的潜在嵌入的数目是预定义的并且独立于数据元素嵌入集合中的数据元素嵌入的数目。
14.在一些实施方式中,神经网络包括多个交叉注意力块和多个自注意力块,并且交叉注意力块和自注意力块交错。
15.在一些实施方式中,由输出块处理来自潜在嵌入集合的一个或多个潜在嵌入以生成表征实体的网络输出包括:池化潜在嵌入集合中的潜在嵌入以生成池化潜在嵌入;以及使用一个或多个神经网络层来处理池化潜在嵌入以生成表征实体的网络输出。
16.在一些实施方式中,池化潜在嵌入集合中的潜在嵌入包括对潜在嵌入求平均。
17.在一些实施方式中,表征实体的网络输出包括输出元素的序列,并且其中,由输出块处理来自潜在嵌入集合的一个或多个潜在嵌入以生成表征实体的网络输出包括,在多个时间步中的每一个:处理:(i)来自潜在嵌入集合的一个或多个潜在嵌入和(ii)在任何先前时间步生成的输出元素,以生成该时间步处的输出元素。
18.在一些实施方式中,对于每个自注意力块,使用对潜在嵌入集合的注意力来更新潜在嵌入集合中的每个潜在嵌入包括:使用对潜在嵌入集合的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入。
19.在一些实施方式中,每个自注意力块执行包括以下项的操作:使用对潜在嵌入集合的注意力来重复地更新潜在嵌入集合中的每个潜在嵌入。
20.在一些实施方式中,对于每个交叉注意力块,使用对数据元素嵌入集合中的数据元素嵌入中的一些或全部数据元素嵌入的注意力来更新潜在嵌入集合中的每个潜在嵌入包括:使用对数据元素嵌入集合中的数据元素嵌入中的一些或全部数据元素嵌入的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入,包括:对于潜在嵌入集合中的每个潜在嵌入生成相应的查询嵌入,对于数据元素嵌入集合中的多个数据元素嵌入中的每一个生成相应的键嵌入和相应的值嵌入,以及基于以下各项使用对数据元素嵌入集合中的多个数据元素嵌入的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入:(i)针对潜在嵌入的查询嵌入以及(ii)针对数据元素嵌入的键和值嵌入。
21.在一些实施方式中,实体包括在空间结构中布置的多个单元,其中,每个单元与定义单元在空间结构中的相应位置的位置数据相关联,并且其中,获得实体的作为数据元素嵌入集合的表示包括:对于实体中的每个单元,基于单元的特征生成单元的特征嵌入;对于实体中的每个单元,基于单元在空间结构中的位置生成单元的位置嵌入;以及对于实体中的每个单元,基于以下各项生成单元的数据元素嵌入:(i)单元的特征嵌入和(ii)单元的位置嵌入。
22.在一些实施方式中,对于实体中的每个单元,基于以下各项生成单元的数据元素嵌入:(i)单元的特征嵌入和(ii)单元的位置嵌入,包括:连结单元的特征嵌入和单元的位置嵌入。
23.在一些实施方式中,空间结构是单元的一维(1d)、二维(2d)或三维(3d)阵列。
24.在一些实施方式中,对于实体中的每个单元,基于该单元在空间结构中的位置生成单元的位置嵌入包括:对于实体中的每个单元,生成具有在预定义目标频率范围上对数线性地隔开的频带的傅里叶特征位置编码。
25.在一些实施方式中,实体包括图像,并且图像中的每个像素定义实体中的相应单元。
26.在一些实施方式中,实体包括音频波形,并且音频波形中的每个音频样本定义实体中的相应单元。
27.在一些实施方式中,实体包括点云,并且点云中的每个点定义实体中的相应单元。
28.在一些实施方式中,实体包括蛋白质,并且蛋白质的氨基酸序列中的每个氨基酸定义实体中的相应单元。
29.在一些实施方式中,实体包括词序列,并且词序列中的每个词定义实体中的相应单元。
30.在一些实施方式中,神经网络的神经网络块序列进一步包括一个或多个选择块,其中,每个选择块执行包括以下项的操作:在使用一个或多个交叉注意力块、一个或多个自注意力块或两者来更新潜在嵌入集合之后,处理潜在嵌入集合和数据元素嵌入集合以生成数据元素嵌入集合中的每个数据元素嵌入的相应的选择分数;以及基于选择分数选择数据元素嵌入集合的真子集以由一个或多个指定的交叉注意力块使用;其中,每个指定的交叉注意力块使用对数据元素嵌入集合的所选择的真子集中的仅数据元素嵌入的注意力来更新潜在嵌入集合中的每个潜在嵌入。
31.在一些实施方式中,每个选择块包括:(i)参数选择神经网络和(ii)单元选择神经网络,并且其中对于每个选择块,处理潜在嵌入集合和数据元素嵌入集合以生成数据元素嵌入集合中的每个数据元素嵌入的相应的选择分数包括:使用参数选择神经网络来处理潜在嵌入,以生成定义单元选择神经网络的神经网络参数集合的值的网络输出;以及使用单元选择神经网络并且根据单元选择神经网络的神经网络参数集合的值来处理数据元素嵌入集合中的每个数据元素嵌入,以生成数据元素嵌入的选择分数。
32.在一些实施方式中,基于选择分数选择数据元素嵌入的真子集以由一个或多个指定的交叉注意力块使用包括:在数据元素嵌入集合中选择具有最高选择分数的预定数目的数据元素嵌入。
33.在一些实施方式中,该方法进一步包括:基于表征实体的网络输出确定任务性能测量;基于任务性能测量确定奖励;以及在取决于奖励的强化学习目标函数上训练选择块。
34.在一些实施方式中,其中任务性能测量包括交叉熵分类误差。
35.在一些实施方式中,其中强化学习目标函数包括平方贝尔曼误差。
36.根据第二方面,提供了一种或多种存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行根据任一前述方面所述的相应方法的操作。根据第三方面,提供了一种系统,该系统包括:一个或多个计算机;以及一个或多个存储设备,所述一个或多个存储设备通信地耦合到所述一个或多个计算机,其中,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时,使所述一个或多个计算机执行根据任一前述方面所述的相应方法的操作。
37.能够在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个。
38.为了生成表征被表示为嵌入(被称为数据元素嵌入)集的实体(例如,图像)的输出,本文描述的系统实例化潜在嵌入集合,并且使用神经网络来处理数据元素嵌入和潜在嵌入两者。系统能够实例化潜在嵌入的预定义数目,其独立于数据元素嵌入的数目。作为处理数据元素嵌入和潜在嵌入的部分,神经网络使用对数据元素嵌入集合的交叉注意力来更新潜在嵌入集合,从而用来自数据元素嵌入的信息使潜在嵌入丰富。此外,因为潜在嵌入的数目独立于数据元素嵌入的数目,所以交叉注意力操作的计算复杂度从数据元素嵌入的数目部分地解耦,并且甚至对于大数目的数据元素嵌入也保持可行。因此,系统使得能够使用注意力操作来高效地处理由大量数据元素嵌入(例如,其中每个数据元素嵌入表示图像中的单个像素)表示的复杂输入,同时减少计算资源(例如,存储器和计算能力)的消耗。
39.系统不是使用对数据元素嵌入的完整集合的交叉注意力来更新潜在嵌入,而是能够学习自适应地选择数据元素嵌入的真子集以供潜在嵌入注意。系统能够由此减少对数据元素嵌入执行交叉注意力操作所需要的计算资源的量,同时维持神经网络的可接受的任务性能(例如,预测准确度)。
40.本文描述的系统使用注意力操作来处理表示实体的数据元素嵌入集合,这些注意力操作不需要假定数据元素嵌入与固定空间布置相关联。例如,注意力操作不依靠假定数据元素嵌入与变成(例如,音频数据样本的)一维(1d)序列或(例如,图像像素的)二维(2d)网格的空间布置相关联。相反,当与生成准确的网络输出相关时,系统能够通过将位置编码标记(例如,连结)到数据元素嵌入、并且允许注意力操作学习利用有关数据元素嵌入的空间布置的信息来灵活地并入此信息。因此,系统能够用于处理与预定义空间布置不相关联的数据元素嵌入集合,例如,表示点云或蛋白质的数据元素集合,从而使系统变得更广泛适用。此灵活性也方便使用相同共享的神经网络架构来处理多模态数据,包括诸如视频和音频数据的高带宽数据,以执行多模态处理任务。由系统的实施方式提供的计算减少在这样的任务中可以是特别显著的。
41.在下面的附图和描述中阐述本说明书的主题的一个或多个实施例的细节。根据描述、附图和权利要求,主题的其他特征、方面和优点将变得清楚。
附图说明
42.图1是能够表征实体的示例神经网络系统的框图。
43.图2是更详细的示例神经网络系统的框图。
44.图3是能够表征实体的神经网络系统中包括的示例选择神经网络块的框图。
45.图4是用于使用神经网络系统来表征实体的示例过程的流程图。
46.图5a图示能够由神经网络系统表征的实体和单元的示例。
47.图5b图示能够由神经网络系统表征的实体和单元的另一示例。
48.图6a图示由能够表征实体的神经网络系统生成的示例注意力图。
49.图6b图示由能够表征实体的神经网络系统生成的注意力图的另一示例。
50.图7图示能够表征实体的神经网络系统的不同配置的示例性能。
51.图8a图示能够表征实体的神经网络系统的示例参数。
52.图8b图示能够表征实体的神经网络系统的参数的另一示例。
53.图9和图10图示使用神经网络系统实现的实验结果。
54.在各个附图中相同的附图标记和名称指示相同的元素。
具体实施方式
55.图1是能够生成表征实体的网络输出150的示例神经网络系统100的框图。神经网络系统100是在一个或多个位置中的一个或多个计算机上作为计算机程序实现的系统的示例,在其中实现下述系统、组件和技术。
56.贯穿本说明书,“实体”能够包括任何适当类型的数据。例如,实体能够包括图像、音频波形、点云(例如,由激光雷达或雷达传感器生成)、蛋白质、词(例如,其形成一个或多个句子或段落)的序列、视频(例如,由视频帧的序列表示)或任何其他适当类型的数据或其组合。
57.在一些实施方式中,实体能够包括在空间结构中布置的多个单元,例如,实体可以是图像,并且每个单元可以是图像中的像素。实体中的每个单元或数据元素能够具有关联的数据元素嵌入,其能够表征例如单元在空间结构中的位置和/或与空间结构中的单元相关联的特征。因此,实体可以具有空间结构,并且单元或数据元素可以具有该空间结构中的关联位置。空间结构可以对应于物理空间结构例如图像中的像素,或抽象空间结构例如音频样本的时间序列。在下面参考图5a和图5b更详细地描述示例实体和单元。
58.神经网络系统100能够被配置成处理:(i)实体的作为数据元素嵌入104的集合的表示和(ii)潜在嵌入102(例如,被随机地初始化)的集合,以生成表征实体的网络输出150。在下面参考图4更详细地描述用于生成表示实体的数据元素嵌入104的示例过程。网络输出150可以是例如分类输出、回归输出、序列输出(即,其包括输出元素的序列)、分段输出或任何其他适当的网络输出或其组合。
[0059]“嵌入”通常能够指数值的有序合集,例如,数值的向量、矩阵或其他张量。“数据元素嵌入”能够指与实体中的特定单元相关联的数据元素的嵌入。“潜在嵌入”能够指在潜在空间中预定义和/或被随机地初始化的嵌入。通常,数据元素嵌入和潜在嵌入能够具有任何适当的维数。在一些实施方式中,数据元素嵌入的维数能够不同于潜在嵌入的维数。
[0060]
如将在下面详细地描述的,在一些实施方式中,潜在嵌入102的数目能够小于数据元素嵌入104的数目。例如,如果实体是具有维度224
×
224个像素的图像,并且数据元素嵌入的数目是m=50176,则潜在嵌入的数目可以是例如n=512,使得n《《m。此外,在一些实施方式中,潜在嵌入102的数目可以是预定义的并且独立于数据元素嵌入104的数目。例如,能够使用例如正态分布来随机地初始化潜在嵌入102。作为特定示例,能够使用具有均值0、标准偏差0.02和截断界限[-2,2]的截断正态分布来初始化潜在嵌入。仅仅作为可以如何获得潜在嵌入102的另一示例,这些可以包括学习权重的集合,例如每个权重如稍后描述的那样定义“潜在数组”的元素。在一些实施方式中,潜在嵌入102的数目可以是神经网络系统100的超参数。
[0061]
如上所述,神经网络系统100能够被配置成处理表示实体的数据元素嵌入104和潜在嵌入102,以生成表征实体的网络输出150。更具体地,神经网络系统100能够包括具有一个或多个神经网络块的序列的神经网络160。“神经网络块”通常能够指神经网络中的一个
或多个神经网络层的组。神经网络块序列能够包括:(i)一个或多个交叉注意力块120、(ii)例如跟随交叉注意力块120的一个或多个自注意力块130和(iii)输出块140。在一个示例中,如图1所图示的,神经网络块序列能够包括第一交叉注意力块120,随后是第一自注意力块130,随后是第二交叉注意力块120,随后是第二自注意力块130,随后是输出块140。神经网络系统100能够使用神经网络块序列来处理数据元素嵌入104和潜在嵌入102,并且生成表征实体的网络输出150。
[0062]
注意力块(例如,交叉注意力块120和自注意力块130)能够被配置成执行注意力操作,例如,使用对第二嵌入集合的注意力来更新第一嵌入集合中的每个嵌入。一般而言,使用对第二嵌入集合的注意力来更新第一嵌入集合指通过对第二嵌入集合应用注意力机制来更新第一嵌入集合;存在能够被使用的许多不同可能的注意力机制。例如,对于第一嵌入集合中的每个目标嵌入,每个注意力块能够为第二嵌入集合中的每个嵌入生成相应的注意力权重,并且基于第二嵌入集合和所对应的注意力权重生成组合嵌入。作为特定示例,每个注意力块能够将组合嵌入生成为第二嵌入集合的加权和,例如,通过将第二嵌入集合中的每个嵌入与所对应的权重相乘并且对加权嵌入求和。每个注意力块然后能够使用组合嵌入来更新第一嵌入集合中的目标嵌入,例如,通过用组合嵌入替换目标嵌入、将组合嵌入添加到目标嵌入或以任何其他适当的方式。
[0063]
在一些实施方式中,注意力块能够执行查询-键-值(qkv)注意力操作,例如,使用查询(q)、键(k)和值(v)嵌入使用对第二嵌入集合的注意力来更新第一嵌入集合中的每个嵌入。特别地,每个注意力块能够包括:(i)查询子网络、(ii)键子网络和(iii)值子网络。对于第一嵌入集合中的每个目标嵌入,查询子网络能够被配置成处理第一嵌入集合中的目标嵌入,以对于目标嵌入生成相应的查询嵌入(q)。键子网络能够被配置成处理第二嵌入集合中的每个嵌入,以对于第二嵌入集合中的每个嵌入生成相应的键嵌入(k)。类似地,值子网络能够被配置成处理第二嵌入集合中的每个嵌入,以对于第二嵌入集合中的每个嵌入生成相应的值嵌入(v)。
[0064]
每个注意力块然后能够使用查询嵌入(q)、键嵌入(k)和值嵌入(v)通过第二嵌入集合来更新第一嵌入集合中的每个目标嵌入。具体地,每个注意力块能够对于第二嵌入集合中的每个嵌入生成注意力权重,例如,作为查询嵌入(q)与每个键嵌入(k)的内积(例如,点积)。基于第二嵌入集合和注意力权重,每个注意力块能够生成组合嵌入,例如,作为值嵌入(v)通过它们相应的注意力权重而加权的线性组合。最后,每个注意力块能够使用组合嵌入来更新第一嵌入集合中的目标嵌入,例如,通过用值嵌入(v)的加权和来替换第一嵌入集合中的目标嵌入。
[0065]
在一些实施方式中,第一嵌入集合和第二嵌入集合可以是不同的嵌入集合。在这样的情况下,能够将注意力操作(例如,qkv注意力操作)称为“交叉注意力”操作。交叉注意力操作能够由例如交叉注意力块120执行。例如,第一嵌入集合可以是潜在嵌入102的集合,第二嵌入集合可以是数据元素嵌入104,并且交叉注意力块120能够使用对数据元素嵌入104的集合中的一些或全部数据元素嵌入的交叉注意力来更新每个潜在嵌入。
[0066]
在一些实施方式中,第一嵌入集合和第二嵌入集合可以是相同的嵌入集合。在这样的情况下,能够将注意力操作(例如,qkv注意力操作)称为“自注意力”操作。自注意力操作能够由例如自注意力块130执行。例如,第一嵌入集合可以是潜在嵌入102的集合,第二嵌
入集合也可以是潜在嵌入集合,并且自注意力块130能够使用对潜在嵌入集合的自注意力来更新潜在嵌入102的集合中的每个潜在嵌入。在一些实施方式中,自注意力块130能够使用对潜在嵌入集合的自注意力来重复地更新潜在嵌入集合中的每个潜在嵌入。
[0067]
在一些实施方式中,神经网络160能够进一步包括一个或多个选择块180。选择块180能够从数据元素嵌入104的集合中选择数据元素嵌入的子集以供交叉注意力块120注意。换句话说,在一些实施方式中,交叉注意力块120能够使用对由选择块180选择的仅数据元素嵌入的子集的交叉注意力来更新潜在嵌入102的集合中的每个潜在嵌入。在下面参考图3更详细地描述示例选择块180。
[0068]
在一些实施方式中,交叉注意力块120和自注意力块130能够被配置成执行除了上述注意力操作之外还有的其他操作。例如,除了实现一个或多个注意力神经网络层之外,注意力块还能够包括以任何适当的数目(例如,2个层、5个层或10个层)并且以任何适当的配置(例如,作为层的线性序列)连接的任何其他神经网络层(例如,卷积层、全连接层、递归层、注意力层等)。
[0069]
在一些实施方式中,每个注意力块能够进一步包括一个或多个归一化神经网络层,所述一个或多个归一化神经网络层能够被配置成处理嵌入(例如,数据元素嵌入104和/或潜在嵌入102)并且更改嵌入的维数。例如,如果每个数据元素嵌入包括例如c个通道(分量),并且每个潜在嵌入包括例如d个通道,则一个或多个归一化层能够处理嵌入,以生成包括具有相同数目的通道(例如,c个通道)的数据元素嵌入和潜在嵌入的输出。
[0070]
在一些实施方式中,每个注意力块能够进一步包括一个或多个神经网络层,所述一个或多个神经网络层被配置成将到每个注意力块中的输入与来自每个相应的注意力块的输出组合并且使组合归一化。例如,所述一个或多个神经网络层能够被配置成将输入到自注意力块130中的潜在嵌入与从自注意力块130输出的潜在嵌入(例如,与已经由自注意力块130使用上述自注意力操作来更新的潜在嵌入)组合。
[0071]
除了交叉注意力块120和自注意力块130之外,神经网络160还能够进一步包括输出块140。输出块140能够处理来自注意力块序列中的最后注意力块(例如,来自图1中的自注意力块130)的输出,以生成表征实体的网络输出150。例如,输出块140能够池化(即,组合,例如,平均池化或最大池化)输出中包括的潜在嵌入以生成池化潜在嵌入,例如,全局摘要向量。输出块140能够使用输出块140中包括的一个或多个神经网络层来处理池化潜在嵌入以生成表征实体的网络输出150。例如,单个线性神经网络层能够将全局摘要向量投影到许多目标类或类别以提供分类输出。
[0072]
在一些实施方式中,表征实体的网络输出150能够具有输出元素的序列。在这样的情况下,在时间步序列中的每个时间步,输出块140能够处理来自注意力块序列中的最后注意力块的输出以及在任何先前时间步生成的输出元素,以生成该时间步的输出元素。
[0073]
如上所述,神经网络系统100能够使用对数据元素嵌入104的集合中的一些或全部数据元素嵌入的交叉注意力来更新潜在嵌入102的集合中的每个潜在嵌入。每次系统100执行交叉注意力操作时,系统100用来自数据元素嵌入104的信息使潜在嵌入102丰富。因为潜在嵌入102的数目(例如,n)独立于数据元素嵌入104的数目(例如,m),所以交叉注意力操作的计算复杂度从数据元素嵌入104的数目部分地解耦,并且甚至对于大数目的数据元素嵌入104也保持可行。因此,神经网络系统100能够处理大且复杂的输入,同时减少计算资源
(例如,存储器和计算能力)的消耗。
[0074]
此外,神经网络系统100能够使用对潜在嵌入集合的自注意力来更新用来自数据元素嵌入的信息而被丰富的潜在嵌入集合,例如,自注意力操作独立于数据元素嵌入的数目。例如,交叉注意力操作可能具有~mn的复杂度并且自注意力操作可能具有~n2的复杂度,其中n《《m。因为自注意力操作的计算复杂度从数据元素嵌入的数目解耦,所以神经网络系统100能够处理大输入并且重复地执行自注意力操作,而不显著地提高计算复杂度。因此,神经网络系统100能够展出高的预测准确度,而同时减少计算资源(例如,存储器和计算能力)的消耗。
[0075]
通常,神经网络160能够具有使得它能够执行其规定功能的任何适当的神经网络架构。例如,神经网络160以及交叉注意力块120、自注意力块130、输出块140和选择块180中的每一个能够具有以任何适当的数目(例如,2个层、5个层或10个层)并且以任何适当的配置(例如,作为层的线性序列)连接的任何适当的神经网络层(例如,卷积层、全连接层、递归层、注意力层等)。神经网络系统100也能够附加地包括被配置成执行任何适当的操作的任何数目的神经网络块。
[0076]
尽管在图1中交叉注意力块120和自注意力块130被示出为交错,但是能够以任何适当的配置布置注意力块。例如,系统100能够包括具有两个交叉注意力块120、随后是两个自注意力块130、随后是两个交叉注意力块120的注意力块序列。在另一示例中,系统100能够包括具有随后是多个自注意力块130的一个交叉注意力块120的注意力块序列。通常,系统100能够包括以任何适当的配置布置的任何数目的注意力块120、130和/或选择块180(例如,5、10、100等)。
[0077]
神经网络系统100能够进一步包括训练引擎,该训练引擎能够通过多次训练迭代在训练数据集合上训练神经网络160。训练数据能够包括训练示例的集合,其中每个训练示例指定:(i)训练输入,以及(ii)应该由神经网络160通过处理训练输入而生成的目标输出。
[0078]
在每次训练迭代时,训练引擎能够从训练数据中对批量训练示例进行采样,并且使用神经网络160中包括的神经网络块序列来处理由训练示例所指定的训练输入以生成对应的网络输出。特别地,对于每个训练输入,神经网络160使用序列中的第一注意力块(例如,图1中的交叉注意力块120)的当前模型参数值来处理训练输入,以从第一注意力块生成输出。神经网络160使用序列中的第二注意力块(例如,图1中的自注意力块130)的当前模型参数值来处理由序列中的第一注意力块生成的输出,以从序列中的第二注意力块生成输出。神经网络160使用输出块140的当前模型参数值来处理由序列中的最后注意力块(例如,图1中的自注意力块130)生成的输出,以生成与训练输入相对应的网络输出。
[0079]
训练引擎能够调整注意力块120、130和输出块140的模型参数值,并且在一些实施方式中调整用于潜在嵌入102的值,以优化测量以下各项之间的相似性的目标函数:(i)由神经网络160生成的网络输出,以及(ii)由训练示例指定的目标网络输出。目标函数可以是例如交叉熵目标函数、平方误差目标函数或任何其他适当的目标函数。
[0080]
训练引擎能够例如使用反向传播技术来确定目标函数的梯度。训练引擎能够使用梯度,例如使用任何适当的梯度下降优化算法例如adam来更新注意力块120、130和输出块140的模型参数值。训练引擎能够在神经网络160的训练期间未使用的验证数据集合上确定神经网络160的性能测量。
[0081]
如上所述,在一些实施方式中,神经网络系统100能够进一步包括一个或多个选择块180。训练引擎能够使用如在下面参考图3更详细地描述的强化学习技术来训练所述一个或多个选择块180。在训练之后,神经网络系统100能够用于执行机器学习任务,例如,以处理输入并且生成表征实体的输出。
[0082]
神经网络系统100能够被配置成执行任何适当的机器学习任务。随后是几个示例。
[0083]
在一些实施方式中,神经网络系统100能够处理表示图像的像素的数据元素嵌入104的集合以生成分类输出150,该分类输出150包括可能的对象类别(例如,车辆、行人、骑自行车者等)的集合中的每个对象类别的相应分数。对象类别的分数能够定义图像描绘属于该对象类别的对象的似然性。
[0084]
在一些实施方式中,系统100能够处理表示音频波形中的音频样本的数据元素嵌入104的集合以执行语音辨识,即,以生成定义与音频波形相对应的音素、字素、字符或词的序列的输出150。
[0085]
在一些实施方式中,系统100能够处理表示词序列中的词的数据元素嵌入104的集合以执行自然语言处理任务,例如,主题分类或概括。为了执行主题分类,系统100能够生成包括可能类别的类别(例如,体育、商业、科学等)的集合中的每个主题类别的相应分数的网络输出150。主题类别的分数能够定义词序列与该主题类别相关的似然性。为了执行概括,系统能够生成包括具有比输入词序列更短长度的输出词序列并且从输入词序列捕获重要或相关信息的网络输出150。
[0086]
在一些实施方式中,系统100能够执行神经机器翻译任务,例如,以处理表示一种语言的文本序列——例如,词、短语、字符或词片的序列——的数据元素嵌入104的集合,以生成可以是变成另一语言的文本序列的翻译的网络输出150,即,作为输入文本序列的翻译的另一语言的文本序列。作为特定示例,任务可以是多语言机器翻译任务,其中系统100被配置成在多种不同的源语言-目标语言对之间翻译。在此示例中,源语言文本可以用指示神经网络应该将源语言文本翻译成的目标语言的标识符来扩增。
[0087]
在一些实施方式中,系统100能够执行音频处理任务。例如,如果数据元素嵌入104表示口头话语,则由系统100生成的输出150可以是文本片的集合中的每一个的分数,每个分数表示该文本片是针对话语的正确转录的估计可能性。作为另一示例,如果数据元素嵌入104表示口头话语,则由系统100生成的输出150能够指示在话语中是否讲出了特定词或短语(“热词”)。作为另一示例,如果数据元素嵌入104表示口头话语,则由系统100生成的输出150能够识别讲出了该话语的自然语言。
[0088]
在一些实施方式中,系统100能够执行对表示某种自然语言的文本的数据元素嵌入104的集合进行操作的自然语言处理或理解任务,例如,蕴涵任务、释义任务、文本相似性任务、情感任务、句子完成任务、语法性任务等。
[0089]
在一些实施方式中,系统100能够执行文本到语音任务,其中数据元素嵌入104表示自然语言的文本、或者自然语言的文本的特征,并且网络输出150是频谱图、波形图、或定义用自然语言讲出的文本的音频的其他数据。
[0090]
在一些实施方式中,系统100能够执行健康预测任务,其中数据元素嵌入104表示从患者的电子健康记录数据导出的数据,并且输出150是与患者的将来健康相关的预测,例如,应该被开药方给患者的预测治疗、患者将发生不良健康事件的似然性或针对患者的预
测诊断。
[0091]
在一些实施方式中,系统100能够执行文本生成任务,其中数据元素嵌入104表示文本序列,并且输出150是另一文本序列,例如,输入文本序列的完成、对输入序列中提出的问题的响应、或关于由第一文本序列指定的主题的文本序列。作为另一示例,数据元素嵌入104能够表示除文本以外还有的数据,例如图像,并且输出序列150可以是描述由数据元素嵌入104表示的数据的文本。
[0092]
在一些实施方式中,系统100能够执行图像生成任务,其中数据元素嵌入104表示调节输入,并且输出150是图像的像素的强度值输入的序列。
[0093]
在一些实施方式中,系统100能够执行代理控制任务,其中数据元素嵌入104表示表征环境的状态的一个或多个观察结果或其他数据的序列,并且输出150定义要由代理响应于序列中的最新数据而执行的动作。代理可以是例如真实世界或模拟机器人、用于工业设施的控制系统、或控制不同种类的代理的控制系统。
[0094]
在一些实施方式中,系统100能够执行基因组学任务,其中数据元素嵌入104表示dna序列或其他分子序列的片段,并且输出150是用于例如通过在dna序列片段的数据集合上利用无监督学习技术在下游任务中使用的片段的嵌入或用于下游任务的输出。下游任务的示例包括启动子位点预测、甲基化分析、预测非编码变体的功能影响等。
[0095]
在一些实施方式中,系统100能够执行蛋白质建模任务,例如,其中数据元素嵌入104表示蛋白质,并且网络输出150表征蛋白质。例如,网络输出150能够表征蛋白质的预测稳定性或蛋白质的预测结构。
[0096]
在一些实施方式中,系统100能够执行点云处理任务,例如,其中数据元素嵌入104表示点云(例如,由激光雷达或雷达传感器生成),并且网络输出150表征例如由点云表示的对象的类型。
[0097]
在一些实施方式中,系统100能够执行多个单独的机器学习任务的组合,即,系统100被配置成执行多个不同单独的机器学习任务,例如,以上提及的两个或更多个机器学习任务。例如,系统100能够被配置成执行多个单独的自然语言理解任务,其中由神经网络处理的数据元素嵌入104包括要对数据元素嵌入执行的单独的自然语言理解任务的标识符。
[0098]
在下面参考图2更详细地描述神经网络系统100。
[0099]
图2是更详细的示例神经网络系统200(例如,图1中的神经网络系统100)的框图。神经网络系统200是在一个或多个位置中的一个或多个计算机上作为计算机程序实现的系统的示例,在其中实现下述系统、组件和技术。
[0100]
神经网络系统200能够包括神经网络块序列,例如,一个或多个注意力块、输出块和可选地包括一个或多个选择块。在图2中图示了特定示例,其中神经网络系统200包括第一交叉注意力块220a,随后是第一自注意力块230a,随后是第二交叉注意力块220b,随后是第二自注意力块230b,随后是输出块240。
[0101]
如以上参考图1描述的,神经网络系统200能够被配置成处理表示实体(例如,图像)的数据元素嵌入204的集合和潜在嵌入202(例如,被随机地初始化)的集合以生成表征实体的网络输出。数据元素嵌入204(例如,“字节数组”)的集合能够具有维度m
×
c,其中m是数据元素嵌入的数目,并且c是每个数据元素嵌入的通道的数目。例如,在实体包括图像的情况下,m可以是图像中的像素的数目并且c是每像素的通道的数目。潜在嵌入202(例如,“潜在数组”)的集合能够具有维度n
×
d,其中n是潜在嵌入的数目,并且d是每个潜在嵌入的通道的数目。在一些实施方式中,n是预定义的并且独立于m。在一些实施方式中,n《《m。在一些实施方式中,n和d是能够根据可用计算资源来选取的超参数。
[0102]
每个注意力块能够被配置成使用对第二嵌入集合中的一些或全部嵌入的注意力来更新第一嵌入集合中的每个嵌入。具体地,每个交叉注意力块220a、220b能够被配置成通过使用对数据元素嵌入204的集合中的一些或全部数据元素嵌入的交叉注意力来更新潜在嵌入202的集合中的每个潜在嵌入来生成交叉注意力输出206。类似地,每个自注意力块230a、230b能够被配置成通过使用对潜在嵌入202的集合的自注意力来更新潜在嵌入集合中的每个潜在嵌入来生成自注意力输出208。
[0103]
如以上参考图1描述的,能够将交叉注意力操作和自注意力操作实现为查询-键-值(qkv)注意力。例如,每个注意力块能够使用查询子网络来生成查询嵌入(“q”),使用键子网络来生成键嵌入(“k”),并且使用值子网络来生成值嵌入(“v”)。交叉注意力块220a、220b和自注意力块230a、230b分别能够使用查询、键和值嵌入来执行交叉注意力操作和自注意力操作。
[0104]
输出块240能够接收来自序列中的最后注意力块的输出(例如,来自自注意力块230b的自注意力输出208),并且处理它以生成表征实体的网络输出。具体地,输出块240能够包括被配置成池化潜在嵌入以生成池化潜在嵌入的一个或多个神经网络层(例如,图2中的“平均”)。输出块240能够使用一个或多个附加神经网络层来处理池化潜在嵌入以生成表征实体的输出。
[0105]
如以上参考图1描述的,注意力块220、230和输出块240能够各自具有能够由训练引擎训练的模型参数的相应集合。在一些实施方式中,神经网络系统200能够在不同的神经网络块之间共享模型参数值。例如,系统200能够在第一交叉注意力块220a与第二交叉注意力块220b之间共享模型参数值。类似地,系统200能够在第一自注意力块230a与第二自注意力块230b之间共享模型参数值。在一些实施方式中,系统200能够制止在第一交叉注意力块220a与系统200中的任何其他神经网络块之间共享模型参数值。
[0106]
在不同的神经网络块之间共享模型参数值能够例如通过降低过拟合的似然性并且在一些情况下减少系统200的模型参数的总数,来改进训练后的神经网络系统200的性能。结果,系统200可能需要更少的训练数据、较少的训练迭代或两者,以达到性能(例如,预测准确度)的阈值水平。
[0107]
如上所述,在一些实施方式中,神经网络系统200能够附加地包括一个或多个选择块(例如,图1中的选择块180)。每个选择块能够被配置成从数据元素嵌入204的集合中选择数据元素嵌入的子集以供一些或全部交叉注意力块(例如,块220a、220b)注意。在这样的情况下,交叉注意力块能够使用对由选择块选择的仅数据元素嵌入的子集的交叉注意力来更新潜在嵌入202的集合中的每个潜在嵌入。
[0108]
作为特定示例,在一些实施方式中,实体可以是在224
×
224像素图像分辨率下每秒具有24个帧的1秒长视频。在这样的情况下,数据元素嵌入的数目可能极其大,例如,~120万。如果期望减少数据元素嵌入的数目,则系统能够对在空间和/或时间之上延伸的视频补片的嵌入进行子采样或生成。在一些实施方式中,系统200能够使用选择块来从~120万个数据元素嵌入中自适应地选择数据元素嵌入的子集以供交叉注意力块注意。在下面更
详细地描述示例选择块。
[0109]
图3是用于生成表征实体的网络输出的神经网络系统(例如,图1中的神经网络系统100或图2中的神经网络系统200)中包括的示例选择块300的框图。选择块300是在一个或多个位置中的一个或多个计算机上作为计算机程序实现的系统的示例,在其中实现下述系统、组件和技术。
[0110]
选择块300能够被配置成处理表示实体(例如,图像)的数据元素嵌入304的集合和潜在嵌入302(例如,被随机地初始化)的集合,以从数据元素嵌入304的集合中选择数据元素嵌入的真子集。神经网络系统能够将数据元素嵌入的子集提供给一个或多个交叉注意力块以注意。具体地,一个或多个交叉注意力块能够使用对由选择块300选择的仅数据元素嵌入的子集的交叉注意力来更新潜在嵌入集合中的每个潜在嵌入。
[0111]
在一些实施方式中,系统能够使用仅一个选择块来选择数据元素嵌入的子集并且将该子集提供给一个或多个交叉注意力块以注意。在一些实施方式中,系统能够使用多个选择块来选择数据元素嵌入的子集。例如,每个选择块能够从数据元素嵌入集合中选择数据元素嵌入的不同子集。在一些实施方式中,系统能够将由相应的选择块选择的每个子集提供给相应的交叉注意力块以注意,例如,一些交叉注意力块能够注意数据元素嵌入的不同子集。选择块300能够选择任何数目的数据元素嵌入,例如,少于数据元素嵌入304的完整集合的50%、25%、10%或5%。
[0112]
选择块300能够通过使用以下各项来选择数据元素嵌入的子集:(i)参数选择神经网络310和(ii)单元选择神经网络320,其中的每一个将接下来被更详细地描述。
[0113]
在神经网络系统已经使用一个或多个交叉注意力块、一个或多个自注意力块或两者来更新了潜在嵌入302的集合(例如,如以上参考图1和图2描述的那样)之后,参数选择神经网络310能够处理潜在嵌入302,以生成定义单元选择神经网络参数360的值的网络输出。例如,在一些实施方式中,单元选择神经网络320能够包括一个或多个全连接神经网络层,其中的每一个能够具有单元选择神经网络参数的对应张量(例如,矩阵)。来自参数选择神经网络310的输出360能够相应地包括例如定义单元选择神经网络320的这些全连接神经网络层的参数值的数值的有序合集。
[0114]
单元选择神经网络320能够根据单元选择神经网络参数(例如,由参数选择神经网络310生成)的值来处理数据元素嵌入304的集合中的每个数据元素嵌入以生成每个数据元素嵌入304的选择分数380。在一个示例中,每个数据元素嵌入的选择分数380可以是一维值,例如,强化学习q值。
[0115]
基于选择分数308,选择块300能够从数据元素嵌入304的完整集合中选择数据元素嵌入的子集。例如,选择块能够从数据元素嵌入304的集合中选择具有最高选择分数的一个或多个数据元素嵌入。在另一示例中,选择块300能够从数据元素嵌入304的集合中选择数据元素嵌入的预定义小部分,例如,具有最高选择分数的数据元素嵌入的5%。
[0116]
因此,选择块300能够从数据元素嵌入304的完整集合中自适应地选择数据元素嵌入的合适的子集。例如,如果实体是224
×
224像素图像分辨率下的1秒长视频,则选择块300能够选择数据元素嵌入的与例如视频的最有价值的10,000个像素相对应的子集。
[0117]
如以上参考图1描述的,训练引擎能够使用例如监督学习技术来调整一个或多个注意力块和输出块的模型参数值。训练引擎能够附加地使用例如强化学习技术来训练一个
或多个选择块。例如,训练引擎能够通过经过选择块300迭代地反向传播强化学习目标函数的梯度迭代地调整选择块300的模型参数值来训练选择块300。强化学习函数可以是例如平方贝尔曼误差目标函数,或任何其他适当的强化学习目标函数。在一些实施方式中,训练引擎能够将神经网络(例如,一个或多个注意力块、输出块和选择块)的总体损失确定为监督损失和强化学习损失的线性组合。
[0118]
为了训练选择块300,在每次训练迭代时,训练引擎能够使用神经网络来处理数据元素嵌入集合和潜在嵌入集合(例如,如以上参考图1描述的那样),以生成表征实体的网络输出。训练引擎能够基于表征实体的网络输出确定任务性能测量。例如,训练引擎能够评价以上参考图1描述的相同目标函数,该目标函数由训练引擎使用来训练注意力块和输出块。换句话说,训练引擎能够直接在用于训练神经网络的其余部分的相同分类信号上训练选择块300,例如,如以上参考图1描述的那样。
[0119]
接下来,在每次训练迭代时,训练引擎能够基于任务性能测量确定奖励。奖励可以是任务性能测量的任何适当的函数。在一个示例中,任务性能测量能够表征预测误差(例如,通过交叉熵损失),并且奖励可以是任务性能测量的负值,使得较低的预测误差产生较高的奖励。
[0120]
基于奖励,训练引擎能够在取决于奖励的强化学习目标函数上训练选择块300。强化学习目标函数能够鼓励选择导致由神经网络接收到的奖励增加的数据元素嵌入。
[0121]
作为特定示例,训练引擎能够通过使平方贝尔曼误差目标函数最小化来训练选择块300:
[0122]
e[(r-q(xi;φ(z
l
)))2]
ꢀꢀ
(1)
[0123]
其中q(xi;
·
)是选择块300针对数据元素嵌入xi的输出,φ(z
l
)是来自第l自注意力块的输出,并且r是任务性能测量(例如,负交叉熵分类误差)。
[0124]
在训练选择块300之后,神经网络系统能够使用选择块300来从数据元素嵌入304的完整集合中选择数据元素嵌入的子集。系统能够将数据元素嵌入的子集提供给一个或多个交叉注意力块以注意。一个或多个交叉注意力块不是使用对数据元素嵌入的完整集合的交叉注意力来更新每个潜在嵌入,而是能够使用由选择块300自适应地选择的仅数据元素嵌入的子集来更新每个潜在嵌入。系统能够由此减少对数据元素嵌入执行交叉注意力操作所需要的计算资源的量,在维持可接受的任务性能(例如,预测准确度)的同时。
[0125]
接下来将更详细地描述用于使用神经网络系统来生成表征实体的网络输出的示例过程。
[0126]
图4是用于使用神经网络系统来表征实体的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的神经网络系统,例如,图1中的神经网络系统100或图2中的神经网络系统200,能够执行过程400。
[0127]
系统获得实体的作为数据元素嵌入集合的表示(402)。实体能够包括例如在空间结构中布置的多个单元(作为单元的一维(1d)、二维(2d)或三维(3d)阵列),其中每个单元与定义该单元在空间结构中的相应位置的位置数据相关联。例如,实体能够包括图像,并且图像中的每个像素能够定义实体中的相应单元。在另一示例中,实体能够包括音频波形,并且音频波形中或例如音频波形的梅尔频谱图中的每个音频样本能够定义实体中的相应单
元。在又一示例中,实体能够包括点云,并且点云中的每个点能够定义实体中的相应单元。在又一示例中,实体能够包括蛋白质,并且蛋白质的氨基酸序列中的每个氨基酸能够定义实体中的相应单元。在又一示例中,实体能够包括词序列,并且词序列中的每个词能够定义实体中的相应单元。在下面参考图5a和图5b更详细地描述示例实体和单元。
[0128]
获得实体的作为数据元素嵌入集合的表示能够包括对于实体中的每个单元,生成该单元的数据元素嵌入。对于实体中的每个单元,系统能够基于单元的特征嵌入和位置嵌入生成数据元素嵌入。
[0129]
系统能够基于单元的特征生成特征嵌入。例如,如果实体是图像(例如,图5中的图像520),并且单元是图像中的像素(例如,图5中的像素525),则系统能够通过选择该像素周围的图像的补片并且将其连结到向量中来获得特征嵌入。在另一示例中,如果实体是音频波形(例如,图5中的音频波形540),并且单元是音频样本(例如,图5中的音频样本545),则系统能够通过选择音频样本在一时间点的振幅来获得在该时间点的特征嵌入。
[0130]
系统能够基于单元在空间结构中的位置生成位置嵌入。例如,如果实体的空间结构是一维的,例如,实体是词序列(例如,图5中的词序列530)并且单元是序列中的词(例如,图5中的词535),则系统能够基于词在词序列中的索引生成位置嵌入。在另一示例中,如果实体是像素的二维阵列,则系统能够基于像素在像素阵列中的x-y坐标生成位置嵌入。在又一示例中,如果实体是点云(例如,图5中的点云510),并且单元是点云中的点(例如,图5中的点515),则系统能够基于点在点云中的x-y-z坐标生成位置嵌入。
[0131]
通常,对于实体中的每个单元,系统能够生成位置嵌入作为该单元在空间结构中的位置的任何适当的函数。在一些实施方式中,位置嵌入可以是例如具有在预定义目标频率范围上对数线性地隔开的频带的傅立叶特征位置编码。一般而言,傅里叶特征位置编码可以是将一个或多个维度上的输入坐标映射到具有在预定义目标频率范围上对数线性地(在对数尺度上线性地)隔开的频率(“频带”)的傅里叶级数的傅里叶系数的编码。在一些其他实施方式中,位置编码可以是固定的或学习的。在下面参考图5a和图5b更详细地描述单元的位置嵌入。
[0132]
在获得特征嵌入和位置嵌入之后,系统能够通过例如连结单元的特征嵌入和单元的位置嵌入,来对于实体中的每个单元生成对应的数据元素嵌入。在一些其他实施方式中,可以通过添加单元的特征嵌入和单元的位置嵌入来生成所对应的数据元素嵌入。
[0133]
系统获得潜在嵌入集合(404)。在一些实施方式中,潜在嵌入集合中的潜在嵌入的数目可以小于数据元素嵌入集合中的数据元素嵌入的数目。在一些实施方式中,潜在嵌入集合中的潜在嵌入的数目可以是预定义的并且独立于数据元素嵌入集合中的数据元素嵌入的数目。
[0134]
系统使用神经网络来处理:(i)数据元素嵌入集合和(ii)潜在嵌入集合,以生成表征实体的网络输出(406)。
[0135]
系统能够包括具有以下各项的神经网络块序列:(i)一个或多个交叉注意力块、(ii)一个或多个自注意力块和(iii)输出块。例如,系统能够包括多个交叉注意力块和多个自注意力块,其中交叉注意力块和自注意力块交错。
[0136]
神经网络块序列能够进一步包括一个或多个选择块,并且每个选择块能够被配置成从数据元素嵌入的完整集合中选择数据元素嵌入的真子集(即,不包括该集合本身的集
合的子集)。例如,在使用一个或多个交叉注意力块、一个或多个自注意力块或两者来更新潜在嵌入集合之后,选择块能够处理潜在嵌入集合和数据元素嵌入集合,以生成每个数据元素嵌入的相应的选择分数。基于选择分数,选择块能够选择数据元素嵌入集合的真子集(例如,具有最高选择分数的预定义数目的数据元素嵌入)以由一个或多个指定的交叉注意力块使用。每个指定的交叉注意力块能够使用对仅数据元素嵌入集合的所选择的真子集中的数据元素嵌入的交叉注意力而不是例如数据元素嵌入的完整集合中的数据元素嵌入的交叉注意力来更新潜在嵌入集合中的每个潜在嵌入。
[0137]
每个选择块能够包括:(i)参数选择神经网络和(ii)单元选择神经网络。对于每个选择块,处理潜在嵌入集合和数据元素嵌入集合以生成数据元素嵌入集合中的每个数据元素嵌入的相应的选择分数能够包括:使用参数选择神经网络来处理潜在嵌入,以生成定义单元选择神经网络的神经网络参数集合的值的网络输出;以及使用单元选择神经网络并且按照单元选择神经网络的神经网络参数集合的值来处理数据元素嵌入集合中的每个数据元素嵌入,以生成数据元素嵌入的选择分数。
[0138]
在一些实施方式中,系统能够基于表征实体的网络输出确定任务性能测量(例如,交叉熵分类误差),基于任务性能测量确定奖励,并且在取决于奖励的强化学习目标函数(例如,平方贝尔曼误差)上训练选择块。
[0139]
每个交叉注意力块能够使用对数据元素嵌入集合中的数据元素嵌入中的一些或全部数据元素嵌入的注意力来更新潜在嵌入集合中的每个潜在嵌入。这能够包括,例如,使用对数据元素嵌入集合中的数据元素嵌入中的一些或全部数据元素嵌入的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入,包括:对于潜在嵌入集合中的每个潜在嵌入生成相应的查询嵌入,对于数据元素嵌入集合中的多个数据元素嵌入中的每一个生成相应的键嵌入和相应的值嵌入,以及基于以下各项使用对数据元素嵌入集合中的多个数据元素嵌入的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入:(i)针对潜在嵌入的查询嵌入以及(ii)针对数据元素嵌入的键和值嵌入。
[0140]
每个自注意力块能够使用对潜在嵌入集合的注意力来(例如,重复地)更新潜在嵌入集合中的每个潜在嵌入。这能够包括,例如使用对潜在嵌入集合的查询-键-值注意力来更新潜在嵌入集合中的每个潜在嵌入。
[0141]
在使用一个或多个交叉注意力块和一个或多个自注意力块来更新潜在嵌入集合之后,输出块能够处理来自潜在嵌入集合的一个或多个潜在嵌入以生成表征实体的网络输出。这能够包括:池化——例如,平均——潜在嵌入集合中的潜在嵌入以生成池化潜在嵌入,并且使用一个或多个神经网络层来处理池化潜在嵌入以生成表征实体的网络输出。
[0142]
在一些实施方式中,网络输出能够包括输出元素的序列。在这样的情况下,由输出块处理来自潜在嵌入集合的一个或多个潜在嵌入以生成表征实体的网络输出能够包括,在多个时间步中的每一个:处理:(i)来自潜在嵌入集合的一个或多个潜在嵌入和(ii)在任何先前时间步生成的输出元素,以生成该时间步处的输出元素。
[0143]
接下来将更详细地描述示例实体和单元。
[0144]
图5a图示能够由神经网络系统(例如,图1中的系统100或图2中的系统200)表征的实体和单元的示例500。尽管在图5a中图示了仅两种类型的实体,但是神经网络系统能够用于表征任何适当类型或模态的实体。
[0145]
如上所述,神经网络能够获得实体的作为数据元素嵌入集合的表示并且(例如,与潜在嵌入一起)处理它以生成表征实体的网络输出。实体能够包括在空间结构中布置的多个单元,并且实体中的每个单元能够与定义该单元在空间结构中的相应位置的位置数据相关联。空间结构可以是例如单元的一维(1d)、二维(2d)或三维(3d)阵列。
[0146]
如图5a所图示的,在一个示例中,实体能够包括图像520,并且图像520中的每个像素525能够定义实体中的相应单元,例如,能够将图像520中的像素525布置为单元的二维阵列。在另一示例中,实体能够包括点云510,并且点云510中的每个点515能够定义实体中的相应单元,例如,能够将点云510中的点515布置为单元的三维阵列。像素525和点515能够与位置数据(例如,定义像素525和点云515中的每一个在相应的空间结构中的位置的坐标)相关联。
[0147]
在一些实施方式中,神经网络系统能够使将位置和模态特定特征与实体510、520中的每个单元515、525相关联。例如,对于实体中的每个单元,神经网络系统能够基于其特征生成单元的特征嵌入,并且基于其在空间结构中的位置生成单元的位置嵌入。在一些实施方式中,系统能够通过生成具有在预定义目标频率范围上对数线性地隔开的频带的傅立叶特征位置编码来生成位置嵌入。例如,能够如下生成傅立叶编码:
[0148]
[sin(fkπxd),cos(fkπxd)]
ꢀꢀ
(2)
[0149]
其中频率fk是在1与之间相等地隔开的一堆频率的第k频带,其中可以是例如与μ的目标采样速率相对应的奈奎斯特频率,xd是实体中沿着第d维度的单元的值(例如,对于图像d=2,并且对于视频d=3)。特别地,对于实体中的每个维度xd能够具有值[-1,1]。在一些实施方式中,系统能够连结原始位置值xd以产生位置的最终表示,从而产生大小d(2k 1)的位置编码。对于实体中的每个单元,神经网络系统能够通过例如连结特征嵌入和位置嵌入基于特征嵌入和位置嵌入相应地生成单元的对应的数据元素嵌入。
[0150]
如以上参考图1和图2描述的,神经网络系统能够使用注意力操作来处理表示实体的数据元素嵌入以及潜在嵌入。注意力操作不需要假定数据元素嵌入与固定空间布置相关联。例如,注意力操作不依靠假定数据元素嵌入与变成例如图像像素525的二维阵列的空间布置相关联。相反,当与生成准确的网络输出相关时,神经网络系统能够通过将位置编码标记(例如,连结)到数据元素嵌入、并且允许注意力操作以学习利用有关数据元素嵌入的空间布置的信息来灵活地并入此信息。因此,神经网络系统能够用于处理与预定义空间布置不相关联的数据元素嵌入集合,例如,表示点云510或图像520的数据元素集合,从而使系统变得更广泛适用。
[0151]
图5b图示能够由神经网络系统(例如,图1中的系统100或图2中的系统200)表征的实体和单元的另一示例500。尽管在图5b中图示了仅三种类型的实体,但是神经网络系统能够用于表征任何适当类型的实体,例如,任何适当模态的实体。
[0152]
如图5b所图示的,在一个示例中,实体能够包括词序列530,并且词序列530中的每个词535能够定义实体中的相应单元。在另一示例中,实体能够包括音频波形550,并且音频波形540中的每个音频样本545定义实体中的相应单元。在又一示例中,实体能够包括蛋白质550,并且蛋白质550的氨基酸序列中的每个氨基酸555能够定义实体中的相应单元。在一些实施方式中,实体能够包括不同模态的混合物。例如,实体能够包括视频,该视频包括图5a所图示的图像520和图5b所图示的音频波形540。
[0153]
本文描述的系统的实施方式能够处理多模态实体的多模态数据。也就是说,如先前描述的,所表征的实体能够包括不同类型的数据的组合,诸如图像或视频数据和音频数据、图像或视频数据和语言数据、体感输入数据(感测物理代理的真实世界环境的传感器数据,诸如感测触摸、压力、移动、温度或振动数据)和马达反馈数据(即,用于控制物理代理的移动的控制数据)。在多模态数据情况下,数据的每种类型或域能够使用不同的位置嵌入。特别地,每个不同的位置嵌入能够对于数据的类型具有准确的维数,例如对于视频或点云数据为3d,对于图像数据为2d,对于音频数据为1d。位置嵌入可以是傅立叶特征位置嵌入,或者是固定或学习的位置嵌入。在多模态数据情况下,数据的每种类型或域也可以与一个或多个模态特定特征即嵌入相关联。这些可以是固定的或学习的,并且因为它们是模态特定的,所以能够被系统使用来识别模态。因此,多模态实体的单元可以用位置特定特征(嵌入)和模态特定特征(嵌入)两者来标记。
[0154]
当多模态实体由系统处理时,可以组合不同模态的单元或数据元素。更具体地,可以组合不同模态的数据元素嵌入,例如通过将不同模态的字节数组融合成对于每个模态具有相同数目的通道的组合字节数组,例如通过将学习的模态特定编码连结到每个数据元素嵌入。在一些实施方式中,模态特定编码可以与位置编码组合。
[0155]
多模态实体的网络输出可以如先前描述的那样。例如,在网络输出是分类任务(例如针对可能的类别集合中的每个类别定义分数)的分类输出的情况下,除了网络输出是基于作为输入提供的多模态数据嵌入而生成的之外,这可能与先前描述的没有改变。因此,作为结果,由系统执行的机器学习任务例如分类可以被更好地例如更准确地执行。例如,可以对视频和(对应的)音频数据的组合执行分类任务以获得更准确的分类结果。作为另一示例,机器学习任务可以是基于例如在组合视频或图像数据和例如文本数据的语言数据的任务中处理不同模态的数据以确定图像或视频是否是由特定说明文字描述的任务。
[0156]
图6a图示由能够表征实体的神经网络系统(例如,图1中的系统100或图2中的系统200)生成的示例注意力图600。在此示例中,神经网络系统包括八个交叉注意力块。
[0157]
在左侧的第一图像是由神经网络系统表征的原始图像(例如,实体)。第二图像是由神经网络系统的第一交叉注意力块生成的注意力图。第三图像是由神经网络系统的第二交叉注意力块生成的注意力图。最后图像是由神经网络系统的第八交叉注意力块生成的注意力图。
[0158]
图6b图示由能够表征实体的神经网络系统(例如,图1中的系统100或图2中的系统200)生成的示例注意力图600。在此示例中,被表征的实体是图6a中的第一图像,并且神经网络系统类似地包括八个交叉注意力块。
[0159]
顶部面板是由神经网络系统的第一交叉注意力块生成的注意力图的概览。中间面板是由神经网络系统的第二交叉注意力块生成的注意力图的概览。底部面板是由神经网络系统的第八交叉注意力块生成的注意力图的概览。注意力图能够在一系列空间频率下使用格子状图案来扫描输入图像。
[0160]
图7图示能够表征实体的神经网络系统(例如,图1中的系统100或图2中的系统200)的不同配置的示例性能700。
[0161]
具体地,图7将神经网络系统的性能图示为交叉注意力层的数目以及交叉注意力块相对于神经网络系统中的其他神经网络块的相应布置的函数。
[0162]
在“交错”中,交叉注意力层贯穿网络来被隔开(用于可重入处理),然而在“在开始处”中,所有交叉注意力层都被放置在网络的随后是所有潜在自注意力层的开始处。除初始交叉注意力层外的所有交叉注意力层都被共享,并且自注意力层也被共享(例如,使用6个自注意力模块的8个块)。结果是在imagenet上的top-1验证准确度(以%为单位)(越高越好)。
[0163]
图8a图示能够表征实体的神经网络系统(例如,图1中的系统100或图2中的系统200)的示例参数800。所有线图都示出top-1准确度(越高越好)。
[0164]
具体地,图8a图示模型超参数对神经网络系统的性能的影响。增加潜在嵌入的数目、每块的自注意力层的数目和交叉注意力层的数目通常改进神经网络系统的性能。在一些情况下,增加每个潜在嵌入的通道的数目也能够改进神经网络系统的性能。
[0165]
图8b图示能够表征实体的神经网络系统(例如,图1中的系统100或图2中的系统200)的参数800的另一示例。所有线图都示出top-1准确度(越高越好)。
[0166]
具体地,图8b图示潜在嵌入初始化尺度和傅立叶特征位置编码参数对神经网络系统的性能的影响。通常,增加频带数和最大分辨率(多达奈奎斯特)提高了性能。在一些情况下,无论是使用线性地还是对数地隔开的位置编码频带,都能够观察到相同效果。
[0167]
图9图示使用本说明书中描述的神经网络系统实现的实验结果。特别地,表910示出本说明书中描述的神经网络系统(例如,“perceiver(感知器)”)和可替代神经网络系统的top-1验证准确度(以%为单位)。能够领会的是,本说明书中描述的神经网络系统在不依靠域特定架构假定的情况下显著地优于可替代系统。表920也示出top-1验证准确度。将领会的是,本说明书中描述的神经网络系统在使用所学习的位置编码或傅立叶特征中的任何一个时显著地优于可替代系统。
[0168]
图10图示使用本说明书中描述的神经网络系统实现的实验结果。特别地,表1010示出本说明书中描述的神经网络系统(例如,“perceiver(感知器)”)和可替代神经网络系统的top-1分类准确度(以%为单位)。表1020示出本说明书中描述的神经网络系统在视频和仅音频实验上的性能。将领会的是,本说明书中描述的神经网络系统显著地优于大多数可替代神经网络系统。
[0169]
本说明书连同系统和计算机程序组件一起使用术语“被配置”。对于一个或多个计算机的系统被配置成执行特定操作或动作意味着该系统已经在其上安装了在操作中使该系统执行操作或动作的软件、固件、硬件或它们的组合。对于一个或多个计算机程序被配置成执行特定操作或动作意味着所述一个或多个程序包括当由数据处理装置执行时使该装置执行操作或动作的指令。
[0170]
本说明书中描述的主题和功能操作的实施例能够用数字电子电路、用有形地体现的计算机软件或固件、用计算机硬件——包括本说明书中公开的结构及其结构等同物、或者用它们中的一个或多个的组合来实现。本说明书描述的主题的实施例能够作为一个或多个计算机程序——即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块——被实现。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备、或它们中的一个或多个的组合。可替代地或另外,程序指令能够被编码在人工生成的传播信号例如机器生成的电、光或电磁信号上,所述信号被生成来对信息进行编码以供传输到合适的接收装置
以供由数据处理装置执行。
[0171]
术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。所述装置也可以是或者进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。所述装置除了包括硬件之外,还能够可选地包括针对计算机程序创造执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0172]
计算机程序(其也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)能够用包括编译或解释语言或声明或过程语言的任何形式的编程语言编写;并且它能够被以任何形式部署,所述任何形式包括作为独立程序或者作为模块、组件、子例程或适合于在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序能够在保持其他程序或数据——例如,存储在标记语言文件中的一个或多个脚本)的文件的一部分中、在专用于所述程序的单个文件中、或在多个协调文件——例如,存储代码的一个或多个模块、子程序或部分的文件——中被存储。计算机程序能够被部署成在一个计算机上或在多个计算机上执行,所述多个计算机位于一个站点处或者跨多个站点分布并且通过数据通信网络互连。
[0173]
在本说明书中,术语“引擎”广泛地用于指被编程来执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为在一个或多个位置中的一个或多个计算机上安装的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在一个或多个相同的计算机上安装和运行多个引擎。
[0174]
本说明书中描述的过程和逻辑流程可以是通过一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来实行功能来执行的。过程和逻辑流程也能够由例如fpga或asic的专用逻辑电路执行,或者由专用逻辑电路和一个或多个编程计算机的组合执行。
[0175]
适合于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于实行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充,或者并入在专用逻辑电路中。通常,计算机也将包括以下项,或者在操作上耦合以从以下项接收数据或者向以下各项转移数据,或者兼而有之:用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入在例如以下的另一设备中:移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。
[0176]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括:半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。
[0177]
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机:具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示
器)监视器,并且具有用户能够借以向该计算机提供输入的键盘和指点设备,例如,鼠标或轨迹球。其他种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。另外,计算机能够通过向用户所使用的设备发送文档和从用户所使用的设备接收文档来与用户交互;例如,通过响应于从用户的设备上的web浏览器接收到的请求来向该web浏览器发送网页。另外,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。
[0178]
用于实现机器学习模型的数据处理装置也能够包括例如用于处理机器学习训练或产生——即推理——工作负载的常见并且计算密集部分的专用硬件加速器单元。
[0179]
机器学习模型能够使用以下机器学习框架来被实现和部署:例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架。
[0180]
能够在计算系统中实现本说明书中描述的主题的实施例,该计算系统:包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有用户能够借以与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或app的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信——例如,通信网络——互连。通信网络的示例包括局域网(lan)和广域网(wan),例如,因特网。
[0181]
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器例如出于向与作为客户端的设备交互的用户显示数据并且从与作为客户端的设备交互的用户接收用户输入的目的而向用户设备传输数据,例如,html页面。在用户设备处生成的数据,例如,用户交互的结果,可以是在服务器处从该设备接收的。
[0182]
虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的范围或可能被要求保护的范围的限制,而是相反被解释为可以特定于特定发明的特定实施例的特征的描述。也能够在单个实施例中相结合地实现在本说明书中在分开的实施例的上下文中描述的某些特征。相反地,也能够在多个实施例中分开地或以任何合适的子组合实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能在上面被描述为以某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征可以在一些情况下被从组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。
[0183]
类似地,虽然以特定次序在附图中描绘并且在权利要求中叙述操作,但是这不应该被理解为要求以所示特定次序或以顺序次序执行这样的操作,或者要求执行所有图示的操作,以实现所期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,各种系统模块和组件在上述实施例中的分离不应该被理解为在所有实施例中要求这种分离,并且应该理解,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或打包到多个软件产品中。
[0184]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利
要求中叙述的动作能够被以不同次序执行并且仍然实现所期望的结果。作为一个示例,附图中描绘的过程不一定要求所示特定次序或顺序次序来实现所希望的结果。在一些情况下,多任务处理和并行处理可以是有利的。