返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十三、SimCSE [2021]

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

  1. 学习通用的 sentence embedding 是自然语言处理中的一个基本问题,在文献中得到了广泛的研究。在论文 《SimCSE: Simple Contrastive Learning of Sentence Embeddings》 中,作者推进了 SOTAsentence embedding 方法,并证明了 contrastive objective 在与预训练的语言模型(如 BERTRoBERTa )相结合时可以非常有效。论文提出了 SimCSE ,一个简单的 contrastive sentence embedding framework ,它可以从未标记数据或标记数据中产生卓越的 sentence embedding

    • unsupervised SimCSE 简单地预测了 input sentence 本身,其中只有 dropout 被用作噪音(下图 (a) 所示)。换句话说,将同一个句子传递给 pre-trained encoder 两次:通过两次应用标准的 dropout ,可以得到两个不同的 embedding 作为 "positive pair" 。然后,SimCSE 把同一 mini-batch 中的其他句子作为 "negatives" ,模型在这些 negatives 之间预测出正样本。

      虽然看起来非常简单,但这种方法比预测 next sentence 、以及离散的数据增强(如单词删除、单词替换)等训练目标要好很多,甚至与之前的监督方法相匹敌。通过仔细分析,作者发现 dropout 作为 hidden representation 的最小 "data augmentation" ,而去除 dropout 则会导致 representation collapse

    • supervised SimCSE 建立在最近使用 natural language inference: NLI 数据集进行 sentence embedding 的成功基础上,并将标注的 sentence pair 纳入对比学习 contrastive learning 中(下图 (b) 所示)。与之前的工作不同的是,作者将其作为一个 3-way classification 任务(蕴含entailment 、中性neutral 、以及矛盾contradiction ),并利用 entailment pair 可以自然地作为正样本的事实。作者还发现,增加相应的 contradiction pair 作为 hard negatives ,可以进一步提高性能。与之前使用相同数据集的方法相比,这种对 NLI 数据集的简单使用实现了性能的大幅提高。作者还比较了其它的标注的 sentence-pair 数据集,发现 NLI 数据集对于学习 sentence embedding 特别有效。

    为了更好地理解 SimCSE 的强大性能,作者借用了 《Understanding contrastive representation learning through alignment and uniformity on the hypersphere》的分析工具,该工具以语义相关的 positive pairs 和整个 representation space 的均匀性uniformity 之间的 alignment 来衡量学到的 embedding 的质量。通过实验分析,作者发现无监督 SimCSE 本质上提高了均匀性,同时通过 dropout noise 避免了 degenerated alignment ,从而提高了 representation 的表达能力。同样的分析表明,NLI 训练信号可以进一步改善 positive pairs 之间的 alignment ,并产生更好的 sentence embedding 。作者还与最近发现的 pre-trained word embeddings 遭受各向异性的现象相联系,并证明(通过谱域的角度)contrastive learning objective "平坦化" 了 sentence embedding space 的奇异值分布,从而提高了 uniformity

    作者在七个标准语义文本相似性semantic textual similarity: STS 任务和七个迁移任务上对 SimCSE 进行了综合评估。在 STS 任务上,无监督SimCSE 和监督 SimCSE 使用 BERT-base 分别实现了 76.3%81.6% 的平均Spearman’s correlation ,与之前的最佳结果相比,分别有 4.2%2.2% 的提高。SimCSE 在迁移任务上也取得了有竞争力的表现。

  2. 相关工作:

    • sentence embedding 的早期工作是通过预测给定句子的周围句子 surrounding sentence 从而基于分布式假说 distributional hypothesis 之上来建立的。

      • 《Unsupervised learning of sentence embeddings using compositional n-gram features》 表明:简单地用 n-gram embedding 来增强 word2vec 的想法会得到强大的结果。

      • 最近的几个(同时进行的)方法通过对同一句子或文档的不同视图(来自数据增强、或模型的不同副本)从而引入 contrastive objective

      • 与这些工作相比,SimCSE 采用了最简单的思想,从标准的 dropout 中获取同一句子的不同输出,在 STS 任务中表现最好。

    • 与无监督的方法相比,监督的sentence embedding 具有更强的性能。

      • InferSent 提出在NLI 数据集上微调一个 Siamese 模型,并进一步扩展到其他 encoderpre-trained model

      • 此外,《ParaNMT-50M: Pushing the limits of paraphrastic sentence embeddings with millions of machine translations》证明:双语的语料和 back-translation 语料为学习语义相似性提供了有用的监督。

    • 另一个工作重点是 regularizing embedding ,以缓解 representation degeneration 问题,并在预训练的语言模型上获得显著的改进。

33.1 模型

33.1.1 Contrastive Learning 的背景

  1. 对比学习contrastive learning 的目的是通过把语义相近的邻居拉到一起、把非邻居推开,从而学习有效的 representation 。它假设一组 paired examplesD={(xi,xi+)}i=1m$ \mathcal D = \left\{\left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right)\right\}_{i=1}^m $ ,其中xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 在语义上相关。我们遵从 《 A simple framework for contrastive learning of visual representations》 的对比学习框架,采用具有 in-batch negativescross-entropy objective :令hi$ \mathbf{\vec h}_i $ 和hi+$ \mathbf{\vec h}_i^+ $ 分别表示xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 的 representation ,那么针对(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ 的、包含N$ N $ 个 pairmini-batchtraining objective 为:

    (5)Li=logexp(sim(hi,hi+)/τ)j=1Nexp(sim(hi,hj+)/τ)

    其中:τ$ \tau $ 是一个温度超参数,sim(h1,h2)=h1h2h1×h2$ \text{sim}\left(\mathbf{\vec h}_1, \mathbf{\vec h}_2\right) = \frac{\mathbf{\vec h}_1\cdot \mathbf{\vec h}_2}{\|\mathbf{\vec h}_1\|\times \|\mathbf{\vec h}_2\|} $ 为余弦相似度。

    在这项工作中,我们使用预训练的语言模型(如 BERTRoBERTa )对输入句子进行编码:h=fθ(x)$ \mathbf{\vec h} = f_\theta\left(\mathbf{\vec x}\right) $ ,然后使用 contrastive learning objective 对所有参数进行微调。

  2. 正样本:对比学习的一个关键问题是如何构建(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ pair 。在 visual representation 中,一个有效的解决方案是将同一张图像的两个随机变换(如裁剪、翻转、变形、旋转)分别作为xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 。最近在 language representation 中也采用了类似的方法,其中采用了删除单词、打乱顺序、以及单词替换等数据增强技术。然而,由于其离散的特性,NLP 中的数据增强本身就很困难。正如我们将在后面介绍的那样,简单地在 intermediate representation 上使用标准的 dropout ,就超越了这些离散的操作。

    NLP 中,类似的 contrastive learning objective 已经在不同的背景下进行了探索。在这些情况下,(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ 是从监督的数据集中收集的,如 question-passage pair 。由于xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 的不同性质,这些方法总是使用 dual-encoder framework ,即对xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 使用两个独立的编码器f1$ f_1 $ 和f2$ f_2 $ 。对于 sentence embedding《An efficient framework for learning sentence representations》 也使用了具有 dual-encoder 的对比学习,将当前句子和下一个句子构成为(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ 。

  3. alignment and uniformity:最近,《Understanding contrastive representation learning through alignment and uniformity on the hypersphere》 确定了与对比学习相关的两个关键属性(即,对齐性 alignment 和均匀性 uniformity ),并提议用它们来衡量 representation 的质量。

    • 给定一个 positive pairppos$ p_\text{pos} $ ,alignment 计算 paired instancesembedding 之间的期望距离(假设 representation 已经被归一化):

      (6)Lalign=E(xi,xi+)pposf(x)f(x+)2
    • 另一方面,uniformity 衡量 embedding 的均匀分布程度:

      (7)Luniform=logE(x,y)i.i.d.pdatae2f(x)f(y)2

      其中pdata$ p_\text{data} $ 表示数据分布。

    这两个指标与对比学习的目标很一致:正样本应该保持接近,而随机样本的 embedding 应该在超球上散开。在下面的章节中,我们还将使用这两个指标来证明我们方法的内部原理。

33.1.2 Unsupervised SimCSE

  1. 无监督 SimCSE 的想法非常简单:取句子集合{xi}i=1m$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^m $ ,然后使用xi+=xi$ \mathbf{\vec x}_i^+ = \mathbf{\vec x}_i $ 。该方法起作用的关键因素是:对xi$ \mathbf{\vec x}_i $ 和xi+$ \mathbf{\vec x}_i^+ $ 使用独立采样的 dropout mask

    Transformer 的标准训练中,在全连接层和 attention probabilities 上有 dropout mask (默认p=0.1$ p=0.1 $ )。我们令hiz=fθ(xi,z)$ \mathbf{\vec h}_i^z = f_\theta(\mathbf{\vec x}_i, z) $ ,其中z$ z $ 是用于 dropoutrandom mask 。我们只需将相同的 input 馈入编码器两次,就可以得到两个具有不同dropout mask (即,z$ z $ 和z$ z^\prime $ )的 embedding ,然后 SimCSE 的训练目标变为:

    (8)Li=logexp(sim(hizi,hizi)/τ)j=1Nexp(sim(hizi,hjzj)/τ)

    其中:N$ N $ 为 mini-batch 包含的样本数量。

    注意:z$ z $ 只是 Transformer 中的标准 dropout mask ,我们不添加任何额外的 dropout

  2. dropout noise 作为数据增强: 我们把它看作是一种最小形式的数据增强,即,positive pair 采取完全相同的句子,它们的 embedding 只在 dropout mask 上有所不同。我们将这种方法与其他 training objectiveSTS-B 验证集上进行比较。

    下表将我们的方法与常见的数据增强技术进行了比较,如裁剪、单词删除、以及单词替换,可以看作是h=fθ(g(x),z)$ \mathbf{\vec h} = f_\theta(g(\mathbf{\vec x}),z) $ ,g()$ g(\cdot) $ 是x$ \mathbf{\vec x} $ 上的一个(随机的)离散操作。我们注意到:即使删除一个词也会损害性能,而且没有一个离散的数据增强能超越 dropout noise

    这里的 w/o dropout 表示没有 dropout,这个时候z=z=0$ z = z^\prime = 0 $ ,因此hi=hi+$ \mathbf{\vec h}_i = \mathbf{\vec h}_i^+ $ 。这时候的训练目标是:将不同的句子推开(并没有将相似的句子拉近)。

  3. 我们还将这个 self-prediction training objectivenext-sentence objective 进行比较,采取一个编码器或两个独立的编码器。如下表所示,我们发现:

    • SimCSE 的表现比 next-sentence objective 要好得多(在 STSB 上为 82.5 vs 67.4 )。

    • 使用一个编码器而不是两个编码器,最终效果有很大的差异。

  4. 为什么能成功:为了进一步了解 dropout noise 在无监督 SimCSE 中的作用,我们在下表中尝试了不同的 dropout rate ,并观察到:

    • 所有的变体都低于 Transformer 中默认的 dropout ratep=0.1$ p=0.1 $ 的效果。

    • 两个极端情况特别有趣,即p=0$ p=0 $ (no dropout)、fixed 0.1 (使用默认的 dropout ratep=0.1$ p = 0.1 $ ,但 pair 使用相同的 dropout mask)。在这两种情况下,pairresulting embedding 是完全相同的,这导致了急剧的性能下降。

      为什么 fixed 0.1 的性能下降得远远超过 no dropout ?论文并未讲原因。

    我们在训练过程中每隔 10step 获取模型的 checkpoint ,并在下图中直观地显示了对齐性 alignment 和均匀性 uniformity 指标。除了 SimCSE 之外,下图还包含一个简单的数据增强模型 "delete one word" 。我们从预训练模型作为初始化。如下图所示:

    • 随着训练的推进(从 pretrained checkpoint 开始),所有的模型都大大改善了均匀性。

      luniform$ \mathcal l_\text{uniform} $ 越小,则均匀性越好。

    • 然而,两个特殊变体的对齐性也急剧下降,而我们的无监督 SimCSE 保持了稳定的对齐性,这要归功于 dropout noise 的使用。

      这也证明了从 pretrained checkpoint 开始是至关重要的,因为它提供了良好的 initial alignment

      lalign$ l_\text{align} $ 越小,则对齐性越好。

    • 最后,"delete one word" 提高了对齐性,但在均匀性指标上取得的收益较小,最终表现不如无监督 SimCSE

33.1.3 Supervised SimCSE

  1. 我们已经证明,添加 dropout noise 能够使 positive pair(xi,xi+)ppos$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right)\sim p_\text{pos} $ 保持良好的对齐。这里我们研究是否可以利用监督数据集来提供更好的训练信号,从而提高 alignment 。已有工作证明(InferSentSBERT),通过预测两个句子之间的关系是蕴含entailment 、中性neutral、还是矛盾contradiction ,监督的自然语言推理natural language inference: NLI 数据集对于学习 sentence embedding 是有效的。在我们的对比学习框架中,我们直接从监督的数据集中提取(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ pair ,并使用它们来优化Li$ \mathcal L_i $ 。

  2. 标记数据的选择:我们首先探索哪些监督数据集特别适合构建 positive pair(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ 。我们用一些有 sentence-pair 样本的数据集进行实验,包括:

    • QQPQuora question pairs

    • Flickr30k :每张图片都有 5 个人类写的 captions ,我们认为同一图片的任何两个 captions 都是 positive pair

    • ParaNMT :一个大规模的 back-translation paraphrase 数据集。

    • NLISNLIMNLI 数据集。

    我们用不同的数据集训练对比学习模型(即,Li$ \mathcal L_i $ ),并在下表中比较结果。为了公平比较,我们也使用相同数量的 training pairs 进行了实验(sample 这一列)。整个数据集的实验结果参考 full 这一列。可以看到:在所有的选项中,使用来自 NLISNLI+MNLI )数据集的 entailment pair 的表现最好。

    我们认为这是合理的,因为 NLI 数据集包括高质量的、来自人类标注的 pairs。另外,人类标注员要根据premises 手动写出 hypotheses ,而且两个句子的 lexical overlap 往往较低。例如,我们发现(SNLI + MNLI )中的 entailment pairlexical overlap (两个 bags of words 之间 F1 来衡量)为 39% ,而 QQPParaNMT 数据集的 lexical overlap60%55%

  3. Contradiction 作为 hard negatives:最后,我们进一步利用 NLI 数据集的优势,将其 contradiction pairs 作为 hard negatives 。在 NLI 数据集中,给定一个premise ,标注员需要手动写出一个绝对真实的句子(entailment ),一个可能是真实的句子(neutral ),以及一个绝对错误的句子(contradiction )。因此,对于每个 premise 和它的 entailment hypothesis ,都有一个伴随的 contradiction hypothesis (见Figure 1 的例子)。

    正式地,我们将(xi,xi+)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+\right) $ 扩展为(xi,xi+,xi)$ \left(\mathbf{\vec x}_i ,\mathbf{\vec x}_i^+,\mathbf{\vec x}_i^-\right) $ ,其中xi$ \mathbf{\vec x}_i $ 是 premise,xi+$ \mathbf{\vec x}_i^+ $ 和xi$ \mathbf{\vec x}_i^- $ 是 entailment hypothesiscontradiction hypothesis。然后,训练目标Li$ \mathcal L_i $ 被定义为(N$ N $ 是 mini-batch 的大小):

    (9)Li=logexp(sim(hi,hi+)/τ)j=1N[exp(sim(hi,hj+)/τ)+exp(sim(hi,hj)/τ)]

    Table 4 (上表)所示,添加 hard negatives 可以进一步提高性能( 84.9 -> 86.2 ),这就是我们的 final supervised SimCSE

    我们还试图加入 ANLI 数据集、或将其与我们的无监督 SimCSE 方法相结合,但没有发现有意义的改进。我们还考虑在监督的SimCSE 中采用双编码器框架,但它损害了性能(86.2 -> 84.2 )。

33.1.4 与各向异性的联系

  1. 最近的工作发现了 language representations 中的各向异性问题 anisotropy problem《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》BERT-Flow),即学到的 embedding 在向量空间中占据一个狭窄的锥体,这严重限制了它们的表达能力。

    • 《Representation degeneration problem in training natural language generation models》 阐述了具有 tied input/output embeddings 所训练的语言模型会导致各向异性的 word embedding

    • 《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》pre-trained contextual representation 中进一步观察到这一点。

    • 《Improving neural language generation with spectrum control》表明,语言模型中 word embedding matrix 的奇异值会急剧衰减:除了几个主导性的奇异值,其他的都接近于零。

    缓解这个问题的一个简单方法是后处理:要么消除主导的主成分 principal component、要么将 embedding 映射到一个各向同性的分布。另一个常见的解决方案是在训练期间添加正则化。在这项工作中,我们表明,无论是理论上还是经验上,contrastive objective 也能缓解各向异性问题。

  2. 各向异性问题与均匀性有天然的联系,两者都强调了 embedding 应该均匀地分布在空间中。直观而言,优化 contrastive learning objective 可以改善均匀性(或缓解各向异性问题),因为该目标将 negative instances 推开。在这里,我们从奇异谱singular spectrum 的角度出发(这是分析 word embedding 的常见做法),并表明 contrastive objective 可以 "flatten" sentence embedding 的奇异值分布,使representations 各向同性。

    遵从 《Understandingcontrastive representation learning through alignment and uniformity on the hypersphere 》 的观点,当 negative instances 的数量接近无穷大时,contrastive learning objective 的渐进可以用以下公式表示(假设f(x)$ f(\mathbf{\vec x}) $ 是归一化的):

    (10)1τE(x,x+)ppos[f(x)f(x+)]+Expdata[logExpdata[ef(x)f(x)/τ]]

    其中:第一项保持positive instances 的相似性,第二项将negative pairs 推开。

    pdata$ p_\text{data} $ 在有限样本{xi}i=1m$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^m $ 上是均匀的,并且令hi=f(xi)$ \mathbf{\vec h}_i = f(\mathbf{\vec x}_i) $ ,则我们可以从第二项与 Jensen 不等式中得出以下公式:

    (11)Expdata[logExpdata[ef(x)f(x)/τ]]=1mi=1mlog(1mj=1mehihj/τ)1τm2i=1mj=1mhihj

    WRm×d$ \mathbf W\in \mathbb R^{m\times d} $ 是对应于{xi}i=1m$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^m $ 的 sentence embedding matrix ,即W$ \mathbf W $ 的第i$ i $ 行为hi$ \mathbf{\vec h}_i $ 。则优化上式中的第二项实质上是最小化WW$ \mathbf W \mathbf W^\top $ 中所有元素的和的上界,即Sum(WW)=i=1mj=1mhihj$ \text{Sum}\left(\mathbf W\mathbf W^\top\right)=\sum_{i=1}^m\sum_{j=1}^m \mathbf{\vec h}_i^\top \mathbf{\vec h}_j $ 。

    由于我们将hi$ \mathbf{\vec h}_i $ 归一化,所以WW$ \mathbf W \mathbf W^\top $ 对角线上的所有元素都是1 ,那么tr(WW)$ \text{tr}\left(\mathbf W\mathbf W^\top\right) $ (所有特征值之和)就是一个常数。根据 《On the trace and the sum of elements of a matrix》,如果WW$ \mathbf W \mathbf W^\top $ 中的所有元素都是正数,如下图所示,大多数时候都是这种情况,那么Sum(WW)$ \text{Sum}\left(\mathbf W\mathbf W^\top\right) $ 是WW$ \mathbf W \mathbf W^\top $ 最大特征值的上界。当最小化上式中的第二项时,我们减少了WW$ \mathbf W \mathbf W^\top $ 的 top eigenvalue ,并内在地 "flatten"embedding 空间的奇异谱 singular spectrum 。因此,对比学习有望缓解 representation degeneration 问题,提高 sentence embedding 的均匀性。

    下图为在不同的 human ratings 分组上, STS-B pairs 的余弦相似度分布(都是正数)。

    余弦相似性就是hihj$ \mathbf{\vec h}_i ^\top \mathbf{\vec h}_j $ ,就是(WW)$ \left(\mathbf W\mathbf W^\top\right) $ 的第i$ i $ 行第j$ j $ 列的元素。human 评分越低,则预期余弦相似性也是更低的(否则说明 sentence emebdding 不好)。

33.2 实验

  1. 我们对 7 个语义文本相似性semantic textual similarity: STS 任务进行了实验。请注意,我们所有的 STS 实验都是完全无监督的,没有使用 STS 训练集。即使是监督的SimCSE ,我们也仅仅是遵从InferSent ,采取额外的标记数据集进行训练。我们还评估了 7 个迁移学习任务。我们与 SBERT 有类似的看法,即 sentence embedding 的主要目标是聚集语义相似的句子,因此将 STS 作为主要结果。

33.2.1 STS 任务

  1. 7STS 任务:STS 2012–2016 (这里包含五个, 每一年内一个)、STS BenchmarkSICK-Relatedness

  2. 在与以前的工作进行比较时,我们在已发表的论文中找出了无效的比较模式,包括:是否使用额外的回归器、Spearman’s vs Pearson’s correlation 、结果的汇总方式。

    • 额外的回归器:

      • 默认的 SentEval 实现在 STS-BSICKRfrozen sentence embedding 的基础上应用线性回归器,并在这两个任务的训练集上训练回归器。

      • 而大多数 sentence representation 论文采用 raw embedding 并以无监督的方式评估。

      在我们的实验中,我们没有应用任何额外的回归器,而是直接对所有的 STS 任务采取余弦相似度。

    • 报告的指标:文献中使用了 Pearson 相关系数和 Spearman 相关系数。《Task-oriented intrinsic evaluation of semantic textual similarity》 认为,Spearman 相关系数衡量的是排名而不是实际分数,它更适合评估 sentence embedding 的需要。对于我们所有的实验,我们报告了 Spearman’s rank correlation

    • 聚合方法:鉴于每年的 STS 挑战赛都包含几个子集,从这些子集中收集结果有不同的选择:

      • 一种方法是将所有的主题串联起来,并报告整体的 Spearman 相关系数,记做 "all"

      • 另一种方法是分别计算不同子集的结果并取其平均值。如果是简单的平均值,则记做 "mean" ;如果按子集大小加权,表示为 "wmean"

    然而,大多数论文并没有说明他们所采取的方法,这使得公平比较具有挑战性。我们以一些最新的工作为例:SBERTBERT-flowBERT-whitening。在下表中,我们将我们的复现结果与 SBERTBERT-whitening 的报告结果进行了比较,发现:SBERT 采取了 "all" 设置,但BERT-flowBERT-whitening 采取了 "wmean" 设置,尽管BERT-flow 声称他们采取的设置与 SBERT 相同。由于 "all" 设置将不同主题的数据融合在一起,使得评价更接近真实世界的场景,除非特别说明,否则我们采取 "all" 设置。

    最终,我们的评估中遵循 SBERT 的设置(没有额外的回归器、采用 Spearman 相关系数,以及 "all" 汇总)。

  3. 我们在下表中列出了以前一些工作的评估设置。有些设置是由论文报告的,有些是通过比较结果和检查其代码推断出来的。我们可以看到:在不同的论文中,评估协议是非常不一致的。我们呼吁在评估 sentence embedding 时统一设置,以利于未来的研究。我们还将发布我们的评估代码,以提高可复现性。

  4. 训练细节:我们从 BERTRoBERTapre-trained checkpoint 开始,将 [CLS] representation 作为 sentence embedding (不同池化方法的比较参考消融实验部分)。我们在英语维基百科的106$ 10^6 $ 个随机采样的句子上训练无监督的 SimCSE ,并在 MNLISNLI 数据集的组合(314k 个样本)上训练有监督的 SimCSE

    这里的 ”有监督/无监督“ 指的是预训练阶段是否用监督数据来预训练,而不是说 target task 是否用监督数据。

    我们用 transformers package 实现 SimCSE

    • 对于有监督的 SimCSE ,我们训练我们的模型3epochs ,在STS-B 的验证集上每 250 个训练步来评估模型,并保留最佳 checkpoint 用于在测试集上进行最终的评估。

    • 对于无监督的 SimCSE ,我们做了同样的工作,只是我们对模型训练了一个 epoch

    注意:在整个过程中,模型没有使用 STS-B 的训练集。

    我们在 STS-B 验证集上进行了网格搜索,其中 batch size 搜索范围 {64, 128, 256, 512} 、学习率搜索范围 {1e-5, 3e-5, 5e-5},并采用下表中的超参数设置。我们发现:只要相应地调优学习率,SimCSEbatch size 并不敏感,这与对比学习需要大batch size 的结论相矛盾(《A simple framework for contrastive learning of visual representations》)。这可能是由于所有的 SimCSE 模型都是从预训练好的 checkpoint 开始的,这已经为我们提供了一套良好的初始参数。

    对于无监督的 SimCSE 和有监督的SimCSE ,我们采用 [CLS] representation ,并且有一个 MLP layer 在其上方,其中这个 MLP layer 的输出作为 sentence representation 。此外,对于无监督的SimCSE ,我们在训练期间包含 MLP layer 但是在测试期间抛弃这个 MLP layer,因为我们发现它能带来更好的性能(参考消融研究的部分)。

    注意:这里不是直接用 [CLS] representation 作为 sentence embedding,而是将 [CLS] representation 经过了一个 MLP layer 映射之后再作为 sentence embedding

    最后,我们再引入一个可选的变体,即在Li$ \mathcal L_i $ 中增加一个 masked language modeling: MLM objective 作为辅助损失:L1+λ×Lmlm$ \mathcal L_1 + \lambda\times \mathcal L_\text{mlm} $ ,其中λ$ \lambda $ 为超参数。这有助于 SimCSE 避免对 token-level knowledge 的灾难性遗忘。正如后面实验部分所示,我们发现增加这个 MLM objective 可以帮助提高迁移任务的性能(而不是 sentence-level STS 任务)。

  5. Baseline 方法:我们将无监督的 SimCSE 和有监督的 SimCSE 与在 STS 任务上之前 SOTAsentence embedding 方法进行比较。

    • 无监督 baseline 包括 average GloVe embeddingaverage BERT/RoBERTa embedding ,以及后处理方法(如 BERT-flowBERT-whitening )。

    • 我们还与最近几个使用 contrastive objective 的方法进行了比较,包括:

      • IS-BERT:它使全局特征和局部特征之间的 agreement 最大化。

      • DeCLUTR:它将同一文件的不同 spans 作为 positive pair

      • CT:它将来自两个不同编码器的同一句子的 embedding 进行对齐。

    • 其他监督方法包括 InferSentUniversal Sentence EncoderSBERT/RoBERTa ,它们采用后处理方法(如 BERT-flowwhitening、 以及 CT )。

    其中:

    • 对于 average GloVe embeddingInferSentUniversal Sentence Encoder,我们直接报告 SBERT 的结果,因为我们的评估设置与他们相同。

    • 对于 BERTRoBERTa ,我们从 HuggingFace 下载预训练的模型权重,并用我们自己的脚本评估模型。

    • 对于 SBERTSRoBERTa ,我们重新使用原始论文的结果。对于原始论文没有报告的结果,例如 SRoBERTa 在迁移任务上的表现,我们从 SentenceTransformers 下载模型权重并进行评估。

    • 对于 DeCLUTRcontrastive tension ,我们在我们的环境中重新评估他们的 checkpoint

    • 对于 BERT-flow ,由于他们的原始数字采取了不同的设置,我们使用他们的代码重新训练他们的模型,并使用我们自己的脚本评估模型。

    • 对于 BERT-whitening ,我们按照原始论文中相同的池化方法,即 first-last average pooling ,实现了我们自己版本的 whitening 脚本。我们的实现可以复现原始论文的结果(见 Tabele B.2 )。

    • 对于 BERT-flowBERT-whitening ,它们都有两种后处理的变体:一种是采用 NLI 数据("NLI" )、另一种是直接学习目标数据集上的 embedding 分布("target")。我们发现,在我们的评估环境中,"target" 通常比 "NLI" 差(如下表所示 ),所以我们在主要结果中只报告了"NLI" 变体。

  6. 下表显示了 7STS 任务的评估结果。可以看到:无论是否有额外的 NLI 监督,SimCSE 都能在所有的数据集上大幅提高结果,大大超过了以前的 SOTA 模型。具体来说:

    • 我们的无监督 SimCSE-BERT_base 将以前的最佳平均 Spearman 相关系数从 72.05% 提高到 76.25% ,甚至可以与有监督的 baseline 相媲美。

    • 当使用 NLI 数据集时,SimCSE-BERT_base 进一步将SOTA 的结果推到 81.57% 。在 RoBERTa 编码器上的收益更加明显,我们的监督 SimCSERoBERTa_large 上达到了 83.76%

  7. 由于以前的工作使用了与我们不同的评估协议,我们在这些设置中进一步评估了我们的模型,以便与公布的数字进行直接比较。我们用 "wmean"Spearman's correlation 来评估 SimCSE ,以直接与BERT-flowBERT-whitening 进行比较,如下表所示。

33.2.2 迁移任务

  1. 我们在以下迁移任务中评估我们的模型:MRCRSUBJMPQASST-2TRECMRPC 。在不同方法产生的(frozen 的) sentence embedding 的基础上训练一个逻辑回归分类器。我们遵循 SentEval 的默认配置。迁移任务的评估结果如下表所示,可以看到:

    • 有监督的 SimCSE 的表现与以前的方法相当或更好,尽管无监督模型的趋势仍不清楚。

    • 增加 MLM 目标一致地提高迁移任务的性能,证实了我们的直觉,即 sentence-level objective 可能不会直接有利于迁移任务。

    • 与基础模型相比,后处理方法(BERTflow/whitening )都伤害了性能,表明 representation 的良好的均匀性并不能为迁移学习带来更好的 embedding

      下表中没有 BERTflow/whitening 的内容,所以结论没有数据支撑?

    正如我们前面所论证的,我们认为迁移任务不是 sentence embedding 的主要目标,因此我们把 STS 的结果作为主要比较对象。

33.2.3 消融研究

  1. 我们研究了不同的池化方法、 hard negatives 、归一化、温度、MLM objective 的影响。本节中所有报告的结果都是基于 STS-B 验证集。

  2. 池化方法:SBERTBERT-Flow 表明,采用预训练模型的average embeddings (特别是来自第一层的 embedding 和最后一层的 embedding )导致了比 [CLS] representation 更好的性能。下表显示了在无监督的 SimCSE 和有监督的 SimCSE 中不同池化方法的比较。对于 [CLS] representation ,原始的BERT 实现在其之上采取了一个额外的 MLP 层。这里,我们考虑对 [CLS] 的三种不同设置:具有 MLP 层、没有 MLP 层、在训练期间保留MLP 层但是在测试时将其删除(即 w/MLP(train))。我们发现:

    • 对于无监督的SimCSE 来说,在训练期间保留MLP 层但是在测试时将其删除,这种方法的效果最好。

    • 对于有监督的 SimCSE 来说,不同的池化方法并不重要。

    默认情况下,对于无监督的SimCSE ,我们采用 [CLS] with MLP (train) ;对于有监督的SimCSE ,采用 [CLS] with MLP

  3. hard negatives:直观而言,将 hard negativescontradiction 样本)与其他 in-batch negatives 区分开来可能是有益的。因此,我们扩展了监督 SimCSEtraining objective ,以纳入不同 negatives 的权重:

    (12)Li=logexp(sim(hi,hi+)/τ)j=1N[exp(sim(hi,hj+)/τ)+αIijexp(sim(hi,hj)/τ)]

    其中:Iij{0,1}$ \mathbb I^{j}_i\in \{0,1\} $ 为一个示性函数,当且仅当i=j$ i = j $ 时等于 1,否则等于 0α$ \alpha $ 为超参数。

    我们用不同的α$ \alpha $ 值训练 SimCSE ,并在STS-B 的验证集上评估训练好的模型。我们还考虑将neutral 样本作为 hard negatives (权重固定为 1.0 )。如下表所示,α=1$ \alpha = 1 $ 的表现最好,neutral 样本不会带来进一步的收益。

    这里有两种 hard 负样本:contradiction 样本、neutral 样本。

  4. 归一化和温度:我们分别使用点积和余弦相似性在不同的温度下训练 SimCSE ,并在 STS-B 验证集上评估它们。如下表所示:在精心调整的温度τ=0.05$ \tau = 0.05 $ 的情况下,余弦相似性比点积更好。

    NA 表示点击相似性;其它列表示余弦相似性。

  5. MLM 辅助任务:最后,我们研究不同λ$ \lambda $ 的 MLM 辅助目标的影响。如下表所示,token-level MLM objective 对迁移任务的平均性能带来适度的改善,但它在 STS-B 任务中带来了持续的下降。

33.2.4 原理洞察

  1. 这里我们进行进一步分析,以了解 SimCSE 的内部工作。

    • uniformity and alignment:下图显示了不同 sentence embedding 模型的均匀性和对齐性以及它们的平均 STS 结果。一般来说,具有较好对齐性和均匀性的模型能取得较好的性能,证实了 《Understanding contrastive representation learning through alignment and uniformity on the hypersphere》 的发现。我们还观察到:

      • 虽然预训练的 embedding 具有良好的对齐性,但其均匀性较差(即 embedding 是高度各向异性的)。

      • BERT-flowBERT-whitening 这样的后处理方法极大地改善了均匀性,但也遭受了对齐性的退化。

      • 无监督的 SimCSE 有效地改善了预训练的 embedding 的均匀性,同时保持了良好的对齐性。

      • SimCSE 中加入监督数据,进一步改善了对齐性。

    • 定性比较:我们使用 SBERT_baseSimCSE-BERT_base 进行了一个小规模的检索实验。我们使用 Flickr30k 数据集中的 150kcaption ,并采取任何随机的句子作为query 来检索相似的句子(基于余弦相似度)。如下表中的几个例子所示,与SBERT 检索到的句子相比,SimCSE 检索到的句子质量更高。

  2. 奇异值的分布:下图显示了 SimCSE 与其他 baseline 的奇异值分布(sentence embedding 矩阵)。

    • 对于无监督的情况,奇异值下降最快的是普通的 BERT embedding ;对于有监督的情况,奇异值下降最快的是 SBERT embedding 。而 SimCSE 有助于平坦化频谱分布。

    • 基于后处理的方法,如 BERT-flowBERT-whitening 使曲线更加平坦,因为它们直接旨在将 embedding 映射到各向同性分布。

  3. 为了直接显示我们的方法在 STS 任务上的优势,我们在下图中说明了具有不同 human ratings 组的 STS-Bpair 的余弦相似度分布。可以看到:

    • 与所有的 baseline 模型相比,无监督 SimCSE 和有监督SimCSE 都能更好地区分具有不同程度相似性的 sentence pair ,从而在 STS 任务上有更好的表现。

    • 此外,SimCSE 通常显示出比 BERTSBERT 更分散的分布,但与 whitened distribution 相比,也在语义相似的 sentence pair 上保留了较低的方差。这一观察结果进一步验证了 SimCSE 可以实现更好的 alignment-uniformity balance

      即,SimCSE 的分布既不像 BERT_base-whitening 一样过于分散、也不像 BERT_base 一样过于集中。

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

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

发布评论

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