RecurrentConvolutional Neural Networks for Text Classification
主要工作:
1.提出一种新的RecurrentConvolutional Neural Networks文本分类方法,不需要人为设定特征。
2.设计三个实验分别用于:各种文本分类模型性能比较、研究窗口大小对神经网络模型的影响、调查所提出的模型是如何表示文本的。
此前方法存在的缺陷:
传统文本文类方法:性能很大程度上依赖于特征的表示和选择,然而,常用的特征的表达方法经常忽略上下文信息、单词在文章中的位置,在获取词汇语义方面达不到令人满意的程度。high-ordern-grams和更为复杂的特征表示方法虽然可以获取上下文信息并且保留词序,但是存在数据稀疏问题。
RecursiveNeuralNetwork递归神经网络:在构建句子表达方面很有效,但是它是基于树结构来表达句意的,性能在很大程度上依赖文本树结构,构建这样的一个树时间复杂度会很高至少是O(n^2),而且两个句子之间的关系无法通过树的结构表示,所以RecursiveNN不适合对长句子或文档建模。
RecurrentNeuralNetwork循环神经网络:可以能够很好的捕获上下文信息,但他是有偏差的模型,后输入的词要比先输入的词占有更重要的地位,所以在获取整篇文档语义时这种方法就不那么有效了。
ConvolutionalNeuralNetwork卷积神经网络:是个无偏的模型,对比RNN可以很好的获取文档的语义信息,但是为了简化卷积核都采用固定的窗口,难点在于确定窗口大小,太小的窗口可能丢失重要信息,太大的窗口又会扩大参数空间
创新点:
提出一个新的模型RecurrentConvolutional NeuralNetwork并将其用到文本分类当中。首先在学习词的表达的时候,采用双向循环结构获取文本信息,比传统的基于窗口的神经网络更能减少噪声,而且在学习文本表达时可以大范围的保留词序。其次使用最大池化层获取文本主要成分,自动判断哪个特征在文本分类过程中起更重要的作用。
优点:同时利用了RNN和CNN的优点,时间复杂度仅为O(n),与文本长度呈线性相关。
实验及结论:
先对语料库做预处理:英文的获取tokens,中文分词;将于料库分成训练集和测试集,ACL和SST都是已经分好的,其余两个取10%作为测试集;性能评价指标20News采用F1值,其它几个语料库采用准确率。
超参的设置:是50,是50,学习率0.01,隐层大小为100
在四个数据集上,用提出的方法与此前最先进的方法比较。
实验一结论:
1.在四个数据集上,神经网络的方法都要优于传统的方法,能获得更多的上下文信息,并且可能降低了数据稀疏性。
2.在数据集SST上比较CNN和RCNN与RecursiveNNs,基于卷积的神经网络更适合用于构建文本的语义表达,效果更好;RCNN时间上更快,(时间复杂度与文本长度为线性关系)
3.除了ACL和SST,RCNN的方法都优于之前的方法。
4.RCNN与CNN相比能够获取更多的文本信息
实验二结论:
实验调查RCNN的循环结构在获取文本信息时的作用。得出结论基于CNN的文本分类受到窗口大小影响,RCNN则不会
实验三结论:
调查了RCNN学习的到的关键词,因为RCNN不依赖与句法分析器所以得到的关键词并不是短语形式,而是单一的中心词。
模型:
模型输入是文档D,是词的序列
模型输出是文档所属的类,下式定义了文档D属于类k的概率, 是待训练参数 :
结合词和其上下文来表示一个词,采用双向循环神经网络来获取一个词的上下文
是单词 左侧的上文,是维度为的实向量,所有文档的第一个词都采用参数
是单词 右侧的下文,所有文档的最后一个词都采用参数
是单词的词向量,维度是的实向量,采用word2vec预先训练得到
是隐层之间的传输矩阵
是用于结合当前词和它左边上一个词的语意的矩阵
f:非线性激活函数
词 的表示:
文中的一些知识点:
特征表达方式:最常用的是词袋模型(Bow),包括unigrams,bigrams, n-grams or some exquisitely designedpatterns,被提取做为文本的特征。还有其他的方法:dictionaries,knowledgebases and special tree kernels.
特征选择方法:频率、MI、pLSA、LDA
传统的文本分类方法重点在于特征表达(bag-of-wordsfeature. In addition, some more complex features have been designed,such as part-of-speech tags, noun phrases (Lewis1992) and treekernels (Post and Bergsma 2013)),特征选择(去噪,例如去停用词)和机器学习算法的选择。
深度学习可以解决数据稀疏问题。