教你深度学习中的对比学习方法

作者 | Keqing He

学校 | 北京邮电大学硕士生

方向 | 自然语言处理, 对话系统

对比学习大火今天来和大家一起梳理下

对比学习定义

一种无监督的图像/文本的表示学习。

Motivation:人类往往是通过对比来学习区分事物的。模型无需学习到过于具体的细节(图像:像素级别;文本:词语级别),只需要学习到足以区分对象的高层次的特征。

与之前的有监督方法/无监督方法的区别:

图像领域的对比学习

对比学习广泛应用于图像领域的无监督表示学习,以MoCo(ICML2020)和SimCLR(2020)为代表,在ImageNet数据集上取得了显著的提升。「对比学习的核心在于如何构建正负样本集合」,图像领域一般通过旋转、裁剪等图片操作,而文本领域往往通过回译、字符插入删除等方法,这些方法依赖于领域经验,缺乏多样性和灵活性;因此,近期有一些论文(「Robust Pre-Training by Adversarial Contrastive Learning」)通过对抗攻击来做数据增强,获取正负样本,值得关注。

以下简单介绍几篇CV领域对比学习的代表作:

Deep InfoMax (DIM):Learning Deep Representations by Mutual Information Estimation and Maximization

ICLR 2019,MSR Montreal&&MILA

DIM通过图像中的局部特征来构造对比学习任务。具体来说,构造二分类任务,要求模型判别全局特征和局部特征是否来自于同一幅图像:

全局特征为锚点(anchor),f(x)

正样本为来自同一张图像的局部特征,f(x+)

负样本为来自不同图像的局部特征,f(x-)

模型结构:

MoCo: Momentum Contrast for Unsupervised Visual Learning

CVPR2020,FAIR

为了增加训练时负样本的数量(负样本数量直接影响对比学习的性能,有研究表明本质上是hard negative sample引起的),「MoCo」提出使用动量编码器来编码负样本:使用一个队列用来缓存其他batch的图像表示,作为负样本动量编码器的参数是主编码器参数的滑动平均(moving average),因此其编码的负样本能同时保证时效性。

模型结构:

SimCLR: A Simple Framework for Contrastive Learning of Visual Representations

ICML 2020,Google Brain

「SimCLR」提出了一种简单的对比学习框架:让相同图像采样出来的view在表示空间内尽可能相近;不同图像采样出来的view尽可能远离。对比损失为batch内的交叉熵损失:

分子为positive pair;分母为1个positive pair和2N-2个negative pairs

模型结构:

本文还总结了各种图像增强方法:裁剪、翻转、旋转、高斯噪声、遮盖、颜色变换、滤镜等。

Unsupervised Learning of Visual Features by Contrasting Cluster Assignments

NIPS2020,FAIR,https://zhuanlan.zhihu.com/p/259975814[1]

对比学习需要很多负例进行比较,既耗时又耗内存,于是FAIR联合Inria也推出了一个新的方法「SwAV」。作者提出了一个新的想法:对各类样本进行聚类,然后去区分每类的类簇。模型结构如下:

Bootstrap Your Own Latent A New Approach to Self-Supervised Learning

Deepmind

在表示学习中,我们现在采用的框架本质是通过一个view的表示去预测相同图像其他view,能预测对说明抓住了图像的本质特征。但在做这样的预测时会有坍缩(collapse)的风险,意思是全都变成一个表示,那也可以做到预测自己。对比学习为了解决这个问题,将表示预测问题转换为了正负例判别问题,这样就迫使模型的输出是多样的,避免坍缩。于是「BYOL」的作者想:如何不用负例,也能学到好的表示呢?如果共用encoder,用MSE作为损失,缩小相同图像不同view的距离,肯定会坍缩。而作者发现如果把其中一个encoder变成随机初始化的固定下来(stop gradient),就能达到18.8%的准确率。为了得到更好的encoder,作者参考动量的方法对其中一个encoder做了改进:这里我们按照论文,称上半部分为online(更新梯度),下半部分为target(不更新梯度)。BYOL的优化目的是用online表示预测target表示,采用MSE作为损失函数。Online梯度回传后,使用滑动平均对targe的encoder和MLP参数进行更新。在预测阶段只使用 。虽然BYOL没有显示地使用对比学习loss,但一篇博主在实验中发现BYOL依靠的还是“对比”。他们在复现BYOL的时候直接基于了MoCo的代码,结果发现效果还没有随机的好,原来是因为MLP中没有加BN。如果深究BN的作用,就会发现它重新调整了输出的分布,避免坍缩,同时「BN也在隐式地进行对比,去除batch内样本相同的部分,保留不同的特征」。同时,在不依赖负样本后,BYOL对于数据增强方法的选择更加鲁棒,下面是它的效果:

Exploring Simple Siamese Representation Learning

FAIR

延续BYOL的思想,Chen Xinlei与何凯明大佬又对孪生网络进行了研究,发现stop-gradient是避免坍缩的关键,于是提出了「SimSiam」。SimSiam的结构非常简单:

左侧的编码器生成 ,经过MLP后输出

右侧的编码器生成

计算 与 的cosine相似度

左右调换,再计算 与 的cosine相似度

最大化3、4两个步骤的和,且右侧永远不传播梯度

训练步骤虽然简洁,但为什么work却有很多学问。简单的解释是,对于整体目标的优化可以看作一个EM过程,左右两边交替更新,所以在更新左侧encoder时可以将右侧看成常数。更多的细节可以参考『探索孪生神经网络:请停止你的梯度传递!』。

自然语言处理领域的对比学习

NLP领域的对比学习主要是借鉴自CV,主要在data augmentation方面有所不同。

改进语言模型预训练目标

CAPT: Contrastive Pre-Training for Learning Denoised Sequence Representations

语言模型预训练阶段目标改进

对于每一个batch的训练数据,通过mask、shuffle、replace等方法生成带噪声的batch

使用一个共享编码器(BERT)对输入文本进行编码

使batch内同一个样本编码后的表示相互接近;不同样本相互远离

整体看,就是SimCLR直接应用于文本

最终的对比学习损失和BERT的掩码预测损失相加,共同预训练整个模型

A Mutual Information Maximization Perspective of Language Representation Learning

ICLR 2020

语言模型预训练阶段目标改进

本文首先为现有的语言模型预训练目标(Skip-gram、MLM、NSP、XLNet等)建立了理论解释,认为它们都是在最大化相同样本两个view的互信息;如下表所示,不同的预训练目标在 a) view含义;b) 采样分布;c) 编码view的模型结构上有所区别。

在其理论解释的基础上,本文作者进一步提出了类似Deep InfoMax的训练目标,通过最大化局部语义和全局语义的互信息来预训练语言模型:

随机选择训练语料中的n-gram(x_(i:j)),将其mask,作为一个view(作为全局语义)

将mask掉的n-gram提取出来,作为另一个view(作为局部语义)

这两个view都通过Transformer进行编码,同时随机采样其他文本中的n-gram作为负样本,要求模型识别出正确的n-gram

预训练模型压缩、知识蒸馏

Contrastive Distillation on Intermediate Representations for Language Model Compression

EMNLP2020

将对比学习引入模型知识蒸馏中,使得Student模型能从Teacher的中间层表示中学习到信息。同一个样本,分别由Teacher模型和Student模型编码,作为对比学习的两个view。

消除文本表示中的社会偏见

FAIRFIL: CONTRASTIVE NEURAL DEBIASING METHOD FOR PRETRAINED TEXT ENCODERS

ICLR 2021,目前评分6677

将对比学习用于预训练语言模型去偏。

对某个保护属性,定义一系列反义概念,如<her, his>, <man, woman>等

通过文本替换,获取同一个样本的增强版本(作为一个view)

训练目标要求最大化两个view编码的互信息 ,同时最小化文档和保护属性词之间的互信息 (这个损失可以理解n-gram负采样损失)

模型结构:

自监督构建摘要评价系统

Unsupervised Reference-Free Summary Quality Evaluation via Contrastive Learning

EMNLP2020

将对比学习用于构建摘要评价系统。

语义质量(Semantic Quality),即生成的摘要在语义上和原文的匹配程度。例如:是否覆盖原文的关键信息、和原文的一致性等等。

句法质量(Linguistic Quality),即在句法层面,生成摘要的流畅程度。

首先提出了一种基于BERT的模型指标评价方法,主要用于评价两方面的性能:

随后,作者通过构造自监督的辅助任务,利用对比损失训练摘要评价系统。通过规则对生成的摘要添加噪声:随机删除词语,添加额外句子,打乱词序。负样本和正样本分别和文档配对输入模型,构建对比损失(原始摘要和噪声摘要构建max-margin损失,注意这里只有样本内的损失,没有考虑不同文档之间的关系)。

对比学习中的数据增强方法探索

CoDA: Contrast-enhanced and Diversity-promoting Data Augmentation for Natural Language Understanding

ICLR2021

由于文本的离散属性,难以生成标签不变(Label Preserving)的增强版本,本文主要探索NLP领域中的数据增强策略,以及将其用于对比学习的效果。

本文研究了五种NLP领域的数据增强方法:

回译(back-translation)

c-BERT 词语替换(将某个词替换为[MASK]后,要求BERT恢复)

mixup(将两个样本线性叠加,x^′=αx_1+(1-α) x_2)

cutoff(随机将某个token或某个feature维度置0,如下图)

对抗训练(adversarial training)

此外还研究了增强方法之间的多种组合方式:

结论:Stack(回译+对抗)取得最优的效果。

Conclusion

对比学习的核心在于如何设计正负样本,挖掘负样本,甚至于无需负样本,都是研究热点。

NLP领域的数据增强方法并不统一,可以结合下游任务做一些创新。

对比学习除了应用于无监督表征学习外,引入到下游任务构建多任务学习也是很有研究价值。

对比学习结合对抗攻击。

如果喜欢请点赞或关注我交流。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • A Simple Framework for Contrastive Learning of Visual Rep...
    Valar_Morghulis阅读 1,324评论 0 1
  • 文章主要分为:一、深度学习概念;二、国内外研究现状;三、深度学习模型结构;四、深度学习训练算法;五、深度学习的优点...
    艾剪疏阅读 21,645评论 0 57
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,471评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,133评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 4,925评论 1 6