给你的数据加上杠杆:文本增强技术的研究进展及应用实践

作者信息:文本出自熵简科技 NLP 算法团队,团队利用迁移学习、少样本学习、无监督学习等深度学习领域最新的思想和技术,为熵简科技各大业务线提供底层 AI 技术支持和可落地的解决方案,包括前沿算法的领域内落地以及持续部署的后台支持等。

导读:本文摘自熵简科技NLP团队的内部技术沙龙,文章系统性地回顾了自然语言处理领域中的文本增强技术在近几年的发展情况,重点列举和讨论了18年、19年中人们常用的五类文本增强技术路径以及对应的代表性技术。接下来,文章以金融领域的自然语言处理任务入手,多维度地分析几类通用文本数据增强技术在实际业务问题上的重要价值。文章的结论是,文本增强技术是一类低成本的数据杠杆,可以在不引入新数据下,有效撬动模型性能。

一、为什么要了解文本增强技术

本文摘自熵简科技NLP团队的内部技术沙龙,文章系统性地回顾了自然语言处理领域中的文本增强技术在近几年的发展情况,重点列举和讨论了18年、19年中人们常用的五类文本增强技术路径以及对应的代表性技术,希望对于大家的日常研究工作有所启发。在第4节中,我们以金融资管领域的实际应用场景入手,多维度地分析了几类通用的文本数据增强技术在实际产品研发中的作用。

在开始介绍具体方法之前,先简单列举一下目前自然语言处理任务中运用文本增强技术的常见场景:

(1) 少样本场景

在少样本场景下,能够搜集到的样本数目不满足模型训练的需求,导致模型处于欠拟合的状态。自然而然,在现有数据基础上,运用文本增强技术来扩充样本集,是一件又快又省,性价比很高的事。很多研究也已经表明,这种方法可以明显提高模型的性能[1-3];

(2) 分类任务中样本分布不均衡的场景

除了一些基准 benchmark,真实场景中大部分文本分类任务中的各类别样本数目都是不均衡的,很多时候样本数最多类别的数目可能比最少的类别高两个数量级。这会带来很多问题,比如模型对于小样本类别往往处于欠拟合状态,在实际预测时,几乎不会对这一类别给予太高的概率。

自然,面对这样的问题,一种常见的处理方式是针对小样本类别,运用数据增强技术进行样本扩充,从而降低样本间的不均衡性,提高模型的泛化能力。这种方法也在实际中被多次证明了其有效性[2,4];

当然,对于样本不均衡问题,已经有很多解决方法,大家可以参考这篇 google 引用数快1万的论文[5]及其引文。

(3) 半监督训练场景

至少从19年 NLP方向 google出品的半监督学习算法 UDA 可以看出[6],文本数据增强技术可以用在无标签样本上,以构造出半监督训练所需的样本对,以此让模型从无标签的数据中获取到优化所需的梯度。关于半监督学习的具体进展,后面如果有时间,可以单开一篇文章介绍。

(4) 提高模型的鲁棒性
数据增强技术在不严谨的情况下可以分为两类,一类是在保持语义不变的情况下,变换文本的表达形式,例如接下来提到的回译、文本复述等;另一类是,按照某种策略对原文进行局部调整,例如后面提到同义词替换,随机删除等等。不论是哪种方法,都可以认为是提高了模型的鲁棒性,使得模型更关注文本的语义信息,并对文本的局部噪声不再敏感。举个例子,“文本数据强增技术帮助可以模型对于噪声局部不再感敏”,如果你依然能够看明白这句话的意思,说明你对于文本局部噪声也是不敏感的。

基于这种考虑,无论是少样本场景还是大语料场景,文本增强技术都有助于提高模型的鲁棒性,提高其泛化能力。关于这一点,深度学习领域著名的花书[7] 的 7.4 节表达了类似的观点。

从上面的介绍可以看出来,文本数据增强技术在自然语言处理中属于基础性技术,具有广阔的应用场景,因此有必要对其进行系统性的讨论。

二、典型技术方案

2.1. 回译(Back translation)

得益于近几年文本翻译领域的显著进展、各种先进翻译模型的开源(包括百度、google 等翻译工具的接口开放),基于回译(back translation)方法的文本数据增强成为了质量高又几乎无技术门槛的通用文本增强技术。回译方法的基本流程很简单,利用翻译模型将语种1的原始文本翻译为语种2的文本表达,基于语种2的表达再翻译为语种3的文本表达,最后再直接从语种3的形式翻译回语种1的文本表达,此文本即是原始文本增强后的文本。当然,很多时候只采用一种中间语种也可以实现很好的增强效果。

我们利用 google 翻译举个例子:

原始文本为:文本数据增强技术在自然语言处理中属于基础性技术;
翻译为日语:テキストデータ拡張技術は、自然言語処理の基本的な技術です;
日语再翻译为英语:Text data extension technology is a basic technology of natural language processing;
英语再翻译回中文:文本数据扩展技术是自然语言处理的基本技术;
可以看出来,由于 google 翻译足够优秀,增强前后的文本在语义上基本保持一致。因此,对于回译这一增强技术,翻译模型的好坏决定了数据增强的最终效果。其中还有一些细节值得说一下:

第一,如果采用翻译模型,可以采用 random sample 或 beam search 等策略实现成倍数的数据扩充。如果采用google等翻译工具,通过更换中间语种,也可以实现N倍的数据扩充。

第二,目前翻译模型对长文本输入的支持较弱,因此在实际中,一般会将文本按照 “。”等标点符号拆分为一条条句子,然后分别进行回译操作,最后再组装为新的文本。

说了这么多,我们看一下回译技术在近几年研究报道中的实际应用情况。

据我们所知,早期人们主要将回译技术用于神经网络翻译模型(NMT)的性能提升[8,9],通过回译可以将单语语料(monolingual data)构造成双语语料,从而帮助模型提升性能。实验证明,回译可以帮助 NMT 模型带来平均 1.7 BLEU 的性能提升,帮助 facebook 的团队在WMT’14 English-German 测试集上实现了当时的 SOTA 性能,更多的细节大家可以移步文献[9],里面有详细讨论。

到了 2018年,CMU 和 google brain 的团队将回译技术独立出来作为一个专门的数据增强技术用来优化问答模型的性能[10]。他们同时训练了两个NMT模型,分别是 English to French 和 French to English,用来实现回译,如下图所示:
在这里插入图片描述
最终的实验证明,回译技术帮助他们的模型带了至少一个百分点的性能提升,如下图红框所示。我们知道,对于问答系统而言,能够有一个百分点的提升,也是很不错的工作。
在这里插入图片描述
同时,他们详细研究了不同增强倍数以及不同采样比例下,回译对于模型提升的大小,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201209155249513.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoYW5namlhbmtlamk=,size_16,color_FFFFFF,t_70在这里插入图片描述
对比图中的两个红框部分,研究人员发现,在最佳情况下,回译带来的性能提升与在模型中加入 self-attention 组件带来的提升几乎相当。这似乎表明,挖掘数据多维度的信息和优化模型架构具有同等的重要性。

时间到了2019年下半年,google 团队提出了一种可用于 NLP 任务的半监督学习算法(UDA)[6],前面已经提到过了。这篇文章本身并不复杂,主要是实验证明了 回译 等文本增强技术可以用于半监督学习,而且结果看起来很惊人,他们仅用了 20 条样本作为标签数据,就在 IMDb 数据集上实现了接近 SOTA 的性能。当然,我们觉得这里面至少有一半的原因是算法采用的 BERT 模型原本就已经在大规模预料上学习过。关于 UDA 更具体的分析,感兴趣的同学可以移步文献[6],这里就不再详细展开。

最后,再从机器学习本身来讨论一下回译技术

第一,回译技术的有效性本质上来源于迁移学习。通过文本增强的过程,回译技术将翻译模型学到的关于词义、语法、句法等知识转移到了新生成的样本上,从而为当前的自然语言处理任务引入了新的信息和知识来源;

第二,回译技术产生的新样本如果有益,隐含着这样一个先验,即模型对于具有不同语言表达形式但同样语义的输入文本,应该具有不变性,或者应该具有相近的输出。那么,是否所有的NLP任务都具备这样的先验假设呢?

2.2. 随机词替换

此处所谓的基于随机词替换的数据增强方法是对一类文本数据增强方法的统称,其基本方法类似于图像增强技术中的随机裁剪、图像缩放,通常是随机地选择文本中一定比例的词,并对这些词进行同义词替换、删除等简单操作,不像回译等模型,需要外部预训练好的模型的辅助。

19年有研究团队提出了一种称为 EDA (Easy data augmentation) 的文本增强方法[11],该方法可以认为是这一类方法的集大成者。EDA 主要包含四种操作:同义词替换、随机插入、随机交换和随机删除。详细说明如下:

(1)同义词替换(SR):从句子中随机选择非停止词。用随机选择的同义词替换这些单词;

(2)随机插入(RI):随机的找出句中某个不属于停用词集的词,并求出其随机的同义词,将该同义词插入句子的一个随机位置。重复n次;

(3)随机交换(Random Swap, RS):随机的选择句中两个单词并交换它们的位置。重复n次;

(4)随机删除(RD):以概率p随机删除句子中每个单词。

下面列举了以上四类操作的例子

原始文本:今天天气很好。
同义词替换(SR):今天天气不错。(好 替换为 不错)
随机插入(RI):今天不错天气很好。(插入 不错)
随机交换(RS):今天很好天气。(很好 和 天气交换位置)
随机删除(RD):今天天气好。(删除 很)
对于这种方法,最大的一个疑问是,经过EDA操作之后,文本的类别标签(label)是否还能保持不变&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值