一、对比学习概念
对比学习是一种特殊的无监督学习方法
。
旨在通过拉近相关样本的距离
并且推远不相关样本的距离
,来学习数据表示
。
通常使用一种高自由度、自定义的规则来生成正负样本
。在模型预训练中有着广泛的应用。
二、对比学习小案例
对比学习主要分为三个模块:
-
正负样本的定义
-
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}