NLPpaper精读(三)—— Attention Is All You Need


transformer是一个颠覆式的创造,开启了NLP的新时代

Abstract

主流的序列模型都是采用CNN和RNN来构造的,此外较好的编解码器模型都会采用Attention机制。
本文提出了一个简单的模型是Transformer,完全的基于注意力机制,而避免了使用CNN与RNN。
Transformer提供了并行计算的可能性,在训练过程中极大的缩短了训练时长。

Introduction

在序列建模和转换问题中,经常采用循环神经网络,构成编码器-解码器的框架。
由于循环神经网络的的计算与时间步有关,所以难以并行化。造成了计算效率低下的现象。虽然有因子分解和条件计算的方法,但是还是难以实现并行化。
几乎所有的序列建模任务中,Attention Mechanism已经成为了标配。由于Attention的引入可以解决长程依赖问题。
本文提出的Transformer完全避开了循环神经网络,而仅仅使用Attention 机制进行建模,在解决长距离依赖的基础上,进一步提高了并行效率。

Background

减少顺序计算也成为扩展神经网络GPU、ByteNet、ConvS2S的基础,为了并行计算都采用卷积神经网络作为基本的模块。
关联任意两个输入输出位置的信号的操作次数会随着距离的增加而增加。

本文提出的Transformer会将这种操作减少到固定的次数,尽管对用Attention权重化位置取平均降低了效果,但是本文使用了Multi-Head Attention进行抵消。

self-Attention有时又被称为intra-Attention,它是由单个序列计算得来的。self-Attention已经成功用于各类任务,阅读理解、自动摘要、文本含义和学习与任务无关的句子表达。

本文的Transformer模型就是完全依赖于Self-Attention的模型构建的。

Model Architecture

Transformer的整体架构图

在这里插入图片描述
Transformer也是标准的encoder-decoder架构,encoder对输入序列 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} { x1,x2,...,xn}进行编码形成一个最终的向量context vector。最后在解码器采用自回归的方式进行顺序解码。

编码器和解码器堆栈

编码器由6个完全相同的encoder layer依次层叠而成。每一层都拥有2个子层,分别是一个multi-head attention layer和一个全连接前馈神经网络构成。针对每个子层进行残差连接,再进行层标准化。 o u t p u t = L a y e r N o r m ( x + S u b l a y e r ( x ) ) output=LayerNorm(x+Sublayer(x)) output=LayerNorm(x+Sublayer(x))

解码器同样是采用6个完全相同的decoder layer层叠而成。每层除了编码器拥有的2层结构以外,还额外插入了第三个子层。修改了self-attention子层,以防止当前位置可以观测到未来时刻的信息。

Attention

本文采用的Attention,本质与点积Attention和加法Attention没有区别,但是在dot attention的基础上提出了缩放点积Attention。

缩放点积Attention的公式如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值