深度学习模型参数计算:深度学习之Attention模型详解
深度学习模型参数计算:深度学习之Attention模型详解本文实际上提出了两种引入attention 的位置,一种是在Conv前(ABCNN-1) 一种是Conv后(ABCNN-2)。从结果来看,Attention放在Conv后的效果比前面的效果更好。可能的原因是Word embedding经过Conv相当于提取了n-gram,能表示上下文。conv 之后再结合 Attention 能比单纯 input 之后的 Attention 包含更多的信息。将上述两个结构进行叠加。在输入和池化都引入注意力。这里Attention矩阵的计算方式与ABCNN-1类似,不同的是在ABCNN-1的基础上对两个句子的unit进行求和作为unit的attention 值,即然后利用这个attention值对卷积层的输出进行加权,具体公式如下:这里的输出输入到了pooling层中。
可以从上图看出矩阵中的一列代表一个词,行代表特征。
这里的match-score可以用多种方式进行计算,本文采用的是来计算。
句子中attention特征的计算:
这里的输出被送入到了卷积层。
- ABCNN-2
这里Attention矩阵的计算方式与ABCNN-1类似,不同的是在ABCNN-1的基础上对两个句子的unit进行求和作为unit的attention 值,即
然后利用这个attention值对卷积层的输出进行加权,具体公式如下:
这里的输出输入到了pooling层中。
- ABCNN-3
将上述两个结构进行叠加。在输入和池化都引入注意力。
本文实际上提出了两种引入attention 的位置,一种是在Conv前(ABCNN-1) 一种是Conv后(ABCNN-2)。从结果来看,Attention放在Conv后的效果比前面的效果更好。可能的原因是Word embedding经过Conv相当于提取了n-gram,能表示上下文。conv 之后再结合 Attention 能比单纯 input 之后的 Attention 包含更多的信息。
Graph Attention Network(GAT)
小结1
之后的一系列论文如《Multi-Attention CNN for FGVC:MA-CNN》 《Coupled Multi-Layer Attentions for Co-Extraction of Aspect and Opinion Terms》等尽管实现的任务都花里胡哨的,并引入了Attention,但是attention的使用方式还是千篇一律。
Attention is all you need
提出的动机:
- 跳出原来千篇一律的attention形式,不使用CNN,不使用RNN,光靠attention,实现高并行化;
- 抓取更强的长距离依赖关系。
创新点:
- 总结了attention的通用形式;
- 提出了self attention,multi-head attention;
- Transform结构。
总结Attention的通用格式
作者将Attention理解为q,k,v的形式,
其实前面介绍的attention都可以套用该框架。