SCD: Self-Contrastive Decorrelation for Sentence Embeddings

ACL 2022

论文地址:[2203.07847] SCD: Self-Contrastive Decorrelation for Sentence Embeddings (arxiv.org)

代码地址:SAP-samples/acl2022-self-contrastive-decorrelation: Source code for ACL 2022 paper “Self-contrastive Decorrelation for Sentence Embeddings”. (github.com)

摘要

本文,提出了一种自我对比去相关算法,给定一个输入句子,优化一个联合自对比和去相关目标。通过不同rate的dropout产生表示进行对比。在不使用对比对情况下,在多个基准下得到先进结果,该方法为自监督学习开辟了新的途径,比当前对比方法更好。

介绍

背景知识

无监督表示学习是NLP中的一个基本问题,句子嵌入在许多语言处理中必不可少,如机器翻译,情感分析,信息检索,语义搜索等。目前常见预训练方法MLM,NSP,SOP中对比学习是自监督学习中最强大方法之一。

对比学习目标:正样本对彼此靠近,负样本对彼此远离。因此选择正负样本对是对比学习中的一个重要问题。

正样本对构造方法:

  • 同一文档不同跨度(Giorgi et al., 2021)
  • 同一句子经过两个不同encoder的嵌入(Carlsson et al., 2020)
  • 反向翻译来创建原句增强 CERT (Fang et al., 2020)
  • 采用多种句子级增强策略表示(Wu et al., 2020)

负样本对构造:

  • batch中其他样本

负样本挖掘在无监督任务上表现具有挑战性,需要增加训练batch_size和内存大小。伴随着大量内存需求的沉重负担。

本文的方法

本文提出SCD,一种用于句子嵌入自我监督学习新算法,在句子相似性任务方面性能优越。

思路:对句子嵌入进行扰动,但扰动量较小,可以看作没有改变语义(正对)扰动较大,足以改变语义(负对),为了得到这一点,提出了一个由两个相反项组成的目标函数,作用于样本对

  • LS自对比发散(排斥)将一个句子经过两个encoder后不同表示作为负样本对。
  • LC特征去相关(吸引)将向量作为一个正样本对

发现使用该方法得到的向量表示比对比对更加稳健。

相关工作

  • 最相关的论文为SimCSE(Gao et al., 2021),在考虑对比学习下使用dropout作为数据增强,而我们则使用dropout来构造正负对。

  • 不同于(Zbontar 等人,2021;Su 等人,2021;Ermolov 等人,2021)中成对特征去相关或白化,后者鼓励增强表示之间的相似表示样本,同时最小化表示向量中的冗余。而我们则通过自我对比构造正负对。

贡献总结

  • 通过利用multi-dropout生成句子嵌入
  • 使用自对比消除对负样本对的依赖
  • 在NLP中非对比自监督学习领域 ,提出了特征去相关目标

方法

使用transformer的语言模型作为Encoder,结合不同的dropout rate(一个高,一个低)得到的两个表示向量计算由两个目标组成的联合损失:

其中LS目标增加增强嵌入的对比度,LC的目标是减少冗余并在高维空间P下促进w.r.t的不变性,

自对比差异

计算嵌入表示余弦相似度来进行自对比

特征去相关

LC为求使嵌入对增强保持不变,同时减少特征表示中的冗余。为此,嵌入下那个了h从T向上投影到高维空间P,然后执行去相关。使用pi表示投影后向量,计算相关矩阵Cjk:

其中Pij表示Pi的第j个分量,然后特征去相关损失目标定义:

其中第一项在通过最大化沿对角线的互相关来增强不变性。

第二项旨在通过最小化对角线之外的相关性来减少冗余。

实验与结果

训练设置

模型采用bert和roberta,采用【CLS】表示句子嵌入,无监督方式对10^6随机句子进行训练。

  • lr 3e-5
  • 1 epoch
  • batch_size 192

投影曾projector有三个线性层,每层4096和Relu,BN

通过网格搜索获得超参数:

对于Bert,超参数α=0.005,λ=0.013,rA=5%,rB=15%

对于roberta,超参数α=0.003,λ=0.028,rA=6.5%,rB=24%

验证设置

验证数据集:7个STS任务,除此之外还评估了7个迁移任务,使用SentEval进行评估,评估方式与SimCSE相同。

主要结果

STS

如图所示,在bert和roberta上,仅次于SimCSE

迁移任务

在MR (Pang and Lee, 2005), CR (Hu and Liu, 2004), SUBJ (Pang and Lee, 2004), MPQA (Wiebe et al., 2005), SST -2(Socher 等人,2013 年)、TREC(Voorhees 和 Tice,2000 年)和 MRPC(Dolan 和 Brockett,2005 年)进行评估。

使用冻结句子嵌入,来训练逻辑回归分类器

上图实验结果显示优于SimCSE的句子向量表示

分析

消融实验

只有这两项Loss的平衡才能产生最优解。更改会产生不利影响,因为它们会阻止实现这种平衡,从而导致性能显着下降。见标签。

均匀性与对齐性分析

为了保证SCD向量表示的强大,需要保证语义相关的正对之间的对齐和整个表示空间的一致性来衡量学习嵌入质量。如图显示SCD在一致性方面取得最好成绩,达到了有监督的水准,而在对齐方面SCD不足的原因是主要关注特征去相关,学习到高效表示。

总结

本文的方法SCD,主要使用高低dropout rate来构造样本对,同时使用样本对表示的相关矩阵,来达到增强向量表示一致性的目的。在STS和迁移实验上表现良好。

SCD Self-Contrastive Decorrelation for Sentence Embeddings相关推荐

  1. 文献阅读:SimCSE:Simple Contrastive Learning of Sentence Embeddings

    文献阅读:SimCSE:Simple Contrastive Learning of Sentence Embeddings 1. 文献内容简介 2. 主要方法介绍 3. 主要实验介绍 1. STS ...

  2. SimCSE详解,Simple Contrastive Learning of Sentence Embeddings

    简介 contrastive(对比)学校框架,提升句子embedding效果 无监督,句子本身和句子自己带有dropout 使用NLI数据集,entailment(蕴含)对作为正例,contradic ...

  3. PromptBERT: Improving BERT Sentence Embeddings with Prompts (通篇翻译)

    PromptBERT:使用提示改进BERT句子嵌入 Ting Jiang 1 ∗ , Shaohan Huang 3 , Zihan Zhang 4 , Deqing Wang 1 † , Fuzhe ...

  4. 论文解读:PromptBERT: Improving BERT Sentence Embeddings with Prompts

    论文解读:PromptBERT: Improving BERT Sentence Embeddings with Prompts 一.动机 虽然BERT等语言模型有很大的成果,但在对句子表征方面(se ...

  5. 文献阅读笔记 # Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

    <Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks> 用于快速搭建NLP任务的demo的开源项目sbert的原始 ...

  6. 论文阅读笔记——《a simple but tough-to-beat baseline for sentence embeddings》

    <a simple but tough-to-beat baseline for sentence embeddings>published at ICLR 2017. ICLR会议的论文 ...

  7. (三)基于文本的QA问答系统——SGPT:GPT Sentence Embeddings for Semantic Search解读

    SGPT:GPT Sentence Embeddings for Semantic Search解读 文章目录 SGPT:GPT Sentence Embeddings for Semantic Se ...

  8. 论文笔记--On the Sentence Embeddings from Pre-trained Language Models

    论文笔记--On the Sentence Embeddings from Pre-trained Language Models 1. 文章简介 2. 文章概括 3 文章重点技术 3.1 BERT模 ...

  9. PromptBERT: Improving BERT Sentence Embeddings with Prompts

    这篇文章用Prompt减少偏差token偏差,传统的BERT输出的向量,在句子语义相似度方面的表现是不好的.作者发现原因主要由两点组成:static token embedding biases和in ...

最新文章

  1. 解决LC_ALL: 无法改变区域选项 (UTF-8): 没有那个文件或目录的问题
  2. oracle的系统和对象权限 与 Oracle 查看用户权限
  3. 企业主要财务指标有哪些
  4. BZOJ 2007: [Noi2010]海拔
  5. Tortoise SVN使用方法,简易图解
  6. JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助...
  7. C++ 静态线性表的顺序存储结构(数组实现)
  8. 作者:杨慰民(1970-),男,博士,中国移动通信集团福建有限公司网管中心副总经理...
  9. 使用Spring配合Junit进行单元测试的总结
  10. STM32 IO口双向问题
  11. 第五节:STM32输入捕获(用CubeMX学习STM32)
  12. 计算机科学引论2答案,计算机科学引论答案-20210311090508.docx-原创力文档
  13. JMS学习十一(ActiveMQ Consumer高级特性之独有消费者(Exclusive Consumer))
  14. 非参数统计单样本非参数检验之符号检验
  15. 新升级带特效喝酒神器小程序源码-多种游戏支持流量主
  16. 锋利的jquery(认识jquery)
  17. Linux进程间通信-消息队列
  18. Android 免root 备份数据,真正免root的完美备份详细使用教程
  19. Zhu-Net——一个隐写分析网络
  20. You are using pip version 21.2.4; however, version 22.0.4 is available.

热门文章

  1. 这 27 位,为什么能成为马斯克的“左膀”与“右臂”?
  2. 生成全球定位系统、伽利略和北斗二号的Matlab代码及实际数据捕获文件,为测试功能提供完整信号与频谱
  3. flot介绍与使用(一款开源绘图js插件)
  4. 百度前端技术学院25-27学习笔记
  5. [1205] [40001]: Lock wait timeout exceeded; try restarting transaction
  6. 图解前端调试工具Chrome Dev Tools的使用
  7. 博客发文博客发文博客发文博客发文
  8. Lenovo联想笔记本电脑小新Pro-16ACH 2021款(82L5)原装出厂Windows11系统恢复原厂OEM系统
  9. Python关于元祖
  10. 【机器学习实战】第7章 集成方法 ensemble method