快捷搜索:  汽车  科技

深度学习模型参数计算:深度学习之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特征的计算:

这里的输出被送入到了卷积层。

  1. ABCNN-2

深度学习模型参数计算:深度学习之Attention模型详解(1)

这里Attention矩阵的计算方式与ABCNN-1类似,不同的是在ABCNN-1的基础上对两个句子的unit进行求和作为unit的attention 值,即

然后利用这个attention值对卷积层的输出进行加权,具体公式如下:

深度学习模型参数计算:深度学习之Attention模型详解(2)

这里的输出输入到了pooling层中。

  1. ABCNN-3

将上述两个结构进行叠加。在输入和池化都引入注意力。

深度学习模型参数计算:深度学习之Attention模型详解(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

提出的动机:

  1. 跳出原来千篇一律的attention形式,不使用CNN,不使用RNN,光靠attention,实现高并行化;
  2. 抓取更强的长距离依赖关系。

创新点:

  1. 总结了attention的通用形式;
  2. 提出了self attention,multi-head attention;
  3. Transform结构。

总结Attention的通用格式

作者将Attention理解为q,k,v的形式,

深度学习模型参数计算:深度学习之Attention模型详解(4)

其实前面介绍的attention都可以套用该框架。

深度学习模型参数计算:深度学习之Attention模型详解(5)

猜您喜欢: