attention is all you need 论文笔记

序列转换模型是基于复杂的RNN或者CNN(Encoder-Decoder),性能最好的模型是在Encoder和Decoder之间加上attention。

提出一种新的网络结构(transformer),而是完全依赖于注意机制来绘制输入和输出之间的全局依赖关系,完全省略了递归和卷积。

 

优点高并行性、训练时间更短。

 

2014年WMT英德翻译任务中达到28.4 BLEU,比现有的最佳结果(包括集成部分)提高了2个BLEU以上。

 

BLEU是机器翻译领域的一个评价指标,这个指标实际上做的事是判断两个句子的相似程度(这两个句子一个是专业人工翻译的句子,另外一个是机器翻译算法翻译的句子),BLEU越大越好。

 

最近的工作通过因子分解技巧在计算效率方面取得了显著的改进同时也提高了模型的性能

 

在Encoder-Decoder模型中伴随着距离的变大,需要计算的参数也越来越多,但是在transformer中无论距离多少,所要计算的参数数目是一个固定常数。

 

self-attention(自注意力)是一种将序列的不同位置链接起来的注意力机制,已成功地应用于各种任务中,包括阅读理解、摘要生成等

 

 

端到端记忆网络(End-to-end memory networks)是一种递归注意力机制,不是按顺序排序的递归,在简单问答任务中表现比较好。

 

Transformer结构图,左边Encoder,右边Decoder

attention is all you need 论文笔记

 

 

encoder一共由6个独立的layer组成,每两个子层之间添加一个残差连接并进行一次正则化,每个子层的输出为LayerNorm(x + sublayer (x)),其中子层函数sublayer(s)是子层本身实现的函数

为了方便这些残差连接,模型中的所有子层以及嵌入层都产生尺寸维度为 512的输出。

 

Transformer的Decoder也是由6个独立的layers构成。Decoder相较于Encoder,多了一层

 

 

Multi-head Attention结构图如下

attention is all you need 论文笔记

其中Scaled Dot-Product Attention结构图如下:

attention is all you need 论文笔记

Q表示query k表示Key V表示Value,均为向量,若将所有的query放到一起弄成矩阵,同理对K、V弄成矩阵,则attention的outpus表示为:

attention is all you need 论文笔记

 

Transformer中使用multi-head attention的三种不同的方法:

1、在Encoder-Decoder layers,queries来自之前的decoder,keys、values来自encoder的output。

2、encoder中包含self-attention,在self-attention中所有的keys、values和queries来自同一个地方。

3、decoder中的self-attention layers允许 decoder中的每一个位置可以关注在decoder中的所有位置。

 

 

为什么使用self-attention,原因主要考虑了三方面:

1、每一个layer的总的计算复杂度。

2、能够并行计算的数目。

3、网络中远程依赖项之间的路径长度