论文笔记 - 对话系统中的 OOD (Out of Domain出域)问题

news2024/11/25 11:41:50

徐阿衡

人工智能与机器学习工程师

最近看了下 2021年关于 OOD 的几篇 paper,记录一下~

对话系统中的 domain 都是预先定义好的,而在实际应用场景中,会有很多现有系统回答不了的问题(out of the design scope),我们把系统支持的意图称为 in-domain (IND),系统不支持的意图称为 out-of-domain (OOD)OOD 是需要被拒识的。

处理 OOD 问题一般分为有监督和无监督两类方法。有监督方法相对更直接,收集好 OOD 数据,在 IND 和 OOD 上训练一个二分类器,或者直接学习一个 K+1 的分类器。然而 OOD 数据直接获取比较困难,所以有些研究是讨论怎么生成 pseudo outlier。另外,从直觉上看,IND 和 OOD 数据分布是不一致的,IND/OOD 数据极不平衡,在选择 OOD 数据时存在一定的 selection bias,很难选择到高质量有代表性的数据,所以学习的模型对没见过的 OOD 数据很难泛化。

而无监督方法往往在训练阶段只利用 IND 数据来学习 IND 的 decision boundaries(如 LMCL,SEG),在测试阶段使用额外的检测算法来检测 OOD。这类方法致力于更好的对 IND 数据建模,以及探索更好的检测方法。但由于训练和测试阶段的目标并不一致,容易对 OOD 数据产生 overconfident 的后验分数。下面是三类常见的检测方法:

  • Probability Threshold: 利用 IND 模型的输出概率分布来决定 OOD,如 Maximum Softmax Probability (MSP),或者对输出的分数进行若干操作转化如 ODIN, Entropy,也有一些是在 reconstruction loss 或者 likelihood ratios 上设定阈值
  • Outlier Distance: 异常检测的方法,看 outlier 到 in-scope 集合的距离是否足够远。通常是在 embedding function 或者距离函数上做文章,如 Local Outlier Factor (LOF)、马氏距离等
  • Bayesian Ensembles: 在 16-18 年的工作比较多,近两年没怎么看到,通过 IND 模型输出的方差来决定是否是 OOD,如通过 ensemble / dropout 等方式看模型输出的方差如果够大,就认为是 OOD。

总的来说,各类方法各有优缺点,并没有突破性的进展,依旧是道阻且长。

ACL 2021: Enhancing the generalization for Intent Classification and Out-of-Domain Detection in SLU

无监督方法。不需要额外收集数据,通过在最后一层线性层加上 DRM 模块就能实现。

模型

依据:

编码器对 query 进行编码得到 hidden state h,两个线性层得到(1)中的分母 domain_logits  和分子 classification logits ,相除得到新的 logits ,用  计算 IND 分类的损失,用  计算另一个损失 L_domain,作用是使得  接近 1(训练集里只有 IND),sigmoid 之前先对 进行裁剪,避免 的值过大,影响训练。两个损失相加得到最终损失。 

参数可以从 2.2-4 之间调,sigmoid(2.2) => 0.9,sigmoid(4) => 0.982

预测

OOD 的预测有 confidence-based feature-based 两类方法

Confidence-based Methods

基于 softmax output 来输出 OOD 的预测分数

Feature-based Methods

这里提到了马氏距离,马氏距离修正了欧式距离中各个维度尺度不一致且相关的问题。马氏距离计算点与聚类(分布)之间的距离,在多维数据集异常检测,高维数据集分类应用中表现出色。

可以用下面两张图来理解欧式距离与马氏距离,如果 X, Y 两个维度不相关,欧氏距离可以很好的判别Point1和Point2距离聚类中心黑点的远近,而如果各维度不满足独立同分布的条件时,如右图,欧氏距离就无法很好的表征Point1和Point2谁是异常点了。因为两个点与中心的欧氏距离相等。但实际上只有蓝色点更接近该聚类。下图来自这篇博客:https://blog.csdn.net/wokaowokaowokao12345/article/details/115765116

简而言之,马氏距离将变量按主成分进行旋转,让维度间相互独立,然后进行标准化,让维度同分布。最后基本公式如下,x - μ 是样本到样本均值间的距离,Σ 是多维随机变量的协方差矩阵,如果协方差矩阵是单位向量,也就是各维度独立同分布,马氏距离就变成了欧氏距离。

对应到这篇 paper,

仅用最后一层 就有不错的效果了,具体的看 paper 吧。

作者额外提出了 L- Mahalanobis:

对 BERT 最后输出的每一层结果进行计算,�� 是第 l 层,�� 是最后一层。

不同 detection score 的效果:

ACL 2021: Out-of-Scope Intent Detection with Self-Supervision and Discriminative Training

这一篇通过构建一系列的 pseudo outliers,然后把 intent classification 和 OOD 两个任务抽象为一个 K+1 的分类任务来做

Outliers 分为两种:

  • hard outliers:和 inlier 很近,难以区分。可以通过不同各类别 inlier 的 feature 的 convex combination 来自监督的生成。如下, 和  是从不同类别采样的两个输入的表征,从均匀分布 U(0,1) 中采样。在 ablation study 里显示这部分带来的收益更大。

  • easy outliers:和 inlier 较远,与 kown intent 很不相关,可以从 open_domain 数据集中抽取

训练和正常的预训练模型做分类任务一样。

要注意的是 outlier 的数量对最终效果有较大影响。实验里的数据比例 # of inliers : # of open-domain outliers: # of self-supervised outliers = 1: 1: 4

这篇的实验设置是用 k% 个 intents 作为 known intents 来训练,剩下的作为 unknown intents 作为测试集。

EMNLP 2021: GOLD: Improving Out-of-Scope Detection in Dialogues using Data Augmentation

弱监督方式,在少量有标签的 OOD 数据(seed data)以及一个辅助的外部数据集 (source data)上进行数据增强,产生 pseudo-OOD data。任务是 in-domain/out-of-domain 二分类。

两种增强的方法:

  1. 在 OOD seed data 和 source data 的 embedding 空间里,对每个 seed 数据,通过 cosine 距离,从 source data 中找到 d 条与 seed 相似的数据,文中讨论 d= 24 对各个 source data 都是最优解
  2. 对话增强方法:seed data 是多轮对话数据,通过把 dialogue 里任意一条 utterance 替换为 source data 的 matched utterance 来构建新的 dialogue

上面构建的增强数据有较大的噪声,一些数据与 IND 数据可能有 overlap,所以有个过滤机制来保证 candidates 是最有可能的 OOD。通过 baseline detector 的 ensemble 方法来进行投票选出最优的 OOD。

这篇的两个前提条件是很重要的,一是要有合适的 seed data,如果 seed data 数量减低一半效果会大打折扣(论文里限制 OOD 数量为 IND 样本的 1%),还有一个source data 的选取,需要和 target data 不同,但又不能完全不相关。构建的最理想的 pseudo-label 当然是在 IND 和 OOD 的 decision boundary 上了。

ACL 2021: Modeling Discriminative Representations for Out-of-Domain Detection with Supervised Contrastive Learning

idea很简单,有监督对比学习(SCL) + 交叉熵(CE)的方法,使用对抗攻击的方法实现正样本的增强。希望同一个意图下的样本互相接近,不同意图下的样本互相远离。有监督对比学习的表示学习方法可以通过最大化类间距离和最小化类内方差来提升特征的区分度。

属于无监督的OOD检测方法,训练阶段用IND数据,测试阶段用 MSP/LOF/GDA 来检测 OOD。

对比学习损失:

对抗攻击的样本增强,用 FGV 方式计算扰动

NACCL 2021: Adversarial Self-Supervised Learning for Out-of-Domain Detection

这篇和上面一篇都是美团发的文,模型上一篇更简单,实验指标也是上一篇更好看。

用 IND 数据和 CL loss 训练一个分类器,对 unlabeled data 进行对比学习,用 back translate 做正样本数据增强,

Back-translation 方法得到正样本对 (��, ��),对抗攻击得到 (�����, �����),实验了四种对比学习的设置

  • Standard- to-Standard (S2S),正样本对是 (��, ��)
  • Adversarial-to-Adversarial (A2A),正样本对是 (�����, �����)
  • Standard- to-Adversarial (S2A),正样本对是 (��, �����) / (��, �����)
  • Dual Stream (DS),正样本对是 S2S 和 A2A 相结合

最后是 DS 效果最好,也就是上图的方法,对比损失如下:

本文使用  WPL/s 发布  @GitHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

locust学习教程(3)- 编写locust脚本

前言 一句话总结:并发的用户执行了第一类测试任务、第二类测试任务,设置所有类的测试前置、测试后置,设置每一类测试任务的测试前置,测试后置。 1、概念 1.1、一个完整的脚本示例 from locust import task, HttpUser, constant…

ASEMI代理光宝光耦LTV-50L的工作原理及应用领域

编辑-Z 本文将对光耦LTV-50L进行详细的介绍,包括其工作原理、性能特点、应用领域以及注意事项。通过阅读本文,您将对光耦LTV-50L有更深入的了解,以便在实际应用中更好地发挥其作用。 1、光耦LTV-50L的工作原理 光耦LTV-50L是一种光电器件&a…

uni-table 表格的封装

文章目录 项目场景:实现效果创建表格组件文件页面中使用实现方法 项目场景: 在实际的应用场景中,表格是一个非常常见的需求,如果每一个的表格都自己去手写的话非常的浪费时间,并且当中的代码冗余量非常大,…

Python--元组

Python--元组 <font colorblue>一、创建元组<font colorblue>二、访问元组元素<font colorblue>三、元组的增、删、查、改<font colorblue>1、添加元素<font colorblue>2、删除元素<font colorblue>3、查找元素<font colorblue>4、修…

甄品进化 | 燕小千智能助手,用AIGC撬动企业知识宝藏

背景&#xff1a;2022年AIGC&#xff08;AI-Generated Content,人工智能生成内容&#xff09;这个新概念横空出世&#xff0c;不仅被消费者追捧&#xff0c;而且备受投资界的关注&#xff0c;更是被技术和产业界竞相追逐。2022年12月&#xff0c;OpenAI的大型语言生成模型ChatG…

Android 60问60答 (一篇复习整个Android)

Android 60问60答 &#xff08;一篇复习整个Android&#xff09; 有哪些移动端平台&#xff1f; 厂商开发平台&#xff1a; los 黑莓&#xff08;blackBerry&#xff09; 第三方私有平台&#xff1a;第三方开发供移动设备厂商使用 WindowsMobile 免费开源平台&#xff1…

微信小程序克隆到运行

1.git克隆 2.安装依赖 npm i 如果遇到卡在node lib/install.js 一直不进行 重新运行安装&#xff1a;(https://www.python100.com/html/3716RLP8FZM2.html) npm install --ignore-scripts理解npm install --ignore-scripts 3.安装完运行 npm run serve如果报错&#xff1a; …

基于改进多目标粒子群算法的配电网储能选址定容——附Matlab代码

目录 摘要&#xff1a; 主要内容&#xff1a; 程序思路&#xff1a; 储能选址定容优化模型&#xff1a; &#xff08;1&#xff09;节点电压波动&#xff1a; &#xff08;2&#xff09;负荷波动&#xff1a; &#xff08;3&#xff09;储能系统容量&#xff1a; 改进的…

2023年最好用的办公AI工具,让你工作效率提升10倍!

2023年是AI工具大爆发的一年&#xff0c;在效率办公领域&#xff0c;同样涌现出了很多优秀的AI办公工具&#xff0c;小编亲测了几款&#xff0c;都是宝藏好用的App&#xff0c;以下排名不分先后&#xff0c;一起来看看吧&#xff01; AI办公工具哪个好 GitMindNotion AI酷表C…

智能优化算法之黏菌优化算法(SMA),附matlab代码

黏菌算法是2020年提出的一种智能优化算反&#xff0c;主要模拟的是自然界中多头绒泡菌在不同食物浓度下的觅食行为以及状态变化。黏菌主要分泌酶来消化食物&#xff0c;黏菌的前端延伸成扇形&#xff0c;后端由相互连接的静脉网络包围。环境中不同浓度的食物影响着黏菌静脉网络…

C语言数据在内存中存储---整型提升练习

前言&#xff1a;学习了C语言中的整型提升&#xff0c;总是感觉听的时候很明白&#xff0c;但当自己做题的时候&#xff0c;又总是遗漏了哪一步。自己的感悟&#xff1a;整型提升步骤以及原理都一样&#xff0c;就是把步骤记清楚一步一步的来就行。因此通过下面的一道题来每日复…

【正点原子STM32连载】第三十七章 485实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第三…

【Java.SE】数组的定义与使用

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a;Java.SE&#xff0c;本专栏主要讲解运算符&#xff0c;程序逻辑控制&#xff0c;方法的使用&…

【机器学习】十大算法之一 “随机森林”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

Error in `taosdump‘: malloc(): memory corruption: 0x0

在使用taostools的taosdump导出数据时&#xff0c;遇到如下问题&#xff1a; 解决步骤如下&#xff1a; 先看导出目录下的内存是否足够&#xff0c;不够的话&#xff0c;换其他目录导出如果在内存充足的情况下&#xff0c;出现上述问题那么可能是taostools版本不对&#xff0…

Agilent8564EC频谱分析仪

安捷伦8564EC频谱分析仪13145876435 8564EC 是安捷伦的 40 GHz 频谱分析仪。频谱分析仪测量已知和未知信号的频谱功率。频谱分析仪收集信息&#xff0c;例如输入信号与其频率相比的幅度。作为频率分析仪&#xff0c;频谱分析仪的主要用途是记录和分析电输入信号以及其他信号的频…

OWASP之CSRF跨站请求伪造

CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造 文章目录 一、CSRF定义二、CSRF危害三、CSRF漏洞构成1.漏洞风险存在2.用户登录受信任网站A&#xff0c;并在本地生成Cookie3.攻击者伪装数据操作请求的恶意链接或者页面4.诱使未登出用户主动访问或登录恶…

新式茶饮头部品牌「古茗茶饮」联手企企通,打造采购数字化新思路

导读 企企通在采购与供应链领域积累了丰富的项目开发经验&#xff0c;是国内一站式采购数字化管理平台领军企业之一&#xff0c;其售前、商务、项目人员都是这个赛道最专业的。该平台的建设可以自动化处理采购链路多个节点重复性任务&#xff0c;帮助我们提高采购效率&#xf…

向日葵× 实在RPA擦出AI的火花,贝锐与实在智能官宣战略合作

6月19日&#xff0c;实在智能&#xff08;Intelligence Indeed&#xff09;与贝锐&#xff08;Oray&#xff09;正式宣布达成战略合作。实在智能作为国内AI准独角兽企业和超级自动化平台提供商&#xff0c;与国内领先的SaaS远程连接解决方案提供商贝锐的实力“牵手”&#xff0…

基于Python的电影票房爬取与可视化系统的设计与实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…