神经机器翻译的编码 - 解码架构有了新进展, 具体要怎么配置?

用于循环神经网络的编码 - 解码架构,在标准机器翻译基准上取得了最新的成果,并被用于工业翻译服务的核心。 该模型很简单,但是考虑到训练所需的大量数据,以及调整模型中无数的设计方案,想要获得最佳的性能是非常困难的。值得庆幸的是,研究科学家已经使用谷歌规模的硬件为我们做了这项工作,并提供了一套启发式的方法,来配置神经机器翻译的编码 - 解码模型和预测一般的序列。 在这篇文章中,您将会获得,在神经机器翻译和其他自然语言处理任务中,如何最好地配置编码 - 解码循环神经网络的各种细节。

阅读完这篇文章后,你将知道

  • 谷歌的研究调查了各个模型针对编码 - 解码的设计方案,以此来分离出它们的作用效果。
  • 关于一些设计方案的结果和建议,诸如关于词嵌入、编码和解码深度以及注意力机制。
  • 一系列基础模型设计方案,它们可以作为你自己的序列到序列的项目的起始点。

让我们开始吧:

Sporting Park

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

用于循环神经网络的编码 - 解码架构,取代了经典的基于短语的统计机器翻译系统,以获得最新的结果。

根据他们 2016 年发表的论文 “Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation”,谷歌现已在他们的 Google 翻译服务的核心中使用这种方法。

这种架构的问题是模型很大,需要非常大量的数据集来训练。 这受到模型训练花费数天或数周的影响,并且需要非常昂贵的计算资源。 因此,关于不同设计选择对模型的影响及其对模型技能的影响,已经做了很少的工作。

Denny Britz 等人清楚地给出了解决方案。 在他们的 2017 年论文 “神经机器翻译体系的大量探索” 中,他们为标准的英德翻译任务设计了一个基准模型,列举了一套不同的模型设计选择,并描述了它们对技能的影响。他们声称,完整的实验耗费了超过 250,000 个 GPU 计算时间,至少可以说是令人印象深刻的。

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

在本文中,我们将审视这篇文章的一些发现,我们可以用它来调整我们自己的神经网络机器翻译模型,以及一般的序列到序列模型 。

有关编码 - 解码体系结构和注意力机制的更多背景信息,请参阅以下文章:

Encoder-Decoder Long Short-Term Memory Networks(http://t.cn/RQcOsqr )

Attention in Long Short-Term Memory Recurrent Neural Networks(http://t.cn/RQcW7gN )

基线模型

我们可以通过描述用作所有实验起点的基线模型开始。

选择基线模型配置,使得模型在翻译任务上能够很好地执行。

  • 嵌入:512 维
  • RNN 小区: 门控循环单元或 GRU
  • 编码器:双向
  • 编码深度: 2 层 (每个方向一层)
  • 解码深度:2 层
  • 注意: Bahdanau 风格
  • 优化器:Adam
  • 信息丢失:20% 的投入

每个实验都从基准模型开始,并且改变了一个要素,试图隔离设计决策对模型技能的影响,在这种情况下,BLEU 得分。

神经网络机器翻译的编码 - 解码体系结构 取自 “Massive Exploration of Neural Machine Translation Architectures”

嵌入大小

一个词嵌入(word embedding)用于表示单词输入到编码器。

这是一个分散表示(distributed representation),其中每个单词映射到一个具有连续值的固定大小向量上。这种方法的好处是,具有相似含义的不同词语将具有类似的表示。

通常在训练数据上拟合模型时学习这种分散表示。嵌入大小定义了用于表示单词的矢量长度。一般认为,更大的维度会导致更具表现力的表示(representation),反过来功能更好。

有趣的是,结果显示最大尺寸的测试确实取得了最好的结果,但增加尺寸的收益总体来说较小。

[结果显示] 2048 维的嵌入取得最佳的整体效果,他们只小幅这样做了。即使是很小的 128 维嵌入也表现出色,收敛速度几乎快了一倍。

建议:从一个小的嵌入大小开始,比如 128,也许稍后增加尺寸会轻微增强功能。

RNN 单元种类共有三种常用的循环神经网络(RNN):

  • 简单循环神经网络
  • 长短期记忆网络(LSTM)
  • 门控循环单元(GRU)

LSTM 是为了解决简单循环神经网络中限制循环神经网络深度学习的梯度消失问题而开发的。GRU 是为了简化 LSTM 而开发的。结果显示 GRU 和 LSTM 都显著强于简单 RNN,但是 LSTM 总体上更好。

在我们的实验中,LSTM 单元始终胜过 GRU 单元。

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

编码 - 解码深度

通常认为,深度网络比浅层网络表现更好。

关键在于找到网络深度、模型功能和训练时间之间的平衡。 这是因为,如果对功能的改善微小,我们一般没有无穷的资源来训练超深度网络。

作者正在探索编码模型和解码模型的深度,以及对模型功能的影响。

说到编码,研究发现深度对功能并没有显著影响,更惊人的是,一个 1 层的双向模型仅优于一个 4 层的结构很少。一个 2 层双向编码器只比其他经测试的结构强一点点。

我们没有发现确凿证据可以证明编码深度有必要超过两层。

建议: 使用 1 层的双向编码器,然后扩展到 2 个双向层,以此将功能小幅度强化。

关于解码器也是类似的。1,2,4 层的解码器之间的功能差异很小。4 层的解码器略胜一筹。8 层解码器在测试条件下没有收敛。

在解码器这里,深度模型比浅层模型表现略好。

建议:用 1 层的解码器作为起步,然后用 4 层的解码器获得更优的结果。

编码器输入的方向

源文本序列可以通过以下几种顺序发送给编码器:

  • 正向,即通常的方式
  • 反向
  • 正反向同时进行

作者发现了输入序列的顺序对模型功能的影响,相较于其他多种单向、双向结构。 总之,他们证实了先前的发现:反向序列优于正向序列、双向的比反向序列略好。

…… 双向编码器通常比单向编码器表现更好,但不是绝对优势。具有反向数据源的编码器全部优于和它们相当的未反向的对照。

建议:使用反向输入序列或者转变为双向,以此将功能小幅度强化。

注意力机制

原始的编码 - 解码模型有一个问题:编码器会将输入信息安排进一个固定长度的内部表达式,而解码器必须从其中计算出整个输出序列。

注意力机制是一个进步,它允许编码器 “关注” 输入序列中不同的字符并在输出序列中分别输出。

作者观察了几种简单的注意力机制的变种。结果显示具备注意力机制将大幅提升模型表现。

当我们期待基于注意力机制的模型完胜时,才惊讶地发现没有 “注意力” 地模型表现多么糟糕。

Bahdanau, et al. 在他们 2015 年的论文 “Neural machine translation by jointly learning to align and translate” (https://arxiv.org/abs/1409.0473 )中表述的一种简单加权平均的注意力机制表现最好。

建议:使用注意力机制并优先使用 Bahdanau 的加权平均的注意力机制。

推断

神经系统机器翻译常常使用集束搜索来对模型输出序列中的单词的概率取样。

通常认为,集束的宽度越宽,搜索就越全面,结果就越好。

结果显示,3-5 的适中的集束宽度表现最好,通过长度折损仅能略微优化。作者建议针对特定问题调节宽度。

我们发现,调节准确的集束搜索对好结果的取得非常关键,它可以持续获得不止一个的 BLE 点。

建议:从贪婪式搜索开始 (集束 = 1) 并且根据你的具体问题调节。

最终模型

作者把他们的发现都应用在同一个 “最好的模型” 中,然后将这个模型的结果与其他表现突出的模型和体现最高水平的结果比较。

此模型的具体配置如下表,摘自论文。当你为自然语言处理程序开发自己的编码 - 解码模型时,这些参数可以作为一个好的起始点。

最终的神经网络机器翻译模型的模型配置总结

“Massive Exploration of Neural Machine Translation Architectures”

此系统的结果令人印象深刻,它用更简单的模型达到了接近最先进的水平,而这并不是论文的最终目标。

…… 我们确实证明了通过仔细的超参数调整和优良的初始化,基于标准的 WMT 也可能达到最先进的水平。

很重要的一点,作者将他们的代码作为了开源项目,称作 “tf-seq2seq”。2017 年,因为其中两位作者时谷歌的大脑训练项目的成员,他们的成果在谷歌研究博客上发布,标题为 “Introducing tf-seq2seq: An Open Source Sequence-to-Sequence Framework in TensorFlow“。

延伸阅读

如果你想深入了解,这部分提供关于此话题的更多资源。

  • Massive Exploration of Neural Machine Translation Architectures, 2017.(https://arxiv.org/abs/1703.03906 )
  • Denny Britz Homepage(http://blog.dennybritz.com/ )
  • WildML Blog(http://www.wildml.com/ )
  • Introducing tf-seq2seq: An Open Source Sequence-to-Sequence Framework in TensorFlow, 2017.(http://t.cn/RXZTaE5 )
  • tf-seq2seq: A general-purpose encoder-decoder framework for Tensorflow(https://github.com/google/seq2seq )
  • tf-seq2seq Project Documentation(https://google.github.io/seq2seq/)
  • tf-seq2seq Tutorial: Neural Machine Translation Background(https://google.github.io/seq2seq/nmt/ )
  • Neural machine translation by jointly learning to align and translate, 2015.(https://arxiv.org/abs/1409.0473 )

总结

本文阐述了在神经网络机器翻译系统和其他自然语言处理任务中,如何最好地配置一个编码 - 解码循环神经网络。具体是这些:

  • 谷歌的研究调查了各个模型针对编码 - 解码的设计方案,以此来分离出它们的作用效果。
  • 关于一些设计方案的结果和建议,诸如关于词嵌入、编码和解码深度以及注意力机制。
  • 一系列基础模型设计方案,它们可以作为你自己的序列到序列的项目的起始点。

作者 / Jason Brownlee

译者 / 崔跃辉、叶倚青

校对 / 叶倚青

整理 / 雷锋字幕组

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CreateAMind

Unsupervised Learning of Latent Physical Properties Using

https://www.groundai.com/project/unsupervised-learning-of-latent-physical-proper...

8030
来自专栏AI研习社

从聚合-转移框架浅谈卷积神经网络的架构设计

本次Paper Reading我们并没有关注某些特定的paper,而是用一个视角对现有的代表性的卷积神经网络设计进行总结。

14220
来自专栏语言、知识与人工智能

游戏文本关键词提取工作的尝试和探索

如何将合适的游戏文本打上正确的关键词标签,并将内容推送给恰当的用户成为一个重要的课题。

1.6K50
来自专栏懒人开发

(4.9)James Stewart Calculus 5th Edition:Newton’s Method

Newton’s Method 牛顿法则, 又叫 Newton-Raphson method 牛顿迭代法则

12640
来自专栏机器之心

教程 | 如何为神经机器翻译配置编码器-解码器模型?

21950
来自专栏机器之心

学界 | 微软基于短语的神经机器翻译方法NPMT:不使用任何注意机制

选自arXiv 作者:Po-Sen Huang等 机器之编译 参与:李亚洲 谷歌前不久在 arXiv 上发表论文《Attention Is All You N...

30370
来自专栏AI2ML人工智能to机器学习

易图秒懂の深度学习诞生 问题篇

认知科学改写了一帮搞物理的人在做神经网络的局面(参考 ”易图秒懂の连接主义诞生“), 从此以心理学大师Estes的学生,Rumelhart为代表的连接主义的早...

9510
来自专栏机器之心

学界 | 无监督神经机器翻译:仅需使用单语语料库

38080
来自专栏人工智能头条

深度学习和自然语言处理中的Attention和Memory机制

44650
来自专栏小石不识月

如何为神经机器翻译配置一个编码器 - 解码器模型

循环神经网络(RNN,Recurrent Neural Networks)中的编码器 - 解码器(Encoder-Decoder)架构在标准机器翻译基准上取得了...

38090

扫码关注云+社区

领取腾讯云代金券