NMT模型:从seq2seq到注意力机制

1简介

从seq2seq的提出开始,神经机器翻译(NMT)逐渐成为了机器翻译的主流模型。seq2seq模型特点在于可以用一种端到端的方训练方式。避免在一个Pipeline中,不同模块之间的误差相互影响。另外,seq2seq中的基石在于单词的embedding表示,通过数据驱动的方式来决定单词的语义向量表示,而不是一些POS、n-gram、词语形态等形式的人工特征。

2 seq2seq模型

seq2seq[1]将机器翻译视为一个序列到另一个序列的映射。模型使用一个循环神经网络对输入序列进行编码(encoder),然后使用另一个循环神经网络生成输出序列(decoder)。这种模型不但在机器翻译中有效,在语音识别、对话生成、摘要提取中也有应用。

一个循环神经网络利用序列的一个输入、以及上一个时刻的状态更新当前时刻的状态,并计算输出。

利用循环神经网络的输出y_t,通过一个softmax函数来预测当前时刻对应单词的概率,直到产生<EOS>为止。

p_t=softmax(y_t)

进行解码过程中,如果使用贪心策略,则每一时刻都使用概率最大的单词作为输出;如果使用beam search(束搜索)策略,那么每个时刻都保留概率最大的k个序列作为候选序列,这样可以避免一些序列整体概率很高,但是在某些时刻的概率较低,导致计算时被忽略。

在论文中还提出了一个trick:在翻译模型中,可以对源语言的句子进行前后反转可以提高效果。

3基于注意力机制的模型

在使用注意力机制[2,3]的模型中,可以类比预统计机器学习中的alignment,即源语言与翻译结果在单词上的对应关系,注意力机制对每个encoder产生的状态赋予一个权重,作为alignment的概率,因此可以将其看为一种”soft alignment”。

使用各个状态的加权和作为作为context vector:

decoder做解码的时候,在一般的循环神经网络中在加入context向量。



在这篇论文中,使用的双向循环神经网络作为编码器。

其中,注意力权重有多种计算方式,[2]中的计算方式为:

这里v_aW_aU_a是权重矩阵。

解码的输出计算公式为:

可以看成一个maxout加上一个deep output。

Luong[3]与Bahdanau[2]中计算注意力机制的公式区别在于:

其中Bahdanau的注意力机制比较依赖于双向循环神经网络,而Luong的注意力机制在双向循环神经网络、单向循环神经网络中效果都不错。

而Attention is all you need[6]则做了进一步改进,使用了multi-head注意力机制,即使用多个注意力机制并联。使用了scaled dot-product attention,防止较大的d_k导致softmax函数的导数过小。

加入了position embedding:

4加入复制机制的模型

复制机制[4]中,假设部分OOV(out of vocabulary)单词可以通过直接复制作为翻译结果,这在一些缩写单词、人名、地名中比较常见。

在计算输出结果的时候,产生长度为V+1+|X|长度的概率向量,其中V个表示产生单词表中单词的概率,1个用于产生UNK,|X|个表示复制输入序列对应位置的单词的概率。

计算公式为:

其中:

而解码器产生输出的时候,需要考虑到复制机制带来的影响,因此,在y_{t-1}的embedding向量的基础上,加入了复制机制的信息:

其中e(y_{t-1})表示y_{t-1}的embedding向量,而

这里K为:

考虑输入序列中可能有多个单词为y_{t-1}。因此,如果在输入序列中不存在与y_{t-1}相同的单词,这部分的表示就为0,y_t就只依赖于y_{t-1}的embedding向量了。

5总结

基于神经网络的模型的优点在于:表示能力强大;由于采用张量运算的形式,便于采用GPU加速;而端到端的训练方式,减少了人工干预,避免了分别训练不同模块而产生的不协调。

参考

[1] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[J]. 2014, 4:3104-3112.

[2] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. “Neural machine translation by jointly learning to align and translate.”?arXiv preprint arXiv:1409.0473?(2014).

[3] Minh-Thang Luong, Hieu Pham, and Christopher D Manning. 2015. Effective approaches to attention-based neural machine translation. EMNLP.

[4] Gu, Jiatao, et al. “Incorporating copying mechanism in sequence-to-sequence learning.”?arXiv preprint arXiv:1603.06393?(2016).

[5] Vinyals, Oriol, and Quoc Le. “A neural conversational model.” arXiv preprint arXiv:1506.05869 (2015).

[6] Vaswani A, Shazeer N, Parmar N, et al. Attention Is All You Need. arxiv. 2017. 代码:https://github.com/tensorflow/tensor2tensor

[7] 代码以及GNMT教程:

https://github.com/tensorflow/nmt

Keras代码:https://github.com/farizrahman4u/seq2seq

发表评论