一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用插补的序列建模的制作方法

2022-09-15 07:15:58 来源:中国专利 TAG:

使用插补的序列建模
1.相关申请的交叉引用
2.本技术要求于2020年2月7日提交的美国专利申请序列号62/971,769和于2020年4月14日提交的美国专利申请序列号63/009,970的优先权,其全部内容通过引用并入本文。


背景技术:

3.本说明书涉及使用神经网络来生成序列数据。
4.神经网络是使用一层或多层非线性单元来预测所接收的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的一个或多个其他层(即,一个或多个其他隐藏层、输出层或两者)的输入。网络的每层根据相应参数组的当前值从所接收的输入生成输出。


技术实现要素:

5.本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统接收由多个输入位置中的每个输入位置处的相应输入语言符号组成的输入序列,并且生成由多个输出位置中的每个输出位置处的相应输出语言符号组成的输出序列。该系统可以通过使用神经网络处理输入序列来生成输出序列。本说明书还描述了用于训练神经网络以生成输出序列的技术。
6.神经网络可以首先生成输入序列和输出序列之间的潜在对准,然后从潜在对准生成输出序列。神经网络可以通过将输入序列分割成相同大小b的多个块并且在每个时间步处生成每个块的潜在对准中的相应新元素来以固定数量的时间步生成输出序列。因此,不管输入序列的长度如何,神经网络可以在恰好b个时间步中生成潜在对准,然后从潜在对准生成输出序列。
7.本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。
8.如本说明书中描述的系统可以比依赖于自回归神经网络的一些现有系统更快地生成输出序列。特别地,如本说明书中描述的系统可以在固定的、恒定数量的时间步中生成输出序列。这种保证的效率对于无论输入的大小如何都需要快速输出的使用情况可能是关键的。这样,本说明书中描述的系统在真实世界系统中允许实时操作。例如,设备上语音识别系统,例如在用户的移动设备上操作的系统,可能需要实时地响应用户,例如通过接收用户说出的包括问题的输入音频序列、生成用户所问的问题的输出文本序列、以及确定针对用户的答案。作为另一个示例,机器翻译系统可能需要实时接收第一语言的输入文本序列并且生成第二语言的输出文本序列,以便促进说出不同语言的两个用户之间的通信。更一般地,本说明书中描述的各种系统的特征从与实现真实世界系统中的实时操作有关的技术考虑得到。
9.如本说明书中描述的系统可以生成比依赖于非自回归神经网络的一些现有序列更准确的输出序列,因为它不依赖于输出语言符号之间的条件独立假设。特别地,在本说明
书中描述的一些系统在所有可能对准和生成顺序上边际化,使得系统非常适合于具有自然潜在单调对准的问题。
10.如本说明书中描述的系统不限于从左到右生成输出序列,而是能够建模具有双向上下文化以及本地和全局条件依赖性两者的语言。
11.本书的主题的一多师的细节在附图和以下描述中阐述。本主题的其他特征盾方面和优点将从描述盾附图和权利要求中变得显而易见。
附图说明
12.图1是示例序列建模系统的图。
13.图2a-2c是输入序列和输出序列之间的示例部分潜在对准的图示。
14.图3是用于处理输入序列以生成输出序列的示例过程的流程图。
15.图4是示例神经网络的图。
16.图5是示例训练系统的图。
17.在各个附图中,相同的附图标记和名称表示相同的元件。
具体实施方式
18.本说明书描述一种处理输入序列以生成输出序列的系统。
19.图1是示例序列建模系统100的图。该序列建模系统100是作为一个或多个位置中的一个或多个计算机上的计算机程序实现的系统的示例,其中可以实现下面描述的系统、组件和技术。序列建模系统100包括神经网络110和输出生成引擎120。
20.序列建模系统100被配置成获得输入序列102并且生成输出序列122。输入序列102包括在多个输入位置中的每个输入位置处的相应输入语言符号(token),而输出序列122包括在多个输出位置的每个输出位置处的相应输出语言符号。
21.输入序列102的输入语言符号和输出序列122的输出语言符号可以是任何适当的类型。在一些实现方式中,输入语言符号和输出语言符号是不同类型的。在一些其他实现方式中,输入语言符号和输出语言符号是相同类型的。
22.例如,输入语言符号和/或输出语言符号可以表示文本;例如,每个语言符号可以表示字符、音素或单词。作为另一示例,输入语言符号和/或输出语言符号可以表示音频数据;例如,每个语言符号可以表示音频波的原始、压缩或压扩的幅度值。作为另一示例,输入语言符号和/或输出语言符号可以表示由环境中的传感器在相应时间点捕获的传感器数据。作为另一示例,输入语言符号和/或输出语言符号可以表示在相应时间点的环境状态的嵌入。作为另一示例,输入语言符号和/或输出语言符号可以表示要由与环境交互的机器人采取的动作。
23.作为特定示例,输入语言符号可以表示音频样本,而输出语言符号可以表示文本样本;也就是说,神经网络110可以通过训练来配置以执行语音识别。作为另一特定示例,输入语言符号可以表示文本样本,而输出语言符号可以表示音频样本;也就是说,神经网络110可以通过训练来配置以执行语音合成。作为另一特定示例,输入语言符号可以表示第一语言的文本样本,而输出语言符号可以表示第二语言的文本样本;也就是说,神经网络110可以通过训练来配置以执行机器翻译。作为另一特定示例,输入语言符号可以表示来自文
档的文本样本和表示关于该文档的问题的文本样本,并且输出语言符号可以表示表征对该问题的回答的文本样本;也就是说,神经网络110可以通过训练来配置以执行问题回答。作为另一特定示例,输入语言符号可以表示来自文档的文本样本,而输出语言符号可以表示表征文档的概要的文本样本;也就是说,神经网络110可以通过训练来配置以执行文本概括。
24.作为另一示例,输入序列102和/或输出序列122可以表示图像。例如,序列中的每个语言符号可以表示图像的相应像素;即,该序列可以是图像的“平坦”版本。作为特定示例,输入序列102可以表示图像,而输出序列122可以表示描述该图像的文本。作为另一特定示例,输入序列102可以表示第一图像,而输出序列122可以表示作为第一图像的变换版本的第二图像。例如,序列建模系统100可以被配置成处理表示包括伪影(例如,噪声或低分辨率)的第一图像的输入序列102,并且生成表示表征没有伪影的第一图像的第二图像的输出序列122。作为另一示例,序列建模系统100可以被配置成处理表示黑白图像的输入序列102,并且生成表示黑白图像的彩色化版本的输出序列122。作为另一示例,序列建模系统100可以被配置成处理表示来自第一域的第一图像的输入序列102,并且生成表示第二域中的第二图像的输出序列122;例如,第一图像可以描绘模拟环境,并且第二图像可以描绘真实世界环境,或者反之亦然。
25.输入序列102也可以被称为输入序列x={x0,x1,...,x
n-1
},而输出序列122也可以被称为输出序列y={y0,y1,...,y
m-1
}。
26.神经网络110被配置成在第一时间步处理输入序列102并且生成部分潜在对准112。然后,在多个后续时间步中的每个时间步,神经网络110处理输入序列102和在先前时间步生成的部分潜在对准112以生成新部分潜在对准112。然后,在最后时间步,神经网络110处理输入序列102和先前部分潜在对准112以生成最终潜在对准。
27.输入序列和输出序列之间的潜在对准或简单的“对准”是输入序列的输入语言符号和输出序列的输出语言符号之间的映射。可以将每个输入语言符号映射到输出语言符号,使得每个输出语言符号具有至少一个映射到输出语言符号的输入语言符号。输入序列和输出序列之间的部分潜在对准是输入序列的输入语言符号和输出序列的输出语言符号之间的部分映射。也就是说,输入序列的一些输入语言符号可以映射到相应输出语言符号,而输入序列的剩余输入语言符号还没有映射到相应输出语言符号。
28.在一些实现方式中,在输入序列102的输入语言符号和输出序列122的输出语言符号之间存在单调的潜在对准。如果每个输入语言符号可以被映射到相应输出语言符号,使得不存在被映射到输出语言符号yi的输入语言符号xi和被映射到输出语言符号yj的输入语言符号xj,使得xi在输入序列中比xj早,并且yi在输出序列中比yj晚,则在输入语言符号和输出语言符号之间存在单调的潜在对准。也就是说,如果输入语言符号xi映射输出语言符号yi,则以下输入语言符号xi 1必须映射到相同的输出语言符号yi或映射到以下输出语言符号y
i 1
。注意,可以将多个输入语言符号映射到相同的输出语言符号,使得|y|≤|x|,即m≤n。换句话说,对于在输入序列中的任何给定位置处的任何语言符号,在输出序列中,在潜在对准中的相应输出语言符号不早于与在输入序列中的给定位置之后的位置处的任何语言符号对应的输出语言符号。
29.部分潜在对准112和最终潜在对准114可以是表示输入序列102的输入语言符号和
输出序列112的输出语言符号之间的映射(分别是部分或完全)的任何数据。
30.例如,如果yi∈v,其中v是输出序列122的词汇,则可以在输入序列102和输出序列122之间存在单调的最终潜在对准a={a0,a1,...,a
n-1
},使得|a|=|x|,其中,ai∈v

,v

=v∩{

_

},和其中“_”是称为“空白语言符号”的特殊语言符号。如果多个输入语言符号映射到对准a中的相同输出语言符号,则空白语言符号有助于将输入序列102与输出序列122对准。在本说明书中,v的元素也可以称为“词汇语言符号”。也就是说,单调的潜在对准a中的每个语言符号都是空白语言符号或词汇语言符号。
31.对于输入序列102中与最终潜在对准114中的空白语言符号对应的每个输入语言符号,空白语言符号识别输入语言符号映射到与输入序列102中的先前输入语言符号相同的输出语言符号(即,不与最终潜在对准114中的空白语言符号对应的最新输入语言符号)。例如,如果系统被配置成执行语音识别,则输入序列102的三个输入音频样本可以映射到输出语言符号“my”。在这种情况下,与三个输入音频样本中的第一个对应的最终潜在对准114中的语言符号可以是“my”,而与三个输入音频样本中的其他两个对应的最终潜在对准114中的两个语言符号可以是空白语言符号。
32.在神经网络110的第一时间步之前,序列建模系统100可以生成初始部分潜在对准112,该初始部分潜在对准112的大小与输入序列102相同并且完全由“掩码”语言符号组成。掩码语言符号是表示最终潜在对准114中的对应语言符号尚未被选择的部分潜在对准的语言符号。因此,部分潜在对准中的每个语言符号要么是掩码语言符号,要么是空白语言符号或词汇语言符号(如果已经选择了它)。然后,在每个时间步,神经网络可以处理i)输入序列102和ii)当前部分潜在对准112以生成一个或多个新语言符号(例如,词汇语言符号或空白语言符号)以替换部分潜在对准112中的相应掩码语言符号。也就是说,在每个时间步,神经网络110生成具有较少掩码语言符号的新部分潜在对准112。
33.例如,神经网络110可以处理输入序列102以生成输入序列102的嵌入,以及处理部分潜在对准112以生成部分潜在对准112的嵌入。然后,神经网络110可以处理两个嵌入以生成更新的部分潜在对准112。下面参照图4更详细地讨论神经网络110的示例网络架构。
34.在一些实现方式中,神经网络110在神经网络110的每个时间步在部分潜在对准112中生成固定数量的新语言符号。例如,神经网络110可以将部分潜在对准114分割成固定大小b的块,其中每个块由部分潜在对准114中的b个连续语言符号组成,并且每个语言符号恰好在一个块中。然后,在每个时间步,神经网络110可以在每个块中生成相应新语言符号。即,在每个时间步,神经网络110可以在作为掩码语言符号的每个块中选择一个语言符号,并且选择词汇语言符号或空白语言符号以替换所选择的语言符号,从而生成新部分潜在对准112。
35.在该示例中,保证最终潜在对准114在等于b个时间步的固定时间量中生成。即,生成最终潜在对准114的时间量相对于输入序列102的长度是恒定的。与使用自回归神经网络的一些现有系统相比,这种效率可以是有利的,因为自回归神经网络的运行时间通常随着输入序列102的大小而增加,例如线性增加。
36.然而,通过跨多个步生成最终潜在对准114并且在最近部分潜在对准112上对每个步进行调节,神经网络110避免对输出序列的输出语言符号作出有条件的独立假设。在许多现有的非自回归系统中,系统假设输出序列中的输出语言符号彼此独立,并且在单个时间
步内生成输出序列。这种有条件的独立假设可能导致现有系统的性能不佳,因为输出语言符号实际上不是独立的。图1所描绘的神经网络110使用在先前时间步生成的部分潜在对准112中的语言符号来更新部分潜在对准112;也就是说,部分潜在对准112中的新语言符号依赖于部分潜在对准112中的旧语言符号。因此,神经网络110可以在固定时间量内生成最终潜在对准114,而不依赖于错误的条件独立性假设。
37.在生成最终潜在对准114之后,神经网络110可以将最终潜在对准114提供给输出生成引擎120。输出生成引擎120被配置成处理最终潜在对准114以生成输出序列122。在一些实现方式中,输出生成引擎120仅从潜在对准114移除空白语言符号以生成输出序列122。在一些实现方式中,子系统还移除重复的词汇语言符号;也就是说,如果潜在对准114在一行中包括两个或更多个相同词汇语言符号(在一些实现方式中,即使它们被一个或更多个空白语言符号分隔开),则输出生成引擎120可以生成输出序列122,该输出序列122仅在输出序列122中的对应位置处包括词汇语言符号的单个副本。
38.在一些实现方式中,序列建模系统100可以从输入序列102生成输出序列122,即使在输入序列102和输出序列122之间不存在单调的潜在对准。
39.例如,序列建模系统100可以通过增加或修改输入序列102以生成满足单调的潜在对准属性的经修改的输入序列来生成输出序列122。作为另一示例,序列建模系统100可以通过以下来生成输出序列122:首先生成满足单调的潜在对准属性的经修改的输出序列并且然后处理经修改的输出序列以生成输出序列122。
40.作为特定示例,例如,在一些机器翻译使用情形中,输入序列102可能比输出序列122短,即,输入序列102可能不满足|y|≤|x|的要求。在一些实现方式中,序列建模系统100可以对输入序列102进行上采样以生成经修改的输入序列x’,使得经修改的输入序列比输出序列122长。在一些这样的实现方式中,系统可以通过重复输入序列中的每个语言符号s次来对输入序列进行上采样,使得|x

|=s
·
|x|。在一些其它实现方式中,输入序列x中的每个语言符号被表示为长度为d的向量,使得输入序列x可以被表示为输入矩阵在这些实现方式中,可以通过对输入矩阵x执行线性变换以生成经修改的输入矩阵来对输入序列进行上采样。例如,x
′si:s(i 1)-1
=wxi b,其中和是可学习的参数。
41.在一些实现方式中,序列建模系统100可以被配置成生成输出序列122,即使在输入序列102和输出序列122之间不存在单调的潜在对准。作为特定示例,例如,在一些机器翻译使用情形中,序列建模系统100可以接收输入序列102,对于该输入序列,不存在满足与相应输出序列122的单调性要求的潜在对准。例如,当从第一语言翻译成第二语言时,通常存在单词重新排序,使得输入序列102的语言符号不与输出序列122的语言符号单调对准。在这些实现方式中,序列建模系统100仍然可以生成输出序列122,因为神经网络110(其可以包括例如转换器自我注意层的堆叠)的深度可以允许系统100通过训练自动学习以对输入序列102重新排序,使得神经网络110的输出嵌入具有与输出序列112的近似单调对准。下面参考图4更详细地讨论该过程。
42.图2a-2c是输入序列和输出序列之间的示例部分潜在对准的图示。例如,输入序列可以表示音频数据,而输出序列可以表示相应文本数据。响应于处理输入序列和先前部分潜在对准,每个部分潜在对准可以由神经网络例如图1中描绘的神经网络110在相应时间步
生成。
43.参考图2a,第一部分潜在对准202中的每个语言符号是掩码语言符号。第一部分潜在对准可以是在第一时间步之前(即,在神经网络处理输入序列之前)的初始部分潜在对准。
44.第一部分潜在对准202被分割成块,每个块都包括四个连续语言符号。在图2a中用粗线描绘了这些块。尽管在图2a中图示了四个语言符号中的三个块,但是通常部分潜在对准可以包括更多的块,其中每个块可以包括任意数量的语言符号。例如,每个块可以包括2、4、8、16、32、64、128、256或512个语言符号。
45.在每个时间步,神经网络可以在每个块中选择掩码语言符号,并且生成新语言符号(例如,空白语言符号或词汇语言符号)以替换所选择的掩码语言符号。
46.第二部分潜在对准204是第一时间步之后的神经网络的输出,即,响应于处理输入序列和第一部分潜在对准202的神经网络的输出。对于每个块,神经网络已经生成了新非掩码语言符号。特别地,神经网络在第一块中已经生成“a”语言符号,在第二块中已经生成空白语言符号,并且在第三块中已经生成“f”语言符号。注意,神经网络不必在每个块中必须选择第一语言符号;例如,神经网络在第三块中选择了最终语言符号。下面参考图4和图5讨论用于在块中选择掩码语言符号的示例过程。
47.第三部分潜在对准206是第二时间步之后的神经网络的输出,即,响应于处理输入序列和第二部分潜在对准204的神经网络的输出。特别地,神经网络在第一块中已经生成空白语言符号,在第二块中已经生成“e”语言符号,并且在第三块中已经生成空白语言符号。
48.第四部分潜在对准208是第三时间步之后的神经网络的输出,即,响应于处理输入序列和第三部分潜在对准206的神经网络的输出。特别地,神经网络在第一块中已经生成“b”语言符号,在第二块中已经生成“d”语言符号,在第三块中已经生成空白语言符号。
49.第五部分潜在对准210是第四时间步之后的神经网络的输出,即,响应于处理输入序列和第四部分潜在对准208的神经网络的输出。特别地,神经网络在第一块中已经生成“c”语言符号,在第二块中已经生成空白语言符号,并且在第三块中已经生成空白语言符号。
50.第五部分潜在对准210是最终潜在对准,因为已经移除第一部分潜在对准202的每个掩码语言符号。系统,例如图1中描绘的输出生成引擎120,可以处理第五潜在对准210以生成输出序列。例如,系统可以从第五潜在对准210移除空白语言符号中的每个,以生成输出序列“abcdef”。
51.注意,在第二时间步(即,在神经网络生成了第三部分潜在对准206的时间步),神经网络生成了在第三部分潜在对准206中相邻的两个语言符号。特别地,神经网络在第二块中生成最终语言符号(“e”语言符号),在第三块中生成了第一语言符号(空白语言符号)。并行地生成部分潜在对准的连续语言符号可能是不常见的,因为在每个时间步仅生成每个块的单个语言符号;然而,如在该示例中,当神经网络在第一块中生成最终语言符号并且在后续块中生成第一语言符号时,这可能发生。
52.通过并行地生成部分潜在对准的连续语言符号,神经网络隐含地作出关于相邻语言符号的条件独立性假设。如先前所述,这种条件独立性假设可能是有问题的,尤其是对于先验地彼此高度依赖的相邻语言符号。因此,在每个时间步,神经网络可以在每个块中选择
语言符号,以避免生成连续语言符号。图2b和图2c中描述了这样做的两种策略。
53.参考图2b,神经网络可以在要在最终时间步中生成的每个块中保留最终语言符号。因此,神经网络可以避免并行地生成第一块中的最终语言符号和后续块中的第一语言符号。
54.作为特定示例,如果神经网络被配置成在每个块中的所有掩码语言符号中选择具有最高似然性的该块中的掩码语言符号作为相应词汇语言符号或空白语言符号(如以下参照图4更详细描述),则神经网络可以确定不选择块中的最终语言符号;如果特定块中的最终语言符号具有最高似然性,则神经网络可以选择具有次高似然性的掩码语言符号。
55.例如,在第一时间步,神经网络可以处理完全由掩码语言符号组成的第一部分潜在对准212,以生成第二部分潜在对准214。特别地,神经网络(受限于每个块中的前三个位置之一生成语言符号)可以在第一块中生成“a”语言符号,在第二块中生成空白语言符号,以及在第三块中生成空白语言符号。
56.在第二时间步,神经网络(再次受限于每个块中的前三个位置)可以通过在第一块中生成空白语言符号、在第二块中生成“d”语言符号、以及在第三块中生成空白语言符号来生成第三部分潜在对准216。
57.在第三时间步,神经网络(再次受限于每个块中的前三个位置)可以通过在第一块中生成“b”语言符号、在第二块中生成空白语言符号、以及在第三块中生成空白语言符号来生成第四部分潜在对准218。
58.最后,在第四时间步,神经网络可以在每个块中生成最终语言符号以生成最终潜在对准220。特别地,神经网络可以在第一块的最终位置生成“c”语言符号,在第二块的最终位置生成“e”语言符号,并且在第三块的最终位置生成“f”语言符号。
59.参考图2c,为了避免并行地生成第一块中的最终语言符号和后续块中的第一语言符号,神经网络可以将每个块分割成两个子块。对于每个块,该块的语言符号中的第一半可以在第一子块中,并且该块的语言符号中的第二半可以在第二子块中。对于每个块,在图2c中利用较浅的灰度描绘第一子块,而利用较暗的灰度描绘第二子块。
60.神经网络可以交替在每个块的第一子块和每个块的第二子块之间生成语言符号。例如,系统可以在奇数时间步在每个块的第一子块中生成语言符号,并且在偶数时间步在每个块的第二子块中生成语言符号。
61.作为特定示例,在第一时间步,神经网络可以处理第一部分潜在对准222以生成第二部分潜在对准224。神经网络受限于在每个块的第一子块中生成语言符号。特别地,神经网络在第一块的第一子块中生成“a”语言符号,在第二块的第一子块中生成空白语言符号,并且在第三块的第一子块中生成空白语言符号。
62.在第二时间步,神经网络可以处理第二部分潜在对准224以生成第三部分潜在对准226。神经网络受限于在每个块的第二子块中生成语言符号。特别地,神经网络在第一块的第二子块中生成空白语言符号,在第二块的第二子块中生成“e”语言符号,并且在第三块的第二子块中生成“f”语言符号。
63.在第三时间步,神经网络可以处理第三部分潜在对准226以生成第四部分潜在对准228。神经网络再次受限于在每个块的第一子块中生成语言符号。特别地,神经网络在第一块的第一子块中生成“b”语言符号,在第二块的第一子块中生成空白语言符号,并且在第
三块的第一子块中生成空白语言符号。
64.在第四时间步,神经网络可以处理第四部分潜在对准228以生成最终潜在对准230。神经网络再次受限于在每个块的第二子块中生成语言符号。特别地,神经网络在第一块的第二子块中生成“c”语言符号,在第二块的第二子块中生成“d”语言符号,并且在第三块的第二子块中生成空白语言符号。
65.图3是用于处理输入序列以生成输出序列的示例过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的序列建模系统,例如图1中描绘的序列建模系统100,可以执行过程300。
66.系统获得在多个输入位置中的每个输入位置处具有相应输入语言符号的输入序列(步骤302)。输出序列包括来自多个输出位置中的每个输出位置处的输出语言符号的词汇的相应输出语言符号。
67.系统从输入序列确定多个块(步骤304)。每个块输入输入序列的多个连续输入位置。
68.系统使用神经网络来处理输入序列以生成输入序列的潜在对准(步骤306)。潜在对准在每个输入位置处包括来自输出语言符号的词汇的输出语言符号或空白语言符号。
69.该处理可以包括在多个时间步中的每个时间步接收来自先前输入时间步的部分潜在对准,其中该部分潜在对准在每个输入位置处包括以下之一:输出语言符号、空白语言符号或掩码语言符号。神经网络可以选择每个块中的输入位置,其中,在每个块中的部分潜在对准的所选择的输入位置处的语言符号是掩码语言符号。神经网络然后可以处理i)部分潜在对准和ii)输入序列,以生成新潜在对准,其中新潜在对准在每个块中的所选择的输入位置处包括输出语言符号或空白语言符号。
70.系统从潜在对准生成输出序列(步骤308)。例如,系统可以从潜在对准移除每个空白语言符号以生成输出序列。
71.图4是示例神经网络400的图。神经网络被配置成处理i)输入序列402和ii)部分潜在对准404,并且生成更新的部分潜在对准442。例如,神经网络400可以是图1中描绘的神经网络110。
72.神经网络400可以在多个时间步中的每个时间步生成相应更新的部分潜在对准404。在第一时间步之前,部分潜在对准404可以完全由掩码语言符号组成。然后,在每个时间步,神经网络400可以在部分潜在对准404中选择一个或多个掩码语言符号,并且用词汇语言符号或空白语言符号替换每个所选择的掩码语言符号。在每个时间步,神经网络400可以处理在先前时间步生成的部分潜在对准。在最后时间步之后,当部分潜在对准404中的每个掩码语言符号已经被替换时,更新的部分潜在对准442可以被认为是最终潜在对准。然后,可以例如使用图1中描绘的输出生成引擎120来处理最终潜在对准以生成输出序列。
73.神经网络400包括输入嵌入子网络410、对准嵌入子网络420、组合引擎430和预测子网络440。
74.输入嵌入子网络410被配置成处理输入序列402并且生成输入序列402的嵌入412。在本说明书中,嵌入是表示特定嵌入空间中的输入的数值的有序集合。例如,嵌入可以是具有固定维度的浮点或其他数值的向量。
75.在一些实现方式中,例如,当输入序列402是音频样本的序列时,输入嵌入子网络410可以包括一个或多个一维卷积神经网络层。在其中输入序列402被上采样的一些实现方式中,如上所述,输入嵌入子网络410可以首先处理输入序列402以生成初始输入嵌入,并且然后对初始输入嵌入执行上采样以生成输入嵌入412。在输入序列402被上采样的一些其他实现方式中,输入嵌入子网络410可以首先对输入序列402进行上采样以生成上采样序列(例如,通过将输入序列402中的每个语言符号重复p次),然后处理上采样序列以生成输入嵌入412。
76.因为输入序列402在神经网络400的时间步上没有改变,所以在一些实现方式中,输入嵌入子网络410仅处理输入序列402一次以生成输入嵌入412,然后在每个后续时间步,神经网络400使用相同的输入嵌入412。
77.对准嵌入子网络420被配置成处理部分潜在对准404并且生成部分潜在对准404的嵌入432。在一些实现方式中,对准嵌入子网络420可以包括一个或多个一维卷积神经网络层。
78.组合引擎430被配置成获得输入嵌入412和对准嵌入422,并且组合这两个嵌入以生成组合的嵌入432。在一些实现方式中,输入嵌入412和对准嵌入422是相同大小。例如,组合引擎430可以将组合的嵌入432确定为输入嵌入412和对准嵌入422的总和。作为另一示例,组合引擎430可以级联输入嵌入412和对准嵌入422以生成组合的嵌入432。作为特定示例,组合引擎430可以级联两个嵌入,使得对于输入序列402中的每个语言符号,输入嵌入412中的语言符号的表示和对准嵌入422中的语言符号的表示被级联。作为另一示例,组合引擎430可以使用神经网络,例如多层感知器,来处理输入嵌入412和对准嵌入422两者,以生成组合的嵌入432。
79.预测子网络440被配置成处理组合的嵌入432以生成更新的部分潜在对准442。
80.例如,对于部分潜在对准404中的每个掩码语言符号,预测子网络440可以针对词汇中的每个词汇语言符号生成部分潜在对准404中的掩码语言符号应被指派该词汇语言符号的相应似然值。类似地,预测子网络440可以生成应当向部分潜在对准404中的掩码语言符号指派空白语言符号的似然值。然后,预测子网络440可以选择部分潜在对准404中的一个或多个掩码语言符号,以用相应词汇或空白语言符号来替换,以生成更新的部分潜在对准442。例如,对于每个所选择的掩码语言符号,预测子网络440可以选择具有最高对应似然值的词汇语言符号或空白语言符号。
81.作为特定示例,神经网络400可以如上所述将部分潜在对准404分割成多个块。对于每个块,预测子网络440可以从块中的所有剩余掩码语言符号确定对于相应词汇语言符号或空白语言符号具有单个最高似然性分值的特定掩码语言符号(即,块中的“arg max”掩码语言符号)。预测子网络440然后可以选择特定掩码语言符号,并且用具有最高似然性分值的词汇语言符号或空白语言符号来替换特定掩码语言符号。在一些实现方式中,预测子网络440跨所有块并行地执行这些计算。
82.作为另一特定示例,预测子网络440可以从整个部分潜在对准404中的所有剩余的掩码语言符号,确定针对相应词汇语言符号或空白语言符号具有单个最高似然性分值的一个或多个特定掩码语言符号(即,一个或多个“arg max”掩码语言符号)。例如,预测子网络440可以在每个时间步选择固定数目的特定掩码语言符号,其中固定数目的特定掩码语言
符号可以取决于输入序列402的长度,以确保输出序列在固定数目的时间步中生成,如上所述。预测子网络440然后可以选择特定掩码语言符号,然后用具有最高似然性分值的相应词汇语言符号或空白语言符号来替换特定掩码语言符号。换句话说,神经网络400可以确定部分潜在对准404是单个块,并且在每个时间步贪婪地选择具有最高似然性分值的一个或多个掩码语言符号。
83.作为另一特定示例,预测子网络440可以对于部分潜在对准404的每个块随机选择一个或多个剩余掩码语言符号。例如,预测子网络440可以随机地、一致地选择每个块中的剩余掩码语言符号。对于每个所选择的掩码语言符号,预测子网络440然后可以确定具有最高似然性分值的词汇语言符号或空白语言符号。
84.在一些实现方式中,预测子网络440可以使用自我注意子网络来处理组合的嵌入432。作为特定示例,自我注意子网络可以包括一个或多个转换器自我注意层的堆叠(vaswani等人,arxiv:1706.03762)。在输入序列402和输出序列之间的潜在对准不是单调的实现方式中,如上所述,自我注意子网络可以被训练为自动地对组合的嵌入432中的语言符号的表示重新排序,以生成具有与输出序列的单调潜在对准的更新的组合的嵌入。即,因为自我注意子网络中的每个自我注意层处理由先前层生成的整个序列(即,具有关于序列中的每个元素的全部信息),所以自我注意子网络可以学习隐式地重新排序组合的嵌入432的元素,如生成更新的部分对准442所需。
85.预测子网络440可以包括子网络(例如,包括多层感知器和/或softmax层的子网络),其针对部分潜在对准404中的每个掩码语言符号生成跨可以被指派给掩码语言符号的可能词汇语言符号(和空白语言符号)的概率分布。
86.在一些实现方式中,输入嵌入子网络410、对准嵌入子网络420和预测子网络440可以被端到端地训练。即,训练系统可以通过每个子网络反向传播错误,并行地确定对每个子网络的参数的更新。下面参考图5更详细地讨论这个过程,在一些其它实现方式中,一个或多个子网络可以在训练其它子网络的同时被“冻结”。也就是说,系统在反向传播期间不确定对“冻结”子网络的参数的更新。
87.在一些实现方式中,神经网络400不包括输入嵌入子网络410或对准嵌入子网络420中的一个或多个。即,组合引擎430可以直接获得输入序列402和/或部分潜在对准404以生成组合的嵌入432,如上所述。
88.图5是示例训练系统500的图。训练系统500是作为在一个或多个位置的一个或多个计算机上的计算机程序实现的系统的示例,其中,实现下面描述的系统、组件和技术。
89.训练系统500被配置成训练神经网络,例如图1中描绘的神经网络100,以接收输入序列并且处理该输入序列以生成输出序列。训练系统500包括策略样本引擎510、训练引擎520和参数存储530。
90.策略样本引擎510被配置成生成用于训练神经网络的训练示例。每个训练示例可以包括i)训练输入序列502,ii)训练部分潜在对准504,以及iii)地面实况输出序列506。地面实况输出序列506表示神经网络应当响应于处理训练输入序列502和训练部分潜在对准504而生成的输出。
91.在一些实现方式中,策略样本引擎510从“专家”策略φ对训练示例进行采样。特别地,对于给定输入序列502和地面实况输出序列506,策略样本引擎510可以从在专家策略φ
下的所有可能潜在对准上的分布q
φ
中采样。专家策略可以是被配置成执行与神经网络相同的任务(例如,语音识别或机器翻译)的预先训练的模型。作为特定示例,专家策略φ可以是自回归神经网络,其运行良好但在推断时间花费过多时间来生成输出序列。
92.在一些实现方式中,策略样本引擎510不直接从q
φ
采样,而是从根据专家策略φ生成的不同策略φ

的采样。计算每个训练示例的φ下的每个对准的概率并且将它们离线存储的存储器成本可能是惊人地昂贵,因此在其位置使用更易处理的q
φ

可以是计算上可行的替换。
93.在一些实现方式中,策略样本引擎510通过首先对于每个(x,y)训练示例(其中x表示训练输入序列502,而y表示示例地面实况输出序列506)计算φ下的x的经验最佳对准即,
[0094][0095]
使用这个表达式,可以使用动态编程来有效和精确地计算。策略样本引擎510然后可以通过添加噪声分布n来确定即,作为特定示例,n可以随机地向左或向右移位对准。作为另一特定示例,n可以随机地切换一对或多对语言符号。
[0096]
在一些其他实现方式中,策略样本引擎510将q
φ

设置为q
θ

,其中,q
θ

是从神经网络的参数的陈旧副本θ

创建的固定分布,例如,存储在参数存储530中的当前参数值532。即,策略样本引擎510使用其自己的神经网络θ的陈旧副本θ

作为专家策略。
[0097]
当对训练示例(例如,从或q
φ
)进行采样以训练神经网络时,策略样本引擎510可以“掩码”所采样的潜在对准a的某些语言符号以生成训练部分潜在对准504。即,策略样本引擎510可以通过从所采样的潜在对准a的每个块中选择n个语言符号并且用掩码语言符号替换它们来生成训练部分潜在对准504。这可以被写为使用掩码函数来处理所采样的潜在对准a。在一些实现方式中,r(a)是伯努利分布或均匀分布。
[0098]
在一些实现方式中,策略样本引擎510离线地存储用于相应x和y的一组并且在神经网络的训练期间即时地存储样本n以生成新训练部分对准504,这在计算上可以是快速且高效的。在一些其他实现方式中,策略样本引擎510在训练之前生成每个训练部分对准504。
[0099]
参数存储530被配置成存储神经网络的参数的当前值532。
[0100]
训练引擎520被配置成执行神经网络的训练,即,确定对神经网络的参数的更新。特别地,在多个训练时间步中的每个训练时间步,训练引擎520从策略样本引擎510获得i)训练输入序列502,ii)训练部分对准504,以及iii)对应于训练输入序列502的地面实况输出序列506。训练引擎520还可以从参数存储530获得神经网络的参数的当前值532。
[0101]
训练引擎520然后可以处理训练输入序列502和训练部分对准504以生成更新的部分对准,如以上参考图1和图4所述。训练引擎520然后可以根据更新的部分对准和地面实况输出序列506之间的差异来确定对神经网络的参数的更新。在一些实现方式中,训练引擎520仅执行神经网络一个或几个时间步以生成仍然不完整的更新的部分对准(即,仍然包括一个或多个掩码语言符号),并且然后确定不完整的更新的部分对准和地面实况输出序列
506之间的差异(例如,通过忽略剩余掩码语言符号并且将更新的部分对准中的词汇语言符号与地面实况输出序列506中的对应语言符号进行比较)。在一些其它实现方式中,训练引擎520生成最终对准(即,完全完成训练部分对准504),然后确定最终对准和输出序列506之间的差异(例如,通过丢弃最终对准中的空白语言符号并且将最终对准中的词汇语言符号与地面实况输出序列506中的语言符号进行比较)。
[0102]
在一些实现方式中,训练引擎520可以使用模仿学习来模仿专家策略φ

。在一些这样的实现方式中,训练引擎520可以使用以下目标函数:
[0103][0104]
在一些其他实现方式中,训练引擎520可以使用动态编程来计算目标函数。在一些这样的实现方式中,训练引擎520可以使用以下目标函数:
[0105][0106]
其中返回与从分布q
φ

×
r中提取的兼容的所有可能新对准的集合。通过动态编程,可以准确和有效地计算内对数项。
[0107]
一旦计算出目标函数,训练引擎520就可以使用反向传播和随机梯度下降来确定对神经网络的参数θ的更新。
[0108]
在更新神经网络的参数之后,训练引擎520可以将更新的参数值522提供给参数存储530。
[0109]
在完成训练之后,训练系统500可以输出神经网络的参数的最终训练值534。在一些实现方式中,训练系统500可以在处理预定数量的训练示例之后确定完成训练。在一些其他实现方式中,训练系统500可以在神经网络的性能度量(例如,验证或测试数据集的预测准确性)超过预定阈值之后确定完成训练。在一些其他实现方式中,训练系统500可以在跨多个训练时间步的神经网络的性能度量的递增改善降至预定阈值以下之后,即在神经网络的性能不再显著改善之后,确定完成训练。
[0110]
例如,训练系统500可以将经训练的参数值534提供给推断系统,该推断系统被配置成接收输入序列并且使用经训练的神经网络来处理输入序列以生成网络输出。在一些实现方式中,推断系统可以部署在用户的本地设备上。在一些其他实现方式中,推断系统可以被部署到云系统上,即,在一个或多个位置中具有多个计算节点(例如数百或数千个计算节点)的分布式计算系统上。
[0111]
在一些实现方式中,神经网络在训练和推断期间将输入序列分割成相同块大小b的块。作为特定示例,在训练和推断两者期间,块大小b可以是2、4、8、16或32。在一些其他实现方式中,神经网络可以在训练和推断期间将输入序列分割成不同大小的块。作为特定示例,系统可以在训练期间使用块大小b=8而在推断期间使用块大小b=16或32,或者在训练期间使用块大小b=4而在推断期间使用块大小b=8或16。
[0112]
在一些实现方式中,神经网络可以在训练期间将输入序列分割成块,但是然后在推断期间不将输入序列分割成块。例如,在推断期间,神经网络可以使用贪婪top-k策略,其中神经网络选择k个arg max输入语言符号(如上参考图4所述),而不管潜在对准中的语言符号的位置如何。为了确保系统在训练期间在恰好b个步中生成潜在对准,神经网络可以选
择k=|x|/b。在一些这样的实现方式中,神经网络可以不允许在相同的时间步中选择相邻语言符号。
[0113]
该说明书结合系统和计算机程序组件使用术语“被配置为”。对于要“被配置为”执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在运行时使得系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,当由数据处理装置执行所述指令时,使该装置执行操作或动作。
[0114]
本说明书中描述的主题和功能操作的实施例可以以数字电子电路,以有形实施的计算机软件或固件、以包括本说明书中公开的结构及其结构等价物的计算机硬件、或者以它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码,以发送到合适的接收器装置以供数据处理装置执行。
[0115]
术语“数据处理装置”指的是数据处理硬件并且包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置可以是或还包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置可以可选地包括为计算机程序创建运行环境的代码,例如代码,其构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合。
[0116]
计算机程序,也可以称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、脚本或代码,可以用任何形式的编程语言编写,包括编译或解释性语言,或陈述性或程序性语言;且它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所涉及的程序的单个文件中、或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以部署为在一台计算机上或在多台计算机上运行,所述多台计算机位于一个站点,或跨多个站点分布并通过数据通信网络互连。
[0117]
在本说明书中,术语“数据库”被广泛地用于指代任何数据合集:该数据不需要以任何特定的方式来构造,或者根本不需要被构造,并且可以被存储在一个或多个位置的存储设备中。因此,例如,索引数据库可以包括多个数据合集,每个数据合集可以被不同地组织和访问。
[0118]
类似地,在本说明书中,术语“引擎”广泛用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实施为安装在一个或多个位置的一台或多台计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将专用于特定引擎;在其它情况下,可以在相同的一台或多台计算机上安装并运行多个引擎。
[0119]
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或
多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如fpga或asic)或专用逻辑电路和一个或多个编程的计算机的组合来执行。
[0120]
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或者两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元,以及用于存储指令和数字的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入其中。通常,计算机还将包括或可操作地联接以从和/或向用于存储数据的一个或多个海量存储设备接收和/或传输数据,例如磁盘、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制器、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),等等。
[0121]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,比如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。
[0122]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以向用户显示信息,该计算机还具有键盘和指点设备,例如鼠标或轨迹球,用户可以通过其向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机可以通过向个人设备(例如,正在运行消息收发应用程序的智能电话)发送文本消息或其他形式的消息以及从用户接收响应消息作为交换,来与用户交互。
[0123]
用于实现机器学习模型的数据处理装置还可以包括,例如,专用硬件加速器单元,其用于处理机器学习训练或生产(即推断)工作负载的公共和计算密集部分。
[0124]
可以使用机器学习框架(例如,tensorflow框架,microsoft认知工具包框架,apache singa框架或apache mxnet框架)来实现和部署机器学习模型。
[0125]
可以在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面、web浏览器或应用程序的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现方式进行交互,或者一个或多个这样的后端组件、中间件组件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。
[0126]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过运行在相应的计算机上的计算机程序产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,html
页面)发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从其接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0127]
除了上述实施例之外,以下实施例也是创新的:
[0128]
实施例1是一种从在多个输入位置的每个输入位置处具有相应输入语言符号的输入序列生成在多个输出位置的每个输出位置处具有来自输出语言符号的词汇的相应输出语言符号的输出序列的方法,所述方法包括:
[0129]
接收所述输入序列;
[0130]
确定多个块,其中每个块包括来自所述输入位置的多个连续输入位置;
[0131]
使用神经网络处理所述输入序列以生成所述输入序列的潜在对准,其中,所述潜在对准在所述输入位置的每个输入位置处包括来自所述输出语言符号的词汇的输出语言符号或空白语言符号,所述处理在多个输入时间步中的每个输入时间步包括:
[0132]
接收来自先前输入时间步的部分潜在对准,其中所述部分潜在对准在所述输入位置中的每个输入位置处包括以下之一:输出语言符号、空白语言符号或掩码语言符号;
[0133]
在每个块中选择输入位置,其中在每个块中的部分潜在对准的所选择的输入位置处的语言符号是掩码语言符号;以及
[0134]
使用所述神经网络来处理i)所述部分潜在对准和ii)所述输入序列以生成新潜在对准,其中所述新潜在对准在每个块中的所选择的输入位置处包括输出语言符号或空白语言符号;以及
[0135]
使用所述潜在对准来生成所述输出序列。
[0136]
实施例2是实施例1所述的方法,其中,每个块包括相同数量的输入语言符号,并且其中,输入语言符号的相同数量等于输入时间步的数量。
[0137]
实施例3是实施例1或2中任一项所述的方法,其中,使用所述神经网络来处理i)所述部分潜在对准和ii)所述输入序列以生成新潜在对准包括:
[0138]
使用嵌入子网络来处理所述部分潜在对准以生成部分潜在对准嵌入;
[0139]
使用卷积子网络来处理所述输入序列以生成输入序列嵌入;
[0140]
组合所述部分潜在对准嵌入和所述输入序列嵌入以生成组合的嵌入;以及
[0141]
使用自我注意子网络来处理所述组合的嵌入以生成所述新潜在对准。
[0142]
实施例4是实施例1-3中任一项所述的方法,其中,所述输入语言符号是音频样本,并且所述输出语言符号是文本样本。
[0143]
实施例5是实施例1-4中任一项所述的方法,其中,所述神经网络已经通过使用目标函数更新所述神经网络的参数θ来训练,所述目标函数在与特定部分潜在对准兼容的所有可能新部分潜在对准上边际化。
[0144]
实施例6是实施例5所述的方法,其中,所述目标函数是:
[0145][0146]
其中,x是所述输入序列,a是特定潜在对准,是所述潜在对准a的特定部分潜在对准,φ

是伪专家策略,q
φ

是在伪专家策略φ

下的x的所有可能潜在对准上的分布,r(a)
是x的潜在对准的所有可能掩码置换上的分布,并且返回与从分布q
φ

×
r中提取的特定部分潜在对准兼容的所有可能新部分潜在对准的集合。
[0147]
实施例7是实施例1-4中任一项所述的方法,其中,所述神经网络已经通过使用根据伪专家策略计算损失的目标函数更新所述神经网络的参数θ来训练。
[0148]
实施例8是实施例7所述的方法,其中,所述目标函数是:
[0149][0150]
其中,x是所述输入序列,a是特定潜在对准,是所述潜在对准a的特定部分潜在对准,φ

是伪专家策略,q
φ

是在所述伪专家策略φ

下的x的所有可能对准上的分布,并且r(a)是x的对准的所有可能掩码置换上的分布。
[0151]
实施例9是实施例6或8中任一项所述的方法,其中,其中n是噪声分布并且是专家策略φ下的最佳经验对准,
[0152][0153]
其中,q
φ
是在专家策略φ下的x的所有可能对准上的分布。
[0154]
实施例10是实施例9所述的方法,其中,使用动态编程来计算。
[0155]
实施例11是实施例6或8中任一项所述的方法,其中,q
φ

=q
θ

,其中q
θ

是从所述神经网络的参数θ的陈旧副本θ

创建的固定分布。
[0156]
实施例12是实施例5-11中任一项所述的方法,其中,训练所述神经网络包括:
[0157]
对用于特定输入序列x的特定潜在对准a~q
φ

进行采样;
[0158]
通过从r采样特定掩码置换并且将所述特定掩码置换应用于a来采样特定部分潜在对准
[0159]
使用所述神经网络来处理所述特定部分潜在对准和所述特定输入序列x以生成预测;
[0160]
计算所述目标函数;
[0161]
使用所计算的目标函数来计算所述预测中的误差;
[0162]
通过所述神经网络反向传播所述误差以确定对所述神经网络的参数θ的更新。
[0163]
实施例13是实施例12所述的方法,其中,所述目标函数使用动态编程来计算。
[0164]
实施例14是实施例5-13中任一项所述的方法,其中,r(a)是伯努利或均匀分布。
[0165]
实施例15是实施例1-14中任一项所述的方法,其中,选择每个块中的输入位置包括跨所有块并行地计算用于每个块的arg max输入位置。
[0166]
实施例16是实施例1-15中任一项所述的方法,其中,选择每个块中的输入位置包括:
[0167]
在多个非最终输入时间步中的每一个处,选择输入位置,使得i)在部分潜在对准中的所选择的输入位置处的语言符号是掩码语言符号,以及ii)所选择的输入位置不是所述块中的最终输入位置;以及
[0168]
在最终输入时间步,选择所述块中的最终输入位置。
[0169]
实施例17是实施例1-15中任一项所述的方法,其中,在多个时间步中的每个时间
步选择每个块中的输入位置包括在i)选择每个块中的在该块的第一子块中的输入位置和ii)选择每个块中的在该块的第二子块中的输入位置之间交替。
[0170]
实施例18是一种从在多个输入位置的每个输入位置处具有相应输入语言符号的输入序列生成在多个输出位置的每个输出位置处具有来自输出语言符号的词汇的相应输出语言符号的输出序列的方法,所述方法包括:
[0171]
接收所述输入序列;
[0172]
确定多个块,其中每个块包括来自所述输入位置的多个连续输入位置;
[0173]
使用神经网络处理所述输入序列以生成所述输入序列的潜在对准,其中,所述潜在对准在所述输入位置的每个输入位置处包括来自所述输出语言符号的词汇的输出语言符号或空白语言符号,所述处理在多个输入时间步中的每个输入时间步包括:
[0174]
接收来自先前输入时间步的部分潜在对准,其中所述部分潜在对准在所述输入位置中的每个输入位置处包括以下之一:输出语言符号、空白语言符号或掩码语言符号;
[0175]
在每个块中选择输入位置,其中在每个块中的部分潜在对准的所选择的输入位置处的语言符号是掩码语言符号;以及
[0176]
使用所述神经网络来处理i)所述部分潜在对准和ii)所述输入序列以生成新潜在对准,其中所述新潜在对准在每个块中的所选择的输入位置处包括输出语言符号或空白语言符号;以及
[0177]
使用所述潜在对准来生成所述输出序列。
[0178]
实施例19是实施例18所述的方法,其中,每个块包括相同数量的输入语言符号,并且其中,输入语言符号的相同数量等于输入时间步的数量。
[0179]
实施例20是实施例18或19中任一项所述的方法,其中,使用所述神经网络来处理i)所述部分潜在对准和ii)所述输入序列以生成新潜在对准包括:
[0180]
使用第一嵌入子网络来处理所述输入序列以生成输入序列嵌入;
[0181]
使用第二嵌入子网络来处理所述部分潜在对准以生成部分潜在对准嵌入;
[0182]
组合所述部分潜在对准嵌入和所述输入序列嵌入以生成组合的嵌入;以及
[0183]
使用自我注意子网络来处理所述组合的嵌入以生成所述新潜在对准。
[0184]
实施例21是实施例18-20中任一项所述的方法,其中,所述输入语言符号是音频样本,并且所述输出语言符号是文本样本。
[0185]
实施例22是实施例18-20中任一项所述的方法,其中,所述输入语言符号是第一语言的文本样本,并且所述输出语言符号是第二语言的文本样本。
[0186]
实施例23是实施例18-22中任一项所述的方法,其中,使用所述神经网络来处理i)所述部分潜在对准和ii)所述输入序列以生成新潜在对准包括:
[0187]
对所述输入序列进行上采样以生成经修改的输入序列;以及
[0188]
使用所述神经网络来处理i)所述部分潜在对准和ii)所述经修改的输入序列以生成所述新潜在对准。
[0189]
实施例24是实施例18-23中任一项所述的方法,其中,所述神经网络已经通过使用目标函数更新所述神经网络的参数θ来训练,所述目标函数在与特定部分潜在对准兼容的所有可能新部分潜在对准上边际化。
[0190]
实施例25是实施例24所述的方法,其中,所述目标函数是:
[0191][0192]
其中,x是所述输入序列,a是特定潜在对准,是所述潜在对准a的特定部分潜在对准,φ

是伪专家策略,q
φ

是在伪专家策略φ

下的x的所有可能潜在对准上的分布,r(a)是x的潜在对准的所有可能掩码置换上的分布,并且返回与从分布q
φ

×
r中提取的特定部分潜在对准兼容的所有可能新部分潜在对准的集合。
[0193]
实施例26是实施例18-23中任一项所述的方法,其中,所述神经网络已经通过使用根据伪专家策略计算损失的目标函数更新所述神经网络的参数θ来训练。
[0194]
实施例27是实施例26所述的方法,其中,所述目标函数是:
[0195][0196]
其中,x是所述输入序列,a是特定潜在对准,是所述潜在对准a的特定部分潜在对准,φ

是伪专家策略,q
φ

是在所述伪专家策略φ

下的x的所有可能对准上的分布,并且r(a)是x的对准的所有可能掩码置换上的分布。
[0197]
实施例28是实施例25或27中任一项所述的方法,其中,其中n是噪声分布并且是专家策略φ下的最佳经验对准,
[0198][0199]
其中,q
φ
是在专家策略φ下的x的所有可能对准上的分布。
[0200]
实施例29是实施例28所述的方法,其中,使用动态编程来计算。
[0201]
实施例30是实施例25或27中任一项所述的方法,其中,q
φ

=q
θ

,其中q
θ

是从所述神经网络的参数θ的陈旧副本θ

创建的固定分布。
[0202]
实施例31是实施例24-30中任一项所述的方法,其中,训练所述神经网络包括:
[0203]
对用于特定输入序列x的特定潜在对准a~q
φ

进行采样;
[0204]
通过从r采样特定掩码置换并且将所述特定掩码置换应用于a来采样特定部分潜在对准
[0205]
使用所述神经网络来处理所述特定部分潜在对准和所述特定输入序列x以生成预测;
[0206]
计算所述目标函数;
[0207]
使用所计算的目标函数来计算所述预测中的误差;
[0208]
通过所述神经网络反向传播所述误差以确定对所述神经网络的参数θ的更新。
[0209]
实施例32是实施例31所述的方法,其中,所述目标函数使用动态编程来计算。
[0210]
实施例33是实施例24-32中任一项所述的方法,其中,r(a)是伯努利或均匀分布。
[0211]
实施例34是实施例18-33中任一项所述的方法,其中,选择每个块中的输入位置包括跨所有块并行地计算用于每个块的arg max输入位置。
[0212]
实施例35是实施例18-34中任一项所述的方法,其中,选择每个块中的输入位置包括:
[0213]
在多个非最终输入时间步中的每一个处,选择输入位置,使得i)在部分潜在对准中的所选择的输入位置处的语言符号是掩码语言符号,以及ii)所选择的输入位置不是所述块中的最终输入位置;以及
[0214]
在最终输入时间步,选择所述块中的最终输入位置。
[0215]
实施例36是实施例18-34中任一项所述的方法,其中,在多个时间步中的每个时间步选择每个块中的输入位置包括在i)选择每个块中的在该块的第一子块中的输入位置和ii)选择每个块中的在该块的第二子块中的输入位置之间交替。
[0216]
实施例37是一种系统,包括:一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据实施例1-36中任一项所述的方法。
[0217]
实施例38是一种计算机存储介质,其编码有计算机程序,该程序包括指令,所述指令在由数据处理装置执行时可操作以使所述数据处理装置执行根据实施例1-36中任一项所述的方法。
[0218]
虽然本说明书包含许多具体的实现方式细节,但是这些不应该被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为针对于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以组合或在单个实施例中实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管特征可以在上文描述为以某些组合起作用并且甚至最初如此主张,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从该组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变型。
[0219]
类似地,尽管以特定顺序描述在附图中描绘和在权利要求中引述了操作,但这不应被理解为要求以所示的特定顺序或先后顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文所述的实施例中的各种系统模块和部件的分离不应该被理解为在所有的实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装成多个软件产品。
[0220]
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或先后顺序,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献