26  如何配置机器翻译的编码器-解码器模型

递归神经网络的编码器-解码器体系结构在标准机器翻译基准上实现了比较好的的结果,并逐步被用于工业翻译服务的核心。这个模型看上去很简单,但训练它所需要的大量数据和较好的硬件,为了能在问题上获得最佳性能,又需要进行大量的设计决策和调参,实际上在应用过程中非常棘手。值得庆幸的是,研究者已经使用Google规模的硬件为我们完成这项工作,并提供了一套启发式方法,用于如何配置编码器-解码器模型,以进行神经机器翻译和一般的序列预测。

在本章中,您将了解如何最佳地配置编码器-解码器循环神经网络,以进行神经机器翻译和其他自然语言处理任务的详细信息。阅读本章后,您将了解:

  1. 谷歌研究调查了编码器-解码器模型中的每个模型设计决策,以隔离它们的影响。
  2. 推荐的设计决策的结果和建议:字嵌入,编码器和解码器深度以及注意机制。
  3. 可用自己的序列到序列项目的起点的一组基本模型设计决策。

26.1 神经机器翻译的编码器-解码器模型

为了是翻译系统获得更好的表现,以递归神经网络为基础构件的编码器-解码器架构正在取代经典基于短语的统计机器翻译系统,以谷歌为例我们可以看出整个行业的趋势,通过他们的2016年论文Googles Neural Machine Translation System: Bridging the Gap between Human and Machine Translation中的描述,谷歌现在正在逐步把这种方法用于他们的谷歌翻译服务的核心。

这种架构的一个问题是模型很大,又需要非常大的数据集来训练,这就导致了这种架构的模型训练需要数天或数周的时间,同时还需要非常昂贵的计算资源。因此,不同设计选择对模型的影响及其对模型性能的影响的可借鉴工作很少。Denny Britz等人明确地解决了这个问题,在他们的2017年论文Massive Exploration of Neural Machine Translation Architecture中,他们设计了标准英语-德语翻译务的基线模型,并列举了一套不同的模型设计选择,并描述了它们对模型性能的影响,他们声称完整的实验耗时折合使用单GPU计算的刷相当于250,000个计算小时,这至少可以说令人印象深刻。

我们报告了数百次实验运行的实证结果和方差数,相当于标准WMT英语到德语翻译任务的超过250,000 GPU小时,我们的实验为构建和扩展NMT架构提供了新颖的见解和实用建议。

  • Massive Exploration of Neural Machine Translation Architecture2017.

在本章中,我们将看一下该篇论文的一些发现,那些方面我们可以借鉴用来调整自己的神经机器翻译模型,以及一般的序列到序列模型。

26.2 基线模型

我们可以通过描述用作所有实验起点的基线模型来开始。选择基线模型配置,使得模型在翻译任务上表现得相当好。

  • 嵌入层:512维。
  • RNN Cell:门控循环单元或GRU
  • 编码器:双向。
  • 编码器深度:2层(每个方向1层)。
  • 解码器深度:2层。
  • 注意:Bahdanau风格。
  • 优化器:adam
  • Dropout:输入20%的丢弃率。

每个实验都从基线模型开始,并改变一个元素,以试图隔离设计决策对模型性能的影响,在本例中是BLEU评分。

26.1:用于神经机器翻译的编码器 - 解码器架构。摘自Massive Exploration of Neural Machine Translation Architecture

26.3 单词嵌入大小

词嵌入用于表示输入到编码器的转换,这是一种分布式表示,其中每个单词都映射到固定大小的连续值向量上,这种方法的好处是具有相似含义的不同单词将具有相似的表示,通常在将模型拟合到训练数据上时学习该分布式表示。嵌入大小定义用于表示单词的向量的长度,人们普遍认为,较大的维度将导致更具表现力的表现形式,从而产生更好的性能。有趣的是,结果表明,测试的最大尺寸确实达到了最佳效果,但增加维度的好处总体上是有的得不偿失。

[结果显示] 2048维嵌入产生了总体最佳结果,它们只是小幅度地实现了。即使很小的128维嵌入也表现得非常好,而收敛速度几乎快了两倍。

  • Massive Exploration of Neural Machine Translation Architecture 2017.

议:从小型嵌入开始,例如128,可能会稍后增加维度,以提高模型的性能。

 

26.4 RNN神经元类型

通常使用三种类型的递归神经网络细胞:

  • 简单的RNN
  • 长期短期记忆或LSTM
  • 门控循环单元或GRU

开发LSTM的目的是为了解决简单RNN梯度消失的问题,这限制了深RNN的训练。GRU的开发旨在简化LSTM。结果显示GRULSTM均显着优于Simple RNN,但LSTM总体上更好。

在我们的实验中,LSTM神经元始终优于GRU神经元

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

议:在模型中使用LSTM RNN单元。

26.5 编码器-解码器深度

通常,认为更深的网络比浅网络实现更好的性能,关键是要在网络深度、模型性能和训练时间之间找到平衡点,这是因为我们通常没有无限的资源来训练非常深的网络,如果对模型性能的好处很小,我可以不做极限优化。作者探讨了编码器和解码器模型的深度以及对模型性能的影响,对于编码器而言,发现深度对模型性能没有显着影响,更令人惊讶的是,单层单向模型仅比4层单向配置略差,双层双向编码器的性能略优于其他测试配置。

我们没有发现明确的证据表明超过两层的编码器深度是必要的。

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

议:使用1层双向编码器并扩展到2个双向层,以提高模型性能。

解码器出现了类似的故事。具有124层的解码器之间的模型性能略有不同,其中4层解码器略微更好。8层解码器在测试条件下无法收敛。

在解码器方面,较深的模型以较小的幅度优于较浅的模型。

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

议:使用1层解码器作为起点,并使用4层解码器以获得更好的模型效果。

26.6 编码器输入方向

源文本序列的顺序可以通过多种方式提供给编码器:

  • 前向或正常。
  • 逆转。
  • 同时正序和逆序。

作者探讨了输入序列顺序对模型性能的影响,比较了各种单向和双向配置。总体来说,他们证实了先前的发现,即反向序列优于正向序列,并且双向略好于反向序列。

...双向编码器通常优于单向编码器,但不是很大。具有反向源的编码器始终优于其未反转的编码器。

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

议:使用反向顺序输入序列或移动到双向以获得模型性能的小升力。

26.7 注意力机制

朴素编码器-解码器模型的一个问题是编码器将输入映射到一个固定长度的内部表示,解码器必须从该表示中生成整个输出序列。注意力机制是对模型的改进,该模型允许解码器在输出序列中输出每个字时注意输入序列中的不同字。作者研究了简单注意机制的一些变化。结果表明,使用注意力机制的模型会比没有注意力机制模型具有明显更好的表现。

虽然我们确实预计基于注意力的模型会明显优于那些没有注意力机制的模型,但我们对(没有注意力的)模型表现得如此糟糕感到惊讶。

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

Bahdanau等人描述的简单加权平均风格注意机制,在他们的2015年论文Neural machine translation by jointly learning to align and translate中简单加权平均风格注意机制被发现表现最佳。

议:使用注意机制并且使用Bahdanau式加权平均风格的注意力机制。

26.8 推理

在神经机器翻译系统中,通常使用集束搜索来对模型输出的序列中的单词的概率进行采样,集束的宽度越宽,搜索越详尽,并且越可信,结果越好。结果表明,3-5的适度集束宽度表现最好,通过使用长度惩罚可以非常轻微地改善。作者通常建议在每个特定问题上调整集束宽度。

我们发现,良好调谐的集束搜索对于获得良好的结果至关重要,并且它可以导致多个BLEU点的一致增益

  • Massive Exploration of Neural Machine Translation Architectures, 2017.

议:从贪婪搜索开始(beam=1)并根据您的问题进行调整。

26.9 最终模型

作者将他们的研究结果汇总到一个最佳模型中,并将该模型的结果与其他表现良好的模型和最好的结果进行比较。该模型的具体配置总结在下表中,摘自论文。在为NLP应用程序开发自己的编码器-解码器模型时,这些参数可以作为一个好的或最好的起点。

26.2:最终NMT模型的模型配置摘要。摘自Massive Exploration of Neural Machine Translation Architectures

该系统的结果显示出令人印象深刻的效果,并且通过更简单的模型获得了接近现有技术的性能,这不是论文的目标。

...我们确实表明,通过仔细的超参数调整和良好的初始化,可以在标准WMT基准测试中实现最好的性能

  • Massive Exploration of Neural Machine Translation Architectures, 2017

重要的是,作者将所有代码作为tf-seq2seq开源项目提供,由于其中两位作者是Google Brain的成员,因此他们的工作在Google Research博客上公布,其标题为Introducing tf-seq2seq: An Open Source Sequence-to-Sequence Framework in TensorFlow, 2017


0 条 查看最新 评论

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