Press "Enter" to skip to content

对比学习有多火?文本聚类都被刷爆了…

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文 | 花小花Posy

 

大家好,我是小花。

 

对比学习的大火:fire: 越来越旺了,已然从CV蔓延到NLP了。今天给大家介绍的正是一篇将对比学习应用到文本聚类上的工作,NAACL21新鲜出炉的paper——《Supporting Clustering with Contrastive Learning》。该工作在8个短文本聚类数据集上取得了显着提升(比如正确率提升3%~11%)。

 

所谓对比学习,重点在于对比,那对比的对象是谁?

 

答曰:增强的数据。假设如果两个增强句子的原句子一样,那幺拉近它们,否则推远它们。

 

在CV领域,对比学习是和携数据增强一起出道的。给定一张图片,生成不同的变体去增强它,然后用对比思想去学习。NLP领域也如法炮制。给一个句子,使用数据增强去生成和原句子语义相似的句子。比如下面的例子[1]:

如果两个增强句子来自同一个原句子,那幺它们是同源的,否则是不同源的。本文发现,利用对比学习的特性,即拉近同源句子、拉远不同源句子,可以解决短文本聚类问题中一个令人头疼的问题—— 如果学习过程开始时,不同类别在表示空间中就彼此重叠,那幺不管怎幺学习都很难将各个类别区分开。

 

下图是原文中对比的原始数据的分布(Original) 和使用聚类(Clustering)模型学习后的分布。

 

可以看到,Clustering整体效果还不错,但相邻类别黏在一起、无法区分的现象仍然是存在。

 

而本文发现,使用对比学习(Instance-CL)可以很好地解决该问题。 对比学习可以将各个重叠的类别分散开。

 

更进一步,本文发现将对Instance-CL和Clustering结合(SCCL),不仅可以可以更好地区分不同类别;而且通过显示地拉近同一类的数据的距离,可以促使类内分布更加紧凑,从而达到更优质的聚类效果。

简单讲,本文提出了一个训练框架 SCCL ,它结合了 bottom-up的实例对比学习 和 top-down的聚类学习 ,收获了更好的类内距离和类间距离。

 

论文题目:

 

Supporting Clustering with Contrastive Learning

 

论文链接:

 

https://arxiv.org/pdf/2103.12953.pdf

 

Arxiv访问慢的小伙伴也可以在 【 夕小瑶的卖萌屋 】订阅号后台回复关键词 【 0422 】 下载论文PDF~

 

对比学习扫盲

 

对比学习的目标是区分两个实例是否是由同一个源数据采样/增强得来,如果是,让它们在表示空间中越接近;如果不是,让它们在表示空间中远离。早在2006年,Hadsell等人[2]就提出了通过对比正负例来学习表示的思想,但其真正火起来是始于谷歌在19年提出的 SimCLR [3]框架。下图展示了 SimCLR 中对比学习思想的示例图,可以更加直观理解整个流程。 具体来说,对于一个源数据, 使用某种数据增强的方式,给它生成一对增强数据和,然后对它们哥俩进行编码、映射,接着最大化它们的相似度。

 

对比学习的一个关键点是如何生成增强数据。在CV中,数据增强依赖图片的空间不变性,通过旋转、缩放、裁剪等方式去给图片增强。在NLP领域中,数据增强主要依靠的是语义不变性,常用方法有词汇替换、回译、字面转换、随机噪声注入等等[3]。本文尝试了3种不同的替换方式,分别是:

 

 

WordNet Augmenter:使用 WordNet中的同义词 对输入进行 替换 。

 

Paraphrase via back translation:使用 回译 的方式生成输入的 复述 。

 

Contextual Augmenter:对于输入, 利用 预训练Transformer 找到其中N个候选位置,对其进行 插入或替换 。

 

 

说完了对比学习,接下来我们聊一聊本文是如何使用对比学习及它的效果如何。

 

SCCL的训练框架

上图展示了SCCL的训练框架,相比以前的聚类方法(蓝色部分),SCCL使用了数据增强,并利用了对比学习去优化增强的数据。相对应的,模型针对Clustering有一个损失函数对源数据进行优化,Instance-CL有一个损失函数对增强数据进行优化。

 

模型概念了解起来相对简单,就不放公式了。想看公式加深理解的朋友们可以去看原论文。下面看看实验结果如何。

 

简单的模型,大大的提升

 

文中使用 ACC(Accuracy)和 NMI(Normalized Mutual Information)两个评价指标来衡量聚类性能。下图展示了SCCL在8个短文本聚类的数据集上的实验结果(几乎完爆所有数据集):

除了大规模的SOTA外,文中还总结了SCCL相比其它模型的优点:

 

 

训练更简单:SCCL只需要端到端的训练,有的模型(STCC)却需要分多步训练,或者使用了垂直领域的特征进行增强(比如HAC-SD)。

 

对数据噪声更鲁棒:SCCL不需要任何的数据预处理,其它大部分模型都对数据进行了预处理,比如移除停用词、标点符号、小写化处理。

 

 

对比学习加在什幺阶段?

 

SCCL模型包含了两个损失函数:一个负责Clustering的优化,一个负责Instance-CL的优化。 那幺对于有多个损失函数时,是选择pipeline的方式去一个一个训练呢?还是使用jointly训练的方式更好呢 ?

 

本文对比了两种方式的区别,并与单独使用其中一个进行对比。下图显示了使用Accuracy作为指标时各个模型的表现:

 

可以看出,相比单独使用Instance-CL或者Clustering,结合两者使用的两个模型在各个数据集上都取得了提升,而且jointly训练(SCCL)取得的提升一致优于pipeline训练(SCCL-Seq,先训练Instance-CL在训练Clustering)。

 

数据增强哪家好?

 

上文提到, 本文使用了三种数据增强的方法,那幺哪一种最优? 下图展示了三种方法在各个数据集上的实验结果:

整体来讲, Ctxt在各个数据集上的性能都是最好的,也就是说利用预训练Transformer作为增强器是最好的 。同时也可看到,有一部分数据集在不同增强方法下表现差别很大,比如SearchSnippers和GooglenewsS,而有一部分的敏感度则较低,比如AgNews、Biomedical和GooglenewsTS。

 

说明在我们实际使用过程中,到底使用哪种增强方式有效还是需要做做对比实验才晓得。

 

这里我们接着问一个问题。 要是我们使用多个增强器呢?效果会变得更好吗? 文中对比了使用1个增强器和2个增强器的区别,以及当选择替换不同比例的源句子时的区别。

 

上图中 蓝色 表示使用 1个增强器 和 橘色 表示使用 2个增强器 。可以看出:

 

 

2个增强器在GoogleNewTS上有轻微的提升,并且没有随着增强数据中被替换词的比例上升而下降;

 

stackoverflow上的表现却截然不同,随着替换比例的增高,使用两个增强器反而导致性能大幅度下降。

 

 

为了探究原因,文中对比了在不同替换比例和不同增强器下(1个或2个),原始文本和增强文本在训练之初时的cosine相似度:

可以看出,当使用2个增强器(橘色)时,增强文本与原始文本之间的相似度逐渐降低,从而解释了为什幺使用2个增强器并不一定能使模型性能变好。

 

小结一下

 

本文提出了一种简单、有效的无监督聚类的模型SCCL,在基于距离的聚类方法上,使用逐例对比学习区分不同类别。通过联合优化逐例对比学习的损失和聚类的损失,使得模型在拉开距离的同时保证类内距离更近。SCCL在8个短文本聚类数据集上进行测试,大部分实验结果都取得了SOTA,Accuracy提升了3% ~ 11%,NMI提升了4%~15%,证明了模型的有效性。

 

最后的最后,大家不妨思考下,为什幺聚类+对比学习可以带来如此大的提升呢?小花的理解是,聚类关注高层级的语义概念,而实例对比的研究对象往下渗透了一层,它的目标是让相似的实例距离更近,不同的实例距离更远。将它们结合起来,可以:

 

 

增加细粒度的对比。

 

数据增强带来了更多的数据,将更多先验知识告诉了模型。

 

顶层抽象和底层细节的结合,就像我们人学习的时候既需要具体案例的学习,又需要抽象理解。二者搭配,效果更佳。

 

 

有趣的是,在CV中,对比学习是为了让模型不关注像素细节,学习高级特征来区分不同对象。但是在NLP中却是反过来了,希望模型学习实例级别的特征。

 

萌屋作者:花小花Posy

 

目前在墨尔本大学NLP组读Ph.D.,主要感兴趣方向包括常识问答,知识图谱,低资源知识迁移。期待有生之年可见证机器真正理解常识的时刻! 知乎ID:花小花Posy

 

 

[1].A Visual Survey of Data Augmentation in NLP https://amitness.com/2020/05/data-augmentation-for-nlp/

 

[2].Dimensionality Reduction by Learning an Invariant Mapping https://cs.nyu.edu/~sumit/research/assets/cvpr06.pdf

 

[3].A Simple Framework for Contrastive Learning of Visual Representations. https://arxiv.org/pdf/2002.05709.pdf

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注