【NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE】
Introduction
昨天写Note的时候发现一个名词不是很熟悉,叫做Additive Attention,赶紧查了查出处,原来是Bengio大神的论文里面的东西,今天就来康康是什么,结果这个东西好像不知道在哪个犄角旮旯里面见过,但是还是写一篇笔记吧。
这篇论文之中所提出来的模型是为了解决机器翻译之中的一些问题的,在神经网络翻译出来之前,一直都是基于统计的翻译的方法,大概就是一个词典然后对照翻译的意思吧,这个我不是领域专家所以也无法给出一个很直观的解释。大家有兴趣可以去翻翻,但是现在使用的方式一般都是神经网络翻译了,不过神经网络的翻译的方式也是存在着许多的问题的。比如说在长句子翻译的时候就会迷失自我,抓不到重点乱翻译,这是与Encoder-Decoder框架所相关的问题,在昨天的论文之中我们【Attention is All You Need】知道了Encoder-Decoder框架是什么,无非是将输入转换成为中间状态再从中间状态转化出输出。问题就在于,第一,如何使得中间态获得尽可能多的信息,第二,如何使得中间态之中所存储的信息得到最充分的利用。本文也正是从这两个方面所下手的。
Model
从概率的角度来说,翻译模型的目标可以被改写成为这样的一个形式,在给定输入$x$的情况下,最大化得到$y$的概率,也就是说
$$\arg \max_{y} p(y|x)$$
而机器翻译之中就是去寻找参数使得上面的这个玩意最大化。
Encoder可以将输入$x = (x_1,\cdots,x_n)$转化进向量$c$之中,如果使用$RNN$作为Encoder的基本的架构的话,其第$t$步的隐层为
$$h_{t} = f(x_{t},h_{t-1})$$
而中间状态
$$c = q({h_{1},\cdots , h_{n}})$$
而Decoder通常是在给定$c$和之前的所有的$y_1,\cdots,y_{t’-1}$的情况之下大胆预测$y_{t}$,写成概率的形式就是
$$p(y) = \prod_{t=1}^{T} p(y_{t}|\{y_1,\cdots ,y_{t-1}\},c)$$
而Bengio是怎么改进的呢?
其将上面的每一个联乘符号内的条件概率改写成了
$$p(y_{i}|y_1,\cdots,y_{i-1},c ) = g(y_{i-1},s_{i},c_{i} )$$
其中的$s_{i}$是$RNN$在时间$i$的中间隐层,计算的方法是
$$s_{i} = f(s_{i-1},y_{i-1},c_{i})$$
可以发现,其在计算隐层的时候,并不是将所有的$c$都拿来使用了,而是仅仅是使用$c$的某一个状态。那么这样的状态是如何获得的呢?也很简单,其来源只有Encoder的隐层这一点自然是无需多言,而如何更好的利用呢?很直观的一个方法就是加权,有点抽象哈,我们就打比方在抄作业,相信大家上学的时候都抄过作业(应该是吧大家都会抄作业的吧),原来的抄作业的抄法就是扫一眼你同桌的作业,然后开始刷刷刷的拿来主义。这种方法很明显普通人是抄不到什么东西的,毕竟我们又不能过目不忘,还有一种抄作业的方法呢,就是自己准备抄第一题的时候,看一眼同桌第一题的答案,抄第二题的时候,看一眼第二题的答案,然后就这样不断的抄完作业。这样就是我们正常人抄作业的方式。是有权重的抄作业,用数学公式表示就是
$$c_{i} = \sum{j=1}^{n} \alpha_{ij}h_{j}$$
其中的$\alpha$就是一个权重的调节的方式,那么这个权重又是怎么获得的呢?
$$\alpha_{ij} = \frac{\exp{e_{ij}}}{\sum_{k=1}^{n}\exp{e_{ik}}}$$
可以发现就是个Softmax计算权重的过程,那么是什么输入到这样的一个Softmax函数之中呢?
$$e_{ij} = a(s_{i-1},h_{j})$$
这个的$e_{ij}$就是一个Score类似的东西,评价输入的和输出的匹配的程度,其中的$s_{i-1}$是RNN的隐层的$s_{i-1}$而$h_{j}$是输入的第$j$个位置上的Hidden State.而由于这个过程也是可以通过梯度的传播而得到的。在训练模型的时候也可以更进一步的对齐。
Comments
本文也是提出了一个非常有意思的Trick,大致的意思就是说在翻译的时候,通过计算一种Attention,反映在翻译当下句子的时候,应该更把注意力放在之前的输入的哪个地方,使得整个的翻译的过程可以更加的高效的进行。但是自己还是有迷惑的一点就是在之前的那篇文章之中确实是称此机制为Additive Attention,这里似乎也不是有什么Additive的东西啊,只是计算一个Match的程度,如果实在是要说Additive的话,也就是在计算这个Attention的时候,是利用之前的状态$s_{i-1}$与$h_{j}$进行Match,得到的Score作用于$s_i$,算是利用之前的信息算Additional的$s_{i}$,而在Transformer之中的并不是利用之前的信息而是一次使用所有的信息,所以这里算是一种Additive Attention。不过这个自己也不是特别确定,如果大家如果有什么看法可以和我一起交流一下哈。
Reference
NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
Comments
Leave a Comment