有自监督和有判别力训练的域外意图检测(Out-of-Scope Intent Detection with Self-Supervision andDiscriminative Training)阅读

本文主要是介绍有自监督和有判别力训练的域外意图检测(Out-of-Scope Intent Detection with Self-Supervision andDiscriminative Training)阅读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 发表在ACL2021上面的一篇文章

论文链接:Out-of-Scope Intent Detection with Self-Supervision and Discriminative Training - ACL Anthology

代码链接:https:// github.com/liam0949/DCLOOS

Abstract

在任务型对话中域外意图检测十分重要。在训练阶段,outlier utterances 是任意和未知的,论文中介绍现有的方法主要依赖对数据分布进行假设,例如常用的mixture of Gaussians,但是会导致多步训练或设定规则,例如为离群检测设置一个可靠的阈值。

这篇论文中,作者提出了一种通过在训练中模拟测试场景来训练out-of-scope intent classififier ,这个方法不需要对数据分布进行假设,也不需要额外的处理或阈值设置。

也就是在训练阶段构造了一组pseudo outliers(伪异常值),通过利用inliner features用自监督的方式生成synthetic outliers  和 从其他开放域数据集中采样out-of-scope sentences来获得pseudo outliers

利用pseudo outliers训练一种可直接应用于测试本文任务的鉴别分类器。

Introduction

自然语言理解的第一步是intent detection(意图识别),主要目标是识别用户话语中多种多样的意图,也可以理解为是一个分类任务。然而,在训练过程中定义的意图类有时候会不能涵盖测试阶段的可能的用户意图。因此,范围外(OOD)的(或未知的)意图检测是必不可少的,它的目的是开发一个模型,可以准确地识别已知的(在训练中看到的)意图类,同时检测在训练中没有遇到的范围外的意图类。

在以往的方法中,一般来说,以往的研究方法是通过学习已知意图的decision boundaries(决策边界),然后使用一些可靠的度量来区分已知意图和未知意图来解决这个问题。

eg:margin-based  optimization objective、off-the-shell outlier detection algorithm such as LOF、阈值等。

与之前的工作相比,本篇论文提出通过明确地建模未知意图的分布,构造了一组伪范围外的例子来帮助训练过程。

我们假设在语义特征空间中,现实世界的异常值可以很好地表示为两种类型:几何上接近inliers 的: “hard” outliers 和远离内联的““easy” outliers。这两种离群值在后面有介绍。

通过在训练过程中为未知类构造pseudo outliers,形成了一个(K+1)的分类任务(K个已知类+ 1 未知类别)。

贡献如下:

  1. 提出了一种新的out-of-scope intent detection方法,通过匹配训练和测试任务,来消除训练数据和泛化的测试数据之间的差距。
  2. 提出了构造两种类型的pseudo outliers的方法。一种利用自监督方法,另外一种利用公开的辅助数据集的方法。
  3. 在四个真实世界的对话数据集上进行了广泛的实验,证明论文提出的方法的有效性,并进行了详细的消融研究。

Related Work

Out-of-Distribution Detection(分布外检测)
关于定义,可以参照下面的链接进行了解:
百度安全验证https://baijiahao.baidu.com/s?id=1716146589301072672&wfr=spider&for=pc
在open-world(开放世界)中分类非常重要。
传统的分类模型都是在一个封闭的世界中进行训练,即假设测试数据和训练数据都来自同样的分布(称作“ 分布内”,in-distribution)。
然而,模型在实际使用中总是会遇到一些不属于封闭世界的类别。
模型应当如何去处理这些数据( 分布外样本,out-of-distribution),是open-world(开放世界)领域所关注的问题。

open-world(开放世界)领域中时常能够见到如下几个任务:

 OD: Outlier Detection, “离群检测”

Outlier Detection(OD,离群检测) 的任务旨在检测出给定数据集中与其他样本显著不同的样本,其中这种不同既可以来源于covariate shift也可以来源于semantic shift。

 AD: Anomaly Detection, “异常检测”

Anomaly Detection(AD,异常检测)任务旨在找出测试集中所有偏离“预设的正常样本”的异常样本。这种偏移可能是来源于covariate shift或者semantic shift。该任务通常假设另一种偏移类型不存在。这两种不同的样本偏移类型对应着“异常检测”的两个子任务:“感知上的异常检测”sensory AD,和“语义上的异常检测”semantic AD。

 ND: Novelty Detection, “新类检测”

Novelty Detection(ND,新类检测 )的任务旨在找出测试集中不属于训练集中任何类别的“新类”样本,检测到的“新类”样本通常会为下一步增量学习(incremental learning) 提供更多的学习样本,或者作为全新的类型进行探索研究。

OSR: Open Set Recognition, “开集识别”

“开集识别”(Open Set Recognition, OSR)要求多分类器同时达到如下两个要求:(1) 对测试集中属于“已知类别“的进行准确分类;“已知类别”代表训练集中存在的类别。 (2)检测出”未知”类别, “未知类别”不属于训练集中任何类别。

OOD Detection: Out-of-Distribution Detection, “分布外检测

定义OOD Detection(分布外检测)任务,和新类识别类似,是在找出测试集中不属于训练集中任何类别的“新类”样本。但是在新类识别的基础上,同时完成多分类任务。相比于“开集识别”,“分布外检测”的训练集可以是单类别的也可以是多类别的。

解决方法

解决“广义分布外检测”中各个任务的方法。因为它们各个任务的目标大体相同,各个任务的解法自然也是相似的。解法基本分为四大类:

· Density-based Methods 基于密度估计的方法

· Reconstruction-based Methods 基于重构的方法

· Classification-based Methods 基于分类的方法

· Distance-based Methods 基于距离的方法

Out-of-Scope Intent Detection (域外意图检测)
.以前的OOD/OOS意图检测的方法通常是基于阈值的,其中模型输出一个决策分数,然后将其与一个预定义的或通过交叉验证选择的阈值进行比较。
相关的工作主要有三个分支。
  1. 使用一个confifidence score,来决定了一个话语超出范围的可能性。eg:
                    m binary Sigmoid classififiers for m known classes
                    respectively and select a threshold to reject OOD
  2. 第二组通过重建损失来识别范围外的句子.eg:  
                    build an autoencoder to encode and decode in-scope utterances
                    and obtain reconstruction loss by comparing input embeddings
                    with decoded ones.
  3. 利用异常值检测算法。                                                                                                                          eg: local outlier factor (LOF)/robust covariance estimators

Methodology

 问题定义部分,给出问题的定义:给定K个类别,未知意图检测模型去预测一句话中的意图,这句话可能包含的是已经知道的意图或者是未知域的意图。可以总结为是一个(K+1)个类别的意图。

论文作者的方法概述:

本质上是通过利用自监督方法和开放域数据来构建域外的样本从而在训练结果形成一个(K+1)-way的分类任务。同时,作者提出的方法并没有对数据分布进行假设。

接下来从representation learning(表示学习)、construction of pseudo outliers(伪异常值的构建)和discriminative training(鉴别性训练)三个方面对论文提出的方法进行阐述。

representation learning(表示学习)

在这一个部分主要是使用到了Bert这一预训练模型,将特殊分类标记[CLS]的d维输出向量作为语句u的表示。公式如下:(公式非常好理解)

 其中:

BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子(句子A)。其中还包括了一些有特殊作用的标志位:(这个可以查阅资料做一下了解)

  1. [CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
  2. [SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A和句子B 后面增加 [SEP] 标志。
  3. [UNK]标志指的是未知字符
  4. [MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。
Construction of Outliers(构建异常值)
论文中构造了两种不同类型的 pseudo outliers(伪异常值 用于训练阶段:一种是由自监督产生的 synthetic outliers(合成异常值 ,另一个是很容易获得的open-domain outliers(开放域异常值)。
Synthetic Outliers by Self-Supervision(通过自监督获得的合成异常值)
该方法假设存在的outliers在特征空间中是接近inliers的。基于这个假设提出一个自监督(self-supervised)的方法来生成  “hard” outliers(这里我理解的就是生成的伪异常值)。主要是随机选择两个inliers进行convex combination (凸组合)【此处凸组合是啥我也不清楚】来生成新的 synthetic outliers。

 公式1代表生成的异常值,\theta 是一个从均匀分布中采样的值,公式2代表生成的所有异常值的集合。

Open-Domain Outliers(开放域异常值)

该方法的假设一些容易区分的outliers是远离inliers的,因此在其他kaifang数据集上的样本由于分布不同,可以作为outliers。于是通过模拟真实世界的outliers来构造open-domain outliers。采样的数据集包括SQuaD 2.0,Yelp和IMDB等对话系统数据集。

但是 synthetic outliers在提高训练(K+1)-way的意图分类器的泛化能力方面比open-domain outliers更有效。
Discriminative Training(有判别力的训练)
使用意图标签集训练了一个(K+1)-way的分类器。同时使用了一个多层感知网络作为特征空间中的分类器。【此处我认为可以选择不同的分类器,多层感知网络可能略有些简单,同时要注意这个分类器在论文中提到是需要满足可微条件的】。最终使用一个交叉熵损失来训练模型:

Experiments

Datasets and Baselines
这部分数据集可能以后会用到,码住!
Result  and  Analysis

 Conclusion

我认为本篇论文的方法本质上是一个数据增强(data augment)的方法。主要使用了一个对域内意图(inliers)进行凸组合(convex combination)来构建outliers和采样其他公开数据作为域外意图(outliers)来进行数据增强。

思考:这种增强方法是否可以使用对比学习来代替,尤其是对域内意图进行处理的时候,使用对比学习。

这篇关于有自监督和有判别力训练的域外意图检测(Out-of-Scope Intent Detection with Self-Supervision andDiscriminative Training)阅读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384602

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX