0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

结合句子间差异的无监督句子嵌入对比学习方法-DiffCSE

深度学习自然语言处理 来源:NLP工作站 作者:刘聪NLP 2022-05-05 11:35 次阅读

写在前面

今天分享给大家一篇NAACL2022论文,结合句子间差异的无监督句子嵌入对比学习方法-DiffCSE,全名《DiffCSE: Difference-based Contrastive Learning for Sentence Embeddings》。该篇论文主要是在SimCSE上进行优化,通过ELECTRA模型的生成伪造样本和RTD(Replaced Token Detection)任务,来学习原始句子与伪造句子之间的差异,以提高句向量表征模型的效果。

paper:https://arxiv.org/pdf/2204.10298.pdf
github:https://github.com/voidism/DiffCSE

介绍

句向量表征技术目前已经通过对比学习获取了很好的效果。而对比学习的宗旨就是拉近相似数据,推开不相似数据,有效地学习数据表征。SimCSE方法采用dropout技术,对原始文本进行数据增强,构造出正样本,进行后续对比学习训练,取得了较好的效果;并且在其实验中表明”dropout masks机制来构建正样本,比基于同义词或掩码语言模型的删除或替换等更复杂的增强效果要好得多。“。这一现象也说明,「直接增强(删除或替换)往往改变句子本身语义」

paper:https://aclanthology.org/2021.emnlp-main.552.pdf
github:https://github.com/princeton-nlp/SimCSE
论文解读:https://zhuanlan.zhihu.com/p/452761704

Dangovski等人发现,在图像上,采用不变对比学习和可变对比学习相互结合的方法可以提高图像表征的效果。而采用不敏感的图像转换(如,灰度变换)进行数据增强再对比损失来改善视觉表征学习,称为「不变对比学习」。而「可变对比学习」,则是采用敏感的图像转换(如,旋转变换)进行数据增强的对比学习。如下图所示,做左侧为不变对比学习,右侧为可变对比学习。对于NLP来说,「dropout方法」进行数据增强为不敏感变化,采用「词语删除或替换等」方法进行数据增强为敏感变化。

0a73af38-cbbd-11ec-bce3-dac502259ad0.png

paper:https://arxiv.org/pdf/2111.00899.pdf

作者借鉴Dangovski等人在图像上的做法,提出来「DiffCSE方法」,通过使用基于dropout masks机制的增强作为不敏感转换学习对比学习损失和基于MLM语言模型进行词语替换的方法作为敏感转换学习「原始句子与编辑句子」之间的差异,共同优化句向量表征。

模型

模型如下图所示,

0a944d06-cbbd-11ec-bce3-dac502259ad0.png

左侧为一个标准的SimCSE模型,右侧为一个带条件的句子差异预测模型。给定一个句子,SimCSE模型通过dropout机制构造一个正例,使用BERT编码器f,获取句向量,SimCSE模型的训练目标为:

其中,为训练输入batch大小,为余弦相似度,为温度参数.

右侧实际上是ELECTRA模型,包含生成器和判别器。给定一个长度为T的句子,,生成一个随机掩码序列,其中。使用MLM预训练语言模型作为生成器G,通过掩码序列来生成句子中被掩掉的token,获取生成序列。然后使用判别器D进行替换token检测,也就是预测哪些token是被替换的。其训练目标为:

针对一个batch的训练目标为。

最终将两个loss通过动态权重将其结合,

为了使判别器D的损失可以传播的编码器f中,将句向量拼接到判别器D的输入中,辅助进行RTD任务,这样做可以鼓励编码器f使信息量足够大,从而使判别器D能够区分和之间的微小差别。

当训练DiffCSE模型时,固定生成器G参数,只有句子编码器f和鉴别器D得到优化。训练结束后,丢弃鉴别器D,只使用句子编码器f提取句子嵌入对下游任务进行评价。

结果&分析

在句子相似度任务以及分类任务上的效果,如下表1和表2所示,相比与SimCSE模型均有提高,

0aa24fdc-cbbd-11ec-bce3-dac502259ad0.png

0ac4e8e4-cbbd-11ec-bce3-dac502259ad0.png

为了验证DiffCSE模型具体是哪个部分有效,进行以下消融实验。

Removing Contrastive Loss

如表3所示,当去除对比学习损失,仅采用RTD损失时,在句子相似度任务上,下降30%,在分类任务上下降2%。

0af3bdd6-cbbd-11ec-bce3-dac502259ad0.png

Next Sentence vs. Same Sentence

如表3所示,当将同句话预测任务,变成预测下句话任务时,在句子相似度任务和分类任务上,具有不同程度的下降。

Other Conditional Pretraining Tasks

DiffCSE模型采用MLM模型和LM模型分别作为生成器时,效果如表3所示,在句子相似度任务和分类任务上,具有不同程度的下降。句子相似度任务上下降的较为明显。

Augmentation Methods: Insert/Delete/Replace

将MLM模型生成伪造句换成随机插入、随机删除或随机替换的效果,如表示所4,MLM模型的效果综合来说较为优秀。

0b2021e6-cbbd-11ec-bce3-dac502259ad0.png

Pooler Choice

在SimCSE模型中,采用pooler层(一个带有tanh激活函数的全连接层)作为句子向量输出。该论文实验发现,采用带有BN的两层pooler效果更为突出,如表5所示;并发现,BN在SimCSE模型上依然有效。

0b423128-cbbd-11ec-bce3-dac502259ad0.png

代码如下:

classProjectionMLP(nn.Module):
def__init__(self,config):
super().__init__()
in_dim=config.hidden_size
hidden_dim=config.hidden_size*2
out_dim=config.hidden_size
affine=False
list_layers=[nn.Linear(in_dim,hidden_dim,bias=False),
nn.BatchNorm1d(hidden_dim),
nn.ReLU(inplace=True)]
list_layers+=[nn.Linear(hidden_dim,out_dim,bias=False),
nn.BatchNorm1d(out_dim,affine=affine)]
self.net=nn.Sequential(*list_layers)

defforward(self,x):
returnself.net(x)

Size of the Generator

在DiffCSE模型中,尝试了不同大小的生成器G,如下表所示,DistilBERTbase模型效果最优。并且发现与原始ELECTRA模型的结论不太一致。原始ELECTRA认为生成器的大小在判别器的1/4到1/2之间效果是最好的,过强的生成器会增大判别器的难度。而DiffCSE模型由于融入了句向量,导致判别器更容易判别出token是否被替换,所以生成器的生成能力需要适当提高。

0b4ebb78-cbbd-11ec-bce3-dac502259ad0.png

Masking Ratio

对于掩码概率,经实验发现,在掩码概率为30%时,模型效果最优。

0b5df624-cbbd-11ec-bce3-dac502259ad0.png

Coefficient λ

针对两个损失之间的权重值,经实验发现,对比学习损失为RTD损失200倍时,模型效果最优。

0b710796-cbbd-11ec-bce3-dac502259ad0.png

总结

个人觉得这篇论文的主要思路还是通过加入其他任务,来增强句向量表征任务,整体来说挺好的。但是该方法如何使用到监督学习数据上,值得思考,欢迎留言讨论。

审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6786

    浏览量

    88708
  • 生成器
    +关注

    关注

    7

    文章

    313

    浏览量

    20935
  • 向量
    +关注

    关注

    0

    文章

    55

    浏览量

    11648

原文标题:DiffCSE:结合句子间差异的无监督句子嵌入对比学习方法

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入学习建议

    对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议: ①嵌入式系统软件硬件密切相关,一定要打好软硬件基础。其实,只要找到正确的方法
    发表于 10-22 11:41

    【《大语言模型应用指南》阅读体验】+ 基础知识学习

    收集海量的文本数据作为训练材料。这些数据集不仅包括语法结构的学习,还包括对语言的深层次理解,如文化背景、语境含义和情感色彩等。 自监督学习:模型采用自监督学习策略,在大量标签文本数据
    发表于 08-02 11:03

    【《大语言模型应用指南》阅读体验】+ 基础篇

    讲解,包括偏置、权重、激活函数;三要素包括网络结构、损失函数和优化方法。章节最后总结了神经网络参数学习的关键步骤。 1.4章节描述了自然语言处理的相关知识点,包括什么是自然语言处理、文本的向量化和自监督学习方法
    发表于 07-25 14:33

    神经网络如何用监督算法训练

    神经网络作为深度学习的重要组成部分,其训练方式多样,其中监督学习是一种重要的训练策略。监督学习旨在从未标记的数据中发现数据内在的结构、模
    的头像 发表于 07-09 18:06 654次阅读

    深度学习中的监督学习方法综述

    应用中往往难以实现。因此,监督学习在深度学习中扮演着越来越重要的角色。本文旨在综述深度学习中的监督学
    的头像 发表于 07-09 10:50 349次阅读

    深度学习与传统机器学习对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但深度学习和传统机
    的头像 发表于 07-01 11:40 1069次阅读

    谷歌提出大规模ICL方法

    谷歌DeepMind团队近日取得了一项突破性的研究成果。他们提出了强化和监督两种新型的ICL(In-Context Learning)学习方法,这一创新技术能够在多个领域显著提升模型的性能。
    的头像 发表于 05-14 14:17 306次阅读

    QNX与Linux基础差异对比

    对于QNX系统和Linux系统的内核差异,我们抛开宏内核、微内核之类的争议不谈。单纯从开发应用的角度而言,QNX和Linux系统的差异到底有多大,在开发的时候需要注意哪些细节问题?
    发表于 04-17 10:52 627次阅读

    OpenAI推出Sora:AI领域的革命性突破

    大模型的核心技术是自然语言处理(NLP)和深度学习。具体而言,它基于Transformer架构,使用了大规模监督学习方法,例如自回归语言建模和掩码语言建模,来训练一个庞大的神经网络模型。
    发表于 02-21 16:36 974次阅读
    OpenAI推出Sora:AI领域的革命性突破

    Meta发布新型监督视频预测模型“V-JEPA”

    Meta,这家社交媒体和科技巨头,近日宣布推出一种新型的监督视频预测模型,名为“V-JEPA”。这一模型在视频处理领域引起了广泛关注,因为它通过抽象性预测生成视频中缺失或模糊的部分来进行学习,提供了一种全新的视频处理
    的头像 发表于 02-19 11:19 888次阅读

    请问初学者要怎么快速掌握FPGA的学习方法?

    对于初学者 FPGA的编程语言是什么? FPGA芯片的基础结构也不了解. FPGA开发工具的名称和使用方法都不知道. 要学的很多啊,请问有什么自学的学习方法么?
    发表于 01-02 23:01

    基于transformer和自监督学习的路面异常检测方法分享

    铺设异常检测可以帮助减少数据存储、传输、标记和处理的压力。本论文描述了一种基于Transformer和自监督学习的新方法,有助于定位异常区域。
    的头像 发表于 12-06 14:57 1358次阅读
    基于transformer和自<b class='flag-5'>监督学习</b>的路面异常检测<b class='flag-5'>方法</b>分享

    监督域自适应场景:基于检索增强的情境学习实现知识迁移

    本文对比了多种基线方法,包括监督域自适应的传统方法(如Pseudo-labeling和对抗训练)、基于检索的LM
    发表于 12-05 14:14 523次阅读
    <b class='flag-5'>无</b><b class='flag-5'>监督</b>域自适应场景:基于检索增强的情境<b class='flag-5'>学习</b>实现知识迁移

    一种利用几何信息的自监督单目深度估计框架

    本文方法是一种自监督的单目深度估计框架,名为GasMono,专门设计用于室内场景。本方法通过应用多视图几何的方式解决了室内场景中帧大旋转和低纹理导致自
    发表于 11-06 11:47 386次阅读
    一种利用几何信息的自<b class='flag-5'>监督</b>单目深度估计框架

    电动车锂电池保养方法 对比铅酸电池有什么差异

    电动车锂电池保养方法 对比铅酸电池有什么差异? 电动车锂电池保养方法与铅酸电池有很多差异。在本文中,我们将详细探讨这些
    的头像 发表于 11-06 11:19 1058次阅读