• 论文阅读_对比学习_SimCSE


    英文题目:SimCSE: Simple Contrastive Learning of Sentence Embeddings
    中文题目:SimSCE:用简单的对比学习提升句嵌入的质量
    论文地址:https://export.arxiv.org/pdf/2104.08821.pdf
    领域:自然语言处理,对比学习
    发表时间:2021.04
    作者:Tianyu Gao, 普林斯顿大学,清华大学
    出处:EMNLP
    被引量:83
    代码和数据:https://github.com/princeton-nlp/SimCSE
    阅读时间:2022.09.18
    (周五同事分享,简单整理笔记)

    读后感

    主要用于提升句嵌入的质量。方法很简单,利用BERT模型本身的dropout性质,通过同一输入输出不同嵌入作为正例对,然后取同一batch下的反例对训练模型。

    介绍

    自监督学习主要包含:生成式,对比式,对抗式。其中的对比学习原理是:利用无监督数据,通过巧妙的方法构造正例/反例(一般是一个正例对应多个反例),训练模型,让正例距离足够近,反例距离足够远,以利用无监督数据,进行更好地表示(表征)。
    一般设计包含三部分:构造正/负例;优化损失函数;调整模型编码器。

    评价对比学习的质量有两个关键指标:alignment和uniformity。其中alignment指的是正例中数据对表示的一致性:

    uniformity指的是嵌入空间分布的均匀性:

    其中Pdata指空间中所有实例。也就是说正例距离越近越好,而随机采样的数据对的距离应该分布在超球体表面。

    方法

    无监督数据训练SimCSE

    之前生成近似正例的方法有:随机增删,近义词替换,交换词序等。本文利用 BERT 模型本身包含 dropout,这样同一个句子两次送入模型,由于随机dropout,最终的编码也不同。用这种方法作为数据增强,生成对比学习中的正例对,使用同一batch中的其它实例作为反例。损失函数定义如下:

    表-1对比了文中方法和其它常用方法(删词,剪切),在同义句子匹配STS-B任务中的效果:

    图-2把损失拆分成alignment和uniformity,位置处于左下角时效果最好(两个loss都小);可以看到随着迭代训练损失的变化(箭头方向),其中红色线为SimSCE在两个评测方向的变化相对最好。

    有监督数据训练SimCSE

    文中还研究了SimSCE对比学习如何利用有监督学习的数据来提升模型的表现力。具体使用自然语言推理任务(NLI)数据,NLI用以判断两个句子的关系是:蕴含、中性或矛盾。利用训练集中的标注信息产生对比学习中的正/负例。

    选择标注数据
    为对比 NLI 的提升效果,先探索了一些构造正例的方法:

    • 使用Kaggle比赛的QQP数据集,它的训练数据标注了两个问句语义是否相同。
    • 使用Flickr30,对每个图片人工标注了五个标题,可将其中的两两标注组成正例对。
    • 使用ParaNMT,大规模的反向翻译数据集(如:中->英->中),作为正例对。
    • 使用NLI任务数据集,最终NLI数据集效果最好,这是由于它包含高质量的众包人工标注,并且正例中词汇重合度小(同一词在两个正例对中均出现)。

    将矛盾关系对作为硬负例
    为了更好利用NLI数据集,利用标注为矛盾的实例,生成硬负例,并修改了损失函数,实验证明了它的有效性:

    可以看到,这里硬负例被充分利用(被计入了N次),图-4展示了实验结果:

    为了公正的对比,sample列只采样了134k正例来训练模型。可以看到不同任务训练的模型对 STS-B 效果的提升。

    各向异性

    各向异性意思是所有向量都被映射在了一个“狭窄”的高维空间。而uniformity是评价所有实例在向量空间中是否均匀分布,SimCSE在uniformity方面提升,也改善了自然语言编码的各向异性问题。

    图-3对比了目前各种流行模型的alignment和uniformity:

    实验

    主实验使用句子相似度任务,在有监督和无监督两方面,对比了不同方法的效果:

    可以看到SimSCE效果已超过了目前业界使用最为广泛SBERT(挛生网络)模型。

  • 相关阅读:
    KMP 算法
    .Net Core&RabbitMQ消息存储可靠机制
    信息论之从熵、惊奇到交叉熵、KL散度和互信息
    [计算机毕业设计]关联挖掘的服装推荐系统
    如何使用在 10 分钟内构建您的 Flutter 新闻应用程序而无需编码(Nowa 教程)
    104. 简易聊天室7:使用 Socket 传递对象
    科研TCO-PEG-Alkyne|TCO-PEG-ALK|反式环辛烯-聚乙二醇-炔基
    颠覆传统编程:用ChatGPT十倍提升生产力
    ffmpeg推流+nginx转发+拉流(RTMP拉流)
    2022下半年电商市场爆火的商业模式——2+1链动招商模式
  • 原文地址:https://blog.csdn.net/xieyan0811/article/details/126914092