亚马逊VaSCL | 无监督虚拟增强困难样本,超越SimCSE

简介: 亚马逊VaSCL | 无监督虚拟增强困难样本,超越SimCSE

b9d3ebe55c9c3829c47e9fe7a632f96e.png

大家好,我是对白。


半年前SimCSE两次dropout的操作刷爆朋友圈,对比学习相关论文也席卷各大顶会顶刊;上次也总结了ACL2021的一些对比学习文章。最近组内论文分享有同事分享了一篇亚马逊AI Lab的工作,觉得还蛮有意思,该论文于2021年12月16日发布在arxiv上,目前是文本匹配新SOTA,效果超越了SimCSE。


下面就让我们一起学习一下如何通过无监督虚拟增强难负样本,来提升文本匹配效果~


c1722721fb50aab0b656f145cf2dabae.png


一、正文



首先思考一下,SimCSE虽然操作简单,这其实意味着它还有很多的可操作空间,比如——如何进一步加大对困难样本信息的挖掘,从而进一步提升网络的性能。


这个道理就像考试,简单的题目大家都会,所以所有大家随便考考都可以考到90分,但是90-100分这个区间,就要考验大家对困难题目的理解了;如果我们平时学习一直反复写简单题目,忽略了难题的练习,那肯定是没办法在90分的基础上再多考几分的。


想让模型多见一些困难样本,有两种方式:


第一种方式就是充分挖掘现在的数据集,找出现在数据集内的困难样本,然后通过加大这些样本的权重或者出现的比例,强迫模型多关注这些难题,比如SimCSE内利用温度τ来控制对困难样本的关注度:


3bc97c1fbfb114200c700fc48d4cb78d.png


1. 分子是原始case两次dropout输出,其相似度一定较大,无太大随机性,即熵值较为固定;

2. 分母中包含一堆负样本,包括简单样本,困难样本等,不确定性高,熵值大;

3. 分母中困难样本定义为:其明明是负样本,其和原始case相似度却很大;那么分母一定是更关注困难样本,因为简单样本loss低;

4. 所以当τ>1,相当于降低对困难样本的关注度,当 τ<1,则进一步扩大困难样本比重,更加关注困难样本。


比如简单负样本和原句相似度0.1,困难样本和原句相似度0.6,除以τ=0.2后,差距进一步扩大,模型会更关注困难样本;


或者利用方差等方式手动挑出来比较困难的样本,反复多加入几次迭代过程,具体在这里就不赘述了。


另一种方式就是创造更多的困难样本,常见的方式一般是人为分析数据后进行手工添加,可以配合一些仿射变换,如同义词替换、回译等;那么能不能像第一种方式那样,在训练过程中,让网络自己想办法去创建一些困难样本呢?


好了,本文的主角终于来了——VaSCL,其会在网络训练的过程中自动创造一些虚拟的困难样本,为什么说是虚拟的,自然也是和SimCSE那样直接dropout出来的一堆“数据分布”一样,毫无章法且不讲道理但…有效!


二、VaSCL是怎么做的?



首先还是和SimCSE一样,一个case两次dropout,然后最小化自身两次dropout的距离,并推远与其它样本的距离;即,SimCSE原loss全部保留;


剩下就是怎么找出来困难样本。


① 假设batch为32,我们需要找出第一句话的困难样本,因为是无监督模型,除了第一句话自身,其余所有case都是负样本,那么模型输出特征向量和第一句话越相似的,其就越可能是第一句话的困难样本是吧?我们首先定义一个k,在每个batch中找到每句话输出特征向量最近的k句话,后文称为这句话的k领域,后面就用这k句话创建第一句话的虚拟困难样本。


② 假设第一句话经过模型输出的特征向量是e,随便搞一个高斯白噪声α,加上去,得到一个新的特征向量e+α,理论上来说,这个新的特征向量和第一句话的意思应该还是相近的,因为是高斯白噪声,其不会对原始向量数据分布产生太大影响,这个过程大概可以模拟成这样:


e = e + np.random.standard_normal(y.shape) * 0.01


如果是给一张图片加上高斯白噪声,基本是看不出什么变化的。仔细看一下这个高斯白噪声的代码,好好想想,理论上按照这个公式,高斯白噪声一定不应该对原句的语义产生太大影响。


当然,实际上我们不是随便乱加一个高斯白噪声,我们期待我们有很多的高斯白噪声,然后再其中选取一个最优的高斯白噪声,可以使得第一句话加上这个噪声以后,即e+α和原来的特征向量e,最远,但是第一句话k领域内的所有负样本加上这个噪声α后都和原句e更靠近了,这样的一个高斯白噪声可谓是坏事干尽了,迷惑性贼大!


所以当原句e加上这个最优的噪声α,就得到了一个很强的困难样本!


这里有个问题,这个候选高斯白噪声集合哪里来,文章没有交代,理论上我们随机生成若干个作为备选,或者预设一个数值,每次训练过程中随机生成这么多个,再或者直接把这个噪声当成可训练参数或许也可以(但是按照原文的意思,似乎没有把这个α当成可训练参数);不过都是小问题,个人比较倾向在训练前指定数值n,


③ 训练过程中batch中每句话的loss:


首先保持SimCSE的损失:


  • 每句话的两次dropout靠近


  • 每句话和别的句子dropout拉远


然后是虚拟困难样本损失:按②的规则在高斯白噪声集里面找到一个最优的噪声α,每句话加上其最优噪声得到这句话的虚拟困难样本,这句话的k领域内负样本也加上这句话的最优噪声,得到这句话k领域的虚拟困难负样本;


  • 原句和其虚拟困难样本拉近


  • 原句/原句虚拟困难强样本分别与k领域内负样本/k领域虚拟困难负样本拉远


作者没有开源,但是其实按照SimCSE实际实现起来应该差不多,难度不大。


三、效果



语义相似度效果:


f9775213db5804e472556d432fd5b7bf.png


文本聚类效果:


c0ae0e23c0457c119f18312ac10dfbc7.png


少样本学习意图分类效果:


f2206ec88a447d1ad83c4b9642022e7c.png


模型在不同数据增强策略下的效果:


343ec9db45c797f4826ce338c8e13757.png

相关文章
|
开发框架 Unix Linux
深度探索:Qt CMake工程编译后的自动打包策略
深度探索:Qt CMake工程编译后的自动打包策略
975 0
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
机器学习/深度学习 存储 计算机视觉
【论文速递】TPAMI2022 - 自蒸馏:迈向高效紧凑的神经网络
【论文速递】TPAMI2022 - 自蒸馏:迈向高效紧凑的神经网络
|
9月前
|
机器学习/深度学习 人工智能 计算机视觉
让AI真正"看懂"世界:多模态表征空间构建秘籍
本文深入解析多模态学习的两大核心难题:多模态对齐与多模态融合,探讨如何让AI理解并关联图像、文字、声音等异构数据,实现类似人类的综合认知能力。
3856 6
|
9月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
1604 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
存储 Java API
如何使用 Java 中的 API 更改 PDF 纸张大小
如何使用 Java 中的 API 更改 PDF 纸张大小
426 11
|
机器学习/深度学习 数据可视化 机器人
比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现
扩散模型和流匹配是生成高分辨率数据(如图像和机器人轨迹)的先进技术。扩散模型通过逐步去噪生成数据,其代表应用Stable Diffusion已扩展至机器人学领域形成“扩散策略”。流匹配作为更通用的方法,通过学习时间依赖的速度场将噪声转化为目标分布,适用于图像生成和机器人轨迹生成,且通常以较少资源实现更快生成。 本文深入解析流匹配在图像生成中的应用,核心思想是将图像视为随机变量的实现,并通过速度场将源分布转换为目标分布。文中提供了一维模型训练实例,展示了如何用神经网络学习速度场,以及使用最大均值差异(MMD)改进训练效果。与扩散模型相比,流匹配结构简单,资源需求低,适合多模态分布生成。
1417 13
比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现
|
机器学习/深度学习 自然语言处理 大数据
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
8786 2
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
|
机器学习/深度学习 存储 缓存
【博士每天一篇文献-综述】Machine Unlearning Solutions and Challenges
本文综述了机器遗忘的解决方案和挑战,全面分类并分析了精确遗忘和近似遗忘方法,探讨了它们在隐私保护、安全性增强、模型适应性提升中的应用,并提出了评价指标和未来研究方向。
1391 2
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习参数初始化(二)Kaiming初始化 含代码
深度学习参数初始化(二)Kaiming初始化 含代码
1331 2

热门文章

最新文章