一文读懂自然言语处理中的文本加强方法
作者头像
  • 品评科技网
  • 2021-06-19 20:54:20 11

文 | Sherry

一直以来,数据都是推动深度神经网络这一人工智能引擎不可或缺的燃料。然而,人工搜集足量且优质的数据从来不是一件容易的事。数据增强就像是一个充满价值的矿藏。在计算机视觉领域,翻转、裁剪和添加噪声等方法已被广泛应用,并取得了显著的效果。但在自然语言处理(NLP)领域,由于语言的多样性,如何获得保持文本原意的新数据变得更为复杂。

大型预训练模型的成功为许多低资源领域和新任务的研究带来了希望,但微调这些模型需要大量数据。因此,如何自动获得高质量的数据成为了近期研究的重点。Google、卡内基梅隆大学(CMU)和蒙特利尔学习算法研究所(Mila)等机构的研究人员合作,对当前NLP领域的数据增强进行了总结,并将其收录在ACL 2021的Findings中。本文将帮助你总结NLP数据增强的难点和理解角度、常见方法、应用场景,以及不同下游任务中的常见方法。

NLP数据增强的难点和理解角度

数据增强的目的和难点

数据增强的目标是为了获得更多的数据,但必须满足两个条件:易于执行且能提高模型性能。如果一个增强方法本身需要大量资源(如训练复杂的生成模型),那么直接使用人工标注的方法可能更为合适,增强的作用就会大打折扣。此外,如果增强的数据质量不高,反而会破坏模型的表现。为了获得高质量的增强数据,通常需要保证增强的数据分布与原始数据集相近,但又不能完全相同,以避免过拟合。

看待数据增强的角度

数据增强通常被认为可以增加模型的正则化,减少过拟合。然而,很少有人解释它为何能有效辅助模型训练。目前的研究表明,从正则化角度看,含噪声的样本有助于正则化;若将数据增强视为核变换,则它可以平均不同特征并正则化方差。此外,还有研究表明,大规模的数据增强可以提高分类器的正边界,但在实际应用中,我们通常不会使用如此大量的数据。

常见方法

尽管NLP数据增强面临诸多挑战,但近年来已经发展出了一些较为成熟的方法:

基于规则的方法

由于自然语言的复杂性,直接生成更多数据较为困难。因此,一种直接的方法是不在语言层面上生成数据,而是直接在特征空间进行增强。例如,在少样本学习中,我们先学习训练范围内的不变量,然后在目标类别上进行特征空间的不变量转换,从而获得更多的特征样本。或者在同一类的空间流形上进行连续的仿射变换,以获得更多的特征样本。

EDA(Easy Data Augmentation)——简单的规则

EDA是一种简单而有效的文本增强方法,它通过随机插入、删除或交换token来在文本数据中加入噪声。其改进版UDA则采用简单的增强方法,如回译或基于TF-IDF的词交换,以最小化增强后未标注样本与原始样本之间的差异,从而辅助半监督学习。

图上的变换

通过句法分析等技术,我们可以将自然语言转化为图或树的结构。在此基础上,可以通过人为设计树上的变换来获得增强数据,例如交换子树的顺序或删除子树等。

样本插值

在图像领域,MixUp是一种广泛应用的方法,即对两个或以上的训练样本进行插值。但在文本领域,这种方法的应用较为困难。不过,仍然有一些常见的方法可以使用,例如通过拼接句子或混合词向量来实现文本增强。

基于模型的方法

这类方法利用已训练好的模型来生成增强数据: - 回译 —— 翻译模型:利用已训练好的翻译模型生成增强数据,通常通过将训练数据翻译成一种或多种其他语言,然后再翻译回来,挑选高质量的数据。 - 填空 —— 语言模型:利用大型预训练网络(如BERT)来交换原样本中的词或片段,例如随机掩蔽句子中的词,然后用BERT模型填充不同的候选词。 - 语义近邻 —— 生成模型:除了回译和填空,还可以直接使用生成模型。例如,通过混合或扰动后的表示向量作为生成模型的条件输入,从而生成新的样本。 - 直接用生成模型:除了给定向量表示来生成,还可以直接在目标数据集上微调生成模型(如GPT),然后生成新的训练数据,并通过自监督方法获得标注。

应用场景

数据增强在许多具有研究价值的应用场景中发挥着重要作用:

低资源语言

低资源语言的数据获取一直是研究的重点。常见的增强方法包括利用高资源语言中可推广的特性,以及利用回译和自监督方法生成增强数据。

消除性别偏见

在指代消解任务中,可以通过交换“he”和“she”来平衡数据集中的性别分布。进一步,可以使用中性词汇替换可能导致性别偏见的词汇。

处理不平衡类别

处理不平衡类别的常见方法包括上采样和下采样。利用数据增强,可以通过插值生成少数类样本,或者使用EDA等方法直接增加少数类别的样本。

下游任务中的变种

接下来,我们将根据不同任务总结数据增强的方法。作者在GitHub中也提供了详细的总结,可以参考:https://github.com/styfeng/DataAug4NLP。

摘要

  • 类似UDA,先从回译获得增强数据,然后应用一致性损失函数提升效果。
  • 混合从Common Crawl获得的合成数据和原始数据集,以提升模型效果。

问答

  • 域无关的问答:回译
  • 开放领域问答:远程监督,利用原始数据集和提取器生成数据
  • 零样本跨语言问答:问题生成
  • 跨语言问答/NLI:将部分文本从源语言转换为其他语言
  • 为了提高问答的准确性和一致性:利用逻辑和语言学知识生成训练数据

序列标注

  • 首先,学习根据特定方案线性化的标签和单词序列的语言模型。其次,从该语言模型中采样序列,并对其进行去线性化处理,以生成新的示例。
  • POS标注:依赖树变换
  • 实体识别(NER):对每个实体进行token或同义词交换

解析

  • 应用数据重组来添加对特定义务有效的先验知识。
  • 表格解析:利用预训练模型生成问题-SQL对进行增强。
  • 语义解析:应用组合性,交换重复的片段。
  • 低资源依存关系解析:交换词语为具有相同POS、形态标签和依存关系标签的其他词。

语法纠正

  • 德语纠正:利用维基百科的编辑历史作为额外数据。
  • 多任务迁移学习:利用其他任务的标注作为额外数据。
  • 合成新的错误来训练纠正模型:token级别的扰动,训练生成错误的模型+过滤。
  • 利用拼写检查器产生的混淆集进行干扰。
  • 从标注数据中学习错误形式,并用来生成特定噪声。
  • 使用生成模型的束搜索添加数据噪声。

翻译

  • SwitchOut:随机交换平行语料中源语言和目标语言的对应词。
  • 软上下文:随机选择一个词,用词表中其他多个相关词的上下文表示来替换它。
  • 数据多样化:将原始数据和多个训练好的模型预测混合。

数据到文本生成

  • 赛事总结:随机修改不影响比赛结果的得分来增强。
  • 从三元组生成描述:利用维基百科和开放关系抽取工具获得更多三元组及描述句子的数据。
  • 意义表示:修改意义表示的序列顺序来增强。

开放式与条件生成

  • GenAug:在低资源领域微调GPT-2,以提高生成文本的连贯性。

挑战与未来

作者针对过去的数据增强方法提出了许多值得关注的方向:

  • 缺乏统一有效的方法:不同于计算机视觉,文本增强没有统一有效的方法,可能需要发展一个一致的任务和数据集来比较不同方法的优劣。
  • 预训练模型对特定领域效果有限:以前有效的增强方法在大型预训练模型上效果不佳,因为它们已经达到了很高的水平。
  • 缺乏实际解释:很少有人解释为什么数据增强有效,大多数工作只是通过实验结果展示其有效性,并给出一些假设。挑战在于如何在不依赖全面实验的情况下评估其优劣。
  • 多模态挑战:对于多模态任务,有人对单个模态进行增强或对不同模态设置不同的增强,但是否有一个统一的增强方法?
  • 基于片段的任务:随机交换token可能会扰乱上下文信息。
  • 特殊领域:增强对OOD数据有效,因为增强的数据可能与原始数据分布非常不同。
  • 低资源语言:与特殊领域的问题类似,对高资源语言有效的增强方法不一定适用于低资源语言。
  • 视觉启发:计算机视觉的增强方法大多受到现实世界不变量的启发,这在NLP中也有类似的对应关系:例如改变灰度对应词形简化;调整颜色对应副词的程度变化;旋转对应依存树变换;角度调整对应同义句变换。

总结

这篇论文对过去的文本增强工作进行了系统的总结,提供了全面的视角。对小范围增强方法的总结可以帮助人们快速掌握常见方法,同时借鉴其他任务的增强方法也可以激发新的思路。此外,文章对文本增强的目的、理解、难点以及未来的发展方向提出了新颖的观点,具有启发意义。

    本文来源:图灵汇
责任编辑: : 品评科技网
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文言语文本加强自然处理方法
    下一篇