NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE翻译

摘要

神经机器翻译是一种最近被提出的用于进行机器翻译的方法。不像传统的统计机器翻译,神经机器翻译的目的是构建可以联合调整以最大化翻译性能的单个神经网络。最近提出的用于神经机器翻译的模型通常属于编码器-解码器类型,该类型将源句子编码为固定长度的向量,解码器根据该向量生成翻译。在本文中,我们假设使用固定长度向量是提高此编码器-解码器体系结构性能的瓶颈,并提出通过允许模型自动搜索与预测目标词相关的源句子的部分来扩展此模型,而不必明确地将这些部分构建成为一个固定分段的形式。通过这种新方法,我们在英语到法语翻译任务上的翻译性能可与现有的基于短语的最新系统相媲美。此外,定性分析表明,模型发现的对齐与我们的直觉非常吻合。

1.介绍

神经机器翻译是一种新兴的机器翻译方法,最近由Kalchbrenner,Blunsom,Sutskever和Cho等人提出。与传统的基于短语的翻译系统(例如,参见Koehn et al.,2003)不同,后者由许多分别调整的子组件组成,而神经机器翻译则尝试构建和训练一个单一的大型神经网络,该网络读取一个句子并输出正确的翻译。
  大部分提出的神经机器翻译模型都属于编码-解码器类型(Sutskever et al., 2014; Cho et al., 2014a),源语言和目标语言分别使用一个编码器和一个解码器,或者涉及一种特定于语言的编码器,比较每个句子的输出(Hermann和Blunsom,2014年)。 编码器神经网络读取源句子并将其编码为固定长度的向量。 然后,解码器从编码的矢量输出翻译。由一个语言对的编码器和解码器组成的整个编码器/解码器系统经过联合训练,可以在给定源句子的情况下最大化地提高正确翻译的概率。
  这种编码器/解码器方法的潜在问题在于,神经网络需要能够将源语句的所有必要信息压缩为固定长度的向量。这可能使神经网络难以应付长句子,尤其是那些比训练语料库中的句子更长的句子。 Cho等表明,随着输入句子长度的增加,编码器-解码器的性能会迅速下降。
  为了解决这个问题,我们引入了编码器-解码器模型的扩展,该模型学习联合对齐和翻译。所提出的模型每次在翻译中生成单词时,都会搜索源句子中最相关信息集中的一组位置。然后,模型基于这些源位置和所有先前生成的目标词关联的上下文向量来预测目标词。
  与基本的编码器/解码器相比,此方法最重要的区别在于,它不会尝试将整个输入语句编码为单个固定长度的向量。而是将输入的句子编码为一系列向量,并在解码翻译时自适应地选择这些矢量的子集。这使神经翻译模型无需将源句子的所有信息(无论其长度如何)压缩为固定长度的向量。我们证明这可以使模型更好地应对较长的句子。
  在本文中,我们表明,与基本的编码解码器方法相比,联合学习对齐和翻译的方法可显着提高翻译性能。句子越长,这种改进越明显,但是着能在任何长度的句子观察到性能改进。在英语到法语翻译的任务上,所提出的方法通过单一模型实现了与传统的基于短语的系统相当或接近的翻译性能。此外,定性分析表明,提出的模型在源句子和相应的目标句子之间找到了语言上合理的对齐方式。

2.背景:神经机器翻译

从概率的角度来看,翻译等同于找到一个目标句子KaTeX parse error: Undefined control sequence: \mb at position 1: \̲m̲b̲ ̲y,使得在给定源句子 x \pmb x 的条件下 y \pmb y 的概率最大,即 a r g m a x y   p ( y x ) argmax_y~p(\pmb y|\pmb x) 。在神经机器翻译中,我们拟合参数化模型,以使用并行训练语料库句子对的条件概率最大。一旦翻译模型学习了条件分布,给定源句子,就可以通过搜索使条件概率最大的句子以生成相应的翻译。
  最近,许多论文提出使用神经网络直接学习这种条件分布。这种神经机器翻译方法通常由两个组件组成,其中第一个组件对源语句 x \pmb x 进行编码,第二个组件对目标语句 y \pmb y 进行解码。 例如,(Cho et al., 2014a)和(Sutskever et al., 2014)使用了两个循环神经网络(RNN)将可变长度的源句子编码为固定长度的向量,并将该向量解码为可变长度的目标句子。
  尽管是一种非常新的方法,但神经机器翻译已经显示出令人鼓舞的结果。 Sutskever等报道,基于具有长短期记忆(LSTM)单元的RNN的神经机器翻译在英语到法语翻译任务上的性能接近传统的基于短语的机器翻译系统。在现有翻译系统中添加神经成分,例如,对短语表中的短语对进行评分或对候选翻译进行重新排序,已超过了 以前的最新性能水平。

2.1 RNN ENCODER-DECODER

在这里,我们简要介绍了Cho等人和Sutskever等人提出的称为RNN编码器-解码器的基础框架,基于这个框架,我们建立了一个新颖的体系结构,该体系结构同时学习对齐和翻译。
  在Encoder-Decoder框架中,编码器将输入的向量序列 x = ( x 1 , . . . , x T x ) \pmb x=(x_1,...,x_{T_x}) 转为向量 c c 。最常见的方法是使用RNN,
h t = f ( x t , h t 1 ) (1) h_t=f(x_t,h_{t-1})\tag{1}
且,
c = q ( { h 1 , . . . , h T x } ) , c=q(\{h_1,...,h_{T_x}\}),
其中 h t R n h_t∈\mathbb R^n 是在时刻 t t 的隐藏状态,而 c c 是从这些隐藏状态的序列生成的向量。 f f q q 是一些非线性函数。 Sutskever等使用LSTM作为 f f q ( { h 1 , . . . , h T } ) , = h T q(\{h_1,...,h_T\}),=h_T
  给定上下文向量 c c 和所有先前预测的词 { y 1 , . . . , y t 1 } \{y_1,...,y_{t'-1}\} ,训练解码器以预测下一个词 y t y_{t'} 。换句话说,解码器通过将联合概率分解为有序条件概率来定义 y \pmb y 的转移概率:
p ( y ) = t = 1 T p ( y t { y 1 , . . . , y t 1 } , c ) (2) p(\pmb y)=\prod^T_{t=1}p(y_t|\{y_1,...,y_{t-1}\},c)\tag{2}
其中 y = ( y 1 , . . . , y T y \pmb y=(y_1,...,y_{T_y} 。使用RNN,每个条件概率都可以建模为:
p ( y t { y 1 , . . . , y t 1 } , c ) = g ( y t 1 , s t , c ) (3) p(y_t|\{y_1,...,y_{t-1}\},c)=g(y_{t-1},s_t,c)\tag{3}
其中 g g 是输出 y t y_t 概率的非线性函数,可能是多层函数,而 s t s_t 是RNN的隐藏状态。应当指出,也可以使用其他架构,例如RNN和反卷积神经网络的混合。

3.学习对齐和翻译

在这里插入图片描述
  在本节中,我们提出了一种用于神经机器翻译的新架构。新架构由双向RNN作为编码器(第3.2节)和解码器组成,该解码器在对翻译进行解码时模拟对源语句的搜索(第3.1节)。

3.1 解码器:通用描述

在新的模型架构中,我们定义等式(2)中的每个条件概率为:
p ( y i y 1 , . . . , y i 1 , x ) = g ( y i 1 , s i , c i ) , (4) p(y_i|y_1,...,y_{i-1},\pmb x)=g(y_{i-1},s_i,c_i),\tag{4}
其中 s i s_i 是时刻 i i RNN的隐藏状态,计算为:
s i = f ( s i 1 , y i 1 , c i ) . s_i=f(s_{i-1},y_{i-1},c_i).
应该注意的是,与现有的编码器-解码器方法(参见等式(2))不同,这里的概率取决于每个目标词 y i y_i 的不同上下文向量 c i c_i
  上下文向量 c i c_i 取决于编码器将输入语句映射到的向量序列 ( h 1 , . . . , h T x ) (h_1,...,h_{T_x}) ,每个向量 h i h_i 包含有关整个输入序列的信息,并将中心放在输入序列的第 i i 个单词周围的部分。我们将在下一节中详细解释向量的计算方式。
  然后,将上下文向量 c i c_i 计算为这些向量 h i h_i 的加权和:
c i = j = 1 T x α i j h j . (5) c_i=\sum^{T_x}_{j=1}\alpha_{ij}h_j.\tag{5}
每个向量 h j h_j 的权重 α i j α_{ij} 被计算为:
α i j = e x p ( e i j ) k = 1 T x e x p ( e i k ) , (6) \alpha_{ij}=\frac{exp(e_{ij})}{\sum^{T_x}_{k=1}exp(e_{ik})},\tag{6}
其中,
e i j = a ( s i 1 , h j ) e_{ij}=a(s_{i-1},h_j)
是一个对齐模型,用于评分位置 j j 周围的输入与位置 i i 处的输出的匹配程度。得分基于RNN隐藏状 s i 1 s_{i-1} (恰好在输出 y i y_i 的等式(4)之前)和输入句子的第 j j 个向量 h j h_j
  我们将对齐模型 a a 参数化为前馈神经网络,该神经网络与提出的系统的所有其他组件共同训练。请注意,与传统机器翻译不同,对齐方式不被视为潜在变量。取而代之的是,对齐模型直接计算软对齐,从而允许损失函数的梯度反向传播。该梯度可用于联合训练对齐模型以及整个翻译模型。
  我们可以理解对所有向量进行加权求和的方法是一种期望向量,其中期望期超出了可能的对齐方式。令 α i j α_{ij} 为目标单词 y i y_i 与源单词 x j x_j 对齐或从源单词 x j xj 转换过来的概率。然后,第 i i 个上下文向量 c i ci 是所有具有概率 α i j α_{ij} 的向量中的期望向量。
  概率 α i j α_{ij} 或其相关能量 e i j e_{ij} 反映了向量 h j h_j 在确定下一个状态 s i s_i 并生成 y i y_i 时相对于上一个隐藏状态 s i 1 s_{i-1} 的重要性。直观地,这实现了解码器中的注意力机制。解码器决定源句中要注意的部分。通过让解码器具有注意力机制,我们使编码器免除了必须将源语句中的所有信息编码为固定长度向量的负担。使用这种新方法,信息可以散布在向量的整个序列中,可以相应地由解码器有选择地检索。

3.2 编码器:双向RNN编码字符序列

常用的RNN,如等式(1)中所述,从第一个符号 x 1 x_1 到最后一个 x T x x_{Tx} 依次读取输入序列 x \pmb x 。但是,在提出的方案中,我们希望每个单词的向量不仅可以概括前面的单词,还可以概括后面的单词。因此,我们建议使用双向RNN,该技术最近已成功用于语音识别中。
  BiRNN由前向和后向RNN组成。前向RNN f \overrightarrow f 按顺序读取输入序列(从 x 1 x_1 x T x x_{Tx} ),并计算前向隐藏状态的序列 ( h 1 , , h T x ) (\overrightarrow h_1,···,\overrightarrow h_{Tx}) 。后向RNN f \overleftarrow f 以相反的顺序(从 x T x x_{Tx} x 1 x1 )读取序列,从而计算后向隐藏状态的序列 ( h 1 , , h T x ) (\overleftarrow h_1,···,\overleftarrow h_{Tx})
  我们通过串联前向隐藏状态 h j \overrightarrow h_j 和后向隐藏状态 o v e r l e f t a r r o w h j overleftarrow h_j 来获得每个单词 x j x_j 的向量,即 h j = [ h j T ; h j T ] h_j=[\overrightarrow h^T_j;\overleftarrow h^T_j] 。这样,向量 h j h_j 包含前面的单词和后面的单词的信息。由于RNN更好地表示最近输入的趋势,因此向量 h j hj 将集中在 x j x_j 周围的单词上。解码器和对齐模型随后使用此向量序列来计算上下文向量(公式(5)–(6))。
  有关所提出模型的图形说明,请参见图1。

猜你喜欢

转载自blog.csdn.net/qq_28385535/article/details/107919547