当前位置:   article > 正文

论文学习笔记(一)——NEURALMACHINETRANSLATIONBYJOINTLYLEARNING TOALIGN ANDTRANSLATE_neural machine translation

neural machine translation

黑色字体是原文翻译,红色字体是我所做的总结与解释

部分参考:一篇不错的博客

摘要:

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

将源句编码为固定长度的向量在encoder-decoders训练限制了这种编码器-解码器的性能提高,文章通过允许模型自动搜索与要预测的句子相关的源句打破这个瓶颈,得到了与当前最先进的基于短语的系统相媲美的性能。

  • 介绍

神经机器翻译是一种新兴的机器翻译方法,最近由 Kalchbrenner 和 Blunsom (2013)、Sutskever 等人提出。 (2014) 和 Cho 等人。 (2014b)。与传统的基于短语的翻译系统(参见 Koehn et al., 2003)不同,该系统由许多单独调整的小子组件组成,神经机器翻译试图构建和训练一个单一的大型神经网络,该网络读取一个句子并输出正确的翻译。

大多数提出的神经机器翻译模型都属于编码器-解码器系列(Sutskever et al., 2014; Cho et al., 2014a),每种语言都有一个编码器和一个解码器,或者涉及应用特定语言的编码器到然后比较其输出的每个句子(Hermann 和 Blunsom,2014)。编码器神经网络读取源语句并将其编码为固定长度的向量。解码器然后输出来自编码向量的翻译。由语言对的编码器和解码器组成的整个编码器-解码器系统经过联合训练,以最大限度地提高给定源句子正确翻译的概率。

这种编码器-解码器方法的一个潜在问题是,神经网络需要能够将源语句的所有必要信息压缩成一个固定长度的向量。这可能会使神经网络难以处理长句子,尤其是那些比训练语料库中的句子长的句子。 Cho 等人。 (2014b) 表明,随着输入句子长度的增加,基本编码器 - 解码器的性能确实会迅速恶化。

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

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

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

第一部分的介绍,简而言之就是为了突破基本encoder-decoder机制中将必要信息压缩成固定长度的向量,且对于语料库中的句子越长产生的效果越差的问题,提出了联合学习对齐和翻译的方法。

  • 背景:神经机器学习。

从概率的角度来看,翻译相当于在给定源句子 x 的情况下找到最大化 y 的条件概率的目标句子 y,即 arg maxyp(y | x)。在神经机器翻译中,我们拟合参数化模型以使用并行训练语料库最大化句子对的条件概率。一旦翻译模型学习了条件分布,给定一个源句子,就可以通过搜索使条件概率最大化的句子来生成相应的翻译。

最近,一些论文提出使用神经网络来直接学习这种条件分布(参见,例如,Kalchbrenner 和 Blunsom,2013;Cho 等人,2014a;Sutskever 等人,2014;Cho 等人,2014b ; Forcada and~Neco, 1997)。这种神经机器翻译方法通常由两个部分组成,第一个部分编码源句子 x,第二个部分解码为目标句子 y。例如,(Cho et al., 2014a) 和 (Sutskever et al., 2014) 使用两个循环神经网络 (RNN) 将可变长度的源语句编码为固定长度的向量,并将向量解码为一个可变长度的目标句子。

尽管是一种全新的方法,但神经机器翻译已经显示出有希望的结果。 Sutskever 等人。 (2014) 报告称,基于具有长短期记忆 (LSTM) 单元的 RNN 的神经机器翻译在英法翻译任务上达到了接近传统基于短语的机器翻译系统的最先进性能.1 将神经组件添加到现有翻译系统,例如,对短语表中的短语对进行评分(Cho 等人,2014a)或重新排列候选翻译(Sutskever 等人,2014 年),已经允许超越以前最先进的性能水平。

使用神经网络学习一种条件分布来翻译:从概率的角度说,翻译就相当于在给定编码源句子的情况下找到最大化条件概率的目标句子y。并指出很多论文已经在做了。

RNN encoder-decoder

在这里,我们简要描述了由 Cho 等人提出的称为 RNN Encoder-Decoder 的底层框架。 (2014a) 和 Sutskever 等人。 (2014) 在此基础上,我们构建了一个新颖的架构,可以同时学习对齐和翻译

在 Encoder-Decoder 框架中,编码器将输入句子、向量序列 x= (x1,···, xTx) 读入向量 c.2 最常见的方法是使用 RNN,

其中ht∈R是时间t处的隐藏状态,C是从隐藏状态序列生成的向量。f and q是一些非线性函数。 例如,Sutskeveret al.(2014) 使用 LSTM 作为 f 和 q({h1,···, hT}) =hT。

在给定上下文向量C和所有先前预测的单词{y1,···,yt0的情况下,解码器通常被训练来预测下一个单词yt0−1}. 换言之,解码器通过将联合概率分解为有序条件来定义翻译上的概率:

式中Y=(y1,··,yTy)。对于RNN,每个条件概率建模为

其中,g是一个非线性、潜在的多层函数,输出YT的概率,并显示RNN的隐藏状态。应该注意的是,可以使用其他架构,例如RNN和去卷积神经网络的混合(Kalchbrenner和Blunsom,2013)

首先回顾下基本的Encoder-decoder:

Encoder一般是RNN,它读入input sentence,一般是一连串的vector:X=(X1,X2,X3...XT),将其编码成一个vector C,公式如下:

其中,ht是encoder在t时刻的hidden-state,  C是由这些hidden-state最后生成的一个代表全句子的vector。经典的模型使用LSTM作为f,C=f吐出的最后一个hidden-state,也就是hT。

上面的结构,在运行期间,每个hidden state只包含了其前面的词的信息,作者使用了双向RNN( bidirectional RNN),即一个词的隐层状态不仅压缩了其前面的词的信息,还压缩了后面的词。其Encoder的架构如下图所示:

https://img-blog.csdn.net/20180525154856492?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

一个BiRNN包含一个前向(forward)和一个后向(backward)RNN。前向RNN按照词序列从x1向xt的顺序依次压缩源语句,并得到一系列隐层状态。类似地,后向RNN按照Xt到X1的顺序依次压缩源语句词,得到。正如上面的结构图所示。

最后对于词Xi,它的隐层状态通过连接两个RNN的结果得到。(也有的人喜欢将两个向量之间加起来,效果也不错)。可以看到,hi压缩了前向和后向的表示,并且由于RNN的特性,会使得更加关注词Xi周围的词,这使得RNN可以更好地表达当前的输入。 h的序列将用于后续的Decoder和对齐模型中。

上述也是原论文3.2的解释。

  • Decoder:学习对齐和翻译(LEARNING TOALIGN ANDTRANSLATE)

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

 

Decoder:

在新的模型架构中,我们将等式(2)中的每个条件概率定义为:

其中Si是time i的RNN隐藏状态,由下式计算:

应该注意的是,与现有的编码器-解码器方法不同,这里概率取决于每个目标词的不同上下文向量。

上下文向量依赖于编码器将输入句子映射到的一系列符号(h1,···,hTx)。每个注释都包含有关整个输入序列的信息,重点放在输入序列第i个字周围的部分。

然后,将上下文向量计算为以下注释的加权和:

每个注释hj的权重αij由以下公式计算:

cij是一种校准模型,它对位置A周围的输入和位置I匹配处的输出进行评分。分数基于RNN隐藏状态i−1(就在释义之前,等式(4))和输入句子的第j个注释。

我们将对准模型参数化为前馈神经网络,该神经网络与建议系统的所有其他组件联合训练。请注意,与传统的机器翻译不同,校准不被视为潜在变量。相反,对齐模型直接计算软对齐,这允许成本函数的梯度反向传播。该梯度可以用来联合训练对齐模型和整个平移模型。

我们可以理解将所有注释的加权和作为计算预期注释的方法,其中预期超过可能的对齐。设αij为目标单词yi与源单词xj对齐或从源单词xj翻译的概率。然后,第i个上下文向量ci是概率为αij的所有注释的预期注释

概率αij或其相关能量eij反映了注释hj相对于先前隐藏状态si-1的重要性在决定下一个州并生成yi时。直观地说,这在解码器中实现了注意机制。译码器决定要注意的部分源语句。通过让解码器有一个注意机制,我们减轻了编码器必须将源语句中的所有信息编码为固定长度向量的负担。通过这种新方法,信息可以在注释序列中传播,解码器可以相应地选择性地检索注释序列。

传统的Decoder 的表达式为:

也就是说,Decoder预测每个yi时,使用的是之前时间步预测的结果y<i   与 C,这里的C就是encoder获得的embedding。可以看到传统的方法,对每个yi的预测,使用的C都是一样的。而作者的模型:

https://img-blog.csdn.net/20180525160427170?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

其中: Zi表示i时间Decoder中RNN的隐层状态,定义为:

https://img-blog.csdn.net/20180525160507829?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

可见,与普通的Encoder-Decoder结构不同的是,源语言端上下文向量表示由原来的C变成了Ci。即针对每一个目标词yi,都有一个特定的上下文Ci与之对应(也就是如果固定Ci=hT,那么模型就变为RNN Encoder-Decoder了)。

https://img-blog.csdn.net/20180525160734711?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

上图就是基于Attention的Decoder结构图。

上下文向量Ci依赖于Encoder得到的 annotation (h1,....hT),其中每个hj压缩了源语言端的词并且“关注于”Xj周围的词。

Ci可以通过各个annotation加权平均获得:

其中,从hj到Ci的权重αij通过下式计算:

https://img-blog.csdn.net/20180525160945268?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

Decoder中的a可以看做是一个对齐模型,用来衡量第j个源端词语目标端第i个词的匹配程度,这个程度则通过Decoder的隐层状态Zi-1与源端第j个annotaiton计算得到。不同于传统的对齐模型:源语言端每个词明确对齐到目标语言端一个或多个词(hard alignment).  而该方法计算得到的是一种soft alignment。可以融入整个NMT框架,通过BP算法求梯度来更新参数。

将Attention机制引入NMT中,可以使得Decoder更多地关注源语言端的部分相关词,从而缓解了Encoder-Decoder框架中将源语言压缩成固定维度向量带来的问题。

在训练上,通过Encoder获得了一系列的Encoder隐层状态Hi,然后开始Decoder的时候,第一次的Decoder输入是一个SOS token,第一个Decoder的hidden state作者使用的是 :

https://img-blog.csdn.net/20180525170607625?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4MTQzMDEwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

也就是Encoder中第一个反向的hidden state,这样计算出来的第一个词的attention会更关注源语句第一个词周围的词,这也比较符合直观上的理解。使用这个S0和[SOS token]以及通过S0生成的attention 进行weighted sum获得的context来继续进行后续操作。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/461962
推荐阅读
相关标签
  

闽ICP备14008679号