Text Data Augmentation for Deep Learning 深度学习的文本数据增强综述

  • 论文地址
    NLP的数据增强可以防止过拟合,为深度学习系统注入先验知识提供了最简单的方法,并为这些模型的泛化能力提供了一个视角。

背景

  1. 对图像进行语义保留增强很容易,但在文本领域要做到这一点要困难得多。
  2. 对迁移学习、自监督学习等很大的意义

文本数据增强的主题

  • 加强决策边界:数据增强通过扰动数据(删除或添加单词、同义词交换等),以便模型更熟悉这些示例周围的局部空间。扩展数据集中每个示例的半径总体上将有助于模型更好地了解决策边界并产生更平滑的插值路径。

  • 暴力训练:训练数据暴力破解数据空间。这需要对一组详尽的自然语言序列进行训练,以便测试集可以从中采样的所有潜在分布都包含在训练数据中。

  • 因果关系和反事实示例:通过学习因果表征,将因果学习与机器学习进行结合,使得机器学习的结果能够够好的迁移到其他不同的数据分布的情景下。通过干预、反事实学习等来建立语义概念和标签之间的因果联系。(详情可以看这里)

  • 以及意义与形式之间的区别: 模型学习可能对语义有了理解,但是对其深层的意义还缺乏了解。例如,已经学会了交流的方式,但还没有学会语言所描述的世界的潜在含义。

文本数据增强的方法

symbolic augmentation

不使用辅助神经网络或者其他的统计模型来生成数据,人类设计性强,可解释性强。

  • Rule‑based augmentation:间的的数据增强方法: 随机交换、随机删除、随机插入和随机同义词替换,使用简单。textfool首先通过查看删除每个单词时输出的变化来计算单词的重要性分数。然后选择对哪个单词进行处理来增强。敏等人提出了基于句法启发式的增强规则,包括倒置,在句子中交换主语和宾语,主动变被动等。

  • Graph‑structured augmentation:包括知识图中的关系和实体编码,语法树中的语法结构,或基础语言数据(如引文网络)的元数据。这些增强增加了显式的结构信息,这是与深度学习体系结构相对较新的集成。添加结构可以帮助找到保留标签的转换、表示分析以及向数据集或应用程序添加先验知识。下面将通过分解结构化和非结构化表示之间的差异来开始我们对图-结构化扩充的分析。

    • 深度学习的工作原理是将高维(有时是稀疏的)数据转换为低维的连续向量嵌入空间。学习到的向量空间具有相应的度量,例如 L2 或余弦相似度距离函数。 这是与拓扑空间的核心区别,其中点之间的距离没有定义。 拓扑空间是比欧几里得空间或度量空间具有更少约束的更一般的数学空间。 拓扑空间对难以集成到现代深度学习架构中的信息进行编码。 我们可以通过数据增强接口利用结构化数据的强大功能,而不是设计全新的架构。
    • 语言处理中最常用的结构之一是知识图谱[39]。 知识图谱由(实体、关系、实体)元组关系组成。 增强方案的动机是沿图的路径提供有关实体和关系的信息,这些信息很难在没有结构的情况下表示。 在 Rule-based Augmentation 中提出了同义词交换的思想。实现同义词交换的一种策略是使用具有“等价”关系的知识图来查找同义词。这比使用同义词条目手动定义字典更实用,特别是随着由未标记数据的自动化知识图构建的快速加速,其应用更广。知识图谱通常也包含更细粒度的关系。
    • 图由节点和边组成。 在 WordNet 中,每个节点代表一个词,例如“老虎”。 WordNet 的天才之处在于简化了连接哪些边,在 WordNet 中,节点以相同的边类型连接,即“同义词集”关系。 同义词被松散地定义为属于相似语义类别的词。 “tiger”一词与“lion”或“jaguar”等节点有同义词关系。 “老虎”这个词也可能与描述更多特定类型老虎的节点有更细粒度的同义词关系。 WordNet 是基于同义词替换的图结构增强的示例。 WordNet 描述了一个图,其中每个节点通过作为“同义词集”与另一个图相关。
    • 向文本数据添加结构的另一个深入研究领域称为句法解析。 句法解析描述了需要对文本进行结构分析的不同任务,例如构建句法或依赖树。 最近,Glavas 和 Vulic证明,监督句法解析在现代预训练中几乎没有好处,然后使用大型语言模型对管道进行微调。
    • 显式图形结构数据的数据增强仍处于早期阶段。 赵等人。 提出了一种边缘增强技术,“将 GNN(图神经网络) 暴露于可能(但不存在)的边缘,并限制暴露于不太可能(但存在)的边缘”[46]。
  • MixUp augmentation:通过将现有示例网格在一起来形成新示例,有时也会混合标签。 例如,MixUp 可能会取一个文本序列的一半并将其与数据集中另一个序列的一半连接起来以形成一个新示例。 MixUp 可能是可用于连接远距离点并说明插值路径的最佳接口之一。 MixUp 的大多数实现在样本被插值的层上有所不同。

    • 郭等人在单词和句子级别测试 MixUp。 这种差异如下图 所示。他们的 wordMixup 技术通过在输入层平均嵌入向量来组合现有样本。 sentMixup 方法通过平均句子嵌入来组合现有样本,因为每个原始序列都通过连体编码器。与没有正则化或使用dropout 相比该方法减少过度拟合方面有显着改进。

  • Feature space augmentation: 特征空间增强描述了 在 深度神经网络的 中间表示空间 中进行增强数据。几乎所有深度神经网络都遵循顺序处理结构,其中输入数据逐渐转换为分布式表示,并最终转换为特定于任务的预测。特征空间增强隔离中间特征并应用噪声来形成新的数据实例。这种噪声可以从标准的均匀或高斯分布中采样,或者可以使用对抗控制器进行设计。
    • 监督对比学习用对比损失(例如 NCE)替换了常用的 logits 和类标签的 KL 散度,具有基于类标签形成的正负数,已被证明可以改善这些边界。
    • 作者认为可微数据增强(Differentiable Data Augmentation ) 技术属于特征空间增强的范畴。 据增强是一个函数 f(x),它产生增强的示例 x'。 与网络中的任何其他层类似,可以将网络的开头视为增强模块并通过它反向传播梯度。还可以分离增强函数并将其添加到输入中,这样转换不会太剧烈,类似于将优化的噪声图添加到输入中。
    • MODALS 提出了一些增强特征空间的策略。如下图所示,这些策略描述了如何沿着类边界移动以形成新的特征空间中的例子。硬示例插值 (a) 通过将其移动到 位于分类决策边界上 的 现有嵌入 的 方向来形成一个新示例。硬样本外推 (b) 描述了将现有样本 沿它们当前与类边界的平均向量 所在的相同角 度移动。高斯噪声 (c) 需要在特征空间中添加高斯噪声。差分变换 (d) 在从同一类中的两个独立点计算的方向距离中移动现有样本。作为数据增强的一般主题之一,MOD​​ALS 旨在加强决策边界。

Neural augmentation

以下增强依赖于辅助神经网络来生成新的训练数据。例如使用在受监督的神经机器翻译数据集上训练的模型从一种语言翻译成另一种语言并返回样本新实例,或者使用在生成语言建模上训练的模型来替换被屏蔽的标记或句子以生成新数据。

  • Back‑translation augmentation: 从一个语言翻译到另一个语言作为数据增强。

  • Style augmentation:一种利用深度网络来增强数据以训练其他深度网络的增强策略。这是一种有趣的策略,可以防止过度拟合高频特征或模糊语言形式,例如专注于意义。在文本数据域中,这可以描述将一位作者的写作风格转移到另一位作者的写作风格,以用于抽象摘要或提取式问答的上下文等应用。数据增强通常用于将模型集中在语义上,而不是特定形式的语言。 这些特定形式可能来自一位作者的写作风格或语言中的一般语调,例如乐观作家与悲观作家。 风格迁移提供了一个有趣的窗口来提取写作风格之间的语义相似性。 这有助于在问答系统或信息检索文档中建模上下文。

  • Generative data augmentation:采用预训练的现成语言模型,然后通过语言建模任务对其进行进一步微调,这是迁移学习的标准操作流程。 然而,微调通常是通过监督学习任务完成的,而不是额外的语言建模。 预训练的语言模型已经学习了许多有趣的语言属性,因为它们是在海量数据集上训练的。尽管这些模型和数据集非常令人印象深刻,但通过在有限数据集上使用额外的语言建模进行域调整,可能会获得额外的好处。

    • 为生成数据增强训练语言模型的最流行的策略之一是条件 BERT (C-BERT)。 C-BERT 通过替换原始实例的屏蔽标记来增强数据。关键的新颖之处在于它将类标签的嵌入作为输入,例如在替换屏蔽标记时保留语义标签。这针对数据增强的标签保留属性。当微调在另一个数据集上预训练的模型或从随机初始化开始时,可以使用 C-BERT 训练策略。

    • 使预训练的生成模型适应下游任务的一种新兴策略是重新利用屏蔽令牌的界面,这被称为prompt。为了生成或标记新数据,可以使用文本模板引导语言模型的输出。一个prompt的实现是上下文学习。其思想是在每个输入前加上一个固定的任务描述和一组任务示例。这并不需要进一步的模型梯度更新,并且该技术可以显著的减少数据的规模。这种技术可能还没有达到极限,特别是随着transformer模型的开发,这种模型可以以超过512令牌的序列作为输入。与检索增强建模类似,这将允许上下文学习模型处理更多的任务演示。然而,由于尺度的限制,继续使用梯度更新的方法在实际中更有用。

    • 提示调优(prompt tuning)描述了首先将提示嵌入到一个连续空间中,然后使用梯度下降优化嵌入,同时保持网络的其余部分冻结。优化prompt嵌入的分析有助于任务复杂性和相似性指标,以及元学习。提示调优具有相同的基本概念,即在下游任务的输入中添加上下文以促进微调,但是这种技术更符合迁移学习的研究,只需进行最少的修改。预训练然后微调范式中的一个新兴主题是 域对齐和任务对齐来提高微调性能。

    • 模式开发训练 (PET) 使用预训练的语言模型来标记特定于任务的未标记数据。这是通过手动定义的模板完成的,这些模板将监督学习任务转换为语言建模任务。然后使用语言器将语言模型的输出映射到监督学习标签。梯度下降优化应用于语言化输出,以使用与训练分类器相同的交叉熵损失函数对其进行微调。

    • ADAPET 在标签任务中使用密集监督,将损失应用于整个词汇分布,无需语言器,并且额外要求模型在给定标签的上下文中预测掩码标记,类似于条件 BERT。在不使用特定于任务的未标记数据的情况下,ADAPET 的性能优于 PET。

    • 模式利用训练、上下文学习和快速调优的一个限制是它们需要为下游任务保留一个大型语言模型。 为了提高效率,大多数应用程序都对压缩这些模型感兴趣。例如,知识蒸馏的使用和通过生成数据来训练更小的模型来进行压缩。 后面这种方法与模式利用训练最相似,只是我们不会使用预训练的语言模型来标记数据,而是使用它来生成整个示例。

    • Yoo 等人从 MixUp 的成功中汲取灵感, 开发了 GPT3Mix 。 GPT3Mix 的输入以定义任务的任务规范开始,例如“文本类型 T = 电影评论,标签类型 L = 情绪”。 与 MixUp 类似,接下来的输入是任务的示例,表示为“文本类型:示例文本 k(标签类型:示例标签 k)”。 输入的最后一部分是生成新示例的模板。 此外,在生成新示例的过程中,通过每个令牌的生成概率对生成的示例进行“软标记”。 GPT3Mix 在将可用数据子集到极端水平(例如 0.1% 和 0.3%)时,在无增强、Easy Data Augmentation 和 BackTranslation 方面实现了巨大的性能改进。

    • Schick 和 Shutze 还探索了从语言模型生成数据的策略,展示了来自指令的数据集 (DINO)。 DINO 使用任务描述和数据集中的一个示例来生成成对分类数据集。有趣的是,他们对比了需要生成标签来解码语言模型生成的任务描述。 例如,任务描述可以以““Write two sentences that”开头,然后以“mean the same thing”或“are on completely different topics”继续。 生成说明另一个标签描述将生成的令牌。 在 STS 文本相似性数据集上进行评估,从 DINO 学习的表示显示出比使用监督学习训练的最先进的句子嵌入技术(例如 Universal Sentence Encoders 和 Siamese BERT 和RoBERTa 模型)更好。

    • 虽然建立在相同的基本概念之上,但离散与连续提示搜索彼此之间存在很大差异。 离散提示搜索具有可解释性的好处。 例如,比较人工注释者提供的不同任务描述和示例,可以深入了解模型学到了什么。 然而,在连续嵌入空间中的快速优化可以完全自动化搜索。 由于优化空间的自由度,连续提示优化可能更容易过度拟合。

    • 另一个与 NLP 中的提示有点相似的主题是通过检索来增强知识增强的文本生成。流行的模型包括检索增强生成 (RAG) 和检索增强语言模型预训练 (REALM)。一旦这些检索到的信息被嵌入到语言模型的连续表示空间中,它就是一个类似于快速调优的优化问题。

    • 另一个有趣的想法是数据隐私和生成数据增强的交叉点。 我们可以将数据存储在模型的参数中而不是集中式数据库中吗? 联邦学习(Federated Learning)的想法是将全局模型权重的副本发送到本地数据库,例如避免集中式数据库。

  • Label augmentation:监督学习,描述了将输入 x 拟合到标签 y。在整个survey中,我们提出了规范化 x 值的策略。最成功的例子是知识蒸馏。知识蒸馏描述了通过使用另一个神经网络预测的 logits 重新标记 xs,将传统的 one-hot 编码的 y 标签转换为软分布。这在压缩方面非常有影响力,例如 DistilBERT 、信息检索 ,并在计算机视觉 中实现了最先进的分类结果。除了知识蒸馏之外,还开发了其他几种策略来增加标签空间。

    • 标签平滑对负类的密度使用启发式调整,并且对训练分类器和生成对抗网络具有很大影响。

    • 另一个令人兴奋的方法是使用元控制器,类似于知识蒸馏,但有很大的不同之处在于教师从学生损失的梯度中学习以更新标签增强。探索这一点的值得注意的例子包括元伪标签和带有评论的教学 。通过生成式教学网络 在数据空间 x 中也探索了这种通过外内循环梯度学习增强数据的雄心勃勃的想法。截至撰写本文时,生成式教学网络仅应用于图像数据。

    • 类似的思想是“元反向翻译”,在这项工作中,作者“提出了一个元学习框架,其中反向翻译模型学习匹配正向翻译模型在发展数据上的梯度与那些在伪并行数据上的梯度。”

Testing generalization with data augmentation 使用数据增强测试泛化

机器学习的不足是实现分布外(OOD)泛化。 这不同于分布内泛化的训练和测试集是从相同的数据分布中采样的情况。为了衡量 OOD 泛化,我们需要对分布将如何变化做出假设。 正如 Arjvosky 所写,“如果测试数据是任意的或与训练数据无关,那么泛化显然是徒劳的”。 Chollet 进一步描述了以系统为中心的泛化和开发者感知泛化之间的关系,以及泛化级别,例如缺失、局部、广泛和极端。 我们认为数据增强是量化测试和训练数据分布和泛化水平之间关系的自然接口

  • 测试泛化的一个经典工具是简单地报告训练集和测试集之间的准确性差异。然而,正如Deep Double Descent等论文所示,大规模深度神经网络对过拟合现象的理解通常很差。我们认为在数据空间中研究过拟合和泛化 更有 实际意义。例如,对抗性例子的成功表明,深度神经网络不能推广到添加了对抗性优化噪声映射的分布。Jia和Liang的研究表明,当将对抗优化的句子添加到上下文中时,使用SQuAD训练的模型不能泛化,如下图所示。除了对抗攻击,许多其他数据集显示了深度神经网络无法推广的分布转移的直观例子。

  • 我们提出数据扩充作为泛化的黑盒测试。核对表(CheckList)为自然语言处理中的这类测试提供了一个基本的思路。CheckList是用来测试模型的语言能力,如对否定的鲁棒性,词汇扰动,或时间一致性。我们认为这是在测试集中引入了语言现象的分布转移。Clark等人为transformer构建了一个玩具样例,看看他们能在多大程度上推广事实链。在这个测试中,训练数据要求模型将比 测试集中测试的 更多或更少 的事实连接在一起。再次,分布转移是由一个直观的界面控制的数据增强。最后,WILDS是真实世界发行模式转变的集合。这些现实世界的转变也可以映射到数据增强。

  • Kaushiik等人使用人类标签来构建一套反事实的电影评论和自然语言推理例子。作者构建了一个优雅的注释界面,并要求 Mechanical Turk 工作人员(mazon Mechanical Turk 是一个论坛,请求者可在其上将工作发布为人工智能任务(HIT)。)对示例进行最少的编辑,例如切换标签。例如,将“The world of Atlantis, hidden under The earth’s core, is fantastic”转换为“The world of Atlantis, hidden under The earth’s core is supposed to be fantastic”。对于电影评论,作者们将工人们的修改分为几类,比如所希望的改写事实、提出讽刺、插入修饰语、插入短语、减少价值限定词、不同观点、改变评级等。对于自然语言推理,作者们将工人们的修改分为几个类别,比如修改/删除动作、替换实体、向实体添加细节、插入关系、数字修改、使用/删除否定以及不相关的假设。这些例子的构造是为了测试这些反事实的例子的泛化。

  • 生成数据增强为研究泛化提供了另一个视角。Nakkiran等人在“The Deep Bootstrap Framework”中提出了一种研究泛化的新方法。其思想是将在线测试错误与Bootstrap测试错误进行比较。Online错误描述了在无限数据流上训练的模型的性能,即没有重复的样本。Bootstrap测试错误描述了Deep Learning的常见训练设置,重复同一批数据。作者通过拟合生成模型来模拟在线学习场景,在这种特殊情况下,采用去噪扩散概率模型。生成模型用于对600万个样本进行采样,而用于训练CIFAR-10的标准样本为5万个。Garg等还提出了RATT技术,将随机标记的未标记数据添加到训练批处理中,分析学习曲线和泛化。本survey中描述的增强可能能够模拟这些未标记的数据,并提供类似的见解。

  • 综上所述,什么时候过度拟合会有问题?现代神经网络能够覆盖多少数据分布?深度神经网络具有显著的能力内插在训练数据分布。一个潜在的解决方案可能是利用数据增强来扩展训练分布,这样在测试集中就不会出现合理的分布外偏移。即使所有潜在的分布不能压缩到一个单一的神经网络中,这个接口也可以说明模型在哪里会失败。

Image versus text augmentation 图像与文本增强

我们对用于深度学习的文本数据增强的综述旨在遵循与我们之前在用于深度学习的图像数据增强的工作类似的格式。我们注意到在计算机视觉中使用的简单数据增强和基本的几何和颜色空间转换之间有许多相似之处。最相似的是,两者都很容易实现,并补充了分别处理文本和图像数据的几乎所有问题。我们已经描述了Easy Data Augmentation是如何轻松地与文本分类、两两分类、抽取式问答、抽象摘要和聊天机器人交互的。同样,计算机视觉中的几何和颜色空间变换也被用于图像分类、目标检测、语义分割和图像生成。

  • 正如我们调查开始时所描述的那样,数据增强使模型倾向于某些语义不变性。图像数据增强在很大程度上是成功的,因为很容易认为语义不变性与视觉相关。这包括水平翻转、旋转和增加亮度的语义不变性等。相比之下,定义到文本数据的转换要保证语义不变要困难得多。Easy Data augment中描述的所有增强都有可能扰乱原始数据,从而改变ground truth标签y。

  • 图像数据增强最近的一个趋势是将其整合到生成模型的训练中,即生成式对抗网络(generative adversarial networks, GANs)。GAN框架类似于ELECTRA模型,由一个生成器和一个鉴别器组成。生成器将随机噪声转换为图像,识别器将这些图像分类为来自生成器或提供的训练集。下面,我们将描述为什么这不能像文本的自回归建模那样有效。回到数据增强如何被用于gan,这项研究始于Zhang等人对一致性正则化的研究。一致性正则化要求鉴别器对同一图像的实像和增广视图进行相同的分类。不幸的是,这导致增强数据“泄露”到生成的分发中,这样生成器也会生成增强数据

  • 数据增强的另一个有趣的成功是它在强化学习中的应用。这已经在视觉输入的机器人控制和雅达利基准中得到了大量研究。机器人学习的最大瓶颈之一,以及大多数深度强化学习问题,是缺乏数据。重新启动一个机器人洗衣文件夹,从衬衫展开的开始,收集数百万条轨迹,这是一个挑战。为了解决这个问题,研究人员已经转向从回放缓冲区中的集合形成增强轨迹。在许多已经提出的使用Text数据进行强化学习的应用中,患者护理控制尤其令人兴奋。Ji等人利用MIMIC-III数据集探讨了基于模型的强化学习在脓毒症患者护理中的应用。作者使用临床记录来健全检查基于模型的生理病人状态标记的推出。一个很有前途的研究领域将是将文本数据增强应用于收集的临床记录轨迹,以改善病人护理和轨迹模拟

Practical considerations for implementation 实施的实际考虑

Consistency regularization 一致性正则化

  • 一致性正则化是对通过数据增强引入的先验的有力补充。 一致性损失需要一个模型来最小化实例表示中的距离以及从中派生的增强示例。 根据加强决策边界的主题,一致性正则化加强了原始样本和增强样本之间的联系。 这通常在多任务学习框架中实现,其中模型同时优化下游任务和次要一致性项。

  • 一致性正则化已经成功地应用于编程语言之间的转换,通过强制在反向转换上保持一致性。Alberti等人使用一种略有不同的一致性正则化形式来生成合成的问题-答案对。该框架不是最小化原始示例和扩展示例之间的表示距离,而是要求模型在从上下文、问题输入进行预测时输出的答案与单独的模型从上下文、答案输入生成问题时输出的答案完全相同

  • 一致性正则化是一种常见的自我监督表示学习技术,因为未标记的数据在增强前后仍然应该具有表示的这种特性。Xie等的部署一致性正则化如下图所示。这种技术超过了以前的技术水平,只使用较少的数据进行监督学习训练。即使在只有20个标记例子的极端情况下,这些改进仍在继续。以改进后的BERT模型为例,该模型在IMDB分类中错误率为6.5%,在UDA分类中错误率为4.2%。在一致性正则化实现中,多任务损失公式也是相当常见的。

Contrastive learning 对比学习

  • 对比学习不同于一致性正则化,它利用负样本对损失函数进行归一化。这是一个关键的区别,因为负样本可以提供一个重要的学习信号。我们相信文本数据增强的发展可以从计算机视觉的成功案例中受益。使用数据增强增强对比自我监督学习已经成为计算机视觉中最有趣的故事之一。这涉及到SimCLR、MoCo、SwAV和BYOL等框架。这种训练策略适合于自然语言处理中的信息检索。

  • Krishna等提出对比性REALM (c-REALM)。对比损失用于对齐问题和监督答案的嵌入,并将问题与小批处理中的其他监督答案进行对比。然而,这种对比学习技术更类似于监督对比学习,而不是像SimCLR这样的框架。在SimCLR中,使用数据增强来形成正对。这一策略在信息检索中还没有得到大量的研究,可能是由于缺乏增强。希望我们提供的列表能够帮助那些对这个想法感兴趣的人。

  • Gunel等人通过在一个热编码标签向量上使用监督对比损耗和交叉熵损耗进行训练,证明了GLUE基准任务的显著改进。当学习20个有标记的例子时,这种增益尤其明显,而在学习1000个有标记的例子时,他们报告的差异并不大。除了量化指标,作者强调,类的嵌入在t-SNE可视化的镜头下更加分散。

  • 对比学习,类似于一致性正则化,描述了如何使实例的表示和转换派生的对相似。然而,对比学习增加了一种负的规范化,这又将这些表示与样本小批处理中的其他实例分开。对比学习在表示计算机视觉方面取得了很大的进步,如SimCLR和MoCo。使用数据增强进行对比学习是一个非常有前途的研究领域,最近对信息检索语言模型REALM进行了扩展。我们建议感兴趣的读者参考Rethmeier和Augenstein的一份报告[112],以了解更多关于将对比学习应用于NLP的早期成果的细节。

  • 一致性正则化和对比学习是通过 检查 模型性能 发现的 常见问题 的候选解决 方案。例如,Thorne等发现,事实验证模型在忽略证据的情况下,如果主张被证据支持或反驳,则在分类时准确率更高。对比学习要求模型通过对比支持证据和反驳证据来正确地关联支持证据一致性正则化更适合描述当证据被轻微干扰时的相似预测,例如插入一个随机单词或用具有相同语义的释义替换它。

Negative data augmentation 负数据增强

  • 负数据增强是与对比学习中使用的负样本类似的概念。 然而,一个关键的区别是对比学习通常使用其他数据点作为负数,而负数据增强需要应用积极的增强。 这些增强不仅限于标签损坏,而且可能会将示例完全排除在自然语言分布之外。 回到意义与形式的主题,这些增强可能对学习意义没有用,但它们可以帮助加强自然语言的形式。

Augmentation controllers 增强控制器

  • 计算机视觉数据增强成功的一个重要因素是控制器的开发。** 控制器参考在整个训练过程中优化增强强度的算法*8。 增强的强度描述了操作的大小,例如与 15 个相比插入了 3 个额外的单词。增强强度还描述了堆叠在一起的增强的数量,例如随机插入,然后是删除,然后是反向翻译等。 AutoAugment 、Population-Based Augmentation 或 RandAugment 等成功的控制器尚未在 NLP 中得到大规模采用

  • 应用 Easy Data Augmentation 时,会出现几个超参数。 超参数优化是深度学习研究的活跃领域之一。 这提出了一个完美的问题,可以找到随机增强采样的最佳值,以及诸如:要删除多少令牌? 例如,SpanBERT表明,不是为语言建模屏蔽单个标记,而是一次屏蔽多个标记,称为跨度,可以提高下游性能

Adversarial augmentation 对抗性增强

  • 对抗性攻击和使用对抗性优化输入进行增强与之前关于控制器的讨论非常相似。 关键区别在于,对抗性控制器以错误分类为目标,而控制器通常试图避免错误分类。 特别是,对抗性优化旨在提高对高频模式变化的鲁棒性。 对文本数据的对抗性攻击通常从引入拼写错误到删除单个或大块单词。 这有很大的歧义,因为其中许多扰动将通过文本数据预处理技术(例如拼写检查器、大小写规范化或正则表达式过滤)进行清理和过滤。

  • TextAttack 是一个开源库,实现对抗性文本攻击并为数据增强提供 API。 TextAttack 框架中有四个主要的攻击组件,目标函数、约束、转换和搜索方法。 该管道如下图所示。目标函数定义了目标输出,例如,我们可能希望以 50-50 的密度为目标,而不是仅仅翻转预测输出。 约束定义了输入可以改变多远。 转换描述了可用于更改输入的工具,例如同义词交换、删除、应用反向翻译以及前面讨论的所有其他技术。 最后,搜索方法描述了搜索攻击的算法。 与我们对控制器的讨论类似,有许多不同的方法可以执行黑盒搜索,例如网格或随机搜索、贝叶斯优化和进化搜索。

  • 对抗性增强的一个关键考虑是我们能多快构建对抗性例子。许多对抗实例构建技术,如Szegedy等,依靠迭代优化如L-BFGS来寻找对抗实例。在每一批训练中等待对抗性搜索将成为深度学习训练的一个重要瓶颈。为了解决这个问题,Wang等人使用他们的DEAT算法将时间消耗减少了60%。DEAT的高级思想是使用批重放来避免重复计算敌对批。

Stacking augmentations 堆叠增强

  • 叠加增强是一种改进了视觉模型的策略,但不适用于文本数据。其中一个策略是CoDA。CoDA引入了局部一致性损失,以确保叠加增强不会过度破坏样本,以及全局损失,以保留原始实例周围的局部邻域。

Tokenization

  • 标记化的预处理流程为实现数据增强提出了一个艰巨的挑战。通常,在词汇嵌入查找表到达Data Loader本身之前,脱机对单词标记进行标记或将其转换为相应的数字索引。在这些索引列表上应用数据扩充可能需要更多的工程工作。即使对于简单的同义词替换,也必须编写额外的代码来构造用于交换的同义词索引值的字典。值得注意的是,研究人员正在探索无标记器模型,如byT5和CANINE。这些模型处理字节级序列,如ASCII码,并将需要特殊处理来集成这些增强。

Position embeddings

  • Transformer实现的另一个更微妙的细节是位置嵌入的使用。原始的Transformer使用正弦和余弦函数将位置信息集成到文本序列中。另一种微妙的数据增强可能是对呈现这些编码的参数进行干扰。

Offline and online augmentation

  • 与在CPU或GPU上增加数据的讨论类似,另一个重要的考虑是确保数据增加是在线进行的,而不是离线进行的。这指的是原始实例在数据管道中被扩充时的情况。离线扩展是指扩展数据并将扩展的示例存储到磁盘。在线增强描述的是在为训练步骤加载新一批原始数据时对数据进行增强。我们注意到在线增强比离线增强更强大。离线增强提供了更快的加载时间,但它并没有真正利用所描述的大多数增强所支持的随机性和多样性。

  • 这个讨论的另一个重要细节是增广多重性。增广多重性是指从一个原始样本中得到的增广样本的数量。Fort等人和Hoffer等人说明了增加增重性如何可以提高性能。这种方法可能会在没有在线扩展管道的情况下引入显著的内存开销。此外,Wei等人指出,例子经常在网上被扩充,这样模型就永远不会用原始实例进行训练。Wei等人建议将模型分成两个微调头,一个只对未增广数据进行训练,另一个对高幅度增广进行训练。这些工作突出了在增强管道中探索细粒度细节的机会。

Curriculum learning 课程学习

  • 课程学习描述了对数据批次有一个人或元控制器的结构化组织。这包括在整个培训过程中改变数据增强的强度。Kucnik和Smith发现,对要扩充的数据集的一部分进行子采样比扩充整个数据集要高效得多。Wei等人证明了在训练三联体网络进行文本分类时,逐步将增广示例引入原始示例的有效性。我们注意到,这与我们讨论的增广控制器以及寻找最优幅度和链接参数非常相似。Thakur等描述“句子对的选择对于方法的成功至关重要”。

Class imbalance 类不平衡

  • 分类模型中探讨的一个普遍问题是阶级失衡。除了定制的损失功能,采样技术是一个很有前途的解决方案,以克服来自类别不平衡的偏差。这些解决方案通常描述了一些策略,如随机过采样或过采样,以及一些插值策略,如合成少数过采样技术(SMOTE)。SMOTE是一个通用框架,通过对少数实例进行平均来对它们进行抽样。从我们已经介绍过的扩展列表中,我们注意到MixUp与这种技术非常相似,并且已经对文本数据进行了研究。使用其他的过采样技术来避免重复实例的潜在陷阱可能是有用的。

Discussion

Task‑specific augmentation for NLP NLP的任务特异性增强

  • NLP包含许多不同的任务公式。这包括从文本分类到释义识别、问题回答和抽象摘要等。前一节中所述的现成的数据增强将需要对这些任务中的每一个进行轻微的调整。例如,当在一个问题回答数据集中增加上下文时,一定要注意删除答案。从数据扩充的角度来看,我们发现任务之间最大的差异是它们在输入长度方面有很大的差异。短序列必须更加注意增广是如何改变原来的例子的。更长的序列有更多的设计决策,比如如何对嵌套的句子进行反向翻译等等。我们推荐感兴趣的读者阅读Feng等人的,他们列举了数据增强如何应用于摘要、问题回答、序列标记、解析、语法错误修正、神经机器翻译、数据到文本的自然语言生成(NLG)、开放式和条件生成、对话和多模态任务。

Self‑supervised learning and data augmentation 自我监督学习和数据扩充

  • 在自我监督学习和数据扩充的情况下,我们都希望注入关于数据领域的先验知识。在部署模型时,哪个更有可能:数据分布变化还是模型应该使用数据变化执行的任务?在自我监督学习中,我们寻找方法来设置任务和损失函数来表示学习。在数据扩充中,我们寻找先验来操纵数据分布。数据增强的一个关键优势是,它比自我监督学习更容易堆叠先验。为了利用多个先验,自我监督学习依赖于高度不稳定的多任务学习或代价高昂的多阶段学习。而数据增广只需要随机抽样操作来整合多个先验。

  • 我们注意到,自我监督学习中的许多关键成功都依赖于数据增强,或者至少已经通过数据增强得到了显著的改善。例如,对比学习的成功依赖于Data Augmentation形成原始实例的两个视图。最具有数据效率的GAN框架通过使用数据增强来实现数据效率。此外,DistAug甚至在ImageGPT模型中使用大规模像素自回归建模来测试数据增强。

Transfer and multi‑task learning 迁移和多任务学习

  • 迁移学习一直是训练深度神经网络最成功的方法之一。随着更多带注释的数据集被收集和统一在数据集集线器中,这看起来尤其有希望。一个显著的例子是HuggingFace数据集,在本出版物发布时包含884个数据集。除了迁移学习,研究人员还探索了多任务学习,其中一个模型可以同时优化多个任务。这在T5中得到了很好的探索,它将所有的任务转换为语言建模。我们相信在这一领域还有数据增强实验的空间,比如使用MixUp来组合来自多个任务的数据,或者在策划的数据集之间进行反向翻译。

  • Wei等人提出了一种有趣的扩展,称为多任务视图(Multi-Task View, MTV),以更好地利用扩充子集并跨分布共享信息。多任务视图(MTV)训练不同的头增强子集和集合预测的最终输出。Geva等人也展示了共享特征提取器库和训练单独头部的实用方法。在这种情况下,Geva等人用不同的任务训练每个大脑,并将输入重新组织成统一的推理提示。与生成数据增强下的提示讨论类似,仍然有一个重要的机会来探索迁移学习、多任务学习和数据增强。

AI‑GAs 人工智能生成算法

  • 人工智能研究中最有趣的想法之一是AI-GAs (AI-generated algorithms)。一个人工智能生成算法由三个支柱组成,元学习架构,元学习算法本身,生成有效的学习环境。我们相信,数据增强和这个控制数据分布的接口将在生成学习环境的第三个支柱中发挥重要作用。例如,在教师-学生循环中嵌入学习代理,在该循环中,教师控制增强参数以呈现学习环境。

  • 在POET中,神经网络已成功地将学习环境本身的学习应用于双足行走控制。POET是控制参数和呈现行走地形参数的共同进化框架。数据扩充可能是将这个框架扩展到理解语言的最自然的方式,在这种语言中,环境会搜索扩充的大小参数或数据子集,就像在课程学习中一样。AI-GAs已应用于视觉问题,如生成教学网络和合成培养皿。在GTNs中,教师网络为学生网络生成培训数据。值得注意的是,训练数据具有不像自然图像数据的高频噪声模式。看看GTNs如何很好地生成类似于提示调优的持续优化的文本嵌入,这可能很有趣。

Conclusion

综上所述,本调查提出了在文本数据中应用数据增强的几种策略。这些扩展提供了一个接口,允许开发人员将他们的任务和数据域的先验信息注入到模型中。我们还介绍了数据增强如何帮助模拟分布偏移和测试泛化。由于与计算机视觉相比,NLP的数据增强技术相对不成熟,我们强调了一些关键的相似和不同之处。我们还提出了许多关于数据增强的想法,从实际的工程考虑到数据增强在构建人工智能中的潜力的广泛讨论。数据扩充是一个非常有前途的策略,我们希望我们的讨论部分有助于激发进一步的研究兴趣。

posted @ 2022-03-16 17:00  xingye_z  阅读(1082)  评论(0编辑  收藏  举报