【NLP实战笔记】对话系统开放意图检测与发现算法总结

本文主要用于归纳整理与对话系统相关的开放意图检测与发现相关的3篇论文。

本文主要参考:https://hanleizhang.github.io/

相关资料介绍:http://aitime-lundao.oss-cn-beijing.aliyuncs.com/AitimeReport/20210312/aaai4.pdf

------------------第一菇 - 研究背景及现状------------------
现阶段的机器学习技术的突破创新,大多还是停留在封闭的知识域内。然而在真实的工业落地场景中,大量的应用场景是开放域的,即,无法预先完全定义线上模型将会面对的数据分布,大量的真实数据可能都不在目标学习范围之内,因此,如何及时发现这些新知识,就成为最新的前沿研究热点。本文将主要聚焦于探讨,\color{red}{任务型对话系统}中的开放意图检测与发现问题。

任务型对话系统中,能否准确识别用户的意图,直接决定了整套对话系统的服务质量。然而,在真实的工业落地场景中,用户的意图总是会超出预设的范围,大量的域外话术冲击着模型,导致系统的识别率低,准确率低,因此,检测并发现用户开放意图并加以有效利用具有很大的商业前景,能极大的提高整套系统的商业落地价值。

但是具体来说,开放意图的发现其实也可以细分为2个子问题,

1)如何将开放意图与已知意图分离?
a. 本质上是个开放领域的分类问题
b. N类已知意图,开放意图全部归为一类
c. 训练集只包含已知意图

意图分类.png

2)如何发现开放意图的细粒度类别?
a. 半监督聚类问题
b. N类已知意图,M类细粒度开放意图
c. 训练集包含少量有标注已知意图+大量未标注意图

开放意图类别.png

------------------第二菇 - 论文解读------------------

01. Deep Open Intent Classification with Adaptive Decision Boundary

论文链接:https://arxiv.org/pdf/2012.10209.pdf

相关代码:https://github.com/HanleiZhang/Adaptive-Decision-Boundary

摘要

在对话系统中,开放域的意图分类是一个富有挑战性的问题。一方面,系统首先得确保“已知”意图的准确识别,另一方面,在没有先验知识的前提下,系统需要去发现那些“未知”的意图。现有的模型需要去寻找合适的决策边界(decision boundary)来平衡对“已知”和“未知”意图的识别能力。在本论文中,我们提出了一种后处理方法来自适应的学习决策边界,该边界能更好的用于开放域的意图分类。我们首先使用了带标签的意图分类数据来预训练模型。然后,我们在训练好的特征辅助下,针对每一个“已知”意图,来自适应的学习决策边界。具体实践过程中,我们还提出了一种新的损失函数来平衡“经验风险”和“开放域风险”(即,同时兼顾“已知”和“未知”意图的识别能力)。该方法不需要未知意图的标签数据,并且模型的架构也是可以更改的。另外,我们惊喜的发现,该方法在只有少量“已知”意图的情况下,依然有很好的表现。从3个基准数据集的测试实验结果反馈来看,我们的方法相比于现有的方法取得了巨大的提升。

背景介绍

在任务型对话系统中,具备发现用户说的是“开放域”意图(open intent)这个能力是十分重要的。如下图所示,


image.png

我们已经预先定义好了2个意图(book flight, restaurant reservation)然而,还有更多的话术是我们系统暂时不支持的(与现有意图没有关联性),因此我们需要尽可能的将,“已知”意图和“开放域”意图进行区分。一方面,甄别出这些“开放域”的意图能减少错误回答的情况,另一方面,汇总收集这些“开放域”的意图也能聚焦发现更多用户的潜在需求。

我们将“开放域”的意图分类,当作是,n+1类别的分类任务,其中,n就是“已知”意图的个数。整个任务的核心目标只有2个,
1)准确识别出“已知”意图的数据,并准确分类到他们所属的意图类别。
2)甄别出“开放域”意图数据,即将这些数据识别分类到第n+1个类。

研究现状

现有的一些方法都聚焦于去设计一个专门的域外分类器来甄别这些“开放域”的意图数据,但是这些分类器都需要提前预设一批负样本来选择合适的决策边界。并且,这还是一个耗费人力的活,因为需要人工参与去判断这些阈值的选择是否合理,并且,受到你参与训练的负样本所限制,往往你换一批负样本,可能整个选择的条件就都变化了。我觉得核心问题还是,这些基于统计数据的阈值选择方法,并没有去倒逼模型,真正的学会区分“已知”意图和“开放域”意图。

主要方法

先放一张图,来概览整个方法的流程框架,


image.png

步骤1. 意图表征与预训练方法

利用Bert来抽取每一句话的深度意图表征,经过12层Transformer的编码后,取每一个词表征的平均池化作为句向量(注意这里不是只取第一个词)。然后,将其通过一层全连接层,获得意图表征。因为我们缺少“开放域”意图的标签数据,所以我们先用这一部分带标签的“已知”意图来预训练我们的模型,训练目标比较简单,就是分类交叉熵损失,以上步骤总结如下图所示,


image.png

步骤2. 决策边界学习

根据过往的资料调研,球形的决策边界能最大程度上的减少“open space”风险,因此,本文也继续沿袭这一思路。首先我们需要计算出每一类意图的“簇中心”,根据上一步提取出的每一句话的意图表征,我们对属于同一类意图(记住哦,对于“未知”的意图,他们现在是一个类别)的句子的意图表征取平均,即代表,该类的,“簇中心”,如下,


image.png

然后对于每一类意图的球形决策边界,我们希望满足,
∀z_i ∈Sk, ‖zi −ck‖^2 ≤∆k
即,我们希望该意图下的所有数据,都能被包含在这个,以c_k为中心,∆k为半径的球形空间内。
其中,这个半径,∆k,就是第二步我们需要利用深度神经网络去学习的参数,为了令其可微,我们还采用了softplus激活函数,来做了一层映射,
∆k = log(1 + e^∆k)
利用softplus这个激活函数的好处总结如下,
1)可以求导,反向传播的时候学习到这个参数。
2)可以保证学到的半径,∆k一定是大于0的。
3)也兼顾了ReLU的线形特征(其实他本身就是ReLU的平滑版本),并且允许大数值。

上述表述过程,可以总结如下图,


image.png

然后,根据我们上述的定义,我们可以针对性的设计出一个,计算边界的损失函数。
比如,
1)当, ‖z_i −c_yi ‖_2 > ∆yi,的时候,该样本就远离了其本该属于的类别簇中心,肯定是希望模型往近了的方向优化更好,这样才能涵盖该样本。(即,考虑准确率)
2)当,‖z_i −c_yi ‖_2 < ∆yi,的时候,该样本就在这个类别的边界范围内,但我们会希望这个边界范围尽可能的往外扩,这样可以更多的去涵盖本应识别的样本(否则,会出现大量的“未知”意图,即,考虑识别率)

损失函数表述如下图所示,


决策边界.png

当我们训练出合理的决策边界以后,就可以利用每句话的表征与各个质心的距离来判断,该句是否为“开放域”意图,如果不是的话,也能同时得到,该句话所属的意图(与哪个质心的距离最近),如下所示,


判别公式.png

主要贡献

各实验结果,直接参考原始论文即可。
看完整篇论文,可以得出,本文的主要贡献主要集中在2个方面,
1)针对“开放域”意图的发现,巧妙的转化为,n+1的分类问题。
2)提出了一种训练,决策边界的方法,减少了大量的人工介入干预过程。
a. 定义球形决策边界,通过平衡经验风险和开放空间风险学习紧凑的决策边界。
b. 无需开放域样本参与,自动学习决策边界避免复杂调参。
c. 允许任意神经网络分类器,在不修改模型架构的情况下检测开放意图。

------------------第三菇 - 其他OOD检测方法------------------
另附4篇与OOD检测相关的文章总结,

【腾讯文档】开放意图检测方法
https://docs.qq.com/mind/DVFd1RXlYUmhYRk9O

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容