当前位置:   article > 正文

NLP paper精读(二)——NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

neural machine translation by jointly learning to align and translate


本文是对2015年发表在ICLR的论文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》简要概述。
该论文主要是最早将Attention Model 引入Encoder-Decoder框架。

引言

神经机器翻译试图建立和训练一个单一的,大的神经网络,读取一个句子,并输出正确的翻译。
目前大部分提出的基于神经网络的机器翻译属于encoder-decoder框架
encoder将源语言句子编码成为一个固定长度的向量。
decoder将encoder编码成的定长向量转变为目标语言的句子。

传统的encoder-decoder框架存在弊端:需要将所有的必要信息编码成一个固定的向量,对于长句子的处理效果极差。

文章提出的模型生成目标语言词汇是基于源语言相关上下文位置的信息向量和已经生成的目标语言的词汇。

这使得model不需要将源语言的所有信息,无论长短压缩至一个固定长度的向量。

背景:神经机器翻译

从概率的角度分析,翻译过程等价于寻找一个目标句子 y y y在给定源语言句子 x x x的情况下,条件概率最大化。即:
a r g m a x y p ( y ∣ x ) argmax_yp(y|x) argmaxyp(yx)

RNN Encoder-Decoder模型
编码器:
h t = f ( x t , h t − 1 ) h_t=f(x_t,h_{t-1}) ht=f(xt,ht1) c = q ( { h 1 , . . . , h T x } ) c=q(\{h_1,...,h_{T_x}\}) c=q({h1,...,hTx})
其中f为LSTM,q为取最后一个。

解码器:
p ( y ) = ∏ t = 1 T p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) p(y)=\prod_{t=1}^Tp(y_t|\{y_1,...,y_{t-1}\},c) p(y)=t=1Tp(yt{y1,...,yt1},c) p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) = g ( y t − 1 , s t , c ) p(y_t|\{y_1,...,y_{t-1}\},c)=g(y_{t-1},s_t,c) p(yt{y1,...,yt1},c)=g(yt1,st,c)
其中 s t s_t st代表t时刻前的所有生成的状态, y t − 1 y_{t-1} yt1是t-1时刻的生成的目标语言词汇。

学习对齐和翻译

其实本章的内容为基于Attention思想的encoder-decoder模型。
解码器:
p ( y i ∣ { y 1 , . . . , y i − 1 } , x ) = g ( y i − 1 , s i , c i ) p(y_i|\{y_1,...,y_{i-1}\},x)=g(y_{i-1},s_i,c_i) p(yi{y1,...,yi1},x)=g(yi1,si,ci) s i = f ( s i − 1 , y i − 1 , c i ) s_i=f(s_{i-1},y_{i-1},c_i) si=f(si1,yi1,ci)
与传统的解码器相比,编码向量c不固定而是根据当前词汇而进行有区别的生成 c i c_i ci
在这里插入图片描述
上图是主要的attention思想(soft-attention)
c i = ∑ j = 1 T x α i j h j c_i=\sum_{j=1}^{T_x}\alpha_{ij}h_j ci=j=1Txαijhj
其中, h j h_j hj为每个时刻的encoder的输出, α i j \alpha_{ij} αij为每个decoder的i时刻encoder输出的j时刻的hidden_state的权重
α i j = e x p ( e i j ) ∑ k = 1 T x e x p ( e i k ) \alpha_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})} αij=k=1Txexp(eik)exp(eij)
上式为权重的分配公式。
e i j = a ( s i − 1 , h j ) e_{ij}=a(s_{i-1},h_j) eij=a(si1,hj)
其中的a为一个前馈神经网络,将decoder中输出 s i − 1 s_{i-1} si1 h j h_j hj做运算得到一个分值,该值就反应了当前hidden_state与 s i − 1 s_{i-1} si1的权重大小。

编码器:
encoder部分没有什么好说的,与传统架构不同的是采用了BiRNN,将前向信息和后向信息做提取。

实验设置

数据集介绍:
实验采用的数据集为WMT‘14数据集。
数据处理部分,未出现在词表中的token标记为[UNK]此外不做任何特殊处理(如:小写、词干抽取)

模型参数的设置:

  1. 使用RNNencdecr-30和RNNsearch-30对比(30为一句话的词的长度)
  2. 使用RNNencdecr-50和RNNsearch-50对比(50为一句话的词的长度)

mini-batch设置为80,所有的隐层节点数设置为1000

结果

定量结果
模型的表现用评价指标BLEU的分数来衡量。
在这里插入图片描述
从表中的结果可以看出,无论是长句翻译还是短句翻译,无论是有无[UNK]词汇出现。文章提出的RNNsearch模型表现均比RNNencdec好很多。甚至效果接近于Moses的效果。
Moses的语料要更多,还包含更大的单语语料。
在这里插入图片描述
在上图可以看出。在训练长句子的进行预测时,RNN_encdec50模型的性能急剧下降,甚至都比RNN_search30的效果差,在RNN_search50的模型中对于长句的翻译效果也很好。

本章就Attention在翻译时做了可视化分析,发现翻译过程中的Attention的重点。

本章就长句子翻译结果进行分析,得到的结果印证了实验结果。

相关工作

该部分文章分为两小节进行阐述:

学习对齐

对齐方式在笔记生成领域有所涉猎,利用混合高斯核方法去计算位置、宽度、混合系数。但是这种对齐方式,限制于位置的预测。

与本文提出的方法不同的一点是,Graves 2013的方法是只在一个方向上移动。

本文提出的方法也有缺点,在于需要额外的计算资源(权重的计算)。由于翻译的句子大部分是15-40个词,所以这种缺点不是很显著。

基于神经网络的机器翻译

前人在机器翻译领域引入神经网络是利用了,神经网络对源语言和生成的目标语言进行重排序。或者是获得一个分值,将其作为一个特征,进行排序。

以前的方法均是将神经网络作为翻译系统的一个子部分,而本文提出的方法则是完全利用神经网络构造翻译系统。

结论

文章总结了传统RNNencdec模型在编码任何长度的句子时都会将其转变为固定大小的vector,这个是不合理的。本文提出的RNNsearch方法很大程度的利用了相关词汇与上下文的信息。从结果看来模型的性能与最先进的基于短语的统计翻译模型效果一样。
attention的思想将会影响机器翻译和自然语言理解领域。

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

闽ICP备14008679号