其他分享
首页 > 其他分享> > 对比学习论文(持续更新)

对比学习论文(持续更新)

作者:互联网

最近老板让我去读对比学习的论文,我断断续续读了一些。在这里对读到的文章做一下整理,因为考试和假期这些论文也是比较久之前读的了,难免有所不足,请见谅。

目录

EMNLP 2021-SimCSE: Simple Contrastive Learning of Sentence Embeddings

这篇文章大家已经耳熟能详了,并且也有很多文章做了很好的分析。可以看这篇博客

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

本篇论文美团已经给出了很详细的解读

ACL 2021 BOB:BERT over BERT for Training Persona-based Dialogue Models from Limited Personalized Data

开放域对话系统需要在对话过程中尽可能地保持一致的人物角色特征,但是在应用上受限于人物角色对话数据的有限规模。在现阶段下,无论是开放域对话生成模型还是开放域对话系统,面临的最大挑战之一就是对话回复的前后不一致。针对这一问题,相关的研究工作开始在对话中明确地引入角色信息。角色信息的引入极大地简化了对话过程一致性的建模,也使得评价过程更容易。然而,这些工作都依赖于带有角色信息的对话数据,但是标注成本高昂,难以获得大规模的数据。
针对上面的问题,本文设计了一个全新的基于BERT的模型,包含了一个BERT编码器和两个BERT解码器,将理解能力和生成能力的获取分离开来。这样,无论是一致性理解还是对话生成,都能够找到充足的数据资源来进行训练。对于一致性理解,本文选择使用大规模的非对话推理数据集(non-dialogue inference dataset),比如MNLI和SNLI;对于对话生成,选择使用大规模对话语料,比如角色信息稠密的PersonaChat数据集(英文,众包,12万数据量)和角色信息稀疏的PersonalDialog数据集(中文,社交媒体,1200万数据量)。该模型由一个基于 BERT 的编码器和两个基于 BERT 的解码器组成,其中一个解码器用于响应生成,另一个用于一致性理解。

  1. 编码器E。它的工作方式类似于一个标准BERT模型,它双向地将嵌入的输入编码为一个隐藏向量序列,下游的任务将在这个序列上执行。然后嵌入层将输入信息转换为词向量,这里E的工作方式和原始的BERT完全一致。

  2. 自回归解码器D1。由BERT初始化,但以自回归解码器方式工作。首先,在E和D1之间插入交叉注意传递上下文信息。其次,为保持自回归生成特性,对D1执行词语自左向右预测掩码(利用上三角的掩码矩阵),以确保生成的回复词只能依赖已有的信息。由于BERT模型中不存在交叉注意力机制,因此在训练过程中对交叉注意力机制进行随机初始化和更新。D1最后一层的输出会进一步送到D2中进行一致性理解处理。

  3. 双向解码器D2。D2也是从BERT进行初始化的,为了减少推理数据中矛盾数据出现的可能性,使D2能够获得一致性理解的能力,D2引入了Unlikelihood目标函数进行训练。在进行一致性理解训练时,D2的输入是数据集N={Premise, Hypothesis, Label},而生成目标同样数据中的Hypothesis。原因在于模拟对话数据的生成方式,从而让模型能够利用非对话的推理数据进行一致性理解训练。每一层的结果融合了P和 R1 的信息。D2最后一层的输出是最终表示R2。在R2上通过输出层,例如线性层,我们可以得到生成的响应R。

  1. 同时在角色信息稠密的PersonaChat数据集和角色信息稀疏的PersonalDialog数据集上通过大量的实验来验证了BoB模型的有效性。在评价指标方面,同时使用了人工评价和客观指标,来比较不同模型的角色一致性和回复质量。对于客观指标,本文引入了基于不同类别(一致和矛盾)对话回复的语言模型困惑度指标和基于分类器的一致性得分指标来进行比较。实验结果证明了BoB模型在保持良好的回复质量的同时,仍然在角色一致性上优于所有基线模型。

  2. 在PersonaChat数据集上进行消融实验。结果为:Unlikelihood训练目标对于一致性理解最为重要;而第二个解码器则对于多样性和困惑度贡献最大;基础的BERT编码器也有不错的性能表现,为BoB模型提供了良好的初始化。

在两个公开数据集上的实验表明,本文的模型可以使用更少的角色化对话数据训练,同时获得比使用全量数据训练的强基线方法更好的效果。

ACL 2021 DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations

文章研究的问题同样是:如何利对比学习从大量无标注数据学习更好的通用句子表示?文中的对比体现在两个方面:

  1. 对比来自不同文档的文本片段(span)的语义。如果两个文本片段(span)来自同一个文档,那么他们的语义表示的距离应该相对较近,否则距离远;
  2. 对比来自同一文档的文本span。当两个文本片段都来自同一个文档,如果他们在文档中的位置距离比较近,他们的语义表示距离近,否则远。
    在采样正例的时候有些讲究。具体来讲是先从一个文档中采样N(>=1)个原始文本片段 (锚点span),然后从每个锚点span周围采样,作为正例 span。采样规则是正例span可以与锚点span交叠、相邻、从属。负例是从一个batch中随机采样得到的。对比学习的损失函数是InfoNCE。模型整体的损失函数是InfoNCE和MLM的加和。
  1. 先从无标注的文档中以beta分布中抽样anchor片段,在从这一篇相同的文档以不同的beta分布抽样出positive样本对。

  2. 之后分别将anchor片段Si和positive片段Sj经过两个相同架构共享权值的编码器,生成对应的token embedding。

  3. 再将token embedding进行pooler操作,即将所有的token embedding平均生成同一维度的sentence embedding。

  4. 计算对比学习的损失函数,计算了两个片段信息之间的距离。

  5. 在计算出对比学习的loss之后,再加入MLM的loss,对模型进行反向梯度传播更新参数。

模型:DeCLUTER-small使用DistilRoBERTa预训练模型参数为基础,DeCLUTER-base使用RoBERTa-base预训练模型参数为基础。

数据集:OpenWebText corpus,有495243个至少长度为2048的文档。

下游使用模型编码出的句子嵌入来作为分类器的特征进行分类,来探测评估模型生成的句子嵌入所含有的语义信息,最后取得了state-of-the-art。

NAACL 2021:Supporting Clustering with Contrastive Learning

这篇文章结合对比学习提出一种简单且有效的无监督文本聚类方法:SCCL。该模型刷爆了7个短文本聚类任务。

  1. Augmenter WordNet:通过用 WordNet 同义词替换其单词来转换输入文本

  2. Augmenter Contextual:利用预训练Transformer(论文选用Bert-base和Roberta)对输入文本找top-n个合适的单词进行插入或替换。

  3. Paraphrase via back translation:首先将输入文本翻译成另一种语言(法语),然后再翻译回英语,从而生成对输入文本的释义。

最后上述三个中第二个效果最好

其比较巧妙的是将其结合到了聚类上面,其框架图如下:

标签:BERT,模型,论文,更新,生成,解码器,对话,数据,对比
来源: https://www.cnblogs.com/xyzhrrr/p/15864522.html