1. 介绍(Introduction)

问题: 由PLM编码得到的句子表示在方向上分布不均匀, 在向量空间中占据一个狭窄的锥形区域, 这在很大程度上限制了它们的表达能力.

已有的解决办法: 对比学习. 对于一个原句, 构造他的正例(语义相似的句子)和负例(语义不相似的句子), 拉近语义相近的句子来提高对齐性,同时让语义不同的句子远离来使向量空间中的句子更均匀. 正例通常用数据增强的策略来获得. 由于没有真实标注的数据, 负例一般在一个batch中随机抽样得到. 但这可能会导致抽样偏差, 影响句子表示的学习. 表现在以下两个方面:

  • 抽样的负例很可能是假负例, 他们在语义上其实是接近原句的. 如果简单地拉远些抽样得到的非负例, 很可能会损害句子表示的语义.
  • 由于各向异性问题, 由PLMs得到的句子向量本身就在向量空间中仅占据一个狭窄的锥形区域, 从他们中随机抽取出的负例也不能完全反映表示空间的整体语义.

2. 方法(Approach)

DCLR(a general framework towards Debiased Contrastive Learning of unsupervised sentence Representations), 一种无监督句子表示的去偏向对比学习的一般框架。

核心思想是改进随机负抽样策略, 以缓解抽样偏差问题:

  • 设计了一种加权方法来惩罚训练过程中采样的假负例。用一个辅助模型(complementary model)来评估每个负例与原句之间的相似性,为相似性得分较高的负例分配较低的权重。
  • 用基于随机高斯噪声随机初始化新负例来模拟整个语义空间内的采样,并设计了一种基于梯度的算法,将这些负例优化到最不均匀的点。

步骤:

  1. 从高斯分布初始化基于噪声负例,并利用基于梯度的算法, 通过考虑表示空间的均匀性来更新这些负例。

  2. 用辅助模型对这些基于噪声的负例和在batch中随机抽样的负例进行加权, 惩罚其中的假负例.

  3. 通过SimCSE中dropout的方式来获得正例, 并将其与上述加权负例相结合进行对比学习.

基于高斯噪声的负例的构建与优化:

  1. 构建: 对于每个输入句子\(x_i\),我们首先初始化\(k\)个来自高斯分布的噪声向量作为负例:
  1. 非均匀性损失(non-uniformity loss)来优化这些负例向量:

​ 梯度下降:

这样,基于噪声的负例将朝着句子表示空间的非均匀点进行优化. 通过学习对比这些负例, 可以进一步提高表征空间的均匀性, 这对于得到更有效的句子表示至关重要.

辅助模型(complementary model):

使用SOTA模型SimCSE作为辅助模型, 用于判断句子间的语义相似度. 具体的:

对于一个句子\(s_i\), 定义它的向量表示为\(h_i\), 从batch中随机抽取的负例为\(\set{\tilde{h}}\), 基于噪声构造的的负例为\(\set{\hat{h}}\), 对于来自\(\set{\tilde{h}}\)和\(\set{\hat{h}}\)的负例\(h^-\), 其权重为:

其中\(\phi\)是超参数, \(\text{sim}_C(h_i, h^-)\)表示SimCSE的相似度打分. 相当于直接舍弃了阈值小于\(\phi\)的负例.

对比学习的损失

最后, 对比学习的损失函数如下:

3. 性能(Performance)

4. 分析(Analysis)

4.1 超参数分析(Hyper-parameters Analysis)

\(k\)表示基于噪声的负例数量与批量大小的比值.

4.2 均匀性分析(Uniformity Analysis)

用一下损失来评估句子表示的均匀性:

该损失值越小说明分布越均匀.

含义: 希望来自数据分布的句子之间欧氏距离的期望尽可能大.

与SimCSE的对比:

因为DCLR在表示空间之外对基于噪声的负例进行了采样, 这样可以更好地提高句子表示的均匀性.

有个问题, 文章没有对对齐性(Alignment)进行分析.

4.3 消融实验(Ablation Study)

随机噪声(Random Noise): 直接生成基于噪声的负例, 不进行基于梯度的优化.

知识蒸馏(Knowledge Distillation): 利用SimCSE作为教师模型,在训练时将知识蒸馏到学生模型中.

自加权(Self Instance Weighting): 采用模型本身作为辅助模型来生成权重.

4.4 少样本下的性能(Performance under Few-shot Settings)

4.5 采用其他正例生成策略(Debiased Contrastive Learning on Other Methods)

DCLR主要关注的是对比学习中的负例采样策略, 因此在构建正例时, 有多种数据增强策略可选. 文中测试了3种:

  • 乱序(Token Shuffing): 随机打乱输入序列中token的顺序
  • 删词(Feature/Token/Span Cutoff): 随机去掉输入中的features/tokens/token spans.
  • Dropout: 即SimCSE中正例的生成方式.

Debiased Contrastive Learning of Unsupervised Sentence Representations 论文精读的更多相关文章

  1. 论文解读(CDCL)《Cross-domain Contrastive Learning for Unsupervised Domain Adaptation》

    论文信息 论文标题:Cross-domain Contrastive Learning for Unsupervised Domain Adaptation论文作者:Rui Wang, Zuxuan ...

  2. 论文解读(PCL)《Prototypical Contrastive Learning of Unsupervised Representations》

    论文标题:Prototypical Contrastive Learning of Unsupervised Representations 论文方向:图像领域,提出原型对比学习,效果远超MoCo和S ...

  3. 论文解读(Debiased)《Debiased Contrastive Learning》

    论文信息 论文标题:Debiased Contrastive Learning论文作者:Ching-Yao Chuang, Joshua Robinson, Lin Yen-Chen, Antonio ...

  4. 论文解读(SimCLR)《A Simple Framework for Contrastive Learning of Visual Representations》

    1 题目 <A Simple Framework for Contrastive Learning of Visual Representations> 作者: Ting Chen, Si ...

  5. 论文解读(gCooL)《Graph Communal Contrastive Learning》

    论文信息 论文标题:Graph Communal Contrastive Learning论文作者:Bolian Li, Baoyu Jing, Hanghang Tong论文来源:2022, WWW ...

  6. 论文解读(MLGCL)《Multi-Level Graph Contrastive Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  7. A Simple Framework for Contrastive Learning of Visual Representations

    目录 概 主要内容 流程 projection head g constractive loss augmentation other 代码 Chen T., Kornblith S., Norouz ...

  8. ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理

    本文首发于微信公众号「对白的算法屋」,来一起学AI叭 大家好,卷王们and懂王们好,我是对白. 本次我挑选了ICLR2021中NLP领域下的六篇文章进行解读,包含了文本生成.自然语言理解.预训练语言模 ...

  9. 论文解读(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  10. 论文解读(GCA)《Graph Contrastive Learning with Adaptive Augmentation》

    论文信息 论文标题:Graph Contrastive Learning with Adaptive Augmentation论文作者:Yanqiao Zhu.Yichen Xu3.Feng Yu4. ...

随机推荐

  1. spring-nfjh

    Spring Xml 文件报红第一时间检查set .get .构造方法 准备工作 JDK 最低版本17 设置Maven 见[王鹤老师的笔记] 本套Spring教程与其他Spring教程的区别可总结为以 ...

  2. iOS设置textView的placeholder

    转载:http://blog.sina.com.cn/s/blog_7a1b23430102wkys.html #import "ViewController.h" @interf ...

  3. leetcode之——二分法模板

    class Solution: def search(self, nums: List[int], target: int) -> int: n=len(nums) left,right=0,n ...

  4. win电脑查看wifi密码的方法

    1.使用电脑连接需要查看的WiFi,鼠标右击电脑桌面右下角[WiFi图标],在弹出的菜单中点击[打开"网络和internet"设置]. 2.在弹出的设置窗口中点击[网络和共享中心] ...

  5. 对象和类复习题(c++ prime plus )

    第一题: 为复习题5描述的类提供方法定义,并编写一个小程序来演示所有的特性: bank.h #ifndef BACK_H_ #define BACK_H_ #include <string> ...

  6. 初步学习UE网络同步

    UE 网络同步和框架介绍 为一个UE引擎的初学者基于现有知识储备和见识的限制下,对UE网络和游戏框架的粗鄙之见,文中多有错误敬请指出以较后文. 1.网络复制 ​ 不论是服务端还是客户端,代码都是一样的 ...

  7. pytorch 创建图与叶子节点与根节点

    创建时用户直接给出的为叶子节点,没有fn 由几个叶子节点推导来的为最终结果,为root节点,有fn. 譬如: x=tt.tensor([1],dtype='flaot',requires_grad=T ...

  8. centos7 升级gcc

    #安装gcc yum install -y gcc-c++ autoconf automake ​ #centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版 ...

  9. Linux用户管理2

    passwd给用户修改密码 用户自己给自己设置密码直接passwd root用户给普通用户设置密码passwd 用户名 --stdin从标准输入获取信息 echo "1" | pa ...

  10. 第一次作业:https://edu.cnblogs.com/campus/qdu/DS2020/homework/11165

    大家好,我是信息与计算科学一班的刘宝龙.爱好是看动漫,玩游戏,听音乐,不喜欢户外运动,是一个二次元宅男.但是喜欢交朋友,希望能与班里所有的同学建立良好的同学关系. 自己的强项是与人的交流与沟通,还有遇 ...