
摘要
意图识别是对话系统中的关键组成部分,其目标是将用户语句分类至预定义的多个意图类别之一。要构建一个高效的意图识别器,前提条件是拥有一个标注了所有可能用户意图的训练数据集。然而,即便领域专家在系统设计阶段也难以预见到所有潜在的用户意图;在实际应用中,往往需要从用户语句中实时、逐步地推断出新的意图。因此,对于任何现实世界的对话系统而言,意图数量会随时间不断增长,而新意图必须通过分析现有意图集合之外的语句来发现。本文的研究目标为:(i)在仅提供少量标注样本的前提下,从大量未标注语句中识别出已知意图的语句;(ii)从剩余的未标注样本中发现新的、未知的意图。现有的最先进方法通常采用交替进行表示学习与聚类的方式,利用伪标签更新模型表示,再通过聚类生成新的伪标签。与依赖逐轮(epoch-wise)聚类对齐的现有方法不同,本文提出一种端到端的深度对比聚类算法,通过监督学习与自监督学习联合优化模型参数与聚类中心,从而最优地利用已标注与未标注数据。在五个公开数据集上的实验结果表明,所提方法在两种场景下均显著优于现有竞争性基线模型:(i)当未知意图数量已知时;(ii)当意图数量由算法自动估计时。此外,本文还提出一种“人机协同”(human-in-the-loop)的变体方法,适用于实际部署场景,无需预先估计新意图的数量,且性能优于端到端方法。
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| open-intent-discovery-on-banking77 | DSSCC | ACC: 69.82 ARI: 0.5809 NMI: 0.8124 |
| open-intent-discovery-on-clinc150 | DSSCC | ACC: 87.91 ARI: 0.8109 NMI: 0.9387 |
| open-intent-discovery-on-dbpedia | DSSCC | Clustering Accuracy: 92.73 |
| open-intent-discovery-on-snips | DSSCC | ACC: 94.87 ARI: 89.03 NMI: 90.44 |
| open-intent-discovery-on-stackoverflow | DSSCC | ACC: 82.65 ARI: 68.67 NMI: 77.08 |