[论文阅读笔记] Massive Exploration of Neural Machine Translation Architectures

最近想要看看Attention的机制,然后被网上博客引到这个论文,想要了解一下NMT(Neural Machine Translation)的架构。这篇paper没有发表在会议上,出自Google Brain,并公开了seq2seq的NMT框架代码。个人觉得文中的结论不太可信,但是对于NMT的介绍还是足够清晰。这里记录一些文中有意思的点,以及一些笔者自己的思考,欢迎指教。

NMT框架

详见文中Section2.1部分。
如下图所示,NMT分为Encoder部分和Decoder部分,中间接了一个Attention用于对Encoder部分的信息进行汇总。
具体地,输入是 [x1,x2,,xm] ,Encoder把输入转换为可用信息 [h1,h2,,hm] 。图中所示的Encoder是Bidirection RNN, hi 中同时具有所有时间切片的信息。
Decoder部分则是输出部分,每次根据之前生成的输出 [y1,y2,,yi1] 以及Attention汇总的Encoder的信息 ci 确定当前位置的输出 yi 。图中所示的Decoder为单向RNN, [y1,y2,,yi1] 的信息利用RNN的输出 si 代表存储,而基于信息 [si;ci] 决定输出的决策函数为softmax。
Attention即为注意力机制,它使得Decoder在每个位置上都可以看到不同的Encoder的信息,而其对于Encoder信息的筛选也基于之前时刻的输出 si
从而整体上构成一个End-to-End的架构。
NMT框架

Attention机制

笔者对于Attention还不是很了解,下文是结合paper的理解
如上所诉,Attention基于之前位置的输出 [y1,y2,,yi1] 对Encoder的信息进行筛选汇总,决定当前位置决策模块能够看到的信息 ci 。当Decoder为RNNs的时候, [y1,y2,,yi1] 的信息由 si 代表存储,从而Attention的机制可以用如下公式表示:

a^ij=att(si,hj)aij=a^ijja^ijci=jaijhj

不同的Attention机制主要在于使用不同的Attention函数,文中提到了两种函数,分别为

att(hj,si)=v×tanh(W1hj+W2si)att(hj,si)=<W1hj,W2si>

文中还提到对于Attention的理解部分,说通常认为Attention是注意力机制,即使得Decoder不同时刻使用不同信息,而且Encoder也不用把所有信息都存储到一个固定维数的向量中;但Attention有效地原因可能是因为给Encoder(paper里面是Decoder,但笔者认为Encoder才对)部分加入了gradient highway(paper里面是用weighted skip connection),使得训练的时候梯度值更大。

神经网络模型测试方法

神经网络模型因为初始参数不同会有不同的表现,笔者一直觉得应该有一个标准科学可靠的方法评价网络模型在某个问题上的结果,论文中介绍了其使用的方法,记录在此,方便以后查找。
Each experiment is run for a maximum of 2.5M steps and replicated 4 times with different initializations. We save model checkpoints every 30 minutes and choose the best checkpoint based on the validation set BLEU score. We report mean and standard deviation as well as highest scores (as per cross validation) for each experiment.

文中的一些有意思的观点

笔者对NLP领域不是很熟悉,看到一些比较有意思的观点,记录在此。
1. RNNs难于并行。(应该是由于其非固定长度,而且天生存在顺序
2. LSTM不仅具有消除Gradient Vanishing(Exploding)的作用,还可以对信息进行筛选,如mask out irrelevant parts。(这部分应该是所有gate相关RNN变形的类似特性;同时把信息筛选功能融合到RNN模块不知是好是坏,基于分化的特性,此部分可能更适合于分类器模块或者Attention模块,而RNNs更多用于信息提取
3. 文中提到了残差网络在RNN里面的拓展
4. RNN实际使用过程中Encoder部分的Reverse技巧(不了解原因,可能还有再看看论文
5. Bidirection RNN比单向RNN难于并行

paper中结论不可靠的理由

  1. 最重要的理由就是笔者经验中learning rate、GRU unit number、optimizer等超参数对网络的表现影响重大,而文中的比较过程中用控制变量法直接把其他超参数设死了,这就难以排除模型好但是刚好设置的learning rate不适合的情况。简而言之,其无法保证得到的BLEU值是该模型的最优值,从而无法因此否定该模型。
  2. 数据集不具有典型性,不足以代表整个NMT领域。
  3. 理由没有做过多解释,罕见理论支撑。