NEURAL MACHINE TRANSLATION

NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

ABSTRACT

神经机器翻译是最近提出的机器翻译方法。与传统的统计机器翻译不同,神经机器翻译旨在构建单个神经网络,通过联合调整以最大化翻译性能。最近提出的用于神经机器翻译的模型通常属于一系列编码 - 解码器,并将源句编码成固定长度的矢量,解码器从该矢量生成翻译。在本文中,我们推测固定长度向量的使用是在改善这种基本编码器 - 解码器架构性能过程中的瓶颈,并且建议通过允许模型自动搜索与预测目标词相关的源句子部分来扩展这一点,无需明确地将这些部分形成为 hard segment 。通过这种新的翻译方法,我们在英法翻译任务中实现了与现有最先进的基于短语的系统相当的翻译性能。此外,定性分析表明,模型发现的对齐与我们的直觉很吻合。

1 INTRODUCTION

神经机器翻译是一种新兴的机器翻译方法,最近由 Kalchbrenner 和 Blunsom(2013),Sutskever等人提出。传统的基于短语的翻译系统由许多可以分开调整的小的子组件组成,与其不同的是,神经机器翻译试图建立和训练一个单独的大型神经网络来读取句子并输出正确的翻译。

大多数所提出的神经机器翻译模型属于编码器 - 解码器系列,具有针对每种语言的编码器和解码器,或涉及应用于其输出然后进行比较的每个句子的语言专用编码器。编码器神经网络将源句子读取并编码为固定长度的矢量。然后,解码器从编码矢量输出翻译。对于每个语言对来说,整个编码器 - 解码器系统由编码器和解码器组成,它们被联合训练,以最大化给定源句子的正确翻译的概率。

这种编码器 - 解码器方法的潜在问题是神经网络需要能够将源句子的所有必要信息压缩成固定长度的矢量。这可能使神经网络难以处理长句,特别是那些比训练语料库中的句子长的句子。Cho et al. 表明,随着输入句子的长度增加,基本编码器 - 解码器的性能急剧恶化。

为了解决这个问题,我们扩展了编码器 - 解码器模型,该模型学习了共同对齐和翻译。每次在翻译中生成单词时,所提出的模型搜索源语句中的一组位置,该位置中最相关的信息集中在一起。然后,模型基于与这些源位置和所有先前生成的与目标词相关联的上下文向量来预测目标词。

这种方法与基本的编解码器最重要的区别在于它不试图将整个输入句子编码为单个固定长度的向量。相反,它将输入语句编码为一系列向量,并在解码翻译时自适应地选择这些向量的子集。这使得神经翻译模型不必将源语句的所有信息(不论其长度如何)压缩到固定长度的向量中。我们表明,该模型能更好地处理长句。

在本文中,我们证明所提出的联合学习对齐和翻译的方法与基本的编解码器方法相比显著提高了翻译性能。用较长的句子进行改进更明显,但可以用任意长度的句子来观察。在英法翻译任务时,所提出的方法在单个模型下实现了与传统的基于短语的系统相当或接近的翻译性能。此外,定性分析表明,所提出的模型在源句和相应的目标句之间找到了语言上可信的对齐。

3 LEARNING TO ALIGN AND TRANSLATE

在本节中,我们提出了一种新颖的神经机器翻译架构。新架构由作为编码器的双向RNN和模拟在解码翻译期间搜索源句的解码器组成。

3.1

应当注意,与现有的编码器 - 解码器方法不同,这里的每个目标词的概率 y i y_i 是以不同的上下文 c i c_i 为条件的。

上下文向量 c i c_i 取决于编码器映射到输入语句的 annotation 序列( h 1 . . . h T x h_1,...,h_{T_x} )。每个 annotation hi 都包含关于整个输入序列的信息,并且关注输入单词xi周围的词。我们将在下一节详细解释如何计算 annotation。 h i h_i 也即 h i \xrightarrow[h_i]{} h i \xleftarrow[h_i]{} 的某种组合。

然后,上下文向量ci是这些hi的加权和:
在这里插入图片描述
h j h_j 的权重 α i j \alpha_{ij} 为:
在这里插入图片描述
其中, e i j e_{ij} 为:
在这里插入图片描述
i j e_{ij} 可以看做一个对齐模型,用来衡量第 j 个位置的输入词与第i个输出词的匹配程度。这个程度基于 Decoder 的隐藏状态 s i 1 s_{i-1} 和输入句子的第 j 个 annotation h j h_j 计算得到。

直观来想就是,如果你想要决定要花多少注意力在t的激活值上,它似乎很大程度上取决于你上一个时间步的的隐藏状态的激活值。你还没有当前状态的激活值,但是看看你生成上一个翻译的RNN的隐藏状态,然后对于每一个位置,每一个词都看向他们的特征值,这看起来很自然,即 i j e_{ij} 应该取决于这两个量。但是我们不知道具体函数是什么,所以我们可以做的事情就是训练一个很小的神经网络,去学习这个函数到底是什么。

因此我们参数化对齐模型a为前馈神经网络,该网络与所系统的所有其他组件共同训练。请注意,不同于传统的对齐模型,将源语言端每个词明确对齐到目标语言端一个或多个词( hard segment),而是计算得到的是一种软对齐(soft alignment),可以融入整个 NMT 框架,通过反向传播算法求得梯度以更新参数。

我们可以理解将所有 annotations 的加权和作为计算预期 annotation 的方法。让 α i j α_{ij} 是目标词 y j y_j 与源词 x j x_j 对齐或翻译的概率。然后,第 i 个上下文向量 c i c_i 是对所有具有 α i j α_{ij} 概率的 annotations 的预期 annotations 。

概率 α i j α_{ij} 或其相关的 e i j e_{ij} 反映了 h j h_j 相对于先前隐藏状态 s i 1 s_{i-1} 在决定下一状态 s i s_i 和产生 y i y_i 时的重要性。直观地讲,这实现了解码器中的 attention 机制。解码器决定要关注的源句的哪些部分。通过让解码器具有 attention 机制,我们减轻了编码器必须将源句中的所有信息编码为固定长度的向量的负担。利用这种新方法,信息可以在整个 annotation 序列中传播,这可以由解码器相应有选择性地检索。

#3.2

通常的RNN,按照从第一个符号x1到最后一个符号 x T x x_{T_x} 的顺序读取输入序列x。但是,在提出的方案中,我们希望每个单词的 annotation 不仅要概述前面的单词,还要概述下面的单词。因此,我们计划使用一个双向RNN,最近在语音识别中得到了成功的应用。

双向 RNN 由前向和后向 RNN 组成。前向RNN f \vec{f} 以顺序 x 1 x T x x_1到x_{T_x} 的顺序读取输入序列,并且计算前向隐藏状态序列 ( h 1 , . . . , h T x ) (\vec{h_1},...,\vec{h_{T_x}}) 。反向RNN f \xleftarrow[f]{} 以顺序 x T x x 1 x_{T_x}到x_1 的顺序读取输入序列,并且计算反向隐藏状态序列 ( h 1 , . . . , h T x ) (\xleftarrow[h_1]{},...,\xleftarrow[h_{T_x}]{})

对于每一个词 x j x_j 我们获取其 annotation 是通过串联其前向隐藏状态 h j \vec{h_j} 和其反向隐藏状态 h j \xleftarrow[h_j]{} ,例如:
在这里插入图片描述
这样,annotation h j h_j 包含前面的单词和后面的单词的概括。由于RNN更倾向于表示最近的输入,因此annotation h j h_j 将集中在 x j x_j 周围的单词上。解码器和对齐模型稍后使用该 annotation 序列来计算上下文向量。
在这里插入图片描述

4 EXPERIMENT SETTINGS

我们用该方法评估了英语到法语翻译任务,使用的是ACL WMT '14提供的双语平行语料库。作为比较,我们也测试了RNN编码器 - 解码器的性能。我们对两个模型使用相同的训练步骤和相同的数据集。

4.1 DATASET

WMT '14包含以下英法平行语料库:Europarl(61M),新闻评论(5.5M),UN(421M)和两个分别为90M和272.5M字的爬行语料库,总计850M。按照Cho等人 的步骤,我们使用Axelrod等人的数据选择方法将组合语料库的大小减小到348M。除了提到的并行语料库之外,我们没有使用任何单语数据,尽管可能使用更大的单语语料库来预训练编码器。我们连接了 news-test 2012 和 news-test-2013,以进行开发设置,并在WMT '14中的测试集(news-test-2014)中评估该模型,其中包含3003个不存在于训练数据的句子。

在通常的标记化之后,我们使用每种语言中30,000个最常用单词的候选名单来训练我们的模型。未列入候选名单的任何单词都会映射到特殊标记UNK中。我们不对数据应用任何其他特殊的预处理。

4.2 Models

我们训练两种模型。第一个是RNN编码器 - 解码器,另一个是我们提出的模型,称之为RNNsearch模型。我们对每个模型进行两次训练:首先使用长度最多为30个单词的句子(RNNencdec-30, RNNsearch-30),然后使用长度最多为50个单词的句子(RNNencdec-50,RNNsearch-50)。

RNNencdec 的编码器和解码器各有1000个隐藏单元。RNNsearch 的编码器由前向和后向循环神经网络(RNN)组成,每个神经网络具有1000个隐藏单元。它的解码器也有1000个隐藏单元。在这两种情况下,我们使用具有单个 maxout 隐藏层的多层网络来计算每个目标词的条件概率。

我们使用小批量随机梯度下降算法和 Adadelta 来训练每个模型。每个 SGD 的更新方向用80个句子的小批量计算。我们训练每个模型大约5天。

一旦模型被训练,我们使用集束搜索来找到具有最大条件概率的翻译。

猜你喜欢

转载自blog.csdn.net/FK103/article/details/84254666