使用神经网络产生输入序列的表示的制作方法
【技术领域】
[0001]本说明书涉及使用神经网络产生输入序列的表示。
[0002]许多数据处理任务包含将输入的有序序列转换为输出的有序序列。例如,机器翻译系统将一种语言的词语的输入序列翻译为另一种语言的词语的序列。作为另一个示例,发音系统将字形的输入序列转换为音素的目标序列。
【发明内容】
[0003]本说明书说明了在一个或多个地点的一个或多个计算机上实施为计算机程序的系统如何将输入序列转换为是输入序列的表示的目标序列,例如不同形式的输入序列的表不O
[0004]可以实施本说明书中所述主题的具体实施例以便实现一个或多个以下优点。可以准确预测是不同形式的输入序列的表示的目标序列。例如,机器翻译系统可以准确预测对所接收的词语的序列的翻译。作为另一个示例,字形-音素系统可以准确预测表示所接收的字形的序列的音素的序列。作为另一个示例,自动编码器系统可以准确自动编码所接收的序列。
[0005]在以下附图和说明中阐述了本说明书中所述主题的一个或多个实施例的细节。依据说明、附图和权利要求书,主题的其他特征、方面和优点会是显而易见的。
【附图说明】
[0006]图1示出了示例序列表示系统。
[0007]图2是产生输入序列的目标表示的流程图。
[0008]图3是用于使用解码器LSTM神经网络产生目标序列的示例过程的流程图。
[0009]图4是用于使用解码器LSTM神经网络执行集束搜索(beam search)解码的示例过程的流程图。
[0010]不同附图中相似的附图标记和命名指示相似的要素。
【具体实施方式】
[0011]图1示出了示例序列表示系统100。序列表示系统100是在一个或多个地点的一个或多个计算机上实施为计算机程序的系统的示例,在其中可以实施下述的系统、组件和技术。
[0012]序列表示系统100接收输入序列,并且将输入序列转换为目标序列。每一个目标序列都是输入序列的表示,例如输入序列不同形式的表示。例如,序列表示系统100可以接收输入序列102,和产生输入序列102的目标序列122。输入序列102的目标序列122是序列表示系统100分类为表示输入序列的输出的有序序列。例如,如果输入序列102是源语言的词语的序列,例如句子或段落,由序列表示系统100产生的目标序列122可以是输入序列到目标语言的翻译,即目标语言的词语的序列,其表示源语言的词语的序列。作为另一个示例,如果输入序列102是字形的序列,例如序列{g,ο,O,g,1,e},由序列表示系统100产生的目标序列122可以是输入序列的音素表示,例如序列{g,uh, g,ax, 1}。
[0013]通常,由序列表示系统100接收的输入序列和由序列表示系统100产生的目标序列是可变长度的序列,即分别为可以包含变化数量的输入和输出的序列。另外,由序列表示系统100产生的目标序列中的输出的数量可以与从中产生目标序列的输入序列中的输入的数量相同或不同。
[0014]序列表示系统100包括编码器长短期记忆(LSTM)神经网络110和解码器LSTM神经网络120。
[0015]作为从输入序列产生目标序列的部分,序列表示系统100使用编码器LSTM神经网络110处理输入序列,以产生输入序列的可替换表示,例如输入序列102的可替换表示112。
[0016]编码器LSTM神经网络110是递归神经网络,其接收输入序列,并且从输入序列产生可替换的表示。具体而言,编码器LSTM神经网络110是LSTM神经网络,其包括一个或多个LSTM神经网络层,每一个LSTM层都包括一个或多个LSTM记忆块。每一个LSTM记忆块都可以包括一个或多个单元,每一个单元都包括输入门、忘记门和输出门,它们允许单元存储由单元产生的在前激活,例如作为用于在产生当前激活中使用的隐藏状态,或者提供给LSTM神经网络110的其他组件。在可以在http://arxiv.0rg/abs/1308.0850v5获得的Alex Graves 的 “Generating sequences with recurrent neural networks (产生具有递归神经网络的序列)”中更详细地说明了示例的LSTM神经网络。
[0017]例如通过训练配置编码器LSTM神经网络110以根据一组参数处理给定输入序列中的每一个输入,以产生输入序列的可替换表示。具体而言,编码器LSTM神经网络110被配置为按照输入顺序接收输入序列的每一个输入,并且对于给定的所接收的输入,通过处理所接收的输入更新编码器LSTM神经网络110的当前隐藏状态,即通过处理当前所接收的输入,修改通过处理来自输入序列的在前输入而产生的编码器LSTM神经网络110的当前隐藏状态。
[0018]以下参考图2更详细地说明使用编码器LSTM神经网络产生可替换表示。
[0019]序列表示系统100使用解码器LSTM神经网络120处理产生的输入序列的可替换表示,以产生输入序列的目标序列。例如,序列表示系统100可以使用解码器LSTM神经网络120处理可替换表示112,以产生输入序列102的目标序列122。
[0020]解码器LSTM神经网络120是LSTM神经网络,其包括一个或多个LSTM层,并且被配置为接收目标序列中的当前输出,并根据解码器LSTM神经网络120的当前隐藏状态和一组参数的当前值,为来自当前输出的一组可能的输出的每一个产生相应的输出得分。给定输出的输出得分表示该输出是目标序列的下一个输出的可能性,即,该输出在目标序列中紧跟在当前输出之后。作为产生输出得分的部分,解码器LSTM神经网络120还更新网络的隐藏状态以产生经更新的隐藏状态。
[0021 ] 该组可能的输出包括可能的输出的词汇和指定句尾标志。输出的词汇中的输出是作为由系统接收的输入的可能表示而提供给系统的输出,例如如果到系统的输入是源语言的词语,且系统将输入序列从源语言翻译为目标语言,就是目标语言的词语,如果到系统的输入是字形,且系统产生字形序列的音素表示,就是音素,或者如果系统是自动编码器,就包括到系统的每一个可能的输入。句尾标志是指定输出,它不在可能的输出的词汇中。
[0022]以下参考图2和3更详细地说明使用解码器LSTM神经网络处理可替换表示以产生目标序列。
[0023]图2是从输入序列产生目标序列的示例过程200的流程图。为了方便,将过程200说明为由位于一个或多个地点的一个或多个计算机的系统来执行。例如,适当地编程的序列表示系统,例如图1的序列表示系统100,可以执行过程200。
[0024]系统获得输入序列(步骤202)。输入序列包括根据输入顺序排列的一组输入。例如,输入序列可以是要转换为音素的对应的序列的字形的序列,或者要翻译为不同语言的词语的序列的一种语言的词语的序列。
[0025]系统使用编码器LSTM神经网络,例如图1的编码器LSTM神经网络110,来处理输入序列以将输入序列转换为输入序列的可替换表示(步骤204)。
[0026]作为处理输入序列的部分,系统修改输入序列,在输入序列的末尾(即在输入顺序的最后位置的输入之后)插入句尾令牌标志或不同的指定令牌标志,以产生经修改的输入序列。指定令牌标志是指定输入,它不在可以包括在由系统处理的输入序列中的可能输入的词汇中,并且如果指定令牌标志是句尾令牌标志,那么它也不在可能输出的词汇中。
[0027]系统随后使用编码器LSTM神经网络处理经修改的输入序列中的每一个输入,以产生输入序列的可替换表示。具体而言,系统从编码器LSTM神经网络的隐藏状态产生可替换表示。例如,可替换表示可以是处理了在输入序列的末尾的指定标志之后的编码器LSTM的隐藏状态,即,编码器LSTM的最后隐藏状态。因而,由于系统从编码器LSTM神经网络的隐藏状态产生可替换表示,输入序列的可替换表示就是定长表示,即可替换表示中的元素的数量是固定的,且与输入序列中输入的数量无关。例如,LSTM隐藏状态,及相应的可替换表示可以是数值的向量,其具有固定