Recurrent Convolutional Neural Networks for Text Classification

介绍了CNN表示文本的模型之后,本篇将会分享一篇用CNN结合RNN的模型来表示文本。paper题目是Recurrent Convolutional Neural Networks for Text Classification,作者是来自中科院大学的来斯惟博士。

本文要解决的问题是文本分类,文本分类最关键的问题是特征表示,传统的方法经常会忽略上下文信息和词序,无法捕捉到词义。近几年随着深度学习的火热,研究者们通过借助神经网络模型来解决传统方法存在的问题。比如:Socher提出的Recursive Neural Network(递归神经网络)模型,通过一种树结构来捕捉句子语义,取得了不错的效果,但时间复杂度是O(n2),并且无法用一棵树来表示两个句子之间的关系。再比如:Recurrent Neural Network(循环神经网络)模型,时间复杂度是O(n),每个单词的表示都包含了之前所有单词的信息,有很强的捕捉上下文的能力,但该模型有偏,后面的单词比前面的单词更重要,但这与常识并不相符,因为句中关键的词不一定在最后面。为了解决RNN的有偏性问题,有的研究者提出了用CNN(卷积神经网络)来表示文本,并且时间复杂度也是O(n),但是CNN存在一个缺陷,卷积窗口的大小是固定的,并且这个窗口大小如何设置是一个问题,如果设置小了,则会损失有效信息,如果设置大了,会增加很多的参数。

于是,针对上述模型存在的问题,本文提出了RCNN(循环卷积神经网络)模型,模型架构图如下:

首先,构造CNN的卷积层,卷积层的本质是一个BiRNN模型,通过正向和反向循环来构造一个单词的下文和上文,如下式:

得到单词的上下文表示之后,用拼接的方式来表示这个单词,如下式:

将该词向量放入一个单层神经网络中,得到所谓的潜语义向量(latent semantic vector),这里卷积层的计算结束了,时间复杂度仍是O(n)。接下来进行池化层(max-pooling),即将刚刚得到的所有单词的潜语义向量中每个维度上最大的值选出组成一个新的向量,这里采用max-pooling可以将向量中最大的特征提取出来,从而获取到整个文本的信息。池化过程时间复杂度也是O(n),所以整个模型的时间复杂度是O(n)。得到文本特征向量之后,进行分类。

为了验证模型的有效性,在四组包括中文、英文的分类任务中进行了对比实验,取得了满意的结果。

本文灵活地结合RNN和CNN构造了新的模型,利用了两种模型的优点,提升了文本分类的性能。这也提供了一种研究思路,因为每一种model都有其鲜明的优点和无法回避的缺点,如何利用别的model的优点来弥补自身model的缺点,是改进model的一种重要思路。

来源:paperweekly

原文链接

时间: 2024-08-25 20:29:57

Recurrent Convolutional Neural Networks for Text Classification的相关文章

Convolutional Neural Networks for Sentence Classification

本篇将分享一个有监督学习句子表示的方法,文章是Convolutional Neural Networks for Sentence Classification,作者是Harvard NLP组的Yoon Kim,并且开源了代码 sent-conv-torch. 卷积神经网络(CNN)在计算机视觉中应用广泛,其捕捉局部feature的能力非常强,为分析和利用图像数据的研究者提供了极大额帮助.本文作者将CNN引用到了NLP的文本分类任务中. 本文模型架构图: 熟悉CNN结构的童鞋们看这个图就会非常眼

论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking

  Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking  arXiv Paper   Project Page:http://guanghan.info/projects/ROLO/ GitHub:https://github.com/wangxiao5791509/ROLO 摘要:本文提出了一种新的方法进行空间监督 RCNN 来进行目标跟踪.我们通过深度神经网络来学习到

(zhuan) Building Convolutional Neural Networks with Tensorflow

Ahmet Taspinar  Home About Contact Building Convolutional Neural Networks with Tensorflow Posted on augustus 15, 2017 adminPosted in convolutional neural networks, deep learning, tensorflow 1. Introduction In the past I have mostly written about 'cla

论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

  Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016   本文提出了一种新的CNN 框架来处理跟踪问题.众所周知,CNN在很多视觉领域都是如鱼得水,唯独目标跟踪显得有点"慢热",这主要是因为CNN的训练需要海量数据,纵然是在ImageNet 数据集上微调后的model 仍然不足以很好的表达要跟踪地物体,因为Tracking问题的特殊性,至于怎么特殊的,且听细细道来. 目标跟

(转)A Beginner's Guide To Understanding Convolutional Neural Networks Part 2

Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolutional Neural Networks Part 2 Introduction Link to Part 1                 In this post, we'll go into a lot more of the specifics of ConvNets. Disclaimer:

(zhuan) Attention in Long Short-Term Memory Recurrent Neural Networks

Attention in Long Short-Term Memory Recurrent Neural Networks by Jason Brownlee on June 30, 2017 in Deep Learning   The Encoder-Decoder architecture is popular because it has demonstrated state-of-the-art results across a range of domains. A limitati

循环神经网络(RNN, Recurrent Neural Networks)介绍

循环神经网络(RNN, Recurrent Neural Networks)介绍    这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/,在这篇文章中,加入了一些新的内容与一些自己的理解.   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多自然语言处理(Natural Language Proce

(转)Understanding, generalisation, and transfer learning in deep neural networks

  Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   This is the first in a series of posts looking at the 'top 100 awesome deep learning papers.' Deviating from the normal one-paper-per-day format, I'll

(zhuan) How to Train Neural Networks With Backpropagation

this blog from: http://blog.demofox.org/2017/03/09/how-to-train-neural-networks-with-backpropagation/   How to Train Neural Networks With Backpropagation Posted on March 9 2017 by Demofox This post is an attempt to demystify backpropagation, which is