Attention Is All You Need总结

非常著名的Transformer

一句话总结:替代传统的序列转化模型,只用attention(不使用rnn/cnn),可以并行化训练;Attention机制在输入和输出序列中都不会受距离的影响

抛弃循环recurrence模型,只用attention,抽取输入和输出序列之间的全局依赖关系(全局语义信息)

传统的优化方法:1. 计算量(指数增长) 2. 远距离依赖仍然无法捕捉

Transformer计算量减少,但是同时也减少了有效的(分辨率)resolution, Multihead attention来解决这个问题

第一个只用self-attention来算输入和输出序列的representation的模型

自回归:t-1会作用到t的输出

stacked self-attention

encoder decoder stacks

6个一模一样的层 维度统一成512维

残差连接+层归一化

decoder的self-attention做了微调,不能attend到之后的位置 右移一步, mask

attention就是把一个query和键值对映射到输出

query一个key,然后算出相似度,这个相似度作为权重,乘上value

得到value的加权和

点乘和加法都可以,但是点乘是矩阵运算更快

没有缩放因子,softmax的区域会推到梯度非常小的地方(饱和区)

multihead attention可以attend到不同位置的不同表示子空间(不同子空间语义)

 

重点:

1. encoder-decoder attention: query是前一个decoder输出,key和value是encoder输出,每一个decoder位置可以attend到整个输入序列

2. encoder自己有self-attention,q,k,v都是encoder前一层的输出,每一个位置可以attend到所有其他位置

3. decoder也有self-attention,每一个位置可以attend到之前(包括自己)的位置,在softmax之前mask掉非法连接

 

全连接层:两个线性层夹着ReLU层,可以看做两个kernel size为1的卷积

输入和输出token用参数可学习的embedding

position encoding可以用可学习的embedding

 

3个优点

计算量

并行化

长距离依赖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章