Giorgi J M, Nitski O, Bader G D, et al. Declutr: Deep contrastive learning for unsupervised textual representations[J]. ACL 2021.
https://arxiv.org/pdf/2006.03659.pdf
摘要翻译:
句子嵌入是许多自然语言处理(NLP)系统的一个重要组成部分。与词嵌入一样,句子嵌入通常是在大型文本语料库上学习的,然后转移到各种下游任务中,如聚类和检索。与词嵌入不同,学习句子嵌入的最高性能解决方案需要标记数据,这限制了它们只在标记数据丰富的语言和领域有效。在本文中,作者提出了DeCLUTR:一种无监督文本表示的深度对比学习。受深度度量学习(DML)的最新进展的启发,我们设计了一个自我监督的目标来学习通用句子嵌入,并且这种方法不需要带有标记的训练数据。当用于扩展 transformer-based语言模型的预训练时,该方法缩小了对通用句子编码器的无监督和监督预训练之间的性能差距。
模型浅析
Self-supervised contrastive loss
提出的方法通过最大化从同一文档中附近采样的文本片段(在论文的其余部分中称为“跨度”)之间的一致性,通过对比损失来学习文本表示。由下图的表示中,我们可以将该模型分解为下列组件:- 数据加载步骤在大小为的mini-batch中从每个文档中随机抽取 paired anchor-positive spans。设是每个文档采样的anchor spans的数量,是每个anchor 采样的positive spans数量,是任意一个 anchor span的索引值。将一个anchor span和其对应的的positive spans分别记为和。这个步骤的目的是为了最大限度地抽样语义上相似的anchor-positive pairs。
- 编码器将 input spans中的每个标记映射到嵌入。虽然该方法对编码器的选择没有任何限制,但是在论文中作者选择了 transformer-based的语言模型作为,因为这代表了文本编码器的最先进技术。
- 一个池化操作将编码后的sapns和映射为固定长度的嵌入表示和其对应的平均positive嵌入
这里作者采用的都是平均池化,即将最后的嵌入表示转化为token-level嵌入的平均值。并且将每个anchor embedding与多个positive embeddings的平均值进行配对。这种策略在经验和理论上被证明是优于single positive example for each anchor。 - 之后为对比预测任务定义一个对比损失函数。给定一组嵌入spans 包括 a positive pair的例子和。对比预测任务旨在在于给定在 ()识别 正负样本的构造
Span sampling
作者首先选择最小和最大跨度长度;在本文中,和。接下来,将文档标记化以产生个标记的序列: ,从中采样一个anchor span。主要步骤如下:(1)从一个beta分布中采样它的长度;(2)随机地(均匀地)取样它的起始位置。
形式化为:
接下来独立地采用对应的positive spans ,根据以下类似的步骤: sample the corresponding positive spans
beta分布的参数设置
总之,抽样过程产生了三种类型的positives:与anchor部分重叠的positives,与anchor相邻的positives,以及由anchor所包含的positives。如上图中的B部分所示。还有两种类型的negatives:从不同的文档中采样的简单easy negatives,以及从作为锚的同一文档中采样的hard negatives。
Continued MLM pretraining
作者在每一个mini-batch的each anchor span上同时计算MLM和对比目标的损失。 total loss这一点与当前的预训练语言模型的两个预训练任务是一致的。作者为了使计算需求可行,并不是从头开始训练,而是继续训练一个用MLM目标预先训练过的模型。
论文很好的以span的方式为对比学习构造了损失函数。
真的是妙
网友评论