0
点赞
收藏
分享

微信扫一扫

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

佳简诚锄 2022-04-29 阅读 46

摘要

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

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 有效地选择并组合了每个算子的高质量部分,以更好地训练目标模型。(通过组合示例,而不直接组合算子的方式)

Contributions

本文的贡献如下。

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

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

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

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

  • 我们展示了 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) 。我们还总结了基本的数据增强算子,它们生成额外的训练数据以优化微调基线。

2.1 Problem definition

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

image-20220329005910572

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

image-20220329005920471

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

实体匹配(EM)

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

形式上,假设每个数据条目𝑒由一组键-值对 { ( 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更擅长于可序列化为文本和中等长度的序列(例如,数百个标记)

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】

(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]的输入特征提供给特定任务的层。

2.3 Simple data augmentation operators

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

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

数据增强对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操作符,这可能会导致次优性能。

3 seq2seq数据增强

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

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

3.1 Seq2seq model

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

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

3.2 Inverse data augmentation

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

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

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

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

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

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

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

此外,我们还可以通过破坏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】与输入序列任意不同。

语义保留的(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】的分布。

我们在表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],因为它的规模相对较小,并且可以适用于多个任务,包括机器翻译、总结和问题回答。

对于其他基于序列生成的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将术语“关系数据库”重写为“数据库”、“数据库系统”和“开源数据库”等有意义的术语。

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

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

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

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

形式上,对于一个语言模型𝑀和一组训练数据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

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

与元学习的联系

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

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

对于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】来确定所选例子的重要性。

定义 4.1 过滤和加权

image-20220326230420489

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

注意,原则上,只能保留权重模型 𝑀 𝑊 𝑀_𝑊 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)

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

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

加权模型

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

image-20220326205627684

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

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

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

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

image-20220326201515568

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

有一个特殊的添加项 ∥ 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距离变成了标量)。

我们优化过滤模型和加权模型的目标是相关的,但与经典的“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】),这样目标模型通过衡量训练损失而不断改进,同时策略模型学习通过验证损失来衡量如何更好地选择和加权的增强例子。

4.2 元训练算法

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

image-20220326221758075

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

image-20220326220051426

第一阶段

image-20220326221832544

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

请注意,在实际操作中, 𝐵 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)

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 regularization

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

一致性正则化通过

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

(2) label sharpening【标签锐化】

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

image-20220318100608469

这里

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

我们考虑了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 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^​可能也不保留该标签。这些正是我们的元学习框架派上用场的案例

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

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

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

6 实验

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

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

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]在内的多项任务中普遍有效。

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分数来衡量其表现。

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)。

这一结果表明,在创建高质量的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。

其他两种基线方法,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。

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

类似地,我们观察到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个改进的结果。

我们在表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是另一个我们从主要结果中排除的二进制情绪分类数据集。

这两种方法在技术上与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两人)。

性能差异可以解释为:

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

6.6 Training time

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

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

image-20220323135457427

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

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

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 是一个通用框架,适用于一系列数据管理和挖掘任务,这些任务可以表示为序列分类。

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),它们很难训练。

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]。

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

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

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添加更有效的训练示例的目标正交。

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

这些技术可以潜在地与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 的多功能性使其能够有效地结合简单的 DA 算子和 InvDA 的增强示例以及未标记的示例,同时对这些示例进行单独训练并不能提高模型的性能; 因此,它在标记数据有限的所有三个任务上都优于以前的方法。

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

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

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

举报

相关推荐

0 条评论