文本分类综述 | 迈向NLP大师的第一步(中)

2020-12-08 14:15:38 浏览数 (1)

前情提要文本分类综述 | 迈向NLP大师的第

本系列文章总结自然语言处理(NLP)中最基础最常用的「文本分类」任务,主要包括以下几大部分:

  • 综述(Surveys)
  • 深度网络方法(Deep Learning Models)
  • 浅层网络模型(Shallow Learning Models)
  • 数据集(Datasets)
  • 评估方式(Evaluation Metrics)
  • 展望研究与挑战(Future Research Challenges)
  • 实用工具与资料(Tools and Repos)

Github地址: https://github.com/xiaoqian19940510/text-classification-surveys

全文五万字,分几篇整理,后续会整理成PDF分享给大家,欢迎持续关注!

综述内涉及的所有文本分类必读论文清单,我们已经为大家整理打包好啦,订阅号后台回复『文本分类』即可获取喔~

文本分类综述

A Survey on Text Classification: From Shallow to Deep Learning,2020[1]

文本分类是自然语言处理中最基本,也是最重要的任务。由于深度学习的成功,在过去十年里该领域的相关研究激增。鉴于已有的文献已经提出了许多方法,数据集和评估指标,因此更加需要对上述内容进行全面的总结。

本文通过回顾1961年至2020年的最新方法填补来这一空白,主要侧重于从浅层学习模型到深度学习模型。我们首先根据方法所涉及的文本,以及用于特征提取和分类的模型,构建了一个对不同方法进行分类的规则。然后我们将详细讨论每一种类别的方法,涉及该方法相关预测技术的发展和基准数据集。

此外,本综述还提供了不同方法之间的全面比较,并确定了各种评估指标的优缺点。最后,我们总结了该研究领域的关键影响因素,未来研究方向以及所面临的挑战。

深度学习模型

本部分按年份时间顺序整理了文本分类任务相关的深度模型。

2018

Multi-grained attention network for aspect-level sentiment classification[2]
主要贡献

多粒度注意力网络,结合粗粒度和细粒度注意力来捕捉aspect和上下文在词级别上的交互;aspect对齐损失来描述拥有共同上下文的aspect之间的aspect级别上的相互影响。

TL;DR

本文提出了一种新颖的多粒度注意力网络模型,用于方面级(aspect-level)情感分类。现有的方法多采用粗粒度注意机制,如果有多个词或较大的上下文,可能会造成信息丢失。因此我们提出了一种精细的注意力机制,可以捕捉到方面和上下文之间的字级交互。然后我们利用细粒度和粗粒度的注意机制来组成MGAN框架。

此外,与之前用上下文分别训练每个方面的工作不同,我们设计了一个方面对齐损失来描述具有相同上下文的方面之间的方面级交互。我们在三个数据集上评估提出的方法:SemEval 2014包含笔记本销售评价和餐厅评价,以及 twitter数据集。

实验结果表明,在这三个数据集上,多粒度注意力网络的性能始终优于现有的方法。我们还进行了实验来评估方面对齐丢失的有效性,表明方面级交互可以带来额外的有用信息,并进一步提高性能。

Investigating capsule networks with dynamic routing for text classification[3]

在这项研究中,我们探索了用于文本分类,具有动态路由的胶囊网络。我们提出了三种策略来稳定动态路由的过程,以减轻某些可能包含“背景”信息,或尚未成功训练的噪声胶囊的影响。

我们在六个文本分类基准数据集上对胶囊网络进行了一系列实验。胶囊网络在6个数据集中的4个上达到了SOTA效果,这表明了胶囊网络在文本分类任务中的有效性。我们还展示了当通过强基线方法将单标签文本分类转换为多标签文本分类时,胶囊网络表现出显着的性能提升。据我们所知,这项工作是第一次经过经验研究将胶囊网络用于文本建模任务。

Constructing narrative event evolutionary graph for script event prediction[4]

脚本事件预测需要模型在已知现有事件的上下文信息的情况下,预测对应的上下文事件。以往的模型主要基于事件对或事件链,这种模式无法充分利用事件之间的密集连接,在某种程度上这会限制模型对事件的预测能力。为了解决这个问题,我们提出构造一个事件图来更好地利用事件网络信息进行脚本事件预测。特别是,我们首先从大量新闻语料库中提取叙事事件链,然后根据提取的事件链来构建一个叙事事件进化图(narrative event evolutionary graph ,NEEG)。NEEG可以看作是描述事件进化原理和模式的知识库。

为了解决NEEG上的推理问题,我们提出了可放缩图神经网络(SGNN)来对事件之间的交互进行建模,并更好地学习事件的潜在表示。SGNN每次都只处理相关的节点,而不是在整个图的基础上计算特征信息,这使我们的模型能在大规模图上进行计算。通过比较输入上下文事件的特征表示与候选事件特征表示之间的相似性,我们可以选择最合理的后续事件。在广泛使用的《纽约时报》语料库上的实验结果表明,通过使用标准的多选叙述性完形填空评估,我们的模型明显优于最新的基准方法。

SGM: sequence generation model for multi-label classification[5]

多标签分类是NLP任务中一项重要而又具有挑战性的任务。相较于单标签分类,由于多个标签之间趋于相关,因而更加复杂。现有方法倾向于忽略标签之间的相关性。此外,文本的不同部分对于预测不同的标签可能有不同的贡献,然而现有模型并未考虑这一点。

在本文中,我们提出将多标签分类任务视为序列生成问题,并用具有新颖解码器结构的序列生成模型来解决该问题。大量的实验结果表明,我们提出的方法在很大程度上优于以前的工作。对实验结果的进一步分析表明,我们的方法不仅可以捕获标签之间的相关性,而且可以在预测不同标签时自动选择具有最多信息的单词。

Joint embedding of words and labelsfor text classification[6]

在对文本序列进行表征学习时,单词嵌入是捕获单词之间语义规律的有效中间表示。在本文中,我们提出将文本分类视为标签与单词的联合嵌入问题:每个标签与单词向量一起嵌入同一向量空间。

我们引入了一个注意力框架,该框架可测量文本序列和标签之间嵌入的兼容性。该注意力框架在带有标签标记的数据集上进行训练,以确保在给定文本序列的情况下,相关单词的权重高于不相关单词的权重。我们的方法保持了单词嵌入的可解释性,并且还具有内置的能力来利用替代信息源,来作为输入文本序列信息的补充。

在几个大型文本数据集上的大量实验结果表明,我们所提出的框架在准确性和速度上都大大优于目前的SOTA方法。

Universal language model fine-tuning for text classification[7]

归纳迁移学习在CV领域大放异彩,但并未广泛应用于NLP领域,NLP领域的现有方法仍然需要针对特定任务进行模型修改并从头开始训练。因此本文提出了通用语言模型微调(Universal Language Model Fine-tuning ,ULMFiT),一种可以应用于NLP中任何任务的高效率迁移学习方法,并介绍了对语言模型进行微调的关键技术。

我们的方法在六个文本分类任务上的性能明显优于SOTA技术,在大多数数据集上的错误率降低了18-24%。此外,在只有100个带标签样本的情况下,我们的方法能于在100倍数据上从头训练的性能相匹配。

Large-scale hierarchical text classification withrecursively regularized deep graph-cnn[8]

将文本分类按主题进行层次分类是一个常见且实际的问题。传统方法仅使用单词袋(bag-of-words)并取得了良好的效果。但是,当有许多具有不同的主题粒度标签时,词袋的表征能力可能不足。鉴于深度学习模型已被证明可以有效地自动学习图像数据的不同表示形式,因此值得研究哪种方法是文本表征学习的最佳方法。

在本文中,我们提出了一种基于graph-CNN的深度学习模型,该模型首先将文本转换为单词图,然后使用图卷积运算对词图进行卷积。将文本表示为图具有捕获非连续和长距离语义信息的优势。CNN模型的优势在于可以学习不同级别的语义信息。为了进一步利用标签的层次结构,我们使用标签之间的依赖性来深度网络结构进行正则化。我们在RCV1和NYTimes数据集上的结果表明,与传统的分层文本分类和现有的深度模型相比,我们的方法在大规模的分层文本分类任务上有显著提升。

Deep contextualized word rep-resentations[9]

我们介绍了一种新型的深层上下文词表示形式,该模型既可以对以下信息进行建模(1)单词使用方法的复杂特征(例如语法和语义) (2)这些用法在语言上下文之间的变化方式(即建模多义性)。我们的词向量是深度双向语言模型(biLM)内部状态的学习函数,双向语言模型已在大型文本语料库上进行了预训练。

我们证明了可以很容易地将这些表示形式添加到现有模型中,并在六个具有挑战性的NLP问题上(包括问题回答,文本蕴含和情感分析)显著改善目前的SOTA。我们还进行了一项分析,该分析表明探索预训练网络的深层内部信息至关重要,这有助于下游模型混合不同类型的半监督信号。

2019

Roberta: A robustly optimized BERT pretraining approach[10]
主要贡献

更多训练数据、更大batch size、训练时间更长;去掉NSP;训练序列更长;动态调整Masking机制,数据copy十份,每句话会有十种不同的mask方式。

TL;DR

语言模型的预训练能带来显著的性能提升,但详细比较不同的预训练方法仍然具有挑战性,这是因为训练的计算开销很大,并且通常是在不同大小的非公共数据集上进行的,此外超参数的选择对最终结果有很大的影响。

本文提出了一项针对BERT预训练的复制研究,该研究仔细测试了许多关键超参数和训练集大小对预训练性能的影响。我们发现BERT明显训练不足,并且在经过预训练后可以达到甚至超过其后发布的每个模型的性能。我们最好的模型在GLUE,RACE和SQuAD数据集上达到了SOTA效果。这些结果突出了以前被忽略的设计选择的重要性,并对最近一些其他文献所提出的性能增长提出了质疑。

Xlnet: Generalized autoregressive pretraining for language understanding[11]
主要贡献

采用自回归(AR)模型替代自编码(AE)模型,解决mask带来的负面影响;双流自注意力机制;引入transformer-xl,解决超长序列的依赖问题;采用相对位置编码

TL;DR

凭借对双向上下文进行建模的能力,与基于自回归语言模型的预训练方法(GPT)相比,基于像BERT这种去噪自编码的预训练方法能够达到更好的性能。然而,由于依赖于使用掩码(masks)去改变输入,BERT忽略了屏蔽位置之间的依赖性并且受到预训练与微调之间差异的影响。结合这些优缺点,我们提出了XLNet,这是一种通用的自回归预训练方法,其具有以下优势:

  1. 通过最大化因式分解次序的概率期望来学习双向上下文,
  2. 由于其自回归公式,克服了BERT的局限性。

此外,XLNet将最先进的自回归模型Transformer-XL的创意整合到预训练中。根据经验性测试,XLNet在20个任务上的表现优于BERT,并且往往有大幅度提升,并在18个任务中实现最先进的结果,包括问答,自然语言推理,情感分析和文档排序。

Multi-task deep neural networks for natural language understanding[12]
主要贡献

多任务学习机制训练模型,提高模型的泛化性能。

TL;DR

本文提出了一种多任务深度神经网络 (MT-DNN) ,用于跨多种自然语言理解任务(NLU)的学习表示。MT-DNN 不仅利用大量跨任务数据,而且得益于一种正则化效果,这种效果可以帮助产生更通用的表示,从而有助于扩展到新的任务和领域。MT-DNN 扩展引入了一个预先训练的双向转换语言模型BERT。

MT-DNN在十个自然语言处理任务上取得了SOTA的成果,包括SNLI、SciTail和九个GLUE任务中的八个,将GLUE的baseline提高到了82.7 % (2.2 %的绝对改进)。在SNLI和Sc-iTail数据集上的实验证明,与预先训练的BERT表示相比,MT-DNN学习到的表示可以在域内标签数据较少的情况下展现更好的领域适应性。

BERT: pre-training of deep bidirectional transformers for language understanding[13]
主要贡献

BERT是双向的Transformer block连接,增加词向量模型泛化能力,充分描述字符级、词级、句子级关系特征。真正的双向encoding,Masked LM类似完形填空;transformer做encoder实现上下文相关,而不是bi-LSTM,模型更深,并行性更好;学习句子关系表示,句子级负采样

TL;DR

我们介绍了一种新的语言表示模型BERT,它表示Transformers的双向编码器表示。与最近的语言表示模型不同(Peters et al., 2018; Radford et al., 2018),BERT通过在所有层的上下文联合调节来预训练深层双向表示。因此,只需一个额外的输出层就可以对预先训练好的BERT表示进行微调,以便为各种任务创建最先进的模型,例如问答和语言推断,而无需基本的任务特定架构修改。

BERT概念简单,经验丰富。它在11项自然语言处理任务中获得了最新的技术成果,包括将GLUE的基准值提高到80.4%(7.6%的绝对改进)、多项准确率提高到86.7%(5.6%的绝对改进)、将SQuAD v1.1的问答测试F1基准值提高到93.2(1.5的绝对改进),以及将SQuAD v2.0测试的F1基准值提高到83.1(5.1的绝对改进)。

Graph convolutional networks for text classification[14]
主要贡献

构建基于文本和词的异构图,在GCN上进行半监督文本分类,包含文本节点和词节点,document-word边的权重是TF-IDF,word-word边的权重是PMI,即词的共现频率。

TL;DR

文本分类是自然语言处理中的一个重要而经典的问题。已经有很多研究将卷积神经网络 (规则网格上的卷积,例如序列) 应用于分类。然而,只有个别研究探索了将更灵活的图卷积神经网络(在非网格上卷积,如任意图)应用到该任务上。

在这项工作中,我们提出使用图卷积网络(GCN)来进行文本分类。基于词的共现关系和文档词的关系,我们为整个语料库构建单个文本图,然后学习用于语料库的文本图卷积网络(text GCN)。我们的text-GCN首先对词语和文本使用one-hot编码进行初始化,然后在已知文档类标签的监督下联合学习单词和文本的嵌入(通过GCN网络传播)。

我们在多个基准数据集上的实验结果表明,一个没有任何外部词或知识嵌入的普通text-GCN在性能上优于最先进的文本分类方法。另一方面,Text -GCN也学习词的预测和文档嵌入。实验结果表明,当我们降低训练数据的百分比时,文本GCN相对于现有比较方法的改进更加显著,说明在文本分类中,文本GCN对较少的训练数据具有鲁棒性。

2020

Spanbert: Improving pre-training by representing and predicting spans[15]
主要贡献

Span Mask机制,不再对随机的单个token添加mask,随机对邻接分词添加mask;Span Boundary Objective(SBO)训练,使用分词边界表示预测被添加mask分词的内容;一个句子的训练效果更好。

TL;DR

提出了一种名为SpanBERT的预训练方法,旨在更好地表示和预测文本范围。我们的方法通过在BERT模型上进行了以下改进:

  1. 在进行单词遮蔽时,屏蔽随机范围内的token,而不是单个随机的token
  2. 训练跨度边界表示来预测屏蔽跨度的整个内容,而不依赖于其中的单个标记表示。

SpanBERT的表现始终优于BERT和我们优化后的基线方法,并且在范围选择任务(如问题回答和指代消解)上取得了实质性的进展。特别地,在训练数据和模型尺寸与BERT- large相同的情况下,我们的单模型在SQuAD 1.1和2.0上分别取得了94.6%和88.7%地F1分数。我们还实现了OntoNotes指代消解任务(79.6% F1)的最优效果,同时在TACRED关系提取基准测试上的展现了强大的性能,并且在GLUE数据集上也取得了性能提升。

ALBERT: A lite BERT for self-supervised learning of language representations[16]
主要贡献

瘦身成功版BERT,全新的参数共享机制。对embedding因式分解,隐层embedding带有上线文信息;跨层参数共享,全连接和attention层都进行参数共享,效果下降,参数减少,训练时间缩短;句间连贯

TL;DR

在对自然语言表示进行预训练时增加模型大小通常会提高下游任务的性能。然而,在某种程度上由于GPU/TPU的内存限制和训练时间的增长,进一步的提升模型规模变得更加困难。为了解决这些问题,我们提出了两种参数缩减技术来降低内存消耗,并提高BERT的训练速度。

全面的经验实验表明,我们的方法能够让模型在规模可伸缩性方面远优于BERT。我们还使用了一种对句子间连贯性进行建模的自监督损失函数,并证明这种方法对多句子输入的下游任务确实有帮助。我们的最佳模型在GLUE, RACE和SQuAD数据集上取得了新的最佳效果,并且参数量低于BERT-large。

本文参考资料

[1]

A Survey on Text Classification: From Shallow to Deep Learning,2020: https://arxiv.org/pdf/2008.00364.pdf

[2]

Multi-grained attention network for aspect-level sentiment classification: https://doi.org/10.18653/v1/d18-1380

[3]

Investigating capsule networks with dynamic routing for text classification: https://doi.org/10.18653/v1/d18-1350

[4]

Constructing narrative event evolutionary graph for script event prediction: https://doi.org/10.24963/ijcai.2018/584

[5]

SGM: sequence generation model for multi-label classification: https://www.aclweb.org/anthology/C18-1330/

[6]

Joint embedding of words and labelsfor text classification: https://www.aclweb.org/anthology/P18-1216/

[7]

Universal language model fine-tuning for text classification: https://www.aclweb.org/anthology/P18-1031/

[8]

Large-scale hierarchical text classification withrecursively regularized deep graph-cnn: https://dl.acm.org/doi/10.1145/3178876.3186005

[9]

Deep contextualized word rep-resentations: https://doi.org/10.18653/v1/n18-1202

[10]

Roberta: A robustly optimized BERT pretraining approach: https://arxiv.org/abs/1907.11692

[11]

Xlnet: Generalized autoregressive pretraining for language understanding: https://arxiv.org/abs/1906.08237

[12]

Multi-task deep neural networks for natural language understanding: https://www.aclweb.org/anthology/P19-1441/

[13]

BERT: pre-training of deep bidirectional transformers for language understanding: https://doi.org/10.18653/v1/n19-1423

[14]

Graph convolutional networks for text classification: https://wvvw.aaai.org/ojs/index.php/AAAI/article/view/4725

[15]

Spanbert: Improving pre-training by representing and predicting spans: https://arxiv.org/abs/1907.10529

[16]

ALBERT: A lite BERT for self-supervised learning of language representations: https://openreview.net/forum?id=H1eA7AEtvS

0 人点赞