论文-CLINE: Contrastive Learning with Semantic Negative Examples for Natural Language Understanding

论文地址:https://arxiv.org/pdf/2107.00440.pdf

代码地址:https://github.com/kandorm/CLINE

 

0.摘要

  尽管经过预训练的语言模型已被证明对学习高质量的语义表示非常有用,但这些模型仍然容易受到简单扰动的影响。近年来,为了提高预训练模型的稳健性,人们的研究主要集中在对语义相似的扰动样本进行对抗性训练,而忽略了对不同甚至相反语义的利用。与图像处理领域不同,文本是离散的,很少的单词替换会导致显著的语义变化。为了研究小扰动对语义的影响,我们进行了一系列初步实验,意外地发现对抗性训练对模型检测这些语义变化是无用的,甚至是有害的。为了解决这个问题,我们提出了语义否定例句对比学习(CLINE),它在无监督的情况下构造语义否定例句,以提高语义对抗攻击下的鲁棒性。通过比较相似和相反的语义示例,该模型可以有效地感知小扰动引起的语义变化。实证结果表明,我们的方法在情绪分析、推理和阅读理解任务方面取得了显著的改进。CLINE还保证了同一语义内的紧凑性和不同语义在句子层面上的可分性。

 

 

1.引言

  诸如BERT(Devlin et al.,2019)和RoBERTa(Liu et al.,2019)等预训练语言模型(PLM)已被证明是改进各种自然语言处理任务的有效方法。然而,最近的研究表明,PLM在遇到对抗性示例时鲁棒性较差(Jin等人,2020年;Li等人,2020年;Garg and Ramakrishnan,2020年;Zang等人,2020年;Lin等人,2020a)。如表1所示,BERT模型很容易被愚弄,只需最后用一个类似的单词替换。

  表1:电影评论中情绪分析的一个对抗性例子。预测结果来自BERT(12层的基础版本)

 

 

  为了提高PLMs的稳健性,最近的研究尝试在PLMs上采用对抗性训练,在训练期间对单词嵌入应用基于梯度的扰动(Miyato等人,2017年;Zhu等人,2020年;Jiang等人,2020年),或在训练阶段添加高质量的对抗性文本示例(Wang和Bansal,2018年;Michel等人,2019年)。这些对抗性方法的主要目标是在输入有微小变化时保持标签不变。这些模型通过构造高质量的扰动例子和采用对抗机制,产生了很好的性能。然而,由于自然语言的离散性,在许多情况下,微小的扰动会导致句子语义的显著变化。如表1所示,只需改变一个词,负面情绪就可以转化为正面情绪,但模型无法识别这种变化。最近的一些作品创建了对比集(Kaushik et al.,2020;Gardner et al.,2020),这些对比集以小而有意义的方式手动扰动测试实例,从而改变黄金标签。本文将语义没有变化的扰动示例表示为对抗性示例adversarial examples,将语义发生变化的扰动示例表示为对比性示例contrastive examples,提高PLMs鲁棒性的方法大多集中在前一类示例上,很少有研究关注语义否定示例。

  这种现象让我们想知道,我们能否通过使用对抗性和对比性示例来训练一个既能抵御对抗性攻击又对语义变化敏感的BERT。为了回答这个问题,我们需要评估当前的健壮模型是否同时对语义敏感。我们进行了一系列中试实验(第2节),在对比示例上比较vanilla PLM和经过对抗训练的PLM的性能。我们观察到,在提高PLM对抗示例的鲁棒性的同时,对比示例的性能下降。

  为了训练一个强大的语义感知PLM,我们提出了语义否定范例对比学习(CLINE)。CLINE是一种简单而有效的方法,可以生成对抗性和对比性示例,并从两者中进行对比学习。对比方式在学习句子表征方面显示出了有效性(Luo等人,2020年;Wu等人,2020年;Gao等人,2021年),但这些研究忽略了负面实例的产生。在CLINE中,我们使用外部语义知识,即WordNet(Miller,1995),通过无监督替换少数特定的代表性标记来生成对抗性和对比性示例。该方法通过替换token detection和contrastive objectives,收集语义相似的句子,分散语义不同甚至相反的句子,同时提高了PLMs的鲁棒性和语义敏感性。我们在几个广泛使用的文本分类基准上进行了大量实验,以验证CLINE的有效性。更具体地说,与RoBERTa模型相比,我们的模型在4个对比测试集上实现了1.6%的绝对改善,在4个对抗测试集上实现了0.5%的绝对改善(Liu等人,2019年)。也就是说,通过对提出目标的培训,CLINE同时获得了对抗性攻击的鲁棒性和语义变化的敏感性。

 

 

2.Pilot Experiment and Analysis

  为了研究对抗训练方法在对抗集和对比集上的表现,我们首先在本节中进行了初步实验和详细分析。

2.1模型和数据集

  有相当多的研究构建了对抗性示例来攻击大规模预先训练的语言模型,其中我们选择了一种流行的方法textwooler(Jin等人,2020)作为构建对抗性示例的词级对抗性攻击模型。最近,许多研究人员创建了对比集,以更准确地评估模型的真实语言能力(Kaushik et al.,2020;Gardner et al.,2020)。基于这些方法,在我们的试点实验和分析中,选择以下数据集构建对抗性和对比性示例:

  ①IMDB(Maas等人,2011)是一个情绪分析数据集,其任务是预测电影评论的情绪(积极或消极)。

  ②SNLI(Bowman et al.,2015)是一个自然语言推理数据集,用于判断两个句子之间的关系:第二个句子是否可以从与第一个句子的蕴涵、矛盾或中性关系中派生出来。

  为了提高语言模型的通用性和鲁棒性,人们提出了许多对抗性训练方法,以最小化保留标签的输入扰动的最大风险,我们选择了一种对抗性训练方法FreeLB(Zhu等人,2020)进行试点实验。我们评估了vanilla BERT(Devlin等人,2019年)和RoBERTa(Liu等人,2019年)以及FreeLB版本的对抗集和对比集。

 

2.2结果分析

  表2显示了对抗测试集和对比测试集上不同模型的详细比较。从结果中,我们可以观察到,与普通版本相比,对抗式训练方法FreeLB在对抗集上获得了更高的准确性,但在对比集上,尤其是在BERT上,表现出了相当大的下降。结果与第一节的直觉一致,也表明对抗性训练不适合对比集,甚至会带来负面影响。直观地说,对抗性训练倾向于保持标签不变,而对比性训练倾向于进行微小但改变标签的修改。对抗性训练和对比示例似乎构成了一个自然的矛盾,表明需要在训练阶段应用额外的策略来检测语义的细粒度变化。我们在第2.3节中提供了一个案例研究,进一步说明了这种差异。

 

 

 

2.3案例研究

  为了进一步理解为什么对抗性训练方法在对比集上失败,我们对IMDB进行了深入的案例研究。我们在这里选择的例子是由BERT的普通版本预测正确,但由FreeLB版本预测错误。对于表3中的例子,我们可以观察到句子中有许多部分表达积极情绪(红色部分),少数部分表达消极情绪(蓝色部分)。总的来说,这个案例表达了负面情绪,而文本可以准确地捕捉到整个文档的负面情绪。然而,BERT的FreeLB版本可能会将负面情绪的特征作为噪声,并将整个文档作为正面情绪进行预测。这一结果表明,经过对抗训练的BERT可能会以与传统对抗训练相反的方式被愚弄。从这个案例研究中,我们可以观察到,对抗性训练方法可能不适用于这些语义变化的对抗性示例,并且据我们所知,没有针对这种对抗性攻击的防御方法。因此,探索合适的方法从语义否定的例子中学习变化的语义是至关重要的。

 

 

 

 

3.方法

  如第2节中的观察所述,我们探讨了可以提高PLM敏感性的策略。在本节中,我们将介绍CLINE,这是一种生成对抗性和对比性示例并从中学习的简单有效的方法。我们从第3.1节中生成的对抗性和对比性示例开始,然后在第3.2节中介绍CLINE的学习目标。

3.1示例生成

  我们希望通过对比语义相同和不同的句子,我们的模型可以对语义变化更加敏感。为了做到这一点,我们采用了对比学习的思想,其目的是通过聚拢积极对和分离消极对来学习表征。因此,有必要定义适当的正负对。本文将语义相同的句子视为正对,语义相反的句子视为负对。一些作品(Alzantot等人,2018年;Tan等人,2020年;Wu等人,2020年)试图利用数据扩充(如同义词替换、回译等)来生成正面实例,但很少有作品关注负面实例。对于文本示例,很难获得相反的语义实例。

  直觉上,当我们用反义词替换句子中的代表词时,句子的语义很容易与原句子无关甚至相反。如图1所示,假设蝙蝠侠是一个虚构的超级英雄,我们可以用它的反义词现实生活来代替虚构的,然后我们得到一个反事实的句子蝙蝠侠是一个真实的超级英雄。后者与前者相矛盾,并与之形成一对负的关系。

 

 

  我们从原始的输入序列xori生成两个句子,它们表达了实质上不同的语义,但几乎没有不同的单词。其中一个句子在语义上接近xori(表示为xsyn),而另一个则远离xori,甚至与xori相反(表示为xant)。具体来说,我们利用spaCy(https://github.com/explosion/spaCy)对原始句子进行切分和词性分析,提取动词、名词、形容词和副词。xsyn是通过用同义词、超动词和词形变化替换提取的单词生成的,xant是通过用反义词和随机单词替换它们生成的。对于xsyn,大约40%的token被替换。对于xant,大约20%的token被替换。

 

3.2训练目标

  CLINE训练一个神经文本编码器(即deep transformer),由φ参数化的Eφ,它映射一个输入token序列x=[x1, ..., xT ]到一个表示序列h =[h1, .., hT ],d是维度

 

 

①Masked Language Modeling Objective

  使用特殊符号mask随机遮掩token,输入序列部分损坏。根据BERT(Devlin et al.,2019),我们采用了掩码语言模型目标(表示为),该模型通过预测[mask] token来重建序列。 

②Replaced Token Detection Objective

  在xsyn和xant的基础上,我们对生成的两个序列采用额外的分类器C,并通过使用sigmoid输出层进行二分类来检测哪些令牌被替换:

 

 

  损失定义为:

 

 

 

  当token xt损坏时δt=1,否则δt=0

③Contrastive Objective(为了提高xsyn和xant的生成质量而提出的)

  CLINE的直觉是准确地预测当原始句子被修改时,语义是否发生了变化。换句话说,在特征空间中,hori和hsyn之间的度量应该很接近,hori和hant之间的度量应该很远。因此,我们发展了一个对比目标,其中(xori,xsyn)被认为是一个正对,而(xori,xant)是负的。我们用hc来表示特殊符号[CLS]的嵌入。在CLINE的训练中,我们遵循RoBERTa(Liu等人,2019)的设置,省略下一个句子预测(NSP)目标,因为之前的研究表明,NSP目标会损害下游任务的表现(Liu等人,2019;Joshi等人,2020)。或者,采用[CLS]的嵌入作为一个对比目标的句子表示。句子表示之间的度量被计算为[CLS]嵌入之间的点积:

  受InfoNCE的启发,我们定义损失为:

 

 

  注意,与一些通常随机抽取多个负面例子的对比策略不同,我们只使用一个xant作为负面例子进行训练。这是因为我们训练前的主要目标是提高语义对抗攻击下的鲁棒性。我们只关注为我们的目标生成的否定样本(即xant),而不是从预训练语料库中任意抽取其他句子作为否定样本。

  最终,总损失为:

 

 

   其中,λi是通过训练学习到的任务权重

 

 

4.实验

  我们进行了大量的实验和分析来评估CLINE的有效性。在本节中,我们首先介绍了implementation(第4.1节)和本文使用的数据集(第4.2节),然后分别介绍了对比集(第4.3节)和对抗集(第4.4节)的实验。最后,我们进行了消融研究(第4.5节)和句子表征分析(第4.6节)。

4.1implementation

  为了更好地从现有的预培训模型中获取知识,我们没有从头开始培训,而是从官方的RoBERTa-base模型中进行培训。我们训练30K个步骤,批量大小为256个序列,最大长度为512个token。我们使用的Adam学习率为1e-4、β1 = 0.9, β2 = 0.999,  =1e-8、L2权重衰减为0.01、前500步的学习率warmup以及学习率的线性衰减。我们使用0.1dropout对所有层和注意力。该模型在32个英伟达特斯拉V100 32GB GPU上进行了预培训。我们的模型是在BookCorpus(Zhu et al.,2015)和英语wiki数据集(用于预训练的数据集)的组合上进行预训练的。

4.2数据集

  我们在六项文本分类任务中评估了我们的模型:

  ①IMDB(Maas等人,2011)是一个情绪分析数据集,其任务是预测电影评论的情绪(积极或消极)。

  ②SNLI(Bowman et al.,2015)是一个自然语言推理数据集,用于判断两个句子之间的关系:第二个句子是否可以从与第一个句子的蕴涵、矛盾或中性关系中派生出来。

  ③PERSPECTRUM(Chen et al.,2019)是一个自然语言推理数据集,用于预测相关观点是否支持/反对给定主张。

  ④BoolQ(Clark et al.,2019)是一个包含布尔(是或否)答案的阅读理解实例的数据集。

  ⑤AG(Zhang et al.,2015)是一个句子级分类,涉及四个新闻主题:世界、体育、商业和科技。

  ⑥MR(Pang and Lee,2005)是一个基于正面和负面电影评论的句子级情绪分类。

4.3对比集实验

  我们在对比集(https://github.com/allenai/ contrast-sets)提供的四个对比集上评估了我们的模型:IMDB、PERSPECTRUM、BoolQ和SNLI(加德纳等人,2020年)。我们通过原始测试集(Ori)和对比测试集(Rev)将我们的方法与BERT和RoBERTa进行了比较。对比度一致性(Con)是Gardner等人(2020)定义的一种度量标准,用于评估模型预测在原始测试集和对比测试集的相同示例中是否都正确。我们使用不同的学习率(1e-5,2e5,3e-5,4e-5,5e-5)多次微调每个模型,并在对比测试集中选择最佳结果。

  从表4所示的结果中,我们可以观察到我们的模型优于基线。特别是在对比度一致性度量方面,我们的方法明显优于其他方法,这意味着我们的模型对语义的微小变化非常敏感,而不是简单地捕捉数据集的特征。另一方面,我们的模型在原始测试集上也有一些改进,这意味着我们的方法可以提高PLM在常见示例上的性能。

  表4:原始测试集(Ori)和对比测试集(Rev)的准确性。对比一致性(Con)是衡量模型是否对原始测试集和对比测试集中的每个元素做出正确预测的指标。

 

4.4对抗集实验

  为了评估模型的稳健性,我们将我们的模型与BERT和RoBERTa在vanilla版本和FreeLB版本的几个对抗测试集上进行了比较。我们没有使用对抗性攻击者来攻击模型,而是使用TextGooler(Jin等人,2020)生成的对抗性示例作为基准来评估对抗性示例的性能。textwooler识别文本中的重要单词,然后优先使用语义最相似、语法最正确的单词替换它们。

  从表5中的实验结果可以看出,与vanilla BERT和RoBERTa相比,我们的vanilla模型在所有四个基准数据集上都达到了更高的精度。该模型通过构造语义相似的对抗性示例,并利用对比训练目标,可以集中原始示例和对抗性示例的表示,从而获得更好的鲁棒性。此外,我们的方法还处于预训练阶段,因此也可以与现有的对抗性训练方法相结合。与BERT和RoBERTa的FreeLB版本相比,我们的模型可以在对抗场景中实现最先进的(SOTA)性能。在对比集和对抗集上的实验结果表明,该模型对语义变化敏感,同时保持了鲁棒性。

 

4.5消融实验

  为了进一步分析我们的CLINE不同因素的有效性,我们选择PERSPECTRUM(Chen等人,2019)和BoolQ(Clark等人,2019)作为基准数据集,并根据1)w/o RTD报告消融试验:我们删除了模型中的replaced token detection objective(LRTD),以验证我们的模型是否主要受益于对比目标。2) w/o hard negative:我们用随机抽样的例子来替换构建的否定例子,以验证无监督词替换构建的否定例子是否更好。我们还添加了1%和10%的设置,这意味着只使用训练集的1%/10%数据,以模拟低资源场景,并观察模型在不同数据集和设置中的性能。从表6中,我们可以观察到:1)我们的CLINE在所有设置上都优于RoBERTa,这表明我们的方法具有通用性和鲁棒性。特别是在低资源情况下(1%和10%的监督训练数据),我们的方法显示了显著的改进。2) 与CLINE相比,w/o RTD的性能略有下降。这证明了性能的提高主要得益于对比目标,LRTD可以进一步使模型对单词的变化更加敏感。3) 与CLINE相比,我们可以看到,在大多数情况下,w/o hard negative的性能会显著下降,这证明了构造hard negative实例的有效性。

  表6:PERSPECTRUM(准确度)和BoolQ(准确度)原始测试集(Ori)和对比测试集(Rev)的消融研究。1%/10%表示分别使用1%/10%的监督训练数据。对比一致性(Con)是衡量模型是否对原始测试集和对比测试集中的每个元素做出正确预测的指标。

 

 

4.6Sentence Semantic Representation句子语义表征

  为了评估这些模型的语义敏感性,我们从句子级情感分析数据集MR中生成了9626个句子三元组(Pang and Lee,2005)。每个三元组包含一个来自MR的原始句子xori、一个语义相似的句子xsyn和一个语义相反的句子xant。我们通过将xori中的一个单词替换为WordNet中的同义词\/反义词来生成xsyn/xant(Miller,1995)。然后计算具有CLS标记的句子对之间的余弦相似性和所有标记的平均池。我们还使用SOTA算法BertScore(Zhang et al.,2020)计算句子对的相似性分数。我们考虑的例子中,模型正确地识别语义关系(例如,如果BertScore(XORI,XSYN)> BertScore(XORI,XANT))作为命中。更高的点击率意味着该模型可以更好地区分那些表达了实质性不同语义但几乎没有不同单词的句子。

  我们在表7中显示了基于transformer的编码器的所有层(从1到12)的最大Hits。我们可以观察到:1)在BERT模型中,使用CLS标记作为句子表示比平均池更糟糕,这表明了与句子BERT相同的结论(Reimers和Gurevych,2019)。由于RoBERTa忽略了NSP目标,因此其CLS结果没有意义。2) BertScore可以比其他方法更好地计算语义相似度,我们的方法CLINE-B可以进一步提高命中率。3) 我们的方法CLINE-B和CLINE-R通过在训练前阶段为对比学习构建积极和消极的例子,学习更好的句子表征,并检测微小的语义变化。4) 我们可以观察到RoBERTa的Hits比BERT低,我们的CLINE-B比BERT有显著的改善。我们推测可能有两个原因,第一个原因是,由于在训练前阶段已经用下一个句子预测(NSP)目标对其进行了训练,因此伯特能够更好地识别句子层面的语义变化。二是由于训练不足,不能很好地表达句子的语义,我们的方法可以提高模型的语义表达能力。

  表7:基于transformer的编码器的所有层上的最大命中率(%)。我们使用CLS标记(CLS)和句子嵌入的平均池(mean)计算句子表示之间的余弦相似性。BS是BertScore的缩写。CLINE-B是指我们的模型从BERT基础模型训练而来,CLINE-R是指我们的模型从RoBERTa基础模型训练而来。

 

5.相关工作

①Pre-trained Language Models

  PLM已经证明了它们在捕捉隐式语言特征方面的优势。PLMs的两个主要研究方向是自回归(AR)预训练(如GPT(Radford et al.,2018))和去噪自动编码(DAE)预训练(如BERT(Devlin et al.,2019))。AR pretraining旨在根据之前的标记预测下一个单词,但缺乏对双向上下文的建模。DAE预训练的目的是利用左右上下文重建输入序列。然而,以往的工作主要集中在标记级的预训练任务上,而忽略了句子的全局语义建模。

②Adversarial Training对抗训练

  为了使神经网络对对抗性示例更具鲁棒性,人们提出了许多防御策略,对抗性训练被广泛认为是最有效的。与图像领域不同的是,文本数据的离散性使其处理更具挑战性,难以优化。以前的工作重点是在黑盒环境中创建对抗性示例的启发式方法。Belinkov和Bisk(2018)在机器翻译系统中使用合成或自然噪声操纵句子中的每个单词。Iyyer等人(2018年)利用回译产生具有不同句子结构的释义。最近,Miyato等人(2017年)将对抗式和虚拟对抗式训练(Miyato等人,2019年)扩展到文本分类任务,方法是对单词嵌入而非离散输入符号进行扰动。随后,许多文本领域的对抗性训练方法被提出并应用于最先进的PLM。Li和Qiu(2020)引入了token级扰动,以提高PLM的鲁棒性。Zhu等人(2020年)利用对抗训练中获得的梯度来提高PLM的性能。尽管许多研究似乎实现了稳健的表征,但我们的试点实验(第2节)表明,还有很长的路要走。

③Contrastive Learning

  对比学习是一种无监督的表征学习方法,已广泛用于学习图形表征(Velickovic等,2019)、视觉表征(van den Oord等,2018;He等,2020;Chen等,2020)、反应表征(Lin等,2020b;Su等,2020),文本表示(Iter等,2020年;丁等,2021年)和结构化世界模型(Kipf等,2020年)。其主要思想是通过对比正对和负对来学习表征,目的是集中正样本,分离负样本。在自然语言处理(NLP)中,对比自监督学习被广泛用于学习更好的句子表征。Logeswaran和Lee(2018)对两个连续的句子进行了正配对抽样,并将另一份文件中的句子作为负配对抽样。Luo等人(2020年)提出了以自我监督的方式学习去噪序列表示的对比预训练。Wu等人(2020)提出了用于对比句子表征学习的多句级增强策略。这些作品之间的主要区别在于它们对正面例子的不同定义。然而,最近的研究很少关注否定句的构建,只使用简单的随机抽样句子。在本文中,我们提出了一种语义相反的反例构造策略,以提高句子表征学习和预训练语言模型的鲁棒性。

 

 

6.结论

  在本文中,我们关注一个特定的问题,即如何训练一个预训练的语言模型,该模型对对抗性攻击具有鲁棒性,并且对微小的语义变化敏感。我们提出了一种简单有效的方法来应对这一挑战。在CLINE的训练阶段,它会自动生成原始句子的对抗性范例和语义否定范例。然后通过三个目标对模型进行训练,充分利用实例的两面性。实验结果表明,我们的方法可以显著提高预训练语言模型的灵敏度,同时获得鲁棒性。

posted @   wpwpwpyo  阅读(450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示