《ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs》
代码:
keras:https://github.com/phdowling/abcnn-keras
tf:https://github.com/galsang/ABCNN
本文是Wenpeng Yin 该作者之前还发过一篇《Convolutional Neural Network Architectures for Matching Natural Language Sentences》
。ABCNN是基于之前发的这篇论文加入了注意力机制。
相比这两篇Attention-based的论文,会发现,ABCNN提出了三个层面的Attention方法,有助于更加全面的理解attention在不同层面所能带来的不同作用。
BCNN
BCNN就是ABCNN模型的基础,即没有添加Attention的模型结构。如下图所示:

1, 输入层:
就是将输入句子进行padding后转化成词向量即可。
2,卷积层:
这里使用的应该是Yoon Kim论文中所提出的卷积方式,即一个窗口最后只生成一个卷积值,然后再句子长度上进行滑动,得到一个长度为sent_len+ws-1的向量(wide conv)。输出channel是卷积核的个数。
3,pooling层
论文中提到了两种pooling层,一种是最后一个pooling层–all-ap,还有一种是中间卷积层所用的pooling层–w-ap。区别就是池化时的窗口大小不同。
all-ap:将卷积之后的结果在句长维度上进行Average Pooling, 得到一个列向量,如上图中最上面的pooling层所示。
w-ap:使用滑动窗口的形式,以窗口宽度w对卷积输出进行Average Pooling。因为输入层经过宽卷积后会变成sent_len+w-1,之后经过窗口大小为w的pooling层后仍然会变回sent_len。这样的话,conv-pooling层就可以无限叠加起来。
4,输出层
因为我们的任务是一个2分类,所以论文中使用的是logistic 回归层。不过这里需要注意的是,最后一层的输入特征除了最后一个conv层的输出之外,还额外添加了对每个conv层做all-ap得到的特征也将作为其输入。这么做是为了是逻辑回归可以观察到不同层面的抽象信息。
ABCNN-1
上面介绍了BCNN的基础模型,加下来分别介绍三种加入Attention的方式。首先是在输入层加入Attention,其示意图如下:

其原理就是将输入拓展成双通道,类似于图片的RGB模式。而添加的通道便是attention feature map,即上图中的蓝色部分。其计算方式如下:
1,计算attention矩阵A,其每个元素Aij代表句子1中第i个单词对句子二中第j个单词的match_score,这里使用Euclidean距离计算。如下图:

其中 ,
, d是embding size, s是句子长度。
2,两个句子的attention map与系数W相乘得到最终的结果。如图所示,使用两个矩阵W0,W1分别和A还有 A的转置相乘即可获得与原本feature尺寸相同的特征图了。这里W0和W1都是模型参数,我们可以使用相同的W,即共享两个矩阵。这样我们就将原始的输入拓展成了两个通道。剩下的与BCNN保持不变即可。
ABCNN-2
ABCNN-1直接在输入层加Attention,目的是为了改善卷积层的输出,现在提出ABCNN-2,其目的是为了在卷积层输出的结果上进行改善。其示意图如下:

Attention矩阵A的计算方法与上述相同,计算完A,需要分别为两个句子计算两个Attention权重向量,如上图中的两个虚线部分。得到的两个向量中的每个元素分别代表了相应单词在做Average Pooling时的权重。即ABCNN-2模型中修改了pooling方法,不再是简单的Average Pooling,而是根据计算出的Attention权重向量计算。公式如下:
相比ABCNN-1而言,2是为了通过对conv卷积输出结果过进行赋权重改善pooling的结果,使获得的高层次抽象特征(短短语,长短语。。)中不同词按照不同的权重进行叠加。而且2添加的参数更少,更不易过拟合。
ABCNN-3
ABCNN-3其实就是将前面两个模型融合在一起组成一个新的模型,示意图如下所示:

实验结果
论文为了证明模型的普适性,对三个不同领域的数据集做了实验,都达到了很好的实验效果。这三个数据集分别是:answer selection(AS)领域的WiKiQA,paraphrase identification(PI)领域的MSRP,Textual Entailment(TE)领域的SenEval 2014 Task。实验结果分别如下图所示:


《ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs》的更多相关文章
- 论文笔记:(2019)GAPNet: Graph Attention based Point Neural Network for Exploiting Local Feature of Point Cloud
目录 摘要 一.引言 二.相关工作 基于体素网格的特征学习 直接从非结构化点云中学习特征 从多视图模型中学习特征 几何深度学习的学习特征 三.GAPNet架构 3.1 GAPLayer 局部结构表示 ...
- 《A Convolutional Neural Network Cascade for Face Detection》
文章链接: http://pan.baidu.com/s/1bQBJMQ 密码:4772 作者在这里提出了基于神经网络的Cascade方法,Cascade最早可追溯到Haar Feature提取 ...
- A NEW HYPERSPECTRAL BAND SELECTION APPROACH BASED ON CONVOLUTIONAL NEURAL NETWORK文章笔记
A NEW HYPERSPECTRAL BAND SELECTION APPROACH BASED ON CONVOLUTIONAL NEURAL NETWORK 文章地址:https://ieeex ...
- 论文笔记之《Event Extraction via Dynamic Multi-Pooling Convolutional Neural Network》
1. 文章内容概述 本人精读了事件抽取领域的经典论文<Event Extraction via Dynamic Multi-Pooling Convolutional Neural Networ ...
- 《Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences》
Kalchbrenner’s Paper Kal的这篇文章引用次数较高,他提出了一种名为DCNN(Dynamic Convolutional Neural Network)的网络模型,在上一篇(Kim ...
- 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)
Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...
- 卷积神经网络(Convolutional Neural Network,CNN)
全连接神经网络(Fully connected neural network)处理图像最大的问题在于全连接层的参数太多.参数增多除了导致计算速度减慢,还很容易导致过拟合问题.所以需要一个更合理的神经网 ...
- 斯坦福大学卷积神经网络教程UFLDL Tutorial - Convolutional Neural Network
Convolutional Neural Network Overview A Convolutional Neural Network (CNN) is comprised of one or mo ...
- 【转载】 卷积神经网络(Convolutional Neural Network,CNN)
作者:wuliytTaotao 出处:https://www.cnblogs.com/wuliytTaotao/ 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,欢迎 ...
随机推荐
- ELK系列二:Elasticsearch的架构原理和配置优化
1.Elasticsearch的数据组织架构 1.1.Elasticsearch结构概念 集群(cluster):拥有相同cluster-name的elasticsearch结点的集合(每个结点其实就 ...
- C语言位操作--奇偶校验算法
信息是以比特流的方式传输的,类似01000001.在传输过程中,有可能会发生错误,比如,我们存储了01000001,但是取出来却是01000000,即低位由0变成了1.为了检测到这种错误,我们可以通过 ...
- ms转成00:00:00的时间格式化
毫秒转成 00:00:00的时间格式 比如1000毫秒转成00:00:01 /** * 格式化邀请的时间 * @param time ms */ public static formatTime(ti ...
- 什么是webpack?
https://www.webpackjs.com/concepts/ https://webpack.github.io/ 本质上,webpack 是一个现代 JavaScript 应用程序的静态模 ...
- iOS - 视频开发
视频实质: 纯粹的视频(不包括音频)实质上就是一组帧图片,经过视频编码成为视频(video)文件再把音频(audio)文件有些还有字幕文件组装在一起成为我们看到的视频(movie)文件.1秒内出现的图 ...
- 基于pandas python的美团某商家的评论销售数据分析(可视化)
基于pandas python的美团某商家的评论销售数据分析 第一篇 数据初步的统计 本文是该可视化系列的第二篇 第三篇 数据中的评论数据用于自然语言处理 导入相关库 from pyecharts i ...
- 8.28 jQuery
2018-8-28 18:25:27 jQuery 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html 2018-8-28 19:53:19 还是讲 ...
- [EF]vs15+ef6+mysql code first方式
写在前面 前面有篇文章,尝试了db first方式,但不知道是什么原因一直没有成功,到最后也没解决,今天就尝试下code first的方式. [EF]vs15+ef6+mysql这个问题,你遇到过么? ...
- NBUTOJ 1643 - 阶乘除法 - [数学题]
题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1643 问题描述 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*... ...
- XTU 1261 - Roads - [最小割][2017湘潭邀请赛B题(江苏省赛)]
之前在网上搜了一个下午没搜到这道题的题解,然后同时又对着叉姐写的两行字题解看了一个下午: 虽然基本上已经知道了这题的思路,但愣是因为自己代码实现起来太繁复,外加不确定正确性,没敢码…… 但是一道题肝了 ...