论文阅读:《Neural Machine Translation by Jointly Learning to Align and Translate》
2017-06-24 08:43
495 查看
这是2015年的一篇会议论文,作者是Dmitry Bandana,KyungHyun Cho,Yoshua Bengio。本文最重要的贡献就是提出了attention机制。下面我先总结每段的要点,然后适当添加自己的解读。
ABSTRACT
神经机器翻译(NMT)里,别人大多用encoder-decoder,我们推测把原句编码到一个固定长度的向量是一个瓶颈,然后我们提出了改进。
1 INTRODUCTION
神经机器翻译是新技术,大多数都是encoder-decoder。一个潜在的问题是把信息都压缩在固定长度的向量,无法对应长句子。为了解决这个问题,我们提出了一个扩展,它同时进行对齐和翻译。每次我们的模型生成新的翻译词,它在原句那些最有可能包含有关信息的位置上进行搜索。
这个方法最重要的特点是,它没有尝试将原句的所有部分编码到固定长度的向量,而是它把原句编码到一序列向量,然后在解码的时候灵活的选用这个序列的子集。
2 BACKGROUND:NEURAL MACHINE TRANSLATION
从统计的角度看,翻译相当于寻找译句 y,使得给定原句 x 时条件概率最大,即 argmaxyp(y|x)。
2.1 RNN ENCODER-DECODER
在Encoder-Decoder框架里,编码器把原句,一个序列的向量 x=(x1,...,xTx),编码到一个向量c。最普遍的方法是用一个RNN:
ht=f(xt,ht−1)
还有
c=q({ht,...,hTx})
解码器用来给定上下文向量c和所有之前预测好的词{y1,...,yt′−1},预测下一个词yt′
。换句话说,解码器定义了翻译 y上的概率分布:
p(y)=∏t=1Tp(yt⎪{y1,...,yt−1},c)
在这里 y=(y1,...,yTy)。有了RNN,每个条件概率都表示成:
p(yt⎪{y1,...,yt−1},c)=g(yt−1,st,c)
在这里g是一个非线性的,多层的函数,st是decoder RNN的隐状态。
解读:到这里编码器和解码器都定义好了,我们的目的就是同时训练编码器和解码器,使得它们能最合适地表征训练数据。换句话说,使得训练好的编码器和解码器最大可能地生成训练数据。这就是极大似然估计的含义。
3 LEARNING TO ALIGN AND TRANSLATE
3.1 DECODER:GENERAL DESCRIPTION
在新的模型结构里,我们定义条件概率为:
p(yi⎪{y1,...,yi−1},x)=g(yi−1,si,ci)
在这里si是RNN i时刻的隐状态,这样计算:
si=f(si−1,yi−1,ci)
值得一提的是,跟之前的不一样,这里每个词yi都有单独的上下文ci。
解读:关键部分来了,在之前的模型里,一句话的每个词都共用一个上下文,但是新的模型是一句话的每个词都有自己的上下文,这就是注意力机制的精髓。上下文是怎么计算的呢?下面讲了。
上下文ci取决于解码器产生的注释序列(h1,...,hTx)。每个注释hi都包含了整个原句的信息,伴随着对原句第i个词周围的关注。下一节会详细解释注释。
上下文向量ci是这些注释的加权和:
ci=∑j=1Txαijhj
每个注释的权重这样计算:
αij=exp(eij)∑Txk=1exp(eik)
在这里
eij=a(si−1,hj)
是一个对齐模型,这个模型衡量了原句的j位置和译句的i位置在多大程度上匹配。对齐模型a作为一个前馈神经网络,跟编码器和解码器共同进行训练。
解读:到这里就呼应题目了——对齐和翻译是同时学习的。学习对齐模型只是手段,目的是完善注意力机制——计算每个翻译词的上下文。下段继续解释对齐模型和权重。
我们可以把计算注释的加权和看成计算期望注释。把αij当做译句词yi由原句词xj翻译而来的概率。概率αij反映了注释hj相对于前一个隐状态si−1在预测下一个状态si和生成yi过程中的重要性。直观上,这在解码器上实现了注意机制。
解读:简单讲,αij越大,翻译第i个词的时候就更应该着重注意原句第j个词。
3.2 ENCODER:BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES
以往的RNN,都是从句子第一个符号读到最后一个符号。然而,我们想要让注释不仅囊括之前的信息,还要包含之后的信息,所以我们采用双向RNN。
一个BiRNN由向前和向后RNN组成。向前RNN f→从左到右读取原句(从x1到xTx),然后计算一个序列的向前隐状态(h→1,...,h→Tx)。向后RNN f←反方向读取原句,然后计算一个序列的向后隐状态(h←1,...,h←Tx)。
剩下的几章就是实验,结论之类,略掉。
ABSTRACT
神经机器翻译(NMT)里,别人大多用encoder-decoder,我们推测把原句编码到一个固定长度的向量是一个瓶颈,然后我们提出了改进。
1 INTRODUCTION
神经机器翻译是新技术,大多数都是encoder-decoder。一个潜在的问题是把信息都压缩在固定长度的向量,无法对应长句子。为了解决这个问题,我们提出了一个扩展,它同时进行对齐和翻译。每次我们的模型生成新的翻译词,它在原句那些最有可能包含有关信息的位置上进行搜索。
这个方法最重要的特点是,它没有尝试将原句的所有部分编码到固定长度的向量,而是它把原句编码到一序列向量,然后在解码的时候灵活的选用这个序列的子集。
2 BACKGROUND:NEURAL MACHINE TRANSLATION
从统计的角度看,翻译相当于寻找译句 y,使得给定原句 x 时条件概率最大,即 argmaxyp(y|x)。
2.1 RNN ENCODER-DECODER
在Encoder-Decoder框架里,编码器把原句,一个序列的向量 x=(x1,...,xTx),编码到一个向量c。最普遍的方法是用一个RNN:
ht=f(xt,ht−1)
还有
c=q({ht,...,hTx})
解码器用来给定上下文向量c和所有之前预测好的词{y1,...,yt′−1},预测下一个词yt′
。换句话说,解码器定义了翻译 y上的概率分布:
p(y)=∏t=1Tp(yt⎪{y1,...,yt−1},c)
在这里 y=(y1,...,yTy)。有了RNN,每个条件概率都表示成:
p(yt⎪{y1,...,yt−1},c)=g(yt−1,st,c)
在这里g是一个非线性的,多层的函数,st是decoder RNN的隐状态。
解读:到这里编码器和解码器都定义好了,我们的目的就是同时训练编码器和解码器,使得它们能最合适地表征训练数据。换句话说,使得训练好的编码器和解码器最大可能地生成训练数据。这就是极大似然估计的含义。
3 LEARNING TO ALIGN AND TRANSLATE
3.1 DECODER:GENERAL DESCRIPTION
在新的模型结构里,我们定义条件概率为:
p(yi⎪{y1,...,yi−1},x)=g(yi−1,si,ci)
在这里si是RNN i时刻的隐状态,这样计算:
si=f(si−1,yi−1,ci)
值得一提的是,跟之前的不一样,这里每个词yi都有单独的上下文ci。
解读:关键部分来了,在之前的模型里,一句话的每个词都共用一个上下文,但是新的模型是一句话的每个词都有自己的上下文,这就是注意力机制的精髓。上下文是怎么计算的呢?下面讲了。
上下文ci取决于解码器产生的注释序列(h1,...,hTx)。每个注释hi都包含了整个原句的信息,伴随着对原句第i个词周围的关注。下一节会详细解释注释。
上下文向量ci是这些注释的加权和:
ci=∑j=1Txαijhj
每个注释的权重这样计算:
αij=exp(eij)∑Txk=1exp(eik)
在这里
eij=a(si−1,hj)
是一个对齐模型,这个模型衡量了原句的j位置和译句的i位置在多大程度上匹配。对齐模型a作为一个前馈神经网络,跟编码器和解码器共同进行训练。
解读:到这里就呼应题目了——对齐和翻译是同时学习的。学习对齐模型只是手段,目的是完善注意力机制——计算每个翻译词的上下文。下段继续解释对齐模型和权重。
我们可以把计算注释的加权和看成计算期望注释。把αij当做译句词yi由原句词xj翻译而来的概率。概率αij反映了注释hj相对于前一个隐状态si−1在预测下一个状态si和生成yi过程中的重要性。直观上,这在解码器上实现了注意机制。
解读:简单讲,αij越大,翻译第i个词的时候就更应该着重注意原句第j个词。
3.2 ENCODER:BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES
以往的RNN,都是从句子第一个符号读到最后一个符号。然而,我们想要让注释不仅囊括之前的信息,还要包含之后的信息,所以我们采用双向RNN。
一个BiRNN由向前和向后RNN组成。向前RNN f→从左到右读取原句(从x1到xTx),然后计算一个序列的向前隐状态(h→1,...,h→Tx)。向后RNN f←反方向读取原句,然后计算一个序列的向后隐状态(h←1,...,h←Tx)。
剩下的几章就是实验,结论之类,略掉。
相关文章推荐
- 【论文阅读】Neural Machine Translation By Jointly Learning To Align and Translate
- 论文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》总结
- NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
- [ICLR2015]Neural Machine Translation by Jointly Learning to Align and Translate
- NOTES of NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
- 论文阅读:End-to-End Learning of Deformable Mixture of Parts and Deep Convolutional Neural Networks for H
- 【论文阅读】Addressing the RareWord Problem in NeuralMachine Translation
- 论文阅读:《Associative Embedding:End-to-End Learning for Joint Detection and Grouping》
- Neural Machine Translation论文阅读笔记
- 论文阅读:ByteNet, Neural Machine Translation in Linear Time
- Neural Machine Translation and Sequence-to-sequence Models: A Tutorial
- APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK 论文阅读
- Pattern Recoginition and Machine Learning Intro - Using neural nets to recognize handwritten digits
- 论文阅读:Dual Learning for Machine Translation
- 【论文阅读】Generating Natural Answers by Incorporating Copying and Retrieving Mechanisms in Sequence-to-S
- 论文阅读:Learning and Transferring Mid-Level Image Representations using Convolutional Neural Networks
- 【nlp论文阅读】Adversal Neural Machine Translation
- 【论文阅读】Author2Vec: Learning Author Representations by Combining Content and Link Information
- Machine learning (Regression and neural networks) by Mark K Cowan
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)