样本少、分布不均衡,如何让训练的模型性能更优越?文本增强技术算得上一个不错的办法。本文介绍了熵简科技联合创始人李渔的一篇关于自然语言处理领域中文本增强技术的论文,重点探讨了近两年来常用的五类文本增强技术路径以及对应的代表性技术。
文章系统性地回顾了自然语言处理领域中的文本增强技术在近几年的发展情况,重点列举和讨论了 18 年、19 年中人们常用的五类文本增强技术路径以及对应的代表性技术。接下来,文章以金融领域的自然语言处理任务入手,多维度地分析几类通用文本数据增强技术在实际业务问题上的重要价值。文章的结论是,文本增强技术是一类低成本的数据杠杆,可以在不引入新数据下,有效撬动模型性能。
本文摘自熵简科技 NLP 团队的内部技术沙龙,文章系统性地回顾了自然语言处理领域中的文本增强技术在近几年的发展情况,重点列举和讨论了 18 年、19 年中人们常用的五类文本增强技术路径以及对应的代表性技术,希望对于大家的日常研究工作有所启发。在第 4 节中,我们以金融资管领域的实际应用场景入手,多维度地分析了几类通用的文本数据增强技术在实际产品研发中的作用。
在开始介绍具体方法之前,先简单列举一下目前自然语言处理任务中运用文本增强技术的常见场景:
在少样本场景下,能够搜集到的样本数目不满足模型训练的需求,导致模型处于欠拟合的状态。自然而然,在现有数据基础上,运用文本增强技术来扩充样本集,是一件又快又省,性价比很高的事。很多研究也已经表明,这种方法可以明显提高模型的性能 [1-3];
除了一些基准 benchmark,真实场景中大部分文本分类任务中的各类别样本数目都是不均衡的,很多时候样本数最多类别的数目可能比最少的类别高两个数量级。这会带来很多问题,比如模型对于小样本类别往往处于欠拟合状态,在实际预测时,几乎不会对这一类别给予太高的概率。
自然,面对这样的问题,一种常见的处理方式是针对小样本类别,运用数据增强技术进行样本扩充,从而降低样本间的不均衡性,提高模型的泛化能力。这种方法也在实际中被多次证明了其有效性 [2,4];
当然,对于样本不均衡问题,已经有很多解决方法,大家可以参考这篇 google 引用数快 1 万的论文 [5] 及其引文。
至少从 19 年 NLP 方向 google 出品的半监督学习算法 UDA 可以看出 [6],文本数据增强技术可以用在无标签样本上,以构造出半监督训练所需的样本对,以此让模型从无标签的数据中获取到优化所需的梯度。关于半监督学习的具体进展,后面如果有时间,可以单开一篇文章介绍。
数据增强技术在不严谨的情况下可以分为两类,一类是在保持语义不变的情况下,变换文本的表达形式,例如接下来提到的回译、文本复述等;另一类是,按照某种策略对原文进行局部调整,例如后面提到同义词替换,随机删除等等。不论是哪种方法,都可以认为是提高了模型的鲁棒性,使得模型更关注文本的语义信息,并对文本的局部噪声不再敏感。举个例子,「文本数据强增技术帮助可以模型对于噪声局部不再感敏」,如果你依然能够看明白这句话的意思,说明你对于文本局部噪声也是不敏感的。
基于这种考虑,无论是少样本场景还是大语料场景,文本增强技术都有助于提高模型的鲁棒性,提高其泛化能力。关于这一点,深度学习领域著名的花书 [7] 的 7.4 节表达了类似的观点。
从上面的介绍可以看出来,文本数据增强技术在自然语言处理中属于基础性技术,具有广阔的应用场景,因此有必要对其进行系统性的讨论。
得益于近几年文本翻译领域的显著进展、各种先进翻译模型的开源(包括百度、google 等翻译工具的接口开放),基于回译(back translation)方法的文本数据增强成为了质量高又几乎无技术门槛的通用文本增强技术。回译方法的基本流程很简单,利用翻译模型将语种 1 的原始文本翻译为语种 2 的文本表达,基于语种 2 的表达再翻译为语种 3 的文本表达,最后再直接从语种 3 的形式翻译回语种 1 的文本表达,此文本即是原始文本增强后的文本。当然,很多时候只采用一种中间语种也可以实现很好的增强效果。
可以看出来,由于 google 翻译足够优秀,增强前后的文本在语义上基本保持一致。因此,对于回译这一增强技术,翻译模型的好坏决定了数据增强的最终效果。
第一,如果采用翻译模型,可以采用 random sample 或 beam search 等策略实现成倍数的数据扩充。如果采用 google 等翻译工具,通过更换中间语种,也可以实现 N 倍的数据扩充。
第二,目前翻译模型对长文本输入的支持较弱,因此在实际中,一般会将文本按照「。」等标点符号拆分为一条条句子,然后分别进行回译操作,最后再组装为新的文本。
据我们所知,早期人们主要将回译技术用于神经网络翻译模型(NMT)的性能提升 [8,9],通过回译可以将单语语料(monolingual data)构造成双语语料,从而帮助模型提升性能。实验证明,回译可以帮助 NMT 模型带来平均 1.7 BLEU 的性能提升,帮助 facebook 的团队在 WMT14 English-German 测试集上实现了当时的 SOTA 性能,更多的细节大家可以移步文献 [9],里面有详细讨论。
到了 2018 年,CMU 和 google brain 的团队将回译技术独立出来作为一个专门的数据增强技术用来优化问答模型的性能 [10]。他们同时训练了两个 NMT 模型,分别是 English to French 和 French to English,用来实现回译,如下图所示:
时间到了 2019 年下半年,google 团队提出了一种可用于 NLP 任务的半监督学习算法(UDA)[6],前面已经提到过了。这篇文章本身并不复杂,主要是实验证明了 回译 等文本增强技术可以用于半监督学习,而且结果看起来很惊人,他们仅用了 20 条样本作为标签数据,就在 IMDb 数据集上实现了接近 SOTA 的性能。当然,我们觉得这里面至少有一半的原因是算法采用的 BERT 模型原本就已经在大规模预料上学习过。关于 UDA 更具体的分析,感兴趣的同学可以移步文献 [6],这里就不再详细展开。
第一,回译技术的有效性本质上来源于迁移学习。通过文本增强的过程,回译技术将翻译模型学到的关于词义、语法、句法等知识转移到了新生成的样本上,从而为当前的自然语言处理任务引入了新的信息和知识来源;
第二,回译技术产生的新样本如果有益,隐含着这样一个先验,即模型对于具有不同语言表达形式但同样语义的输入文本,应该具有不变性,或者应该具有相近的输出。那么,是否所有的 NLP 任务都具备这样的先验假设呢?
此处所谓的基于随机词替换的数据增强方法是对一类文本数据增强方法的统称,其基本方法类似于图像增强技术中的随机裁剪、图像缩放,通常是随机地选择文本中一定比例的词,并对这些词进行同义词替换、删除等简单操作,不像回译等模型,需要外部预训练好的模型的辅助。
19 年有研究团队提出了一种称为 EDA (Easy data augmentation) 的文本增强方法 [11],该方法可以认为是这一类方法的集大成者。EDA 主要包含四种操作:同义词替换、随机插入、随机交换和随机删除。详细说明如下:
(1) 同义词替换 (SR):从句子中随机选择非停止词。用随机选择的同义词替换这些单词;
(2) 随机插入 (RI):随机的找出句中某个不属于停用词集的词,并求出其随机的同义词,将该同义词插入句子的一个随机位置。重复 n 次;
(3) 随机交换 (Random Swap, RS):随机的选择句中两个单词并交换它们的位置。重复 n 次;
对于这种方法,最大的一个疑问是,经过 EDA 操作之后,文本的类别标签(label)是否还能保持不变,毕竟这是对文本进行随机操作。研究人员对于这个问题专门进行了实验分析。首先,他们仅用原始训练集 (未经过数据增强) 训练了一个分类模型,这里姑且称之为「模型 A」。接下来,利用 EDA 方法对测试集进行了数据拓展。最后,将原有的测试集和拓展出的语料输入到模型 A 中,并对模型在最后线性层的输出进行了比较。他们发现原有测试集和拓展出的语料,在高维空间中,距离很小。二者经过 t-SNE 算法降维之后的结果对比,如下图所示:
研究人员在五项公开的文本分类数据集中进行实验测试,为了更充分地对比,实验中分别采用了卷积神经网络(CNN)和循环神经网络(RNN)作为分类模型,最终在五项任务中的平均表现如下表所示 [2.2.1]:
第一:EDA 技术可以有效提到模型的泛化能力,降低泛化误差,即使在完整数据集下,EDA 技术也可以带来平均 0.8 个百分点的提升;
第二:数据集越小,EDA 技术对模型带来的提升越明显。当样本数量只有 500 时,EDA 技术可以带来平均 三个 百分点的提升。因此,很适合用在少样本的场景。值得注意的是,在 EDA 技术的帮助,数据量规模仅有原数据集的 50% 时,模型性能已经超过了不使用 EDA 时在 100% 数据上的表现。
此外,在 19 年 11 月由 IBM 研究团队发表的一项新的文本增强技术的研究中 [2],也对 EDA 技术进行了对照实验:
关于 EDA 技术,另一个需要重点关注的问题是,在运用 EDA 技术,如何设置替换比例 和 增强的文本倍数,比如 2000 条语句应对多少数据进行随机删除,增加等。原文给出的建议比例如下 [11]:
综上,我们可以知道,采用 EDA 文本增强技术进行模型性能的提升,简单而有效,尤其是在小样本场景下。
在上文的 EDA 技术中,对于要替换的词是随机选择的,因此一种直观感受是,如果一些重要词被替换了,那么增强后文本的质量会大打折扣。这一部分介绍的方法,则是为了尽量避免这一问题,所实现的词替换技术,姑且称之为「基于非核心词替换的数据增强技术」。
我们最早是在 google 提出 UDA 算法的那篇论文中发现的这一技术 [6],是否在更早的文献中出现过,我们没有再深究了,有了解的同学请留言告知。
整个技术的核心点也比较简单,用词典中不重要的词去替换文本中一定比例的不重要词,从而产生新的文本。
我们知道在信息检索中,一般会用 TF-IDF 值来衡量一个词对于一段文本的重要性,下面简单介绍一下 TF-IDF 的定义:
TF(词频)即一个词在文中出现的次数,统计出来就是词频 TF,显而易见,一个词在文章中出现很多次,那么这个词可能有着很大的作用,但如果这个词又经常出现在其他文档中,如「的」、「我」,那么其重要性就要大打折扣,后者就是用 IDF 来表征。
IDF(逆文档频率),一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。
TF-IDF = TF×IDF,通过此公式可以有效衡量一个词对于一段文本的重要性。当我们知道一个词对于一个文本的重要性之后,再采用与 TF-IDF 负相关的概率去采样文中的词,用来决定是否要替换,这样可以有效避免将文本中的一些关键词进行错误替换或删除。
实验中,采用了四种不同的模型进行对照实验,分别是权重随机化的 Transformer 结构,BERT-base,BERT-large 以及在领域内微调过的 BERT-large,表中的数值是在测试集上的误差。从表中可知,在经过 非核心词替换 以及 回译 的文本增强之后,模型在实验各个数据集中基本都取得较大提高。
遗憾地是,论文没有对基于 TF-IDF 替换的文本增强技术的效果进行单独研究,或许团队内部实验过,但没有放在论文中。本文的姊妹篇 文本增强技术在金融领域的应用实践,单独对这一技术的效果进行了对照实验,感兴趣的同学可以参考。
第一,在 UDA 的这篇研究中,研究人员仅仅用到了词替换的操作,并没有将 EDA 中其他三项操作加入进来,如删除、交换位置等等,这可以作为后续的研究方向之一。
第二,相对于 UDA 技术,这一技术额外的操作是引入了 TF-IDF 来衡量一个词对于一个句子的重要性,本质上可以认为是在 EDA 的基础上引入了强的先验知识,再根据确定好的关键词替换同义词,避免无用数据和错误数据的产生。
基于上下文信息的文本增强技术在原理上也很直观:首先需要一个训练好的语言模型(LM),对于需要增强的原始文本,随机去掉文中的一个词或字(这取决于语言模型支持字还是词)。接下来,将文本的剩余部分输入语言模型,选择语言模型所预测的 top k 个词去替换原文中被去掉的词,以形成 k 条新的文本。这里列举两个近两年的代表工作。
另一篇研究报道来自于国内的中科院 [13],是 19 年发表的成果。整体的思路与上面的方案类似,主要的区别是将双向 LM 替换为了 BERT,并同样对 BERT 进行了微调,引入了原始文本的标签信息,以保证新产生的样本具有与原始样本相同的标签属性。实验结果如下:
第一点,基于 BERT 的上下文增强技术可以带来明显的模型性能提升,平均能够提高接近两个百分点,这还是很吸引人的。
第二点,将原始原始文本的标签信息带入 BERT(w/C-BERT)相对于不带入的情况(w/BERT)确实能够带来较为显著的模型增益。
由于 BERT 模型已经开源,大家在平常工作和研究中也用的很多,因此从实用价值来说,这篇文章相对于前一篇文章 [12] 的参考意义更大一些。从上面的实验可以看出,即使不对 BERT 做任何改造,直接套用过来,也可以带来至少 1 个百分点的模型性能提升。
利用语言生成模型进行文本增强是一大类方法,已经报道了多种实现方式 [14-16],19 年之前的研究工作一般是针对特定任务在 RNN 架构基础上衍生出的文本增强技术。直到 19 年前后,GPT 和 GPT-2 模型横空出世,在文本生成任务上的效果极其惊人,以至于 OpenAI 当时不敢放出 GPT-2 完整版的模型参数。
关于 GPT 模型的详细介绍,大家可以参考 OpenAI 的相关文献 [17,18]。至于中文相关的资料,大家可以参考张俊林老师在知乎上的文章:。本文就不再做详细介绍。
GPT 作为一个在海量语料上预训练过的通用语言生成模型,人们自然会想到拿它来实现文本增强相关的工作。
LAMBADA 首先在大量文本上进行了预训练,使模型能够捕获语言的结构,从而能产生连贯的句子。然后在不同任务的少量数据集上对模型进行微调,并使用微调后的模型生成新的句子。最后在相同的小型数据集上训练分类器,并进行过滤,保证现有的小型数据集和新生成数据集有相近的分布。
实验一:将 LAMBADA 技术运用在了三种不同数据集上,并采用三种不同的模型架构(BERT、LSTM、SVM)进行对照实验,结果如下:
其中,Baseline 指的是仅采用原始数据集进行训练时的模型。从表中可以看出,LAMBADA 技术相对于 baseline 在三种数据集下都可以带来性能提升。尤其是对于 ATIS 数据集,相对 baseline 的性能提升超过了 50%,原论文中给出的说法是,ATIS 数据具有明显的分布不均衡性,而 LAMBADA 技术可以有效弥补原数据集的不均衡性。
实验二:将 LAMBADA 技术与当前其他主流的数据增强技术进行了比较(竟然没有比较 回译):
其中,EDA 和 CBERT 在前文中都已经做了详细介绍。从图中可以看出,LAMBADA 技术的优势还是很明显的。如果采用 BERT 作为模型架构,那么相对于其他文本增强算法,至少可以提升 1.2 个百分点;在 ATIS 数据集上,更是比第二名提高了 13 个百分点。同样地,在 SVM 和 LSTM 上,除了个别数据及上的表现略差于 EDA,LAMBADA 技术仍然是一枝独秀。其实很好奇,如果将 回译 技术也纳入比较会是什么样的情况。
总而言之,至少从论文中的实验来看,LAMBADA 技术可以视为当前最优秀的文本增强技术之一。LAMBADA 技术后续还有很多可以挖掘的地方,比如与前面提到的 UDA 框架结合,用实现少样本下的半监督学习。或者像论文原作者提到的那样,未来他们将尝试将此技术用于 zero-shot learning。
在 CV 领域,图像风格迁移在前两年研究较多,相信大家也体验过在手机 app 上,一键将普通照片转换为梵高风格的画。对于人眼来说,变换前后的照片虽然风格变化很大,但是上面的人物或动物实体仍然是可以识别出来的。换言之,风格迁移也可以看作是一次图像数据增强(augmentation)。
沿着这个思路,如果在 NLP 领域也有成熟且通用的语言风格迁移算法,那么自然也可以用来做文本数据增强。其实,回译 就有一点文本风格迁移的意思,但是属于风格不可控的文本转换。在这方面,近两年已经有一些代表工作,但目前还有看到把相关算法用于文本数据增强的研究报道,感兴趣的同学可以详细参考文献 [19,20]。
第一,我们团队为什么会如此关注文本增强技术,它在具体业务场景中真的能发挥作用吗?
第二,文中提到的几类技术虽然在公开测评集上表现很好,那么在实际业务中的表现如何?特别地,目前没有看到有公开的研究报道对于文中部分技术进行单独实验。自然,我们会好奇这些技术在单独运用时,到底效果怎么样。
先回答第一个问题。我们团队之所以如此关注文本增强技术,这与我们日常面临的业务需求紧密相关。我们团队一直致力于将 NLP 和深度学习领域内最新的思想、最成熟的技术真正落地于金融资管领域,让科技赋能产业,因此主要面对的任务特征与金融资管领域的数据特点息息相关。
第一,大量及时有效的信息分布在非结构化的文本数据中,如研报、新闻资讯、twitter 等社交媒体中,需要 NLP 等技术从中高效准确地挖掘出结构化信息。
第二,很多与金融领域内特定任务相关的应用场景常常面临着少样本的困境。这体现在两方面:
一方面,可搜集的数据量少,数据搜集的时间成本很高,尤其在从 0 到 1 的立项初期。曾经在某个项目上,我们用了三周时间才搜集到 1000 多条有效样本。
另一方面,数据的人工标注成本很高。大家都知道,NLP 属于认知层面的技术,数据标注的难度和不确定性本来就比图像识别要高。而对于金融领域的问题,还需要业务人员甚至金融分析师的参与才能实现相对准确的数据标注,满足业务需求。这又进一步增大了数据标注成本。
因此,不论是为了提高模型的准确性和鲁棒性,还是为了在少样本场景下尽可能有效地利用数据,我们都希望能够充分运用文本增强技术这个低成本的数据杠杆,在有限条件下尽可能撬动模型的性能。
关于第二个问题,这也是我们之前深入探索这一技术时的疑问。在本文的接下来部分,我们以金融资管领域的一类典型的文本处理任务为案例,以对照实验的方式详细地讨论和展示,文本增强技术在具体产品开发时的重要作用。
此案例由前面提到的少样本场景下的某个金融舆情项目抽象出来。其任务目标是,针对金融舆情类的短文本进行所属行业分类,项目中以中信一级行业分类作为分类基准,包括餐饮旅游、商贸零售、煤炭、纺织服装、农林牧渔、建筑、石油石化、家电、通信、计算机等 29 个行业类别。
这里展示了几条原始样本,我们可以直观感受一下数据(数据中的数值类指标为虚构数):
原始数据:【xxx 月报】特点:(1)紧跟物业市场动向,观测各地政策变化;(2)补充公告内容,跟踪项目中标和收并购。行业:「物业服务」入产业结构鼓励类目,中消协发布调查报告。行业类别:房地产
原始数据:公司有望成为「慢病管理+血糖监测+药物治疗」三位一体的糖尿病管理大平台企业。维持预测 2001-2002 年 EPS 为 0.2/0.34/0.21 元,同比增长 11/11/11%,现价对应 01~21 年 PE 为 10/10/10 倍,维持「增持」评级。行业类别:医药
原始数据:公司实现飞机起降架次 6 万次,同比增长 4.8%,旅客吞吐量 800 万人次,同比增长 4.5%,货邮吞吐量 32.2 万吨,同比增长 0.8%。行业类别:交通运输
在项目初期,我们共搜集和标注的有效数据约为 1900 条。为了充分测试和准确验证算法的性能,在维持各类别数据相对均衡的情况下,我们将数据集随机分为了训练集和测试集。
其中,训练集共包含 900 条样本,用于模型的训练。测试集包含约 1000 条数据,仅用来测试模型的泛化误差,不参与模型的训练。
在实际产品中,一般会采用多模型集成以及人工规则等多种方法的结合,以尽可能提高模型的泛化能力。在本文中,为了突出实验重点,我们采用 TextCNN 网络作为行业分类器 [21],其网络架构如下图所示:
TextCNN 架构由美国纽约大学的 Kim 教授提出 [21],该架构的两类基本操作分别是卷积运算和池化运算:
卷积运算本质上是局部区域的加权运算,应用在本模型中可以有效提取文本的局部特征及局部语序信息。通过不同长度卷积核的组合,还可以同时提到取文本中不同距离上的特征信息。
池化运算一方面可以实现降维功能,并保证输出向量的长度不受文本长度变化的影响,另一方面池化操作还可以保证平移不变性,从而使得文本的关键特征不受到位置的影响。
得益于这两大优势,同时 CNN 网络天然支持并行运算,具备无可比拟的计算效率优势,因此本模型采用 CNN 网络作为文本信息特征提取层。值得一提的是,基于工程实践经验以及公开研究结果来看 [22, 23],卷积神经网络在自然语言处理任务中具备独特的优势,受到很多大厂的青睐。
词向量层的语料训练样本:由各门户网站的新闻语料、各机构发布的研报、等文本构成的数亿规模的语料;
整体模型的训练样本:包含上述的训练集中的 900 条语料、利用数据增强技术对 900 条原始语料扩充之后获得的语料;
本文接下来部分,分别将 回译、EDA 和 基于 TF-IDF 的词替换 这三种数据增强技术运用在上述案例上,验证三类方法是否有效。
方案一:利用开源的 中-英、英-中 两个翻译模型实现回译变换,在输出选择时,我们同时尝试了随机采样和 beam search 两种方式,以实现多倍数的文本增强;
方案二:利用 google 翻译,选用多个中间语种做过渡,以同样实现多倍数的文本增强。如,中-日-英-中,中-法-德-中 等。
实验中我们发现,虽然方案一所增强文本的语言丰富度更高,但是方案二所增强的文本在语义准确度和连贯性上更好,因此最终采用方案二。
原始文本:公司有望成为「慢病管理+血糖监测+药物治疗」三位一体的糖尿病管理大平台企业。维持预测 2001-2002 年 EPS 为 0.2/0.34/0.21 元,同比增长 11/11/11%,现价对应 01~21 年 PE 为 10/10/10 倍,维持「增持」评级。
增强后文本:该公司有望成为具有「慢病管理+血糖监测+药物治疗」的三位一体糖尿病管理平台公司。维持预测,2001 年至 2002 年每股收益为 0.2 / 0.34 / 0.21 元,比上年增长 11/11/11%。当前价格是对应于 01-21 PE 的 10/10/10 倍,维持「增持」评级。
在实验参数的选择上,我们重点对于数据集规模、数据增强倍数这两个参数进行了详细的对照实验。整体的实验步骤可概括如下:
步骤一:对训练集中的 900 条样本,运用 回译 技术进行文本增强操作,共增强 4 倍(因此利用了 4 种不同的中间语种);
步骤二:从原始训练集的 900 条样本中随机取 20%、40%、60%、80% 和 100 % 比例的数据,然后混合进对应的增强后数据(包括 0 倍,即不做增强),在不同混合倍数下进行模型训练,并记录最优实验结果;
第一,从整体来看,无论是在小规模数据下(20% 比例的数据对应约 180 条训练样本)还是在完整训练集下(约 900 条训练样本),回译技术都可以给模型带来 8~25 个百分点的提升。这个提升有时可以带来质的变化。例如,在比例为 60% 的实验中,无扩充下的模型 F1 值为 0.823,这很难应用在金融领域的产品上。而运用文本增强技术之后,模型可以达到 0.921,这个表现已经接近灰度发布的标准了。
第二,对比不同倍数下的模型表现可以发现,相对于无扩充时 baseline 的表现,1 倍扩充时给模型带来的新增提升是最显著的,之后新增的倍数带来的模型增益逐渐递减,但即使采用 4 倍增强时,模型的性能依然略有提升。考虑到回译的实现方式(参看方案二),这可能得益于不同语种之间对于同一语义表达的多样性。
第三,对比不同数据规模下回译带来的模型提升,我们可以发现,随着数据规模增强,回译给 baseline 带来的提升绝对值在逐渐降低,这也验证了前一篇文章中的结论。即,小样本场景下,文本增强技术给模型带来的提升会更加显著。
第四,从结果来看,在采用完全数据集下,在不引入额外数据的情况下,回译技术帮助模型表现从 0.91 提升到了 0.95,这也充分说明了回译是一种低成本的数据杠杆。
值得一提的是,回译技术确实帮助模型在原有数据集上有效地提升了能力,但 embedding 层发挥的作用也不可能忽略。此模型用到的 embedding 层在海量通用语料和领域内语料上预训练过,其词典收录了 20 万个词。对于金融领域内的重点词,已经有很好的先验表示。
在 EDA 增强方案中,我们尝试了五种操作,分别是同义词替换,随机插入,随机交换,随机删除和句子位置随机替换。
其中,句子位置随机替换在原始的 EDA 技术中并不包含,而是我们在本实验中新加入的一种增强方式。本质上,我们是在表达这样一种先验信念,即对于所处理的金融舆情短文本,其句子出现的先后顺序并不影响其所属的行业。
第一,所操作的词语数,比如每句话同义词替换个数,随机交换个数等按照公式 n=α∗L,L 是句子长度,α是替换删除等的比例,经过试验发现 0.1 到 0.2 之间效果最佳。
第二,同义词替换所用的同义词:采用 word2vec 方法在公开的新闻语料训练的词向量,找出与被替换文本最相似的词语。
第三,五种方法独立使用,也即,对于每一条扩充的样本,只使用了一种增强操作。更花式的组合,大家可以自己尝试。
原始数据:【周报(12.02-12.08)】:拼多多上线火车票业务,海南离岛购物免税新政三周年销售近 200 亿。(行业类别:餐饮旅游)
同义词替换:【周报(12.02 亿 12.08,】:拼多多上线火车票业务)海南离岛购物免税新政三周年销售近 200 亿。
随机插入:【周报(12.02-12.08)】:拼革新多多上线火车票业务,海南离岛购物免税新政三周年销售近 200 亿。
随机交换:【服务 200(12.02 近 12.08)】:拼多多上线火车票业务,海南离岛购物免税新政三周年销售-周报亿。
随机删除:【周报(12.02-12.08)】:拼多多上线火车票,海南离岛购物免税新政三周年销售近 200。
随即交换句子位置:海南离岛购物免税新政三周年销售近 200 亿,【周报(12.02-12.08)】:拼多多上线火车票业务。
直观来看,经过五项操作之后,新扩充出文本与原始样本的行业类别仍然保持一致。
在实验参数的选择上,与回译类似,我们同样对于数据集规模、数据增强倍数这两个参数进行了详细的实验,步骤可概括如下:
步骤一:对训练集中的 900 条样本,运用 五种 EDA 技术进行文本增强操作,每中操作进行 2 倍,3 倍,4 倍扩充,即每条样本对应扩充 10 倍,15 倍,20 倍;
第一,无论是在仅有 180 条样本的场景下,还是在完整数据集下,EDA 的运用可以给模型带来 2~30 个百分点不等的提升,数量越小,相对于 baseline 的提升越明显;
第二,运用 EDA 技术时,较好的增强倍数在 3 倍左右,数据量小时,可适当选择更大的增强倍数;
第三,从表中可以看出,数据集仅为 60% 时,采用 EDA 进行 2 倍扩充时,模型的表现就已经超过了在完全数据集下不用 EDA 技术的模型,这也充分说明了 EDA 的杠杆作用。同时,这一现象,也在 EDA 的原始论文中提到过 [4];
在基于 TF-IDF 增强方案中,主要思想是基于 TF-IDF 值评估原始样本中各个词对于文本的重要性,在此基础上,用词典中的非核心词替换掉文中不重要词,以重新生成一段文本。
在构建候选词的字典时,由于原始预料数量较少,我们搜集整理了 4 万多篇研究报告,尽量保证每个行业的报告数目不少于 1000 篇。同时,考虑到研报第一页的内容在分布上与原始预料的分布最为相似,因此我们以这 4 万多篇研报的第一页来构建字典,并统计相应的词频和 IDF 值,用来统计字典中各词的被替换概率。
原始样本 1:锦江酒店调研纪要,经济型酒店相比中高端酒店各指标下滑多一点,入住率、单价均有下滑,幅度较之前差不多。近期中端酒店同店 revpar 数据是持平,整体受新开店影响略有下降。
增强后样本 (扩充系数 p=0.1):齐格勒酒店调研纪要,经济型酒店相比中探访酒店各细目下滑多一点专攻入住率、单价均有下滑,幅度较之前差不多。近期中端酒店同店 revpar 数据是持平,整体受新开店略有下降。
增强后样本 (扩充系数 p=0.3):201912 锦江酒店每位纪要,经济型酒店相比中高端酒店各指标下滑多一点,入住率陶冶华有下滑,幅度较之前差不多。近期中端酒店同店 revpar 诺思是于长,整体受新町村蓝黛略有下降。
原始样本 2:大秦铁路点评:电煤需求回升或受港口卸车影响,8 月运量同比 2%。新闻/公告。大秦铁路公布 9 月份运营数据,公司核心资产大秦线 月份完成货物运输量。
增强后样本 (扩充系数 p=0.1):大秦铁路点评:电煤需求回升或受港口卸车影响,8 月运量同比 2%。新闻/公告:大秦铁路公布 9 月份运营,公司核心资产大秦线 月份完成货物运输。
增强后样本 (扩充系数 p=0.3):大秦铁路助益:项下不断回升或西递专属卸车影响,8 月运量同比 2%。偿债/公告。大秦铁路形制 10 月份运营数据,滑石封航 cerner 大秦线 月份完成招聘。
在实验参数的选择上,我们重点对于数据集规模、数据增强倍数以及扩充比例这三个参数进行了实验。步骤可概括如下:
步骤一:将数据集按照之前的比例划分为 训练集 和 测试集,并对训练集进行文本增强操作,替换比例分别为 5%,10%,15%,20%,25%,30%;
实验结果如下,遵循简明扼要、突出矛盾的特点,这里只展示了替换比例为 10% 和 30% 的情况:
第一,本方法与 EDA 技术给模型带来的提升类似,即无论是在少样本还是在完整数据集下,本方法都可以给模型带来 3~30 个百分点的提升,样本越少,效果越明显。
第二,对比不同替换比例下的实验结果,p=0.1 的替换比例一般会优于 p=0.3 的情况,尤其在小样本下,这种差别会更加明显。这是由于在 30% 的比例下,文本引入了更多的噪声。但是,二者的差距很多时候都在 1 个百分点以内,这说明在这类任务下,模型对于噪声的容忍度是很高的。这反过来可以启发我们更好地设计和优化模型。
为了更全面地了解三类方法的特点,我们选取了其中最有代表性的部分实验数据进行了对比:
第一,三种方法都可以有效帮助模型提升性能。在全数据集下,只要保证充足的增强倍数,三类方法对于模型的提升基本相当。
第二,整体而言,基于 TF-IDF 的增强方法在效果上稍逊于另外两种方法,随着样本量减少,这一差别越发明显。从正则化或者先验假设来看待这个问题:回译技术在基本保证语义不变的情况下,可以提供丰富多样的文本表达形式;EDA 技术则通过五种不同的操作,给模型施加了五类先验信念,例如,文本中的句子应是可以交换的,部分词是可以被替换、删除或者交换位置的。而基于 TF-IDF 的增强方法仅仅告诉了模型不重要词对于文本的行业类型没有贡献。相对而言,前两类方法给予了模型更多的信息,因而能够给模型更大的提升。
本文首先介绍了金融资管领域文本分析任务的特点,以金融资管领域一类典型的行业分类任务为案例,在少样本场景下,对三种不同的文本增加技术进行了详细的实验分析,证明了 回译、EDA 和 基于 TF-IDF 词替换方法确实可以作为数据杠杆,在实际业务中撬动模型的性能。
另外,据我们所知,这也是第一次有公开文章单独对基于 TF-IDF 的文本增强技术的实验分析。如果有同学在其他地方发现了更早的实验报道,望告知。
第一,EDA 或 基于 TF-IDF 的词替换方法会在原始样本中引入噪声,并导致一部分语义的丢失,因此这类方法是否有效与具体任务息息相关。在本文的案例中,行业分类属于依靠少数一些关键词的出现与否即可实现类别划分的任务,对于局部噪声并不敏感。因而,EDA 等技术才能够有效发挥作用;
第二,我们内部正在实验基于 GPT 的 LAMBADA 方法 [5],并在尝试提出一些新的思想和方法,后面有机会再和大家分享。
本文回顾了文本数据增强技术(Data Augmentation)近几年的发展情况,重点列举和讨论了 18 年、19 年中人们最常用到的五类文本增强技术路径以及对应的代表性技术,分别是 回译 (Back Translation)、随机词替换 (EDA 技术)、非核心词替换 (基于 TF-IDF 的词替换)、基于上下文信息的文本增强(C-BERT)以及 基于生成语言模型的文本增强 (LAMBADA),给出了各方法的详细实现方案以及实验效果。简单总结如下:
第一,从各技术的实验中来看,无论对于少样本场景还是大样本场景,文本数据增强技术都能带来额外的增益,尤其在少样本场景下,文本增强技术往往有奇效,多个实验证明了可以带来 5~20 个百分点的提升;
第二,文中提到的五种技术都可以独立运用,而且实现起来相对简单,属于性价比很高的提高模型性能的通用方法。在实际中,大家可以尝试联合运用这几种方法。
第三,回译、基于上下文信息的文本增强以及基于 GPT 的文本增强,都利用了外部预训练好的模型作为杠杆来撬动下游任务,因此可以认为这是 NLP 普通玩家能够享受当前 NLP 技术快速发展的红利之一;
最后,从机器学习的角度再简单谈谈对于文本增强技术的认识,总结上述几类方法,至少可以从四个角度来看待文本增强技术的有效性:
文本增强技术无疑是一种有效的正则化方法,无论是回译、EDA、非核心词替换还是基于上下文的文本增强,本质上都是设计者表达了一种模型偏好,或者对于模型的分布施加了较强的先验分布假设。其中,回译表达的模型偏好是,模型应该对于不同表达形式但同一语义的文本具有不变性。EDA、关键词替换等表达的模型偏好则是,模型应该对于文本的局部噪声不敏感。因此,即使面临少样本场景,在这种正则化下,模型也能够在假设空间中有效的收敛,实现较好的泛化误差。
任何学习都需要有效的外部信息指导,上面所提的部分文本增强技术的有效性无疑也可以从迁移学习的角度来理解。无论是回译、基于 GPT-2 的文本增强还是未来有希望的文本风格迁移,都可以理解为将外部预训练好的模型从其他地方所学习到的信息或者知识迁移到了当前的任务中,提高了整体数据的信息容量,进而更好地指导当前模型的学习。
EDA、关键词等技术除了可以从语义层面的噪声来看待,同时还可以看作是对于输入数据施加一般化噪声(与具体任务无关的),实现类似于 dropout 层的功能,而这一思路已经被各个研究证明,可以一定程度提高模型的鲁棒性。
同一类标签的文本可以视为文本空间中某一类流形,因此有效的文本增强技术应该保证新生成的文本仍然是该流形上的一点。
李渔,熵简科技联合创始人,博士毕业于清华大学电子工程系,以第一作者身份发表学术论文 10 余篇,申请专利 6 项,致力于将先进的自然语言处理及深度学习技术真正落地于金融资管领域,让科技赋能产业。目前负责熵简科技 NLP 技术中台的建设,包括层次化的分层架构、大数据泛采体系、持续部署的后台支持以及前沿算法的领域内落地等,为熵简科技的各大业务线提供底层技术支持和可落地的解决方案。
原标题:《万字长文综述:给你的数据加上杠杆——文本增强技术的研究进展及应用实践》
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问。麻将胡了最新官方版下载