ConSERT:一个自监督对比学习句子表示迁移框架

论文标题:ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer
论文链接:https://arxiv.org/abs/2105.11741
论文来源:ACL 2021

一、概述

通常,对于BERT模型来说,我们使用[CLS]token的embedding向量或者最后几层的token embedding向量的平均来作为句子的sentence embedding。然而BERT的原生句子表示被证明是低质量的。如下图所示,当应用BERT的句子表示到STS(semantic textual similarity)任务上时,几乎所有句子对都达到了0.6~1.0的相似度得分,这就是BERT的原生句子表示的坍塌问题(collapse issue),这意味着几乎所有的句子表示被映射到一个局部小区域,因此产生了极高的相似度:

BERT句子表示的坍塌问题

类似的现象在先前的研究中也有被观察到,研究人员发现BERT的词表示空间是各向异性的,高频词聚集到一起并且靠近坐标原点,而低频词则稀疏分散。当使用token embedding的平均作为句子表示时,高频词的就会起到主导地位,这就导致产生了对句子真实语义的偏置。因此,在下游任务中直接应用BERT的原生句子表示是不合适的。传统的方法通常使用额外的监督数据来微调BERT,不过由于人工标注是昂贵的,在真实场景中经常不可用。

为了解决坍塌问题并且减少对标注数据的需求,本文基于对比学习提出了一种新的句子级别训练目标,该方法能够有效地将句子表示迁移到下游任务。本文将提出的方法命名为Contrastive Framework for SEntence Representation Transfer(ConSERT)。

ConSERT提出了一种无监督的目标来微调BERT以获得更好的句子表示,另外研究表明Natural Language Inference(NLI)任务能够训练好的句子表示,因此ConSERT也可以采用一些有监督的NLI数据来进一步提升BERT句子表示的性能。

对比学习简介,参考以下链接:对比学习(Contrastive Learning)

二、方法

给定一个BERT-like预训练语言模型M以及无监督数据集D,我们的目标是在D上对M进行微调,使句子表示更加与任务相关,并适用于下游任务。

  1. 总体框架

下图展示了ConSERT的大体框架:

ConSERT

如上图所示,ConSERT主要包括三个部分:
①数据增强模块,生成输入样本在token embedding层的不同view;
②BERT encoder,计算句子表示,本文实验采用最后层的token embedding的平均来获得句子表示;
③对比loss层,它使样本增强之后的view之间相互接近,同一个batch的不同样本的view之间相互远离。

对于每个样本x,首先将它通过数据增强模块,在这里使用两种数据增强的变换T_1T_2来生成输入样本的两种不同的版本:e_{i}=T_{1}(x),e_{j}=T_{2}(x),这里的e_{i},e_{j}\in \mathbb{R}^{L\times d},然后e_{i},e_{j}通过BERT并进行平均池化最终获得句子表示r_ir_j

ConSERT采用normalized temperature-scaled cross-entropy loss(NT-Xent)作为对比学习损失函数。在每个训练的step,会随机从D中抽取N个文本作为一个mini-batch,经过数据增强后得到2N个句子表示,每个数据点被训练来找出它的另一个增强view:

L_{i,j}=-log\frac{exp(sim(r_i,r_j)/\tau )}{\sum_{k=1}^{2N}\mathbb{1}_{[k\neq i]}exp(sim(r_i,r_k)/\tau)}

sim(\cdot )表示余弦相似度,\tau控制temperature,\mathbb{1}表示指示函数。最后平均所有2N个batch内分类loss来获得最终对比lossL_{con}

  1. 数据增强策略

本文采用了四种数据增强的策略,分别是adversarial attack,token shuffling,cutoff 和dropout,大体操作如下图所示:

数据增强
  • Adversarial Attack

为样本添加对抗性的干扰(Adversarial Perturbations)来获得样本的新view,本文采用Fast Gradient Value(FGV)方法,直接使用梯度来计算干扰。注意此策略仅适用于与监督方法联合训练时,因为它依赖监督损失来计算对抗扰动。

  • Token Shuffling

此方法随机打乱输入序列的token顺序。Transformer架构具有bag-of-words属性,序列的位置信息由位置编码唯一决定,因此在实现时会打乱位置id而不是打乱token的顺序。

  • Cutoff

这种方法随机抹去L\times d特征矩阵的一些token(token cutoff)或者一些特征维度(feature cutoff)或者一些token span(span cutoff)。在本文实验中只采用token cutoff和feature cutoff。

  • Dropout

依照一定概率随机丢弃token embedding层的一些元素,将它们的值设置为0。这种方法与Cutoff是不同的,因为每个元素被单独考虑。

  1. 结合监督方法

除了前述无监督迁移的方法,ConSERT也能结合有监督的方法来训练,本文结合NLI监督任务来继续提升ConSERT的性能。NLI是一个句子对分类任务,主要用来判断两个句子在语义上的关系,一般可以分为:Entailment(蕴含)、Contradiction(矛盾)、Neutral(中立)。分类目标损失可以表示为:

f=Concat(r_1, r_2,|r_1-r_2|)\\ L_{ce}=CrossEntropy(Wf+b,y)

r_1,r_2表示两个句子表示。本文提出了ConSERT结合监督信号的三种方式:
①联合训练(joint):在NLI数据集上联合训练监督与无监督目标L_{joint}=L_{ce}+\alpha L_{con}\alpha作为一个平衡参数;
②先监督训练再无监督迁移(sup-unsup):首先在NLI数据集上用L_{ce}训练模型,然后在目标数据集上用L_{con}微调;
③联合训练再无监督迁移(joint-unsup):首先在NLI数据集上用L_{joint}训练模型,然后在目标数据集上用L_{con}微调。

三、实验

  1. 实验设置

为了验证本文提出的方法的有效性,我们对语义文本相似度(STS)任务在无监督和有监督设置下进行了实验。采用的STS统计如下,实验时会采用这些数据集中的未标注数据来微调模型:

STS数据集

有监督数据集采用SNLI(570k samples)和 MNLI(430k samples)两个数据集,联合训练时也会将这些数据集里的文本应用于对比目标。

实验使用模型最后2层的token embedding的平均作为句子表示,使用句子表示余弦相似度与人工标注评分之间的斯皮尔曼相关系数(spearman correlation)作为评价指标。另外由于有数据增强模块的存在,因此移除了BERT中的dropout层。

  1. 无监督结果

下表展示了无监督训练的结果:

无监督结果
  1. 有监督结果

下表展示了有监督训练的结果:

有监督结果

四、定性分析

  1. BERT embedding空间分析

为了证明坍塌问题主要是由于对token词频敏感的各向异性空间的假设,本文设计实验在平均池化时mask掉几个出现最频繁的token。实验结果如下:

BERT embedding空间分析

移除了部分最频繁token后,BERT的性能增长迅猛,而对于ConSERT则变化不大,这表明ConSERT重构了BERT的原始embedding空间,减少了频繁出现的token的影响。

  1. 数据增强策略的影响

考虑数据增强的5个设置:None,Shuffle,Token Cutoff,Feature Cutoff,Dropout。注意,这里不考虑Adversarial Attack策略,因为它需要额外的监督训练来生成对抗性样本。实验结果如下:

数据增强策略的影响

结果表明Shuffle和Token Cutoff是最有效的两个策略, Feature Cutoff和Dropout在于另外两个结合时也会产生比较好的效果。

  1. Few-shot条件下的影响

限制无标注样本数量分别为1,10,100,1000和10000,实验结果如下:

Few-shot条件下的影响

当训练样本增加到1000时,本文的方法基本上可以达到与在完整数据集上训练的模型相当的结果。结果表明,本文的方法在数据稀缺性场景下的鲁棒性和有效性,这在现实中是很常见的。

  1. Temperature的影响

设计不同的temperature对比实验结果:

Temperature的影响
  1. batch size的影响

设计不同的batch size对比实验结果:

batch size的影响

实验表明batch size对模型性能影响不大。

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

推荐阅读更多精彩内容

  • 翻译自Xipeng Qiu*,School of Computer Science, Fudan Universi...
    京漂的小程序媛儿阅读 6,655评论 1 5
  • 一、bert什么时候开始火起来的? google在2018年10月底公布BERT在11项nlp任务中的卓越表现,N...
    张亮_3905阅读 1,097评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,520评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,763评论 0 5
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,649评论 3 8