返回介绍

数学基础

统计学习

深度学习

工具

Scala

四十、ConSERT [2021]

发布于 2023-07-17 23:38:25 字数 40425 浏览 0 评论 0 收藏 0

  1. 最近,基于BERTpre-trained language model 在许多带监督信息的下游任务上取得了很高的性能。 然而,从 BERT 派生的 native sentence representation 被证明是低质量的(《SBERT: Sentence embeddings using siamese bert networks》《On the sentence embeddings from pre-trained language models》)。如下图 (a) 所示,当直接采用 BERT-based sentence representation 进行语义文本相似性(semantic textual similarity: STS )任务时,几乎所有的 sentence pair 都达到了 0.61.0 之间的相似性分数,即使有些 sentence pair 被人类标注员视为完全不相关。换句话说,BERT 派生的native sentence representation 在某种程度上是坍塌collapsed 的(《Exploring simple siamese representation learning》),这意味着几乎所有的句子都被映射到一个小区域,因此产生高的相似度。

    这样的现象也在之前的一些工作中观察到(《Representation degeneration problem in training natural language generation models》《Improving neural language generation with spectrum control》《On the sentence embeddings from pre-trained language models》)。他们发现 BERTword representation space 是各向异性的,高频词聚集在一起并靠近原点,而低频词则稀疏地分散开。当averaging token embeddings 时,那些高频词在 sentence representation 中占主导地位,诱发了对其真实语义的 bias 。因此,直接将 BERTnative sentence representation 用于语义匹配或文本检索是不合适的。传统的方法通常通过额外的监督信息来微调 BERT 。然而,人类标注的成本很高,而且在现实世界的场景中人类标注往往不可用。

    为了缓解 BERT 的坍塌问题,以及减少对标记数据的要求,论文 《ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer》 提出了一个基于对比学习的新颖的 sentence-level training objective 。通过鼓励来自同一句子的两个 augmented views 更接近、同时保持来自其他句子的views 远离,论文重塑了BERT-derived sentence representation space ,并成功地解决了 collapse 问题(如 Figure 1(b) 所示)。此外,作者提出了多种用于对比学习的数据增强策略,包括对抗性攻击adversarial attacktoken shufflingcutoff 、以及 dropout ,有效地将sentence representation 迁移到下游任务中。作者将他们的方法命名为 ConSERT ,即 Contrastive Framework for SEntence Representation Transfer

    与以前的方法相比,ConSERT 有几个优点:

    • 首先,它在推理过程中没有引入额外的结构或specialized implementationConSERT 的参数大小与 BERT 保持一致,使其易于使用。

    • 其次,与预训练方法相比,ConSERT 的效率更高。只需从target distribution 中抽取 1,000 个未标记的文本(这在现实世界的应用中很容易收集),ConSERT 就能比 BERT 获得 35% 的相对性能增益,而且训练阶段在单个 V100 GPU 上只需要几分钟(1-2k 步)。

    • 最后,ConSERT包括几个有效的、方便的数据增强方法,对语义影响最小。它们的效果在消融研究中得到了验证和分析。

    论文贡献:

    • 论文提出了一个简单而有效的基于对比学习的 sentence-level training objective 。它缓解了 BERT-derived representationcollapse ,并将 BERT-derived representation 迁移到下游任务中。

    • 论文探索了各种有效的文本增强策略,以产生用于对比学习的视图,并分析了这些增强策略对无监督的sentence representation transfer 的影响。

    • 只需在无监督的目标数据集上进行微调,论文的方法就能在 STS 任务上取得重大改进。当进一步与 NLI 监督相结合时,论文的方法取得了新的SOTA 的性能。论文还展示了论文的方法在数据稀疏情况下的鲁棒性,以及对 transferred representation 的直观分析。

    论文价值不大,没什么新颖性。

  2. 相关工作:

    • Sentence Representation Learning

      • 监督方法:一些工作使用监督数据集进行 sentence representation learning

        • InferSent 发现有监督的自然语言推理(Natural Language Inference: NLI )任务对训练 good sentence representation 很有用。他们使用一个基于 BiLSTM 的编码器,并在两个 NLG 数据集上进行训练,即 Stanford NLI: SNLIMulti-Genre NLI: MNLI

        • Universal Sentence Encoder 采用了基于 Transformer 的架构,并使用 SNLI 数据集来增强无监督训练。

        • SBERT《SBERT: Sentence embeddings using siamese bert networks》)提出了一个带有共享的 BERT encodersiamese 架构,也在 SNLIMNLI 数据集上进行训练。

      • 用于预训练的自监督目标:

        • BERT 提出了一个 bidirectional Transformer encoder 用于语言模型预训练。它包括一个sentence-level training objective ,即 next sentence prediction: NSP ,这个训练目标预测两个句子是否相邻。然而,NSP 被证明是很弱的,对最终性能的贡献很小(《Roberta: A robustly optimized bert pretraining approach》)。

        • 之后,人们提出了各种自监督的目标来预训练 BERT-like sentence encoder

          • Cross-Thought《Cross-thought for sentence encoder pre-training》) 和 CMLM《Universal sentence representation learning with conditional masked language model》)是两个类似的目标,它们在给定 contextual sentencerepresentation 的条件下,恢复一个句子中的 masked tokens

          • SLM 提出了一个目标,即给定 shuffled sentence 为输入,重建正确的句子排序。

        然而,所有这些目标都需要 document-level 的语料,因此不适用于只有短文的下游任务。

      • 无监督方法:

        • BERT-flow 提出了一种 flow-based 的方法,将 BERT embedding 映射到标准的 Gaussian latent space ,其中 embedding 更适合进行比较。然而,这种方法引入了额外的模型结构,需要 specialized implementation,这可能会限制它的应用。

    • 对比学习:

      • 用于 Visual Representation Learning 的对比学习:最近,对比学习已经成为无监督 visual representation learning 中非常流行的一种技术,其性能非常 solid 。对比学习的方法认为,good representation 应该能够识别同一 object ,同时将其与其他object 区分开来。基于这种直觉,对比学习的方法应用图像变换(如 cropping 、旋转、cutout 等),为每张图像随机生成两个增强的版本,并使它们在 representation space 中接近。这种方法可以被视为对输入样本的不变性建模 invariance modeling

        《A simple frameworkfor contrastive learning of visual representations 》 提出了 SimCLR ,一个简单的对比学习框架。他们使用 normalized temperature-scaled cross-entropy loss: NT-Xent 作为训练损失,这在以前的文献中也被称为 InfoNCE《Learning deep representations by mutual information estimation and maximization》)。

      • 用于 Textual Representation Learning 的对比学习:最近,对比学习被广泛地应用于 NLP 任务中。许多工作将其用于语言模型的预训练。

        • IS-BERT《An unsupervised sentence embedding method by mutual information maximization》)提出在 BERT 的基础上增加 1-D CNN 层,并通过最大化 global sentence embedding 和其相应的 local contexts embedding 之间的互信息(mutual information: MI )来训练 CNN

        • CERT《Cert: Contrastive self-supervised learning for language understanding》)采用了与 MoCo 类似的结构,并使用 back-translation 进行数据增强。然而,momentum encoder 需要额外的内存,而且 back-translation 可能会产生 false positives

        • BERT-CT《Semantic re-tuning with contrastive tension》)使用两个单独的编码器进行对比学习,这也需要额外的内存。此外,他们只采样 7 个负样本,导致训练效率低。

        • De-CLUTR 采用了 SimCLR 的架构,用 contrastive objectivemasked language model objective 共同训练模型。然而,他们针对对比学习仅使用 span ,在语义上是 fragmented 的。

        • CLEAR《Clear: Contrastive learning for sentence representation》)使用与 DeCLUTR 相同的架构和目标。它们都是用来预训练语言模型的,这需要大量的语料库,以及大量的资源。

40.1 模型

  1. 给定一个 BERT-like pretrained language modelM$ M $ 和一个从 target distribution 中提取的无监督数据集D$ \mathcal D $ ,我们的目标是在D$ \mathcal D $ 上对M$ M $ 进行微调,使 sentence representation 与任务更相关,并适用于下游任务。

    ConSERT 不是从头开始训练的。

  2. 通用框架:我们的方法主要受到 SimCLR 的启发。如下图所示,我们的框架有三个主要部分:

    • 一个数据增强模块,在 token embedding layer 为输入样本生成不同的视图。

    • 一个共享的 BERT encoder ,为每个输入文本计算 sentence representation 。在训练过程中,我们使用最后一层的 token embeddings 的均值池化来获得 sentence representations

    • BERT encoder 的顶部有一个 contrastive loss layer 。它最大限度地提高一个 representation 和其相应的版本(从同一个句子中增强而来)之间的一致性、同时保持与相同 batch 中其他 sentence representations 的距离。

    对于每个输入文本x$ \mathbf x $ ,我们首先将其传递给数据增强模块data augmentation module ,该模块应用两个变换T1$ T_1 $ 和T2$ T_2 $ 来生成两个版本的 token embeddingsei=T1(x),ej=T2(x)$ \mathbf e_i = T_1(\mathbf x), \mathbf e_j = T_2(\mathbf x) $ ,其中ei,ejRL×d$ \mathbf e_i,\mathbf e_j\in \mathbb R^{L\times d} $ ,L$ L $ 是序列长度、d$ d $ 是embedding 维度。之后,ei$ \mathbf e_i $ 和ej$ \mathbf e_j $ 都将由 BERT 中的 multi-layer transformer block 来编码,并通过均值池化产生 sentence representationsri$ \mathbf{\vec r}_i $ 和rj$ \mathbf{\vec r}_j $ 。

    遵从 《A simple framework for contrastive learning of visual representations》 的做法,我们采用 normalized temperature-scaled cross-entropy loss: NTXent 作为 contrastive objective 。在每个 training step 中,我们从D$ \mathcal D $ 中随机采样N$ N $ 个文本来构建一个 mini-batch ,从而得到2N$ 2N $ 个 representation 。每个 data point 被训练从而在 in-batch 负样本中找出其对应的正样本:

    (10)Li,j=logexp(sim(ri,rj)/τ)k=12NIkiexp(sim(ri,rk)/τ)

    其中:sim() 表示余弦相似度函数,τ$ \tau $ 为温度超参数,I$ \mathbb I $ 为示性函数(当ki$ k\ne i $ 时取值为 1,否则取值为零)。

    最后,我们对所有2N$ 2N $ 个 in-batch classification losse 进行平均,得到最终的对比损失Lcon$ \mathcal L_\text{con} $ 。

  3. 数据增强策略:我们探索了四种不同的数据增强策略来为对比学习生成视图,包括:对抗攻击 adversarial attacktoken shufflingcutoffdropout,如下图所示。

    • Adversarial Attack:对抗性训练一般用于提高模型的鲁棒性。我们通过向输入样本添加 worst-case 扰动来产生对抗性样本。我们用 Fast Gradient Value: FGV《Adversarial diversity and hard positive generation》)实现这一策略,它直接使用梯度来计算扰动,因此比 two-step 方法更快。注意,这种策略只适用于与监督学习联合训练的情况,因为它依赖于监督损失来计算对抗性扰动。

      这个方法在实验部分完全没有用上,因此也不知道有没有效,不知道作者为什么要列在这里。

    • Token Shuffling:在这个策略中,我们旨在随机混洗输入序列中的 tokens 。由于 transformer 架构中的 bag-of-words 性质,position encoding 是关于序列信息的唯一因素。因此,与 《Slm: Learning a discourse language representation with sentence un-shuffling》类似,我们通过将混洗后的 position ids 传递给 embedding layer ,同时保持 token ids 的顺序不变从而实现这一策略。

    • Cutoff《A simple but tough-to-beat data augmentation approach for natural language understanding and generation》提出了一个简单而有效的数据增强策略,称为cutoff 。他们在L×d$ L\times d $ 的特征矩阵中随机擦除一些token (用于token cutoff )、特征维度(用于 feature cutoff )或 token span (用于 span cutoff )。在我们的实验中,我们只使用 token cutofffeature cutoff ,并应用它们到 token embeddings 上从而生成视图。

    • DropoutDropout 是一种广泛使用的正则化方法,可以避免过拟合。然而,在我们的实验中,我们也展示了它作为对比学习的增强策略的有效性。在这种情况下,我们以特定的概率随机地丢弃 token embedding layer 中的元素,并将它们的值置零。请注意,这种策略与 Cutoff 不同,因为这里的每个元素都是单独考虑的。

      SimCSE 仅仅使用 Dropout 来生成 augmented view ,就取得了很好的效果。

  4. 融合监督信号:除了无监督的 transfer ,我们的方法也可以与监督学习相结合。我们以 NLI 监督为例。这是一个 sentence pair 分类任务,模型被训练用来区分两个句子之间关系:矛盾contradiction 、蕴含 entailment 、中性 neutralclassification objective 可以表示为:

    (11)f=concat(r1,r2,|r1r2|)Lce=CrossEntropy(Wf+b,y)

    其中:r1$ \mathbf{\vec r}_1 $ 和r2$ \mathbf{\vec r}_2 $ 为两个 sentence representationW,b$ \mathbf W,\mathbf{\vec b} $ 为待学习的参数。

    我们提出了三种纳入额外的监督信号的方法:

    • 联合训练(joint ) :我们在 NLI 数据集上联合训练具有supervised objectiveunsupervised objective 的模型:

      (12)Ljoint=Lce+αLcon

      其中α$ \alpha $ 是一个平衡两个 objective 的超参数。

      注意,这里的无监督训练也是在 NLI 数据集上。

    • 先监督训练然后无监督 transfersup-unsup):首先在 NLI 数据集上用Lce$ \mathcal L_\text{ce} $ 训练模型,然后用Lcon$ \mathcal L_\text{con} $ 在target 数据集上进行微调。

    • 先联合训练然后无监督 transferjoint-unsup):首先在 NLI 数据集上用Ljoint$ \mathcal L_\text{joint} $ 训练模型,然后用Lcon$ \mathcal L_\text{con} $ 在 target 数据集上对其进行微调。

40.2 实验

  1. 为了验证我们提出的方法的有效性,我们在无监督 setting 和有监督 setting 下对 Semantic Textual Similarity: STS 任务进行了实验。

  2. 数据集: 遵从以前的工作,我们在多个 STS 数据集上评估我们的方法,包括 STS tasks 2012 - 2016 (STS12 - STS16)STS benchmark (STSb)SICKRelatedness (SICK-R) 。这些数据集中的每个样本都包含一对句子、以及 0~5 之间的 ground-truth score ,以表示它们之间的语义相似度。

    • 在我们的无监督实验中,我们混合了这些数据集的未标记文本,以微调我们的模型。我们通过 SentEval 工具包获得所有 7 个数据集。统计数据如下表所示。

    • 对于监督实验,我们使用 SNLI570k 样本)和 MNLI430k 样本)的组合来训练我们的模型。在联合训练的 setting 中,NLI 文本也被用于 contrastive objective

  3. baseline

    • 无监督 baselineBERT-flowGloVe embeddings averageBERT-derived native embeddings averageCLEAR(在BookCorpusEnglish Wikipedia 语料库上训练)、ISBERTNLI 数据集的未标记文本上训练)、BERT-CT (在 English Wikipedia 语料库上训练)。

    • 监督 baselineInferSentUniversal Sentence EncoderSBERTBERT-CT。它们都是在 NLI 监督下训练的。

  4. 评估方法:在评估训练好的模型时,我们首先通过平均最后两层的 token embeddings 来获得 sentence representation (如 BERT-flow 所示,最后两层的平均要比最后一层的平均,效果更好),然后我们报告 sentence representation 的余弦相似度分数和人类标注的ground-truth 分数之间的 spearman 相关系数。在计算spearman 相关系数时,我们将所有的句子合并在一起(即使有些 STS 数据集有多个 splits ),只计算一次 spearman 相关系数。

  5. 实现细节:

    • 我们的实现是基于 SBERT 。我们在实验中同时使用 BERT-baseBERT-large 。最大序列长度被设置为 64

    • 考虑到我们框架中使用的 cutoffdropout 数据增强策略,我们删除了 BERT 架构中的默认 dropout layer 。根据 《A simple but tough-to-beat data augmentation approach for natural language understanding and generation》的建议,token cutofffeature cutoff 的比例分别设置为 0.150.2dropout rate 设为 0.2

    • NT-Xent loss 的温度τ$ \tau $ 设为 0.1joint training settingα$ \alpha $ 设为 0.15

    • 我们采用 Adam 优化器,将学习率设置为 5e-7 。我们在总的 10% 训练步数中使用线性的 learning rate warm-up

    • 在我们的大部分实验中,batch size 被设置为 96

    • 我们使用STSb 的验证集来调优超参数(包括增强策略),并在训练期间每 200 步评估一次模型。STSb 的验证集上的 best checkpoint 被保存下来用于测试。

    我们在随后的章节中进一步讨论 batch size 和温度的影响。

  6. 无监督学习的结果:对于无监督的评估,我们加载 pretrained BERT 来初始化我们框架中的 BERT encoder 。然后,我们随机混合7STS 数据集的未标记文本,用它们来微调我们的模型。 结果如下表所示,可以看到:

    • BERT-flowConSERT 都可以改善 representation space ,并优于 GloVeBERT 基线。

    • 然而,ConSERT_large6STS 数据集中取得了最好的性能,大大超过了 BERT_large-flow ,平均有 8% 的相对性能增益(从 70.7676.45 )。

    • 此外,值得注意的是,ConSERT_large 甚至超过了几个监督的基线(如 Table 3 所示),如 InferSent (65.01)Universal Sentence Encoder (71.72),并保持与强大的监督方法 SBERT_large-NLI (76.55) 相当的性能。

    • 对于BERT_base 架构,我们的方法 ConSERT_base 也超过了 BERT_base-flow ,绝对数值提高了 3.17 (从 69.5772.74 )。

    这里是不公平的比较,这些模型的预训练语料库都不相同,因此很难判断是算法的优势、还是语料库的优势。

  7. 监督学习的结果:对于监督评估,我们考虑 joint, sup-unsup, joint-unsup 三种设置。 请注意,在 joint 设置中,只有 NLI 文本被用于对比学习,使其与 SBERT-NLI 可比。我们使用在 joint 设置下训练的模型作为 joint-unsup 设置中的 initial checkpoint 。我们还重新实现了 SBERT-NLI ,并将其作为 sup-unsup 设置中的初始 initial checkpoint 。 结果如下表所示,可以看到:

    • 对于用 NLI 监督训练的模型,我们发现 ConSERT joint 的表现一直比 SBERT 好,揭示了我们提出的 contrastive objective 以及数据增强策略的有效性。平均而言,ConSERT_base joint 比重新实现的 SBERT_base-NLI 达到了 2.88 的性能增益,而ConSERT_large joint 达到了 2.70 的性能增益。

    • 当进一步用 STS 未标记的文本进行 representation transfer 时,我们的方法取得了更好的性能。平均而言,ConSERT_large joint-unsup1.84 的性能增益优于 initial checkpoint ConSERT_large ,并以 2.92 的性能增益优于之前SOTABERT_large-flow

      这些结果表明,即使是在监督信息下训练的模型,无监督的 representation transfer 仍有巨大的改进潜力。

    这里也是不公平的比较,因为 ConSERT 用了好的初始化点。

  8. BERT Embedding Space 分析:我们进行了实验从而证明假设:collapse 问题主要是由于各向异性空间,该空间对 token 频率敏感。我们在应用均值池化计算 sentence representation 时,移除了几个 most frequent tokensembedding 。下图显示了被移除的 top-k frequent tokens 的数量与平均 spearman 相关系数之间的关系。可以看到:

    • 对于 BERT ,当删除几个最高频的 tokens 时,BERTSTS 任务上的性能会有很大的改善。当删除 34 个最高频的 tokens 时,BERT 取得了最好的性能(61.66 ),比原来的性能(53.86 )提升了 7.8

    • 对于ConSERT ,我们发现去除几个最高频的 tokens 只带来了不到 0.3 的小改进。结果表明,我们的方法重塑了BERT 的原始embedding space,减少了 common tokenssentence representation 的影响。

  9. 数据增强策略的影响:这里我们研究了数据增强策略对 contrastive learning 的影响。我们为每个 transformation 考虑了 5 个选项,包括:None(即什么都不做)、ShuffleToken CutoffFeature CutoffDropout ,结果是 5 x 5 的组合。注意,这里没有考虑 Adversarial Attack 策略,因为它需要额外的监督信息来产生对抗性样本。所有这些实验都遵循无监督的设置,并使用BERT_base 架构。 实验结果如下图所示,可以看到:

    • 首先,ShuffleToken Cutoff 是两个最有效的策略(其中Shuffle略好于 Token Cutoff ),显著优于 Feature CutoffDropout 。这可能是因为 ShuffleToken Cutoff 与下游的 STS 任务更相关,因为它们直接在 token-level 上进行操作,并改变了句子的结构以产生 hard examples

    • 其次,与 None-None 基线相比,Feature CutoffDropout 也提高了大约4 分的性能。

      此外,我们发现它们作为一种补充策略时,效果很好。例如,与另一种策略如 Shuffle 相结合,可能会进一步提高性能。当把ShuffleFeature Cutoff结合起来时,我们取得了最好的结果。我们认为 Feature CutoffDropout 有助于为 sentence encoder 建模内部噪声的不变性invariance ,从而提高模型的鲁棒性。

    • 最后,我们还观察到,即使没有任何数据增强(None-None 组合),我们的对比框架也能提高BERTSTS任务中的表现(从53.8663.84 )。这种None-None 组合对最大化视图之间的 agreement 没有影响,因为augmented viewsrepresentations 是完全相同的。相反,它通过将每个 representation 从其他 representation 中推开,从而调优了 representation space 。我们认为,这种改进主要是由于 BERTnative representation spacecollapse 现象。在某种程度上,这也解释了为什么我们的方法是有效的。

  10. Few-shot Setting 的性能:为了验证 ConSERT 在数据稀疏情况下的可靠性和鲁棒性,我们进行了 few-shot 实验。我们将未标记文本的数量分别限制为 1/10/100/1000/10000 ,并将其性能与完整的数据集进行比较。结果如下图所示,可以看到:

    • 在无监督和有监督的情况下,我们的方法只需要 100 个样本就可以比 baseline 有很大的改善。

    • 当训练样本增加到 1000 个时,我们的方法基本上可以达到与完整数据集上训练的模型相当的结果。

    这些结果揭示了我们的方法在数据稀疏的情况下的鲁棒性和有效性,这在现实中是很常见的。只需从target 数据分布中提取少量的未标记文本,我们的方法也可以调优 representation space ,并有利于下游任务。

  11. 温度的影响:NT-Xent loss 中的温度τ$ \tau $ 用于控制由softmax 操作归一化的分布的平滑度,从而影响反向传播时的梯度。大的温度使分布更加平滑,而小的温度则使分布更加尖锐。在我们的实验中,我们探索了温度τ$ \tau $ 的影响,如下图所示。可以看到,性能对温度极为敏感:过小或过大的温度都会使我们的模型表现不佳。而最佳温度是在一个很小的范围内得到的(大约从 0.080.12 之间)。

    这一现象再次证明了 BERT embeddingcollapse 问题,因为大多数句子是相互接近的,大的温度可能会使这一任务太难学习。我们在大多数实验中选择τ=0.1$ \tau = 0.1 $ 。

  12. Batch Size 的影响:在以前的一些 contrastive learning 的工作中,据报道,大 batch size 有利于最终的性能,并加速模型的收敛,因为它为对比学习提供了更多的in-batch 负样本(《A simple framework for contrastive learning of visual representations》)。这些 in-batch 负样本提高了训练效率。我们分析了 batch size 对无监督的 sentence representation transfer 的影响,结果如下表所示。我们同时显示了 spearman 相关系数、以及相应的 training steps 。可以看到:

    • 较大的 batch size 确实能实现更好的性能。然而,这种改善并不显著。

    • 同时,较大的 batch size 确实加快了训练过程,但它同时也需要更多的 GPU 内存。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文