ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs
引言
Wenpeng Yin等发表在arXiv上的论文,原文地址:地址
这应该是第一篇提出Attention用于CNN的文章,主要用来解决句子对的问题,作者在answer selection (AS),、paraphrase identification(PI)、textual entailment (TE)三个任务上进行实验,均取得了不错的结果。
作者提出,在以往的很多模型中,都是在特定的任务中对句子进行微调或者独立为每个句子生成语义表示,还有利用语言学上的方法,这些方法都没有考虑到句子间的一些相互依赖的信息,如

其中s_0代表原始查询语句,
其对应的任务中的正确候选和误判候选分别为s^+ _1和s^- _1
可见,在每一对句子中寻找正确的答案时
需要特别关注的位置是各不相同的
例如,在AS场景下需要重点关注 gross 收入与 earned 收入这两个指标
模型
BCNN: Basic Bi-CNN
基本架构的卷积神经网络(CNN)模型不带注意力机制旨在处理 sentence pairs 该模型设计了两组并行的卷积层以分别提取每句话的独特特征 这两个层共享相同的卷积核参数 随后应用池化操作等常规步骤 最终通过逻辑回归完成分类任务

Input layer
在上图中,在输入端设置两个不同长度的句子序列;这些序列分别取值5和7;其对应的词向量维度设为d₀;被构建成了两个不同的特征映射层;每个特征映射层的尺寸设定为d₀×s
Convolution layer
该卷积层采用了加宽卷积的技术,在边缘区域采用0填充的方式;从而获得长度为s+w-1的特征矩阵。

需要注意的是,并非基于每个维度(per dim)的单独处理方式;而是仍然采用dim-wise处理的方式。具体而言,在每一步运算中,在经过二维矩阵变换后会得到一个s+w-1长度的一维向量;随后将各个这样的向量连接起来,则会形成与图2所示类似的结构。

其中W代表卷积核,在d_{1} \times d_{0}维的空间中取值。从边缘处经过零填充后的原始特征图中提取尺寸与卷积核相当的区域作为切片,在d \times d_{0}维的空间中进行操作。即偏置参数b用于调整输出结果。
Average pooling layer
w-ap
在中间层的池化过程中,在作者采用了称为'w-ap'的方式下,在待池化的矩阵中设置了大小为w的一个滑动窗口,并通过滑动窗口的方式依次对每个窗口进行处理以获得s - w + 1长度的特征图。接着,在完成卷积操作后将得到s - w + 1长度的特征图,并通过连续应用卷积与池化的操作使特征图保持与输入句子相同的长度s。由此可知,在每次应用该过程后都可以持续地提取多级特征。
all-ap
在经过最后一层池化运算后, 通过按列方式进行处理得到了一个长度为row的一维向量
output layer
为了在特定任务中提升性能, 我们对模型架构进行了优化设计, 最终选择了在分类模型上应用多层级结构, 并采用逻辑回归算法进行参数求解。值得注意的是, 在多种场景中, 如果能够对各个池化层的输出特征矩阵进行整合处理, 通过引入所有池化层的特征矩阵来构建综合特征向量作为分类器输入, 这可能会带来一定的性能提升, 原因可能是不同深度的卷积层能够提取不同维度的信息。
ABCNN: Attention-Based BCNN
ABCNN-1

核心思路在于卷积操作之前通过融合两个句子对应的Feature maps生成一个Attention matrix A,在完成该矩阵与参数W之间的矩阵运算后,并非直接得到新的Feature maps而是生成一个新的attention Feature Map,并使其与原始Feature Map尺寸相同以作为后续卷积操作的一个独立输入渠道接着完成后续的操作流程旨在使注意力机制能够有效地聚焦于关键特征信息

具体来说,在计算过程中,默认使用欧几里得距离作为两个向量之间的距离指标(即通过公式:match-score=1/(1 + |x − y|)进行计算)。最终生成的矩阵A是一个s \times s大小的矩阵,在这种情况下,则是将句子1中的每个词与句子2中的每个词进行相似度计算,并将这些计算结果组织成一个二维表格形式。

根据矩阵A就可以得到attention feature map,其中W为待训练参数。
ABCNN-2

相较于方法1,在卷积操作之前引入了注意力机制以关注上下文信息,在此基础上,在池化操作之前对卷积后的特征图进行加权处理。具体而言,该过程通过分别沿着列方向求和以及行方向求和的方法来生成两个一维向量即权重向量,并将这些权重应用于重新加权处理过的特征图以增强表示能力。相比之下,在更高层次的空间范围内发挥作用相较于前者,在更高的维度空间中实现了更为复杂的关注关系;而在进入池化操作之前的阶段,则是在短语级别上起到了作用,并且该过程所涉及的操作数量较少不受参数W的影响从而使得其具有更强的抗过拟合能力。
ABCNN-3

结合方法1和方法2的优点,作者提出了方法3,就是将两个模型合了起来。
实验
Answer Selection
问题解答者:面对一个问题,在备选方案库中确定最有可能正确的解决方案

Paraphrase Identification
同义句识别:给定两个句子,请判断这两个句子是否表达相同的意思

Textual Entailment
Textual entailment(文本蕴含):基于某句话作为前设,在另一句话作为假设的情况下,判定是否能从前提推导出假设。

总结
提出了在CNN中使用attention的思路,后续很多工作都基于此展开。
引用
- ABCNN: Attention Mechanism Based CNN for Modelling Sentence Pairs
- A CNN for Modellings Sentences
