本文为论文《Deep Learning Based Text Classification: A Comprehensive Review》的阅读总结,可以在第7-8部分直接看结论。
- 写在前面
文本分类是自然语言处理(NLP)领域中较为基础的问题,情感分类、QA问答、自然语言推理、阅读理解等任务都可以看作是文本分类。在这些文本分类任务中,只要有一定量的标注数据,常见的算法能够达到很好的效果,这使得文本分类不是什么难题。近年来,随着基于深度学习的语言模型不断迭代,在同等标注数据量的情况下,一些模型也总是优于另一些模型。下面我们一起来看一下论文《Deep Learning Based Text Classification: A Comprehensive Review》中提到的150种深度学习文本分类方法,及其在40个数据集上的表现。 - 文本分类算法的分类
2.1 总共分三类
- 基于规则的方法
- 基于机器学习的方法,也可以叫做“数据驱动的方法”
- 混合方法
2.2 三类方法各自的特点
- 基于规则的方法的特点(Rule-based methods)
- 需要人工参与:需要人的知识来形成规则,人形成的规则通常比较准确
- 维护方面:当规则变化或更新时,维护成本较高(需人工重新总结规则);当规则较多时,规则与其他规则之间可能出现冲突,难以维护
- 扩展性方面:难于扩展到其他场景中,往往需要重新编写规则
- 机器学习的方法,也可以叫做“数据驱动的方法”(Machine learning (data-driven) based methods)
- 机器学习的方法又分为两类
- 传统机器学习文本分类,比如svm、gbdt
- 第一步:人工指定特征,比如n-gram,tfidf,故需要大量的数据分析和特征工程的工作量;另外,特征工程工作需结合业务场景进行选择,这也导致很难泛化到其他场景;因为做了特征工程,对于数据量较大的数据集来说,一般都可以训练
- 第二步:将特征放入分类器训练
- 基于深度学习的文本分类
- 深度学习模型能够自动地学习一些数据与标签之间的内在联系,除标注工作外,不需要人工干预
- 传统机器学习文本分类,比如svm、gbdt
- 机器学习的方法又分为两类
-
- 混合方法(Hybrid methods)
- 这里混合的方法指的是attention,CNN,LSTM,BERT等模型的混合,即深度学习模型的混合
- 二工业界普遍采用的混合方法,主要考虑到规则方法来做前置过滤和后置兜底,方法简单易行、消耗资源少;对于一些较为复杂、数据量大,使用深度学习的模型效果更佳,就形成了混合的方法
- 混合方法(Hybrid methods)
3. 常见的文本分类任务
- 情感分类
- 新闻分类
- 话题分类
- QA问答
- 自然语言推理(NLI)
这里介绍一下QA问答和自然语言推理。
- QA问答:分为抽取式和生成式。抽取式可以认为:基于用户的问题,在非结构化的文档中针对句子做文本分类,选择个别句子作为答案。生成式属于seq2seq的文本,不属于文本分类。
- 自然语言推理:可以认为是文本分类问题,即一段文字的信息是否是从另一段文字推理得出的,即“Yes or No”的二分类问题。
4. 典型的文本分类方法
4.1 Feed-Forward Neural Networks
用word2vec或glove学习得到词向量,将一个句子的单词用对应的词向量表示,并求和或平均后,放进MLP、SVM、LR等模型中进行训练,类似的方法有DAN(deep average network)、fastText,这两个方法都能够在文本分类问题上取得很好效果。
4.2 RNN家族
传统的RNN网络以及继任者LSTM这里就不多说了,已经是面试题中的常规操作了。这里简单提几个变种模型。
- Tree-LSTM模型
- 文本信息中存在语法结构的,Tree-LSTM能够学习到语法结构中丰富的语义表示,且能够学习到序列文本中的较长依赖的问题
- Multi-Timescale LSTM (MT-LSTM)模型
- LSTM在处理较长文本时,效率很低,常见的做法是截断后再输入到LSTM中。MT-LSTM的出现使得该模型能够处理长文本,能够在不同的时间尺度上获取有价值的信息
- Topic RNN
- 能够整合语法依赖,也能够整合话题中的语义依赖
4.3 CNN家族
这里仅提及最早的dynamic CNN和家喻户晓的kim-CNN。
DCNN模型
![](https://img-blog.csdnimg.cn/img_convert/be48ddaf192e89b558841f8496f2b003.png)
kim-CNN模型
4.4 胶囊网络Capsule Neural Networks
为能够建模文本序列中的空间依赖关系以及实体位置关系,kim等人引入Capsule神经网络,取得了不错的效果。
4.5 注意力机制相关模型
这部分不再详述了
4.6 Memory-Augmented Networks
能够让模型学习到读取哪些内容,输出那些文字序列。
4.7 Transformers
太有名了,这部分不再详述了,包含XL-Net等模型
4.8 GNN 图神经网络
很久以前,textRank引入图论的方法解决一些关键词抽取、摘要等任务。文本序列中的语法和语义关系通常是一个图结构,为了建模这些图结构,一些研究人员引入了GNN。GNN能够利用句子间、文档间的结构关系,能够达到更好的效果。
4.9 Siamese network 孪生神经网络
不再详述,可参看:Siamese network 孪生神经网络--一个简单神奇的结构 - 知乎
4.10 混合的方法
这里混合的方法指的是上述深度学习模型之间的混合,比如cnn结合lstm,lstm结合attention模型等等
5. 数据集介绍
5.1 情感分类
- Yelp、IMDb、Movie Review、SST、MPQA、AMazon、Aspect-Based Sentiment Analysis
5.2 新闻分类
- AG News、20NewsGroups、SogouNews、Reuters news、BingNews、NYTimes、BBC、Google News
5.3 话题分类
- DBpedia、Ohsumed、EUR-Lex、WOS、PubMed、PubMed 200k RCT、Irony (which is composed of annotated comments from the social news website reddit、Twitter dataset for topic classification of tweets、arXiv
collection)
5.4 QA数据集
- SQuAD、MS MARCO、TREC-QA、WikiQA、Quora、QA includes Situations With Adversarial Generations (SWAG)、 WikiQA、SelQA
5.5 NLI自然语言推理数据集
- SNLI、Multi-NLI、SICK、MSRP、 Semantic Textual Similarity (STS)、RTE、SciTail
6. 评价方法
- accuracy 和 error rate (二者加和等于1)
- precision/recall/F-measure
- Exact Match (EM)
- 主要用于QA系统,用来衡量预测与真实回答之间的匹配程度,是SQuAD比赛中常用的评测方法
- Mean Reciprocal Rank (MRR)
- 主要用来评价排序的质量,query-document ranking 和 QA答案排序
7. 各方法的效果比较
使用上述数据集和评价方法的情况下,我们先总结一些基本结论:
- 基于深度学习的语言模型碾压了传统的文本分类方法,近年来随着基于深度学习的语言模型的发展,在很多任务上取得了5-10%的提升
- BERT、RoBERTa、XLNet基本占据了各项任务的榜首,各大比赛的榜首也被这几个模型席卷,成为the-state-of-art的方法。
7.1 情感分类赛道
![](https://img-blog.csdnimg.cn/img_convert/3c1e9f08d92f4033fca947af979a753f.png)
7.2 新闻分类及话题分类赛道
7.3 QA赛道
- 阅读理解
![](https://img-blog.csdnimg.cn/img_convert/d3f8060565f47bd591f7c4dd24811da6.png)
- wikiQA
![](https://img-blog.csdnimg.cn/img_convert/5defa9b2f94e8a058fce56d8f4ed5d99.png)
7.4 自然语言推理赛道
8. 文本分类算法中存在的问题
- 虽然在很多数据集上,基于深度学习的文本分类算法效果很好,但在一些复杂的文本分类场景中,仍然缺乏数据集,也无法验证当前模型的效果,比如复杂场景下QA、多步的文本推理、多语言文本分类等
- 对知识进行建模:需要对文本信息中的知识进行建模,比如构建知识库、知识图谱,并基于这些知识进行分析及推理
- 深度学习的可解释性:在很多真实的业务场景中,业务方更关心可解释性问题,然而目前的深度学习的可解释性不强
- 更小、更高效的模型:随着bert等模型的出现,模型越来越大,训练消耗的资源也越来越多,有限资源下的训练时间也很长,工业界更需要较小、能够高效训练的模型
- 小样本学习(zeor-shot和 few shot learning):当前深度学习的模型太依赖大量的标注数据了,是否能够引入知识,来解决标注样本较少的问题
9. 推荐两篇相关论文
Pre-trained Models for Natural Language Processing: A Surveyarxiv.org/pdf/2003.08271.pdf
Deep Learning Based Text Classification: A Comprehensive Reviewarxiv.org/pdf/2004.03705