开放领域分类
开放领域分类
开放域中的聊天机器人
当我们设计聊天机器人时,我们意识到会有一些我们无法处理的查询。很长一段时间以来,我们的方法是对分类器预测的意图置信度使用阈值。此阈值是我们通过查看客户的真实反馈添加的超参数。然而,我们仍然不断得到一些明确的假阳性结果 ** 域外** 查询。
这是一个糟糕的客户体验。我们对聊天机器人的目标是与聊天机器人应该处理的那些人相处得很好。但是,还要确保聊天机器人清楚地退出那些它不应该处理的查询。
聊天机器人在开放域查询中表现异常有 3 个原因 -
- 设计聊天机器人时的封闭世界假设。
- 神经网络的过度自信。
- ReLU 网络倾向于产生高置信度预测。
在本文中,我们将讨论这 3 个问题以及我们为聊天机器人实施开放域分类的策略。
封闭世界假设
Geli Fei and Bing Liu 的论文定义了封闭世界的假设——
封闭世界假设,侧重于在以下假设下设计准确的分类器 所有测试类都是已知的 在训练的时候。
大多数文本分类系统在封闭世界假设下运行。对于许多应用来说,这个假设就足够了。如果我们想将电子邮件分类为垃圾邮件或非垃圾邮件,或者如果我们想将评论分类为正面、中性或负面,封闭世界假设就足够了。
然而,对于聊天机器人来说,封闭世界的假设是不现实的。一个更现实的场景是在测试期间期望看不见的类(开放世界)。因此,聊天机器人的目标不仅仅是将聊天文本分类为多个意图之一,而且还拒绝不属于任何已知类别的文本。
典型的基于 Softmax 的多类分类系统并非旨在检测域外类别。而且,正如我们将在下一节中看到的,由于置信度分数的错误校准,置信度阈值并不是检测域外类别的最佳方法。
神经网络的过度自信
基于神经网络的分类器的准确性有所提高。但准确性的提高是以校准为代价的。神经网络的校准是输出置信度等于正确概率的概念。如果一个类的 Softmax 层的输出置信度为 0.8,并且我们有 100 个独立的预测,每个的得分为 0.8,我们预计其中 20 个预测是错误的。然而,现代深度神经网络 (DNN) 校准错误。如果在上述示例中,分数来自 DNN,那么超过 20 的预测将是错误的。
与旧的(经典的和不那么深的)相比,这种变化是在一篇论文中根据经验测量的 Chuan Guo et al .在论文中,他们表明在浅层网络(LeNet)中,网络的准确度接近于平均置信度得分。然而,在更深的网络(ResNet)中,平均置信度得分远高于准确度。作者凭经验证明,更深的网络是 ** 过度自信** .
Image from Chuan Guo et al
虽然作者没有复制文本分类的实验,但我们可以争辩说同样的现象也适用。即使在文本分类器中,DNN 的准确度提升也是以错误校准为代价的。
为了检测域外查询,我们可以对类使用高阈值。但由于阈值是一个超参数,因此了解其值的唯一方法是在虚拟代理发布后获取真实数据。因此,该值只能从负面用户反馈中获得。第二个问题是,在我们的实践经验中,我们注意到每个班级的“过度自信”程度是不同的。因此,在理想情况下,我们需要为我们在虚拟代理中支持的每个类提供一个独立的超参数。
ReLU 网络产生高置信度的预测
与这个问题相关的最后一个问题是基于 ReLU 的神经网络中的一个固有问题。这个问题在一篇数学密集的论文中讨论过 马修·海因 等。在那篇论文中,作者首先证明了基于 ReLU 的神经网络是连续分段仿射分类器。使用这个结果,他们然后证明只要一些温和的条件是真实的,一个基于 ReLU 的网络将 ** 总是** 预测误报。论文进一步证明了误报不一定接近输入空间中的训练样例。事实上,他们证明,如果你去尝试,你总会找到一个例子 ** 远处** 从该类的训练示例中,将为该类提供高置信度的预测。
最后一点证明,任何高阈值都不是消除域外类误报的充分条件。即使我们将阈值保持足够高,也总会有远离训练样本的样本具有高置信度预测。
这个问题的解决方案
我们已经确定,在封闭世界假设下,基于 ReLU 的 DNN 会做出错误的分类。由于基于 ReLU 的 DNN 固有的过度置信度,置信度分数的阈值不是预测域外类别的可靠方法。下面给出了一种典型的多类分类方法。
我们使用了论文中提出的方法 雷舒等。到 解决虚拟代理中的错误分类问题。这种方法对我们很有效,因为我们不需要额外的训练数据,也不需要改变我们使用分类器的方式。该方法的图表如下 -
在这种方法中,我们使用多个 sigmoid 代替 Softmax,从而获得多个概率分数,每个分数来自每个 Sigmoid 单元。这种配置允许我们创建一个简单的域外检测器——如果没有一个 sigmoid 超过阈值,我们将输入文本声明为域外。但是,如果多个 sigmoid 的输出高于阈值,我们选择具有最高激活的类。
该架构通过最小化所有类的累积负对数似然来进行训练。该论文使用类似于异常检测的方法来进一步微调预测。作者没有使用固定的 0.5(或备用)作为正类的阈值,而是引入了可变阈值。一个外部参数 alpha 控制这个阈值。 Alpha 是偏离均值的标准差数,仍然可以作为正类。有关详细信息,请参阅参考论文。
结论
聊天系统的用户可能不知道设计系统的局限性。他们会有一些我们没有设计聊天机器人来解决的问题。在本文中,我们探讨了设计问题并改进了聊天机器人。在新设计中,聊天机器人清楚地知道域外查询,并且可以优雅地响应这些查询。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明