【论文解读】Dual Contrastive Learning:Text Classification via Label-Aware Data Augmentation

本文提出了一种双重对比学习(DualCL)框架,结合有监督学习和标签感知的数据增强,应用于文本多分类任务。在低资源环境下,这种方法能有效利用标签信息,提高分类精度。通过在多个文本分类数据集上的实验,DualCL显示出优于传统对比学习和交叉熵损失函数的表现,特别是在低资源设置中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🍥关键词:对比学习、有监督学习、文本多分类、数据增强

🍥发表期刊:arXiv 2022 

🍥原始论文:[2201.08702] Dual Contrastive Learning

🍥代码链接:hiyouga/Dual-Contrastive-Learning

北航出了一篇比较有意思的文章,使用标签感知的数据增强方式,将对比学习放置在有监督的环境中 ,并将其运用到多类文本分类中,在低资源的环境中取得不错的效果。让我们来看看这篇论文

Abstract

对比学习在无监督环境下通过自我监督在表征学习中取得了显著的成功。然而,将对比学习有效地应用于监督学习任务仍然是实践中的一个挑战。在这项工作中,我们引入了一个双重对比学习(DualCL)框架,它同时学习输入样本的特征和分类器的参数。具体而言,DualCL将分类器的参数视为与不同标签相关联的增强样本,然后利用输入样本和增强样本之间的对比学习。对五个基准文本分类数据集及其低资源版本的实证研究表明,分类精度有所提高,并证实了学习DualCL的区分表示的能力

一、Introduction

传统的对比学习一直使用在无监督的环境中,具体来说,无监督的对比学习主要使用了一个损失函数,这可以使得同一个例子的的不同观点表示相近,而不同例子的表示不同。最近,对比学习被证明可以有效的同时实现alignment和uniformity

在有监督的环境中,虽然已经有人进行了研究,但是成果颇微,已有的成果其分类器和特征是分开学习。因此本篇论文希望在有监督的环境中开发一种更加自然的对比学习方法,每获得一个样本x后,它可以同时学到该样本的特征表示z\epsilon R^{d}​和分类器\theta \epsilon R^{d*k}​(本文设计了一种one example分类)

θ设计的比较有意思,它不仅仅是分类器,也是标签感知的数据增强样本集,随后作者对表征和分类器对比学习,直观的描述如图所示

可以明显的看到标准对比学习不能利用标签信息,而DualCL可以有效利用标签信息对文本进行分类

总体来说,文本的主要内容如下

  • 提出了Dual Contrastive Learning(DualCL),更自然的运用在有监督环境中
  • 引入了标签感知的数据增强方式来获得样本的多个视图
  • 在5个全资源和低资源版本的的文本分类数据集上验证了DualCL的有效性

二、Preliminaries

考虑一个具有K类的文本分类任务,假设给定的数据集包含了N个样本,x_{i}\epsilon R^{L}​是由L个单词组成的输入句子,对应的标签为y_{i}​。z_{i}​为x_{i}​的标准化表示,z_{j(i)}​为第i个样本的增强样本,A为负样本集合。标准的对比学习任务正负样本的的构造方式为每个样本只有一个增强样本,其余的N-2项都是负样本,其对比损失函数如下

从损失函数角度看,要使Loss最小化,即最大化log后面的项,即最大化分子和最小化分母,直观的讲,分子分母项分别为样本与正、负样本之间的相似性,即拉进正样本,推远负样本。

随后有改进版的对比学习,其构造正负样本的方式为将同一类别的样本视为正样本,不同类的样本视为负样本,P为正样本集合,其损失函数如下

三、Dual Contrastive Learning

3.1 Label-Aware Data Augmention

本论文使用了标签感知的数据增强方式来获取训练样本的不同视图,具体做法是将标签与文本整合输入到Bert Encoder中(将标签输入到Bert中2021年有一篇论文也有这样的做法Fusing label Embedding into BERT An Efficient Improvement for Text Classification),随后会获得整个文本的特征表示即[CLS]和每个标签输出的token,假设输入有K个标签,那么输出的标签集合即分类器\theta\epsilon R^{d*K}​,对于包含多个单词的标签,采用token特征特征的平均池化方法。因为每个标签token都融合了文本信息,所以\theta _{i}​的每一列\theta _{i}^{k}​都是增强样本,每个样本都获得了K+1个视图

3.2 Dual Learning Loss

在获得了样本的多个视图之后,就可以使用这些视图来进行对比学习。对偶对比学习主要设计了两个对比损失函数,两个对比为下图中的两个橙色框。eCLS为该样本的特征表示,ePOS和eNEG为该样本的标签token。该对比学习的正负样本设计思想为,确定一个样本的文本序列,若其真实标签为POS,则所有其他样本的ePOS为正样本,而非ePOS为负样本。此外,确定一个样本真实标签ePOS,所有POS样本的CLS为正样本,非POS样本的CLS为负样本

 设\theta _{i}^{*}​表示x_{i}​的ground-truth对应的标签,A为除去当前样本的所有其他样本集合,P为正样本集合,z_{i}​为样本表征。

以上图中上位置的橙色框为例,固定标签\theta _{i}^{*}​,定义以下的对比损失

 以上图中下位置的橙色框为例,固定表征z_{i}​,定义以下的对比损失

Dual的损失为将二者组合 

 3.3 Joint Training & Prediction

在训练上,作者使用了一个改进版的交叉熵

最终的损失函数为交叉熵加上与超参数λ调节的对比损失函数

 直观的表示如下图所示

 在分类方面,作者想更好的利用监督信息,因此设计了one-example分类器,对每一个样本,它都会生成标签token集合,而这token集合就是分类器,将表征与每一个标签token进行相似度计算,哪个值最高,它就属于哪一类

 3.4 Theoretical Justification of DualCL

这里给出理论证明,来证明为最小化DualCL Loss等价于最大化输入和标签之间的户信息

四、Experiments

使用了5个文本数据集,包括了多分类文本数据集

 模型选了经典的BERT和RoBERTa,方式中CE为交叉熵,SCL为标准对比损失,CL为自监督对比损失,Dual w/o 为不使用损失函数

 实验结果上

  • 除了RoBERTa +(CE+CL)的组合在TREC数据集上效果较好之外,其他的Bert+DualCL组合在所有数据集上的表现效果最好。
  • 具体来说DualCL在BERT和RoBERTa上的平均改善率分别为0.46%和0.39%
  • 眼前一亮的是DualCL在低资源环境中取得了不错的效果,具体来说在BERT和RoBERTa上的平均改善率分别为0.74%和0.51%

tSNE图可视化

 由于在低资源中的表现较为突出,作者专门去做了低资源环境下的实验,选取每个类的5、10、30等样本,测试其准确率,结果发现相比于单一的交叉熵损失函数,DualCL的效果都比较好,而其中DualCL w/o为不适用DualCL损失函数的DualCL,其效果也比交叉熵好,这其实从一个侧面角度反映了标签感知的数据增强方式的有效性

 为了验证DualCL能否有效的捕获句子关键信息的能力,作者计算了[CLS]的中的表征于每个单词之间的注意力得分。

五、Conclusion

对比学习一般用于无监督的环境中,若用在有监督的环境中那必须使用标签信息,随后使用标签感知的数据增强方式来有效的利用标签信息。最终在低资源的文本分类任务中取得了不错的效果。因此在低资源、多类文本分类、有监督环境中具有一定的借鉴意义。

此外,关于文中构造的对比模型对象是文本和标签,博主也尝试了文本和文本、标签与标签、文本和标签+文本与文本、文本与标签+标签与标签,其效果也不逊于原论文的方法

### 基于类原型对比学习在多标签和细粒度教育视频分类中的应用 #### 类原型对比学习的核心概念 类原型对比学习是一种通过构建类别级别的代表性向量(即类原型),并利用这些原型之间的关系来进行特征学习的方法。这种方法能够有效捕捉类间差异以及类内一致性,从而提升模型的泛化能力[^1]。 具体而言,在多标签场景下,每个类别的原型可以通过该类别下的所有样本嵌入向量计算得到。通常采用均值池化的方式生成类原型 \( C_k \),其中 \( k \) 表示第 \( k \) 个类别: \[ C_k = \frac{1}{N_k} \sum_{i=1}^{N_k} f(x_i), \] 这里 \( N_k \) 是属于类别 \( k \) 的样本数量,\( f(x_i) \) 则是输入样本 \( x_i \) 经过编码器提取后的特征向量[^2]。 #### 对比损失函数的设计 为了实现更有效的特征表示学习,对比学习框架引入了一种特殊的损失函数——InfoNCE Loss (Information Noise Contrastive Estimation)。这种损失函数旨在最大化正样本对之间的相似性,同时最小化负样本对之间的相似性。对于给定查询样本 \( q \),其对应的正样本集合记作 \( P(q) \),而负样本集合则为 \( N(q) \),那么 InfoNCE Loss 可定义如下: \[ L_{contrastive}(q) = -\log \left( \frac{\exp(\text{sim}(q, p)/\tau)}{\sum_{n \in N(q)} \exp(\text{sim}(q,n)/\tau)+\sum_{p' \in P(q)} \exp(\text{sim}(q,p')/\tau)} \right). \] 这里的 \( \text{sim}() \) 函数通常是余弦相似度或者欧氏距离,参数 \( \tau \) 称为温度超参,控制分布的锐利程度。 #### 多标签与细粒度教育视频分类的应用挑战 当应用于多标签和细粒度教育视频分类时,主要面临以下几个方面的挑战: - **标签不平衡**:某些细粒度类别可能拥有远少于其他类别的标注数据,这会使得训练过程中难以形成可靠的类原型。 - **语义重叠**:不同类别之间可能存在较高的语义关联性,增加了区分难度。 - **时间依赖特性**:相比于静态图片,动态视频还包含了帧间的时间序列信息,这对建模提出了更高要求。 针对上述问题,可以考虑以下改进措施: 1. 引入自适应权重机制调整各类别的重要性; 2. 设计专门的模块捕获跨帧间的长期依赖关系,比如使用 LSTM 或 Transformer 结构; 3. 融合外部知识源辅助优化决策边界。 #### 实验验证与效果分析 实验表明,在多个公开基准数据集上,基于类原型对比学习的方法显著优于传统监督方法以及其他无监督预训练方案。特别是在低资源环境下,由于充分利用了有限样例内部的信息结构,性能优势更加明显。 ```python import torch.nn.functional as F def info_nce_loss(query_embeddings, positive_embeddings, negative_embeddings, temperature=0.5): """ Compute the contrastive loss using InfoNCE formulation. Args: query_embeddings (Tensor): Query embeddings of shape [batch_size, embedding_dim]. positive_embeddings (Tensor): Positive sample embeddings of same shape. negative_embeddings (Tensor): Negative samples with shape [num_negatives * batch_size, embedding_dim]. temperature (float): Temperature parameter controlling sharpness. Returns: Tensor: Scalar value representing computed loss. """ # Normalize all vectors to unit length queries_norm = F.normalize(query_embeddings, dim=-1) positives_norm = F.normalize(positive_embeddings, dim=-1) negatives_norm = F.normalize(negative_embeddings, dim=-1) logits_pos = torch.sum(queries_norm * positives_norm, dim=-1).unsqueeze(-1) / temperature logits_neg = torch.matmul(queries_norm.unsqueeze(1), negatives_norm.T.permute(0, 2, 1)) / temperature full_logits = torch.cat([logits_pos, logits_neg], dim=-1) labels = torch.zeros(full_logits.shape[:2]).to(logits_pos.device).long() return F.cross_entropy(full_logits.view(-1, full_logits.size(-1)), labels.view(-1)) ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北村南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值