Effective Use of Word Order for Text Categorization with Convolutional Neural Networks

Effective Use of Word Order for Text Categorization with Convolutional Neural Networks

背景

       CNN充分用于图像数据去探索图像的1D结构,本文作者将CNN用于文本数据,探索数据的1D结构(例如词序)。与利用低维数据作为输入不同,作者直接用CNN作用与高维的文本数据。这样做的好处在于可以学习出小的文本区域的的embedding(局部特征) 。

Introduction

      文本分类就是自动识别出文本的类别,常见的文本分类应用主要有主题分类、邮件检测和情感分析等。一个常用的方法就是将文档利用词袋模型(bag-of-word)表示成文档向量,在利用分类器(eg.SVM)进行分类,该方法只能表示文档中的词是否出现过,但是忽略了词与词之间的顺序。为了解决这个问题,最简单的方法就是讲bi-gram代替uni-gram。但是当n>1时,n-gram在文本分类上并不是有效的。为了在文本分类任务上利用词序关系,本文采用CNN(因为CNN可以充分利用数据的内部结构,每个卷积核都与文本数据的小区域相关)。目前CNN已经广泛应用于entity search, sentence modeling, word embedding learning, product feature mining等。

      在多数的CNN中,第一层都是embedding层。一般分为两种,一种是与embedding与后续网络一起训练;另一种则是用大量预料训练好的embedding(不再改变)。本文为了研究CNN在文本分类上的有效性,避免其他因素的影响,所以采用embedding层与后续网络一起训练的形式。CNN的本质就是将固定大小局部区域进行特征提取,因此,embedding层就是学习每一个词的embedding,就是CNN的size=1的特殊情况。

模型结构

    卷积网络就是每一个单元对局部区域利用非线性函数进行特征提取,将提取的特征进行拼接经过pooling层,最终输入分类层进行分类,网络结构如下图。CNN最大的特征就是权重共享(weight sharing)。这种权重共享可以帮助学习有用的特性,而不考虑它们的位置,同时保留有用特性出现的位置。

      CNN在文本中的应用,假设D =(w1,w2,...) ,其中每一个词都属于词典V。现在需要经文档进行表示,但是需要保证文档中词序关系。最简单的做法就是将每一个词利用one-hot编码,然后将文档中的词串联起来,从而形成文档向量。

seq-CNN

利用one-hot模型表示每一个词,对于bi-gram,则将相邻的两个词形成向量。例如“I love it”,则表示如下:

bow-CNN

    当n-gram的n过大时,或者词典过大时,seq-CNN的表示方式,会使得向量维度过大,从而造成过多的参数需要学习,加大算法的计算复杂度,因此bow-CNN采用bag-of-word的形式进行表示。同样地,“I love it”采用2-gram将表示如下:

     无论是seq-CNN还是bow-CNN,输出都是变化的长度,如下图。如果使用传统的pooling层,会将输出大小的可变性传递下去,因此本文固定pooling单元的个数,动态改变pooling单元作用区域大小来获得国定大小的输出。The dynamic k-max pooling of (Kalchbrenner et al., 2014) for sentence modeling extends it to take the k largest values where k is a function of the sentence length,
but it is again over the entire data, and the operation is limited to max-pooling。

实验

  • 激活函数采用sigmod(x) = max(x,0)
  • 目标函数:MSE+L2
  • 优化函数:SGD

BaseLine Method

  • 线性核SVM
  • bag-of-wprd作为输入的全连接网络

Data

  • IMDB,电影评论数据,用于情感分析
  • Elec: 电子产品评论数据,用于情感分析
  • RCV1:Reuters新闻文章数据,用于主题分类

论文:https://arxiv.org/pdf/1412.1058.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值