首先申明本人的英语很搓,看英文非常吃力,只能用这种笨办法来方便下次阅读。有理解错误的地方,请别喷我。
什么是卷积和什么是卷积神经网络就不讲了,自行google。从在自然语言处理的应用开始(SO, HOW DOES ANY OF THIS APPLY TO NLP?)。
和图像像素不同的是,在自然语言处理中用矩阵来代表一句话或者一段话作为输入,矩阵的每一行代表一个token,可以是词,也可以是字符。这样每一行是一个向量,这个向量可以是词向量像word2vec或者GloVe。也可以是one-hot向量。如果一句话有10个词,每个词是100维的词向量,那么得到10*100的矩阵,这就相当于图像识别中的图像(input)。
在图像中,过滤器是在图像的部分滑动,而在NLP中过滤器在整行上滑动。意思是过滤器的宽度和输入矩阵的宽度是一致地。(就是说过滤器的宽度等于词向量的维度。)在高度上常常是开2-5个词的滑动窗口。总结起来,一个在NLP上的CNN长这样:

这里写图片描述
这里有3种过滤器,滑动窗口为2、3、4,每种有2个。后面阐述了CNN在NLP上的不足(没看明白)。表示RNN更符合语言的理解习惯。后面又说模型跟实现的理解有偏差,但是CNN在NLP上的表现是不错的。同时也吐槽了词袋模型也一样。(原因鬼知道)
CNN的另一个优势是快,这里用N-Gram模型做对比。我们都知道在VSM模型中采用3-gram的维度就很恐怖了,文中说google也处理不了超过5-gram的模型。这是CNN模型的优势,同时在CNN的输入层采用n-size的滑动窗口和n-gram处理是相似的。(不能同意再多,个人认为部分功劳在word embeddings上。当然不全是,因为即使采用one-hot,维度也不会随着窗口的size变化。而在n-gram中是随着n的变化爆发性增加的。)
(干货,对理解模型和代码都非常必要。)
对于窄卷积来说,是从第一个点开始做卷积,每次窗口滑动固定步幅。比如下图左部分为窄卷积。那么注意到越在边缘的位置被卷积的次数越少。于是有了宽卷积的方法,可以看作在卷积之前在边缘用0补充,常见有两种情况,一个是全补充,入下图右部分,这样输出大于输入的维度。另一种常用的方法是补充一部0值,使得输出和输入的维度一致。这里文中给了一个公式 。这里npadding在全补充里是filter-1,在输入输出相等时,就要主要奇偶性了,注意到卷积核常为奇数,这里应该有原因之一。(思考下为什么)

这里写图片描述
这个参数很简单,就是卷积核移动的步长。下面两幅图左边的步长为1,右边的步长为2。(看出卷积核是啥了吗)

这里写图片描述
这里说步幅常设置为1,在一些更接近于RNN的模型中会设置更大的stride。
一般在卷积层后会有汇聚层。最常用的是max-pooling(就是取最大的那个)。stride的大小一般和max-pooling的窗口大小一致。(在NLP中代表性的操作是在整个输出上作汇聚,每个过滤器只输出一个值。) 为啥要做汇聚?讲了两个原因:一是可以提供确定的输出,对于后面做全连接有用。二是可以在保存大部分信息的前提下降维(希望是这样)。这里说这样的做法相当于某个词是否在句子中出现,而不关心这个词在句子的哪个位置出现。这和词袋模型的思想相同。不同的是在局部信息中,“not amazing”和”amazing not“在模型中会有很大的不同。(这里得好好想想,mark下)
这没啥好说的,就是输入有几层。在图像中一般有1、3层(分别灰度图和RGB图)。在NLP中也可以有多个通道,比如说使用不同词向量化方式,甚至不同的语言等
这里说CNN在NLP中常应用到文本分类中,比如情感分析、垃圾信息识别、主题分类中。由于卷积的汇聚操作会遗失一些词的位置信息,所以较难应用到词性标注和实体抽取中。但是也不是不可以做,你需要把位置信息加入到特征里。下面是作者看的CNN在NLP方面的论文。
这里举了论文[1]中的例子,模型很简单。输入层是由word2vec词向量表示的句子,后面跟着是卷基础,然后是max-pooling层,最后是全连接的softmax分类器。同时论文中还实验了使用两个通道,一个静态一个动态,一个会在训练中变化(词向量变化?参数谁不会变化,mark)。在论文[2][6]还有多加入一层来实现“情感聚类”。

这里写图片描述
[4]中就没有像word2vec这样还要先训练,直接简单粗暴的使用one-hot向量。[5]的作者表示他的模型在长文本中表现非常好。总结了下,词向量这种在短文本中比长文本表现更好。
构建CNN模型要做些啥:1、输入的向量化表示。2、卷积核的大小和数量的设置。3、汇聚层类型的选择。4、激活函数的选择。一个好的模型的建立需要多次的实验,这里作者表示如果没能力建立更好的模型,效仿他就足够了。另外有几点经验:1、max-pooling好于average-pooling。2、过滤器的大小很重要。3、正则并没有卵用。4、警告最好文本的长度都差不多。
剩下的论文就不说了。
[1] Kim, Y. (2014). Convolutional Neural Networks for Sentence Classification. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP 2014), 1746–1751. [2] Kalchbrenner, N., Grefenstette, E., & Blunsom, P. (2014). A Convolutional Neural Network for Modelling Sentences. Acl, 655–665. [3] Santos, C. N. dos, & Gatti, M. (2014). Deep Convolutional Neural Networks for Sentiment Analysis of Short Texts. In COLING-2014 (pp. 69–78). [4] Johnson, R., & Zhang, T. (2015). Effective Use of Word Order for Text Categorization with Convolutional Neural Networks. To Appear: NAACL-2015, (2011). [5] Johnson, R., & Zhang, T. (2015). Semi-supervised Convolutional Neural Networks for Text Categorization via Region Embedding. [6] Wang, P., Xu, J., Xu, B., Liu, C., Zhang, H., Wang, F., & Hao, H. (2015). Semantic Clustering and Convolutional Neural Network for Short Text Categorization. Proceedings ACL 2015, 352–357. [7] Zhang, Y., & Wallace, B. (2015). A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification, [8] Nguyen, T. H., & Grishman, R. (2015). Relation Extraction: Perspective from Convolutional Neural Networks. Workshop on Vector Modeling for NLP, 39–48. [9] Sun, Y., Lin, L., Tang, D., Yang, N., Ji, Z., & Wang, X. (2015). Modeling Mention , Context and Entity with Neural Networks for Entity Disambiguation, (Ijcai), 1333–1339. [10] Zeng, D., Liu, K., Lai, S., Zhou, G., & Zhao, J. (2014). Relation Classification via Convolutional Deep Neural Network. Coling, (2011), 2335–2344. [11] Gao, J., Pantel, P., Gamon, M., He, X., & Deng, L. (2014). Modeling Interestingness with Deep Neural Networks. [12] Shen, Y., He, X., Gao, J., Deng, L., & Mesnil, G. (2014). A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval. Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management – CIKM ’14, 101–110. [13] Weston, J., & Adams, K. (2014). # T AG S PACE : Semantic Embeddings from Hashtags, 1822–1827. [14] Santos, C., & Zadrozny, B. (2014). Learning Character-level Representations for Part-of-Speech Tagging. Proceedings of the 31st International Conference on Machine Learning, ICML-14(2011), 1818–1826. [15] Zhang, X., Zhao, J., & LeCun, Y. (2015). Character-level Convolutional Networks for Text Classification, 1–9. [16] Zhang, X., & LeCun, Y. (2015). Text Understanding from Scratch. arXiv E-Prints, 3, 011102. [17] Kim, Y., Jernite, Y., Sontag, D., & Rush, A. M. (2015). Character-Aware Neural Language Models.

CNN卷机网络在自然语言处理问题上的应用的更多相关文章

  1. 3. CNN卷积网络-反向更新

    1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 如果读者详细的了解了DNN神经网络的反向更新,那对我们今天的学习会有很大的帮助.我们的CNN ...

  2. 2. CNN卷积网络-前向传播算法

    1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 我们已经了解了CNN的结构,CNN主要结构有输入层,一些卷积层和池化层,后面是DNN全连接层 ...

  3. NASNet学习笔记——   核心一:延续NAS论文的核心机制使得能够自动产生网络结构;    核心二:采用resnet和Inception重复使用block结构思想;    核心三:利用迁移学习将生成的网络迁移到大数据集上提出一个new search space。

    from:https://blog.csdn.net/xjz18298268521/article/details/79079008 NASNet总结 论文:<Learning Transfer ...

  4. 基于TensorRT的BERT实时自然语言理解(上)

    基于TensorRT的BERT实时自然语言理解(上) 大规模语言模型(LSLMs)如BERT.GPT-2和XL-Net为许多自然语言理解(NLU)任务带来了最先进的精准飞跃.自2018年10月发布以来 ...

  5. 网游中的网络编程3:在UDP上建立虚拟连接

    目录 网游中的网络编程系列1:UDP vs. TCP 网游中的网络编程2:发送和接收数据包 网游中的网络编程3:在UDP上建立虚拟连接 TODO 二.在UDP上建立虚拟连接 介绍 UDP是无连接的,一 ...

  6. ios开发之网络数据的下载与上传

    要实现网络数据的下载与上传,主要有三种方式 > NSURLConnection  针对少量数据,使用“GET”或“POST”方法从服务器获取数据,使用“POST”方法向服务器传输数据; > ...

  7. 1. CNN卷积网络-初识

    1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面, 它的神经元间的连接是 ...

  8. 2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划

    2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划 [Problem Description] ​ 有向无环图中,有个机器人从\(1\)号节点出发,每天等概率的走到下 ...

  9. CNN卷积神经网络在自然语言处理的应用

    摘要:CNN作为当今绝大多数计算机视觉系统的核心技术,在图像分类领域做出了巨大贡献.本文从计算机视觉的用例开始,介绍CNN及其在自然语言处理中的优势和发挥的作用. 当我们听到卷积神经网络(Convol ...

随机推荐

  1. TI C66x DSP 系统events及其应用 - 5.6(INTMUX)

    系统event 0~127(包含了eventCombiner的输出event 0~3)与CPU支持的12个可屏蔽中断是通过INTMUX寄存器进行映射的(不包含NMI.RESET).能够选择将系统eve ...

  2. android中图型的阴影效果(shadow-effect-with-custom-shapes)

    思路: 在自己定义shape中添加一层或多层,并错开.就可以显示阴影效果.为添加立体感,button按下的时候,仅仅设置一层.我们能够通过top, bottom, right 和 left 四个參数来 ...

  3. 固定管线shader编写:基本属性

    欢迎转载!转载时请注明出处:http://write.blog.csdn.net/postedit/50753008 shader 部分介绍: properties:属性部分 material:材质部 ...

  4. 为了世界的和平~一起上caioj~~~!

    打Call~打Call~打Call~~~!!! 世界毁灭了你在哪???不要犹豫,快去caioj!!! 无比优质的oj,未来大牛的明智之选----就是caioj~~~

  5. 从 Zero 到 Hero ,一文掌握 Python--转

    https://www.oschina.net/translate/learning-python-from-zero-to-hero 第一个问题,什么是 Python ?根据 Python 之父 G ...

  6. jbox如果弹不出,放在body里

    body> <form id="form1" runat="server"> <script type="text/javas ...

  7. 抽象工厂模式(AbsFactory)C++实现

    模式意图:提供一个创建一系列相关或相互依赖对象的接口,二无需指定他们具体的类. 效果: 分离了具体的类.     使  a.客户与类的实现分离  b.客户通过抽象接口操纵实例  c.产品的类名在实现中 ...

  8. poj3281 Dining 最大流(奇妙的构图)

    我是按照图论500题的文档来刷题的,看了这题怎么也不觉得这是最大流的题目.这应该是题目做得太少的缘故. 什么是最大流问题?最大流有什么特点? 最大流的特点我觉得有一下几点: 1.只有一个起点.一个终点 ...

  9. hdu4081 Qin Shi Huang's National Road System 次小生成树

    先发发牢骚:图论500题上说这题是最小生成树+DFS,网上搜题解也有人这么做.但是其实就是次小生成树.次小生成树完全当模版题.其中有一个小细节没注意,导致我几个小时一直在找错.有了模版要会用模版,然后 ...

  10. 在线场景感知:图像稀疏表示—ScSPM和LLC总结(以及lasso族、岭回归)

    前言: 场景感知其实不分三维场景和二维场景,可以使用通用的方法,不同之处在于数据的形式,以及导致前期特征提取及后期在线场景分割过程.场景感知即是场景语义分析问题,即分析场景中物体的特征组合与相应场景的 ...