炼数成金 门户 商业智能 自然语言处理 查看内容

HFL技术分享 #4 | 基于深度学习的文本分类技术

2019-5-31 15:05| 发布者: 炼数成金_小数| 查看: 16684| 评论: 0|原作者: 王宝鑫|来自: 哈工大讯飞联合实验室

摘要: 文本分类任务是自然语言处理(NLP)领域最基础和传统的任务之一,该任务又会根据领域类型的不同分成很多子任务,例如情感分类、主题分类和问题分类等。很多机器学习的新方法都会先尝试在文本分类任务上进行实验验证 ...

网络 工具 模型 神经网络 自然语言处理

1、引言
文本分类任务是自然语言处理(NLP)领域最基础和传统的任务之一,该任务又会根据领域类型的不同分成很多子任务,例如情感分类、主题分类和问题分类等。很多机器学习的新方法都会先尝试在文本分类任务上进行实验验证。例如深度学习中最常见的两大类模型,卷积神经网络(CNN)和循环神经网络(RNN)及其变体,在文本分类中有很多应用。

RNN模型擅长对整个句子进行建模,捕捉长距离依赖信息。然而研究表明,RNN对整个句子建模有时会成为一种负担,使模型忽略了关键的短语信息。CNN模型则正相反,更擅长抽取局部的位置不变特征。为此,我们提出了DRNN模型,通过限制RNN模型信息的流动,将位置不变性引入RNN模型中。这使得DRNN模型既能捕捉长距离依赖信息,又可以很好地抽取关键短语信息。我们提出的模型在DBPedia,Yelp等多个文本分类数据集上取得了较好的效果。

本文首先会对一些基于CNN和RNN的文本分类方法介绍,然后针对CNN和RNN模型存在的问题,重点介绍我们在ACL 2018论文中提出的Disconnected Recurrent Neural Networks(DRNN)。

2、基于CNN的文本分类方法
卷积神经网络(CNN)早期更多的是应用在计算视觉领域。在2011年,Collobert等人首先提出使用CNN解决词性标注(POS)、命名实体识别(NER)和语义角色标注(SRL)等NLP领域的问题。2014年,Kalchbrenner等人和Kim先后在ACL和EMNLP提出将CNN应用于文本分类任务。


图 1:CNN在自然语言处理中的典型应用

图1是Kim在EMNLP2014上的一篇工作,该文提出了一个非常简单实用的CNN模型结构。图1最左边是输入矩阵,每一行是一个词语的Embedding。接下来对输入矩阵做卷积操作,卷积核的大小是k*dim,其中dim是Embedding的维度,k是窗口大小。对于图1来说,k是2和3,dim是6。经过卷积后,每个卷积核得到对应的feature map,图中共有4个卷积核,所以产生了4个feature map。接下来对每一个feature map(图1中间的列向量)取max pooling来选取其较大值。此处做max pooling主要有两点好处,其一是便于抽取输入文本中更重要的信息,其二是可以固定输出的维度,以便后续接全连接层。通过pooling层后得到文本的表示向量,然后再通过softmax进行文本分类。
与之相对应的是,Kalchbrenner等人在ACL 2014提出的CNN模型。该模型主要有两个有效的创新:其一是提出采用宽卷积(Wide convolution)替换窄卷积(Narrow convolution),其二是提出采用K-max pooling方式。

图 2:窄卷积与宽卷积

图2左边的图是窄卷积示例,可以看到采用窄卷积的时候,输入序列边界的词语遍历的次数少于中间的词语,对整个模型的影响也更小一些。此外,窄卷积的输入序列最小长度会受到限制,至少要大于卷积核的窗口大小才能得到对应的输出。图2右侧则是宽卷积,宽卷积会在输入的左右两边各补齐(padding) K-1个输入,从图中可以看到宽卷积可以有效解决上述两个问题。
NLP中常见的max pooling通常只选取较大的一个数值,max pooling主要有两个问题。其一,max pooling后只能表示最重要的一个信息,大部分信息丢失;其二,max pooling后特征的顺序信息也完全丢失了。因此Kalchbrenner等人提出k-max pooling的方法,图3是k-max pooling的一个示意图,下面矩阵的每一行是一个feature map,对每一行选取k个较大的值,并按照原始顺序进行保留。因而k-max pooling可以既保留一部分位置信息,又可以抽取更多重要信息。

图 3:k-max pooling

CNN模型擅长抽取位置不变的局部特征,但是对于一些长距离依赖的问题处理的并不好。Conneau等人提出VDCNN模型,首次在自然语言处理任务中引入深层卷积神经网络(29个卷积层),更深的CNN模型可以捕捉更长距离的依赖信息。该模型主要采用残差网络(ResNet)、Batch Normalization等技术来确保更深层的模型得到充分训练。该模型在AG、DBPedia等文本分类任务上取得了很好的效果。

3、基于RNN的文本分类方法
CNN模型在捕捉长句依赖信息的时候往往需要加深CNN的层数,并设计一个非常精巧的模型来得到比较理想的效果。与之相比,RNN模型则更适合处理长距离依赖问题。

Tang等人为了对句子之间的关系进行建模,提出采用层次化RNN模型来对篇章级文本进行建模。图4是他们提出的一种模型结构,首先用CNN或者LSTM来对句子级别的表示进行建模,然后再将所有的句子表示送入双向LSTM中对整个篇章进行建模。该方法在情感分类任务中取得了很好的效果。


图 4:层次化RNN模型

Yang等人则提出Hierarchical Attention Networks(HAN)进行文本分类。他们在图4模型的基础上进行改进,在句子层和篇章层都进行了Attention操作。具体模型结构见图5,他们引入一个额外向量u,然后将句子中的每个词都和向量u进行Attention操作,进而选取一句话中最重要的词语信息。在篇章级别也进行类似的操作,来选取更重要的句子。Yang等人还尝试将Attention操作替换成max pooling和average pooling,实验结果显示Attention的效果较佳。该模型在很多文本分类任务上都取得了很好的效果。


图 5:Hierarchical Attention Networks

4、CNN和RNN相结合
Yin等人研究表明,CNN模型擅长抽取位置不变的局部特征,但是不擅长捕捉长距离依赖信息。而RNN则相反,RNN擅长对整个句子进行建模,但这种建模有时也会成为一种负担,使RNN模型无法更好地关注重要的短语信息。
由于CNN和RNN都各有其优点,将两者的优势结合便是一种很合理的思路。Xiao等人提出了一种卷积循环神经网络(CRNN)模型,如图6所示。图6左侧是一个普通的CNN模型,右侧则是CRNN模型。CRNN首先采用卷积操作对位置不变的局部特征进行建模,然后再用RNN来捕捉长距离依赖信息。


图 6:Convolution-recurrent networks

5、Disconnected Recurrent Neural Networks

表 1:主题分类示例

前文提到,RNN对整个句子编码,有时会忽略关键的短语信息。表1是一个主题分类的例子,我们可以看到两句话表意基本相同,都应该被分类到科技类。其中决定分类的关键短语是“unsolved mysteries of mathematics”,对于一个窗口大小为4的CNN模型来说,这两个句子中的短语表示完全相同。然而,当我们把两句话送入RNN模型的时候,因为RNN模型中,每一个时刻的隐层状态都和前面所有词语相关,所以这两个短语的表示是完全不同的。这增大了模型捕捉关键短语的难度,使得RNN模型有时会忽视一些关键信息。

为了解决上述问题,我们希望通过将位置不变性引入RNN模型中,使得RNN模型既可以捕捉长距离依赖信息,又可以更好地抽取位置不变的局部特征。为此,我们提出了DRNN(Disconnected Recurrent Neural Networks)模型。具体来说,我们会阻断RNN模型的信息流动,使其最多只能传递固定的步长k。这样的话,每个时刻的隐层状态就只和当前词以及前k-1个词相关。


图 7:Disconnected Recurrent Neural Networks

图7是RNN模型、DRNN模型和CNN模型的一个对比图。如图所示,对于RNN来说,隐层状态h与前面所有的词都相关,而对于DRNN,则只与之前的k-1个词相关。DRNN模型也可以被认为是一种特殊的CNN模型,只是将CNN模型中的卷积核替换成了RNN。显然,DRNN和CNN一样,对于长度为k的短语,无论它在文本中的什么位置,都具有相同的表示。


图 8:整体模型结构

DRNN是一种通用的模型框架,可以应用在很多任务中,我们主要将其应用在文本分类任务中,对应的模型结构见图8。我们采用GRU作为DRNN的循环单元,得到Disconnected Gated Recurrent Unit(DGRU)模型。我们首先将DGRU的每个隐层表示送入MLP中,来抽取更高层的特征信息。然后再通过max pooling来抽取整个文本中最重要的信息,最后再通过一层MLP,然后送入softmax中进行分类。

图 9:DGRU和CNN对比

我们将DRNN模型与CNN、LSTM和GRU进行了对比,从图9中我们可以看到CNN模型的实验效果随着卷积核窗口大小的增大而不断变差,其中CNN窗口为3时实验效果较好。而对于DRNN来说,窗口为15时效果较佳。对于CNN来说,卷积核窗口越大,对应的参数也越多,模型更加容易过拟合。相比之下,在增大DRNN的窗口长度时,参数是保持不变的,因此可以有效地缓解过拟合问题。从表2中我们也可以看到DRNN的效果比LSTM、GRU和CNN更好。


表 2:对比实验结果

我们还比较了不同循环单元和Pooling方法的实验效果,如图10所示。我们采用了naïve RNN、LSTM和GRU作为DRNN的循环单元,其中对于naïve RNN,当窗口增大的时候,效果快速下降,错误率甚至超过20%,因此没有在图中画出。而GRU和LSTM对比,可以看到在DRNN中,GRU作为循环单元的效果更好。对于不同Pooling方法来说,max pooling的效果较好,这是与max pooling可以更好地保持模型的位置不变性有关。


图 10:不同组件对比

我们发现DRNN的窗口大小太大或者太小都会导致模型的效果不佳,当窗口太大的时候,DRNN则更像RNN模型,丢失了位置不变性。而当窗口太小的时候,DRNN则更像CNN模型,缺失了长距离依赖的能力。因此选择一个合适的窗口大小,对于DRNN模型来说很重要。我们对于较佳窗口的设置进行了研究,研究表明较佳窗口大小和训练数据的数据量关系不大,和任务类型关系明显。因此我们在选择较佳窗口的时候可以考虑先在小规模数据上进行实验以选择较佳窗口,如图11所示。


图 11:窗口相关实验

最后,我们在7个文本分类任务上进行了实验,实验结果见表3。从表中,可以看到DRNN模型在文本分类任务上效果很好,比同样是结合RNN与CNN特性的CRNN错误率相对下降10-50%。


表格 3:实验的错误率(%)

6、总结
本文主要介绍了一些经典的CNN和RNN模型,以及他们在文本分类中的应用。并根据CNN和RNN的各自特性,提出了DRNN模型,将位置不变性引入到RNN模型中。实验结果表明,DRNN既具有CNN的位置不变性,又拥有RNN的捕捉长距离依赖的能力,在文本分类任务中取得了很好的效果。

参考文献
[1] Collobert, Ronan, et al. "Natural language processing (almost) from scratch." Journal of Machine Learning Research 12.Aug (2011): 2493-2537.
[2] Blunsom, Phil, Edward Grefenstette, and Nal Kalchbrenner. "A convolutional neural network for modelling sentences." Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, 2014.
[3] Kim, Yoon. "Convolutional Neural Networks for Sentence Classification." Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2014.
[4] Conneau, Alexis, et al. "Very deep convolutional networks for text classification." Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 1, Long Papers. Vol. 1. 2017.
[5] Yang, Zichao, et al. "Hierarchical attention networks for document classification." Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016.
[6] Yin, Wenpeng, et al. "Comparative study of cnn and rnn for natural language processing." arXiv preprint arXiv:1702.01923 (2017).
[7] Wang, Baoxin. "Disconnected Recurrent Neural Networks for Text Categorization" Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, 2018

声明:本文版权归原作者所有,文章收集于网络,为传播信息而发,如有侵权,请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括:各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2019-6-27 04:43 , Processed in 0.168793 second(s), 25 queries .