返回介绍

数学基础

统计学习

深度学习

工具

Scala

四十一、Sentence-T5 [2021]

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

  1. 句子嵌入entence embedding 提供了紧凑的有意义的 representation ,对各种语言处理任务有广泛的帮助,包括分类 classification 、问答 question-answering 、语义检索 semantic retrievalbitext mining 和语义相似性 semantic similarity 等任务。 最近的工作表明,扩大模型参数、以及利用预训练模型是提高性能的两种有效方法。

    论文 《Sentence-T5: Scalable Sentence Encoders from Pre-trained Text-to-Text Models》 从一个预训练的Text-to-Text Transfer Transformer: T5 模型中探索 sentence embeddingencoder-only model 仅使用 transformer encoder 来预测随机掩码的 token,而 T5 使用 encoder-decoder 架构和 generative span corruption pre-training taskT5 模型可以扩展到数千亿个参数,并在广泛的 NLP 任务上取得了 SOTA 的性能,包括 GLUESuper-GLUE 。然而,很难将 T5 有效地应用于某些任务,如检索或聚类。为了给 retrieval candidate 打分,T5 需要对每个 query-candidate pair 进行带 cross-attentionfull inference 。相比之下,sentence embedding 可以实现高效的检索和聚类。

    如下图所示,论文探索了将 pre-trained T5 encoder-decoder model 变成 sentence embedding model 的三种方式:

    • 使用编码器的 first token representation

    • 将编码器的 all token representations 取平均。

    • 使用解码器的 first token representation

    论文在 sentence transfer 任务上(使用 SentEval )、以及语义文本相似性 semantic textual similarity: STS 任务上评估所得的 sentence embedding 的质量。论文将来自 pre-trained T5 model 的原始 representation 与通过微调的 representation 进行对比(在 natural language inference: NLIRetrieval Question-Answering: ReQA 上使用双编码器和对比学习进行微调)。论文介绍了一个多阶段的对比学习方法:首先在 ReQA 上进行微调,然后在 NLI 上进行微调。最后,论文研究了将 T5 sentence embedding model 扩展到 11B 参数。如下图所示,transfer 任务和 STS 任务都随着模型容量的增加而提高。论文将所提出的模型命名为 Sentence T5: ST5

    据作者所知,该论文是第一个研究使用大规模 pre-trained text-to-text model 进行 sentence representation learning ,并将 sentence embedding model 扩展到 11B 个参数。

    论文贡献如下:

    • 即使没有微调,仅有编码器的 ST5 模型在 sentence transfer 任务上表现良好,超过了 SOTA 的微调模型,如 SimCSE-BERTSimCSE-RoBERTa

    • encoder-decoder sentence embedding modelSTS 上取得了强大的性能,建立了 sentence embedding based STS 的新的 SOTA

    • 对比学习 contrastive learning 对于从 T5-style pre-trained model 中微调句子编码器是有效的,特别是使用论文提出的两阶段对比学习方法。

    • 使用对比损失 contrastive loss 训练 ST5 更长的时间和更多的数据,导致在 sentence transferSTS 任务上的一致改进。

    • 创建一个新的 sentence representation transfer benchmark ,即 "SentGLUE" ,它将 sentence evaluation toolkit 扩展到 GLUE benchmark的九个任务,并在 SentGLUE 上评估 ST5 和其他的 SOTA 模型,从而比较它们在这些挑战性任务上的 transfer 性能。

41.1 模型

  1. T5Text-to-Text transfer transformers: T5Figure 2(a) 所示,由一个 encoder-decoder transformer model 组成,在一个无监督的 span corruption task 上进行预训练。虽然 T5 已经成功应用于众多 NLP 任务,但如何从 T5 中提取高质量的 text representation 仍未被探索。

  2. ST5 的模型架构:我们探索了三种策略从 T5 中抽取 sentence representation ,如 Figure 2(b)(d) 所示:

    • Encoder-only first (ST5-Enc first):将第一个 tokenencoder 上的输出作为 sentence embedding

    • Encoder-only mean (ST5-Enc mean):将所有 tokenencoder 上的输出的平均值作为 sentence embedding

    • Encoder-Decoder first (ST5-EncDec first)decoder output 的第一个位置作为 sentence embedding 。为了获得 decoder output ,将 input text 馈入编码器,并将标准的 "start" symbol 作为 first decoder input

    前两个是广泛用于encoder-only pre-trained model (如 BERT )中的池化策略。与 BERT 模型不同,T5 模型在每个句子的开头没有 CLS token 。对于 T5 encoder-decoder model ,我们假设解码器在生成它的first token prediction 时知道整个 input sentence 的语义。如果是这样,first decoder output embedding (即 softmax layerinput )可能会自然地捕获到句子语义。

    对于 sentence encoder 的训练,我们采用双编码器 dual encoder 架构。如下图所示,该架构由两个共享权重的 transformer 模块(用于对输入进行编码)组成。transformer 模块可以是一个encoder-only 架构、或 encoder-decoder 架构。在我们的实验中,我们从 pre-trained T5 model 中初始化 transformer 模块。

    在每个模块为其 input sentence, 计算出一个固定维度的 representation 后,我们应用投影层projection layerL2 normalization 来作用到所得到的 embedding 之上。投影层将 output 转换为指定维度(即 sentence embedding size )。来自paired encoding towerembeddings 可以使用内积为相似性任务打分,或者作为输入提供给额外的层从而用于 pairwise classification 任务(如 NLI )。

    注:这里是双编码器架构,但是实际上也可以包含解码器,即 ST5 Encoder-Decoder

  3. 对比学习 Contrastive Learning :将对比学习应用于 sentence embedding ,可以提高 embeddings space 的均匀性 uniformity ,从而在下游任务(如 STS )中获得更好的表现(《SimCSE: Simple contrastive learning of sentence embeddings》)。我们应用对比学习来微调 T5 sentence representation

    注:在初步实验中,我们还探索了用 InferSentSBERT 中使用的 classification loss 进行微调。然而,我们发现在NLI 数据集上针对分类任务的微调不如对比学习,如 SimCSE 所报告的那样。

    • Contrastive Loss:使用对比损失来训练一个 sentence encoder 需要 paired examplesD={vi,vi+}$ \mathcal D = \{v_i,v_i^+\} $ 作为训练集,其中vi$ v_i $ 是一个输入句子,vi+$ v_i^+ $ 是一个相关的句子(例如,在语义上接近)。在训练过程中,vi+$ v_i^+ $ 被认为是vi$ v_i $ 的正样本,batch 中的所有其他样本认为是负样本。模型应该学会将正样本拉到 input example 附近,同时将负样本推开。我们使用 in-batch sampled softmax 来计算我们的对比损失:

      (13)L=exp(sim(vi,vi+)/τ)jBexp(sim(vi,vj+)/τ)

      其中:sim() 是相似度评分函数,B$ \mathcal B $ 是一个 mini-batch 的样本,τ$ \tau $ 是 softmax 温度。

      当为 input examplev$ v $ 提供了额外的负样本vj$ v_j^- $ 时,损失函数可以修改为:

      (14)L=exp(sim(vi,vi+)/τ)jBexp(sim(vi,vj+)/τ)+exp(sim(vi,vj)/τ)
    • 两阶段训练:为了研究额外的训练数据的效果,我们探索了两阶段的训练:

      • 首先在 Community QA 网站挖掘的问答数据上进行微调。

        这个阶段的对比学习不包含额外的负样本。

      • 然后,在带有人类标注的NLI 标签的 sentence pair 上对模型进行微调。

        这个阶段的对比学习包含额外的负样本。注意,虽然 NLI 有类别标签,但是这里并不是用分类任务进行微调,而是用对比学习进行微调。

41.2 实验

  1. 训练数据:我们使用两个数据集从而用于两阶段的训练:

    • 第一个阶段使用 community QA 网站收集到的 2Bquestion-answers pair 。在训练期间,相关的答案被认为是每个输入问题的正样本。

      community QA 的数据量有二十亿,远远超过了 NLI 数据集。

    • 第二个阶段使用 NLI 数据集的 contrastive 版本(遵从 SimCSE ),其中包含 275K 个样本,正样本是 entailment hypothesis and premise pair 、负样本是 contradict hypothesis and premise pair

  2. 评估:我们使用 SentEval 进行评估,其中包括 7transfer 任务和 7STS 任务:

    • transfer 任务:通过将sentence embedding 作为特征,从而考察线性分类模型的表现来评估 sentence embedding model 的效果。

    • STS 任务:通过sentence embedding 的余弦相似性,与人类标注的相似性分数之间的相关性来评估 sentence embedding model 的效果。

  3. 配置:

    • 我们的模型是用 JAX 实现的,并在 Cloud TPU-v8 上训练。我们从 public T5 checkpoint 初始化双编码器模块。

    • 在训练期间,我们使用 Adafactor 优化器,并将学习率设置为 0.001 。在训练总步数的 10% 之后对学习率应用线性衰减,使得在训练结束时将学习率降至 0

    • NLI 的微调时,我们使用 batch size = 512;在 Community QA 数据集上微调时,我们使用 batch size = 2048

    • 我们使用 softmax 温度τ=0.01$ \tau = 0.01 $ 。

  4. 实验旨在回答以下问题:

    • Q1:从T5 中提取 sentence representation 的最佳方式是什么?

    • Q2raw T5 sentence embedding 在下游任务中的表现如何?

    • Q3contrastive sentence embedding 任务(如NLIQA)对 T5 sentence embedding 的改善程度如何?

    • Q4:我们能否从扩大模型容量以获得更好的sentence representation 中获益?

    带着这些目标,我们使用各种模型和训练配置研究 T5 sentence embeddingtransfer 任务和 STS 任务上的性能,将 ST5SOTA 方法进行比较,包括 SBERT/SRoBERTaSimCSE

41.2.1 Raw T5 Sentence Embeddings

  1. 我们首先评估没有微调的 T5 sentence embedding 。我们评估了所有三种策略:Encoder-only first tokenEncoder-only meanEncoder-decoder start token 。在所有的实验中,我们直接使用 T5 transformerencoder outputdecoder output ,而不做任何投影。这使我们能够充分利用 pre-trained modelembedding 能力。

  2. transfer 任务:在 transfer 任务中使用raw embeddingST5 模型的结果显示在下表的第 3-5行。

    • BERT 不同,T5first token (无论是编码器还是解码器)并不是一个特殊的占位符(即 CLS ),也没有特定的预训练任务使用第一个tokenembedding 。因此,如果不进行额外的微调,first tokenrepresentation 不太可能捕获到整个句子的语义。

      事实上,我们的实验表明,在所有的 SentEval 任务中,来自编码器或解码器的first tokenrepresentation ,与encoder-only model 的均值池化相比要差很多。

    • 当在 T5 encoder output 上应用均值池化时(下表中的第四行),它大大超过了 BERTaverage embeddings 。值得注意的是,即使没有微调,T5encoder-only outputsaverage embeddings 也优于 SimCSE-RoBERTa ,后者在 NLI 数据集上进行了微调。

      这可能是由于 T5 是在更多的数据上训练的。原始的 T5 模型在预训练时还包括下游任务(如 GLUESuperGLUE),这种多任务设置可能会提高 transfer 性能。然而我们注意到,GLUE 中只包含了两个 SentEval 任务(SSTMRPC),而我们本次评估中的剩余五个任务则没有包含在 GLUE 中。如下表所示,我们观察到,未包括在GLUE 中的其它五个任务都有明显的改进。

  3. STS 任务:相比之下,我们观察到使用 raw T5 sentence embeddingSTS 任务的结果很弱,如下表的第 3-5 行所示。T5 embedding 的均值池化实现了 55.97 的平均 STS 得分,略好于 BERT 的均值池化,但仍然比在监督任务上进行微调的模型差得多。这类似于其他 pre-trained language models (如 BERTRoBERTa) 关于 contextual embedding 的各向异性现象的发现结果(《SimCSE: Simple contrastive learning of sentence embeddings》)。embedding collapse 阻止了该模型在与距离有关的指标上的良好表现。

41.2.2 Fine-Tuning T5 Sentence Embeddings

  1. 接下来,我们从 pre-trained T5 model 开始,用我们在 NLI 任务上采用对比损失来微调的 ST5 模型进行评估。鉴于 encoder only mean pooling的表现比 first token 的表现好得多,我们选择在微调 ST5 模型时放弃 first token 的版本。

    • Table 2 的最后四行显示,微调之后,不同的embedding 生成策略中,ST5 模型的 transfer 性能非常一致。最好的 fine-tuned model 比最好的 raw T5 sentence embedding 要好 0.57

    • Table 3 的最后四行中,我们看到在 NLI 数据集上微调的 ST5 与没有微调的 ST5 相比,显著提高了STS 任务的性能。这支持了对比学习能有效缓解 T5-style modelembedding collapse 的说法。

    • 为了研究额外的训练数据对contrastive learning 的影响,我们先用 ST5 模型在 Community QA 上训练,然后在 NLI 上进行微调。如 Table 2Table 3 所示,在额外的数据集上进行微调后,transferSTS 任务的性能都有很大的提升。这表明,对于 continued contrastive learning ,我们可能能够通过挖掘额外的半结构化数据来进一步提高 sentence embedding 的质量。

    • 为了排除下游任务的 mixing 的影响,我们还基于 T5 1.1 模型(T5 1.1 仅在 C4 数据集上进行了预训练)训练了一个 ST5 变体。如Table 2Table 3 的最后一行所示,它取得了与原始 T5 模型相当的性能,在大多数任务上表现出色,但在 STS 上表现不佳。

41.2.3 Encoder-only vs. Encoder-decoder

  1. 这里我们比较了两种架构的性能:encoder-onlyencoder-decoder

  2. T5的编码器有更好的泛化性:在Table 2 中,我们看到 encoder-only Base modeltransfer 任务上的表现与 encoder-decoder model 相当。当我们将 ST5 模型从 Base model 扩展到 Large model3B model11B model 时,如下表所示,encoder-only modeltransfer 任务上的表现始终优于 encoder-decoder model 。这表明,在T5 的编码器之上构建ST5,可以获得强大的 transfer 性能。

    最近,《Rethinking embedding coupling in pre-trained language models》 表明,更大的 output embedding (即更大的嵌 embedding size )有效地防止了编码器对预训练任务的over-specializing ,从而使编码器的representation 更通用、更 transferable 。我们假设,encoder-decoder 架构中的 decoder 可以以类似的方式提高encoderrepresentation 的通用性,因为decoder 专注于为特定任务进行优化。

    encoder-decoder model 在这里表现不佳的主要原因是:这里仅仅用到 decoderfirst output

  3. 解码器的有效性:在Table 3 的最后两行,我们观察到 encoder-decoder 架构在所有STS 任务中的表现都优于 encoder-only model 。随着我们扩大 ST5 模型的规模,我们也观察到 STS 任务上的改进。如 Table 5 所示,ST5 encoder-decoder Large model 优于 SOTA 的模型 SimCSE-RoBERTa_Large,将 Spearman相关系数分从 83.76 提高到 84.11

    • 一种解释是,来自解码器的额外参数有助于改善文本相似性任务。

    • 另一种可能是,解码器结构本身有助于提高 sentence embedding 质量。如 Figure 2(d) 所示,解码器可以被看作是encoder outputs 之上的一个额外的attention pooling layer 。 由于解码器的权重是从 pretrained T5 model 中提取的,解码器可能会学习一种更好的方法,在encoder outputs 上增加attention pooling ,而不是mean pooling

      此时需要监督信息来训练这个 attention pooling layer (即,解码器),这就是 CommQA + NLI 微调的作用。

41.2.4 Scaling up Sentence T5

  1. 我们利用 large T5 model 的现有checkpoint 来研究 scaling sentence encoder 的效果。T5 模型的参数规模如下表所示。注意,ST5-EncDec 并没有完全利用模型的参数:解码器学到的 self-attention 实际上被忽略了,因为只有 start token 被馈入解码器。

  2. 直接使用 T5 Embedding 的效果:如Table 5 所示:

    • 随着 T5 规模的扩大,直接使用 T5 embeddingtransfer 任务的性能持续提高。这印证了 large pre-trained model 可以提高 sentence embeddingtransfer 性能。

    • 另一方面,仅仅增加模型容量并不足以缓解 embedding collapse 的情况。即使是来自T5 11B 模型的 embedding,在 STS 任务上的表现仍然比fine-tuned model 更差。

      一个原因是,T5pre-training span corruption task 并不要求模型避免各向异性(例如,通过使用 contrastive loss 或正则化)。这突出了选择与similarity/retrieval 性能目标一致的微调任务的重要性。

  3. 改善 ST5 Fine-tuning:如Table 5 所示:

    • 我们发现,扩大模型容量会使所有下游任务的性能持续提高。

      • 对于ST5 11B 模型,encoder-only modeltransfer 任务上取得了 91.08 分的平均分,优于 ST5 Large 模型的 90.45 分。

      • 对于ST5 11B 模型,encoder-decoder modelSTS 得分推高到 84.94 ,也超过了 ST5 Large 模型。

      这激励我们探索更大的模型规模,以实现更好的 sentence embedding 质量。

    • 对于 STS 任务,我们观察到,从 3B11B 的性能增益,要比从 Large3B 的增益更小。这可能是由于在我们的实验中,所有模型的 embedding size 是固定的。一个潜在的探索是为更大的模型增加 sentence embedding size ,以充分利用模型的能力。

    • 我们进一步计算 《Understanding contrastive representation learning through alignment and uniformity on the hypersphere》 中定义的 alignment lossuniformity loss ,以衡量 sentence embedding 的质量:

      (15)Lalign=Ev,v+pposf(v)f(v+)Luniform=logEv,wi.i.d.pdatae2f(v)f(w)

      其中:ppos$ p_\text{pos} $ 是所有 positive data 的分布 ,pdata$ p_\text{data} $ 是所有数据的分布,Lalign$ \mathcal L_\text{align} $ 表示 positive pairsembedding 之间的期望距离,Luniform$ \mathcal L_\text{uniform} $ 表示 embedding 分布的均匀程度。

      对于这两种损失,数字越小说明性能越好。如下图所示,当模型规模扩大时,encoder modelencoder-decoder model 都减少了uniformity loss ,而 alignment loss 只略有增加。

    • 我们试图研究更大的模型规模、更多的训练数据对更好的 sentence embedding 的影响是否是叠加的。如Table 5 最后两行所示,当扩大到Large3B 时,ST5 通过在 NNLI 之外的 Community QA 数据集上训练,进一步改善了下游任务。

  4. 不同大小的模型的推断速度如下图所示:

41.2.5 SentGLUE Evaluation

  1. 这里我们介绍了一个新的sentence representation transfer benchmark ,即 SentGLUE ,它将 sentence evaluation toolkit 扩展到 GLUE benchmark 中的九个挑战任务,包括:CoLA, SST-2, MRPC, STS-B, QQP, MNLI-m, MNLI-mm, QNLI, RTEGLUE benchmark 已被广泛用于测量语言理解模型。GLUE 任务是单个句子或 sentence pairclassification 任务(如 NLI )或相似性任务(如 STS )。

    GLUE 排行榜上最好的模型是微调的 cross-attention model ,如 BERTT5 。这类模型在微调过程中会改变底层模型的所有参数。对于 pairwise 任务,这类模型允许早期融合来自被比较的两个句子的 input feature 。对于 SentGLUE ,我们引入了一个约束条件,即每个 input 都需要独立地编码为一个固定尺寸的 embedding space representation ,然后可以被馈入到其他层,以便进行预测。我们认为这最能适应原始 SentEval benchmarksentence embedding 的精神,也能适应 GLUE benchmark 任务。

    结果如下表所示:

    • 除了 CoLAMNLI 任务,ST5-Enc Base 在所有的 SentGLUE 任务中都优于 SBERT-RoBERTa BaseSimCSE-RoBERTa Base

    • 值得注意的是,随着模型规模的扩大,使用 sentence embedding 的总体性能接近 T5 base 。考虑到 T5 base 利用了 sentence pair 之间的 full cross-attention ,并在微调过程中调整了模型中的所有参数,这一点非常了不起。

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

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

发布评论

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