摘 要
文本自动分类作为自然语言处理的基本任务之一,具有重要的应用价值。近年来,深度学习方法在这一领域取得了较大进展,各类深度学习模型或算法不断刷新着文本分类任务的性能记录。本文讨论了深度学习方法的理论基础和关键技术,对主流深度学习文本分类方法进行了分类和总结,探讨了这些方法取得成功的理论依据。本文还设计了对比实验,比较了Text-CNN等6种深度学习算法在复旦新闻数据集和THUCNews数据集上的文本分类性能,验证了这些算法的有效性,实验结果表明,在文本分类任务中引入预训练模型是提高分类准确性的关键因素。
1 引言
文本自动分类一般指使用计算机对输入文本按照一定的类别进行自动化归类,被广泛应用于文本审核、广告过滤、情感分析和舆情监控等相关领域。文本分类的相关研究最早可以追溯到上世纪50年代,典型应用大多为基于规则的专家系统。近二十年来,随着互联网文本数量的指数级增长和计算机硬件能力的快速提高,基于机器学习理论的自动分类方法逐渐取代了基于人工规则的传统方法。而深度学习作为机器学习的一个重要分支也在这一领域取得了突破,其优势在于利用CNN/RNN等网络结构自动获取数据特征,避免了复杂昂贵的人工特征工程,实现了端到端的解决方案。本文介绍了近几年深度学习方法在文本分类领域取得的进展,包括词嵌入、深度学习网络模型、注意力机制以及迁移学习等等,并通过实验比较了几种深度学习分类方法的性能。
2 深度学习文本分类关键技术
深度学习一般是指建立在含有多层非线性变换的神经网络结构之上,对数据的表示进行抽象和学习的一系列机器学习算法。自2012年AlexNet等突破性研究成果发布以来,深度学习方法在图像和语音处理领域取得了巨大成功,同时也引起了自然语言处理领域研究者的广泛关注。但自然语言处理与图像和语音处理有较大差异,主要体现在如下几个方面:
1、语言的高度复杂性,包括词语的抽象性和歧义性,不完全规则性和递归性等等。
2、难以获得高质量的训练数据。比如缺乏类似计算机视觉处理领域中ImageNet之类被广泛认可和使用的大规模数据集。
尽管存在着这些困难,深度学习方法的相关研究依然取得了很大进展,在命名实体识别、文本分类、文本摘要等多项任务中超越了传统方法,有效提高了相关模型或系统的性能。下面概述推动深度学习在文本分类领域应用的关键理论或技术。
2.1 词嵌入(Word Embedding)
词嵌入[1]是一种将文本中的单词映射为词向量的数据表示方式,是深度学习自然语言处理的奠基性工作。因为数据表示是机器学习的核心问题,要处理文本分类、机器翻译等高级任务,必须首先将文本表示成为深度网络能够处理的数据类型。在Word Embedding出现之前,最直观也是最常用的词表示方法是所谓 One-hot编码,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。比如下面的例子:
“土豆”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ...]
“洋芋”表示为 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ...]
然而这样的表示方式仅仅将词语符号化,丢失了语义信息,比如从上述“土豆”和“洋芋”的编码中完全无法看出相关性,而普通人经过大量的阅读根据上下文应该能够分辨出二者是同义词。
为了解决这些问题,研究者提出了通过神经网络技术对文本上下文,以及上下文与目标词之间的关系进行建模。这里举例说明,假设有四个词语: “男孩”、 “男人”、 “女孩”、 “女人”,那么可以将这四个词映射(Embed)为“性别”和“年龄”两个词,再假设性别和年龄都可以取两个值0或1,即年轻+男性(编码为00)为男孩,成年+男性为男人(编码为10),如图1所示。注意这一映射过程根据的是人工提供的先验知识(如: 年轻的男性为男孩),而在具体的机器学习模型中则是根据神经网络的训练过程去发现这些知识,或者说是词语之间蕴含的关系。
图1 词嵌入示例
从上述的例子可以看出,Word Embedding通过将原始文本映射为词向量,不仅保留了文本上下文和词语之间的联系等信息,还起到了数据降维的作用,对于后续的神经网络处理有重大意义。
2.2 基本网络结构
词嵌入等特征提取方式解决了文本数据的表示问题,可以作为深度学习网络的输入,而最终完成文本分类任务还需要构建神经网络。神经网络按其基本结构可以分为处理具有空间性分布数据的卷积神经网络(CNN,Convolutional Neural Network)和处理具有时间性分布数据的递归神经网络(RNN,Recursive Neural Network)。下面介绍这两类网络结构。
由于文本天然具有顺序性和时间分布特征,早期深度学习文本分类模型基本采用递归神经网络RNN及其改进版本如LSTM(Long Short-Term Memory,长短期记忆网络)或GRU Gated Recurrent Unit(LSTM的一种变体)。RNN专门用于处理时序数据,该网络中的每一层不仅输出到下一层,同时还输出一个隐状态,由当前层在处理下一个输入时使用。如果在文本中某个词语根据上下文内容不同而有不同的含义,则RNN能较好的解决这类问题。RNN结构如图2(a)所示,可形式化描述如下:
图2 RNN和LSTM对比
LSTM相对于RNN的主要改进有两个方面。一方面LSTM引入了一个新的内部状态(internal state),另一方面,引入门机制(gating mechanism)来控制信息传递的路径 。
在引入RNN或LSTM结构后,文本分类的基本网络框架如图3所示。
图3 基于RNN/LSTM的文本分类网络
除了RNN,另一类卷积神经网络CNN具有计算性能高、分类效果好等特点,也在文本分类领域得到了广泛应用。CNN的基本结构包括两种特殊的神经元层,即卷积层和池化层。在卷积层中,每个神经元的输入与前一层的局部相连,并提取该局部的特征;其二是池化层,用来求局部敏感性与二次特征提取的计算层。
图4包含了上述卷积层和池化层,演示了CNN用于文本分类的过程。首先将句子映射到嵌入向量,并以矩阵的形式输入到模型中。然后使用不同大小的卷积核对所有输入词做卷积操作。最后使用最大池化层处理得到的特征映射,将提取到的特征进行汇总,最后由Softmax分类器得到最终的文本分类结果。
图4 Text-CNN文本分类网络
2.3预训练模型
预训练的思想是在初始化深度网络模型时,而是先通过一个具体任务(通常是大规模文本数据集上的训练任务)进行训练得到一套模型参数,然后用这套参数对将要使用的深度网络模型做初始化,再进行训练。近年来,使用语言模型预训练的方法在多项 NLP 任务上都获得了显著的性能提升,并被广泛应用于文本分类等自然语言处理的高级任务中。最重要的预训练模型包括ELMo、GPT和 BERT。图5展示了这三种模型的基本网络结构。
而预训练模型的最新进展是Google的Devlin等人于2018年底提出的BERT模型[4],该模型考虑了双向的语境信息,并使用了具有更强特征抽取能力的双向Transformer结构。其最主要的特征包括:
(1)利用了双向的Transformer
(2)改进了普通语言模型,提出了Mask-LM(Mask-Language Model)以利用文本的双向信息。
(3)完善和扩展了GPT中设计的通用任务框架,使得BERT能够支持包括文本分类等任务。
总之,预训练语言模型的本质是迁移学习,即将深度网络在大规模数据集上学到的通用信息迁移到新的文本处理任务中。以文本分类任务为例,应用与训练模型的一般过程是将预训练模型作为特征提取器,先将预训练模型的输出层去掉,再将其剩下的最后一层输出作为特征输入到前述的RNN/CNN模型中,就能提升原网络的分类性能。
3 文本分类方法的实验对比
3.1 实验说明
为了验证不同算法的性能并进一步分析,本文设计了对比实验,测试了6种有代表性的深度学习文本分类方法,这些方法可以分为三类,第一类为采用RNN/LSTM的Text-RNN、Bi-LSTM;第二类为采用CNN卷积神经网络作为网络基本单元的Text-CNN、Char-CNN、Text-RNN;第三类为引入了预训练模型的分类模型ELMo和Bert。所有算法在实现时采用算法作者推荐的最佳参数设置。
实验数据
本文设计的实验采用的实验数据为复旦中文新闻分类语料和THUCNews中文新闻分类语料。该语料库由复旦大学自然语言处理与信息检索共享平台发布,包含39247篇新闻,大小54.2 MB。该语料库采集自腾讯新闻网、凤凰网等主流新闻网站,分为历史、军事等八个类别。
THUCNews数据集由清华大学自然语言处理实验室整理发布,根据新浪新闻频道2005至2011年间的历史数据筛选过滤生成,包含74万篇新闻文档,大小为2.19 GB。共划分为财经、彩票、房产等14个类别。
评价指标
文本分类评价指标通常包括准确率(Acc)、精确率(Precision)、查全率(Recall)等。其中准确率为所有正确分类结果与所有数据项之比。准确率指在检索后返回的结果中,真正正确的个数占整个结果的比例。查全率指在检索结果中真正正确的个数 占整个数据集(检索到的和未检索到的)中真正正确个数的比例。具体公式为:
3.2 结果分析
根据上述实验结果可以得出一些重要结论。 一方面所有深度学习方法都比较有效,大部分方法都取得了超过了基线方法的分类性能。另一方面基于预训练模型ELMo或Bert的方法取得了最好的成绩,尤其是Bert方法,这得益于Bert等预训练模型采用了大规模的训练数据集,并引入了双向Transformer等先进网络结构。总之,引入预训练模型确实能显著提高文本分类的准确性,将成为深度学习文本分类方法或模型的标准配置。
4 总结
本文对近年来深度学习方法在文本分类方面的进展进行了综述,重点讨论了词嵌入、深度网络结构、预训练模型等相关理论和技术,并通过实验对比了多种深度学习方法的文本分类性能,为今后的研究工作提供了指引。
参考文献
1.Mikolov T , Chen K , Corrado G , et al. Efficient Estimation of Word Representations in Vector Space[J]. Computer Science, 2013.
2.Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. 2018.
3.Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[J]., 2018.
4.Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
论文作者:温善婷
论文发表刊物:《科技新时代》2019年4期
论文发表时间:2019/6/17
标签:文本论文; 模型论文; 深度论文; 数据论文; 神经网络论文; 卷积论文; 方法论文; 《科技新时代》2019年4期论文;