文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs

关键词:Attention机制;CNN;卷积神经网络;文本分类;智能问答

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第1张图片
开胃水果

文献:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs
这篇文章结合卷积神经网络CNN和Attention机制,提出应用到文本分类中。

文本贡献:

  • 第一:将Attention机制和CNN结合应用到句子建模
  • 第二:提出三种结合Attention机制的建模方式
  • 第三:核心是通过Attention机制将原先各自独立的句子,考虑句子之间的相关性,构建出包含句子上下文关系的新的句子模型

在一些自然语言处理任务中,构建合理的句子对是非常关键的。比如QA问题中,匹配问题和答案。从问题中抽取关键的决定性的词语,去匹配合理的答案。

文章中综述了Attention机制在自然语言和非自然语言处理中的一些应用文章。

  • 深度学习+Attention机制机制在图像识别领域:计算机视觉针对可视化问答(Visual question answering)文章(Chen et.al2015),图像分类(Xiao 2015) 标题生成(Xu .2015),图像片段(image segmentation)(Hong et al.2016). Minih et al 2014将attention机制和循环神经网络结合从视频和图片中获取信息。 Gregor et al. 2015 使用空间attention机制和RNN网络 for image generation。。 Chorowski 2015 应用attention机制和RNN网络用来speech recognition.
  • 深度学习+attention机制在NLP领域的应用:Attention机制在图像识别领域取得成功后,也被应用到NLP领域。主要做法是利用end-to-end encoder-decoder and RNNs . 最初是应用在机器翻译中(Bahdanau et al. 2015,Luong et al.2015)和 text reconstruction(Li et al.2015 ,Rush 2015)等。

主要思路

  • BCNN结构:使用基本CNN网络(无attention机制),每次处理一对句子。输出层解决sentence pair task.

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第2张图片
BCNN结构
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第3张图片
image.png
  • Input layer

每个句子被填充为相同长度s,使用词向量映射每个句子为矩阵s*300维矩阵。

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第4张图片
输入层
  • Convolution Layer

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第5张图片
卷积层

w 应该是卷积核过滤器的宽度。卷积时如果会对周边做填充。也就是当j<1 或 j>s时,就是按照w*d0的过滤器做卷积。

  • Pooling Layer

选用平均池化作为baseline


文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第6张图片
池化层

两次卷积和池化,输出层softmax
BCNN方式就是正常的一个CNN网络架构。

  • ABCNN结构:文章提出了三种结构,ABCNN-1,ABCNN-2,ABCNN-3

  • ABCNN-1结构

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第7张图片
ABCNN-1
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第8张图片
image.png

结构中增加了一个抽象层级,就是在原有单词级上增加了一个短语级的抽象。单词级的抽象文中重新命名为unit,作为低级别的表示,短语级的作为更高一级的表示。图中那个红色的与BCNN网络中的输入是一样的,是句子的词向量矩阵,两个句子。第一个句子5个单词,第二个句子7个单词。
蓝色的为短语级高一级的词向量表示。蓝色表示是由Attention Matrix A和红色词向量计算生成
Attention Matrix A是由左右两个句子的情况生成。 A中的 i 列值是由左边句子(五个单词)中第 i 个单词(unit)的向量与右边句子的Attention值分布(),j行值是由右边句子中第j个单词的向量与左边句子的Attention值分布. 计算在下面定义

Matrix A的计算:

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第9张图片
Matrix A

d 表示词向量维度, s表示的是句子的长度(句子长度填充为相同长度)。使用欧几里德距离。Matrix A中数值Ai,j的计算是由左边句子向量表示的第i列向量和右边句子第j列的距离度量, 度量方式有差异。作者使用的是两个向量的欧几里德距离。

获取的Matrix A后,对两个句子分别应用不同的权重矩阵(模型在学习的时候要学习的参数),生成两个句子的新的Attention特征表示。计算方法:

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第10张图片
new attention feature map

接下来将句子的原始词向量表示和Attention特征表示作为3D 张量形式输入到卷积层进行计算。

  • ABCNN-2机制

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第11张图片
ABCNN-2
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第12张图片
image.png

ABCNN-2架构是在以初始词向量形式输入并经过卷积后的输出的向量表示中(两个句子分别变成了7col和9col),计算出Attention Matrix A. 计算方法还是计算两个句子对应单词向量的欧式距离,生成向量矩阵,方法同ABCNN-1的架构。
第二步:计算卷积向量权重,给每个单词计算一个权重值。左边句子(7col)的每个单词对应的Attention权重是由Matrix A中列向量求和的值作为权重值,col-wise sum,右边句子中每个单词的权重值是Matrix A中行向量求和值作为权重值,row-wise sum.

句子S0中第j个单词的Attention值

句子原始输入是词向量矩阵,左边的是5 d,右边是7d,w是3
句子的卷积输出(c表示卷积输出,就是原始词向量经过一次卷积生成的矩阵,w是卷积宽度,si是句子长度,d是词向量长度)

将卷积输出的特征矩阵,基于Attention权重值,做池化。 i 取值为0,1,j取值为句子长度。
基于Attention权重的平均池化计算,池化输出特征矩阵,p表示池化输出

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第13张图片

ABCNN-1和ABCNN-2比较:1、ABCNN-1中Attention是间接的影响卷积,ABCNN-2中通过Attention权重直接影响池化。2、ABCNN-1需要两个权重矩阵需要学习,并且输入特征矩阵要两次, 相比ABCNN-2网络需要更多的参数学习,容易过拟合。3、ABCNN-2执行更大粒度的池化,如果在卷积层输入的是词粒度的,那么ABCNN-2在池化时就已经是短语粒度的(经过卷积了),池化时的w和卷积的w保持一致。

  • ABCNN-3机制

将ABCNN-1和ABCNN-2结合,作为架构,这样保留word level信息,也增加了phrase level的信息。更加高层次的特征抽象。


文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第14张图片
ABCNN-3
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第15张图片
image.png
  • 在不同任务上的实验结果

文中提到,在最后输出层,使用线性SVM和默认参数的LR分类器效果似乎比LR层更好,在输出层似乎能够获得更优的全局解。

文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第16张图片
分类器:
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第17张图片
网络参数配置
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第18张图片
image.png
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第19张图片
image.png
文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs_第20张图片
image.png

你可能感兴趣的:(文献阅读笔记:ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs)