神经机器翻译是最近提出的机器翻译方法。与传统的统计机器翻译不同,神经机器翻译的目的是建立一个单一的神经网络,可以联合调整,以最大限度地提高翻译性能。最近提出的用于神经机器翻译的模型通常属于编码器 - 解码器族,并且将源语句编码成固定长度向量,解码器从该向量生成翻译。在本文中,我们推测使用固定长度向量是提高这种基本编码器 - 解码器架构的性能的瓶颈。通过允许模型自动(软)搜索与预测目标词相关的部分源语句,而不必明确地将这些部分形成为硬分段的方法解决这个瓶颈。通过这种新的方法,我们取得了与现有的基于短语的系统在英语到法语翻译任务的翻译性能具有可比性的成绩。此外,定性分析揭示了模型发现的(软)对齐对与我们的直觉吻合得很好。
1. 介绍
现有的大部分神经机器翻译模型都是基于编码器-解码器模型。编码器神经网络将源语句读取并编码成固定长度向量。解码器然后从编码向量输出转换。由用于语言对的编码器和解码器组成的整个编码器 - 解码器系统被联合训练以最大化给定源句子的正确翻译的概率。
这种编码器-解码器方法一个潜在的问题就是神经网络必须具备能将有效信息压缩成指定长度向量的能力。这对神经网络处理长句子来说是一个挑战。研究表明,随着句子长度的增加,这种基本的编码器-解码器模型的性能变差得越来越快。
为了解决这个问题,我们在这个编码器-解码器的模型上做了延伸,就是让神经网络联合学习对齐和翻译。每当该模型在翻译中生成单词时,它(软)搜索源语句中集中最相关信息的一组位置。然后,模型基于与这些源位置和所有先前产生的目标字相关联的上下文向量来预测目标字。
该方法与基本编码器 - 解码器的最重要的区别特征在于,它不试图将整个输入语句编码为单个固定长度向量。相反,它将输入句子编码为向量序列,并且在解码翻译时自适应地选择这些向量的子集。这使得神经翻译模型不必将源语句的所有信息压缩成固定长度的向量,而不管其长度如何。我们认为这个模型能更好的处理长句子。
2. 背景
从概率的角度来看,翻译等价于找到最大化给定源句子x的条件概率的目标句子y,即arg maxy p(y | x)。在神经机器翻译中,我们使用参数化模型来使用并行训练语料库来最大化句子对的条件概率。一旦通过翻译模型学习了条件分布,给定源句子,可以通过搜索使条件概率最大化的句子来生成相应的翻译。
2.1 RNN 编码器-解码器
我们简要描述的底层框架,称为RNN编码器 - 解码器,是由Cho等人提出。在这个基础上我们建立一个新的架构,学习同时对齐和翻译。
在编码器 - 解码器框架中,编码器读取输入句子,即向量x =(x1,...,xTx)的序列。最常见的方法是使用RNN, 如下:
ht=f(xt, ht−1)
c=q({h1,···,hTx}),
ht是在t时刻的hidden state, c是从hidden state生成的向量,f和q是一些非线性方程。
这个解码器通常训练为预测基于文本向量c和所有之前预测的词y1~yt'-1的下一个词yt‘。换句话来说,这个解码器通过将联合概率分解为有序条件来定义翻译y上的概率:
p(y) = ??p(yt| {y1,···,yt−1},c) ??求和符号,底为t=1到T
3. 学习对齐与翻译
在本节中,我们提出了一种用于神经机器翻译的新颖架构。新架构包括作为编码器的双向RNN和在解码翻译期间模拟通过源语句搜索的解码器。
3.1 解码器
在这个模型中,我们定义一个条件概率:
p(yi|y1, . . . , yi−1,x) =g(yi−1, si, ci)
si是RNN在t时刻的hidden state,
si=f(si−1,yi−1,ci).
应当注意,与现有的编码器 - 解码器不同的是,这里概率是基于每个目标字yi的不同的上下文矢量ci为条件。
上下文矢量ci取决于编码器对输入语句进行映射的注释序列(h1,...,hTx)。每个注释hi包含关于整个输入序列的信息,其中强烈关注输入序列的第i个字周围的部分。我们将在下一节详细解释注释的计算方式。
然后,将上下文向量ci计算为这些注释hi的加权和。
3.2 编码器
在一般的RNN中,读取一个输入序列,从第一个到对后一个。然而,在我们的结构中,我们希望annotation不仅可以总结出前面已经翻译过的句子,并且还能处理接下来未翻译的句子。所以,我们提出了双向RNN结构。
一个双向RNN由前向和反向RNN组成。前向RNN读取正常的输入序列,正向计算forward hidden states,反向RNN读取相反的输入序列,反向计算backward hidden states.
网友评论