对比学习(Contrastive Learning)在CV与NLP领域中的研究进展(三)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 对比学习(Contrastive Learning)在CV与NLP领域中的研究进展(三)

**实验效果:**对比学习过程中的ENCODER和MLM部分的Pretrained model是RoBerta和DistillRoBerta,pooling用的mean pooling。


**扩展知识:**Bert vs RoBerta vs AlBert


19.png


评测数据集是SentEval,SentEval是一个用于评估句子表征的工具包,包含 17 个下游任务,其输入是句子表示,输出是预测结果。


17.png


可以看到本文方案往往不是最优的那个,但是作者对比了 没用对比学习方法和用了对比学习方法(最后的Transformer-* VS DeCLUTER-*)的结果,说明了自己方案有效。


3.Supporting Clustering with Contrastive Learning


**链接:**https://arxiv.org/abs/2103.12953(NAACL 2021)


**背景:**在学习过程的开始阶段,不同的类别常常在表征空间中相互重叠,对如何实现不同类别之间的良好分离,带来了巨大的挑战。


**方案:**利用对比学习,去做更好的分离。通过联合优化top-down聚类损失和bottom-up 实体级别的对比loss,来达到同时优化intra-cluster和inter-cluster的目的。


20.png


分Instance-CL部分和Clustering部分两个部分。


Instance-CL:


随机选M个样本组成一个batch,数据增强方法生成2M个样本,依然是从一个样本中生成的2个为一对正样本,和其他2M-2组成负样本


数据增强方法:


每个样本用InfoCNE去算loss, Instance-CL loss 为2M样本的平均值。


22.png


数据增强方法:


WordNet Augmenter:用wordNet中的同义词进行替换;


Contextual Augmenter:用pretrained model去找最合适的词去进行插入或替换;


Paraphrase via back translation:翻译成一种语言再翻译回来;


实验效果:


23.png


非联合方式自监督


1.BERT-CT (ICLR2021)


**背景:**从各种预训练模型的某层中取出的embedding,并不能很好表征句子,而且越接近目标的层,效果越不好。作者认为训练目标极为重要。


**方案:**用两个超参不一样的模型来取sentence embedding,尽可能让正例对的点积更大,负例对的点积更小。


数据增强方法:


正例:同句子的不同embedding;


负例:随机选7个不同的句子;


实验效果:


24.png


2.SimCSE


**链接:**https://arxiv.org/abs/2104.08821


**背景:**直接用BERT句向量做无监督语义相似度计算效果会很差,任意两个句子的BERT句向量的相似度都相当高,其中一个原因是向量分布的非线性和奇异性,正好,对比学习的目标之一就是学习到分布均匀的向量表示,因此我们可以借助对比学习间接达到规整表示空间的效果,这又回到了正样本构建的问题上来,而本文的创新点之一正是无监督条件下的正样本构建。


**方案&数据增强方法:**本文作者提出可以通过随机采样dropout mask来生成xi+,回想一下,在标准的Transformer中,dropout mask被放置在全连接层和注意力求和操作上,其中z是随机生成的dropout mask,由于dropout mask是随机生成的,所以在训练阶段,将同一个样本分两次输入到同一个编码器中,我们会得到两个不同的表示向量z,z’,将z’作为正样本,则模型的训练目标为:


25.png


这种通过改变dropout mask生成正样本的方法可以看作是数据增强的最小形式,因为原样本和生成的正样本的语义是完全一致的(注意语义一致和语义相关的区别),只是生成的embedding不同而已。


实验效果:


26.png

相关文章
|
3月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 在自然语言处理中的应用案例研究
【8月更文第27天】PyTorch 是一个强大的开源机器学习框架,它为开发者提供了构建和训练深度学习模型的能力。在自然语言处理(NLP)领域,PyTorch 提供了一系列工具和库,使开发者能够快速地实现和测试新的想法。本文将介绍如何使用 PyTorch 来解决常见的 NLP 问题,包括文本分类和机器翻译,并提供具体的代码示例。
44 2
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。
自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代码实例。
95 1
|
4月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
159 11
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(NLP)是人工智能和语言学的一个交叉领域,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理(NLP)是人工智能和语言学的一个交叉领域,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
基于深度学习的自然语言处理技术研究与进展
基于深度学习的自然语言处理技术研究与进展
99 1
|
6月前
|
机器学习/深度学习 自然语言处理 算法
如何快速高效全面的学习自然语言处理
如何快速高效全面的学习自然语言处理
107 0
|
机器学习/深度学习 存储 自然语言处理
从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
183 0
|
6月前
|
存储 机器学习/深度学习 人工智能
5个优质免费自然语言处理学习资源 | 语言技术导航
5个优质免费自然语言处理学习资源 | 语言技术导航
200 1
|
6月前
|
机器学习/深度学习 自然语言处理 算法
19ContraBERT:顶会ICSE23 数据增强+对比学习+代码预训练模型,提升NLP模型性能与鲁棒性:处理程序变异(变量重命名)【网安AIGC专题11.15】
19ContraBERT:顶会ICSE23 数据增强+对比学习+代码预训练模型,提升NLP模型性能与鲁棒性:处理程序变异(变量重命名)【网安AIGC专题11.15】
219 1
|
机器学习/深度学习 自然语言处理 算法
NLP(自然语言处理)自学习平台可能是一个很好的选
NLP(自然语言处理)自学习平台可能是一个很好的选
118 3