论文题目:Modeling Discriminative Representations for Out-of-Domain Detection with Supervised Contrastive Learning
论文链接:
代码链接: https://github.com/parZival27/supervised-contrastive-learning-for-out-of-domain-detection
Abstract
传统的交叉熵损失(cross-entropy loss)只关注一个样本是否被正确分类,而没有明确区分不同类别之间的边界。本篇论文针对这个问题进行了解决,提出了一个有监督的对比学习目标(supervised contrastive learning objective)【SCL】,通过将属于同一类的域内意图集合起来来最小化类内方差,并通过将来自不同类的样本拉开来最大化类间方差。
除此之外,采用对抗性增强机制(adversarial augmentation mechanism)来获得潜在空间(latent space)中样本的 pseudo diverse views。
Introduction
从用户查询中检测域外(OOD)或未知意图(unknown intents)是面向任务的对话框系统中的一个重要组成部分.。
与正常的意图检测任务不同,OOD意图检测不知道实际场景中未知意图的确切数量,也几乎不能注释大量的OOD样本。
以往OOD检测方法一般可分为两种类型:Supervised OOD detection (有监督OOD检测)和无监督OOD检测
总体来说,论文的贡献有下面三个方面:
(1)是第一个将监督对比学习应用于OOD检测。
(2)与cross-entropy(CE)损失相比,作者提出的SCL+CE可以最大限度地提高类间方差,最小化类内方差,以学习区别性语义表示。
(3)在两个公共数据集上的大量实验和分析证明了作者提出的方法的有效性。
Methodology
Overall Architecture
(1)首先使用 CE 或者 SCL+CE objectives 在训练阶段训练一个域内意图分类器。
(2)在测试阶段提取了一个测试样本的意图特征,并使用检测算法MSP、LOF或GDA来检测OOD。
Supervised Contrastive Learning
![](https://i-blog.csdnimg.cn/blog_migrate/b199c9c61675ccb5f14dd13e5fa5add6.jpeg)
代表域内样本
对应的意图标签。
代表经过LSTM 或者BERT 编码过得意图表示。
代表训练样本的数量。
是一个温度系数(temperature factor)
表示第j个类的权重矩阵。
2、CE的改进版本 large margin cosine loss (LMCL)
m 是 cosine margin(余弦边缘) 。与CE相比,LMCL在negative class上增加了一个 normalized decision margin(标准化的决策边界),使模型明确地区分正类和负类。
3、a supervised contrastive learning objective (SCL)
目的:最小化类内方差,最大化类间方差。
表示一个batch中与
具有相同标签的示例总数,l 是一个指示器函数(indicator function)。同时,只对域内数据进行SCL。SCL的目标是将属于同一类的IND意图集合在一起,并将来自不同类的样本拉开,这有助于识别决策边界附近的OOD意图。
首先使用SCL对意图分类器进行预训练,然后使用CE或LMCL进行微调。
Adversarial Augmentation
【这一部分没有特别理解】!!!
数据增强对于对比学习有重要意义,可以应用对抗性攻击生成pseudo positive samples(伪正样本),以增加对比学习的the diversity of views(观点多样性)。
表示最坏情况下的扰动,
表示意图分类器的参数,
表示给定的样本,
表示扰动的规范边界。
应用Fast Gradient Value 【快速梯度值(FGV)】来近似扰动:
对 进行归一化,同时使用一个
来保证近似值的合理性。
最后,就可以得到latent space中的的 pseudo augmented samples(伪增强样本) 。
生成的伪样本被用来在SCL中增加每个锚点(anchor)的positive views。
Experiments
Datasets
同时作者还进行了一些了的实验来分析相应的结果,具体可以阅读论文。
Conclusion
通过对域内数据学习区别性语义意图表示,提出了一种新的监督对比学习损失(SCL)。
SCL的目标是通过将属于同一类的意图聚集在一起来最小化类内方差,并通过将来自不同类的样本拉开来最大化类间方差。
思考:将对比学习应用于OOD意图检测的想法很新颖,后续是否可以采用一下别的方法进行改进?【可以联系前面写的两篇博客】