三十一、USE[2018]

  1. 对于许多 NLP 任务来说,可用的训练数据数量有限。这给 data hungry 的深度学习方法带来了挑战。鉴于标注监督训练数据的成本很高,对于大多数 NLP 任务来说,通常无法获得非常大的训练集。许多模型通过使用预训练的 word embedding (如 word2vecGloVe 产生的 word embedding),隐式地进行有限的迁移学习来解决这个问题。然而,最近的工作表明,使用 pre-trained sentence level embedding 在下游任务有很强的表现。

    在论文 《Universal Sentence Encoder》 中,作者提出了两个用于产生 sentence embedding 的模型,这些模型显示了对其他一些 NLP 任务的良好迁移。作者在下游任务上包含不同数量的训练数据进行实验,作者发现,所提出的 sentence embedding 可以用非常少的 task specific 训练数据来获得令人惊讶的良好任务表现。

    此外,作者还讨论了关于内存需求、以及 CPU/GPU 上的计算时间的 trade-off 。作者还对不同长度的句子进行了资源消耗比较。

31.1 模型

  1. 我们提供了两个新的模型来将句子编码为 embedding 向量。一个利用了 Transformer 架构,另一个为深度平均网络 deep averaging network: DAN 。这两个模型都是在 TensorFlow 中实现的,并可从 TF Hub 下载。这两个模型将英语字符串作为输入,并产生固定维度的 embedding representation 作为输出。

    这里提供了一个最小的 code snippet ,将一个句子转换成一个 sentence embedding

    所得到的 embedding tensor 可以直接使用,也可以纳入更大的 model graph 中从而用于特定的任务。如下图所示, sentence embedding 可以很简单地用于计算 sentence level 的语义相似性分数,在semantic textual similarity: STS 基准上取得优异的表现。当被包含在更大的模型中时, sentence encoding model 可以为特定任务进行微调。

  2. 这里介绍了我们两个编码模型的模型结构。这两个编码器有不同的设计目标:基于 Transformer 架构的编码器以高准确性为目标,代价是更大的模型复杂性和资源消耗;基于 DAN 架构的编码器以高效推理为目标,代价是略低的准确性。

    • Transformer:在Transformer 中,我们通过对句子中每个 word representation 进行相加,从而得到 sentence representation 。具体而言,编码器将小写的 PTB tokenized string 作为输入,并输出一个 512 维的向量来作为 sentence embedding

      编码器模型被设计为尽可能的通用,这是通过使用多任务学习来实现的:单个编码器模型被用来支持多个下游的任务。支持的任务包括:

      • 类似 Skip-Thought 的任务,用于从任意的文本中进行无监督学习。Skip-Thought 任务用一个基于 Transformer 架构的模型取代了原始论文中使用的 LSTM

      • 对话式的 input-response 任务,用于包含对话数据。

      • 分类任务,用于监督数据的训练。

      正如实验部分所示,基于 Transformer 的编码器实现了最佳的整体迁移性能。然而,这是以计算时间和内存用量随句子长度急剧增加为代价的。

    • Deep Averaging Network: DAN:针对 wordbi-graminput embedding 首先进行平均,然后馈入一个深度前馈神经网络来产生 sentence embedding 。同样地,DAN encoder 将小写的 PTB tokenized string 作为输入,并输出一个 512 维的向量来作为 sentence embeddingDAN encoder 的训练方式与 Transformer-based encoder 类似。我们利用多任务学习,即用一个 DAN encoder 来为多个下游任务提供 sentence embedding

      DAN encoder 的主要优点是计算时间与输入序列的长度成线性关系。与 《Deep unordered composition rivals syntactic methods for text classification》 类似,我们的结果表明,DAN 在文本分类任务上取得了强大的 baseline 性能。

    Transformer-based encoder 是在最后融合多个 wordrepresentation,然后融合结果直接输出;DAN encoder 是首先融合多个 wordrepresentation,融合结果通过深度前馈神经网络进行非线性变换并最后输出。

    这两个模型都需要从头开始训练,而没有使用 pre-trained model 来初始化。

31.2 实验

  1. 训练 Encoder 的训练数据:

    • sentence encoding model 的无监督训练数据来自各种网络资源,包括维基百科、网络新闻、网络问答网页和讨论区。

    • 我们通过对 Stanford Natural Language Inference: SNLI 语料库中的监督数据进行训练来增强无监督学习。与InferSent的发现类似,我们观察到对 SNLI 的训练提高了迁移性能。

  2. Transfer Task (即,下游任务):这里介绍了用于迁移学习实验的数据,还介绍了描述 model biasWord Embedding Association Test: WEAT 数据。下表总结了每个数据集的测试集大小,还总结了验证集大小和训练集大小(如果有的话)。

    • Movie Review: MR:电影评论片段的情绪,以五星评级为标准。

    • Customer Review: CR:从客户评论中挖掘出来的句子的情感。

    • SUBJ:从电影评论和剧情摘要中挖掘的句子的主观感受 subjectivity

    • MPQA:来自新闻数据的短语级别的意见的极性 polarity

    • TREC:来自 TREC 的细粒度的 question classification

    • SST:二元短语级别的情感分类 sentiment classification

    • STS Benchmark:句子对之间的 semantic textual similarity: STS ,通过与人类判定的皮尔逊相关性进行评分。

    • WEAT:来自心理学文献的隐性关联测试(implicit association test: IAT )的 word pair ,用于描述模型的 bias

  3. 迁移学习方法:

    • 对于 sentence classification 迁移任务,Transformer sentence encoderDAN sentence encoder 的输出被馈入一个 task specific DNN

    • 对于 pairwise semantic similarity 迁移任务,我们通过以下公式直接评估由Transformer sentence encoderDAN sentence encoder 产生的 sentence embedding 的相似性:

      (1)sim(u,v)=(1arccos(uvu×v)/π)

      我们首先计算两个 sentence embedding 的余弦相似度,然后使用 arccos 将余弦相似度转换成角度距离。

      为什么不能直接使用余弦相似度,反而转换成角度?作者并未解释原因。实际上,余弦相似度更为常见。

  4. baseline:对于每个下游任务,我们包括只利用 word level transferbaseline,以及完全不利用迁移学习的 baseline

    • word level transfer:我们使用在新闻数据语料库上训练的 word2vec skip-gram 模型的 word embeddingpretrained word embedding 被作为两种模型的输入:convolutional neural network: CNN 模型、DAN 模型。

    • 完全不利用迁移学习:直接用 CNNDAN 在不使用任何 pretrained word embeddingpretrained sentence embedding 的情况下训练。

  5. 结合 sentence level 迁移和 word level 迁移(Combined Transfer):我们将这两种方法结合起来,将 combined representation 馈入下游任务的分类层。

    此外,我们我们还探讨了将 sentence level 的迁移学习的 representation 、以及不使用 word level 的迁移学习的 baselinerepresentation 拼接起来。

  6. 下游任务的超参数用 Vizier 和轻度的人工调优相结合的方式来调优。模型超参数在任务的验证集(如果有的话)上调优,否则在训练集(如果有的话)上交叉验证来调优。如果既没有训练集也没有验证集,那么通过测试集来调优。每个下游任务的模型用不同的随机初始化权重重复训练 10 次,我们报告平均结果。

    当下游任务的训练数据有限时,迁移学习是至关重要的。我们探讨了在使用和不使用迁移学习的情况下,改变下游任务可用的训练数据量对该任务性能的影响。对比 Transformer-based encoderDAN-based encoder ,我们展示了模型的复杂度、以及所需的数据量之间的 tradeoff 从而达到任务的目标准确性。

    为了评估我们的 encoder模型的 bias ,我们评估了我们的模型在 WEAT 单词列表上学到的各种关联的强度。我们将我们的结果与《Semantics derived automatically from language corpora contain human-like biases》的结果进行了比较,他们发现 word embedding 可以用来重现人类在隐式关联任务上的表现,包括良性的关联和潜在的不良关联。

  7. 下表给出了下游任务的表现。可以看到:

    • Transformer-based encoder 的迁移学习通常表现得和 DAN-based encoder 的迁移学习一样好或更好。

    • 对于某些任务来说,使用更简单、更快的 DAN encoder 的迁移学习,可以和更复杂的 Transformer encoder 的表现一样好甚至更好。

    • 利用 sentence level 的迁移学习的模型,往往比只使用 word level 的迁移学习的模型表现更好。

    • 大多数任务的最佳表现是由同时使用 sentence levelword level 迁移学习的模型获得的。

  8. 下表说明了不同数量的训练数据的下游任务性能。可以看到:

    • 对于较少的数据量,sentence level 的迁移学习可以获得令人惊讶的任务表现。

    • 随着训练集规模的增加,不使用迁移学习的模型接近于使用迁移学习的模型的性能。

  9. 下表对比了 GloVe embeddingbiasDAN embeddingbias

    • GloVe 类似,我们的模型再现了在 flowers vs. insectspleasantness vs. unpleasantness 之间的 human association

    • 然而,我们的模型在针对揭示年龄歧视、种族主义、以及性别歧视的 probe 方面显示出比 GloVe 更弱的关联。

    word association pattern 的差异可归因于训练数据构成的差异、以及 task mixture (这些任务用于训练 sentence embedding)。

  10. 资源使用:这里给出了在不同的句子长度下,Transformer encoderDAN encoder 的内存用量和计算资源,如下图所示。

    • 计算资源:Transformer encoder 的时间复杂度是句子长度的 O(n2) ,而 DAN encoderO(n)

      • 对于短句子,Transformer encoder 只比简单得多的 DAN encoder 慢一些。然而,随着句子长度的增加,Transformer encoder 的计算时间明显增加。

      • 相反,DAN encoder 的计算时间随着句子长度的增加几乎保持不变。由于 DAN encoder 的计算效率非常高,对于 Transformer encoder来说,使用 GPU 而不是 CPU 往往会有更大的实际影响。

    • 内存用量:与计算资源类似,Transformer encoder 的内存用量随着句子长度的增加而迅速增加,而 DAN encoder 的内存用量保持不变。

      我们注意到,对于 DAN encoder 来说,内存的使用主要是由用于存储模型的 unigram embeddingbigram embedding 的参数所支配。由于 Transformer encoder 只需要存储 unigram embedding ,因此对于短句来说,Transformer encoder 需要的内存几乎是 DAN encoder 的一半。

三十二、Sentence-BERT[2019]

  1. 在论文 《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》 中,作者提出了 Sentence-BERT: SBERT ,这是一种使用 siamese networktriplet network 来针对 BERT 网络的修改,能够得出有语义的 sentence embedding 。这使得 BERT 能够用于某些新的任务,而这些任务到现在为止还不适用于 BERT 。这些任务包括大规模的语义相似性比较、聚类、以及通过语义搜索 semantic search 进行信息检索 information retrieval

    BERT 在各种句子分类、以及 sentence-pair regression 任务上创造了新的 SOTA 性能。BERT 使用一个 cross-encoder :两个句子被馈入 transformer 网络,然后 transformer 网络预测出 target value 。然而,由于可能的组合太多,这种 setup 不适合于各种 pair regression 任务。例如,在 n=10000 个句子的集合中,找到相似度最高的一对句子,需要用 BERT 执行 n(n1)/2=49995000 次推理计算。 在一个现代的 V100 GPU 上,这需要大约 65 个小时。类似地,在 Quora 的超过 40M 个现有问题中,找到与一个新问题最相似的问题,可以用 BERT 建模为 pair-wise comparison ,然而,对每个新问题需要 50 多个小时才能找到最相似的问题(在已有的所有问题中)。

    解决聚类和语义搜索的一个常见方法是,将每个句子映射到一个向量空间,使得在这个向量空间中,语义相似的句子就会很接近。研究人员已经开始将单个句子输入 BERT ,并得出固定尺寸的 sentence embedding 。最常用的方法是对 BERT 输出层(即,BERT embedding )进行均值池化、或者使用第一个 token(即,[CLS] token)的输出。正如论文将展示的,这种常见的做法产生了相当糟糕的 sentence embedding ,往往比 GloVe embedding 的均值池化更糟糕。

    为了缓解这个问题,论文 《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》 开发了 SBERTsiamese network 使得可以导出针对输入句子的固定尺寸的 representation 向量。然后使用像余弦相似性、或曼哈顿/欧几里得距离这样的相似性度量,可以找到语义上相似的句子。这些相似度度量可以在现代硬件上极其有效地进行,使 SBERT 可以用于语义相似度搜索、以及聚类。在 10000 个句子的集合中寻找最相似的 sentence pair 的复杂性,从使用 BERT65 小时减少到使用 SBERT 的几秒钟(计算 10000sentence embedding 耗费 SBERT5 秒,计算余弦相似度约 0.01 秒)。通过使用优化的 index 结构,寻找最相似的 Quora 问题可以从 50 小时减少到几毫秒。

    论文在 NLI 数据上对 SBERT 进行了微调,它所创建的 sentence embedding 明显优于其他 SOTAsentence embedding 方法,如 InferSentUniversal Sentence Encoder

    • 在七个 Semantic Textual Similarity: STS 任务上,SBERT 相对 InferSentUniversal Sentence Encoder 分别实现了 11.7 分和 5.5 分的改进。

    • sentence embedding 的评估工具包 SentEval 上,SBERT 相对 InferSentUniversal Sentence Encoder 分别实现了2.1 分和 2.6 分的改进。

    SBERT 可以适配特定的任务。它在一个具有挑战性的 argument similarity 数据集、以及一个区分维基百科文章不同部分的句子的 triplet dataset 上创造了新的 SOTA 性能。

  2. 相关工作:

    • BERTBERT 是一个预训练的 transformer 网络,它为各种 NLP 任务提供了新的 SOTA 的结果,包括问答、句子分类、sentence-pair regression 。用于sentence-pair regressionBERT 的输入由两个句子组成,由一个特殊的 [SEP] token 分开。BERTSemantic Textual Semilarity: STS benchmark 上创造了新的 SOTA 性能。RoBERTa 表明,BERT 的性能可以通过对预训练过程的小的调整来进一步提高。我们还测试了 XLNet ,但它导致的结果总体上比 BERT 更差。

      BERT 网络结构的一个很大的缺点是没有计算独立的 sentence embedding ,这使得很难从 BERT 中得出 sentence embedding 。为了绕过这一限制,研究人员将单个句子馈入 BERT ,然后通过将所有输出取平均(类似于对句子中所有单词的 word embedding 取平均)、或使用特殊的 [CLS] token 的输出,从而得出一个固定尺寸的向量。这两个方法也由流行的 bert-as-a-service-repository 所提供。据我们所知,到目前为止,还没有评估这些方法是否会导致有用的 sentence embedding

    • sentence embeddingsentence embedding是一个被充分研究的领域,人们已经提出了数十种方法。

      • Skip-Thought 训练了一个 encoder-decoder 架构来预测 surrounding sentences

      • InferSent 使用 Stanford Natural Language Inference: SNLI 数据集、和 Multi-Genre NLI 数据集的标记数据来训练一个 siamese BiLSTM network ,并对输出进行最大池化。 实验结果表明,InferSent 一直优于 SkipThought 等无监督的方法。

      • Universal Sentence Encoder 训练了一个 transformer 网络(使用类似于 Skip-Thought 的无监督学习),并通过对 SNLI 的训练增强了无监督学习。

      • FastSent 表明,训练 sentence embedding 的任务对其质量有很大影响。

      • 之前的工作(InferSent《Universal Sentence Encoder》)发现:SNLI 数据集适合训练 sentence embedding

      • 《Learning Semantic Textual Similarity from Conversations》提出了一种使用 siamese DAN 网络和 siamese transformer 网络对 Reddit 的对话进行训练的方法,在 STS benchmark 数据集上取得了良好的效果。

      • 《Real-time Inference in Multi-sentence Tasks with Deep Pretrained Transformers》 解决了来自 BERTcross-encoder 的运行时间开销,并提出了一种方法( poly-encoders )通过 attention 来计算 m 个上下文向量和 precomputed 的候选 embedding 之间的分数。这个想法对于在更大的集合中寻找最高得分的句子是有效的。然而, poly-encoders 有一个缺点,即 score function 不是对称的,而且计算开销对于像聚类这样的 case 来说太大(O(n2)score computation )。

      以前的 neural sentence embedding 方法是从随机初始化开始训练的。这里我们使用预训练好的 BERT 网络和 RoBERTa 网络,只对其进行微调以产生有用的 sentence embedding 。这大大减少了所需的训练时间。SBERT 可以在不到 20 分钟内完成微调,同时产生比其它 sentence embedding 方法更好的结果。

32.1 模型

  1. SBERTBERT/RoBERTa 的输出上增加了一个池化操作,从而获得一个固定尺寸的 sentence embedding 。我们试验了三种池化策略:使用 CLS-token 的输出、均值池化策略MEAN-strategy (计算所有输出向量的平均值)、最大池化策略MAX-strategy (沿着position 维度计算输出向量的最大值)。默认配置是均值池化策略。

  2. 为了微调 BERT/RoBERTa ,我们创建了 siamese networktriplet network 来更新权重,使得产生的 sentence embedding 具有语义,并可以用余弦相似度进行比较。网络结构取决于可用的训练数据。我们试验了以下网络结构和目标函数:

    • Classification Objective Function:我们将 sentence embedding uv、以及它们之间的逐元素差进行拼接,然后乘以权重矩阵 WtRK×(3d)

      (2)o=softmax(Wt[u,v,|uv|])

      其中:dsentence embedding 维度,Klabel 的数量,[] 为向量拼接。

      我们优化交叉熵损失。整体结构如下图所示。

    • Regression Objective Function:我们计算 sentence embedding uv 之间的余弦相似度,如下图所示。我们使用mean-squared-error:MSE loss 作为目标函数。

    • Triplet Objective Function:给定一个锚点句子anchor sentence a ,一个 positive sentence p 和一个 negative sentence ntriplet loss 使得 ap 之间的距离小于 an 之间的距离。在数学上讲,我们最小化以下损失函数:

      (3)max(saspsasn+ϵ,0)

      其中:ssentence embedding 为距离函数,ϵmargin (使得 spsn 更接近 sa 至少 ϵ 的距离)。

      在我们的实验中,我们使用欧氏距离并设置 ϵ=1

  3. 训练细节:我们在 SNLIMulti-Genre NLI 数据集的组合上训练 SBERT

    • SNLI 包含 570ksentence pair ,并被标注了矛盾 contradiction 、蕴含 eintailment 、以及中性 neutral 等三种标签。

    • MultiNLI 包含了 430ksentence pair ,涵盖了一系列的口语的和书面语的体裁。

    我们用 3-way softmax classifier objective functionSBERT 进行了微调,微调一个 epoch 。我们使用 batch size = 16Adam 优化器(学习率为 2e-5 ),并使用线性学习率调度,其中在 10% 的训练数据上进行学习率预热。我们默认的池化策略是均值池化。

    注意:根据论文在相关工作中的介绍,论文使用 pretrained BERT/RoBERTa 来初始化模型。因此这里的微调更像是“预微调”,即预训练和微调中间的步骤。

32.2 实验

32.2.1 Semantic Textual Similarity

  1. 我们评估了 SBERT在常见的语义文本相似性 Semantic Textual Similarity: STS 任务中的表现。SOTA 的方法通常学习一个(复杂的)回归函数,将 pair-wise sentence embedding 映射到相似性分数。然而,这些回归函数是 pair-wise 工作的,可扩展性很差。相反,我们总是使用余弦相似度来比较两个 sentence embedding 之间的相似度。

    我们还用负曼哈顿距离、以及负欧氏距离作为相似度指标来进行实验,但所有方法的结果都大致相同。

  2. 无监督 STS:我们在不使用任何 STS-specific 训练数据的情况下评估了 SBERTSTS 中的表现。我们使用 2012-2016 年的 STS 任务、STS benchmarkSICK-Relatedness 数据集。这些数据集对 sentence pair 的语义相关度提供了 0 ~ 5 的标签。我们使用sentence embedding 余弦相似度和 ground-truth 之间的 Spearman’s rank correlation (而不是 Pearson correlation)。

    Spearman’s rank correlation:首先将原始数据排序,然后为每个数据赋予一个 rank 。对于两组数据,分别计算它们各自 rank 序列的皮尔逊相关系数:

    (4)ρ=i(xix¯)(yiy¯)i(xix¯)2(yiy¯)2

    Pearson correlation 就是对原始数据直接计算相关系数。

    实验结果如下表所示。可以看到:

    • 直接使用 BERT 的输出会导致相当差的性能。对 BERT embedding 的均值池化只达到了 54.81 的平均相关度,而使用 CLS-token 输出只达到了 29.19 的平均相关度。两者都比计算 GloVe embedding 的均值要更差。

    • 使用所描述的 siamese network 结构和微调机制大大改善了相关性,大大超过了 InferSentUniversal Sentence Encoder 的表现。

      SBERT 表现比 Universal Sentence Encoder 差的唯一数据集是 SICK-RUniversal Sentence Encoder 是在各种数据集上训练的,包括新闻、问答网页和讨论区,这似乎更适合 SICK-R 的数据。相比之下,SBERT 只在维基百科(通过 BERT )和 NLI 数据上进行了预训练。

    • 虽然 RoBERTa 能够提高几个监督任务的性能,但我们只观察到 SBERTSRoBERTa 在生成 sentence embedding 方面的微小差异。

  3. 监督 STSSTS benchmark: STSb 是一个流行的数据集,用于评估有监督的 STS系统。数据集包括来自 caption 、新闻、以及论坛三个 category8628sentence pair 。它被分为训练集(5749 个样本 )、验证集(1500 个样本)、测试集(1379 个样本)。BERT 在这个数据集上创造了新的 SOTA 的性能,它将两个句子都传给了网络,并使用简单的回归方法进行输出。

    我们使用训练集,利用 regression objective functionSBERT 进行微调。在预测时,我们计算 sentence embedding 之间的余弦相似度。所有系统都是用 10 个随机种子进行训练从而考虑方差。

    读者猜测:回归目标是在余弦相似度之上进行的,因此两个 sentence embedding 越相似则 output 越大。

    实验结果如下表所示。我们用两种设置进行了实验:只在 STSb 上训练、先在NLI 上训练然后在 STSb 上训练(即,利用 NLI 数据进行预微调)。我们观察到:

    • SBERT 上,第二种策略导致了 1-2 分的轻微改善。

    • BERT 上,第二种策略导致了 3-4 分的轻微改善。

    • 我们没有观察到 BERTRoBERTa 之间的显著差异。

    注意:这里的 BERT-NIL-STSb-base 用的是 pair-wiseBERT,而不是 Avg. BERT embeddings

  4. Argument Facet Similarity: AFS:我们在 AFS 语料库上评估 SBERTAFS 语料库标注了来自社交媒体对话的 6ksentential argument pair ,涉及三个有争议的话题:枪支管制、同性恋婚姻、死刑。这些数据被标注为从0 ("不同的话题")到5 ("完全等同")的等级。

    AFS 语料库中的相似性概念与 STS 数据集中的相似性概念相当不同。STS 数据通常是描述性的,而 AFS 数据是对话中的争论性摘录 argumentative excerpt 。要被认为是相似的,论点 argument 不仅要提出相似的主张,而且要提供相似的推理 reasoning 。 此外,AFS 中的句子之间的词汇差距 lexical gap 要大得多。因此,简单的无监督方法以及 SOTASTS 系统在这个数据集上表现很差。

    我们在两种场景中在这个数据集上评估 SBERT

    • 我们使用 10-fold cross-validation 来评估 SBERT 。这种评估设置的一个缺点是,不清楚方法对不同主题的泛化性如何。

    • 我们在 cross-topic setup 上评估 SBERT 。我们在两个主题上训练,在剩余的主题上评估。我们对所有三个主题重复这一过程,并对结果进行平均。

      第二种方法可以评估在 unseen 主题上的表现。

    SBERT 使用 Regression Objective Function 进行微调。相似性得分是使用基于 sentence embedding 的余弦相似性来计算的。我们还提供了皮尔逊相关系数 r ,然而我们表明皮尔逊相关系数有一些严重的缺点,应该避免用于比较 STS 系统。

    实验结果如下表所示,可以看到:

    • tf-idfaverage GloVe embedding 、或 InferSent 这样的无监督方法在这个数据集上表现得相当糟糕,得分很低。

    • 10-fold cross-validation setup 中训练 SBERT ,其性能几乎与 BERT 相当。

    • 然而,在跨主题评估中,我们观察到 SBERT 的性能在 Spearman correlation 指标下降了约 7 个点。

      为了被认为是相似的,论点应该涉及相同的主张并提供相同的推理。BERT 能够使用注意力机制来直接比较两个句子(例如 word-by-word 的比较),而 SBERT 必须把来自 unseen 的主题的单个句子映射到一个向量空间,从而使具有类似主张 claim 和理由 reason 的论点接近。这是一个更具挑战性的任务,这似乎需要超过两个主题的训练,才能与 BERT 相媲美。

  5. Wikipedia Sections Distinction《Learning Thematic Similarity Metric from Article Sections Using Triplet Networks》 使用维基百科为 sentence embedding 方法创建了一个主题细化的训练集、验证集、以及测试集。Wikipedia 的文章被分成不同的章节,每个章节聚焦于某些方面。该论文假设:同一章节的句子比不同章节的句子在主题上更接近。他们利用这一点创建了一个大型的弱标记的 sentence triplet 数据集:anchor 样本和正样本来自同一章节,而负样本来自同一文章的不同章节。

    我们使用该数据集。我们使用 Triplet Objective,在大约 1.8Mtraining triplet 上训练 SBERT 一个 epoch,然后在 222,957test triplet 上评估。我们使用准确率作为评估指标:正样本是否比负样本更接近 anchor

    结果如下表所示。 《Learning Thematic Similarity Metric from Article Sections Using Triplet Networks》 提出的 Bi-LSTM 方法微调了具有 triplet lossBi-LSTM 架构,从而得到 sentence embedding (下表中 Dor et al. 这一行的结果)。可以看到:SBERT 显著优于 Bi-LSTM 方法。

32.2.2 SentEval

  1. SentEval 是一个流行的工具包,用于评估 sentence embedding 的质量。sentence embedding 被用作逻辑回归分类器的特征。逻辑回归分类器在 10-fold cross-validation setup 中对各种任务进行训练,并计算 test-fold 的预测准确率。

    SBERT sentence embedding 的目的不是为了用于其他任务的迁移学习。我们认为针对新任务微调 BERT 是更合适的迁移学习方法,因为它更新了 BERT 网络的所有层。然而,SentEval 仍然可以对我们的sentence embedding 在各种任务中的质量进行评估。我们在以下七个 SentEval 迁移任务上将 SBERT sentence embedding 与其他 sentence embedding 方法进行比较:

    • Movie Review: MR:电影评论片段的情感,以五等评分为标准。

    • Customer Review: CR:从客户评论中挖掘出来的句子的情感。

    • SUBJ:从电影评论和剧情摘要中挖掘的句子的主观感受 subjectivity

    • MPQA:来自新闻数据的短语级别的意见的极性 polarity

    • SST:二元短语级别的情感分类 sentiment classification

    • TREC:来自 TREC 的细粒度的 question classification

    • Microsoft Research Paraphrase Corpus: MRPC:来自 parallel 的新闻源的微软研究院转述语料库。

    结果如下表所示。可以看到:

    • InferSent 以及 Universal Sentence Encoder 相比,其平均性能提高了约 2 个百分点。尽管迁移学习不是 SBERT 的目的,但它在这项任务上的表现超过了其他 SOTAsentence embedding 方法。 看来,SBERTsentence embedding 很好地捕捉了情感信息:与 InferSentUniversal Sentence Encoder 相比,我们观察到 SentEval 的所有情感任务(MRCRSST )都有很大的改进。唯一一个 SBERT 明显比 Universal Sentence Encoder 差的数据集是 TREC 数据集。Universal Sentence Encoder 在问答数据上进行了预训练,这似乎对 TREC 数据集的问题类型分类任务有利。

    • average BERT embeddings、或使用 BERT CLS-token output ,在各种 STS 任务中取得了不好的结果(Table 1 ),比average GloVe embeddings 更差。然而,对于 SentEvalaverage BERT embeddings 、以及使用 BERT CLS-token output 取得了不错的结果(Table 5 ),超过了average GloVe embeddings 。造成这种情况的原因是不同的设置。

      • 对于 STS 任务,我们使用余弦相似度来估计 sentence embedding 之间的相似性。余弦相似性对所有维度都是平等的。

      • 相比之下,SentEval将逻辑回归分类器用于 sentence embedding 。这允许某些维度对分类结果有更高或更低的影响。

      我们的结论是:average BERT embeddingsBERT CLS-token output 返回的 sentence embedding 不可能用于余弦相似度或曼哈顿/欧氏距离。对于迁移学习,它们的结果比 InferSentUniversal Sentence Encoder 略差。然而,在 NLI 数据集上使用所描述的具有 siamese network 结构的微调,产生的 sentence embedding 达到了 SentEval工具包的 SOTA

32.2.3 消融研究

  1. 这里我们对 SBERT 的不同方面进行了消融研究,以便更好地了解其相对重要性。我们评估了不同的池化策略(MEAN/MAX/CLS)。对于 classification objective function ,我们评估了不同的 concatenation 方法。

    对于每个可能的配置,我们用 10 个不同的随机种子训练 SBERT ,并对其性能进行平均。objective function(分类或回归)取决于数据集:

    • 对于classification objective function ,我们在 SNLIMulti-NLI 数据集上训练 SBERT-base ,并在 NLI 数据集上进行评估。

    • 对于 regression objective function ,我们在 STS benchmark 数据集的训练集上进行训练,并在 STS benchmark 验证集上进行评估。

    结果如下表所示。可以看到:

    • classification objective function:根据 NLI 这一列,可以看到:池化策略的影响相当小,而 concatenation 模式的影响要大得多。

      对于 concatenation 模式,InferSentUniversal Sentence Encoder 都使用 [u,v,|uv|,u×v] 作为 softmax 分类器的输入,其中 [] 为向量拼接,× 为逐元素乘法。然而,在 SBERT 中,加入逐元素乘法 u×v 降低了性能。最重要的部分是逐元素的差值 |uv|

      如果使用人工特征交叉用于 softmax 的输入,那么在推断期间,就无法直接用余弦相似度,而是必须经过相同的人工特征交叉以及 softmax

    • regression objective function :根据 STSb 这一列,可以看池化策略有很大的影响:MAX 策略的表现明显比 MEANCLS-token 策略更差。这与 InferSent 相反,他们发现 InferSentBiLSTM layer 使用MAX (而不是MEAN)池化更好。

32.2.4 计算效率

  1. sentence embedding 有可能需要对数百万个句子进行计算,因此,需要有较高的计算速度。这里我们将 SBERTaverage GloVe embeddingsInferSentUniversal Sentence Encoder 进行比较。我们使用 STS benchmark 的句子来比较。

    • average GloVe embedding 是通过一个简单的 for-loop 来实现的,其中采用了 pythondictionary lookupnumpy

    • InferSent 是基于 PyTorch 的。

    • Universal Sentence Encoder 来自 TensorFlow Hub,是基于 TensorFlow 的。

    • SBERT 是基于 PyTorch 的。

    为了改进 sentence embedding 的计算,我们实施了一个 smart batching 策略:具有相似长度的句子被分在一组,并且在一个 mini-batch 中填充到最长的元素。这极大地减少了 padding tokens 的计算开销。性能是在一台配备英特尔 i7-5820K CPU @ 3.30GHzNvidia Tesla V100 GPUCUDA 9.2、以及 cuDNN 的服务器上测得的。结果如下表所示。

    • CPU 上,InferSentSBERT 快大约 65% 。这是由于网络结构简单得多。InferSent 使用单个 Bi-LSTM layer ,而 BERT 使用12 个堆叠的 transformer layer

      然而,transformer network 的一个优势是在 GPU 上的计算效率。此时,带有 smart batchingSBERTInferSent 快约 9% 、比Universal Sentence Encoder 快约 55%

    • smart batchingCPU 上实现了 89% 的提速,在 GPU 上实现了 48% 的提速。

    • average GloVe embeddings 显然在很大程度上是计算 sentence embedding 的最快方法。

    为什么 InferSentUniversal Sentence Encoder 没有用 smart batching?这是不公平的比较。Universal Sentence ENcoder 也是 transformer-based 模型,也可以采用 smart batching

三十三、SimCSE[2021]

  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 examples D={(xi,xi+)}i=1m,其中 xixi+ 在语义上相关。我们遵从 《 A simple framework for contrastive learning of visual representations》 的对比学习框架,采用具有 in-batch negativescross-entropy objective :令 hihi+ 分别表示 xixi+representation ,那么针对 (xi,xi+) 的、包含 Npairmini-batchtraining objective 为:

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

    其中:τ 是一个温度超参数,sim(h1,h2)=h1h2h1×h2 为余弦相似度。

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

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

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

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

    • 给定一个 positive pair pposalignment 计算 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 表示数据分布。

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

33.1.2 Unsupervised SimCSE

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

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

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

    其中:Nmini-batch 包含的样本数量。

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

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

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

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

  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 rate p=0.1 的效果。

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

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

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

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

      luniform 越小,则均匀性越好。

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

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

      lalign 越小,则对齐性越好。

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

33.1.3 Supervised SimCSE

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

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

    • QQPQuora question pairs

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

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

    • NLISNLIMNLI 数据集。

    我们用不同的数据集训练对比学习模型(即,Li ),并在下表中比较结果。为了公平比较,我们也使用相同数量的 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+) 扩展为 (xi,xi+,xi),其中 xipremise,xi+xientailment hypothesiscontradiction hypothesis。然后,训练目标 Li 被定义为(Nmini-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) 是归一化的):

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

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

    pdata 在有限样本 {xi}i=1m 上是均匀的,并且令 hi=f(xi) ,则我们可以从第二项与 Jensen 不等式中得出以下公式:

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

    WRm×d 是对应于 {xi}i=1msentence embedding matrix ,即 W 的第 i 行为 hi 。则优化上式中的第二项实质上是最小化 WW中所有元素的和的上界,即 Sum(WW)=i=1mj=1mhihj

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

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

    余弦相似性就是 hihj ,就是 (WW) 的第 i 行第 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 个随机采样的句子上训练无监督的 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 中增加一个 masked language modeling: MLM objective 作为辅助损失:L1+λ×Lmlm ,其中 λ 为超参数。这有助于 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} 为一个示性函数,当且仅当 i=j 时等于 1,否则等于 0α 为超参数。

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

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

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

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

  5. MLM 辅助任务:最后,我们研究不同 λ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 一样过于集中。

三十四、BERT-Flow[2020]

  1. 最近,像 BERT 这样的预训练语言模型及其变体已被广泛用作自然语言的 representation 。尽管它们通过微调在许多 NLP 任务上取得了巨大的成功,但来自没有微调的 BERTsentence embedding 在语义文本相似性 semantic textual similarity: STS 方面明显逊色。例如,它们甚至不如 GloVe embedding 的表现,后者没有上下文并且用一个更简单的模型训练。这些问题阻碍了将BERT sentence embedding 直接应用到许多现实世界的场景中,在这些场景中,收集标记数据是非常昂贵的,甚至是难以解决的。

    在论文 《On the Sentence Embeddings from Pre-trained Language Models》 中,作者旨在回答两个主要问题:

    • 为什么 BERT 导出的 sentence embedding 在检索语义相似的句子时表现不佳?是它们携带的语义信息太少,还是仅仅因为这些embedding 中的语义信息没有被正确利用?

    • 如果 BERT embedding 捕获到了足够的语义信息,但很难被直接利用,那么我们如何才能在没有外部监督信息的情况下使其更容易被利用?

    为此,作者首先研究了 BERT 预训练目标与语义相似性任务之间的联系。作者的分析显示,BERTsentence embedding 应该能够直观地反映句子之间的语义相似性,这与实验观察相矛盾。 《Representation degeneration problem in training natural language generation models》 发现语言建模性能会受到所学的各向异性的 word embedding space 的限制,其中 word embedding 占据了一个狭窄的锥体;《How contextual are contextualized word representations? comparing the geometry of bert, elmo, and gpt-2 embeddings》 也发现 BERTword embedding 也受到各向异性的影响。受到这些论文的启发,作者假设,来自 BERTsentence embedding (作为来自最后几层的 context embedding 的平均值)可能存在类似问题。通过对 embedding 的经验探测,作者进一步观察到,BERTsentence embedding space 在语义上是不平滑的,而且在某些方面被定义得很差,这使得它很难通过简单的相似度量(如点积相似度或余弦相似度)直接使用。

    为了解决这些问题,作者提出通过 normalizing flowsBERT sentence embedding 分布转化为平滑的和各向同性的高斯分布,这是一个由神经网络参数化的可逆函数。具体来说,该方法学习一个 flow-based generative model ,从而最大化一个似然函数,该似然函数代表通过无监督的方式从标准的高斯潜变量Gaussian latent variable 中生成 BERT sentence embedding 的可能性。在训练过程中,只有 flow network 被优化,而 BERT 参数保持不变。学到的 flowBERT sentence embedding 和高斯潜变量之间的可逆映射函数,然后被用来将 BERT sentence embedding 转换到高斯空间。作者将所提出的方法命名为 BERT-flow

    作者在不使用任何下游监督的情况下对 7 个标准的语义文本相似性 benchmark 进行了广泛的实验。实验结果表明:flow transformation 能够一致地将 BERT 提高 12.70 个点,在 cosine embedding 相似性和人类标注的相似性之间的 Spearman 相关系数方面平均提高 8.16 个点。

    当考虑外部监督信息时,BERT-flow 优于Sentence-BERT ,导致了新的 SOTA 。除了语义相似性任务外,作者还将 sentence embedding 应用于question-answer entailment task QNLI ,直接不需要task-specific 监督,并证明了BERT-flow 的优越性。此外,进一步分析表明,BERT 导出的相似性会与 lexical similarity 过度相关(与语义相似性相比),而,BERT-flow 可以有效地补救这一问题。

    Lexical Similarity 由编辑距离来衡量,刻画了两个句子在 word-level 上的相似性,而不是语义相似性。

34.1 理解 BERT 的 Sentence Embedding Space

  1. 为了用 BERT 将一个句子编码成一个固定长度的向量,通常做法是在 BERT 的最后几层计算 context embeddings 的平均值,或者在[CLS] token 的位置提取 BERT context embedding 。请注意,在生成 sentence embedding 时没有被掩码的 token ,这与 pretraining 是不同的。

    SBERT 证明,这种 BERT sentence embedding 在语义相似度方面落后于 SOTAsentence embedding 。在 STS-B 数据集上,BERT sentence embeddingaveraged GloVe embedding 相比更没有竞争力,其中 GloVe 是几年前提出的一个简单的、non-contextualizedbaseline 。尽管如此,这种效果差在现有文献中还没有得到很好的理解。

    注意,正如SBERT 所证明的那样,averaging context embeddings 一直优于 [CLS] embedding 。因此,除非另有提及,否则我们将 context embeddings 的均值作为 BERT sentence embedding ,并在本文的其余部分中不区分它们。

34.1.1 语义相似性和 BERT Pre-training 之间的联系

  1. 考虑关于 token 的一个序列 x1:T=(x1,,xT)。语言建模 language modeling: LM 以自回归方式来因子化联合概率 p(x1:T) ,即:p(x1:T)=t=1Tlogp(xtct),其中 ct=x1:t1t 时刻的上下文序列。

    为了捕获预训练期间的双向上下文,BERT 提出了一个 masked language modeling: MLM 目标,它因子化了 noisy reconstruction 的概率 p(x¯x^)=t=1Tmtp(xtct),其中 x^ 是一个被破坏的序列,x¯ 是被掩码的token ,当 xt 被掩码时 mt=1 否则等于 mt=0,上下文 ct=x^

    注意,LMMLM 都可以简化为,建模在给定上下文 c 的条件下 token x 的条件分布,这通常由一个 softmax 函数来描述:

    (13)p(xc)=exp(hcwx)xexp(hcwx)

    其中:

    • hccontext embedding ,它是上下文 c 的函数,通常由一个神经网络来建模。

    • wx word embedding ,它是 token x 的函数,通常由 embedding lookup table 来参数化。

    注意,虽然 MLMLM 的条件分布的形式相同,但是二者的上下文不同:

    • MLM 的上下文 ct=x^ ,即被破坏的完整序列,对于任何 t 都是相同的一个序列。

      LM 的上下文 ct=x1:t1 ,即 t 时刻之前的序列,对于不同的 t 为不同的值。

    BERT sentence embedding 之间的相似性可以简化为 BERT context embedding 之间的相似性 hchc 。 然而,正如 p(xc) 的公式所示,BERT 的预训练并不明确涉及 hchc 的计算。因此,我们很难得出 hchc 具体代表什么数学公式。

  2. 作为语义相似性代理的Co-Occurrence 统计:我们不直接分析 hchc ,而是考虑 hcwx ,即 context embedding hcword embedding wx 之间的点积。根据 《Breaking the softmax bottleneck : A high-rank rnn language model》的研究,在一个训练良好的语言模型中,hcwx 可以近似地分解为:

    (14)hcwxlogp(xc)+λc=PMI(x,c)+logp(x)+λc

    其中:

    • PMI(x,c)=logp(x,c)p(x)×p(c)x 和上下文 c 之间的 point-wise 互信息。

    • logp(x)word-specific 项。

    • λccontext-specific 项。

    PMI 刻画了两个事件共同发生的频率,相比比它们独立发生的频率,要高多少。注意,co-occurrence statistics 是以计算的方式处理 "语义" 的典型工具,用于近似 word-level semantic similarity 。因此,大致上说,计算 context embeddingword embedding 之间的点积是有语义的。

  3. Higher-Order Co-Occurrence Statistics 作为 Context-Context Semantic Similarity:在预训练期间,两个上下文 cc 之间的语义关系可以通过它们与单词的联系来推断和加强。具体而言,如果上下文 cc 都与同一个单词 w 共同出现,那么这两个上下文就可能具有相似的语义。

    higher-order context-context co-occurrence 也可以在预训练期间被推断和被传播。context embedding hc 的更新可以影响另一个context embedding hc 也可以进一步影响另一个 hc 。因此,context embedding 可以通过高阶共现关系在它们之间形成隐式交互。

34.1.2 各向异性的 Embedding Space 诱发了很差的语义相似性

  1. 正如前面所讨论的,BERT 的预训练应该隐式地鼓励具有语义的 context embedding 。为什么没有微调的 BERT sentence embedding 会产生较差的性能?

    为了研究失败的根本问题,我们使用 word embedding 作为代理,因为单词和上下文共享相同的 embedding 空间。如果 word embedding 表现出一些误导性的属性,那么 context embedding 也会有问题,反之亦然。

    《Representation degeneration problem in training natural language generation models》《Improving neural language generation with spectrum control》发现,根据最大似然 p(xc) 的训练,通常会产生一个各向异性anisotropic 的词嵌入空间 word embedding space 。 "各向异性" 是指 word embedding 在向量空间中占据一个狭窄的锥体。《How contextual are contextualized word representations? comparing the geometry of bert, elmo, and gpt-2 embeddings》 也观察到这一现象。

  2. 此外,我们对学到的各向异性的 embedding 空间有两个经验性的观察:

    • 观察一:Word Frequency Biases the Embedding Space :我们预期 embedding 诱导的相似性与语义相似性一致。

      正如 《Representation degeneration problem in training natural language generation models》 所讨论的,各向异性与词频的不平衡性高度相关。他们证明,在某些假设下,Transformer 语言模型中 non-appeared token 的最佳 embedding 可以离原点极远。他们还试图将这一结论粗略地推广到很少出现的单词。

      为了在 BERT 的背景下验证这一假设,我们计算了 BERT word embedding 和原点之间的平均L2 距离。在下表的上半部分,我们观察到高频词都离原点更近,而低频词则离原点更远。

      这一观察表明:word embedding 可以被单词频率带偏。这与 hcwxPMI(x,c)+logp(x)+λc 中的 logp(x) 项相吻合,即单词的对数密度。由于 word embedding 在训练过程中起到了连接 context embedding 的作用,因此 context embedding 可能会相应地被单词频率信息所误导,context embedding保存的语义信息也会被破坏。

      即,单词频率会影响 word embedding 进而影响 context embedding

    • 观察二:Low-Frequency Words Disperse Sparsely :我们观察到,在学到的各向异性的 embedding 空间中,高频词集中在一起,而低频词则分散开。这一观察是通过计算 word emebdding 与它们的 k 近邻的平均 L2 距离实现的。在下表的下半部分,我们观察到,与高频词的 embedding 相比,低频词的 embedding 往往离其 k-NN 邻居更远。这表明,低频词往往是稀疏分散的。

      由于稀疏性,在 embedding 空间中的低频单词的 embedding 周围可能会形成许多 "洞",在这些洞里的语义可能不好定义。注意,BERT sentence embedding 是通过对 context embeddings 取平均产生的,这是一个保凸的操作。然而,这些洞违反了 embedding 空间的凸性。这是 representation learining 中的一个常见问题。因此,所得到的 sentence embedding 可以位于定义不明确的区域,并且诱导的相似性也会有问题。

34.2 模型

  1. 为了验证前面提出的假设,并避免 BERT sentence embedding 的无效,我们提出了一种称为 BERT-flow 的校准方法。该方法利用了从 BERT embedding space 到标准高斯潜在空间 Gaussian latent space 的可逆映射,如下图所示。可逆性条件保证了 embedding 空间和数据实例之间的互信息不会改变。

  2. 动机:标准的高斯潜在空间可能具有有利的特性,可以帮助我们解决问题:

    • 与观察一的联系:

      首先,标准高斯分布满足各向同性。标准高斯分布的概率密度不随角度的变化而变化。如果标准高斯的样本的 L2 范数被归一化,这些样本可以被看作是均匀分布在一个单位球体上。

      我们还可以从奇异谱 singular spectrum 的角度来理解各向同性。如上所述, embedding 空间的各向异性源于词频的不均衡性。在传统 word embedding 的文献中,《All-but-the-top: Simple and effective postprocessing for word representations》发现,dominating singular vectors 可能与词频高度相关,从而误导misleadembedding 空间。通过拟合一个映射,该映射是各向同性分布的,embedding 空间的奇异谱可以被拉平。通过这种方式,与词频相关的奇异值方向,也就是dominating singular vectors ,可以被抑制。

    • 与观察二的联系:

      其次,高斯分布的概率密度在整个实空间上定义良好,这意味着没有 "洞" 的区域。高斯先验对于缓解 "洞" 的问题,已经在现有的 deep latent variable models 的文献中被广泛观察到。

  3. Flow-based Generative Modelflow-based generative model《Normalizing flows: Introduction and ideas》)建立了一个从潜空间 Z 到被观测空间observed space U 的可逆变换。 生成过程定义为:

    (15)zpZ(z),u=fϕ(z)

    其中:

    • zpZ(z) 为先验分布。

    • f:ZU 为可逆变换。

    根据 change-of-variables 定理,可观察到的 u 的概率密度函数 probabilistic density function: PDF 为:

    (16)pU(u)=pZ(fϕ1(u))|detfϕ1(u)u|

    在我们的方法中,我们通过最大化从标准高斯潜变量生成 BERT sentence embedding 的可能性来学习 flow-based generative model 。换句话说,base 分布 pZ(z) 是标准高斯分布,我们将抽取的 BERT sentence embedding 视为被观测空间 U 。我们通过以下方程以完全无监督的方式最大化 U 的边际概率:

    (17)maxϕEu=BERT(sentence),sentenceD[logpZ(fϕ1(u))+log|detfϕ1(u)u|]

    其中:D 为数据集,即句子的集合。

    请注意,在训练期间,只有flow 参数被优化,而BERT 参数保持不变。最终,我们学习了一个可逆的映射函数 fϕ1,它可以将每个BERT sentence embedding u 转化为 latent Gaussian representation z ,而不损失信息。

    可逆映射 fϕ 被参数化为一个神经网络,其架构通常被精心设计以保证其可逆性。此外,行列式 |detfϕ1(u)u| 也应该很容易计算,以便使最大似然训练变得可行。在我们的实验中,我们遵循 Glow 的设计(《Glow: Generative flow with invertible 1x1 convolutions》)。Glow 模型是由多个可逆变换堆叠而成,即 actnorm 、可逆1 * 1 卷积、以及 affine coupling layer 。 我们通过用 additive coupling 取代 affine coupling 来简化模型,以降低模型的复杂性,并用 random permutation 取代可逆1 * 1 卷积,从而避免数值误差。

    具体而言,flow-based model 由一组堆叠的可逆变换层所组成,即 f=f1f2fK ,一共 K 层。每一层 fi:xy 为一个 additive coupling layer,公式为:

    (18)y1:d=x1:d,yd+1:D=xd+1:D+gψ(x1:d)

    其中:gψ 可以被参数化为一个深度神经网络;xRd+Dd+D 维的。

    如果仅仅只是简单地堆叠多层 additive coupling layer,可以发现每一层输出的前 d 维的内容保持不变。为此,在每一层之后,都需要交换需要变换的维度。

    additive coupling layer 的逆变换 fi1:yx 的公式为:

    (19)x1:d=y1:d,xd+1:D=yd+1:Dgψ(y1:d)

    论文的核心在于这个 flow-based model,网络结构(多少层、有没有 batch normalization 等等)没有说明。网络优化的目标函数也没有说明。

34.3 实验

  1. 在整个实验中,我们采用 BERT 的官方 Tensorflow 代码作为我们的 codebase 。请注意,我们将最大的序列长度改为 64 ,以减少对 GPU 内存的消耗。对于 siamese BERTNLI finetuning ,我们遵循 SBERT 中的设置(epochs=1 、学习率为 3e-5、以及 batch size =16 )。我们的结果可能与他们公布的结果不同。作者在 https://github.com/UKPLab/sentence-transformers/issues/50 中提到,这是一个常见的现象,可能与随机数种子有关。请注意,他们的实现依赖于 HuggingfaceTransformers repository 。这也可能导致具体结果之间的差异。

    我们对 flow 的实现是由 GLOW 的官方 repository 以及 Tensor2tensor 库的实现而改编的。我们的flow 模型的超参数在下表中给出。在target 数据集上,我们以 1e-3 的学习率对 flow 参数学习一个 epoch ;在NLI 数据集上,我们以 2e-5 的学习率对 flow 参数学习 0.15epoch 。优化器是 Adam

    在我们对 STS-B 的初步实验中,我们在 STS-B 的数据集上调优超参数。从经验上看,与 learning schedule 相比,架构超参数对性能的影响不大。之后,我们在其他数据集上工作时不再调优超参数。根据经验,我们发现 flow 的超参数在不同的数据集上并不敏感。

34.3.1 语义文本相似性

  1. 数据集:STS benchmark (STS-B)SICK-Relatedness (SICK-R)STS tasks 2012 - 2016 等七个数据集。

    我们通过 SentEval 工具包获得所有这些数据集。这些数据集为每个 sentence pair 提供了 0 ~ 5 之间的细粒度的 gold standard semantic similarity

  2. 评估程序:我们遵循先前工作中的程序,如用于 STS 任务的 SBERT 。预测相似性包括两个步骤:

    • 首先,我们用一个句子编码器为每个句子获得 sentence embedding

    • 然后,我们计算 input sentence pair 的两个 embedding 之间的余弦相似度,作为我们的模型预测的相似度。

    报告中的数字是 predicted similaritygold standard similarity 之间的 Spearman 相关系数,这与 SBERT 中的方法相同。

  3. 配置:我们在实验中同时考虑 BERT_baseBERT_large 。具体来说,我们使用最后一层或两层的 BERT context embeddings 的平均池化作为 sentence embedding ,这种方式的性能优于 [CLS] embedding 。有趣的是,我们的初步探索表明,与仅对最后一层进行平均池化相比,对 BERT 的最后两层进行平均池化(用 -last2avg 表示)一直产生更好的结果。因此,在评估我们自己的方法时,我们选择 -last2avg 作为默认配置。

    在我们的方法中,flow-based objective 被最大化,并且 BERT 参数保持不变而仅更新 invertible mappingflow model 默认是通过完整的目标数据集(train + validation + test )学习的。我们将这种配置记做 flow (target) 。请注意,虽然我们使用了整个目标数据集的句子,但学习 flow 并不使用任何标签进行训练,因此它是对 BERT sentence embedding space 的一个纯粹的无监督校准。

    我们还测试了在 SNLIMNLIconcatenation 上学到的flow-based model ,以进行比较(flow (NLI) )。concatenated NLI 数据集包括大量的 sentence pairSNLI 570K + MNLI 433K )。注意,"flow (NLI)" 不需要任何监督标签。当在 NLI 语料库上拟合 flow 时,我们只使用原始句子而不是 entailment labelflow (NLI) setting 背后的一个直觉是,与Wikipedia 的句子(BERT在其上进行了预训练)相比,NLISTS 的原始句子都更简单、更短。这意味着 NLI-STS 的差异可能比 Wikipedia-STS 的差异相对要小。

    我们在两种情况下进行了实验:

    • 当外部标记数据不可用时。这是一个自然的设置,我们用无监督的目标来学习 flow 参数(即,maxϕEu ),同时 BERT 参数是不变的。我们将这种方式称作 BERT-flow

    • 我们首先在 SNLI+MNLI 文本对应分类任务上以 siamese 方式微调 BERTSBERT)。对于 BERT-flow ,我们进一步学习 flow 参数。这种设置是为了与利用 NLI监督的 SOTA 结果进行比较(SBERT)。我们将这两个不同的模型分别表示为 BERT-NLIBERT-NLI-flow

  4. 不使用 NLI 监督的结果如下表所示:

    • 原始的 BERT sentence embedding (采用 BERT_baseBERT_large )未能超过 averaged GloVe embedding

    • BERT 模型的最后两层进行平均池化可以一致地改善结果。

      仅仅采用 last2avg 就能大幅提升效果!

    • 对于 BERT_baseBERT_large ,我们提出的 flow-based 方法(BERT-flow (target) )可以进一步提高性能,分别平均提高 5.88 个点和 8.16 个点。

    • 对于大多数数据集来说,在目标数据集上学习 flow 导致了比在NLI 上学习 flow 带来更大的性能提升。

      唯一的例外是 SICK-R ,在 NLI 上训练flow 的效果更好。我们认为这是因为 SICK-R 是同时为 entailmentrelatedness 而收集的。由于 SNLIMNLI 也被收集用于 textual entailment 评估,SICK-RNNLI 之间的分布差异可能相对较小。另外,由于 NLI 数据集的规模更大,所以在NNLI 上学习 flow 的性能更强也就不奇怪了。

  5. 使用 NLI 监督的结果如下表所示:与之前完全无监督的结果类似,我们来自可逆变换的各向同性 embedding 空间在大多数情况下能够持续改善 SBERT 基线,并以很大的幅度超过了SOTASBERT/SRoBERTa 结果。

  6. 随机种子的鲁棒性分析:我们在 STS-B 上用不同的随机种子进行了 5 次实验,在 NLI 监督的设置下。下表显示了带有标准差和中位数的结果。尽管 NLI finetuning 的方差不可忽略,但我们提出的 flow-based 的方法始终能带来改进。

34.3.2 无监督的 Question-Answer Entailment

  1. 除了语义文本相似性任务外,我们还研究了我们的方法在无监督的 question-answer entailment 上的有效性。我们使用Question Natural Language Inference: QNLI 数据集,这是一个包含110Kquestion-answer pair 的数据集,其中 5K+pair 用于测试集。QNLISQUAD 中抽取问题及其相应的上下文句子,并将每个 pair 标注为 entailmentno entailment 。在本文中,我们进一步将 QNLI 调整为一个无监督的任务。一个问题和一个答案之间的相似性可以通过计算它们的 sentence embedding 的余弦相似度来预测。我们将 entailment 视为 1no entailment 视为 0 ,并用 AUC 来评估方法的性能。

    如下表所示,我们的方法在 QNLI 的验证集上一致地提高了 AUC 。同时,与在 NLI 上学习的 flow 相比,在 target 数据集上学习 flow 可以产生更好的结果。

34.3.3 和其他 Embedding Calibration Baselines 相比

  1. 在传统的 word embedding 的文献中,《A simple but tough-to-beat baseline for sentence embeddings》《All-but-the-top: Simple and effective postprocessing for word representations》 也发现了 embedding 空间的各向异性现象,他们提供了几种方法来鼓励各向同性 isotropy

    • Standard Normalization: SN:在这个想法中,我们通过计算 sentence embedding 的均值 μ 和标准差 σ ,从而对 embedding 进行简单的后处理,并通过 uμσembedding 归一化。

    • Nulling Away Top-k Singular Vectors: NATSV《All-but-the-top: Simple and effective postprocessing for word representations》 发现,通过平均池化传统 word embedding 从而得到的 sentence embedding 往往有一个快速衰减的奇异谱。他们声称,通过将 top -k 个奇异向量 singular vectors 归零,可以避免 embedding 的各向异性,实现更好的语义相似性表现。

    我们在 STS-B 数据集上与这些 embedding calibration 方法进行比较,结果如下表所示:

    • SN 有助于提高性能,但它落后于 NATSV 。这意味着 standard normalization 不能从根本上消除各向异性。通过结合这两种方法,并在验证集上仔细调优 k ,可以实现进一步的改进。

    • 我们的方法仍然产生了更好的结果。我们认为,NATSV 可以帮助消除各向异性,但它也可能丢弃 nulled vectors 中的一些有用信息。相反,我们的方法直接学习了一个可逆映射到各向同性的潜在空间,而没有丢弃任何信息。

34.3.4 语义相似性 Vs 词汇相似性

  1. 除了语义相似性 semantic similarity ,我们还进一步研究了由不同 sentence embedding 方法诱导的词汇相似性 lexical similarity 。具体来说,我们使用编辑距离 edit distance 作为一对句子之间词汇相似性的衡量标准,并关注句子相似性(BERT sentence embedding 的余弦相似性)和编辑距离之间的相关性。在由许多 sentence pair 组成的数据集中,我们计算了语义相似性和编辑距离之间的 Spearman相关系数 ρ ,以及不同模型的语义相似性之间的 Spearman 相关系数。我们在 STS-B 数据集上进行实验,并将人类标注的 gold similarity 纳入该分析。

    • BERT-Induced SimilarityLexical Similarity 过度相关:下表显示,BERT 诱导的相似性与编辑距离之间的相关性非常强( ρ=50.49 ),相比之下 gold standard labels 与编辑距离的相关性小得多( ρ=24.61 )。这种现象在 Figure 2 中也可以观察到。特别是,对于编辑距离为 4sentence pair (用绿色突出显示),BERT 诱导的相似性与编辑距离极为相关。

      Lexical Similarity 由编辑距离来衡量,刻画了两个句子在 word-level 上的相似性,而不是语义相似性。

      然而,gold standard 语义相似度与编辑距离的相关性并不明显。换句话说,经常出现这样的情况:通过修改一个词,一个句子的语义就会发生巨大的变化。"I like this restaurant""I dislike this restaurant" 这两个句子只相差一个词,但表达的语义是相反的。在这种情况下,BERT embedding 可能会失败。因此,我们认为,BERT sentence embeddinglexical proximity 过高,会破坏其诱导的语义相似性。

    • Flow-Induced SimilarityLexical Similarity 表现出较低的相关性:通过将原始的 BERT sentence embedding 转化到学到的各向同性的潜在空间,embedding-induced similarity 不仅与gold standard 的语义相似性更加一致,而且与 lexical similarity 的相关性也更低,如下表的最后一行所示。这一现象在编辑距离 4 的例子中尤为明显(Figure 2 中以绿色标示)。这表明我们提出的 flow-based 的方法可以有效地抑制 lexical similarityembedding 空间的过度影响。

三十五、BERT-Whitening [2021]

  1. sentence embedding 已被证明不能很好地捕获句子的基本语义,因为之前的工作表明,word representations of all words 都不是各向同性isotropic 的:它们在方向上不是均匀分布的。相反,它们在向量空间中占据一个狭窄的锥体,因此是各向异性anisotropic 的。

    • 《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 已经证明,来自 pre-trained modelcontextual word embeddings 是如此的各向异性,任何两个 word embedding 的余弦相似度平均为 0.99

    • BERT-Flow 进一步调查发现,BERT sentence embedding 空间存在两个问题,即 word frequency biases the embedding space 、以及低频词稀疏地分散开,这为直接使用 BERT sentence embedding 来计算相似度带来了困难。

    为了解决上述问题,《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 阐述了导致各向异性问题的理论原因,这个原因在预训练的模型中观察到。《Representation degeneration problem in training natural language generation models》 设计了一种新的方法,通过正则化 word embedding matrix 来缓解 degeneration 问题。最近提出的 BERT-flow 通过 normalizing flowBERT sentence embedding distribution 转化为平滑的、各向同性的高斯分布,这是一个由神经网络参数化的可逆函数。

    在论文 《Whitening Sentence Representations for Better Semantics and Faster Retrieval》 中,作者没有像以前的尝试那样设计一个复杂的方法,而是发现一个简单而有效的后处理技术,白化 whitening ,足以解决 sentence embedding 的各向异性问题。具体而言,作者将sentence vectors 的平均值转化为 0 、将协方差矩阵转化为单位矩阵。此外,论文还引入了降维策略,以促进白化操作,进一步提高效果。

    7 个标准的语义文本相似性 benchmark 数据集上的实验结果表明,论文的方法可以普遍提高模型性能,并在大多数数据集上达到SOTA 的效果。同时,通过加入降维操作,论文的方法可以进一步提高模型性能,并自然地优化内存存储、加快检索速度。

    论文贡献如下:

    • 论文探讨了 BERT-based sentence embedding 在相似性匹配任务中表现不佳的原因,即它不在标准正交基 standard orthogonal basis 上。

    • 论文提出了一种后处理方法,白化,将 BERT-based sentence embedding 转化为标准正交基,同时降维。

    • 在七个语义文本相似性任务上的实验结果表明,论文的方法不仅可以显著提高模型性能,而且还可以减少向量的维度。

  2. 相关工作:

    • 在特定的 NLP 上下文中,已经出现了关于解决各向异性问题的早期尝试。

      • 《A simple but tough-to-beat baseline for sentence embeddings》 首先为整个 semantic textual similarity dataset 计算 sentence representation ,然后从这些 sentence representation 中提取 top direction ,最后将 sentence representation 投射到 top direction 之外(即,仅保留 tail direction)。通过这样做, top direction 将固有地编码整个数据集的 common information

      • 《All-but-the-top: Simple and effective postprocessing for word representations》 提出了一种后处理操作:在具有正值和负值的 dense low-dimensional representation 上,他们从 word vectors 中消除了 common mean vector 、和一些 top dominating directions ,这样就使处理后的representation 更加强大。

      • 《Representation degeneration problem in training natural language generation models》 提出了一种新颖的正则化方法来解决在训练自然语言生成模型中的各向异性问题。他们设计了一种新颖的方法,通过正则化 word embedding matrix 来缓解 degeneration 问题。由于观察到 word embedding 被局限在一个狭窄的锥体中,所提出的方法直接增加了锥体的孔径大小,这可以简单地通过降低 individual word embedding 之间的相似度来实现。

      • 《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 研究了 contextual contextualized word representation 的内在机制。他们发现,ELMoBERTGPT-2upper layerslower layers 产生更加 context-specificrepresentation 。 这种 context-specificity 的增加总是伴随着各向异性的增加。

      • 《On the sentence embeddings from pre-trained language models》 提出了 BERT-flow ,它通过用无监督目标学到的 normalizing flow 将各向异性的 sentence embedding distribution 转变为平滑的、各向同性的高斯分布。

    • 谈到 SOTAsentence embedding 方法,以前的工作发现 SNLI 数据集适合训练 sentence embedding

      • 《Learning semantic textual similarity from conversations》 提出了一种使用 siamese DAN networksiamese transformer network 对来自 Reddit 的对话进行训练的方法,该方法在 STS benchmark 数据集上取得了良好效果。

      • 《Universal sentence encoder》 提出了一个所谓的 Universal Sentence Encoder ,它训练了一个transformer 网络,并通过在SNLI 数据集上的训练来 augment 无监督学习。

      • 在预训练方法的时代,《Real-time inference in multi-sentence tasks with deep pretrained transformers》 解决了来自 BERTcross-encoder 的运行时间开销,并提出了一种方法(poly-encoders ),利用注意力计算 context vectors 和预先计算的 candidate embeddings 之间的分数。

      • 《SBERT: Sentence embeddings using Siamese BERT networks》 是对 pretrained BERT network 的修改,使用 siamese networktriplet network 结构来推导出有语义的 sentence embedding ,可以使用 sentence embedding 的余弦相似度来计算句子之间的相似性。

35.1 方法

  1. 通常我们计算 sentence embedding 的余弦相似度,从而衡量句子之间的相似性。一个问题是:余弦相似度对输入向量做了什么假设?换句话说,什么前提条件适合用余弦相似度进行比较?

    我们通过研究余弦相似度的几何原理来回答这个问题。给定两个向量 xRdyRd ,它们之间的余弦相似度定义为:

    (20)cos(x,y)=i=1dxi×yii=1dxi2×i=1dyi2

    然而,只有当坐标基为标准正交基时,上式才成立。BERT-Flow 验证了 BERT sentence embedding 已经包含了足够的语义,尽管它没有被正确利用。在这种情况下,如果根据上式来计算语义相似性的余弦值时,sentence embedding 表现不佳,原因可能是 sentence vector 所属的坐标基不是标准正交基。从统计学的角度来看,我们可以推断,当我们为一组向量选择 basis 时,应该保证每个基向量都是独立的、统一的。如果这组基是标准正交基,那么相应的一组向量就应该显示出各向同性。

    总而言之,上述启发式假设阐述了:如果一组向量满足各向同性,我们可以认为它是由标准正交基派生出来的,其中也表明我们可以通过上述公式计算余弦相似度。否则,如果它是各向异性的,我们需要对 sentence embedding 进行转换,以强制其成为各向异性,然后使用上述公式来计算余弦相似性。

    BERT-Whitening 认为各向同性问题并不是 embedding 向量带来的,而是空间的基向量带来的(基向量不是标准正交基)。

  2. Whitening TransformationBERT-flow 通过采用flow-based 的方法来解决上述假设。我们发现,利用机器学习中普遍采用的白化操作,也可以取得相当的收益。

    众所周知,关于标准正态分布的均值为零、协方差矩阵为单位矩阵。因此,我们的目标是将sentence vector 的平均值转换成 0 、将协方差矩阵转换成单位矩阵。假设我们有一组 sentence embedding {xi}i=1N ,然后我们进行线性变换,使得变换后的 sentence embedding 满足均值为零、协方差矩阵为单位矩阵:

    (21)x~i=(xiμ)W

    该变换实际上对应于机器学习中的白化 whitening 操作,其中 μ=1Ni=1NxiR1×dd 为原始的维度,WRd×d 为投影矩阵。

    注意,这里的向量为 ”行向量“。

    最困难的部分是求解矩阵 W 。我们将 {xi}i=1N 的协方差矩阵表示为:

    (22)Σ=1Ni=1N(xiμ)(xiμ)Rd×d

    变换之后的协方差矩阵为 Σ~=WΣW ,因此 WΣW=I ,因此:

    (23)Σ=(W)1W1=(W1)W1

    因此,协方差矩阵是一个正定对称矩阵,满足如下形式的 SVD 分解:

    (24)Σ=UΛU

    其中:U 为正交矩阵,Λ 为对角矩阵且对角线元素都是正的。

    正交矩阵:各行是单位矩阵且两两正交;各列是单位矩阵且两两正交,即 UU=UU=I

    W1=ΛU ,则我们可以得到解:W=UΛ1

    W1W=WW1=I

  3. 降维:众所周知,对角矩阵 Λ 的每个对角线元素衡量的是该元素所在的一维数据的变化。如果对角线元素的值很小,则代表该维度特征的变化也很小,不重要,甚至接近于常数。因此可以进行降维从而去除这个维度特征,使得原始的 sentence vector 被嵌入到一个较低维度的空间中。这样可以使余弦相似度的结果更加合理,并自然地加快向量检索的速度,因为检索速度与向量维度成正比。

    事实上,从奇异值分解得出的对角矩阵 Λ 中的元素已经按降序排序了。因此,我们只需要保留 Wtop k 列就可以达到这种降维效果,这在理论上等同于主成分分析 Principal Component Analysis: PCA 。这里,k 是一个超参数。我们将整个转换工作流程称为 Whitening-k

  4. Whitening-k Workflow 算法:

    • 输入:已有的 embedding 集合 {xi}i=1N,降维之后的维度 k

    • 输出:转换后的 embedding {x~i}i=1N

    • 算法步骤:

      • 根据 {xi}i=1N 计算均值 μ 和协方差矩阵 Σ

      • Σ 进行 SVD 分解,从而得到 U,ΛΣ=UΛU

      • 计算 W=(UΛ1)[:,:k]

      • 对每个 xi 计算:x~i=(xiμ)W

    该算法只能作为后处理从而优化现有 sentence embedding 集合,无法处理 unseensentence embedding 。这是因为 SVD 作用在现有的 sentence embedding 集合所对应的均值、协方差矩阵上。

    BERT-Flow 可以作用到 unseensentence embedding 上,因为 BERT-Flow 学习的是 embedding 空间到高斯空间的一个可逆映射。

  5. 计算复杂度:均值 μ 和协方差矩阵 Λ 都可以被递归地计算:

    (25)μn+1=nn+1μn+1n+1xn+1Σn+1=nn+1Σn+1n+1(xn+1μ)(xn+1μ)

    因此,计算 μΛ 的空间复杂度都是 O(1),时间复杂度都是 O(N)

    由于 ΣRd×d ,通常是一个很小的规模,因此对它进行 SVD 分解的时间复杂度几乎可以忽略不计。

35.2 实验

  1. 为了我们的方法的有效性,我们提出了在多种配置下与语义文本相似性(semantic textual similarity: STS)任务相关的各种任务的实验结果。

  2. 数据集:类似于 SBERT,我们在没有任何 specific training data 的情况下,将模型性能与 STS 任务的 baseline 进行比较。评估的数据集包括:STS 2012-2016 tasksSTS benchmarkSICK-Relatedness dataset 一共七个数据集。对于每个sentence pair,这些数据集提供了一个标准的语义相似度指标,范围从 05

    我们采用 sentence embeddings 的余弦相似度和 gold labels 之间的 Spearman’s rank correlation ,因为 SBERT认为它是 STS 任务中最合理的指标。评估过程与 BERT-flow 保持一致:我们首先将每个原始句子文本编码为sentence embedding ,然后计算 input sentence embedding pairs 之间的余弦相似度来作为我们预测的相似度分数。

  3. baseline

    • 无监督的 STS

      • Avg. GloVe embeddings:采用 GloVe 作为 sentence embedding

      • Avg. BERT embeddingsBERT CLS-vector:使用原始 BERT embedding 的均值、或者 CLS-tokenoutput

    • 监督的 STS

      • USEUniversal Sentence Encoder,其中用 Transformer 取代了 LSTM

      • SBERT-NLISRoBERTa-NLI:在 NLI 组合数据集(包含 SNLIMNLI)上用 SBERT 训练方法来训练的 BERTRoBERTa

  4. 实验配置:由于 BERTflow( NLI/target) 是我们要比较的主要 baseline ,所以我们基本上与他们的实验配置和符号保持一致。具体来说:

    • 我们在实验中也同时使用 BERT_baseBERT_large

    • 我们选择-first-last-avg作为我们的默认配置,因为与只对最后一层取平均相比,对 BERT 的第一层和最后一层取平均可以稳定地实现更好的性能。

    • 我们利用完整的target 数据集(包括训练集、验证集和测试集中的所有句子,但不包括所有标签)来计算白化参数 Wμ 。这些模型被记做-whitening(target)

      此外,-whitening(NLI) 表示白化参数是在NLI 语料库中获得的。 -whitening-256(target/NLI)-whitening-384(target/NLI) 表示通过我们的白化方法,输出的embedding size 分别(从 768 维)降维到 256384

      实验中发现:降维之后的效果可能更好。

  5. 没有 NLI 监督的结果如下表所示:

    虽然没有 NLI 监督信息,但是仍然有 NLI 的样本数据(而没有 label)。

    • 原始的 BERT sentence embeddingGloVe sentence embedding毫无悬念地获得了最差的性能。

    • BERT_base 下,我们的方法(具有 256 维的 sentence embedding)一直优于BERT-flow,并在 STS-B, STS-12, STS-13, STS-14, STS-15 数据集上分别达到了 SOTA 效果。

    • BERT_large 下,如果将 sentence embedding的维度设置为 384,就会取得更好的结果。与 BERT-flow 相比,我们的方法在大多数数据集上仍然获得了有竞争力的结果,并在 STS-B, STS-13, STS-14 数据集上达到了 SOTA 效果。

  6. NLI 监督的结果如下表所示,其中 SBERT_baseSBERT_large 是通过 SBERT 中的方法在有监督标签的 NLI 数据集上训练的。

    • 我们的 SBERT_base-whiteningSTS-13, STS-14, STS-15, STS-16 任务上的表现优于 BERT_base-flow

    • 我们的 SBERT_large-whiteningSTS-B, STS-14, STS-15, STS-16 任务上的表现优于 BERT_large-flow

    这些实验结果表明,我们的白化方法可以进一步提高 SBERT 的性能,尽管它是在 NLI 数据集的监督下训练的。

  7. 维度 k 的影响:维度 k 是一个超参数,它能以较大的幅度影响我们的模型的性能。因此,我们进行了实验,测试模型的 Spearman 相关系数与维度 k 的关系。下图是 BERT_base embeddingBERT_large embedding 下模型性能的变化曲线。对于大多数任务来说,将 sentence vector 的维度降维到三分之一是一个相对最优的解决方案。

    • Table 1SICK-R 结果中,虽然我们的 BERT_base-whitening-256(NLI) 不如 BERT_base-flow(NLI) 有效,但我们的模型有竞争优势,即 embedding size 较小( 256 vs. 768 )。

    • 此外,如 Figure 1(a) 所示,当 embedding size 设置为109 时,我们的 BERT_base-whitening(NLI) 的相关性得分提高到了 66.52 ,比 BERT_base-flow(NLI) 高出了 1.08 个点。

    • 此外,其他任务也可以通过谨慎选择 k 来实现更好的性能。

三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings[2019]

  1. 传统的 word embedding 是静态的,每个单词都有单个 embedding 向量,与上下文无关。这带来了几个问题,最明显的是,一个多义词的所有意义都必须共享相同的representation 。最近的工作,即 deep neural language model (如 ELMoBERT ),已经成功地创建了 contextualized word representationword vector 对它们所处在的context 敏感。用 contextualized representation 取代 static embedding ,在一系列不同的 NLP 任务中产生了显著的改善,包括从问答任务到共指消解co-reference resolution 任务。

    contextualized word representation 的成功表明,尽管只用语言建模任务进行训练,但它们学到了高度transferable 的、task-agnostic 的语言属性。事实上,在 frozen contextualized representation 上训练的线性模型可以预测单词的语言属性linguistic property (例如,part-of-speech tag ),几乎与 SOTA 模型一样好。尽管如此,这些 representation 仍然没有得到很好的理解:

    • 首先,这些contextualized word representation 到底有多么的 contextual

    • 其次,BERTELMo 是否有无限多的 context-specific representation 可以分配给每个单词,还是说单词基本上是分配到有限数量的 word-sense representation 中的一个?

    论文 《How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings》 通过研究 ELMoBERTGPT-2 的每一层的 representation spacegeometry 来回答这个问题。论文的分析产生了一些令人惊讶的发现:

    • 在所有三个模型的所有层中,所有单词的 contextualized word representation 都不是各向同性isotropic 的:它们在方向上不是均匀分布的。相反,它们是各向异性anisotropic 的,在向量空间中占据一个狭窄的锥体。GPT-2 最后一层的各向异性是如此的极端,以至于两个随机的单词平均而言会有几乎完美的余弦相似性!鉴于各向同性对 static embedding 有理论上的和经验上的好处(《All-but-the-top: Simple and effective postprocessing for word representations》),contextualized representation 中各向异性的程度令人惊讶。

      即,contextualized work embedding 的各向异性。

    • 同一单词在不同 context 中的出现具有 non-identical vector representations 。在向量相似性被定义为余弦相似性的情况下,同一单词的不同 representations 之间在上层中的不相似性更大。这表明,就像 LSTM 的上层产生更加 task-specificrepresentation 一样(《Linguistic knowledge and transferability of contextual representations》),contextualizing model 的上层产生更加 context-specificrepresentation

      即,不同层的 contextualization 程度不同,更高层产生更加 contextualizedembedding

    • context-specificityELMoBERTGPT-2 中表现得非常不同:

      • ELMo中,随着上层的context-specificity 增加,同一句子中的单词的 representation 越来越相似。

      • BERT 中,同一句子中的单词的 representation 在上层变得更加不相似,但平均而言仍然比随机采样的单词更加相似。

      • 然而在GPT-2 中,同一句子中的单词的 representation ,并不比两个随机采样的单词更加相似。

      即,同一个句子中的不同单词,在 ELMo 的更高层中越来越相似、在 BERT 的更高层中更加不相似(但是比随机的单词更相似)、在 GPT-2 中与随机单词的相似性差不多。

    • 在对各向异性的影响进行调整后,平均来说,一个单词的contextualized representation中只有不到 5% 的方差可以由其第一主成分解释 first principal component 。这一点在所有模型的所有 layer 上都成立。这表明:contextualized representation 并不对应于有限数量的 word-sense representation ,即使在最好的情况下,static embedding 也只是contextualized embedding 的糟糕的替代物。尽管如此,通过提取一个单词的contextualized representationfirst principal component 而创建的 static embedding 在许多 word vector benchmark 上超越了 GloVe embeddingFastText embedding

    这些洞察有助于证明为什么使用 contextualized representation 能在许多 NLP 任务中带来如此显著的改进。

  2. 相关工作:

    • Static Word EmbeddingSkip-gram with negative sampling: SGNSGloVe 是生成 static word embedding 的最著名的模型之一。虽然在实践中它们迭代式地学习 embedding ,但已经理论上证明,它们都隐式地分解了一个 word-context matrix ,该矩阵包含 co-occurrence statisticstatic word embedding 的一个显著问题是,由于它们为每个单词创建了一个单一的 representation ,所以一个多义词的所有意义必须共享单个向量。

    • Contextualized Word Representation :鉴于 static word embedding 的局限性,最近的工作试图创建 context-sensitive word representationELMo, BERT, GPT-2 是深度神经语言模型,它们经过微调从而应用于广泛的下游 NLP 任务。它们的内部 word representation 被称作 contextualized word representation ,因为 word representation 是整个输入句子的一个函数。 这种方法的成功表明,这些 representation 捕获了语言的高度可迁移transferable 的、和任务无关 task-agnostic 的属性。

      • ELMo 通过拼接一个双层 biLSTMinternal states ,从而创建每个 tokencontextualized representation 。这个双层 biLSTM 在双向语言建模任务上训练。

      • 相比之下,BERTGPT-2 分别是双向的和单向的 transformer-based 的语言模型。12 层的 BERT (base, cased)12 层的 GPT-2 的每个 transformer layer 通过关注输入句子的不同部分来创建每个 tokencontextualized representation

    • Probing Task:之前对 contextualized word representation 的分析主要限于 probing task 。这涉及到训练线性模型来预测单词的句法(例如,part-of-speech tag )和语义(例如,word relation )属性。probing 模型的前提是,如果一个简单的线性模型可以被训练来准确预测语言属性,那么 representation 需要隐式地编码这一信息。然而这些分析发现,contextualized representation 编码了语义信息和句法信息,但它们无法回答这些representation 有多么地 contextual ,以及它们在多大程度上可以被 static word embedding 所取代。因此,我们在本文中的工作与大多数对 contextualized representation 的剖析明显不同。它更类似于 《The strange geometry of skip-gram with negative sampling》,后者研究了 static word embedding space 的几何特性。

36.1 方法

  1. Contextualizing Model:我们研究的 contextualizing modelELMoBERTGPT-2 。我们选择 BERT_base ,因为它在层数和维度方面与 GPT-2 最具可比性。所有模型都是在各自的语言建模任务中预训练过的。

    尽管 ELMoBERTGPT-2 分别有 21212 个隐藏层,但我们也将每个 contextualizing model的输入层作为其第 0 层。这是因为第 0 层不是 contextualized 的,使其成为比较后续层所做的 contextualization 的有用 baseline

  2. 数据:为了分析 contextualized word representation ,我们需要 input sentence 来馈入我们的 pretrained model 。我们的输入数据来自 2012-2016 年的 SemEval 语义文本相似性任务。我们使用这些数据集是因为它们包含了一些句子,在这些句子中出现了相同的单词但是具有不同的 context 。例如,单词 "dog" 出现在 "A panda dog is running on the road.""A dog is trying to get bacon off his back." 。如果一个模型在这两个句子中为"dog" 生成了相同的 representation ,我们可以推断出没有 contextualization ;反之,如果生成了不同的 representation ,我们可以推断出它们在某种程度上被 contextualized

    相同的单词出现在不同的 context 中,那么该单词如果具有不同的 embedding,则表示没有 contextualized

    利用这些数据集,我们将单词映射到它们出现的 sentence list 、以及它们在这些句子中出现的索引。在我们的分析中,我们不考虑那些出现在少于 5unique context 中的单词。

  3. 衡量 Contextuality :我们用三个不同的指标来衡量一个 word representationcontextual 程度:自相似性 self-similarity 、句内相似性 intra-sentence similarity 、最大可解释方差 maximum explainable variance

    • 自相似性:令单词 w 出现在每个句子 {s1,,sn} 中的位置为 {i1,,in},其中 w=s1[i1]=,=sn[in] 。令 fl(s,i) 为一个函数,它将 s[i] 映射到模型 f 中第 l 层的对应的 word representation 。单词 wlayer l 中的自相似性定义为:

      (26)SelfSiml(w)=1n2njkjcos(fl(sj,ij),fl(sk,ik))

      换句话说,一个单词 w 在第 l 层中的自相似性是其在 nunique context 中的 contextualized representation 的平均余弦相似度。

      • 如果第 l 层完全不对 representation 进行 contextualize ,那么 SelfSiml(w)=1 (即,representation 在所有 contexts 中都是相同的)。

      • 对于 w 来说,representationcontextualized ,我们期望它的自相似性就越低。

      这里有个前提条件:单词的 context 之间是均匀分布的(而不是集中在某些 context 上)。

    • 句内相似性:令 s 为一个序列 <w1,,wn>,包含 n 个单词。句子 slayer l 的句内相似性定义为:

      (27)IntraSiml(s)=1nicos(sl,fl(s,i))sl=1nifl(s,i)

      换句话说,一个句子的句内相似性是其 word representationsentence vector 之间的平均余弦相似度,而 sentence vector 只是这些 word vector 的平均值。

      • 如果 IntraSiml(s) 、以及所有的 wsSelfSiml(w) 都很低,那么模型通过如下的方式来 contextualize 单词:给每个单词一个 context-specific representation ,并且同一个句子中的不同 word 具有不同的 word representation

      • 如果 IntraSiml(s) 很高,但是 SelfSiml(w) 很低,这表明同一个句子中的不同 wordrepresentation 之间区别很小,同一个句子中的单词仅仅是通过使其在向量空间中的 representation 收敛到一个很小的区域从而实现 contextualization

    • 最大可解释方差:令 [fl(s1,i1),,fl(sn,in)]Rd×n 为单词 w 在第 l 层的 occurrence matrixdrepresentation 维度。令 σ1,,σm 为该矩阵的从大到小排列的奇异值 singular value 。那么最大可解释方差被定义为:

      (28)MEVl(w)=σ12iσi2

      MEVl(w) 是在给定层中, wcontextualized representation 中可由其第一主成分解释的方差比例。它为我们提供了一个关于 word static embedding 可以在多大程度上取代 word contextualized representation 的上限。

      • MEVl(w) 越接近于 0static embeddingreplacement 就越差。

      • MEVl(w) 等于 1 ,那么 static embedding 将是 contextualized representation 的完美替代。

  4. 针对各向异性 Anisotropy做调整:在讨论 contextuality 时,考虑各向同性isotropy 是很重要的。例如:

    • 如果 word vector 是完全各向同性的(即方向均匀),那么 SelfSiml(w)=0.95 将表明 wrepresentation 被很差地 contextualized

    • 然而,考虑到这样的情况,即 word vector 是如此的各向异性,任何两个单词的平均余弦相似度为 0.99 。此时 SelfSiml(w)=0.95 将表明 wrepresentation 被很好地 contextualized 。这是因为 w 在不同 context 中的 representation 平均而言比两个随机选择的单词更加不相似。

    为了调整各向异性的影响,我们使用了三个 anisotropic baseline ,每个 baseline 对应于我们的一个 contextuality 指标。

    • 对于自相似性和句内相似性,baseline 来自均匀随机采样的单词在不同 context 下的 representation 的平均余弦相似度。在一个给定的层中,word representation 的各向异性越大,这个 baseline 就越接近于 1

      均匀随机采样了两个单词,然后计算它们之间的 embedding 的余弦相似度。采样多次并计算期望值。

    • 对于最大可解释方差,baseline 是均匀随机采样的 word representation 中被其第一主成分解释的方差比例。在一个给定的层中,,word representation 的各向异性越大,这个 baseline 就越接近于 1 。即使是随机采样的单词,主成分也能解释很大一部分的方差。

      均匀随机采样了一个 word 集合,然后计算它们的 embedding 矩阵的第一主成分。采样多次并计算期望值。

    由于 contextuality 指标是针对 contextualizing model的每一层计算的,所以我们也为每一层计算单独的 baseline。然后我们从每个指标值中减去其各自的 baseline ,得到 anisotropy-adjusted contexuality 指标。例如,anisotropy-adjusted 的自相似性为:

    (29)Baseline(fl)=Ex,yU(O)[cos(fl(x),fl(y))]SelfSiml(w)=SelfSiml(w)Baseline(fl)

    其中:O 表示所有的 word occurrence 的集合。

    除非另有说明,本文其余部分中提到的 contextuality 指标是指 anisotropy-adjusted 的指标,其中原始指标和基线都是用 1K 个均匀随机采样的 word representation 估计的。

36.2 实验

  1. (An)Isotropy

    • 在所有 non-input layers 中,contextualized representation 是各向异性 anisotropic 的。

      如果来自某一层的 word representation 是各向同性 isotropic 的(即各方向均匀),那么均匀随机采样的单词之间的平均余弦相似度将是 0《A simple but tough-to-beat baseline for sentence embeddings》)。 这个平均余弦相似度越接近于 1 ,表示各向异性越大。

      各向异性的几何解释是:

      • word representation 都在向量空间中占据一个狭窄的锥体,而不是在所有方向上都是均匀的。

      • 各向异性越大,这个锥体就越窄(《The strange geometry of skip-gram with negative sampling》)。

      如下图所示,这意味着在 BERTELMoGPT-2 的几乎所有层中,所有单词的 representation 都在向量空间中占据一个狭窄的锥体。唯一的例外是 ELMoinput layer ,它产生 static character-level embedding ,而不使用 contextual 信息甚至 positional 信息(《Deep contextualized word representations》)。

      然而,应该注意的是,并非所有的 static embedding 都一定是各向同性的:《The strange geometry of skip-gram with negative sampling》发现,同样是 staticskipgram embedding 并不是各向同性的。

    • contextualized representation 通常在较高的层中更加各向异性。

      如下图所示,对于 GPT-2 ,均匀随机的单词之间的平均余弦相似度在第 2 层到第 8 层大致为 0.6 ,但从第 8 层到第 12 层呈指数级增长。事实上,GPT-2 的最后一层的 word representation 是如此的各向异性,以至于任何两个单词的平均余弦相似度几乎都是 1.0

      这种模式也适用于 BERTELMo ,不过也有例外:例如,BERT 的倒数第二层的各向异性比最后一层高得多。

      对于static word embedding ,各向同性有理论上的和经验上的好处。

      • 在理论上,各向同性允许在训练期间进行更强的 "self-normalization"《A simple but tough-to-beat baseline for sentence embeddings》)。

      • 而在实践中,从 static word embedding 中减去 mean vector 会导致在几个下游 NLP 任务上的改进(《All-but-the-top: Simple and effective postprocessing for word representations》)。

      因此,在contextualized word representation 中看到的极端程度的各向异性是令人惊讶的,特别是在较高的层。如下图所示,对于所有三个模型,contextualized hidden layer representation 几乎都比 input layer representation 更加各向异性,而后者没有纳入 context 。这表明高度的各向异性是 contextualization 过程所固有的,或者至少是 contextualization 过程的副产品。

  2. Context-Specificity

    • contextualized word representation 在更高的 layer 上更加 context-specific

      根据定义,在一个给定模型的给定层中,一个单词的 self-similarity 是它在不同 context中的 representations 的平均余弦相似度(根据各向异性进行调整)。

      • 如果 self-similarity1 ,那么这些 representations 就完全没有 context-specific

      • 如果 self-similarity0 ,那么这些 representations 就具有最大的 context-specific

      在下图中,我们绘制了 BERTELMoGPT-2 各层中均匀随机采样的单词的平均 self-similarity 。例如,ELMoinput layer 的自相似度是1.0,因为该层的 representationstatic character-level embedding

      在所有三个模型中,layer 越高,平均 self-similarity 越低。换句话说,layer 越高,contextualized representation 更加 context-specific 。这一发现具有直观的意义。在图像分类模型中,lower layer 识别更多的通用特征(如,边缘),而upper layer 识别更加 class-specific 的特征(《How transferable are features in deep neural networks?》)。同样,在 NLP 任务上训练的 LSTMupper layer 会学习更加 task-specificrepresentation《Linguistic knowledge and transferability of contextual representations》)。因此,由此可见,神经语言模型的 upper layer 会学习更加 context-specificrepresentation ,从而更准确地在给定 context 的条件下预测 next word

      在所有三个模型中,GPT-2representation 是最context-specific 的,GPT-2 最后一层的 representation 几乎是最大化地 context-specific 的。

    • 停用词 stopword (如,"the", "of", "to")具有最 context-specificrepresentation

      在所有的层中,stopwordsself-similarity 是所有单词中最低的,这意味着它们的 contextualized representation 是最 context-specific 的。例如,在 ELMo 的各层中,平均 self-similarity 最低的单词是 "and""of""’s""the""to"。鉴于这些词不是多义词,这相对来说是令人惊讶的。这一发现表明:一个单词所出现的各种 contextvariety ,而不是其固有的多义性,是推动其 contextualized representationvariation 的原因。这回答了我们在 introduction 章节中提出的一个问题:ELMoBERTGPT-2 并不是简单地将有限数量的 word-sense representation 中的一个分配给每个单词;否则,在具有如此少的 word sense 的单词的 representation 中就不会有如此多的变化。

    • context-specificityELMoBERTGPT-2 中的表现非常不同。

      如前所述,在 ELMoBERTGPT-2upper layerscontextualized representation 更加 context-specific 。然而,这种 increased context-specificity 在向量空间中是如何体现的?同一句子中的 word representation 是否会收敛到一个点上,或者它们在与其他context 中的 representation 不同的同时,仍然保持着彼此之间的不同?为了回答这个问题,我们可以度量一个句子的句内相似度。

      从定义可以看出,在给定模型的给定层中,一个句子的句内相似性是其每个 word representation 与它们的均值之间的平均余弦相似度,并根据各向异性进行调整。如下图所示,我们绘制了 500 个均匀随机采样的句子的平均句内相似度。

      • ELMo 中,同一句子中的单词在 upper layers 的相似度更高:随着句子中的 word representationupper layers 变得更加 context-specific ,句内相似度也在上升。 这表明,在实践中,ELMo 最终将 《A synopsis of linguistic theory》 的分布假说背后的直觉延伸到了 sentence level :因为同一句子中的单词共享相同的 context ,它们的 contextualized representation 也应该是相似的。

      • BERT 中,同一句子中的单词在 upper layers 中彼此更加不相似:随着句子中的单词的representationupper layers 中变得更加 context-specific ,它们彼此渐行渐远,尽管也有例外(见下图中第 12 层)。然而,在所有层中,同一句子中的单词的平均相似性仍然大于随机选择的单词的平均相似性(即 anisotropy baseline )。这表明,与 ELMo 相比,BERT 有一个更细微的 contextualization ,它认识到,虽然周围的句子告知了一个单词的含义,但同一句子中的两个单词不一定有相似的含义。

      • GPT-2 中,同一句子中的 word representation 并不比随机采样的单词更相似:平均而言,未调整的句内相似度与 anisotropy baseline 大致相同,因此从下图中可以看出,在 GPT-2 的大多数层中,anisotropy-adjusted 的句内相似度接近于 0 。事实上,句内相似度在 input layer 中是最高的,该层完全不对单词进行 contextualize 。这与 ELMoBERT 形成了鲜明的对比,ELMoBERT 在除了一个层之外的所有其他层的平均句内相似度都高于 0.20

      正如前面讨论 BERT 时指出的,这种行为仍然具有直观的意义:同一个句子中的两个单词不一定有相似的含义,即使它们共享相同的 contextGPT-2 的成功表明,高的句内相似性并不是 contextualization 所固有的。同一句子中的不同单词可以有高度contextualizedrepresentation ,而这些 representation 并不比两个随机的 word representation 更相似。然而,目前还不清楚这些句内相似性的差异是否可以追溯到模型结构的差异,我们把这个问题留给未来的工作。

      高度的各向异性是 contextualization 过程所固有的。

  3. Static vs. Contextualized

    • 平均来说,一个单词的 contextualized representation 中只有不到 5% 的方差可以被 static embedding 所解释。

      从定义可以看出,对于给定模型的给定层,一个单词的最大可解释方差(maximum explainable variance: MEV )是其 contextualized representation 中可由其第一主成分解释的方差的比例。这为我们提供了一个关于 static embedding 能多好地取代一个单词的 contextualized representation 的上限。 因为 contextualized representation 是各向异性的,所有单词的大部分变化都可以由单个向量来解释。我们对原始 MEV 针对各向异性进行调整:计算均匀随机采样的 word representation 的第一主成分所解释的方差比例,然后从原始 MEV 中减去这一比例。在下图中,我们绘制了均匀随机采样的单词上的平均 anisotropy-adjusted MEV

      随机采样一个单词,然后计算该单词在指定层上的 MEV 。然后重复这一过程多次,得到平均 MEV

      平均而言,在 ELMoBERTGPT-2 中,没有任何一层可以通过 static embedding 来解释超过 5%word contextualized representation 方差。虽然在下图不可见,但许多单词的原始 MEV 实际上低于 anisotropy baseline :也就是说,与单个单词的所有 representation 的方差相比,所有单词的 representation 的方差有更大的比例可以由单个向量来解释。注意,5% 的阈值代表了最好的情况,而且在理论上不能保证 word vector 会与最大化 MEVstatic embedding 相似。

      单个单词的所有 representation 的方差:一个单词在指定层的 MEV;所有单词的 representation 的方差:所有单词在指定层的 MEV

      这表明,contextualizing model 并不是简单地将有限数量的 word-sense representation 中的一个分配给每个单词,否则,被解释的方差的比例会高得多。 ELMoBERT 的所有层的平均原始 MEV 甚至低于 5% 。只有 GPT-2 的原始 MEV 相对较大,由于极高的各向异性,第 211 层的平均 MEV 约为 30%

    • lower layerscontextualized representation 的主成分在许多 benchmark 上优于 GloVeFastText

      如前所述,我们可以通过在给定层中抽取其 contextualized representation 的第一个主成分(principal component: PC )来为每个单词创建 static embedding 。在下表中,我们绘制了这些 PC static embedding 在几个 benchmark 任务中的表现。这些任务包括语义相似性semantic similarityanalogy solvingconcept categorizationSim-Lex999MENWS353RWSemEval-2012Google analogy solvingMSR analogy solvingBLESSAP 。我们在下表中不考虑第 3 ~ 10 层,因为它们的性能介于第 2 层和第 11 层之间。

      • 表现最好的 PC static embedding 属于 BERT 的第一层,尽管 BERTELMo 的其他层的 embedding 在大多数 benchmark 上也优于 GloVeFastText

      • 对于所有三个 contextualizing model ,从 lower layer 创建的 PC static embedding 比从 upper layer 创建的更有效。

      • 使用 GPT-2 创建的 static embedding 也明显比来自 ELMoBERTstatic embedding 表现更差。

        GPT-2 创建的 static embedding 甚至要比 GloVeFastText 更差。

      鉴于 upper layerlower layer 更加 context-specific ,而且 GPT-2representationELMoBERT 的更加 context-specific (见 Figure 2 ),这表明高度 context-specificrepresentationPC static embedding 在传统 benchmark 上不那么有效。那些 less context-specific representation (如,来自 BERT 第一层的 representation )派生的 PC static embedding ,则要有效得多。

  4. 未来工作:

    • 首先,正如本文前面所指出的,《All-but-the-top: Simple and effective postprocessing for word representations》发现,使 static embedding 更加各向同性(通过从每个 embedding 中减去其均值),导致下游任务的性能有惊人的改善。鉴于各向同性对 static embedding 有好处,它也可能对 contextualized word representation 有好处,尽管后者在高度各向异性的情况下已经取得了明显的改善。因此,在 language modelling objective 中加入各向异性的惩罚可能会产生更好的结果,如鼓励 contextualized representation 更加各向同性。

    • 另一个方向是从 contextualized word representation 中生成 static word representation 。虽然后者提供了卓越的性能,但在生产中部署像 BERT 这样的大型模型,在内存和运行时间方面往往存在挑战。相比之下, static word representation 更容易部署。我们的工作表明,不仅有可能从 contextualizing model 中提取 static representation ,而且与传统的 static embedding (如 GloVeFastText )相比,这些 extracted vector 往往在各种任务中表现得更好。

      在推断期间:static embedding 执行的是 lookup operation ,因此速度更快;而 contextualized embedding 执行的是前向传播,因此速度很慢。

三十七、CERT [2020]

  1. 大规模的 pretrained language representation model (如 BERT, GPT, BART 等),在各种自然语言处理任务中取得了卓越的性能,如文本生成、阅读理解、文本分类等任务。这些模型的架构大多基于 Transformer ,它使用自注意力来捕获 token 之间的长距离依赖关系。Transformer 编码器或解码器通过自监督任务在大规模文本语料库上进行预训练,这些自监督任务包括:预测 masked tokenBERT ),生成 future tokenGPT),恢复 corrupted tokenBART )等等。在这些工作中,要预测的 target 大多是在 word level 。因此,sentence level 的全局语义可能没有被充分捕获。

    为了解决这个问题,论文 《CERT: Contrastive Self-supervised Learning for Language Understanding》 提出了 CERT:Contrastive self-supervised Encoder Representations from Transformers ,它使用 contrastive self-supervised learning: CSSL 来学习 sentence-level representation

    最近,CSSL 在以无监督的方式学习 visual representation 方面显示出很好的效果。CSSL 的关键思想是:创建原始样本的 augmentation ,然后通过预测两个augmentation是否来自同一个原始数据样本来学习 representationCERT 使用 back-translation《Understanding back-translation at scale》)创建句子的增强 augmentation ,然后通过预测两个 augmentation 是否来自同一个原始句子来微调 pretrained language representation model (例如 BERT, BART )。现有的预训练方法在 token 上定义 prediction task 。相反,CERTsentence 上定义 prediction task,这可以推测在 sentence level 更好地捕获全局语义。

    CERT 使用 back-translation 来对句子执行 augmentation 。给定源语言 source language S 的一个句子 xCERT 使用 S-to-T 的翻译模型将 x 翻译到目标语言 target language T 的句子 y ,然后再使用 T-to-S 的翻译模型将 y 翻译到源语言 S 的句子 xx 被视为 x 的一个 augmentation 。不同目标语言的翻译模型被用来创建同一个源句的不同的 augmentation

    要求有合适的翻译模型,并且翻译模型的质量会影响 CERT 的效果。

    给定 augmented sentencesMomentum Contrast: MoCo 方法(《Momentum contrastfor unsupervised visual representation learning》)被用来执行 CSSLMoCo 维护一个关于 augmented sentences (称作 keys)的队列,该队列使用带有动量更新的 pretrained text-encoder (例如 BERT )进行编码。给定一个 augmented sentence (称为 query),通过 BERT (或任何其他pretrained text-encoder )来计算 query encoding 与队列中每个 key embedding 之间的相似性分数。如果 querykey 是同一个原始句子的 augmentation ,则它们被标记为 positive pair ,否则被标记为 negative pair 。这些二元标签和相似性分数被用来计算 contrastive losspretrained text encoder 的权重是通过最小化 contrastive loss 来进一步预训练的。为了在下游任务上应用 pretrained CERT modelCERT 使用下游任务的输入数据和标签对 CERT 的权重进行微调。

    也可以用 in-batch 负样本来代替这里的 MoCo 方法。

    CERT 是一个灵活的模块,可以与任何 pretrained language representation model 集成,如 BERT, BART, ERNIE 2.0, T5 等。作者在 GLUE benchmark 中的 11 个自然语言理解任务上评估了 CERT ,其中 CERT7 个任务上优于 BERT ,在 2 个任务上达到与BERT 相同的性能,而在 2 个任务上表现比 BERT 差。在 11 项任务的平均得分上,CERT 优于 BERT 。这些结果表明,通过捕获 sentence-level 的语义,针对 language representationcontrastive self-supervised learning 的有效性。

    论文贡献:

    • 提出了 CERT ,一种基于 contrastive self-supervised learning 的新的 language representation pretraining 方法。CERT 是在 sentence level 定义了 predictive task ,因此预计可以更好地捕获 sentence-level 的语义。

    • GLUE benchmark11 个自然语言理解任务上对 CERT 进行了评估,CERT11 个任务的平均得分上优于 BERT

    • 进行了消融研究,以研究 CERT 的性能如何受到 sentence augmentation 方法和预训练语料源的影响。

    CERT 是针对 sentence embedding 的一系列对比学习方法中的一种。这些对比学习方法的核心在于:如何创建 augumentation、对比学习的负样本。

  2. 相关工作:

    • 针对 learning language representationpretraining:最近,在大规模文本语料库上进行 language representation learning 的预训练已经取得了实质性的成功。

      • GPT 模型是一个基于 Transformer 的语言模型( language model: LM )。Transformer 定义了在给定 input sequence 的条件下得到 output sequence 的条件概率。与 Transformer 不同,GPT 定义了在单个 output sequence 上的边际概率。在 GPT 中,给定历史序列的条件下,next token 的条件概率是通过 Transformer decoder 来定义的。权重参数是通过最大化 token 序列的可能性来学习的。

      • GPT-2GPT 的扩展,它对 GPT 进行了修改,将 layer normalization 作用到每个 sub-block 的输入,并在 final self-attention block 后增加一个 additional layer normalizationByte pair encoding: BPE 被用来表示 token 的输入序列。

      • BERT-GPT 是一个用于 sequence-to-sequence modeling 的模型,其中 pretrained BERT 被用来编码输入文本,pretrained GPT 被用来生成输出文本。在 BERT-GPT 中,BERT encoderGPT decoder 的预训练是单独进行的,这可能导致性能下降。

      • Auto-Regressive Transformer BART 具有与 BERT-GPT 类似的架构,但对 BERT encoderGPT decoder 进行联合训练。为了预训练 BART 权重,输入文本被随机破坏,如 token maskingtoken deletion 、文本填充等,然后学习网络以重建原始文本。

      • ALBERT 使用parameter-reduction 方法来减少内存消耗并提高 BERT 的训练速度。它还引入了自监督损失用于建模句子间的一致性 inter-sentence coherence

      • RoBERTa 是一项关于 BERT 预训练的复现研究。它表明,通过仔细调优训练过程,BERT 的性能可以得到显著的改善,如:用更多的数据、更大的 batch size 、更长的训练时间;移除 next sentence prediction objective ;在更长的序列上训练。等等。

      • XLNet 通过对 factorization order 的所有排列的 expected likelihood 的最大化,从而来学习 bi-directional context ,并使用广义自回归预训练机制 generalized autoregressive pretraining mechanism 来克服 BERTpretrain-finetune discrepancy

      • T5 比较了各种语言理解任务的预训练目标、架构、未标记数据集、transfer 方法,并提出了一个统一的框架,将这些任务转换为一个 text-to-text 的任务。统一的模型在一个大型的 Colossal Clean Crawled Corpus: C4 上进行训练,然后被迁移到各种各样的下游任务中。

      • ERNIE 2.0 提出了一个 continual pretraining framework ,该框架通过持续的多任务学习来建立和学习 incrementally pretraining task ,以捕获训练语料中的词法信息、句法信息、以及语义信息。

    • Contrastive Self-supervised learningContrastive self-supervised learning 最近引起了很多研究兴趣。

      • 《Data-efficient image recognition with contrastive predictive coding》 研究了基于 contrastive predictive codingdata-efficient 的图像识别,它通过使用强大的自回归模型在潜在空间中预测未来。

      • 《Curl: Contrastive unsupervised representations for reinforcement learning》提出了为强化学习来学习 contrastive unsupervised representation

      • 《Supervised contrastive learning》 研究了 supervised contrastive learning ,其中属于同一类别的数据点的 clusterembedding 空间中被拉到一起,而来自不同类别的数据点的 cluster 被推开。

      • 《Contrastive self-supervised learning for commonsense reasoning》 提出了一种用于常识推理的 contrastive self-supervised learning 的方法。

      • 《Sample-effcient deep learning for covid-19 diagnosis based on ct scans》 提出了一种 Self-Trans 方法,该方法在通过 transfer learning 从而在 pretrained network 之上应用 contrastive self-supervised learning

37.1 模型

  1. 针对 pretraining language representation 模型的最近的工作中,大多数工作都是基于 Transformer 架构。例如,BERT 预训练 Transformer encoderGPT 预训练 Transformer decoderBART 联合预训练 Transformer encoderTransformer decoder

    • TransformerTransformer 是一个用于序列到序列(sequence-to-sequence: seq2seq )建模的 encode-decoder 架构。

      基于递归神经网络的 seq2seq 模型(如 LSTMGRU )通过递归方式对 token 序列进行建模,因此计算效率低。Transformer 不同,它摒弃了递归计算,转而使用自注意力,这不仅可以捕获到 token 之间的依赖性,而且还能高效地并行计算。自注意力计算每一对token 之间的相关性,并通过对 token embedding 进行加权求和从而使用这些相关性得分来创建 "attentive" representation

    • BERTBERT 的目的是学习一个用于表示文本的 Transformer encoderBERT 的模型架构是一个多层双向 Transformer encoder 。在 BERT 中,Transformer 使用双向的自注意力。为了训练编码器,BERT 随机掩码了一定比例的 input token ,然后预测这些 masked token

      为了将 pretrained BERT 应用于下游任务,如句子分类,可以在BERT 架构的基础上增加一个附加层,并使用目标任务中的标记数据训练这个newly-added layer

  2. Contrastive Self-supervised Learning:自监督学习(Self-supervised learning: SSL )是一种学习范式,旨在不使用人类提供的标签来捕获输入数据的内在模式和固有属性。自监督学习的基本思想是完全基于输入数据本身构建一些辅助任务(而不使用人类标注的标签),并迫使网络通过很好地执行辅助任务来学习有意义的 representation ,如旋转预测rotation prediction 、图像绘画 image inpainting 、自动着色automatic colorization 、上下文预测context prediction 等等。

    自监督学习中的辅助任务可以使用许多不同的机制来构建。最近,一种对比性机制获得了越来越多的关注,并在一些研究中展示了有希望的结果。对比性自监督学习的基本思想是:生成原始数据样本的augmented 样本,创建一个预测任务,目标是预测两个 augmented 样本是否来自同一个原始数据样本,并通过解决这个任务来学习 representation network

    人们已经提出了不同的方法来实现对比性自监督学习。在为图像数据设计的 SimCLR 中,给定输入图像,对这些图像应用随机数据增强。如果两张augmented 图像是由相同的原始图像创建的,它们就被标记为相似;否则,它们就被标记为不相似。然后 SimCLR 学习一个网络来拟合这些相似/不相似的二元标签。该网络由两个模块组成:

    • 一个是特征提取模块 f(),它提取图像 xlatent representation h=f(x)

    • 另一个是多层感知机 g() ,它将 h 作为输入并生成另一个 latent representation z=g(h),用于预测两个图像是否相似。

    给定一对相似的图像 (xi,xj)K 个与 xi 不相似的图像 {xk}k=1K,对 contrastive loss 可以被定义为:

    (30)logexp(sim(zi,zj)/τ)exp(sim(zi,zj)/τ)+kexp(sim(zi,zk)/τ)

    其中:sim(,) 表示两个向量之间的 cosine 相似度;τ 为温度超参数。

    SimCLR 通过最小化这种损失来学习网络权重。训练结束后,特征提取模块 f() 被用于下游任务,模块 g() 被丢弃。

    这里要求 g() 非常简单,从而迫使 f() 学到有意义的特征。

    虽然 SimCLR 很容易实现,但它需要一个大的 mini-batch size 来产生良好的效果,这在计算上是难以实现的。MoCo 通过使用一个独立于 mini-batch size 的队列来解决这个问题。这个队列包含一个动态的、augmented 样本集合(称为 keys)。在每次迭代中,最新的 mini-batch 样本被添加到队列中;同时,最旧的 mini-batch 样本被从队列中删除。通过这种方式,队列与 mini-batch size 是解耦的。如下图所示。

    keys 是用 momentum encoder 编码的。给出当前 mini-batch 中的一个 augmented 样本(称为 query )、以及队列中的一个 key ,如果它们来自同一图像,则被认为是 positive pair ,否则就是 negative pairMoCo 计算 query encoding 和每个key encoding 之间的相似性得分。contrastive loss 是在相似度的得分和二元标签上定义的。

  3. CERTCERT 采用 pretrained language representation model (如 BERT ),并在目标任务的输入数据上使用 contrastive self-supervised learning 对其进行微调。下图展示了 CERT 的工作流程。为了便于演示,我们使用 BERT 作为 pretrained language representation model

    • 给定来自源任务的大规模输入文本(没有标签),首先在这些文本上预训练一个 BERT 模型。

      注意,源任务的大规模输入文本没有使用对比学习,而是用 BERT 的原始优化目标来训练。

    • 然后,我们使用 contrastive self-supervised learning 在目标任务的输入文本(无标签)上继续训练这个 pretrained BERT model 。我们把这个模型称为pretrained CERT model

      只有目标任务的输入文本才使用对比学习。

    • 然后,我们使用目标任务中的输入文本及其标签对 CERT 模型进行微调,得到执行目标任务的最终模型。

      目标任务的输入文本被使用两次:一次是无监督的对比学习、一次是有监督的目标任务。

    contrastive self-supervised learning 训练中,CERT 使用 back-translation 对目标任务中的原始句子进行增强:如果两个 augmented sentences 是由同一个原始句子创建的,则被认为是 positive pair ,否则就是 negative pairaugmented sentencesBERT 编码,并计算一对句子在 BERT encoding 上的相似性得分。contrastive loss 是根据二元标签和相似性得分来确定的。然后,通过最小化 contrastive loss 来进一步微调 pretrained BERT encoder

    我们使用 MoCo 来实现contrastive self-supervised learning ,以避免使用大型的 mini-batch (大型的 mini-batch 导致计算量太大)。

  4. 数据增强:下图展示了基于 back-translation 的数据增强的工作流程。对于目标任务中的每个输入句子 x ,我们使用 back-translation 对其进行增强。在不失一般性的情况下,我们假设目标任务中的语言是英语。

    • 我们使用 English-to-German 机器翻译模型将 x 翻译成 y ,然后使用 German-to-English 机器翻译模型将 y 翻译成 x 。然后 x 被视为 x 的一个 augmented sentence

    • 同样地,我们使用一个 English-to-Chinese 机器翻译模型和一个 Chinese-to-English 机器翻译模型来获得另一个 augmented sentence x

    我们使用 《Massive exploration of neural machine translation architectures》 中开发的机器翻译模型用于 back-translation

    仅对目标任务的输入文本进行数据增强。

  5. CSSL Pretraining:我们使用 MoCo 来实现 CSSL 。给定两个 augmented sentences ,如果它们源自同一个原始句子,它们就被标记为 positive pair ;如果它们来自不同的句子,它们就被标记为 negative pair 。我们使用一个队列来维护一个 augmented sentence 集合 {ki}k=1K ,称作 keys。给定当前 mini-batch 中的一个 augmented sentence q (称作 query),我们将它与队列中的每个 key 进行比较。

    • querypretrained BERT model fq(;θq) 进行编码,其中 θq 为模型权重。

    • keypretrained BERT model fk(;θk) 进行编码,其中 θk 为模型权重。

    key 模型 fk(;θk) 的权重 θk 通过动量进行更新:θkmθk+(1m)θq ,其中 m 为动量系数。

    query 模型 fq(;θq) 的权重 θq 通过随机梯度下降来更新。之所以二者更新方式不同,是因为需要确 key 队列的变化比较缓慢。

    在不失一般性的情况下,我们假设队列中有单个 key k+q 形成一个 positive paircontrastive loss 定义为:

    (31)logexp(sim(fq(q;θq),fk(k+;θk))/τ)k=1Kexp(sim(fq(q;θq),fk(ki;θk))/τ)

    其中:τ 为温度超参数。

    query BERT encoder 的权重是通过最小化该损失来进行微调的。请注意,在这个步骤中,只使用目标任务的输入句子,而不需要这些句子的标签。为了将 pretrained CERT model 应用于下游任务,我们进一步在目标任务中的输入句子及其标签上微调模型权重。

  6. 未来工作:我们计划研究更具挑战性的自监督学习的损失函数。我们有兴趣研究一种 ranking-based loss, ,即每个句子都被增强了 ranked list 的句子,这些augmented 句子与原句的差异越来越小。辅助任务是预测给定的 augmented 句子的排序。预测排序可能比 CSSL 中的二分类更具挑战性,并可能有助于学到更好的 representation

    另外,是否考虑对源任务的输入文本也执行对比学习?

37.2 实验

  1. 评估任务:General Language Understanding Evaluation: GLUE 基准,包含 11 个任务。我们通过向 GLUE 评估服务器提交推理结果来获得测试集的性能。数据集如下表所示。

  2. 实验配置:

    • MoCo 中,队列的大小被设置为 96606MoCo 更新 key encoder 的动量系数为 m = 0.999

    • contrastive loss 中的温度超参数为 τ=0.07

    • 使用 multi-layer perceptron head

    • 对于 MoCo training ,使用带动量的随机梯度下降优化器。mini-batch size = 16 。初始学习率为 4e-5 ,并使用余弦调度器。epoch 数量为 100。权重衰减系数为 1e-5

    • 对于 GLUE 任务上的微调,最大序列长度被设置为 128mini-batch size = 16

      • 学习率设置:CoLA, MNLI, STS-B3e-5RTE, QNLI, MRPC, SST-2, WNLI2e-5QQP1e-5

      • 训练 epoch 数量:CoLA20RTE, WNLI, QQP5QNLI, MNLI3MRPC15SST-24STS-B10

  3. 验证集上的评估结果:GLUE 任务中,验证集效果如下表所示。遵从 ALBERT ,我们对微调进行了 5 次随机重启,并报告了这 5 次运行中的中位数和最佳性能。由于 5 次重启的随机性,我们的中位数性能与 ALBERT 报告的不一致。但一般来说,它们是接近的。可以看到:

    • 就中位数性能而言,我们提出的 CERT5 个任务上优于 BERT ,包括 CoLA, RTE, QNLI, SST-2, QQP ;在其他 5 个任务中,CERTBERT 持平。这证明了 CERT 在通过 contrastive self-supervised learning 来学习更好的 language representation 方面的有效性。

    • 其次,就最佳性能而言,CERT7 个任务上的表现优于 BERT ,包括CoLA, RTE, QNLI, STS-B, MNLI-m, MNLI-mm, QQPCERTMRPCWNLI 上与 BERT 持平。CERTSST-2 上的表现不如 BERT 好。这些结果进一步证明了 CERT 的有效性。

    • 第三,在训练数据较少的任务(如 CoLARTE )上,CERTBERT 的改进更为显著。一个可能的原因是,小规模的训练数据更容易过拟合,这使得 CSSL 预训练的必要性更加突出。

    • 第四,在 CoLARTE 这样的小规模数据集上,CERT 获得了更大的提升。这表明,在解决训练数据量有限的低资源 NLP 任务方面,CERT 很有前途。

    为了方便读者,我们还展示了 SOTA 的预训练方法的结果,包括XLNet, RoBERTa, ERNIE 2.0, ALBERTCERTCoLA 上取得了接近 XLNet 的性能,对计算资源的消耗要低得多,而且文本语料库也小得多。XLNet, RoBERTa, ERNIE 2.0, ALBERT 是在数百到数千台 GPU 机器上训练数天的,而 CERT 是使用单个 GPU 训练十几个小时的。此外,这些模型是在几十或几百 GB 的文本上训练的,而 CERT 只在大约 400KB 的文本上训练。CERT 也可以建立在这些 pretrained model 之上,这将留待将来研究。

  4. 测试集上的评估结果:GLUE 任务中,测试集效果如下表所示。可以看到:

    • 11 个任务中,CERT7 个任务上的表现优于 BERT ,包括 RTE, QNLI, STS-B, MRPC, MNLI-m, MNLI-mm, QQPCERTWNLIAX 上实现了与 BERT 相同的性能,在 CoLASST-2 上表现比 BERT 更差。CERT 取得了 80.7 的平均分,比BERT 好。总的来说,CERT 的表现比BERT 好,这进一步证明了 contrastive self-supervised learning 是一种学习更好的language representation 的有效方法。

    • 虽然 CERTCoLA 的验证集上取得了比 BERT 好得多的性能,但在 CoLA 的测试集上比BERT 更差。这可能是因为 CoLA 的测试集和验证集有很大的 domain difference

    下表还列出了其他 SOTA 方法的性能。下一步,我们计划用 XLNet, ERNIE2, T5, RoBERTa, ALBERT 取代 CERT 中基于 BERTsentence encoder ,看看 CSSL 预训练是否能提高这些编码器的性能。

    CERT 在预训练、微调之外,还增加了一个对比学习任务,这使得 CERTBERT 训练了更多的数据。这其实是一种不太公平的比较。应该让 BERT 在目标任务的输入文本(不包含标签)上继续预训练,使得 BERTCERT 训练的数据量相同。

  5. Data Augmentation 的消融研究:CERT 的一个关键要素是创建 augmented sentence 。默认情况下,我们使用 back-translation 来进行数据增强。研究其他的数据增强方法也是很有趣的。我们将 back-translation 与最近提出的文本增强方法 Easy Data Augmentation: EDA《Eda: Easy data augmentation techniques for boosting performance on text classification tasks》)进行比较。给定训练集中的一个句子,EDA 随机选择并执行以下操作之一:同义词替换、随机插入、随机互换、随机删除。

    下表显示了 CERTCoLARTE 任务上分别使用 back-translationEDA 进行增强的结果。可以看到:总的来说, back-translation 取得了比 EDA 更好的结果,只是 back-translationSTS-B 上的中位数性能比 EDA0.1%

    back-translation 效果更好的原因可能是:

    • back-translationsentence level 上进行全局地增强(整个句子被来回地翻译),而 EDAword/phrase level 上进行局部地增强。因此, back-translation 可以更好地捕获句子的全局语义,而 EDA 则是捕获局部语义。

    • 另一个原因可能是:通过 back-translation 增强的句子与原始句子有更大的差异。相比之下,由 EDA 增强的句子与原始句子很接近,因为 EDA 对原始句子进行了局部编辑,并保持了句子的大部分内容不受影响。因此,预测两个通过 back-translation 增强的句子是否来自同一个原句,要比预测那些通过 EDA 增强的句子更难。解决一个更具挑战性的 CSSL 任务通常会带来更好的 representation

  6. CSSL Pretraining Corpora 的消融研究:另一个有趣的研究点是应该使用什么语料来训练 CSSL 。在 CERT 中,默认情况下,我们使用目标任务的训练数据(不包括标签)用于 CSSL 。我们与以下设置进行比较:我们从 BERT 的训练语料库中随机抽取 x 个句子,其中 x 是目标任务中训练句子的数量。

    下表显示了在 CoLASTS-B 上的表现,CSSL 在不同的语料库上进行了预训练。

    • CoLA 任务中,当使用 CoLA 的训练数据时,可以获得更好的性能。

    • STS-B 任务中,当使用 BERT 预训练语料库时,取得了更好的性能。

    从这项研究中,我们并没有得出哪种方法更好的明确结论。在实践中,尝试这两种方法并找出哪种方法更有效,可能是有用的。