卷积神经网络(CNN)概述及其在NLP中的应用(二)

原文链接:
http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/
原标题《Understanding convolutional neural networks for nlp》

卷积神经网络(CNN)概述及其在NLP中的应用(一)

5. Convolutional Neural Networks Applied To NLP

现在让我们看一些在NLP中使用CNNs的应用。我将会尝试着将一些研究结果总结起来,但我还是会遗漏许多有趣的应用(可以在评论中告知我),但我希望该文章至少可以包含一些最流行的结论。
最适合CNNs做的工作似乎就是分类任务了,像情感分析,垃圾邮件识别或者主题分类。Convolutions和Pooling操作会忽略掉局部词序的信息,这就使得词性标注或命名实体识别这类的序列标注难以使用纯粹的CNN架构(虽然不是不可能,但你可以向输入中添加位置特征)
文献[1]中使用了各种分类语料库来验证一个CNN架构,其中大多是情感分析和主题分类的任务。CNN架构在各类语料集中表现出了很好的效果,并且在少数几个语料集中获得最先进的精确度。惊奇的是该论文中使用的网络是相当简单的,这也是使它强大的地方。
Input layer是由word2vec词向量序列组成的一个句子,接下来是一个含有多重filters的convolutional layer,然后使用一个max-pooling layer,最后是一个softmax分类器。
该paper也试验了两种不同的channels:静态词向量和动态词向量两种形式,动态词向量会在训练中不断调整,另一种则不会。文献[2]提出了一个类似但更加复杂的结构。文献[6]在网络结构中添加了一层用来执行“语义聚类(semantic clustering)”。
这里写图片描述
Kim, Y. (2014). Convolutional Neural Networks for Sentence Classification

文献[4]没有借助类似word2vec或GloVe这样的预训练词向量,而是从0训练一个CNN。他将one-hot向量直接应用到卷积层。作者也提出了一种类似Bag-of-Words的表达方式作为数据的输入,减少网络需要学习的参数数量,提升空间的利用率。在文献[5]中,作者在文献[4]的模型基础上附加了一个非监督的“region embedding”,“region embedding”is learned using a CNN predicting the context of text regions(因为还没有看该论文,这句话的确切含义我也不好断言,所以读者们自己理解吧~ ^ ^)。这些文章中的方法在长文本(像电影评论)中表现很好,但在短文本(像微博)中的表现就不那么明显了。另外从直观上看,预训练的词向量在短文本中使用的收获要大于在长文本中使用的收获。

建立一个CNN框架就意味着会有许多参数需要选择,就像我前面提到的一些:输入表示(word2vec,GloVe,one-hot),convolution filter的size和number,pooling的策略(max,average)和激活函数(ReLU,tanh)。文献[7]就展示了一种经验评估方法,该方法可以对CNN架构中变化的超参数进行效果上的验证。通过多次运行在性能和方差上调查它们的效果。如果你正打算实现一个你自己的CNN用来做文本分类,那么使用该论文的结论作为起点将会是一个不错的点子。一些值得注意的结果是:max-pooling的效果总是比average-pooling的效果好;理想filter的size是很重要的,但也要依赖所做的任务;规则化在NLP任务中并没有我们想象的那么有太大差异。该项研究还有一个警告:所有数据集的语料在其长度上需要近似相等,因为相同的指导方针可能不适用于看起来差异太大的数据。

文献[8]尝试着使用CNNs做关系抽取任务和关系分类任务。除了使用词向量外,作者还对感兴趣的实体词做词位的关联并作为convolutional layer的输入。该模型假设实体词的位置使给定的,并且假定每隔样例的输入都会包含一个关系。文献[9]和[10]也有相似模型的尝试。

在文献[11]和文献[12]中,有另一个将CNNs应用到NLP的有趣案例,该案例出自于微软研究院。这些文献描述了如何学习一条sentence的丰富语义表达,并将它应用到信息检索中。文献中提供的例子包括有基于用户当前阅读的文章,去推荐用户潜在感兴趣的文章。Sentence的语义表达是根据搜索引擎日志数据训练的。

大部分的CNN架构通过学习embedding将words和sentences作为训练流程的一种方式或一部分。但并不是所有的文献都关注这方面的训练或研究如何更有意义的去学习embedding。文献[13]展示一种CNN架构,可以预测脸熟帖子上的标签,并同时对words和sentence生成有意义的embedding。这些学习到的embedding然后成功应用到了另一个任务:通过点击流量数据训练,向用户推荐潜在的感兴趣的文章。

6.Character Level CNNs

到目前为止,所有描述的模型都是基于words。但还是有一些将characters直接应用到CNNs的研究。文献[14]学习character-level上的embedding,并将它们和训练好的word embedding结合,然后使用一个CNN框架用于部分语音的标注。文献[15][16]则尝试着直接从character中学习,而不需要任何预训练的embedding。他们使用了一个总共有9层的深度网络,并将它应用到情感分析和文本分类的任务中。结果显示直接从character-level作为输入的工作在大数据集(上百万的语料)中表现很好,但是在小数据集(成百上千的语料)中表现不佳。文献[17]尝试着将character-level的convolution应用到语言模型中,使用character-level CNN的输出作为LSTM在每个time step的输入。同样的模型被应用到各种各样的语言中。


(完结)

参考文献:
[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.

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值