那么,注意力机制是如何发挥作用的呢?
反向传播。反向传播将尽一切努力确保输出接近实际情况。这是通过改变RNN中的权重和评分函数(如果有的话)来完成的。
这些权重将影响编码器的隐藏状态和解码器的隐藏状态,进而影响注意力得分。
谷歌神经机器翻译如何应用注意力机制?在介绍谷歌神经机器翻译模型之前,还需要补补课,看一下另外两个模型。
Bengio团队的研究
这是一个具有双向编码器的seq2seq 注意力模型,以下是模型架构的注意事项:
1、编码器是一个双向(正向 反向)门控循环单元(BiGRU)。解码器是一个GRU,它的初始隐藏状态,是从反向编码器GRU的最后隐藏状态修改得来的向量。
2、注意力层中的评分函数使用的是additive/concat。
3、到下一个解码器时间步的输入是来自前一个解码器时间步(粉红色)的输出和来自当前时间步(深绿色)语境向量之间的串联。
这个模型架构,在WMT’14英语-法语数据集上的BLEU分数是26.75。
(论文链接在文末)
相当于在将德语文本翻译成英语的时候,用了两个翻译员。
翻译员A,在逐字逐句阅读德语文本的时候,会写下关键词。翻译员B,在倒着逐字逐句阅读德语文本的时候,写下关键词。
这两个翻译员,会定期讨论他们在讨论之前阅读的每一个单词。
读完德语文本之后,翻译员B会根据他们两个之间的讨论,以及选择的关键词,将文本翻译成英语。
在这里,翻译员A,是正向RNN,翻译员B,是反向RNN。
斯坦福大学团队的研究
与Bengio等人的模型相比,斯坦福大学团队提出的模型架构,更具有概括性,也更加简单。要点如下:
1、编码器是一个双层的LSTM网络。解码器也具有相同的架构,它初始隐藏状态是最后的编码器隐藏状态。
2、他们模型的评分函数有四种,分别是:additive/concat、dot product、location-based和’general’。
3、当前解码器时间步的输出与来自当前时间步的语境向量之间的串联,会输入到前馈神经网络中,来得出当前解码器时间步的最终输出(粉红色)。
(论文链接在文末)
这个模型架构,在WMT’15英语-德语数据集上的BLEU分数是25.9。
简单来说,这是一个采用双层堆叠编码器的seq2seq 注意力模型。
在将德语文本翻译到英语时,翻译员A一样在阅读德语文本的时候,写下关键词。在这里,翻译员B比翻译员A要更专业,他也会阅读同样的德语文本,并写下关键词。
主要注意的是,翻译员A阅读的每个单词,都要向翻译员B报告。完成阅读后,他们会根据他们选择的关键词,将文本翻译成英语。
谷歌的神经机器翻译模型
谷歌神经机器翻译,集两者之大成,但受Bengio等人的模型影响多一点。要点是:
1、编码器由8个LSTM组成,其中第一个是双向的(输出是连接的),连续层的输出之间有残差连接(从第3层开始)。解码器是8个单向LSTM的独立堆栈。
2、评分函数使用的是additive/concat。
3、解码器下一个时间步的输入是前一个时间步(粉红色)的输出与当前时间步(深绿色)的语境向量之间的串联。
这个模型架构,在WMT’14英语-法语数据集上的BLEU分数是38.95。在WMT’14英语-德语数据集上的BLEU分数是24.17。
(论文链接在文末)
这是一个具有8个堆叠编码器的seq2seq( 双向 残差连接) 注意力的模型。
相当于在将德语文本翻译成英语的时候,用了八个翻译员,分别是翻译员A、B、C…H。每一位翻译员都阅读相同的德语文本。
对于文本中的每一个单词,翻译员A都会给翻译员B分享他的发现,翻译员B会改进这些发现,然后与翻译员C分享,一直重复这个过程,直到翻译员H结束。
此外,在阅读德语文本的时候,翻译员H会基于他知道的和收到的信息写下关键词。
每个人都读完了这个英语文本后,翻译员A就会被告知翻译第一个单词。
首先,他试图回忆文本内容,给出翻译,然后与翻译员B分享他的答案,翻译员B改进答案并与翻译员C分享,一直重复这个过程,直到翻译员H结束。
然后,翻译员H会根据他写下的关键词给出第一个词的翻译。然后重复这个过程,直到翻译结束。
相关资料推荐Yoshua Bengio等人研究的论文
Neural Machine Translation by Jointly Learning to Align and Translate
https://arxiv.org/abs/1409.0473
斯坦福大学团队的论文
Effective Approaches to Attention-based Neural Machine Translation
https://arxiv.org/abs/1508.04025
谷歌神经机器翻译模型的论文
Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
https://arxiv.org/abs/1609.08144
其他相关论文推荐:
Recurrent Models of Visual Attention
https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf
Recurrent Continuous Translation Models
https://www.aclweb.org/anthology/D13-1176
Attention Is All You Need
https://arxiv.org/abs/1706.03762
Sequence to Sequence Learning with Neural Networks
https://arxiv.org/abs/1409.3215
教程资源:
TensorFlow’s seq2seq Tutorial with Attention (Tutorial on seq2seq attention)
https://github.com/tensorflow/nmt
入门博客文章:
Lilian Weng’s Blog on Attention (Great start to attention)
https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html#a-family-of-attention-mechanisms
Jay Alammar’s Blog on Seq2Seq with Attention (Great illustrations and worked example on seq2seq attention)
https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/
写这篇文章的,是一位名叫Raimi Bin Karim新加坡人,现在是AI Singapore中的一名AI学徒。AI Singapore,是一家为新加坡培育人工智能产业与人才的机构。
原文链接:
https://towardsdatascience.com/attn-illustrated-attention-5ec4ad276ee3
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
,