25  什么是神经机器翻译的编码器-解码器模型

递归神经网络的编码器-解码器结构是一种标准的神经机器翻译方法,它可以与传统的统计机器翻译方法相媲美,有时甚至优于传统的统计机器翻译方法该架构非常新颖,虽然2014年才提出来,但已经被谷歌的翻译服务作为了核心技术。在本章中,您将了解用于神经机器翻译的编码器-解码器模型的两个开创性示例。阅读本章后,您将了解:

  • 编码器-解码器循环神经网络架构是Google翻译服务中的核心技术。
  • 用于直接端到端机器翻译的Sutskever模型。
  • GRU单元和注意机制扩展架构Cho模型

25.1 用于NMT的编码器-解码器架构

递归神经网络构成编码器-解码器架构已成为构建神经机器翻译(NMT)和序列到序列(seq2seq)预测模型的高效且标准的结构,该方法的主要优点是能够直接在源语句和目标语句上训练单个端到端模型,以及处理变长度输入和输出文本序列的能力,作为该方法成功的证据,该架构已经是Google翻译服务的核心组件。

我们的模型遵循常见的带注意力机制的序列到序列学习框架。它有三个组件:编码器网络,解码器网络和注意网络。

Googles Neural Machine Translation System: Bridging the Gap between Human and Machine Translation, 2016

在本章中,我们将详细介绍两个不同的研究项目,这两个项目在2014年同时开发出了相同的编码器-解码器架构,并使之流行。他们是:

  • Sutskever NMT模型
  • Cho NMT模型

25.2 Sutskever NMT模型

在本节中,我们将介绍由Ilya Sutskever等人开发的神经机器翻译模型,正如他们在2014年论文Sequence to Sequence Learning with Neural Networks中介绍地一样,由于缺乏更好的名称,我们将其称为Sutskever NMT模型。这是一篇奠基性的论文,它是最早引入机器翻译的编码器-解码器模型,以及引入通用的序列到序列机器学习方法的人之一,它是机器翻译领域的一个重要模型,因为它是第一个在大型翻译任务上胜过基准统计机器学习模型的神经机器翻译系统之一。

25.2.1 问题

该模型适用于英语到法语的翻译,特别是WMT 2014翻译任务,翻译任务一次处理一个句子,并且在训练期间将序列结束(<EOS>)标记添加到输出序列的末尾以表示翻译序列的结束。这允许模型能够预测可变长度输出序列。

请注意,注意,我们要求每个句子的结尾都有一个特殊的结束符号<EOS>,这使得模型能够在所有可能长度的序列上定义一个分布。

  • Sequence to Sequence Learning with Neural Networks2014

该模型在数据集中的1200万个句子的子集上进行训练,该数据集包括3亿48,00个法语单词和3亿400万个英语单词。选择此集是因为它是预先标记好的,经过再次处理后,源词汇量减少到160,000个最常见的源英语单词和80,000个最常见的目标法语单词,所有词汇外的单词都被UNK标记取代。

25.2.2 模型

Encoder-Decoder架构完整读入输入数据序列,编码一个固定长度的内部表示,然后,解码器网络使用该内部表示来输出字,直到到达序列标记的末尾,LSTM网络用于编码器和解码器。

  • 想法是使用一个LSTM读取输入序列,一次一个步骤,以获得大的固定维向量表示,然后使用另一个LSTM从该向量中提取输出序列
  • Sequence to Sequence Learning with Neural Networks2014.

模型是5个深度学习模型的组合。在翻译推断过程中使用了从左到右的集束搜索

25.1:用于文本翻译的Sutskever编码器-解码器模型的描述。

取自Sequence to Sequence Learning with Neural Networks

25.2.3 模型配置

以下提供了从论文中获取的模型配置的摘要:

  • 倒序输入。
  • 使用1000维字嵌入层来表示输入字。
  • 输出层使用了Softmax
  • 输入和输出模型有4层,每层1,000个单元。
  • 该模型训练7.5个迭代,之后的迭代学习率产生衰减。
  • 在训练期间使用批量大小的128个序列。
  • 在训练期间使用梯度裁剪来减轻梯度爆炸的可能性。
  • 批次由大致相同长度的句子组成,以加速计算。

该模型使用了8-GPU进行训练,其中每层在不同的GPU上运行。训练消耗了10天时间。

此模型的训练速度每秒6,300(英语和法语)的速度,批量为128,执行训练过程大约需要十天。

Sequence to Sequence Learning with Neural Networks2014.

25.2.4 结果

该系统的BLEU得分为34.81,与使用统计机器翻译模型开发的基线系统得分33.30相比,这是一个很好的分数。重要的是,这是神经机器翻译系统的第一个例子,它在大规模问题上胜过基于短语的统计机器翻译基线。

......我们获得了34.81BLEU分数[...]这是迄今为止,通过大型神经网络直接翻译获得的最佳结果。为了比较,该数据集上SMT基线的BLEU得分为 33.30

  • Sequence to Sequence Learning with Neural Networks, 2014.

最后使用最终模型对最佳翻译列表进行重新评分,将评分提高到36.5分,接近37.0分的最结果。

25.3 Cho NMT模型

在本节中,我们看看Kyunghyun Cho等人的神经机器翻译系统,这是他们在2014年的论文Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation.提出来的。由于缺乏更好的名称,我们称其为Cho NMT模型模型,重要的是,Cho模型仅用于对候选翻译进行评分,并不像上面的Sutskever模型那样直接用于翻译,尽管用于翻译评估,但适当的扩展和改进,模型确实可以直接独立地用于文本翻译。

25.3.1 问题

如上所述,问题是WMT 2014研讨会的英语到法语翻译任务。源词汇量和目标词汇量仅限于最常见的15,000个法语和英语单词,覆盖了93%的数据集,并且超出词汇表的单词被UNK取代。

...称为RNN编码器-解码器,由两个递归神经网络(RNN)组成。一个RNN将符号序列编码成固定长度的向量表示,而另一个RNN将该向量表示解码成另一个符号序列。

Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation,2014.

25.2:编码器 - 解码器架构的描述。

摘自Learning Phrase Representations using RNN Encoder-Decoder for Statistical MachineTranslation

这个架构的实现没有使后LSTM神经元;相反,开发了一种更简单的递归神经网络单元,称为门控循环单元或GRU

...LSTM神经元获得的启示,我们提出了一种新型的隐藏单元,但计算和实现起来要简单得多。

Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation,2014.

25.3.2 模型配置

以下提供了从论文中获取的模型配置的摘要:

  • 使用100维单词嵌入来表示输入单词。
  • 编码器和解码器配置是单层GRU,每层GRU具有1000个神经单元。
  • 在解码器之后使用500Maxout单元共用2个输入。
  • 在训练期间使用64个句子的批量大小。

该模型训练了大约2天。

25.3.3 扩展

On the Properties of Neural Machine Translation: Encoder-Decoder Approaches论文中Cho等人仔细分析了他们的模型的局限性。他们发现,随着输入句子长度的增加以及词汇表之外的单词数量的增加,性能会迅速下降。

我们的分析表明神经机器翻译的性能受句子长度的影响很大。

  • On the Properties of Neural Machine Translation: Encoder-Decoder Approaches2014

他们提供了一个非常有用句子长度和模型性能对应关系的图表,随着句子的长度的增加越来越难获得和性能匹配的损失值

25.3:句子长度增加的模型性能损失

取自On the Properties of Neural Machine Translation: Encoder-Decoder Approaches,

为了解决未知单词的问题,他们建议在训练期间大大增加已知单词的词汇量。他们在一篇题为Neural Machine Translation by Jointly Learning to Align and Translate的后续论文中解决了句子长度问题:他们建议使用注意力机制,而不是将输入语句编码为固定长度向量,而是保持编码输入的更全面和自由的表示,并且模型的解码器在输出每个单词的时候知道应该将注意力放在输入单词序列的什么位置。

每次所提出的模型在翻译中生成单词时,它(软)搜索源语句中的一组位置,其中最相关的信息被集中。然后,模型基于这些源位置和所有先前生成的目标词相关联的上下文向量来预测目标词。

  • Neural Machine Translation by Jointly Learning to Align and Translate, 2015

本文提供了大量技术细节;例如:

  1. 使用类似配置的模型,具有双向层。
  2. 准备数据使得在词汇表中保留30,000个最常见的单词。
  3. 该模型首先使用长度最多为20个单词的句子进行训练,然后使用长度最多为50个单词的句子进行训练。
  4. 使用80个句子的批量大小,该模型训练4-6个时期。
  5. 在推理期间使用集束搜索来找到每个翻译的最可能的词序列。

这次模型需要大约5天的时间来训练。此后续工作的代码也可用。与Sutskever一样,该模型在经典的基于短语的统计方法的范围内取得了不错的表现。

也许更重要的是,所提出的方法实现了与现有的基于短语的统计机器翻译相当的翻译性能。考虑到所提出的架构或整个神经机器翻译系列仅在今年才被提出,这是一个引人注目的结果。我们相信这里提出的架构是朝着更好的机器翻译和更好地理解自然语言迈出的有希望的一步。

  • Neural Machine Translation by Jointly Learning to Align and Translate, 2015

Kyunghyun Cho也是Nvidia开发者博客2015年系列题为Introduction to Neural Machine Translation with GPUs帖子的作者,该博客主题是神经机器翻译的编码器-解码器架构,该系列提供了对该主题和模型的良好介绍。


0 条 查看最新 评论

没有评论
暂时无法发表评论