【论文笔记】CNN for NLP
什么是Convolutional Neural Network(卷积神经网络)?
最早应该是LeCun(1998)年论文提出,其结果如下:运用于手写数字识别。详细就不介绍,可参考zouxy09的专栏,主要关注convolution、pooling,个人理解是这样的,convolution是做特征检测,得到多个feature maps,而pooling是对特征进行筛选,提取关键信息,过滤掉一些噪音,另一方面是减少训练参数。
Single Layer CNN
与图像处理不同,对于自然语言处理任务来说,输入一般是用矩阵表示的句子或文档。对于句子矩阵,每一行表示一个单词,每个词可以用向量表示(word2vec or GloVe, but they could also be one-hot vectors)。下面介绍一种简单的cnn结构,一层convolution+一层pooling。来自Yoon Kim(2014)的论文。
该CNN很简单,共分四层,
第一层是词向量层,doc中的每个词,都将其映射到词向量空间,假设词向量为k维,则n个词映射后,相当于生成一张n*k维的图像;
第二层是卷积层,多个滤波器作用于词向量层,不同滤波器生成不同的feature map;
第三层是pooling层,取每个feature map的最大值,这样操作可以处理变长文档,因为第三层输出只依赖于滤波器的个数;
第四层是一个全连接的softmax层,输出是每个类目的概率。除此之外,输入层可以有两个channel,其中一个channel采用预先利用word2vec训练好的词向量,另一个channel的词向量可以通过backpropagation在训练过程中调整。
这样做的结果是:在目前通用的7个分类评测任务中,有4个取得了state-of-the-art的结果,另外3个表现接近最好水平。
首先做一些符号说明:输入是词向量Xi(长度是k),句子向量Xi:n是词向量的级联(拼接成长向量),filter是w,可看成一个滑动窗口,这里的w是向量,长度是hk(滑动窗口包含h个词)。

Convolution:卷积操作,f是激活函数,ci表示卷积得到的特征。通过滑动filter w,与句子所有词进行卷积,可得到feature map
Pooling:使用max-pooling获得feature map中最大的值,然后使用多个filter获得不同n-grams的特征。
Multi-Channel:这里很有意思,输入句子时,使用两个通道(channel,可以认为是输入copy一份),都用word2vec初始化,其中一个词的向量保持不变(static),另一个是non-static,在BP过程不断修改,最后再pooling前对两个通道得到的卷积特征进行累加。
Classification:通过pooling,得到句子最后的特征向量,然后直接用softmax进行分类。
【论文笔记】CNN for NLP的更多相关文章
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)
前言 在论文笔记:CNN经典结构1中主要讲了2012-2015年的一些经典CNN结构.本文主要讲解2016-2017年的一些经典CNN结构. CIFAR和SVHN上,DenseNet-BC优于ResN ...
- 论文笔记:CNN经典结构1(AlexNet,ZFNet,OverFeat,VGG,GoogleNet,ResNet)
前言 本文主要介绍2012-2015年的一些经典CNN结构,从AlexNet,ZFNet,OverFeat到VGG,GoogleNetv1-v4,ResNetv1-v2. 在论文笔记:CNN经典结构2 ...
- 【转载】GAN for NLP 论文笔记
本篇随笔为转载,原贴地址,知乎:GAN for NLP(论文笔记及解读).
- CNN for NLP (CS224D)
斯坦福课程CS224d: Deep Learning for Natural Language Processing lecture13:Convolutional neural networks - ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN ICCV 2017 Paper: http://op ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
随机推荐
- 转 一台电脑安装多个tomcat
只要改这一个就可以了.port 改成8081即可.<Connector port="8081" protocol="HTTP/1.1" connectio ...
- Ubuntu菜鸟入门(十六)—— 安装视频播放器vlc
sudo add-apt-repository ppa:videolan/master-daily sudo apt-get update sudo apt-get install vlc Ubunt ...
- HDU 3032 Nim or not Nim? (sg函数)
Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- php加密总结
1.md5加密,加密之后是32位的字符串 2.sha1加密, 加密之后是40位的字符串 3.crypt加密, 加密之后是13位的字符串 上面是不可逆的 可逆的如下urlencode --> ur ...
- 【Android】Android如何对APK签名
在eclipse项目,生成的apk是自动签名的,因此无需关心.接下来笔者介绍通过DOS窗口对APK进行签名,以及签名的过程中需要注意的问题. 1.为什么需要对APK签名 所有的Android应用程序都 ...
- 【Hibernate】hibernate框架的搭建
1, Hibernate 是什么 Hibernate是java应用程序与数据库交互的开发的框架. Hibernate是一个开源,轻量级的ORM(对象关系映射)工具. 2,Hibernate框架的优点 ...
- block(七)__block和__weak的区别-b
在MRC下,我们通常使用__block , 而在ARC下我们通常使用__weak , 或者__unsafe_unretaine __block(不安全,不建议使用) 来修饰对象防止循环引用而造成的内存 ...
- 【C语言】为什么指明数组的列数?
首先,我们拿二维数组为例.二维数组称为矩阵.二维数组在概念上是二维的,但实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的.如果将二维数组作为参数传递给函数,那么在函数的参数声明中必 ...
- 【Algorithm】快速排序(续)
前面在常用的排序算法中,已经写过一篇关于快速排序算法的博客,但是最近看到<The C Programming Language>这本书中的快速排序算法写的不错,所以就拿过来分享一下,下面我 ...
- CentOS扩展库配置
背景:经常用到第三方的库,通过yum命令查询不到.例如:yum search ilbcWarning: No matches found for: ilbc 不要感叹,CentOS没你想象的支持力度那 ...