NLP数据增广不故障!清华大学提出FlipDA,轻松解决小样本任务|ACL 2022

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: NLP数据增广不故障!清华大学提出FlipDA,轻松解决小样本任务|ACL 2022

image.png


【新智元导读】数据增广是通过自动生成新的训练数据来提升模型性能的方法,而现有方法多基于简单问题设置。然而,在极限问题场景下,这些方法会全部失效。


针对数据增广方法在困难任务(小样本自然语言理解任务)以及更强的基线模型(超过1亿参数量的大规模预训练模型)条件下的「故障模式(Failure Modes)」问题。


清华大学的团队提出了一个全新的方法——「FlipDA: Effective and Robust Data Augmentation for Few-Shot Learning」,不仅实现了小样本学习性能和鲁棒性的提升,同时还能有效避免「故障模式」的发生。


目前,该工作已被ACL2022主会接收。


论文地址:https://arxiv.org/abs/2108.06332

项目地址:https://github.com/zhouj8553/FlipDA


小样本学习数据增广


数据增广需求:有效性和鲁棒性


小样本学习设置下,数据增广主要有两方面关键需求:有效性和鲁棒性。


有效性强调数据增广方法应该至少在某些任务上有大幅提升;鲁棒性则要求数据增广方法不会在任何情况下陷入「故障模式 (Failure Modes)」,即因为某些微小条件变化或者扰动造成的性能大幅度下降。


有效性:手动数据增广可以大幅提升模型性能


我们首先通过手动数据增广,分别构造出了,改变数据标签和保持数据标签两种不同的增广样本。数据增广后的小样本学习性能结果如表格所示。


结果表明:改变数据标签的增广样本可以在某些任务上带来近10个点的提升,而保持数据标签的增广样本只能带来少量提升。


这个手动增广结果给我们带来启发,构造改变标签的增广数据对于提升性能是至关重要的。



鲁棒性: 什么导致了故障模式?


通过观察已有增广方法的失败样例我们发现:增删词以及改变关键词会改变数据标签,导致了增广数据和标签对的不一致。


从而让使用EDA方法增广数据后性能发生了显著下降,结果如下表所示。



我们进一步尝试修正上述问题增广数据:

(1)将错误标签的数据样本替换为原始样本;

(2)改变错误的标签。修正增广数据后的结果如下表格所示,结果表明通过删除错误样本和纠正样本标签都可以有效矫正上述故障模式,大幅提升小样本学习性能。



FlipDA: 自动标签反转数据增广


基于上述观察和实验结果,我们提出了FlipDA,一种自动进行标签反转的数据增广方法。该方法整体基于self-training架构,总共包含如下4个步骤:


1. 使用原始数据训练一个分类器。


2. 使用T5模型生成改变样本和保持样本标签的增广样本。


先将样本中的句子进行mask操作,然后使用prompt将句子进行连接。对于不同的标签,我们会填入不同的标签,然后让T5模型自动补全被mask掉的句子,从而生成保持标签和翻转标签的不同样本。下图(a)。


3. 使用分类器为每个类别选择最可能的样本。


先用分类器给生成的候选样本打标,然后对于每个标签选择可能性最大的样本。下图(b)。


4. 使用原始数据样本和新增广数据样本混合重新训练分类器。


FlipDA方法示意图


实验结果


我们在SuperGLUE的8个数据集上进行了实验,其中涵盖了共指消歧、因果推断、文本蕴含、词义消歧、问答等较为困难的自然语言理解任务。


我们分别在两个大规模预训练模型:DeBERTa-v2-xxlarge和ALBERT-xxlarge-v2上进行了实验。


实验结果表明:FlipDA相较于诸多基准方法有显著优势,FlipDA在大多数任务上获得更显著的性能提升(Avg.),同时几乎未发生性能下降(MD, max drop)。



此外,我们基于RTE数据集对不同类型的增广样本进行案例分析。


结果表明:FlipDA在四种不同类型的增广条件下生成的样本自然可读,且信息更加准确。



总结


FlipDA强调并且有效解决了小样本自然语言理解任务上,数据增广的有效性和鲁棒性问题。通过自动化的标签反转数据增广,FlipDA进一步提升小样本泛化性能,进而实现了更大幅度更稳健的性能提升。


此外,从理论上进一步理解为什么,以及如何在现有数据点附近生成标签翻转数据提高泛化能力将是至关重要的;增加增强数据生成的多样性和质量也是一个重要的长期目标。


参考资料:

https://arxiv.org/abs/2108.06332


相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
19天前
|
数据采集 自然语言处理 机器人
如何使用生成器来提高自然语言处理任务的性能?
如何使用生成器来提高自然语言处理任务的性能?
|
26天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
42 2
|
30天前
|
机器学习/深度学习 存储 自然语言处理
从理论到实践:如何使用长短期记忆网络(LSTM)改善自然语言处理任务
【10月更文挑战第7天】随着深度学习技术的发展,循环神经网络(RNNs)及其变体,特别是长短期记忆网络(LSTMs),已经成为处理序列数据的强大工具。在自然语言处理(NLP)领域,LSTM因其能够捕捉文本中的长期依赖关系而变得尤为重要。本文将介绍LSTM的基本原理,并通过具体的代码示例来展示如何在实际的NLP任务中应用LSTM。
61 4
|
1月前
|
自然语言处理
【NLP自然语言处理】文本特征处理与数据增强
【NLP自然语言处理】文本特征处理与数据增强
|
3月前
|
机器学习/深度学习 自然语言处理 数据处理
|
4月前
|
数据采集 自然语言处理 机器人
使用生成器来提高自然语言处理任务的性能
使用生成器来提高自然语言处理任务的性能
|
3月前
|
自然语言处理 计算机视觉 Python
VisProg解析:根据自然语言指令解决复杂视觉任务
VisProg是一个神经符号系统,能够根据自然语言指令生成并执行Python程序来解决复杂的视觉任务,提供可解释的解决方案。
44 0
|
3月前
|
机器学习/深度学习 自然语言处理 并行计算
|
3月前
|
机器学习/深度学习 自然语言处理
自然语言处理 Paddle NLP - 任务式对话系统-理论
自然语言处理 Paddle NLP - 任务式对话系统-理论
62 0

热门文章

最新文章

下一篇
无影云桌面