笔记:ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer


ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer

  • 来源:Yan et al., ACL 2021.

  • 任务:对比学习增强句子表示

  • 动机:常用的预训练语言模型如BERT确实在很多下游任务表现很好,但已经有工作证明根据BERT输出得到的原生句子表示是低质量的,但就句子表示用于下游任务有些不足。

  • 方法:模型整体主要分为三个部分:Data Augmentation(数据扩张)、BERT encoder、Contrastive Loss layer,如图2。

    • Data Augmentation(数据扩张).针对每个输入语句先过Data Augmentation针对同一个序列做两次变换得到两个不同的token embeddings序列。

    • BERT Encoder.对每个句子编码,将每个句子的隐状态序列输出做平均池化处理得到对应句子表示,实验是对BERT最后两层的token embeddings平均处理。

    • 假设一个batch有N个句子,那么数据扩增编码后有2N个句子表示,针对每个句子,将此句子的数据扩充句子表示作为正样本,其他句子表示作为负样本,根据对比损失InfoNCE训练如公式(1),将所有2N个句子的对比损失平均一下得到最终的对比损失\(\mathcal{L}_{con}\)

    • 数据扩充手段也可以理解为构建正负样本的方法。Adversarial Attack梯度扰动(ConSERT分别设置了监督和无监督的,Adversarial Attack用于监督)、Token Shuffling打乱token顺序(具体实现token词序不变,打乱的是transformer的position ids,实现打乱token顺序,因为position embedding唯一一个与顺序信息相关的)、Cutoff就是随机删除一些词(包括cutoff token和feature)、Dropout以一定的概率随机mask一些元素。具体如图3。

  • 实验