【论文阅读】Rotom: A Meta-Learned Data Augmentation Framework for Entity Matching

摘要

深度学习几乎彻底改变了计算机科学的所有领域,包括数据管理。然而,对高质量训练数据的需求正在放缓深层神经网络的广泛应用。为此,数据增强(DA)成为一种常见的技术,它可以从现有的示例中生成更多标记的示例。同时,产生噪声示例的风险和超参数的大空间使得DA在实践中不那么有吸引力。我们介绍了Rotom,这是一个多用途的数据增强框架,用于一系列数据管理和挖掘任务,包括实体匹配、数据清理和文本分类。Rotom的特点是InvDA,这是一个新的DA操作符,通过将DA表述为seq2seq任务来生成自然但多样的增强示例。Rotom的关键技术创新之处在于,它是一个元学习框架,可以自动学习将不同DA操作符的示例组合在一起的策略,从而通过组合减少超参数空间。我们的实验结果表明,Rotom通过组合多个DA操作符有效地提高了模型的性能,即使单独应用它们并不能提高性能。凭借这一优势,Rotom在低资源环境下的性能优于最先进的实体匹配和数据清理系统,以及两种最近提出的用于文本分类的DA技术。

最先进的实体匹配和数据清理系统,以及两种最近提出的用于文本分类的DA技术。

如何减少参数空间?以前需要自动调试,现在将这个过程自动化

1 介绍

深度学习系统的爆发导致了许多领域的重大进步,例如自然语言处理 (NLP) 、计算机视觉 (CV) 、机器人等 [19,73,93] 。数据库社区也不例外 [42、61、85、92] 。例如,在数据集成中,通过将实体匹配 (EM) [49] 作为序列对分类任务并在下游EM数据集上训练深度神经网络,可以实现最先进(SOTA)的精度。虽然深度学习已经被证明是有效的,但是对训练数据的质量和数量的高要求正在减缓深度学习系统的广泛采用。为此,最近预训练模型 [19、41、53]的成功部分解决了这个问题,它通过允许开发者首先对大型未标记数据语料库上的模型进行预训练,然后对下游任务的相对较小的标记数据集上的模型进行微调。然而,仅部分解决了该问题,因为微调方法仍然需要大量的高质量标记示例(例如,对于典型EM应用来说为约10k [49,61]) 。鉴于获得质量标记数据的昂贵成本,人们对毫不费力地收集数据产生了极大兴趣 [47,69] 。

基于上述考虑,在本文中,我们研究了在只需要少量(例如200个)标记示例的情况下训练高质量深度学习模型的问题。我们开发了一个多用途系统Rotom,它支持一系列数据管理和挖掘任务,包括实体匹配、数据清理、文本分类。Rotom通过一个简单的微调LMs架构实现了这种多功能性,因此它可以支持任何可以表述为序列分类的任务。

Rotom本质上还是fine-tuning LMs的基础上增加了元学习的数据增强

Rotom 通过数据增强 (DA) 降低了对标记数据的要求。 DA 广泛用于 CV 和 NLP,自动从现有数据中生成额外的标记训练数据。 通常,DA 算子将训练样本转换为不同的版本,同时保留分类标签(例如,CV 任务的图像旋转或 NLP 任务的同义词替换词),因此它扩大了训练集并允许模型学习不同的不变性。(即类似与CNN具有局部不变性特征)多个 DA 算子可以被组合成一个 DA 策略以获得更好的结果。 Rotom 遵循元学习范式,以一种新颖的方式利用增强数据,因为它学习了一种选择和分配权重给增强示例的策略,以更好地训练目标LM。

利用元学习的思路,对增强数据的方式也进行了创新,即为增强示例选择和分配权重。

Challenges

为Rotom中的广泛应用开发普遍有效的DA运算符并非易事。下面我们将说明现有数据增强技术的两个主要限制因素,并深入了解我们如何在Rotom中解决这些问题。

即不能改过头,那样会错误;也不能改太少,那样说了等于没说

FIRST

首先,尽管数据增强通过增加训练数据的多样性被证明是有效的,但它有改变真实标签的风险。使用这些损坏的示例进行训练可能会损害目标 LM 的质量。

Example 1.1. Consider classifying the intent of a sentence:
Where is the Red Book? [Intent: Location]

即使只应用一个DA运算符,也会生成不保留原始标签的“wrong”示例。例如,如果简单地用另一个疑问代词“What”替换“where”一词,则生成的句子将具有不同的含义,并且意图将变成【asking for a description】。类似地,如果在“bowl”之后插入单词“From”,这很可能在使用语言模型预测insertion时发生,则问题意图也会变成【 asking for a description】。如果应用一系列DA运算符来获得更多样化的扩充示例,则更有可能得到“wrong”示例。

将DA运算符限制为那些改变句子含义风险最小的运算符 (例如,用字典中的同义词替换单词) 可以避免此问题,但会生成与原始示例几乎相同的示例,从而导致较少的性能增益。因此,对于数据增强,在多样性和质量之间存在权衡:对于生成更多样化示例 (例如一次应用多个运算符) 的方法,标签损坏的风险更高 [86]。调整这种权衡对于提高模型的性能很重要。

Rotom通过

(1) 引入新的DA运算符InvDA来解决这一挑战,该运算符可以通过将DA定义为seq2seq问题来生成多样而又自然的示例;

(2) 设计一种过滤/加权模型,该模型从潜在损坏的增强池中选择良好的增强示例。

这里的corrupted不仅仅是delete,各种DA操作符都会使得原始序列corrupted

SECOND

其次,找到最有效的 DA operators or policies是非常重要的。DA算子经常引入一组新的超参数。例如,简单的词替换变换具有至少两个超参数:

(1) 用于选择要替换的词的采样sample方法【定位方法】

(2) 用于选择要替换的同义词的基于字典 [59] 或基于相似度的方法 [60] 【替换方法】

在实践中,开发人员需要不断尝试组合并重新训练模型,直到结果令人满意。这个过程效率低下,依赖于启发式方法,经常导致次优选择。在CV中,一直有在努力自动寻找有效的DA政策 [16,51] 。然而,这些搜索算法通常被固定到模板 [32,44],例如,两个连续的简单变换,因此不支持简单变换以外的运算符,也不防止它们生成不良示例。

搜索算法固定到模板是啥意思?所谓的自动寻找,只是按照固定的模板去寻找。

我们通过考虑更一般的设置来应对这一挑战:Rotom 不是组合 DA 算子,而是组合由多个 DA 算子生成的增强示例。算子可以是简单的转换、基于生成的算子(例如 InvDA)或任何复杂的学习算子。无需手动调整超参数, Rotom 利用元学习自动学习优化策略,用于

(1) 过滤掉噪声增强

(2) 根据剩余示例的重要性重新加权。
因此,Rotom 有效地选择并组合了每个算子的高质量部分,以更好地训练目标模型。(通过组合示例,而不直接组合算子的方式)

在不手动调整超参数的情况下,Rotom利用元学习来自动学习优化的策略。

  • 元学习的目标是学习得到一组合适的超参数,而不再是hand-crafted
Contributions

本文的贡献如下。

  • 我们介绍了Rotom,这是一个多用途的数据增强系统,用于一系列数据管理和挖掘任务,包括实体匹配,数据清理和文本分类。Rotom将这些任务建模为序列分类(sequence classification),并通过fine-tuning诸如BERT之类的预训练语言模型 (LMs) 来解决它们 [19]。图1描述了Rotom的体系结构。

    只要可以建模为序列分类的任务,都可以用Rotom解决

image-20220329005830658
图一:Rotom DA框架用于实体匹配、错误检测、文本分类等。Rotom的InvDA算子通过重建损坏的未标记序列来学习seq2seqDA模型。Rotom还提供了一个半监督的元学习框架,用于过滤和加权增强的和未标记的示例。过滤+加权模型与目标模型通过下降到低验证损失来联合训练。

Rotom的InvDA算子通过重建损坏的未标记序列来学习seq2seqDA模型。

不知道理解的对不对:注意,这种训练方式属于自监督学习。而只所以使用unlabeled sequences(这里的unlabel是针对下游任务而言),是我们需要用与任务无关的数据进行预训练。

  • 我们在 Rotom 中引入了一个通用的数据增强算子 InvDA。基于 seq2seq 生成模型,InvDA 可以生成与原始序列任意不同的自然和多样化的增强序列。通过完全自动化的自我训练过程,我们允许 InvDA 学习如何通过反转多个简单转换的效果来增强。

  • Rotom具有元学习框架,该框架对大量增强的示例进行过滤和加权,以将其组装成高质量的训练信号【training signals】。Rotom无需手工制定DA策略,而是与目标模型共同地自动优化过滤/加权模型。结果,过滤/加权模型 “学习” 如何更好地选择和组合增强的示例,以提高目标模型的整体性能,从而解决了DA中的多样性-质量权衡。

    什么是Rotom中的元学习思想:无需hand-craft DA policy,而是通过过滤/加权模型,学习得到如何组合出合适的增强示例。

  • 我们展示了 Rotom 可以自然地扩展到半监督学习 semi supervised learning (SSL) 设置,以利用大量未标记的数据。 虽然猜测标签的大量质量差异是传统 SSL 的主要挑战,但元学习框架使 Rotom 能够仅选择高质量的猜测,从而进一步提高目标模型的性能。

    半监督学习方法的性能依赖于所用的半监督假设

    元学习如何评估半监督学习的质量?即所加权重的依据是什么?

  • 我们进行了广泛的实验,以评估所有3个受支持任务的基准数据集上的Rotom。我们的实验结果表明,Rotom有效地结合了简单的DA运算符InvDA未标记的示例,即使独立应用它们不会产生性能提升。利用这种能力,Rotom的性能优于

    • F1得分优于SOTA EM系统最高达6%
    • F1得分优于SOTA错误检测系统7.64%
    • 以及两种最近的低资源文本分类技术。
Paper outline

论文的其余部分组织如下。第2节回顾了支持的任务,第3节介绍了InvDA操作。我们将在第4节介绍我们的元学习框架。我们将这个框架扩展到第5节中的半监督设置。第六部分给出了实验结果。最后,我们在第7节讨论相关工作,并在第8节结束。

2 准备

在本节中,我们首先回顾并正式定义我们论文中考虑的任务。接下来,我们介绍了一种针对这些任务的的基线方法【baseline method】,即微调预训练语言模型 (LM) 。我们还总结了基本的数据增强算子,它们生成额外的训练数据以优化微调基线。

3种任务都基于微调-预训练语言模型

2.1 Problem definition

实体匹配和数据清洗的序列分类
Rotom的目标是一般形式的序列多分类任务

image-20220329005910572

上述定义常用于表述自然语言处理中的文本分类问题,具有广泛的应用范围。例如,在情绪分析中,输入序列可以是一个产品评论,分类器预测评论的二元情绪类(即积极或消极)。表1总结了一些文本分类应用的例子

image-20220329005920471

虽然上述设置在NLP中最常用,但它也适用于许多数据管理任务。接下来,我们将回顾两个这样的任务:实体匹配和数据清理。

实体匹配(EM)

给定两个数据条目集合,EM[12]试图识别是否引用相同的真实世界实体的数据条目对。EM工作流[37]有两个主要步骤:阻塞【blocking】和匹配【matching】。阻塞阶段通常使用简单的启发式【heuristics】方法(例如,一对匹配的记录必须共享至少1个令牌)来识别一个相对较小的候选对集。接下来,匹配阶段对每个候选对是否为真实匹配进行分类。

启发式算法(heuristic algorithm)是相对于最优化算法提出的。一个问题的最优算法求得该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。

形式上,假设每个数据条目𝑒由一组键-值对 { ( a t t r 𝑖 , v a l 𝑖 ) } 1 ≤ 𝑖 ≤ 𝑚 \left \{ (attr_𝑖,val_𝑖)\right \} _{1≤𝑖≤𝑚} {(attrivali)}1im表示。

给定一对数据条目 ( e , e ′ ) \left(e, e^{\prime}\right) (e,e),一个匹配的模型𝑀在{0,1}中输出一个标签,其中 M ( e , e ′ ) = 1  if  ( e , e ′ )  is a match and  0  otherwise  M\left(e, e^{\prime}\right)=1 \text { if }\left(e, e^{\prime}\right) \text { is a match and } 0 \text { otherwise } M(e,e)=1 if (e,e) is a match and 0 otherwise 

通过将匹配问题表述为一个序列分类任务[49],可以有效地解决该匹配问题。在[49]之后,我们将两个条目中的所有属性/值序列化并连接到一个序列中。

For example, consider two entries {Name: “Google LLC”, phone: “(866) 246-6453”} and {Name: “Alphabet inc”, phone:“6502530000”}, we can serialize them as

“[COL] Name [VAL] Google LLC [COL] phone [VAL] (866) 246-6453 [SEP]

[COL] Name [VAL] Alphabet inc [COL] phone [VAL] 6502530000”

然后我们可以应用序列分类技术来解决匹配任务。请注意,我们插入了特殊的标记[COL]和[VAL]来指示属性或值的开始。

特殊的标记[SEP]可以将这两个条目分开

数据清洗

给定一组关系表,数据清理[29,33,54,55]的目标是识别并修复表中的任何错误,如拼写错误、数据格式化错误或约束违反。我们主要关注识别错误条目的问题的第一部分,这也被称为错误检测[29,55]。表2显示了错误检测问题的一个示例实例。

image-20220328150225447

在Rotom中,我们将错误检测转换为与EM一样的序列分类。我们可以通过连接特殊的标记来序列化我们想要检查的正确性的单元格值。例如,对于表2的最后一个单元格,我们生成序列“[COL]phone[VAL]6502530000”。为了检测与上下文无关的错误,即仅与单元格值相关的错误,我们可以使用这个字符串作为序列分类器的输入。对于与上下文相关的错误,我们将整个行序列化为“上下文”,并附加到感兴趣的单元格的末端(由“[SEP]”分隔)。

例如,为了检测第三行最后一个单元格的错误,我们用下面的序列作为输入

image-20220316091521079

关于序列化数据条目的讨论

由于它的构想很简单,所以Rotom支持任何可以转换为序列分类的任务。这使得Rotom成为了一个灵活的解决方案。例如,如[49]中所示,序列化EM的数据条目允许输入实体具有任意的模式,因此在匹配之前不需要模式对齐【schema alignment】。然而,序列化并不总是能产生最好的性能。例如,在错误检测中,可能存在违反表级约束的错误类型,如聚合约束和函数依赖关系。捕获这样的约束需要序列化整个表,这很容易超过LM允许的最大序列长度。从这个意义上说,Rotom更擅长于可序列化为文本和中等长度的序列(例如,数百个标记)

每个LM都有对应的最大序列长度

2.2 Baseline

Fine-tuning language models

微调预训练语言模型(LMs)已被证明是一种简单而有效的序列分类[19,67]方法。预训练的LMs,如BERT[19]和GPT-2/3[8,66],在广泛的NLP任务中显示出良好的性能。这些模型通常是由Transformer层[83]组成的神经网络,通常是12层或24层,并通过自监督学习在大型文本语料库,如维基百科上进行预训练。在预训练过程中,对模型进行自我训练self-trained,执行诸如缺失标记和预测下句【missing token and next-sentence prediction】等辅助任务,使模型能够学习捕获输入序列的词汇或语义意义。

我们可以在下游任务中利用预训练LM,通过在特定任务的训练集上进行微调。对于序列分类,这可以通过以下步骤来完成:

(1)在LM的最后一层之后添加特定的任务层【task-specific layers】

具体地说,我们添加了一个输出维数等于类数的全连接层和一个softmax分类器作为最终的层来进行多类分类。

(2)用预训练LM的参数初始化修改后的网络N。

(3)训练N在训练集上直到收敛。

图2显示了一个LM的模型架构。

image-20220315155406413

该模型由(1)a token embedding layer(2)Transformer层,使用自注意机制捕获序列语义[83],(3) the added task-specific layers(linear followed by softmax)用于下游分类任务。从概念上讲,[CLS] token“总结”了分类所需的所有上下文信息,作为上下文嵌入向量 𝐸 [ C L S ] ′ 𝐸'_{[CLS]} E[CLS],可以作为分类[19]的输入特征提供给特定任务的层。

𝐸 [ C L S ] ′ 𝐸'_{[CLS]} E[CLS]为分类token([CLS])对应最后一个Transformer的输出, 𝐸 [ i ] ′ 𝐸'_{[i]} E[i] 则代表其他token对应最后一个Transformer的输出。对于一些token级别的任务(如,序列标注和问答任务),就把 𝐸 [ i ] ′ 𝐸'_{[i]} E[i]输入到额外的输出层中进行预测。对于一些句子级别的任务(如,自然语言推断和情感分类任务),就把输入到 𝐸 [ C L S ] ′ 𝐸'_{[CLS]} E[CLS]额外的输出层中,这里也就解释了为什么要在每一个token序列前都要插入特定的分类token。

2.3 Simple data augmentation operators

上述微调方法的成功在很大程度上取决于高质量的标记训练数据的数量。当训练数据量不足时,数据增强(DA)是一种常用的技术。例如,在计算机视觉中,人们可以通过执行简单的转换,如旋转或翻转原始训练图像来获得额外的训练示例,并期望图像的标签保持不变。对于文本分类,这种简单的转换可以是插入或删除单个标记。简而言之,DA由一个保留原始训练示例的标签的转换操作组成。

除了扩大训练集外,DA还提高了训练模型对数据噪声的鲁棒性,因为模型被迫“更努力地学习”。例如,通过应用删除操作【deletion operator】,模型学习了不变性属性【invariance property】,即当删除单个标记时,句子的含义保持不变。

DA的优点

  • 扩大训练集
  • 提高训练模型对数据噪声的鲁棒性【robustness】:学习样本的invariance property。例如CNN模型可以捕捉到局部不变性一样,我们也希望模型能够捕捉到文本和序列中的不变性。

数据增强对Rotom[29,49,86]的所有3个支持任务都有效。我们在表3中总结了我们在Rotom中实现的简单增强运算符。每个运算符在不同的级别上转换输入序列:标记【token】、跨度【span】、列/属性【column/attribute】或实体【entity】。token的采样可以是均匀采样,也可以是根据每个标记的重要性进行抽样。我们通过其反向文档频率inverse document frequency (IDF) 来衡量token的重要性,以便更多地replaced/deleted不重要的令牌。我们通过wordnet [60] 获得token的同义词。我们注意到,这个列表绝不是完整的。Rotom的用户可以选择添加为特定任务定制的转换。 【Users of Rotom have the option of adding transformations customized for a specific task.】

image-20220316143308917

表3:Rotom中的简单DA操作。
请注意,属性级【attribute-level】操作符(col_shuffle和col_del)仅适用于EM和错误检测。 entity_swap运算符仅适用于EM。
限制

有几个因素限制了上述简单的DA操作符在实践中的有效性

(1)首先,由这些DA操作符生成的例子是不自然的,即偏离了原始的序列分布。对于文本分类,生成的序列可能有语法错误,因此对于某些任务可能是不可取的。(这点不容忽视)

(2)其次,简单的DA操作符不能生成更多样的同时保留类标签的示例。例如,由token_repl生成的序列与原始序列最多相差1个标记。跨级运算符【span level operators】可能会过多地更改序列,从而破坏标签。

(3)第三,结合这些DA算子引入了一个大的超参数空间。开发人员需要从一个操作池【pool of operators】中进行选择,以及使用不同的特定于操作的选项【different operator-specific options】。因此,在以前的工作[49,58,86]中,通常只枚举和选择性能最好的单个DA操作符,这可能会导致次优性能。

combining these DA operators introduces a large space of hyper-parameters.

超参数空间大指的是如何具体选择DA算子,对于所选择的DA算子如何设置,如果是组合,则更加复杂,这些都是需要在训练之前设置好,而如何设置则太难去考虑。

operator-specific options:例如,对于token_repl,要设置采样方式(抽样、基于重要性)、替换方法(相似度(如果是相似度,哪种相似度,阈值多少)、字典),对于span-level,考虑span长度等等

3 seq2seq数据增强

接下来,我们介绍了InvDA,一个新的DA算符,用于Rotom生成自然而多样的增广序列。

InvDA是一个在 task-specific的序列语料库上训练的seq2seq模型。

也是在大型预训练网络上进行微调

3.1 Seq2seq model

seq2seq(序列到序列)模型[80]𝑀gen将一个输入序列𝑠作为输入,并生成一个新的序列序列𝑡=𝑀gen(𝑠),我们称之为目标序列。Seq2seq模型通常用于NLP任务,如机器翻译或文本摘要,它们的输出是一个完整的序列,而不是一个类标签(即,这些任务是生成性的【generative】,而不是有区别的【discriminative】)。该模型通常由一个编码器和一个解码器组成,其中编码器接受𝑠并将其映射到一个固定大小的向量表示,而解码器基于这个向量表示顺序预测token,以生成一个目标序列𝑡。

seq2seq:Encoder—语义编码C—Decoder

Seq2seq模型已用于文本数据增强[44,90]。将数据增强表述为序列生成问题的主要优点是模型的灵活性。与限制原始序列更改次数的简单转换不同,seq2seq模型具有不受限制的输出空间,这意味着它的输出可以与输入任意不同。然而,使用这些seq2seq模型仍然有一些缺点,因为它们没有在下游任务的领域上进行训练。例如,我们不能直接对用于文本数据的seq2seq模型[44,90]给EM和EDT任务,因为EM和EDT中的序列通常不是句子,而且这种在大型自然语言语料库上训练的seq2seq模型可能不会生成接近EM和EDT输入的分布序列。因此,需要在task-specific的语料库上训练基于seq2seq的DA方法,以生成更多样化的序列。

本质上是通过Seq2seq模拟真正可以同义替换的句子。

这种Seq2seq model没法直接借助在大型自然语言语料库上的训练过的seq2seq模型。这节的最后,我们用一种更有效的预训练模型T5,配合下游task-specific的训练数据集来实现。

具体如何训练?接下来会介绍InvDA,InvDA是一个在任务特定的序列语料库上训练的seq2seq模型。

3.2 Inverse data augmentation

接下来,我们描述了我们的基于seq2seq的DA方法InvDA。如前所述,InvDA模型需要进行适当的训练,以确保增强序列的质量。seq2seq模型的训练数据由一个输入-目标序列对【input-target sequence pairs】组成。训练一个高质量的seq2seq模型通常需要大量这样的对。例如,一个典型的EN-DE翻译模型[83]是在超过450万对正确翻译的英语德语句子对上进行训练的。

训练出一个高质量的seq2seq模型需要大量的pairs

为了训练InvDA来完成下游任务,理想情况下,需要提供输入-目标对,其中输入是任务的原始序列,而目标是一个“好的”增强。如果增广序列是下面这样,则它很好:

(1)语义保留【semantics-preserving】

(2)来自与输入相同的序列分布【格式,形似】

(3)尽可能地与输入序列不同【内容,神不似】

然而,在实践中,如果没有人工注释【human annotations】,很难自动获得这种输入-目标对。因此,我们提出了一种新的自监督方法来训练InvDA模型。

如果自动获得这种pairs,需要工作量极大的人工注释成本。

解决方法:我们用自监督的方式来进行训练。

我们的方法背后的直觉是,虽然很难获得高质量的增强示例,但原始的训练示例对于某些输入序列可能是高质量的增强。

此外,我们还可以通过破坏corrupting原始序列来获得这些序列【即上面的“某些输入序列”】,这可以通过应用多个DA操作符(删除令牌s、交换令牌s顺序等)来实现。我们在算法1中正式地描述了这个过程。

image-20220326140003255

从概念上讲,seq2seq模型 𝑀 g e n 𝑀_{gen} Mgen学习了如何反转或恢复【被多个简单的DA操作符所破坏序列的】效果

the seq2seq model 𝑀gen learns how to invert or restore the effect of corrupting a sequence by multiple simple DA operators。

这句话如何理解?学习如何翻转或恢复【因_______破坏的】效果

在预测时,我们应用 𝑀 g e n 𝑀_{gen} Mgen对原始输入序列 s s s进行变换。 𝑀 g e n 𝑀_{gen} Mgen的训练示例【即输入-目标对】通过构造满足上述(2)和(3)的要求,因为目标序列【target sequences】来自原始训练集【original training set】,可以通过控制应用增强的数量【 controlling the number of applied augmentations】与输入序列任意不同。

满足3吗?尽可能地不同于输入序列?也算满足,毕竟是可以控制operator梳理

语义保留的(1)要求不那么明显。从直觉上看,corruption过程通常会从输入序列中“removes”信息(例如,从“I want to eat a sandwich”中删除“sandwich”会提供 input-target pair“I want to eat a”——“I want to eat a sandwich”作为训练)。在预测时,我们可以期待有一个添加信息的反向效应【expect an inverted effect of adding information】,例如,给定原始训练集中的另一个序列*“I want to eat at the cafe”*作为输入,seq2seq模型可以生成“I want to eat sandwich at the cafe”这可能保留了来自输入的意义,并且比简单的DA操作的输出更接近于原始训练集【original training set】的分布。

何为Inverse data augmentation?通过corruption过程,我们从输入序列中“removes”信息。但是,在训练的过程中,迫使模型能学习到这部分信息,即the models are forced to “learn harder”.那么在预测时候,在模型的输出序列中,就有了添加信息的反向效应【inverted effect of adding information】

通过破坏来学习!与预训练中,BERT的预训练目标Masked language model (MLM)的思想一致!

注意在训练时,target sequence为原始训练集中的序列。上述中,“I want to eat a sandwich”“I want to eat at the cafe”这两句话都来自原始训练集,因此对于“I want to eat at the cafe”的预测结果“I want to eat sandwich at the cafe”显然比简单DA更接近原始训练集

我们在表4和表5中的例子中观察到了这种效应。

Choice of models and generation methods

虽然上述方法允许对InvDA进行全自动训练【fully automatic training】,但从头开始训练seq2seq模型仍然是不可行的,特别是在训练集𝑆较小的情况下。我们再次通过利用预训练过的模型来解决这个问题。最近提出的预训练的seq2seq模型,如BART[46]、T5[67]和GPT-3[8],可以通过相对少量的训练数据来微调到下游任务。我们在我们的实现中选择了12层的T5-base model[67],因为它的规模相对较小,并且可以适用于多个任务,包括机器翻译、总结和问题回答。

T5模型:Transfer Text-to-Text Transformer

借助预训练模型,对InvDA进行训练,要比从头开始训练seq2seq模型快的多

对于其他基于序列生成的DA方法,请参阅第7节以了解这些技术的讨论并与InvDA进行比较。在第6.5节中,我们还比较了实验性的InvDA和之前基于生成的文本分类方法[44]。

3.3 Examples

我们在表4和表5中为Rotom支持的3个任务的InvDA示例。

image-20220316195044127

Table 4: 通过简单的DA(DA1、2)和InvDA(InvDA1-3)进行的增强示例。我们用绿色和红色突出显示了这些变化.

image-20220316195348638

Table 5: Examples of InvDA for EM.
The “_” symbol indicates a deleted token from the original sequence.

在文本分类方面,InvDA生成的3个序列都是很好的增强,因为它们保留了位置寻找【location seeking】的语义含义【semantic meaning】,同时自然地与原始序列有很大的不同。在错误检测示例中,InvDA(令我们惊讶的是)可以从一个真实的电影名称“DUFF”中生成自然的假电影名称,以便它们保持原始数据条目的正确性【preserve the correctness of the original data entry.】。在实体匹配方面,InvDA将术语“关系数据库”重写为“数据库”、“数据库系统”和“开源数据库”等有意义的术语。

只所以说在EDT中,生成了自然的“假”电影名仍然保持了数据条目正确性,是因为我们数据清洗的目标是清洗语法错误的单元。

另一方面,我们观察到,由简单的转换生成的序列有些不自然,或偏离了原来的意义。虽然InvDA可以生成更自然和多样化的例子,但不能保证保留原始标签,因此仍然需要进一步对增强的例子进行过滤和加权。

如何实现filtering and weighting?借助元学习,将整个过滤和加权的过程,视作是一个Learning Algorithm,即是一个可学习,可优化的目标。

4 元学习来选择和结合增强的例子

target model是为classifier服务的

meta-learner是为target model服务的,以便【target model更好地为classifier服务】

机器学习模型的性能在很大程度上取决于该模型所训练的数据。因此,当我们应用DA(简单转换或InvDA)时,确保增强的示例的高质量是至关重要的。 在Rotom中,我们通过将其作为一个优化问题来实现这个目标。

将“ensure that the augmented examples are of high-quality”作为一个优化问题,也就是我们元学习的目标,meta-objective

我们设置的优化目标是【找到一组由任何DA算子生成的增强示例的集合】,以优化在该集合上训练的目标模型的性能。请注意,这比选择要应用的DA运算符的子集是一个更一般的设置。对于生成不同且有噪声的示例的DA算子,我们期望Rotom从有噪声的示例中分离出“good portion”,而不是完全保留或完全放弃由算子生成的所有示例。

注意,我们要寻找的目标模型,是要在增强数据集上具有良好表现的目标模型。

与选择DA运算符的区别是,存在即合理,取其精华去其糟粕

形式上,对于一个语言模型𝑀和一组训练数据S,我们用Train(𝑀,𝑆)表示在𝑆上微调的模型𝑀:

image-20220316202253353

问题1(DA优化)

给定一个要训练的(文本分类、实体匹配、错误检测)模型𝑀,带标签的训练集 S t r a i n S_{train} Strain,验证集 S v a l S_{val} Sval,一组DA运算符𝐷,和要最小化的函数损失,找到一个子集 S aug  ⊆ U d ∈ D { d ( s ) ∣ s ∈ S train  } S_{\text {aug }} \subseteq U_{d \in D}\left\{d(s) \mid s \in S_{\text {train }}\right\} Saug UdD{d(s)sStrain }以使得 l o s s ( Train ⁡ ( M , S a u g ) , S v a l ) loss\left(\operatorname{Train}\left(M, S_{\mathrm{aug}}\right), S_{\mathrm{val}}\right) loss(Train(M,Saug),Sval)最小化,其中$loss(𝑀, 𝑆) $计算𝑀数据集𝑆的损失值,为Lossval

在机器学习中,通常我们寻超参数(或调整模型architecture)的时候借助验证集来选择超参数,这里也是一样的道理。

l o s s ( Train ⁡ ( M , S a u g ) , S v a l ) loss\left(\operatorname{Train}\left(M, S_{\mathrm{aug}}\right), S_{\mathrm{val}}\right) loss(Train(M,Saug),Sval)表示利用增强数据训练起来的模型,在验证集上面的损失,其最小说明利用增强数据训练起来的模型较好,即寻找到了比较理想的数据增强方案,优化的过程,本质上调整的是DA的比例

U d ∈ D { d ( s ) ∣ s ∈ S train  } U_{d \in D}\left\{d(s) \mid s \in S_{\text {train }}\right\} UdD{d(s)sStrain }表示对所有的训练样本,采用所有的DA算子,进行加强(生成所有增强示例的时间 << 应用不同的示例一遍遍训练的时间,时间消耗主要在模型训练上面)

请注意,损失是在验证集上计算的。验证集可以与训练集不相交,以避免过拟合,也可以与 S t r a i n S_{train} Strain​相同,以节省一些标签预算

验证集(validation set)—— 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。 通常用来在模型迭代训练时,用以验证当前模型泛化能力(准确率,召回率等),以决定是否停止继续训练。

与元学习的联系

上述问题的定义与元学习密切相关,元学习即“学习到学习”【learning-to-learn】的机器学习范式。详细的调查请见[84]。元学习算法通常试图通过利用从学习类似任务或领域的“经验”中积累起来的外部知识【external knowledge】来更好地学习目标任务。

即在similar tasks or domains学习,以更好的学习target task

【Training Tasks上面学习,以应用在Testing Tasks】

这些知识可以是,例如,如何更好地初始化[23]或更新[76]的模型。

所谓的external,例如我们目标任务是电影数据集的实体匹配,我们所用到的训练任务是报纸数据集、论文数据集

通过元学习解决的是“学习如何学习”,通俗点说,就是模型训练之前的一些东西该如何设置,通过元学习得到的是未经训练的模型的训练前的超参数设置。

对于DA优化问题,我们的目标是通过元学习最优的【用于选择和加权增强示例的策略模型】,来学习得到模型𝑀。

【we aim to learn a target model 𝑀 by meta-learning the optimal policy model for selecting and weighting augmented examples.】

如上定义,元目标是将验证损失validation loss最小化,这允许策略模型【通过学习使用增强示例“teaching”目标模型的经验】来不断改进自身。

【The meta-objective, as defined above, is to minimize the validation loss, which allows the policy model to keep improving itself by learning from the experience of “teaching” the target model with the augmented examples】

最后这段话有点拗口,但表达的是所做的这件事,与元学习的联系。即策略模型通过学习…的经验,来改进自身,服务于目标模型。

4.1 过滤和加权模型

Rotom利用过滤模型和加权模型来选择和组装训练数据来训练目标模型。直觉上,过滤模型是一个二元分类器,它决定是否接受【take】或丢弃【discard】一个已扩充的示例。然后,加权模型通过分配(用于计算训练损失的)权重【 assigning their weights for computing the training loss】来确定所选例子的重要性。

为什么是training loss?

权重和例子重要性有什么区别?

权重与training loss联系?

定义 4.1 过滤和加权

image-20220326230420489

  • 过滤模型 𝑀 𝐹 𝑀_𝐹 MF是一个二值分类器,它以一个增强的示例𝑒作为输入,并输出$𝑀_𝐹(e)∈\left {0,1 \right} $
  • 加权模型 𝑀 𝑊 𝑀_𝑊 MW是一个回归模型,它以一个增强的例子𝑒作为输入和输出权重 𝑀 𝑊 ( e ) ∈ [ 0 , 1 ] 𝑀_𝑊(e)∈[0,1] MW(e)[0,1]

注意 e = ( x , x ^ , y ) e=(x,\hat{x},y) e=(x,x^,y)​为增强示例,有可能出现同一个 x x x对应多个 x ^ \hat{x} x^的情况

注意,接下来所考虑的问题,都是在序列分类任务的基础上。对于实体匹配,V={match,no-match};对于数据清洗,V={dirty,clean};对于文本分类,如新闻文本分类,V= {Politics, Sports, Technology, . . .}

为什么要有两个模型

节省计算资源

注意,原则上,只能保留权重模型 𝑀 𝑊 𝑀_𝑊 MW,并将其应用于所有增强示例。然而,由于有大量的增强数据,这是不可行的数据。例如,由 token-level转换生成的增强示例的数量至少与训练集的大小乘以序列长度成正比。由InvDA生成的序列的数量甚至可以任意大。过滤模型作为粗粒度预过滤器【coarse-grained pre-filter】,快速删除不需要的示例。因此,加权模型或目标模型将不会对被删除的例子进行处理,以节省计算资源。

过滤模型

基于上述原因,我们将滤波模型 𝑀 𝐹 𝑀_𝐹 MF设计为一个轻量级的、基于特征的、单层感知器模型。 𝑀 𝐹 𝑀_𝐹 MF的输入特征包括one-hot编码标签𝑦和目标模型【在𝑥上预测标签分布】到【在 x ^ \hat{x} x^上预测标签分布】的元素KL散度【element-wise KL-divergence】。形式上,记住𝑀是目标模型,我们用 𝑝 𝑀 ( 𝑥 ) 𝑝𝑀(𝑥) pM(x)表示在𝑥上应用𝑀得到的概率分布。设 W F ∈ R 2 ∣ V ∣ × 2 W_{F} \in \mathbb{R}^{2|V| \times 2} WFR2V×2 b F ∈ R 2 b_{F} \in \mathbb{R}^{2} bFR2是感知器模型的可训练权重和偏差(这里我们过载符号 𝑊 𝐹 𝑊_𝐹 WF来表示 𝑊 𝐹 𝑊_𝐹 WF​​的参数)。对过滤模型进行计算

M F ( x , x ^ , y ) = softmax ⁡ ( W F × concat ⁡ ( y , p M ( x ) log ⁡ p M ( x ) p M ( x ^ ) ) + b F ) M_{F}(x, \hat{x}, y)=\operatorname{softmax}\left(W_{F} \times \operatorname{concat}\left(y, p_{M}(x) \log \frac{p_{M}(x)}{p_{M}(\hat{x})}\right)+b_{F}\right) MF(x,x^,y)=softmax(WF×concat(y,pM(x)logpM(x^)pM(x))+bF)

对于过滤模型而言,输入特征有两个,一个是y,另外一个是 𝑝 𝑀 ( 𝑥 ) 𝑝𝑀(𝑥) pM(x)​和 𝑝 𝑀 ( 𝑥 ^ ) 𝑝𝑀(\hat{𝑥}) pM(x^)​的KL散度;

KL散度(KL divergence)是度量两个分布之间差异的函数。测量两个概率分布之间的距离。如果两个分布越接近,那么KL散度越小,如果越远,KL散度就会越大。KL散度是衡量两个分布之间差异的函数,也可以用交叉熵来衡量。

concat() 得到的向量长度为2|V|×1,所以softmax()得到的结果为2×1

直观地说,通过使用KL-散度作为 𝑀 𝐹 𝑀_𝐹 MF​的特征,我们期望该模型根据当前模型的预测,学习去除与原始序列 𝑥 𝑥 x​差异太大的增广序列 x ^ \hat{x} x^​​。这样的序列很可能包含太多的变化,因此它的语义从原始语义中漂移。

此外,在features中添加one-hot编码的𝑦允许过滤模型校准每个类的过滤器的强度(即,对于一个类比其他类更嘈杂的情况)

训练样本中的过滤模型的标签,要么为1,要么为0

只所以在输入中,引入y,是因为对于不同的类,有不同的标准。

校准过滤器强度什么意思?即不同的类,判定是否应该过滤的标准不同!

引入y,只是告诉模型,当前的序列和增强序列对应的label是什么。当KL散度大于某阈值时,过滤模型丢弃增强样例。但是,对于阈值的大小,不同类的标准不一样!有些类可以可以容忍更多的噪声,比其他类更嘈杂。

疑问:按照上面公式(或者根据 W 𝐹 W_𝐹 WF), 𝑀 𝐹 𝑀_𝐹 MF输出的应该是长度为2的向量。

为什么是2呢? 𝑀 𝐹 𝑀_𝐹 MF的输出要么是take要么是discard,用one-hot向量的形式表示去留,就是长度为2的向量

加权模型

在我们删除不需要的示例之后,我们准备形成批(form batches)来训练目标模型。给定一批batch增强示例B,加权模型 M w M_w Mw的目标调整实例的权重,以便能够更好地优化目标模型M。形式上,为了更新目标模型𝑀,我们计算加权的训练损失【 the weighted training loss】并反向传播:

image-20220326205627684

其中,CE(·)为交叉熵损失函数。

注意:Losstrain用于衡量并优化目标模型M

我们在优化目标模型的过程中,优化了加权模型。

𝑀 𝑊 𝑀_𝑊 MW的结果是为计算得到增强序列所分配的权重;

注意,从 ( x , x ^ , y ) ∈ B (x, \hat{x}, y) \in B (x,x^,y)B​看出,这里的所说的训练集就是以 x ^ \hat{x} x^​为feature以y(原始序列对应的标签)为label的带标签的增强数据

𝑀 𝑊 𝑀_𝑊 MW​越大,对应的例子的loss越大。可以理解为,例子越重要,那么计算该增强示例与y的交叉熵损失时,就应该尽可能的不改变,即乘以一个尽可能接近于1的权重,因为该例子后期很重要,目标模型要用它。如果例子越不重要,则目标模型基本上不用它,自然计算损失的时候不怎么用考虑他。

直接将权重计算公式 𝑀 𝑊 𝑀_𝑊 MW引入交叉熵函数中。这里面的待学习的参数,即 𝑀 𝑊 𝑀_𝑊 MW中的参数。

𝑀 𝑊 𝑀_𝑊 MW的大小决定了增强示例多大概率上能被目标模型所捕获

分配权重的问题并不简单。例如,我们期望加权模型为hard examples分配更高的权重,从而使它们更有可能被目标模型捕获。然而,为加权模型选择特征要比过滤模型要复杂得多,因为决定“硬度hardness”需要大量的序列理解能力。(即理解所得到的增强序列是否重要)

设计过滤模型只需要比较KL散度,以及考虑不同类有不同的过滤强度。

为了得到例子的硬度,我们需要设计一些序列的特征,但如何设计特征是困难的。

因此,我们不是手动工程这些特征,而是利用预训练语言模型来编码【encode】一个增强的序列,这样我们的加权模型就可以访问从预训练中学习到的丰富特征。

这部分是啥意思?应该是利用与上下文有关的向量𝐸′[CLS]【contextualized embedding vector】 来代表当前序列中的输入特征。即 L M 𝑊 ( x ^ ) LM_𝑊(\hat{x}) LMW(x^)代表了与训练模型关于 x ^ \hat{x} x^所理解到的东西。

具体来说, 𝑀 𝑊 𝑀_𝑊 MW​由一个语言模型 L M 𝑊 LM_𝑊 LMW​和一个单个线性层 𝐿 𝑊 𝐿_𝑊 LW​组成(其输入大小与 L M 𝑊 LM_𝑊 LMW​的隐藏大小相同,输出大小为1)组成。我们计算 𝑀 𝑊 𝑀_𝑊 MW​为

image-20220326201515568

感觉“与xx的隐藏大小相同”不太对,感觉应该是和𝐸′[CLS]大小相同;

如何理解上面这个公式?

就是增强序列—经过PTM处理----经过线性层sigmoid,得到一个数值。

权重模型是如何学习的,本质是说Loss如何定义。在公式1中定义了Loss,通过优化Loss的过程,其实是优化 M w M_w Mw,因为二者是相关联的,即 M w ↑ M_w \uparrow Mw,那么 L o s s ↓ Loss \downarrow Loss

请注意, 𝑀 𝑊 𝑀_𝑊 MW​的输出可以大于1,所以我们需要规范化batch内的权重【normalize the weights within the batch】。原始序列𝑥中不用于计算,以节省一半的计算。

在公式1计算之前,对batch内的权重规范化。另外所选的LM是什么?应该是T5

有一个特殊的添加项 ∥ p M ( x ^ ) − y ∥ 2 \left\|p_{M}(\hat{x})-y\right\|_{2} pM(x^)y2,它计算在增广序列 x ^ \hat{x} x^上的预测概率与真实标签分布𝑦之间的L2距离(欧氏距离)。添加项的目的是为了让加权模型即使还没有达到稳定状态也能正常工作。在训练过程开始时,L2距离将主导 L M 𝑊 LM_𝑊 LMW项,因为目标模型𝑀在大多数例子中都是不确定的(如何理解这里的uncertain)。在这一阶段, 𝑀 𝑊 𝑀_𝑊 MW会简单地为那些更不确定的例子分配更高的权重,这与在主动学习[77]中基于不确定性的抽样技术类似。【At this stage, 𝑀𝑊 would simply assign higher weights to those examples that are more uncertain which is in analogy to the uncertainty based sampling technique in active learning】一段时间后,当模型𝑀适合大多数例子时,L2距离将接近0。我们还期望 L M 𝑊 LM_𝑊 LMW项能够正常工作,因为它已经与𝑀同时进行训练(我们将在接下来描述)。请注意,当我们更新𝑀时,梯度不会通过L2距离项传播(L2距离变成了标量)。

主动学习[77]中基于不确定性的抽样技术是什么?

初步理解,在训练刚开始的时候,由于我们目标模型对于大多数例子而言都是不确定的,也就是模型不稳定。我们此时没法知道哪些例子好,哪些例子不好,所以,就假设这些例子都是有用的。我们就要暂时的为这些例子,分配更高的权重,此时用正则项,数值较大,这样Mw值才能大,满足我们的假设。

训练一定时间之后,渐渐的M开始稳定,适合大多数例子,那么L2距离将接近0。此时,权重模型开始由 L W ( L M W ( x ^ ) ) L_{W}\left(\mathrm{LM}_{W}(\hat{x})\right) LW(LMW(x^))​主导,由 L W ( L M W ( x ^ ) ) L_{W}\left(\mathrm{LM}_{W}(\hat{x})\right) LW(LMW(x^))​主导的加权模型Mw开始和M共同参与训练,真正进入优化阶段。当我们更新𝑀时,梯度不会通过L2距离项传播(L2距离变成了标量)。从根本上说,当 L W ( L M W ( x ^ ) ) L_{W}\left(\mathrm{LM}_{W}(\hat{x})\right) LW(LMW(x^))​​​​项主导时,梯度才能有效传播出去,这一项才能学习优化

思想:先让整体运行起来 再优化局部;先宏观,再围观;先完成,后完美>

我们优化过滤模型和加权模型的目标是相关的,但与经典的“learning-to-learn”概念不完全相同,在这个概念中,元学习者学习如何初始化或更新learner或目标模型。在我们的设置中,策略模型policy model是 meta-learner,其meta-objective是最小化验证损失。我们不是学习更新目标模型的参数,而是学习如何通过选择和加权增强的数据【selecting and weighting the augmented data】来更好地准备目标模型的输入【 how to better prepare the target model’s input】。使用接下来描述的元训练算法【meta-training algorithm】,我们共同优化策略和目标【policy and the target】模型(即元学习者和学习者【the meta-learner and the learner】),这样目标模型通过衡量训练损失而不断改进,同时策略模型学习通过验证损失来衡量如何更好地选择和加权的增强例子。

meta-learner:policy model=filtering model + weighting model

  • meta-objective:最小化验证损失,以学习如何通过选择和加权增强的数据

learner:target model

  • objective:最小化训练损失

4.2 元训练算法

算法2展示了Rotom如何同时【simultaneously】训练目标模型、滤波模型和加权模型。

注意,形式上二者依次优化,实际上同时优化!

image-20220326221758075

训练以两阶段的方式进行,或者alternatively【二者择一地】更新目标模型,或者更新滤波/权重模型。我们注意到,这种算法模式在强化学习[16,32,63,70]和自动机器学习[28,48,50,52]中很常见。

image-20220326220051426

Strain是增强数据的集合!

target model的目的是啥?——我们要寻找的目标模型M,是要在通过增强数据集的训练具有良好表现的目标模型,而模型的表现通过验证集上的损失来衡量。

问题:哪些地方用到了预训练模型?

权重模型 𝑀 𝑊 𝑀_𝑊 MW

目标模型 M M M

第一阶段

image-20220326221832544

在第一阶段(第5-7行),我们应用过滤模型来组装训练批 𝐵 t r a i n 𝐵_{train} Btrain​【 the training batch 𝐵 t r a i n 𝐵_{train} Btrain​】。

刚开始时,此时的滤波模型和加权模型仅仅初始化,模型M的更新一定不稳定。

请注意,在实际操作中, 𝐵 t r a i n 𝐵_{train} Btrain可能太小,因为过于激进的过滤或者包含从同一个原始示例生成的多个序列(意思可能是如果这多个序列都没法通过过滤)。我们通过对训练集 𝑆 t r a i n 𝑆_{train} Strain进行适当的采样,并在删除一些增强的例子时重新填充batch来避免这种情况。然后我们用加权模型𝑀𝑊计算权重,并且根据公式1计算加权的训练损失【the weighted training loss】( L o s s t r a i n Loss_{train} Losstrain)然后反向传播损失以更新目标模型𝑀。我们用 ∇ 𝑀 ( L o s s ) ∇_𝑀(Loss) M(Loss)​​表示一个张量变量Loss相对于𝑀参数的梯度

第二阶段

image-20220326232752692

在第二阶段(第8-11行),我们通过使用梯度 ∇ 𝑀 L o s s t r a i n ∇_𝑀Loss_{train} MLosstrain​​更新𝑀,执行“虚拟”梯度下降步骤得到𝑀’。所以𝑀’是使用当前的过滤模型𝑀𝐹和加权模型𝑀𝑊更新的𝑀。注意,(在第8行中)我们重载了符号𝑀来表示𝑀的参数。𝑀F和𝑀𝑊的性能表现是通过验证Lossval来衡量的,因为如果我们用正确的数据【过滤模型得到的】和权重【加权模型得到的】来训练𝑀,我们可以直觉的地期望Lossval会快速下降。因此,我们通过更新Lossval相对于其参数的梯度来改进𝑀𝐹和𝑀𝑊(line 10-11)

Loss ⁡ v a l = ∑ ( x , y ) ∈ B v a l CE ⁡ ( y , p M ′ ( x ) ) \operatorname{Loss}_{\mathrm{val}}=\sum_{(x, y) \in B_{\mathrm{val}}} \operatorname{CE}\left(y, p_{M^{\prime}}(x)\right) Lossval=(x,y)BvalCE(y,pM(x))

Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval可以视为策略模型的损失函数,是因为只要策略模型↑的同时 Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval↓,那么它就可以作为损失函数。观察 Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval的计算公式,本质上是计算表示利用**增强数据训练起来的模型M’**,在验证集上面的损失,其最小说明利用增强数据训练起来的模型较好,即寻找到了比较理想的数据增强方案(即策略模型)

Lossval可以衡量𝑀F和𝑀𝑊的性能表现,因此可以作为过滤和加权模型的损失函数。

在训练集上衡量目标模型M,在验证集上衡量策略模型(过滤和加权模型)同时,通过 Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval来观察模型的测试能力,防止模型过拟合。当模型在训练集上的损失 L o s s t r a i n Loss_{train} Losstrain收敛时,停止训练。通过这样一个元学习的过程,我们学习到了一个关于如何做数据增强的过滤和增强模型,下次应用在其他我们真正关心的任务时,可以直接应用。这也是希望元学习达到的目的。

Gradient estimation

待解决:梯度估计----用强化学习解决的

主要的挑战来自于计算这两个梯度 ∇ M F (  Loss  v a l )  and  ∇ M W (  Loss  v a l ) \nabla_{M_{F}}\left(\text { Loss }_{\mathrm{val}}\right) \text { and } \nabla_{M_{W}}\left(\text { Loss }_{\mathrm{val}}\right) MF( Loss val) and MW( Loss val)

梯度 ∇ M F (  Loss  v a l ) \nabla_{M_{F}}\left(\text { Loss }_{\mathrm{val}}\right) MF( Loss val)不能通过直接的反向传播来计算,因为我们应用过滤模型的第5行是不可微的。相反,我们使用REINFORCE estimator[87]来估计 ∇ M F (  Loss  v a l ) \nabla_{M_{F}}\left(\text { Loss }_{\mathrm{val}}\right) MF( Loss val)​,这也通常用于基于策略的强化学习。在形式上,我们用

image-20220317223703644

其中, Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval被视为一个没有进行梯度计算的常数,而 prob ⁡ ( M F ( e ) = 1 ) \operatorname{prob}\left(M_{F}(e)=1\right) prob(MF(e)=1)是一个示例𝑒通过过滤器的概率(由𝑀𝐹计算)。我们总结了所有扩充例子的对数概率,得到了形成结果批【resulting batch】的对数概率。【 We sum up the log-probability of all the augmented examples to get the log-probability of forming the resulting batch.】注意,这里我们将确定性输出𝑀F(e)放松为从分布𝑝𝑀𝐹(𝑒)中抽取的一个随机变量,以更好地使用探索和利用[87]更好地优化𝑀F。这种估计方法的准确性较低,因为它忽略了大量的中间计算。然而,它只增加了最小的计算开销,因此它与我们保持过滤模型的小和高效的目标很一致。

计算 ∇ M W (  Loss  v a l ) \nabla_{M_{W}}\left(\text { Loss }_{\mathrm{val}}\right) MW( Loss val)是困难的,因为一个直接的反向传播需要计算一个二阶梯度(根据链规则)

其中, Loss ⁡ v a l \operatorname{Loss}_{\mathrm{val}} Lossval是𝑀’参数的函数, Loss ⁡ t r a i n \operatorname{Loss}_{\mathrm{train}} Losstrain是𝑀𝑊和𝑀参数的函数。这个梯度的完整计算可能需要时间𝑂(|𝑀|·|𝑀𝑊|),这是不实际的。相反,我们遵循[23,52],使用有限差分来近似二阶梯度。

在形式上,设𝜖是一个小的常数(例如,0.01)并且 M ± = M ± ϵ ∇ M ′ Loss ⁡ v a l M^{\pm}=M \pm \epsilon \nabla_{M^{\prime}} \operatorname{Loss}_{\mathrm{val}} M±=M±ϵMLossval,则 ∇ M W (  Loss  v a l ) \nabla_{M_{W}}\left(\text { Loss }_{\mathrm{val}}\right) MW( Loss val)可以估计为:

image-20220318094117707

其中, Loss ⁡ train  ( M ± , M W ) \operatorname{Loss}_{\text {train }}\left(M^{\pm}, M_{W}\right) Losstrain (M±,MW)表示用修正目标模型𝑀±和𝑀𝑊生成的相同增例权值计算得到的训练损失。这种梯度估计只需要一阶梯度,因此可以在𝑂(|𝑀|+|𝑀𝑊|)时间内通过3次前后通道有效地计算出来。我们对感兴趣的读者请参考[52]以了解更多的技术细节。

5 Rotom用于半监督学习

接下来,我们展示了Rotom的元学习框架可以很自然地扩展到半监督学习(SSL),以利用大量的未标记数据。为此,Rotom采用了一致性正则化【consistency regularization】,这是一种SSL技术,最近在计算机视觉和NLP任务[5,6,79,89]中获得了成功。

consistency here means that label’s output distribution for different noise/transformations or augmentations should be similar.

Consistency regularization

直观地说,一致性正则化通过利用未标记的数据,鼓励目标模型在一个未标记的例子的噪声变量【 noisy variants】之间做出一致的预测。例如,给定一个未贴标签的产品评论“有史以来最好的书”,在不知道它的情绪标签的情况下,我们期望目标模型预测其情绪与类似的评论“有史上最好的电影”的预测一致。

所谓的数据量不足,本质是带标签的数据量不足。未标记的数据量要远远大于标记数据量,因此如何利用这些数据,找到这些数据和标记数据之间的关系,就能将这些数据利用起来。

一致性正则化通过

(1)通过DA算符对原始未标记数据进行变换

(2) label sharpening【标签锐化】

consistency regularization可以概况为数据增强 + 标签锐化(本质上是guessed labels)

那么SSL是如何实现guessed labels的呢?

来实现这一效果。形式上,给定一组 𝑈 = { 𝑥 1 , … , 𝑥 𝑢 } 𝑈=\left \{ 𝑥_1,…,𝑥_𝑢 \right \} U={x1,,xu}的未标记序列,在原始有监督的训练损失【 the original supervised training loss】中添加以下形式的一致性正则【consistency regularizer】项:

原始有监督的训练损失应该指的是

image-20220322195824420

image-20220318100608469

这里

其中Loss是一个损失函数(例如,交叉熵), x ^ \hat{x} x^​​​是一个x的增强序列。(注意,这里一个 x x x对应一个 x ^ \hat{x} x^,主要也是因为未标记的例子太多了)sharpen(·)函数将当前模型的预测作为输入,并将其转换为一个接近one-hot的分布。在梯度反向传播过程中,sharpen(·)项被视为一个常数张量。

这个损失函数有什么意思?

上面表达式的损失函数,通过sharpen函数进行标签猜测。也是用户衡量和优化(在增强数据集上训练的)目标模型M的性能。与Losstrain原理一致,当目标模型 ↑ \uparrow ,势必会伴随着Loss ↓ \downarrow ,区别只是因为我们用的是未标记示例,label通过我们的假设得到。

sharpen函数有什么意义?

x ^ \hat{x} x^为什么会出现,不应该是Simply treat unlabeled data as augmented examples?(作者附加材料里面的PPT)

Loss的两项,第一项是guessed labels,第二项是在 x ^ \hat{x} x^上的预测概率分布

我们考虑了Rotom中的sharpen(·)函数的两个变体:

image-20220318110007114

第一个变量(Eq 6)在[5,6,89]中使用超参数𝑇,以控制输出与one-hot分布的距离(𝑇∈(0,1]越小,越近)

第二个变量(Eq 7)通常被称为伪标记【pseudo-labeling】[45,79],如果最大置信度高于阈值𝜃(对于𝜃>1/|𝑉|),则直接用标签 arg ⁡ max ⁡ ( p M ( x ) ) \arg \max \left(p_{M}(x)\right) argmax(pM(x))​分配𝑥。

第一个变体,用超参数控制,对输出的概率进行变性,可以理解为对向量进行变换。

第二个变体,设置一个阈值,一旦向量中某一项大于那个阈值,就可以决定输出的标签。

Rotom结合了由锐化的两个变体生成的猜测标签。

Rotom是如何结合的?

【Rotom combines guessed labels generated by both variants of sharpen】

与DA类似,一致性正则化的主要挑战是,并非所有未标记的例子对目标模型都有同样的帮助。

例如,猜测标签【guessed labels】  sharpen  ( p M ( x ) ) \text { sharpen }\left(p_{M}(x)\right)  sharpen (pM(x))可能是错误的,因为目标模型M还不稳定。增强的示例 𝑥 ^ \hat{𝑥} x^​可能也不保留该标签。这些正是我们的元学习框架派上用场的案例

因为Guess labels的计算要借助当前目标模型,当目标模型还不稳定的时候,所得到的Guess labels是错的。

Extending the meta-learning framework

原算法

image-20220327110917702

直观地说,Rotom通过对已标记和未标记数据应用加权模型𝑀W来合并未标记数据。

我们只需要将算法2修改如下:

  • 第5行:我们在training batch 𝐵train中添加一批batch未标记的例子𝐵unlabeled⊆𝑈,大小等于|𝐵train|;
  • 第6行:在计算每个示例的权重时,用猜测的标签【the guessed label】 sharpen ⁡ ( p M ( x ) ) \operatorname{sharpen}\left(p_{M}(x)\right) sharpen(pM(x))​​替换y

注意,通过为已标记和未标记数据应用加权模型,将两者共同用于优化目标模型!

怎么在未标记数据集U中区分 x x x x ^ \hat{x} x^呢:一个x对应一个 x ^ \hat{x} x^,为什么不直接将未标记数据作为增强数据呢?

请注意,我们没有对未标记的数据应用过滤模型,以避免标签不平衡。这是因为过滤模型可以从一个类中删除比其他类更多的未标记的示例(可能是因为该类有更少的标签),从而导致不太自信的类进一步不平衡。

怎么理解less confident class

可能是过滤模型学习特征,可能会学习数据类别的大小这样一条特征,总之就是过滤模型可能会过滤掉哪些less confident class

应用元学习框架的一个直接优点是,在训练过程的开始阶段,由于猜测guessed 的标签不那么准确,Rotom可为未标记的示例分配低权值,然后在模型训练时(即随着模型变得更准确)增加权重。在现有的SSL算法中,这通常是一种硬编码策略【 hard-coded strategy】,需要调优超参数(例如,在什么条件下模型应该开始使用未标记的数据),但现在这在Rotom中完全自动化。

上述这么做的意义何在?为什么刚开始要分配低权值?也是先以大局为重的思想。

但是,如何实现开始阶段分配低权值?应该是正则项刚开始特别小?
M W ( x , x ^ , y ) = s i g m o i d ( L W ( L M W ( x ^ ) ) ) + ∥ p M ( x ^ ) − sharpen ⁡ ( p M ( x ) ) ∥ 2 ( 2 ) M_W(x,\hat{x},y)=\mathrm{sigmoid}\left( L_W\left( \mathrm{LM}_W(\hat{x}) \right) \right) +\left\| p_M(\hat{x})-\operatorname{sharpen}\left(p_{M}(x)\right) \right\| _2\qquad (2) MW(x,x^,y)=sigmoid(LW(LMW(x^)))+pM(x^)sharpen(pM(x))2(2)
这是怎么在Rotom内实现完全自动化的?----Rotom中权重是学习出来的。

6 实验

接下来,我们给出了在实体匹配(EM)、错误检测(EDT)和文本分类(TextCLS)的基准数据集上的实验结果。我们的结果表明,Rotom有效地结合了简单的DA算子和InvDA算子,即使其中一些操作在独立应用时没有产生性能增益。有了这种优势,在低资源设置下,Rotom的F1分数超过最先进的(SOTA)EM系统最高达6%,平均F1分数超过SOTA错误检测系统7.64%。Rotom在TextCLS任务中也优于最近的两种NLP数据增强方法。

我们的训练时间分析表明,Rotom的元学习框架引入的LM微调基线开销比超参数空间小得多。

首尾呼应,Rotom在低资源环境下的性能优于SOTA的实体匹配和数据清理系统,以及两种最近提出的用于文本分类的DA技术。

6.1 Implementation and baselines

我们在PyTorch[65]和Transformers库[88]中实现了Rotom。我们在EM和EDT实验中使用了12层的RoBERTa[53]模型,并在TextCLS中使用了未封装【uncased】的DistilBERT[74]和BERT[19]模型。在所有实验中,我们将批处理大小设置为32,学习速率设置为3e-5,最大序列长度设置为128。在每次运行中,我们使用Adam优化器对LM(和Rotom的组件)进行微调,最多为40个epochs(如果提供更多的训练数据,则更少----额外意思是最终模型都收敛了),在验证集上选择最高accuracy/F1的检查点,并报告text accuracy/F1。

训练数据多,则训练轮次不需要那么多,就能学习到一个足够理想的效果。

在验证集上面选择检查点是用于干什么?

对于每个数据集,我们重复实验5次,并报告average accuracy/F1。我们评估和比较以下5种方法和相应小节中描述的特定任务基线【 task-specific baselines】:

Baseline (RoBERTa/DistilBERT/BERT)

这种基线方法在没有任何数据增强的情况下对PLM(预训练语言模型)进行微调。

MixDA

该方法应用于表3中列出的单个DA操作符。我们将DA操作符作为一个超参数进行调整,并选择一个通常适用于每种类型的任务(EM、EDT或TextCLS)的操作符。在每个epoch上,我们通过用算子对每个训练例子进行随机变换得到augmented set,并在 augmented set上进行微调LM。DA算子采用MixDA技术[58],该技术将一个增广示例的LM representation与原始示例进行插值,以“partially”应用该算子。该方法在包括EM[49,58]在内的多项任务中普遍有效。

MixDA技术具体是怎么实现的?

参考Snippext: Semi-supervised Opinion Mining with Augmented Data

InvDA

该方法增加了seq2seqDA操作符InvDA。为了更好地理解InvDA的效果,我们除了用InvDA替换DA操作员外,对MixDA遵循相同的训练程序。在没有超参数调优的情况下,我们通过对每个任务的未标记数据集进行微调T5[67]预训练模型(见第3节)来训练InvDA模型。对于TextCLS,由于任务之间的相似性,我们使用所有TextCLS任务中的未标记数据对单个InvDA模型进行了微调。我们使用𝑘=120对最可能的98%的标记上,进行top-k采样,从每个例子中生成最多50个独特的转换序列。我们在每个epoch随机选择一个作为增广序列。

Rotom

这是被提出的元学习框架,它选择和加权增强的示例,以更好地微调目标模型(见第4节)。加权模型使用与目标模型相同的LM架构。在我们的实验中,我们使用Rotom将原始的训练示例与InvDA和MixDA生成的增强示例相结合。

Rotom+SSL

最后,我们评估了Rotom的半监督变体,该变量选择和加权未标记数据来训练目标模型。对于每个数据集,Rotom+SSL最多使用100000个统一采样的未标记示例。我们注意到,如果我们提供更多的未标记数据,性能可能会进一步提高

6.2 Datasets

我们在EM、EDT和TextCLS的标准基准数据集上评估了上述系统。我们在表6和表7中列出了这些数据集。

表6:EM和EDT数据集。对于每个EM数据集,我们创建一个大小从300到750的训练/验证集样本(即从原始训练/验证集中抽样),并使用原始测试集进行评估。每个标记有“∗”的EM数据集也有一个更具挑战性的脏版本。对于EDT数据集,我们将训练集的大小从50个改变到200个单元格(没有验证集)。每个测试集由20个均匀采样的元组组成。

image-20220320102858160

EM数据集
image-20220322220253216

EM数据集在文献中被广泛应用[49,61],每个数据集由来自不同网站的带标记的产品或发布记录对【pairs of product or publication records】组成。其目标是对一对记录是否代表相同的产品/出版【whether a pair of records represent the same product/publication】进行分类。对于每个数据集,我们从原始训练【train】+验证【valid】集中统一采样为训练集,并将样本量从300变化到750。 我们也使用它来评估每种方法对数据噪声的鲁棒性,如错位的属性。为了节省标签预算,我们不创建一个新的验证集,而只是使用训练集进行验证。我们用F1分数来衡量模型的表现。

EDT数据集
image-20220322220327596

EDT数据集来自[55]。每个数据集都由一个肮脏的电子表格组成,其目标是对单元格是否包含错误进行分类。对于每个电子表格,我们保留了20个随机抽样的行(多达400个单元格)以进行评估evaluation(即测试集,size为20tpl)。为了训练Rotom和基线方法,我们构建了一个大小从50到200个单元的训练集,具有相同数量的干净和脏单元(以避免标签不平衡)。请注意,由于样本量小,我们不分配标记预算【allocate labeling budget】来创建验证集,而只是使用训练集来进行验证。我们使用与上下文无关的序列化(见第2节),因为它在这些数据集上获得了更好的结果。我们通过EDT任务的F1分数来衡量其表现。

所谓的与上下文无关的序列化,指的是将单元格序列化;而与上下文相关的序列化,指的是将整个行序列化为“上下文”,并附加到感兴趣的单元格的末端(由“[SEP]”分隔)。

数据量小,只是我们训练所用到的数据量小。但为什么拿不出验证集呢?

TextCLS数据集

对于TextCLS,我们使用了8个标准的NLP基准数据集。这些数据集用于不同的目的,包括情绪分析sentiment analysis和意图分类

intent classification.。我们将训练和验证集的大小(均匀采样)从100变化到500,以测试标签效率(因此标签预算从200到1k)。

我们通过分类精度【 classification accuracy】来衡量性能。

表7:TextCLS数据集。对于每个数据集,我们分别地统一地采样大小分别为100、300和500一个训练集和一个的验证集。对于前3个大型数据集,我们抽样了一个大小为1000的测试集,以进行更有效的评估。对于其他的,我们将使用原始的测试集。(没其他意思,前三个实在是太大型了,因此我们需要sample)

image-20220320102955107

对于一个数据集的每个样本,我们将剩余的训练示例视为在Rotom+SSL中未标记的半监督学习。(进而评估元学习框架在SSL拓展的效果)

6.3 关于实体匹配的主要结果

We compare our methods with the RoBERTa baseline,MixDA, and the following two EM solutions:

(1)DeepMatcher (DM) [61]

DM是一种经典的深度学习EM方法,有许多后续工作的[24,34,38,49,62,91,95]。DM训练的是一个由RNN层和注意机制组成的混合神经网络。DM在多个EM任务中取得了良好的结果,但需要大量的(∼10k)训练数据。报告的数字直接来自[61],[61]是DM在完整数据集【full datasets】上进行训练时的F1分数。为了公平的比较,我们还考虑了DM的一个变体,它的RNN和word embedding层被一个RoBERTa编码器取代。我们将这个变体表示为DM+RoBERTa。

(2)Brunner et al. [9] for EM

在[9]中,Brunner等人提出了一种基于LMs的深度EM解决方案,包括BERT和RoBERTa。模型体系结构类似于同上Ditto,但使用不同的方法将实体记录序列化为LM的输入格式。为了进行一个公平的比较,我们考虑了RoBERTa的变体作为他们的方法

表8显示了使用最多750个训练/验证例子的每种方法的F1分数。

image-20220329005605889

表8:在5个EM数据集上,最多有750个训练+验证示例的数据集的F1得分。数据集的名称被缩短为“AbtBuy”→“A-B”等。当模型在完整的数据集上进行训练时,深度匹配器【DeepMatcher】的数字取自[61]

与在full datasets上训练的DM相比,Rotom+SSL仅使用6.5%的标签就实现了平均F1值要高出1.9%(80.4vs.78.5)。

80.4 = (80.53+60.38+96.61+92.08+72.52)/5

78.5 = (62.8+69.3+98.4+94.7+67.6)/5

6.5% = (750*5)/(9167+9890+22965+8193+7659)

这一结果表明,在创建高质量的EM解决方案时,可以显著地节省标签工作。与RoBERTa基线相比,常规DA(MixDA)和InvDA都有效地提高了模型的性能。(说明有数据增强比没有数据增强好)InvDA对A-B和W-A数据集有显著影响,将基线性能提高了3%以上。结果还表明,Rotom+SSL有效地结合了常规DA、InvDA和未标记数据,因为Rotom+SSL在7/8 (2/16)情况【cases】 中比MixDA和InvDA做得好,最高多出6.04%(W-A)。半监督学习对EM有很大的影响,因为Rotom+SSL在7/8的情况下始终优于Rotom。

7/8 case指的是什么?指的的考虑数据集的所有情况,包括后三种的dirty版本,总共8种情况。

其他两种基线方法,DM+RoBERTa和Brunner等人[9],与RoBERTa没有显著的总体差异(平均F1差异<0.4)。这个微小的差异证明了选择RoBERTa作为EM的Rotom的基本版本。(怎么证明? justifies:对…作出解释)在所有三个带有脏版本的数据集中,通过比较干净/脏的F1分数,我们没有观察到明显的变化,而且与基线方法相比,Rotom可以在W-A上实现一个显著的改进。这一结果证实了Rotom在对抗数据噪声方面,与基线一样具有鲁棒性。

6.4 关于数据清洗的主要结果

我们将我们的方法与Raha[55]和RoBERTa基线进行误差检测【error detection 】比较。Raha是一种基于集成学习的SOTA错误检测系统。Raha通过对clean/dirty元组的交互标记实现了较高的标签效率(label efficiency其实就是低资源设置下的模型表现能力),而Raha集成了多个错误检测模型。根据[55]的说法,Raha只标记了20个元组就获得了很高的F1分数。我们在实验中使用了Raha的开源版本。(不管什么数据集,都是用20个元组)

表9显示了在使用不超过200个标记细胞时,Rotom和Rotom+SSL的性能。与SOTA错误检测系统Raha相比,Rotom+SSL在4/5的数据集上表现出色,平均值高出7.64%,同时使用的标记单元数量也非常少。

image-20220329005632761

表9:5个错误检测任务的F1得分。我们报告了Raha w.20 labeled tuples的结果和Rotom(及其基线)w. at most 200 labeled cells (<20 tuples, Table 6)的结果

例如,在tax数据集上,Rotom通过200个单元格获得了一个完美的F1分数(比Raha高出9%),这只是提供给Raha的标签的2/3。

在Table6中,tax数据集,20tpl==300cell,因此,200个cell即为2/3*20tpl,即只用了Raha所用标签的2/3

注意,Raha的20个tpl,是针对不同的数据集的tpl。

hospital的数据集也处于同样的情况下,只有1/2的Raha标记细胞。我们还发现InvDA比简单的DA操作符(即MixDA)(平均>10%)更有效。这是因为简单的转换,如单词删除或变换,很可能会破坏原本干净的单元格。InvDA生成了更有可能保留标签【label-preserving】的增强示例。回想一下,Rotom接受了由简单DA(dirty)和InvDA(clean)生成的增强示例。有趣的是,整体F1仍然显著提高(by >3%)。

improves by 表示了提高的幅度

注意:这里幅度大于3%是和单独使用InvdA时比较,这是比较有趣的地方,增加了一个负面效果的方法,结果反而会更好。这是因为有选择性的增强,即元学习的功劳。

类似地,我们观察到Rotom在多个数据集上使用不同的标记预算,持续地提高了InvDA的性能(图3)。这一结果表明,元学习框架可以选择正确的训练例子来增强DA的有效性。

image-20220329005657528

图3:改变EM(上)和EDT(下)任务上的标签预算。与基线相比,Rotom+SSL或Rotom在不同的标签预算的大多数情况下实现了整体最好的性能。

6.5 关于文本分类的主要结果

这部分介绍了在两种实验环境下的对比实验。

image-20220321092657418

表10:Rotom在8个TextCLS数据集上的准确性

表10显示了Rotom在TextCLS数据集上的结果。当标签预算较小时,Rotom和Rotom+SSL有显著的改善。当training/validation集大小为100时,Rotom的性能始终优于DistilBERT基线平均F1成绩超过8.59%,最高超过20%(在TREC数据集上)。请注意,MixDA在TextCLS任务中比InvDA更有效,这意味着增加增强示例的多样性一般没有帮助。MixDA对14/24的设置有积极的影响,而InvDA仅对11/24的设置有积极的影响。尽管如此,Rotom仍然可以结合它们来实现更好的整体性能,从而实现20/24个改进的结果。

这里提到的Rotom指的是Rotom+SSL

“MixDA在TextCLS任务中比InvDA更有效”是可解释的吗?

我们在表11中比较了Rotom与BERT基线和两种SOTA数据增强技术的结果,Hu等人[32]和Kumar等人[44]。这两种方法在低标签预算下都表现良好。Hu等人[32],通过强化学习训练DA操作员和加权策略。Kumar等人利用GPT-2、BERT或BART等LM来生成扩增序列。请注意,这些数字与表10不同,因为我们改变了实验设置,以遵循[32]和[44]中的精确设置:

对比实验要注意控制变量

(1)Hu等人每个类抽样40个训练示例

(2)Kumar等人统一抽样1%的训练集

这两种方法都为每个类抽取5个示例以进行验证。IMDB是另一个我们从主要结果中排除的二进制情绪分类数据集。

IMDB所包含的序列比最大长度128要长得多,这就解释了表11中总体精度较低的原因。

最大长度128是啥意思?

这两种方法在技术上与Rotom很接近,因为

(1)Hu等人通过强化学习来分别学习DA算子和加权策略

(2)Kumar等人通过条件生成【conditional generation】对LM进行微调,从而生成增强示例。

image-20220321101007349

表11:Rotom与Hu et. al 19[32]和Kumar et al. 20分类精度比较,20.[44]。我们用绿色/红色强调了与BERT基线的差异。

在这6个案例中,Rotom在5/6的设置下的绝对精度上优于这两种方法,并且最高达25%(vs. Kumar et al. on TREC)。此外,在4/6例中,关于BERT基线,Rotom实现了更高的相对改善(relative的意思是相对于Hu和Kumar两人)。

注意,比较绝对精度【absolute accuracy】,即只看accuracy;而relative improvement则是看与BERT的差异。

性能差异可以解释为:

  • 与Hu等人相比,Rotom使用的InvDA可以生成不同的增强例子,而Hu等人学习到的DA操作符最多修改1个标记。
  • 与Kumar等人相比,Rotom还对生成LM中潜在噪声增强样本进行滤波/加权。

6.6 Training time

与其他基于强化学习的DA解决方案不同,可能需要数十到数千个GPU小时来训练[16,28,51],Rotom可以在几分钟内进行训练。

强化学习的DA解决方案有哪些

图4显示了Rotom与baseline LM fine-tuning和MixDA相比的训练时间。

image-20220323135457427

图4:Rotom对每个领域的训练时间(EM、EDT和TextCLS)。每个点都是一个域的所有数据集的平均值。最长的训练时间为18.36分钟(EMw.750个示例 1100s~18.3min)。Rotom平均需要5.6倍的InvDA/MixDA的训练时间。

InvDA的训练时间与MixDA重叠,因为我们预先计算并缓存由Ineq2seq模型生成的序列。

InvDA的训练和MixDA的训练到底是啥关系?

Rotom在所有情况下都可以接受<20分钟的训练。与基线DA方法相比,开销平均只有5.6倍,最高达9.8倍。这比DA运算符的搜索空间要小得多。例如,在表3中枚举2个token-/span-level操作符的所有组合会产生22倍的开销。

这种搜索空间是指的哪部分的开销?

22x是怎么计算得到的???

image-20220323140531588

此外,我们观察到Rotom+SSL不会给Rotom增加显著的开销,因为差异在Rotom训练时间的30%以内。

7 相关工作

Entity matching (EM)

在过去的20年中,EM在数据管理、数据挖掘和NLP社区中被广泛研究 [25,37] 。EM [37] 中的一个关键挑战是成对匹配问题,该问题确定给定的数据条目对是否指向相同的真实实体。许多配对匹配方法将问题视为二分类问题,并使用机器学习模型解决该问题,例如决策树 [81] 、SVM [11] 和CRF [56] 。最近的解决方案 [9、18、34、49、61、95] 采用更高级的机器学习模型,特别是深度学习模型 [34、61] 和预先训练的模型 [9、49、95],以进一步改进性能。由于训练高度准确的分类模型通常需要大量标记的示例,因此人们还研究了主动学习以降低人的标注成本 [3、4、18、57、75] 。

Error detection (EDT)

EDT 专注于识别数据集中的错误值,它是数据清理过程的第一步 [13]。 定性数据清理 [1, 7, 36, 71] 采用规则或完整性约束来检测错误数据。 另一方面,定量数据清洗 [30, 39] 或异常值检测(也叫离群值检测)侧重于进行统计分析以识别显示异常分布的数据值。 与 EM 一样,使用机器学习模型识别错误值的新趋势已经出现。

  • ActiveClean [40] 通过交互地从用户那里收集新标签来动态训练数据清洗模型;

  • Raha [55] 试图通过使用优化的代表性值选择/采样技术【representative value selection/sampling technique】来改进训练过程;

  • HoloDetect [29] 通过复杂的task-specific的数据增强算法丰富了训练数据集。

同样,这些基于机器学习的技术也采用各种优化来最小化训练数据量。


在减少人工注释工作的同时利用机器学习也激发了 Rotom。 与现有的基于 ML 的 EM 和 EDT 解决方案专注于单个下游任务不同,Rotom 是一个通用框架,适用于一系列数据管理和挖掘任务,这些任务可以表示为序列分类。

现有ML不是也基于预训练,是一种通用框架吗?

Data augmentation(DA)

数据增强 (DA) 最近在跨领域的机器学习问题上受到越来越多的关注 [16、29、41、44、86] 。通常用于文本数据的通用简单DA运算符包括word replacement【字替换】 [21、35、86、94] 、word insertion/deletion/swapping【字插入/删除/交换 】[86] 和back translation【反向翻译】 [90] 。简单DA运算符的一个主要缺陷是生成的示例缺乏多样性。这是因为这样的操作算子只能对现有的训练示例执行少量的局部local转换。为了克服这一限制,最近的工作(2,44)开始使用文本生成模型(也称为seq2seq模型)来生成以给定标签为条件的更多样化的示例。然而,这种基于生成(generation-based)的DA可能会过度多样化所增加的示例,并且当训练集太小时,尤其是当类标签的词汇表大时(especially when the vocabulary of class labels is large),它们很难训练。

指的是上述条件下,seq2seq模型很难训练,毕竟样本少,而且又由于vocabulary 太大,导致不容易学习。

别人的Seqseq模型都是怎么做的?

Rotom通过引入一个新的DA运算符InvDA进一步丰富了DA家族。InvDA学会了以自监督的方式来扩充现有的示例,因此它可以大大减少过度多样化的示例,并且受到原始训练数据大小的松散限制。

这句话什么意思?

Automatic data augmentation and meta-learning

已经有关于自动化【发现有效DA policies】的过程的研究。 这些技术将 DA 定义为不同优化目标的学习任务,并用不同的搜索策略解决它们(goals)。【These techniques formulate DA as a learning task of different optimization goals and solve them with different search strategies】

这句话如何理解?

最流行的优化目标是最小化验证损失(minimize the validation loss) [16、17、32、48、50、52、63]。 其他目标包括最大化增强/未增强数据分布之间的相似性 [28, 51] 和定制的生成对抗目标 (customized generative adversarial objective)[70]。

给定一个目标,为了优化模型架构,现有的搜索技术通常使用贝叶斯优化 [51]、强化学习 [16、32、63、70] 和元学习 [28、48、50、52]。

注意,使用这些方法来优化模型架构,而非优化模型本身。

在这些方法中,基于元学习的搜索技术表现出了更好的效率,因为它们使用了通过微分搜索空间来实现的梯度下降

They use gradient descent by differentiating the search space.【他们通过区分搜索空间来使用梯度下降。】

这能说明什么?

在本文中,Rotom 采用最流行的优化目标(最小化验证损失)和更有效的基于元学习的搜索技术来选择和组合增强的示例。

最流行的优化目标:minimizing the validation loss

最有效(优化模型架构)的搜索技术: meta-learning-based searching technique

Training data collection in the DB community

为了满足更多training examples的需求,DB社区开发了一系列关于数据收集的工作,包括data programming [69,82],crowdsourcing [26,64],dataset discovery [22,27],以及integrating data from multiple sources [72]。最近,在数据集具有多个表的设置下,研究人员研究了联接表是否可以提高训练模型的性能 [10,43,78]。尽管有时也被称为数据增强 [10],但这些技术旨在为每个训练示例添加有效的特征,这与Rotom添加更有效的训练示例的目标正交。

To Join or Not to Join? Thinking Twice about Joins before Feature Selection

【these techniques aim at adding effective features to each training example which is orthogonal to Rotom’s goal of adding more effective training examples】

即DB社区所做的事情是通过联机表来提高模型训练性能,也就是横向数据增强。而Rotom所做的是纵向数据增强。

这些技术可以潜在地与Rotom一起应用,以实现更好的性能。

8 总结

我们介绍了 Rotom,一种用于数据管理和挖掘任务的元学习数据增强框架。

Rotom 首先利用了多种数据增强技术,包括创新的基于 seq2seq 的算子 InvDA。

接下来,Rotom 采用元学习框架与目标模型一起训练选择和加权增强示例的策略,从而解决数据增强中多样性和质量之间的权衡。

【Next, Rotom adopts a meta-learning framework to train policies for selecting and weighting augmented examples jointly with the target model, thus it addresses the trade off between diversity and quality in data augmentation】

Rotom 是meta-learner

target model是learner

我们的结果表明,Rotom 的多功能性使其能够有效地结合简单的 DA 算子和 InvDA 的增强示例以及未标记的示例,同时对这些示例进行单独训练并不能提高模型的性能; 因此,它在标记数据有限的所有三个任务上都优于以前的方法。

在EDT任务时,简单DA算子(MixDA)没有优于Raha,InvDA 优于Raha,而结合二者之后,Rotom的效果优于InvDA

Rotom与基于约束[14,68]、人工输入[15,40]或机器学习模型[20,29,55]开发的训练数据调试/清理技术的研究路线密切相关。

过滤和重新加权噪声训练示例的想法将直接适用。

此外,不必依赖静态规则或ML模型来单独清理训练数据,我们可以应用Rotom的原理,即与目标模型联合训练cleaning operators。我们相信这是设计一种新的数据清洗管道的一个有希望的方向,这种管道对用户友好,并且对下游ML任务有效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江鸟1998

你的支持是我更新的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值