返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十八、DeCLUTR [2020]

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

  1. 一段时间以来,NLP 中的迁移学习仅限于 pretrained word embedding 。最近的工作表明,使用 pretrained sentence embedding 有很强的 transfer task 性能。这些固定长度的向量(通常被称为 "universal" sentence embedding),通常在大型语料库中学习,然后迁移到各种下游任务中,如聚类(如主题建模)和检索(如语义搜索)。事实上,sentence embedding 已经成为一个重点领域,许多有监督的、半监督的、无监督的方法已经被提出。然而,性能最高的解决方案需要标记数据,限制了它们的实用性。因此,缩小无unsupervised universal sentence embeddingsupervised universal sentence embedding 方法之间的性能差距是一个重要目标。

    transformer-based 语言模型的预训练已经成为从未标记语料中学习 textual representation 的主要方法。这一成功主要是由masked language modelling: MLM 推动的。这种自监督的 token-level objective 要求模型从输入序列中预测一些 randomly masked token

    除了 MLM 之外,其中一些模型还有机制用于通过自监督来学习 sentence-level embedding

    • BERT 中,一个 special classification token 被前置到每个输入序列中,其 representation 被用于二分类任务,以预测一个textual segment 是否在训练语料库中跟随另一个textual segment 。该任务被称作 Next Sentence Prediction: NSP 。然而,最近的工作对 NSP 的有效性提出了质疑。在 RoBERTa 中,作者证明了在预训练期间去除NSP 会导致下游 sentence-level task (包括语义文本相似性和自然语言推理)的性能不变甚至略有提高。

    • ALBERT 中,作者假设 NSP 混淆了主题预测 topic prediction 和连贯性预测 coherence prediction ,而提出了一个Sentence-Order Prediction: SOP objective ,表明它能更好地建模句子间的连贯性。

    在初步评估中,论文 《DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations》 发现这两个 objective 都不能产生良好的universal sentence embedding 。因此,作者提出了一个简单而有效的自监督的 sentence-level objective ,其灵感来自于 metric learning 的最新进展。

    metric learning是一种 representation learning,旨在学习一个 embedding space,其中相似数据的 vector representation 被映射在一起,反之亦然。在计算机视觉中,deep metric learning: DML 已被广泛用于学习 visual representation 。一般来说,DML 的方法如下:

    • 一个 "pretext" 任务(通常是自监督的)被精心设计,并用于训练深度神经网络以产生有用的 feature representation 。这里,"有用的" 是指在训练时未知的、容易适应其他下游任务的 representation

    • 然后,下游任务(如 object recognition )被用来评估所学到的特征的质量(独立于产生这些特征的模型),通常是通过使用这些特征作为输入,在下游任务上训练一个线性分类器。

    迄今为止,最成功的方法是:设计一个pretext任务,用一个 pair-based contrastive loss 来学习。对于一个给定的 anchor data pointcontrastive loss 试图使锚点和一些 positive data point (那些相似的)之间的距离,小于锚点和一些negative data point (那些不相似的)之间的距离。表现最好的方法是通过随机增强同一图像(例如使用裁剪、翻转、颜色扭曲)来产生 anchor-positive pair ;而 anchor-negative pair 是随机选择的不同图像的 augmented view 。事实上, 《A mutual information maximization perspective of language representation learning》证明 MLM objectiveNSP objective 也是对比学习的实例。

    受这种方法的启发,论文 《DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations》 提出了一个自监督的 contrastive objective ,可用于预训练 sentence encoder 。这个 objective 通过训练一个编码器来学习 universal sentence embedding ,以最小化从同一文档中的相近位置处的、随机采样的 textual segmentemebdding 之间的距离。作者通过使用该 objective 来扩展 transformer-based language model 的预训练来证明该 objective 的有效性,并在 SentEval 上获得 SOTA 的结果。

    这也是对比学习的思路。

    论文贡献:

    • 提出了一个自监督的 sentence-level objective ,可以与 MLM 一起用于预训练 transformer-based language model ,在没有任何标记数据的情况下为 sentence-lengthparagraph-length 的文本生成 generalized embedding

    • 进行了广泛的消融实验,从而确定哪些因素对学习高质量的 embedding 是重要的。

    • 证明了学到的 embedding 的质量与模型规模和数据规模有关。因此,仅仅通过收集更多的未标记文本或使用更大的编码器,就可以提高性能。

    • 开源了解决方案,并提供了在新数据上训练 unseen 文本的详细说明。

  2. 相关工作:以前关于 universal sentence embedding 的工作可以大致按照它们是否在预训练步骤中使用标记数据来分组,我们将其分别简称为:监督的、半监督的、以及无监督的。

    • 监督的和半监督的:性能最高的 universal sentence encoder 是在人类标记的自然语言推理(natural language inference : NLI )数据集 Stanford NLI: SNLIMultiNLI上预训练的。NLI 的任务是将一对句子(记做"hypothesis""premise" )分类为三种关系之一:entailmentcontradictionneutral

      • 监督方法 InferSent 证明了 NLI 对于训练 universal sentence encoder 的有效性。

      • Universal Sentence Encoder: USE是半监督的,用 SNLI 语料库上的监督训练来增强一个无监督的、类似 Skip-Thoughts 的任务。

      • 最近发表的 SBERT 方法使用标记的 NLI 数据集对预训练的、transformer-based language model (如 BERT )进行微调。

      注意,这里的“监督”信号不是来自于 target task,而是来自于公开可用的数据集。

    • 无监督的:

      • Skip-ThoughtsFastSent 是流行的无监督技术,通过使用一个句子的 encoding 来预测邻近句子中的单词来学习 sentence embedding 。然而,除了计算成本高之外,这种 generative objective 迫使模型重构句子的表面形式,这可能会捕获到与句子意义无关的信息。

      • QuickThoughts 用一个简单的 discriminative objective 来解决这些缺点:给定一个句子及其context (相邻的句子),它通过训练一个分类器来学习 sentence representation ,以区分context sentencenon-context sentence

      无监督方法的统一主题是它们利用了 "distributional hypothesis" ,即一个单词(以及延伸到一个句子)的意义是由它出现的单词的上下文来描述的。

    我们的整体方法与 SBERT 最为相似:我们扩展了transformer-based language model 的预训练,以产生有用的sentence embedding 。但是,我们提出的 objective 是自监督的。移除对标记数据的依赖,使我们能够利用网络上大量的未标记文本,而不局限于标记数据丰富的语言或领域。

    我们的 objectiveQuickThoughts 最相似,但是一些区别包括:

    • 我们将采样放宽到 paragraph length 的文本片段(而不是自然句子)。

    • 我们对每个 anchor 采样一个或多个 positive segment (而不是严格意义上的一个 positive segment )。

    • 并且我们允许这些 positive segment 相邻、重叠或包含(而不是严格意义上的相邻)。

38.1 模型

  1. 自监督对比损失:我们的方法通过最大化来自相同文档中相近位置采样的 textual segments 之间的一致性,从而基于 contrastive loss 来学习 textual representation 。如下图所示,我们的方法包括以下组件:

    • 一个 data loading step :从每个文档中随机采样 paired anchor-positive spans。 令 batch sizeN$ N $ (包含N$ N $ 篇文档),每个文档采样了A$ A $ 个 anchor spans ,每个 anchor span 采样了P$ P $ 个 positive spans 。令i{1,,AN}$ i\in \{1,\cdots, AN\} $ 为 anchor span 的编号。第i$ i $ 个 anchor span 记做si$ \mathbf s_i $ ,它的第p$ p $ 个 positive span 记做si+pAN$ \mathbf s_{i+pAN} $ 。这个程序的设计是为了最大化采样语义相似的 anchor-positive pair 的机会。

    • 一个编码器f()$ f(\cdot) $ :将 input span 中的每个 token 映射为一个 embedding 。我们的方法对编码器的选择没有限制,但我们选择f()$ f(\cdot) $ 是一个 transformer-based language model ,因为这代表了文本编码器的 SOTA

    • 一个池化函数g()$ g(\cdot) $ :将 encoded spanf(si)$ f(\mathbf s_i) $ 和{f(si+pAN)}p=1P$ \left\{f(\mathbf s_{i+pAN})\right\}_{p=1}^P $ 分别映射为固定尺寸的 embeddingei=g(f(si))$ \mathbf{\vec e}_i = g(f(\mathbf s_i)) $ 、及其相应的 mean positive embedding

      (1)ei+AN=1Pp=1Pg(f(si+pAN))

      类似于 SBERT ,我们发现均值池化作为g()$ g(\cdot) $ 时,表现良好。我们将每个 anchor embedding 与多个 positive embeddings 的平均值配对。这一策略是由 《A theoretical analysis of contrastive unsupervised representation learning》 提出的,他们证明了:与为每个 anchor 使用单个的 positive example 相比,该策略从理论上和经验上都得到改善。

    • contrastive loss function:用于 contrastive prediction 任务。给定一组 embedded span{ek}$ \left\{\mathbf{\vec e}_k\right\} $ ,包含一对 positive pair(ei,ei+AN)$ \left(\mathbf{\vec e}_i,\mathbf{\vec e}_{i+AN}\right) $ ,那么给定ei$ \mathbf{\vec e}_i $ ,contrastive prediction 的目标是从{ek}ki$ \left\{\mathbf{\vec e}_k\right\}_{k\ne i} $ 中识别出ei+AN$ \mathbf{\vec e}_{i+AN} $ :

      (2)l(i,j)=logexp(sim(ei,ej)/τ)k=12NI[ki]exp(sim(ei,ek)/τ)

      其中:sim(u,v)$ \text{sim}\left(\mathbf{\vec u}, \mathbf{\vec v}\right) $ 为余弦相似度;Iik$ \mathbb I_{i\ne k} $ 为示性函数,当ik$ i\ne k $ 时取值为 1 否则取值为零;τ>0$ \tau\gt0 $ 为温度超参数;j=i+AN$ j=i+AN $ 。

    在训练过程中,我们从训练集中随机采样大小为N$ N $ 个文档的 mini-batch ,并从这N$ N $ 个文档在 anchor-positive pair(ei,ei+AN)$ \left(\mathbf{\vec e}_i,\mathbf{\vec e}_{i+AN}\right) $ 上定义 contrastive prediction 任务,得到2AN$ 2AN $ 个数据点。正如 《Improved deep metric learning with multi-class n-pair loss objective》 所建议的,我们将 mini-batch 中的其他2(AN1)$ 2(AN-1) $ 个实例视为负样本。成本函数的形式为:

    (3)Lcontrastive=i=1ANl(i,i+AN)+l(i+AN,i)

    这是以前工作中使用的 InfoNCE loss ,在 《A simple framework for contrastive learning of visual representations》 中表示为 normalized temperature-scale crossentropy loss: NT-Xent

    为了用训练好的模型来嵌入文本,我们只需将 batchtokenized text 通过模型,而不需要采样 span 。因此,我们的方法在测试时的计算成本是编码器f()$ f(\cdot) $ 的成本,加上池化器g()$ g(\cdot) $ 的成本(在使用均值池化时,池化器的成本是可以忽略的)。

  2. Span Sampling:我们首先选择一个 minimum span length 和一个 maximum span length 。这里我们选择lmin=32,lmax=512$ l_\min=32, l_\max =512 $ 。然后我们tokenize 文档d$ d $ ,产生一个长度为n$ n $ 的 token 序列xd=(x1,,xn)$ \mathbf x^d = (x_1,\cdots,x_n) $ 。为了从xd$ \mathbf x^d $ 中采样一个 anchor spansi$ \mathbf s_i $ ,我们首先从贝塔分布中采样其长度lanchor$ l_\text{anchor} $ ,然后均匀随机地采样其起始位置sistart$ s_i^\text{start} $ :

    (4)lanchor=panchor×(lmaxlmin)+lminsistart{0,,nlanchor},siend=sistart+lanchorsi=xsistart:siendd

    然后我们采样P$ P $ 个对应的 positive span ,其中第p$ p $ 个 positive span 为:

    (5)lpositive=ppositive×(lmaxlmin)+lminsi+pANstart{sistartlpositive,,siend},si+pANend=si+pANstart+lpositivesi+pAN=xsi+pANstart:si+pANendd

    注意,positive span 是在 anchor span 附近采样到的,因为si+pANstart{sistartlpositive,,siend}$ s_{i+pAN}^\text{start} \sim \{s_i^\text{start} - l_\text{positive},\cdots, s_i^\text{end}\} $ 。

    其中:

    • panchor=Beta(α=4,β=2)$ p_\text{anchor} = \text{Beta}(\alpha = 4,\beta=2) $ ,它使 anchor sampling 向更长的 span 倾斜。

    • ppositiveBeta(α=2,β=4)$ p_\text{positive}\sim \text{Beta}(\alpha=2,\beta=4) $ ,它使 positive sampling 向更短的 span 倾斜(如 Figure 1(c) 所示)。

    在实践中,我们限制对同一文件的 anchor span 的采样,使其至少相隔2×lmax$ 2\times l_\max $ 个 token

    我们注意到在设计我们的采样程序时有几个经过仔细考虑的决定:

    • lmin=32$ l_\min = 32 $ 和lmax=512$ l_\max = 512 $ 所截断的分布中采样 span length ,鼓励该模型对从 sentence-lengthparagraph-length的文本产生良好的 embedding

    • 我们发现, anchor span 的长度比 positive span 的长度更长,可以提高下游任务的性能(我们没有发现性能对具体的α$ \alpha $ 和β$ \beta $ 的选择是敏感的)。有两个理由:

      • 首先,它使模型能够学习 global-to-local view prediction

        anchor 更长,对应于 globalpositive 更短,对应于 local

      • 其次,当P>1$ P>1 $ 时,它通过降低重复文本的数量来鼓励 positive span 之间的多样性。

        如果 positive 更长,则 positive 重复的概率越大。

    • anchor 附近采样 positives ,可以利用分布假设,增加采样到有效的 anchor-positive pair (即语义相似)的机会。

    • 通过对每份文档采样多个 anchor,每个 anchor-positive pair 都与很多负样本进行对比:easy negatives (来自 mini-batch 中的其它文档中采样的anchorspositives )、hard negatives (来自同一文件中采样的anchorspositives )。

    总之,采样程序产生了三种类型的positives :与anchor 部分重叠的 positives 、与anchor 相邻的positives 、被 anchor 覆盖的positivesFigure 1 (b));以及两种类型的 negatives :从与anchor不同的文档中采样的easy negatives 、从与anchor 相同的文档中采样的hard negatives 。因此,我们随机生成的训练集和 contrastive loss 隐式地定义了一族 predictive tasks ,可以用来训练一个模型,并且与任何特定的编码器架构无关。

    下表展示了由我们的采样程序产生的 anchor-positiveanchor-negative 的例子。我们展示了三种 positivepositives adjacent tooverlapping withsubsumed by the anchor 。对于每个 anchor-positive pair ,我们展示了 hard negative (来自同一文档)和easy negative (来自另一文档)的例子。回顾一下,一个 mini-batch 是由随机文档组成的,每个anchor-positive pair 对都会与mini-batch 中的所有其他 anchor-positive pair 进行对比。因此,我们在这里所描述的hard negative ,只有在对每个文档采样多个 anchorA>1$ A>1 $ )时才会产生。

    这是 next sentence prediction 任务的扩展:预测是否是附近位置的句子。

  3. Continued MLM pretraining:我们使用我们的 objective 来扩展 transformer-based language model 的预训练:

    (6)L=Lcontrastive+LMLM

    这与现有的预训练策略类似,其中 MLM lossNSPSOPsentence-level loss 相加。

    为了降低计算成本,我们不从头开始训练,而是继续训练一个已经用 MLM objective 预训练好的模型。具体来说,我们在实验中同时使用 RoBERTa-baseDistilRoBERTaRoBERTa-base 的蒸馏后的版本)。在本文的其余部分,我们将我们的方法称为DeCLUTR-small (当扩展 DistilRoBERTa pretraining 时)和 DeCLUTR-base (当扩展 RoBERTa-base pretraining 时)。

38.2 实验

  1. 数据集:OpenWebText ,这是 WebText 语料库的一个子集。我们从中收集所有的最小 token 长度为 2048 的文档,总共得到 497868 个文档。

  2. 实现:我们在 PyTorch 中使用 AllenNLP 实现我们的模型。我们使用了 PyTorch Metric Learning library 实现的 NT-Xent loss function 、以及 Transformers librarypretrained transformer 的架构和权重。所有模型都是在最多四个 NVIDIA Tesla V100 16GB/32GB GPU 上训练的。

  3. 训练:

    • 除非另有说明,我们使用 AdamW 优化器对 497868 个文档训练 13epochminibatch size = 16,温度τ=5×102$ \tau = 5\times 10^{-2} $ ,学习率为5×105$ 5\times 10^{-5} $ ,权重衰减为 0.1

    • 对于 minibatch 中的每个文档,我们采样两个 anchor spanA=2$ A=2 $ )、每个anchor 采样两个 positive spanP=2$ P=2 $ )。

    • 我们使用斜三角学习率 scheduler ,训练步骤的数量等于训练实例的数量,cut 比例为 0.1

    • 底层 pretrained transformer (即 DistilRoBERTaRoBERTa-base )的其余超参数保持默认。

    • 在反向传播之前,所有梯度都被缩放为长度为 1.0 的范数(即,单位向量)。

    • 超参数是在 SentEval 验证集上调优的。

  4. 评估方式:我们在 SentEval benchmark 上评估了所有的方法,这是一个广泛使用的toolkit ,用于评估通用的 fixed-length sentence representationSentEval 分为 18 个下游任务(如情感分析、自然语言推理、转述检测 paraphraseimage-caption 检索)和 10probing 任务(旨在评估 sentence representation 中编码了哪些语言学属性)。

    我们报告了我们的模型和相关 baseline 在默认参数下使用 SentEval toolkit 在下游任务和 probing 任务上获得的分数。请注意,我们所比较的所有监督方法都是在 SNLI 语料库上训练的,而 SNLI 语料库是作为 SentEval 的下游任务包括的。为了避免 train-test 的污染,我们在 Table 2 中比较这些方法时,在计算平均下游分数时不考虑 SNLI

  5. baselineInferSentUSESentence-Transformer(即,SBERT) 。

    • USE 在结构和参数数量上与 DeCLUTR-base 最相似。Sentence-TransformerDeCLUTR-base 一样,使用 RoBERTa_base 架构和预训练好的权重,唯一区别在于不同的预训练策略。

    • 我们将 GloVe 词向量均值、fastText 词向量均值的性能作为弱基线。

    • 我们尽了最大努力,但我们无法针对完整的 SentEval benchmark 评估 pretrained QuickThought 模型,因此我们直接引用了论文中的分数。

    • 我们评估了 pretrained transformer 模型在采用我们的 contrastive objective 训练之前的表现,用 "Transformer-*" 来表示。我们在 pretrained transformers token-level output 上使用均值池化来产生 sentence embedding

    下表中列出了可训练的模型参数规模和 sentence embedding 维度。

  6. 下游任务的性能:

    • 与底层的 pretrained model DistilRoBERTaRoBERTa-base 相比,DeCLUTR-smallDeCLUTR-base 在下游性能方面获得了很大的提升,分别平均提升 +4%+6%

    • DeCLUTR-base 在除 SST5 以外的所有下游任务中都提高了性能,DeCLUTR-small 在除 SST2, SST5, TREC 以外的所有下游任务中都提高了性能。

    • 与现有的方法相比,DeCLUTR-base 在不使用任何人工标记的训练数据的情况下与监督/半监督性能相匹配,甚至超过了监督/半监督性能。

    • 令人惊讶的是,我们还发现,DeCLUTR-small 在使用 34% 的可训练参数的情况下,表现优于 Sentence Transformer

  7. Probing 任务性能:

    • 除了 InferSent 之外,现有的方法在 SentEvalprobing 任务上表现很差。

    • Sentence Transformer 相比它底层的 pretrained transformer model ,在 probing 任务上的得分低大约 10%

    • 相比之下,DeCLUTR-smallDeCLUTR-base 在平均性能方面的表现与底层的 pretrained model 相当。

    这些结果表明,在NLI 数据集上微调 transformer-based language model 可能会丢弃一些由 pretrained model 的权重捕获的语言信息。我们怀疑在我们的 training objective 中包含 MLMDeCLUTRprobing 任务上相对较高的表现的原因。

  8. 监督的和无监督的下游任务:SentEval 的下游评估包括有监督的任务和无监督的任务。

    在无监督的任务中,要评估的方法的 embedding 不需要任何进一步的训练。有趣的是,我们发现 USESentEval 的无监督评估(Table 2 中带 * 号的任务)中表现特别好。鉴于 USE 的架构与 Sentence TransformersDeCLUTR 的相似性,以及 USEsupervised NLI training objectiveInferSentSentence Transformer 的相似性,我们怀疑最可能的原因是其一个或多个额外的 training objective 。这些目标包括一个 conversational response prediction 任务、和一个类似 Skip-Thoughts 的任务。

  9. 采样程序的消融研究:我们评估了每个文档采样的 anchor 数量A$ A $ 、每个 anchor 采样的 positives 数量P$ P $ 、以及采样 positives 的策略对于模型效果的影响。我们注意到,当A=2$ A=2 $ 时,与A=1$ A=1 $ 相比,模型是在两倍的 span 和两倍的数据量(2AN$ 2AN $ ,其中N$ N $ 是 mini-batch 中的文档数量)上进行训练。为了控制这一点,所有A=1$ A=1 $ 的实验都被训练了两个epochA=2$ A=2 $ 时仅训练一个 epoch )、两倍的 mini-batch size2N$ 2N $ )。因此,这两组实验都是在相同数量的 span 和相同的 effective batch size4N$ 4N $ )上训练的,唯一的区别是每个文档采样的anchor 的数量(A$ A $ )。

    P>1$ P > 1 $ 时,数据量也增加了,是否也需要训练更多的 epoch?论文并未说明。

    • 对每个文档采样多个 anchorlearned embedding 的质量有很大的积极影响。我们假设这是因为当A>1$ A>1 $ 时, contrastive objective 的难度增加。

      回顾一下,mini-batch 由随机文档组成,从一个文档中采样的每个 anchor-positive pair 都要与 mini-batch 中的所有其他 anchor-positive pair 进行对比。当A>1$ A>1 $ 时,anchor-positive pair 将与同一文档中的其他 anchor-positive pair 进行对比,增加 contrastive objective 的难度,从而导致更好的 representation

      A$ A $ 大于 2 时,效果如何?论文并未说明。

    • 允许与 anchor 相邻、或者被 anchor 包含的 positive sampling 策略,要优于仅支持 anchor 相邻,也优于仅支持被 anchor 包含的采样策略。这表明这两个视图(即,anchor 相邻、被 anchor 包含)所捕获的信息是互补的。

    • 对每个 anchor 采样多个 positivesP>1$ P>1 $ )对性能的影响很小。这与(《A theoretical analysis of contrastive unsupervised representation learning》)相反,他们发现当多个 positives 被均值池化,并与一个给定的 anchor 配对时,理论上和经验上都有改进。

  10. 其它消融研究:为了确定训练目标、训练集大小、 模型容量的重要性,我们用训练集的10% ~ 100% (一个完整的 epoch )来训练两种规模的模型。

    • 同时用 MLM objectivecontrastive objective 对模型进行预训练,比单独用任何一个 objective 预训练提高了性能。

    • 对于 MLM objective + contrastive objective ,随着训练集大小的增加,模型性能单调地改善。

      我们假设引入 MLM loss 作为一种正则化的形式,防止 pretrained model 的权重(该模型本身是用 MLM loss 训练的)偏离太大(这种现象被称为 "灾难性遗忘 catastrophic forgetting ")。

    这些结果表明,通过我们的方法所学到的 embedding 的质量可以根据模型的容量和训练集的大小而 scale 。因为训练方法是完全自监督的,扩大训练集只需要收集更多的未标记文本。

    这个数据并未说明模型容量的重要性。在前面的实验中,DeCLUTR_base 的效果优于 DeCLUTR_small,说明了模型容量的重要性。

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

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

发布评论

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