基础 | 基于注意力机制的seq2seq网络

2018 年 3 月 7 日 黑龙江大学自然语言处理实验室 甄冉冉

作者:黑龙江大学nlp实验室本科生甄冉冉


Seq2seq

seq2seq的用途有很多,比如机器翻译,写诗,作曲,看图写文字等等用途很广泛!该模型最早在2014年被Cho和Sutskever先后提出,前者将该模型命名为“Encoder-Decoder Model”也就是编码-解码模型,后者将其命名为“Sequence to Sequence Model”也就是序列到序列模型,两者有一些细节上的差异,但总体大致思想基本相同。

seq2seq根据字面意思来看就是序列到序列,再具体点就是输入一个序列(可以是一句话一个图片等)输出另一个序列。这里以RNN为基础的机器翻译为例,介绍seq2seq和attention注意力机制。(seq2seq实现的方法有很多,比如MLP,CNN,RNN等)

这是机器翻译的部分数据 (法语->英语):


我们先了解下机器翻译的大致流程

大致意思就是根据输入的文本,神经网络开始学习和记忆,这个就是所谓的Encoder编码过程;然后根据自己的记忆,把文本一一翻译出来,这个就是所谓的Decoder解码过程。

现在再让我们更进一步了解seq2seq的具体流程

我来一一讲解这张图的每一个细节:

这个是某个时刻t的RNN隐层单元,R,O代表里面的两个gate,下表E/D代表这个是Encoder/Decoder过程。

这个在Encoder是某个时刻输入词,在Decoder是上一个预测的词。

这个是Encoder的最后一个单元,里面的隐层存着记忆单元呢,Decoder需要根据Encoder的这个记忆单元隐层把帮助自己一个一个的预测词。

所以需要传到个个Decoder中。

下面这个是Decoder的核心过程,拿一次预测举例子:

是上一个预测词,这里是fox。是上次预测完的记忆单元,是Encoder的隐藏单元。的计算方式为,g为一种方法(神经网络中一般为每个参数*W,最后求和输出。下面公式都类似):

是本次,这里是s4,的计算方式为:

这是简单的理论部分,看看这个实践图吧:


Encoder


Decoder


虽然这个model是GRU,但不光是GRU,LSTM等都可以。


seq2seq就这样讲完了。下面该到注意力机制登上历史舞台


Attention Mechanism 注意力机制


从字面意思我们能联想到自己的注意力吧。对,就是这样的。每当我们专注学习时,我们的目光会聚焦在正在学的东西上,但是我们眼前不能专注的也不是啥也看不见,仅仅是模糊而已。转移到数学分析下,就是我们专注的占得我们经历的大部分,比如给个数值0.8(满分为1),其他的模糊情景为0.01,0.03,0.07。。。总和为0.2。这个注意力机制就是这样的!在机器翻译中,我们需要一个词一个词的翻译,当我们翻译某个词的时候,我们主要是需要这个词,而其他的词信息用的就是很少了,所以就是说网络把精力大部分放到了将要翻译的这个词了,但是其他也得照顾到,因为翻译一个词需要上下文的意思,比如单复数的写法就需要上下文吧。你看,这个是不是和人的注意力差不多啊。这个也可以从我们生活经常做的例子来说就是你看着手机走路,你的注意力在手机上,但是你也能走路,而且还能避开各种人群(当然,撞树啥的只能怪你给手机分配的注意力太大了QAQ)。


看一下基本的流程图:

这些黄色的深浅代表当翻译每个词的注意力的分配。


具体网络分布图为:

再具体下,以这个例子为例:

Encoder用的是是双向RNN,当RNN单元循环回来的时候都会有一个输出给了你将要翻译的词对应的attend,而此时肯定是它的最下方的词应该是注意力最集中的,所以它对应的权重肯定是最大的。

这里的权重分配公式为:

从最上面下来的是是第j个Encoder隐层出来的记忆单元。

所有的分打出来后,要做下归一化:

这个跟Softmax差不多。

然后对他们进行求和传送给


这个注意力机制大大提高了机器翻译的能力当然也包括其他的领域。


这次讲完了,你可以休息下消化消化,有问题的随时提问,我们一起进步!





感谢实验室宋阳师姐的讲解以及上面的图来自哈工大社会检索讨论班。




推荐关注甄冉冉同学自己的公众号-深度学习自然语言处理,冉冉同学在公众号里分享了自己学习路上的一点一滴,想要入门自然语言处理的童鞋,可以和他一起哦!



登录查看更多
16

相关内容

seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列
【ICLR 2019】双曲注意力网络,Hyperbolic  Attention Network
专知会员服务
82+阅读 · 2020年6月21日
基于多头注意力胶囊网络的文本分类模型
专知会员服务
77+阅读 · 2020年5月24日
【ICLR2020-】基于记忆的图网络,MEMORY-BASED GRAPH NETWORKS
专知会员服务
108+阅读 · 2020年2月22日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
注意力机制模型最新综述
专知会员服务
266+阅读 · 2019年10月20日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
Attention!注意力机制模型最新综述
中国人工智能学会
18+阅读 · 2019年4月8日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
可视化循环神经网络的注意力机制
论智
22+阅读 · 2018年9月23日
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
从 Encoder 到 Decoder 实现 Seq2Seq 模型
AI研习社
10+阅读 · 2018年2月10日
TensorFlow seq2seq中的Attention机制(续)
深度学习每日摘要
15+阅读 · 2017年11月16日
从Encoder到Decoder实现Seq2Seq模型(算法+代码)
量化投资与机器学习
8+阅读 · 2017年7月9日
Arxiv
6+阅读 · 2019年4月8日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
3+阅读 · 2018年5月11日
Arxiv
27+阅读 · 2018年4月12日
Arxiv
4+阅读 · 2017年7月25日
VIP会员
相关VIP内容
【ICLR 2019】双曲注意力网络,Hyperbolic  Attention Network
专知会员服务
82+阅读 · 2020年6月21日
基于多头注意力胶囊网络的文本分类模型
专知会员服务
77+阅读 · 2020年5月24日
【ICLR2020-】基于记忆的图网络,MEMORY-BASED GRAPH NETWORKS
专知会员服务
108+阅读 · 2020年2月22日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
注意力机制模型最新综述
专知会员服务
266+阅读 · 2019年10月20日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
相关资讯
Attention!注意力机制模型最新综述
中国人工智能学会
18+阅读 · 2019年4月8日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
可视化循环神经网络的注意力机制
论智
22+阅读 · 2018年9月23日
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
从 Encoder 到 Decoder 实现 Seq2Seq 模型
AI研习社
10+阅读 · 2018年2月10日
TensorFlow seq2seq中的Attention机制(续)
深度学习每日摘要
15+阅读 · 2017年11月16日
从Encoder到Decoder实现Seq2Seq模型(算法+代码)
量化投资与机器学习
8+阅读 · 2017年7月9日
Top
微信扫码咨询专知VIP会员