大语言模型-对比学习-Contrastive Learning

一、对比学习概念

对比学习 是一种特殊的无监督学习方法

旨在通过拉近相关样本的距离并且推远不相关样本的距离,来学习数据表示

通常使用一种高自由度、自定义的规则来生成正负样本。在模型预训练中有着广泛的应用。

二、对比学习小案例

对比学习主要分为三个模块:

  • 正负样本的定义

  • Encoder(编码器)的定义

  • 损失函数的定义

把这三个模块通过下面的例子进一步说明:

1、 正负样本的定义 :例如可以把句子集中,把除了其自身通过增强以外的句子都当作负样本。

2、Encoder定义 : 不同的数据通过Encoder获得向量表示,通过损失函数更新查询向量一侧的Encoder参数。

3、损失函数的定义 : 于是对比学习的训练目标可以简化为
L C L = − log ⁡ e S i , i τ ∑ j = 1 , j ≠ i N e S i , j τ L_{CL} = -\log_{}{}\frac{e^{\frac{S_{i,i}}{\tau }} }{\sum_{j=1,j\ne i}^{N}e^{\frac{S_{i,j}}{\tau } }} LCL=−log∑j=1,j=iNeτSi,jeτSi,i

其中 S i , i S_{i,i} Si,i指的是两个特征向量的余弦相似性, S i , i = s i m ( h i , h j ) = C o s i n e S i m ( h i , h j ) = h i T h j ∣ ∣ h i ∣ ∣ ⋅ ∣ ∣ h j ∣ ∣ S_{i,i} = sim(h_{i},h_{j})= CosineSim(h_{i},h_{j})=\frac{h_{i}^{T}h_{j}}{||h_{i}||\cdot ||h_{j}||} Si,i=sim(hi,hj)=CosineSim(hi,hj)=∣∣hi∣∣⋅∣∣hj∣∣hiThj, τ \tau τ是温度系数, τ = 0.05 \tau=0.05 τ=0.05。

三、对比学习的评估

对齐性均匀性

对比学习一个重要的特点是它得到的特征向量具有对齐性和均匀性。

对齐性:

对齐性意义: 相似的特征向量的距离比较接近。
对齐性评估指标
L a l i g n = E ( x , x + ) ∼ p p o s ∥ f ( x ) − f ( x + ) ∥ L_{align} = E_{(x,x^{+})\sim p_{pos}}\left \| f(x) - f(x^{+}) \right \| Lalign=E(x,x+)∼ppos f(x)−f(x+)

对齐性的量化指标通常是正样本对之间的期望距离

均匀性:

均匀性意义: 特征向量的分布更加符合均匀分布
对齐性评估指标:通常是径向基函数核(RBF kernel)

均匀性的一个极端反例是特征向量都映射到了超球面的一个点附近,此时特征向量的分布是极度不均匀的,一般将这种情况叫做模型坍塌(Collapse)

四、对比学习的正负样本

对比学习的正负样本也被称作是对比学习代理任务,通常有两种:

  • 个体判别:对于数据集中的任意一个句子而言,除了其自身通过增强获取到的句子正样本外,数据集内的其余句子都为负样本。

  • 数据聚类:对于不同视角、传感器、模式获取的同一对象数据,为正样本,其余数据都为负样本。

正负样本的定义就是在构建一套标注规则。

五、对比学习的损失函数

对比学习最底层的思想是在某个特征空间上拉近相关样本的距离并且推远不相关样本的距离。
InfoNCE loss 是对比学习中比较常用的一种损失函数。
L N = − log ⁡ e S i , i τ ∑ j = 1 , j ≠ i N e S i , j τ L_{N} = -\log_{}{}\frac{e^{\frac{S_{i,i}}{\tau }} }{\sum_{j=1,j\ne i}^{N}e^{\frac{S_{i,j}}{\tau } }} LN=−log∑j=1,j=iNeτSi,jeτSi,i

其中 S i , i S_{i,i} Si,i指的是两个特征向量的余弦相似性, S i , i = s i m ( h i , h j ) = C o s i n e S i m ( h i , h j ) = h i T h j ∣ ∣ h i ∣ ∣ ⋅ ∣ ∣ h j ∣ ∣ S_{i,i} = sim(h_{i},h_{j})= CosineSim(h_{i},h_{j})=\frac{h_{i}^{T}h_{j}}{||h_{i}||\cdot ||h_{j}||} Si,i=sim(hi,hj)=CosineSim(hi,hj)=∣∣hi∣∣⋅∣∣hj∣∣hiThj, τ \tau τ是温度系数。

  • 对比学习损失则给相似度更高的负样本更高的惩罚,可以通过对比损失的负样本的惩罚梯度得到。
  • 对比损失具有将所有特征拉倒同一个超球面上的作用。
  • 当 τ \tau τ趋近于无限大时,对比损失失去对困难负样本的关注能力。
  • 随着 τ \tau τ 的减小,难样本的权值会越来额越高。

对比学习作为无监督学习中的一种,因为其高自由度的正负样本定义、出色的性能成为无监督学习中重要的研究方向,极大地推动了无监督学习的发展。

Reference

1、大师兄-对比学习之SimCSE

2、对比学习(Contrastive Learning)概述

3、Representation Learning with Contrastive Predictive Coding

相关推荐
DX_水位流量监测3 小时前
城市易涝点水位雨量监测设备技术体系与实践应用
大数据·运维·服务器·网络·人工智能
2501_921649493 小时前
日本股票 API 对接,接入东京证券交易所(TSE)实现 K 线 MACD 指标
大数据·人工智能·python·websocket·金融
陌上明苏3 小时前
.NET1-异步方法、LINQ
学习
weixin_446260853 小时前
探索大语言模型:基础知识与应用指南
人工智能·语言模型·自然语言处理
大山同学3 小时前
薄膜透光度原理
linux·运维·人工智能
J_Xiong01173 小时前
【VLMs篇】11:用于端到端目标检测的可变形Transformers(Deformable DETR)
人工智能·深度学习·目标检测
SEO_juper3 小时前
谷歌AI搜索模式全景图:深度解析它如何重塑搜索生态与排名逻辑
人工智能·ai·数字营销
掘金酱3 小时前
🏆2025 AI/Vibe Coding 对我的影响 | 年终技术征文
前端·人工智能·后端
攻城狮7号3 小时前
Anthropic开源Skills项目,打响了智能体标准化的第一枪
人工智能·大模型·skills·anthropic开源·ai技能
高洁013 小时前
知识图谱构建
人工智能·深度学习·算法·机器学习·知识图谱