title :Attention Is All you need
1 abstract :说明了transformer不同于CNN 和RNN,transfomer只使用了注意力机制,就完成了seq-seq任务,并且取得不错的效果。
2.结论是相比于RNN等传统的循环神经网络网络模型,可以更好的实现并行,并且在翻译质量上更好
主要的模型结构是
文中所有图片均来自根据paperhttps://arxiv.org/abs/1706.03762
根据论文中的结构,可分为两个部分左边为encoder,右边为decoder,部分,这里解释一下为什么会有两个output,因为本任务为seq-seq的翻译任务,在训练过程中会有两种语言,但是由于它有属于生成式任务,在预测下文的时候,不能够使其知道该时刻之后的信息,所以采用了mask策略,使其只能根据当前时刻之前的信息进行预测。
Encoder部分:左边的方框表示一个block, block当中分为上下两层结构,下面这层为多头注意力机制,
多头注意力机制
self-attention:self-attention通过QKV,三个矩阵来进行计算,通过Q与K的点乘,经过softmax之后与V相乘得到想要的向量表示。
这里解释一下根号dk,如果维度的长度过大的时候,会导致特征之间的差异会变大, 使其在softmax函数的结果更靠近1,导致差异过大
多头注意力机制借助了分组卷积的思想,将注意力机制进行分组最后进行组合。
为什么要这吗做呢 ?
因为如果只使用单头的self-attention会导致模型没有什么参数可以学,通过多头注意力
模型就可以学到Wq,Wk,Wv等模型参数。
mask的作用
在decoder的生成任务中,在一般的注意力机制的情况下,attention机制是可以看到全文的,但是在decoderd 生成任务中,为了保证ht时刻不到下一个时刻的信息,采用mask将其遮蔽,使其只能看到当前时刻之前的信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)