【每周一文】Convolutional Neural Network for text/sentence classification(2016)

概述

卷积神经网络(CNN)相比于基于词袋模型的DNN有以下优点:
1. 能够捕获局部的位置信息
2. 能够方便的将不定长的输入转换成定长输入接入到DNN网络中
3. 相比于RNN模型计算复杂度低,在很多任务中取得不错的效果。

在自然语言处理(NLP)的分类任务中,文本分类或者句子分类也能表现比较好的效果,甚至达到state of art效果。

另外如果借助于预训练的词向量、字向量或者字符向量效果更佳。

本文介绍CNN在分类任务中应用模式。

文本分类应用

句子分类

借助词向量将句子表示成二维矩阵,直接套用经典的CNN框架。可以调节的超参数包括词向量长度以及算法、区域大小、过滤器个数、pooling层策略、正则项

基础架构如下:
【每周一文】Convolutional Neural Network for text/sentence classification(2016)_第1张图片

介绍如下

  1. 上图展示的是两个频道的向量表示作为输入,一个卷积层一个pooling层最后跟多个全连接层。
  2. 两个频道层,可以理解层两个不同算法的词向量表示,或者一个算法一个频道保持静态,即不作为参数改变,另外一个频道根据特定模型进行细粒度调优。
  3. 卷积层可以选择一个region的多个过滤器,或者不同宽度的过滤器进行卷积操作
  4. pooling层常常选择max-pooling就能达到非常好的效果。

短文本分类

借助于字向量、字符向量对短文本进行建模,从而得到句子级别的向量表示,最后用于分类问题,在情感分析中取得较好的效果。

建模流程为

  1. 对于输入句子包含n个词 w1,w2,...,wn ,每个词w_i表示成一个向量表示 ui=[rwrd;rwch] ,其中前半部分是字向量一般能够对语义或者结构信息进行建模;后半部分能够对词的形态学或者词结构进行建模。
  2. 词向量表示算法比较固定
  3. 根据字符向量得到 rwch ,本文是通过一层卷积层获取得到,思路如下图【每周一文】Convolutional Neural Network for text/sentence classification(2016)_第2张图片
  4. 句子级别向量表示,此时可以套用二维的CNN模型进行处理。

文本分类

主要借助于字符级别的CNN网络结构对长文本进行分类。一个主要优势是不需要获取字符的向量表示,可以处理不同长度的问题,模型可以处理多种语言。劣势需要大量的训练数据。

模型框架如下图
【每周一文】Convolutional Neural Network for text/sentence classification(2016)_第3张图片

流程介绍

1.字符量化,确定字符集合,对于英文文本选择26个字母,区分大小写,外加一些标签符号
2. 字符直接采用one hot的表示方法
3. 此时输入文本可以表示为二维向量,采用二维CNN模型进行模型训练。
4. 建立深度的CNN模型,采用6个卷积层和3个全连接层组成
5. 由于模型深度较大,因此需要更多的训练数据

结论

本节介绍了CNN如何应用到文本分类中,已经可能的模型架构。

参考文献
1. Character-level Convolutional Networks for Text Classification
2. A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification
3. Convolutional Neural Networks for Sentence Classification
4. Deep Convolutional Neural Networks for Sentiment Analysis of Short Texts

你可能感兴趣的:(深度学习,每周一文,NLP,CNN,NLP,分类)