当前位置: 首页 > article >正文

论文解读:《数据增强:通过强化学习引导的条件生成进行文本数据扩充》

Title:<Data Boost: Text Data Augmentation Through Reinforcement Learning Guided Conditional Generation>

期刊:EMNLP (顶级国际会议

作者 Ruibo Liu; Guangxuan Xu; Chenyan Jia; Weicheng Ma; Lili Wang; et al

出版日期 2020-11-01

网址 https://doi.org/10.18653/v1/2020.emnlp-main.726

摘要

数据扩充在许多NLU任务中被证明是有效的,特别是对于那些遭受数据稀缺的任务。在本文中,我们提出了一个强大且易于部署的文本增强框架Data Boost,它通过强化学习指导的条件生成来增强数据。我们在五种不同的分类器架构下,在三种不同的文本分类任务上评估数据提升。结果表明,数据增强可以提高分类器的性能,尤其是在低资源数据的情况下。例如,当只给定全部数据的10%用于训练时,数据增强将三个任务的F1平均提高了8.7%。我们还比较了数据增强与六种现有的文本增强方法。通过人工评估(N=178),我们确认数据增强增强在可读性和类一致性方面具有与原始数据相当的质量。

1.介绍

数据扩充是分类任务中广泛使用的技术。在计算机视觉(CV)领域,通过翻转、裁剪、倾斜和改变原始图像的RGB通道来扩充数据(Krizhevsky等人,2012;Chatfield等人,2014年;Szegedy等人,2015);然而,类似的直观和简单的策略在NLP任务中并没有获得同样的成功。现有方法倾向于产生可读性低或语义一致性不令人满意的增强(Yang et al,2020)。

表1给出了一些流行的文本增强方法的输出样本。朴素方法模仿CV中的像素操作,通过添加拼写错误( Xie et al . , 2017)或随机删除和交换令牌( Wei和Zou , 2019)来扩充句子。由于语序被打乱(例如, "宝宝很好! "),这类增强方法的输出结果往往难以辨认;更糟糕的是,关键特征词(例如,可爱这个词,它是情感检测的信号携带词)可能会通过随机删除的方式被误删。

一种更高级的方法是同义词插入或替换(张杰等, 2015 ;王永进、杨志刚, 2015),它使用Word2Vec (米科洛夫等, 2013)将单词替换为其同义词。这种方法尊重原文的句子结构,但没有考虑语境。它有时用同义词来代替在句子的整个语境中显得笨拙的词。例如,用寓言代替可爱,得到"宝贝是寓言! "这句话。最近的工作倾向于基于翻译的( Fadaee et al , 2017 ;西尔弗贝里et al , 2017)增强方法。

特别地,Yu等人( 2018 )提出了一种先将文本翻译成法语再翻译成英语的回译方法,使用带噪声的输出作为增强数据。虽然回译具有直观性和有效性,但其生成偏向于高频词( e.g . , cute , lovely都回译为可爱),不仅会造成重复,而且会导致增广数据的词汇收缩。总之,现有的技术还很不完善,部分原因是文本数据中的句法和语义特征具有很强的相互依赖关系。

增强样本应该表现出目标类的特征。现成的LM(langue model)不能直接用于数据增强;由于它们不是针对特定的语境进行训练的,因此它们的生成是无向的和随机的。条件LM可以根据一定的条件(例如,目标类)生成文本,但它需要从头开始训练一个LM,并且数据覆盖所有的条件。例如,Keskar等人( 2019 )训练了一个16亿参数的LM,该LM条件为各种控制代码。培训成本较高;然而,收集足够的数据用于训练也是繁琐的,尤其是在低资源任务( Waseem , 2016)中。

优点

Data Boost的优势有三点:第一,Data Boost功能强大。与6个相关工作相比,我们在5个不同分类器的3个任务上取得了显著的进步。第二,Data Boost生成句子级增强。与先前的方法进行单词级别或短语级别的替换(小林, 2018 ; Wei and Zou , 2019)不同,我们的增强数据在词汇和句子结构方面具有更多的多样性。人的评价也验证了我们的增强具有较高的可读性和标签一致性。第三,Data Boost易于部署。它不需要外部数据集,也不需要单独训练系统(像机器翻译模型中的回译方法)。取而代之的是现成的GPT2语言模型,在不改变其架构的前提下,对其解码阶段进行修改.

2.数据增强

2.1条件生成器

给定符号x<_{t} = { x_{0},x_{1},...,x_{t-1}}和在时间步长t之前的累积隐状态h^{\Theta }^{}< t^{1},训练一个普通的自回归语言模型( LM )来最大化下一步符号( xt )的概率.通常情况下,模型会选择具有最高概率x_{t}的符号作为t步解码的输出:

2 强化学习优化

Reward

PPO (近端政策优化)

Salience Score:

其中| x∈c |是指类标号为c的样本中词x的个数,| V |是总词汇量,GM是这两个词的几何平均。这两个分数都试图保证一个词被标记为显著的概率P ( c | x )和P ( x | c )都很高。我们计算每个单词的显著性得分,并选择前N个最高的单词2作为类别标签c (记为wc)的显著性词典。与其他方法如训练鉴别器(达特赫里等, 2020)或导出控制代码( Keskar et al , 2019)相比,我们发现基于频率的方法相对简单但有效,特别是在数据饥饿的情况下,由于训练数据很少,鉴别器的性能可能受到限制。

Salience Gain:

对于以目标类c为条件的第t步令牌xtc,我们将显著性增益计算为与显著词库wc中每个词的余弦相似度的对数求和:

优化:策略梯度进行优化

式中:η为学习率,θ c为条件隐状态的参数。总的来说,我们遵循经典的SGD更新规则,但做了两个主要的改变:( 1 )在令牌解码( Keskar et al , 2019)的过程中,我们使用温度参数T来控制随机采样。T→0近似一种贪婪解码策略,放大了vocab分布中的峰值,而T→∞使得分布更加均匀。( 2 )我们对k步奖励的归一化梯度进行求和。k可以作为条件生成的控制强度。结合以上所有定义,在算法1中总结了Data Boost的策略梯度。

3.数据集

Offense Detection3 ICWSM 20’(攻击性检测3 ICWSM 20 ' )Data Challenge数据集( N = 99 , 603),用于对推文进行攻击性语言检测。该数据集包含四个类别:{正常,垃圾邮件,虐待和仇恨},比例分别为{ 53.9 %,27.1 %,14.1 %,4.9 % }。

Sentiment Analysis4用于推文情感分析的Sentiment Analysis4 Sem Eval 2017 Task 4A数据集( N = 20,631)。数据集包含三个类别:{正性,中性,负性},比例为{ 34.7 %,49.8 %,15.5 % }。反讽分类5

Irony Classification5SemEval 2018 Task 3A数据集( N = 3 , 817)用于推文中的反讽检测。它有二元类:{反讽,非反讽},比例为{ 50.2 %,49.8 % }。

对数据集任务进行分析

冒犯检测和反讽分类是流行的低资源NLU任务。情感分析,虽然根据一些文献( Baziotis et al , 2017 ;克里奇, 2017)看起来很好的解决了,但当给定的训练数据( Elming et al . , 2014 ;塞韦林和莫斯基蒂, 2015)极其有限时,被报道具有严重的过拟合问题。我们选择具有挑战性的数据集,这些数据集的总数据量( N≈80k , 17k , 3k)和类数(类# = 4、3、2)各不相同,以对我们的框架进行现实的评估。

对于所有数据集,我们删除了样本中所有的标点符号、停用词、主题标籤和url链接。将长度大于30个令牌的样本过滤掉(平均约2 %的数据),同样将30作为Data Boost生成的最大序列长度。我们进一步将数据按比例{ 80 %,20 % }拆分为训练集和测试集,并保持原有的类别分布。我们确保所有实验中的分布都是相同的。

4.实验过程

准备了几组数据饥饿测试,每组使用总数据的限制分数作为训练数据。我们保持测试数据的( 20 %)不变,将训练数据的大小从80 % (作为满载案例)逐渐减小到1 % (作为资源极低的情况)。我们对下列训练集分数( % )进行正常训练和增强训练:{ 1 %,5 %,20 %,40 %,60 %,80 % },用于犯罪检测和情感分析。由于用于反讽分类的数据集是小型的( N = 3 , 810),我们使用以下分数:{ 10 %,20 %,30 %,40 %,60 %,80 % }。

图3:矢量化的原始语句和Data Boost增强语句在攻击性检测任务中的t - SNE可视化。增补句(三角形)大多与原句(圆形)重叠,说明增补句保持了原句的类分布。

增强后的数据是否与原数据相似?

文本数据增强中一个普遍关心的问题是增强后的句子是否保留了原始数据的质量。对于分代方法尤其如此,因为我们创建了新的句子,而不是简单地替换令牌来产生增广数据。我们将通过两种方法来说明我们数据生成的质量:( 1 )可视化原始和增强数据的类别分布;( 2 )通过使用4.1节中描述的提升比实验来观察数据增强是否会导致性能恶化和困惑度增加。文本数据增强中一个普遍关心的问题是增强后的句子是否保留了原始数据的质量。对于分代方法尤其如此,因为我们创建了新的句子,而不是简单地替换令牌来产生增广数据。我们将通过两种方法来说明我们数据生成的质量:( 1 )可视化原始和增强数据的类别分布;( 2 )通过使用4.1节中描述的提升比实验来观察数据增强是否会导致性能恶化和困惑度增加。为了可视化,我们在犯罪检测任务(因为它的类数最多)中随机抽取400个(每班100人)的原始句子和生成句子,并使用SentenceBERT (赖默斯和Gurevy )进行向量化

在表3中,我们展示了不同增广比下的F1恶化和困惑度增加(困惑度越高,对LM的拟合度越差)。即使使用25 %的原始数据与75 %的生成样本进行融合,F1得分与使用100 %的原始数据相比,( 0.06 ,绝对)也仅略有下降。我们发现,即使在较高的提升比下,困惑度也没有显著增加。

4.方法分析

我们已经证明Data Boost在与BERT分类器结合使用时是有效的,但性能可以与其他分类器复制?换句话说,Data Boost是一种分类器不可知的增强方法?为了回答这个问题,我们在其他四个主流分类器上进行了实验,包括普通CNN分类器( Kim , 2014),带有注意力机制的Bi - LSTM ( Zhou et al . , 2016),基于自注意力机制的Transformer网络( Vaswani et al , 2017),以及另一个基于LM的分类器XLNet ( Yang et al . , 2019)作为比较。我们在三种不同的训练数据设置上训练所有分类器:{ 20 %,40 %,80 % }的总数据作为训练数据,前两个数据集使用Data Boost增广的方法将规模扩大一倍。如表2所示,总体上表现为Data Boost

4.1与相关工作进行对比

表4对比了Data Boost与6种先验文本增强方法在所有3个任务和使用BERT分类器上的性能。朴素方法(库仑, 2018 ; Xie et al . , 2017)和基于翻译的方法( Fadaee et al . , 2017 ; Sennrich et al , 2016)将人工错别字或翻译错误产生的数据噪声作为增强处理。Wei和Zou ( 2019 )提出了结合令牌级增强(随机删除、互换等。)的EDA;他们在几个基准数据集上报告了(平均为0.8 %)的适度改进。Zhang et al . ( 2015 )进行了字符级增强。这些方法通常被低可读性和有缺陷的句法结构所折中。其他方法利用外部资源来提高增强质量。例如,Wang和Yang ( 2015 )

4.2 与gpt2的生成样本对比

作者进行了配对样本t检验,以检查参与者对分配标签的同意程度。为了进行消融研究,作者使用了使用普通GPT-2和Data Boost生成的样本。与普通GPT-2相比,Data Boost样本在九个类别中的八个中获得了更高的标签同意分数。其中五个具有统计学显著性(p < .05)。除了在Offense Detection中的垃圾邮件和正常类别(p = .02和p = .03)之外,原始数据和增强数据之间没有统计学上的显著差异。这个结果进一步证实了Data Boost样本与原始样本非常相似,而且Data Boost生成比普通GPT-2更高质量的样本。

5.讨论

在这一部分我们讨论了Data Boost的局限性。使用Data Boost所获得的性能增益在某些任务上可能是微不足道的,特别是那些无法通过词汇特征很好地建模的任务。例如,我们使用Data Boost对LCC数据集(莫勒等, 2016)进行隐喻检测,使用GHOSH数据集( Ghosh和Veale , 2017)进行讽刺分类,使用GYAFC正式风格迁移数据集( Rao和Tetreault , 2018)进行正式性检测。我们看到了任务的边际改善,三个任务的F1分数的绝对增加分别为1.3 %,0.9 %和0.7 %,分别为(在极端数据稀缺的情况下,我们预期Data Boost的帮助最大;也就是说,当原始数据的1 %增加到80 %时)。我们发现是

6.结论

我们提出了一种强大且易于部署的方法,通过条件生成来增加文本数据。通过使用现成的语言模型( GPT-2 ),在强化学习的帮助下,我们成功地引导生成朝向指定的方向(即,目标类)。我们发现Data Boost提升了分类任务的性能,是分类器不可知的,并且在三种不同的分类任务中都超过了几种先验增强方法。在未来,我们计划通过在奖励函数中添加句法和位置特征来实现对增强的更精细的指导,以实现对更多类型文本数据的增强。该代码将根据要求提供。


http://www.kler.cn/a/158522.html

相关文章:

  • Kotlin的data class
  • freertos任务调度学习
  • 进程-系统性能和计划任务常用命令-下篇
  • 每日一练 | 包过滤防火墙的工作原理
  • 黑马智数Day10
  • Area-Composition模型部署指南
  • esp32使用命令查看芯片flash大小以及PSRAM的大小
  • dcat admin日志扩展 dcat-log-viewer 遇到的问题记录
  • Navicat在分辨率不同的屏幕窗口显示大小不一致问题解决
  • ActiveMQ Jolokia 代码执行漏洞(CVE-2022-41678)复现
  • Spring——全局异常处理(介绍@RestControllerAdvice和@ExceptionHandler)
  • js实现AES加密解密,简易又全面
  • monaco报错#Unexpected usage at EditorSimpleWorker.loadForeignModule
  • WPF使用Prism框架批量注册Page,Window,UserControl等视图组件
  • 7天快速学习计算机基础必考八股文day02:操作系统
  • SOCKET、TCP、HTTP之间的区别与联系
  • 最新测试开发招聘信息汇总,内含社招和实习生岗位~
  • 如何有效预防内存泄漏?
  • 基于Python+OpenCV的车道线和车辆检测系统
  • 【c】16进制数转化为10进制数(计算方法在最后,大家也可以上网搜索视频,视频更详细,谢谢)
  • Flink入门之核心概念(三)
  • xcode opencv
  • SR锁存器—>带EN的SR锁存器—>D锁存器—>边沿触发式D触发器—>寄存器
  • NET Core迁移前工作
  • 竞赛选题 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]
  • 瑜伽学习零基础入门,各种瑜伽教学方法全集