五张动图,看清神经机器翻译里的Attention!

2019 年 1 月 29 日 炼数成金订阅号

过去几十年来,统计机器翻译一直是占据主导地位的机器翻译模型[9],直到神经机器翻译(NMT)诞生。神经机器翻译(NMT)是近几年来新兴的机器翻译模式,该模式试图构建和训练能够读取输入文本,并输出翻译结果的单个大型神经网络。


NMT的最初来自Kalchbrenner和Blunsom(2013)等人的提议。今天更为人所知的框架是从Sutskever等人提出的seq2seq框架。本文就将重点介绍seq2seq框架以及如何构建基于seq2seq框架的注意力机制。


总体来说,注意力层的部署可以分为4步(其实是5步)

 

第0步:准备隐藏状态。

首先准备第一个解码器隐藏状态(红色)和所有可用的编码器隐藏状态(绿色)。在我们的例子中有4个编码器隐藏状态和当前解码器隐藏状态。

 

步骤1:获取每个编码器隐藏状态的分数

通过评分函数(也称为比对评分函数或比对模型)获得评分(标量)。在该示例中,得分函数是解码器和编码器隐藏状态之间的点积。 


步骤2:通过softmax图层运行所有分数。

我们将得分放到softmax函数层,使softmax处理后的得分(标量)之和为1。这些得分代表注意力的分布。

步骤3:将每个编码器隐藏状态乘以其softmax得分。

通过将每个编码器隐藏状态与其对应的softmax得分(标量)相乘,获得对齐向量或注释向量。这就是对齐的机制。

步骤4:总结对齐向量。

对齐向量的总结可以生成上下文向量。上下文向量反映的是前一步的对齐向量的聚合信息。

 

步骤5:将上下文向量送到解码器。

具体传送方式取决于翻译系统的架构设计。我们将在下文示例中看到不同的架构如何利用解码器的上下文向量。

下面来看看几种seq2seq模型的运行机制,为便于理解,我们采用比较直观的描述(对于每种模型,均以德-英翻译为例)。

 

seq2seq

翻译会从头至尾把德语文本阅读一遍,读完开始逐词翻译成英语,如果句子过长,他可能会忘了文章开始时都读过哪些内容。

 

一个简单的seq2seq模型就是这样了,至于面向注意力层的逐级计算,是下面要讲的seq2seq+注意力模型,下面是这个模型的直观表述。

 

seq2seq+ 注意力

翻译一遍阅读德文文本,一边从头至尾地记录关键词,然后开始翻译成英语。每翻译一个德语词汇,都要用一次记下来的关键词。

 

该机制下会为每个单词分配一个得分,根据分数高低投入不同的注意力。然后根据Softmax函数处理过的分数,使用编码器隐藏状态的加权和来聚合编码器隐藏状态,获得上下文向量。注意力层的实现可以分为4个步骤。

 

注意力机制的运行究竟是怎样的?

答案是:反向传播,没想到吧。反向传播将尽一切努力确保产出成果接近实际情况。通过改变RNN中的权重和得分函数(如果有的话)来实现这一目标。这些权重将影响编码器隐藏状态和解码器隐藏状态,进而影响注意力得分。

 

带双向编码器的seq2seq+注意力

这一机制相当于有两名翻译。翻译A一边阅读德语文本,一边记录关键词。翻译B(比A更高级的翻译,可以从后往前倒着阅读然后进行翻译)也在逐词阅读同样的德语文本,同时记下关键词。

 

这两个翻译会定期讨论到目前为止阅读的每一个词。一旦阅读完毕,翻译B会负责根据讨论结果和选择的综合关键词,将德语的句子逐字翻译成英语。

 

翻译A就是前向RNN,翻译B就是后向RNN。

 

采用双层堆叠编码器的seq2seq+注意力

翻译A一边阅读德语文本,一边记录关键词。翻译B(比A更高级的翻译,可以从后往前倒着阅读然后进行翻译)也在逐词阅读同样的德语文本,同时记下关键词。注意,初级翻译A必须把阅读到的每个单词向翻译B报告。阅读完成后,两位翻译都会根据他们所选择的综合关键词,逐字逐句地将句子翻译成英语。

 

谷歌的神经机器翻译:带8个堆叠编码器的seq2seq(+双向+剩余连接)+注意力

 


相当于翻译A、B、...到H一共8位翻译,从下到上排成一列。每位翻译都阅读相同的德语文本。每阅读一个单词,翻译A会与翻译B分享发现,翻译B对发现内容进行改进,并与翻译C分享,以此类推重复这个过程,直到翻译H为止。此外,在阅读德语文本时,翻译H会根据自己的知识和收到的信息记录下相关的关键词。

 

在每个翻译都阅读过英文文本之后,命令翻译A开始翻译第一个单词。首先,翻译A试图回忆起,然后他与译者B分享他的答案,译者B改进答案并与译者C分享,以此类推重复这一过程,直到翻译H。然后,翻译H根据记录的关键词写出第一个翻译。重复这个过程,直到翻译完成为止。


声明:文章收集于网络,如有侵权,请联系小编及时处理,谢谢!


文章来源:新智元

《Python数据可视化实战》本课程利用Python绘制常见的统计的图形,通过学习 本课程,学员可以熟练掌握如何运用Python进行各种统计图形的绘制,以及绘制各种定制化 和优美的图形,本课程不仅学习Python基本绘图模块,还会学习更加高级的绘图模块,帮助 学员们实现优美图形的绘制和展示。资深私募操盘手倾力传授投资的秘笈。点击下方二维码报名课程

登录查看更多
0

相关内容

seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列
【ICLR 2019】双曲注意力网络,Hyperbolic  Attention Network
专知会员服务
82+阅读 · 2020年6月21日
最新《自动微分手册》77页pdf
专知会员服务
100+阅读 · 2020年6月6日
【ACL2020-复旦大学NLP】异构图神经网络的文档摘要提取
专知会员服务
34+阅读 · 2020年5月1日
注意力图神经网络的多标签文本分类
专知会员服务
111+阅读 · 2020年3月28日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
深度学习的下一步:Transformer和注意力机制
云头条
56+阅读 · 2019年9月14日
【干货】注意力机制(Attention)最新综述论文及相关源码
GAN生成式对抗网络
11+阅读 · 2018年11月16日
从Seq2seq到Attention模型到Self Attention(二)
量化投资与机器学习
23+阅读 · 2018年10月9日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
可视化循环神经网络的注意力机制
论智
22+阅读 · 2018年9月23日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
用于神经机器翻译的全并行文本生成
全球人工智能
7+阅读 · 2017年11月13日
十分钟掌握Keras实现RNN的seq2seq学习
机器学习研究会
10+阅读 · 2017年10月13日
干货|完全图解RNN、RNN变体、Seq2Seq、Attention机制
机器学习研究会
11+阅读 · 2017年8月5日
Arxiv
6+阅读 · 2019年4月8日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
9+阅读 · 2018年5月24日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关VIP内容
【ICLR 2019】双曲注意力网络,Hyperbolic  Attention Network
专知会员服务
82+阅读 · 2020年6月21日
最新《自动微分手册》77页pdf
专知会员服务
100+阅读 · 2020年6月6日
【ACL2020-复旦大学NLP】异构图神经网络的文档摘要提取
专知会员服务
34+阅读 · 2020年5月1日
注意力图神经网络的多标签文本分类
专知会员服务
111+阅读 · 2020年3月28日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
相关资讯
深度学习的下一步:Transformer和注意力机制
云头条
56+阅读 · 2019年9月14日
【干货】注意力机制(Attention)最新综述论文及相关源码
GAN生成式对抗网络
11+阅读 · 2018年11月16日
从Seq2seq到Attention模型到Self Attention(二)
量化投资与机器学习
23+阅读 · 2018年10月9日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
可视化循环神经网络的注意力机制
论智
22+阅读 · 2018年9月23日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
用于神经机器翻译的全并行文本生成
全球人工智能
7+阅读 · 2017年11月13日
十分钟掌握Keras实现RNN的seq2seq学习
机器学习研究会
10+阅读 · 2017年10月13日
干货|完全图解RNN、RNN变体、Seq2Seq、Attention机制
机器学习研究会
11+阅读 · 2017年8月5日
相关论文
Arxiv
6+阅读 · 2019年4月8日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
9+阅读 · 2018年5月24日
Arxiv
27+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员