Abstract
面向任务的对话通常被分解为三个任务: 理解用户输入、决定操作和生成响应 。虽然这种分解可能会为每个子任务建议一个专用的模型,但我们发现一种简单、统一的方法可以在MultiWOZ数据集上实现最先进的性能。 SimpleTOD是面向任务的对话的一种简单方法,它使用在所有子任务上训练的单一因果语言模型,将其重新转换为单个序列预测问题 。这使得SimpleTOD能够充分利用来自预训练的、开放领域的、因果语言模型(如GPT-2)的迁移学习。SimpleTOD改进了对话状态跟踪的联合目标精度,我们的分析揭示了在这种情况下对噪声注释的鲁棒性。SimpleTOD还改进了用于在端到端设置中评估行动决策和响应生成的主要指标:通知率提高8.1分,成功率提高9.7分,综合得分提高7.2分。
Introduction
对话式人工智能一直是计算机科学中一个长期探索的领域,随着神经方法的发展,最近在学术界和工业界都得到了更多的关注。
对话大致分为两类。开放域对话系统专注于使与人类的闲聊、开放式对话更自然、更吸引人。他们通常使用来自社交媒体的大规模数据进行端到端训练。
面向任务的对话(TOD)系统完成用户用自然语言描述的目标。他们经常使用管道方法。该管道需要 自然语言理解(NLU)用于信念状态跟踪,对话管理(DM)用于根据这些信念决定采取哪些行动,以及自然语言生成(NLG)用于生成响应
传统上,面向任务的对话系统的每个组成部分都是在不同的监督下独立训练的。 NLU模块在领域和意图标签上进行训练。DM模块采用对话信念和对话行为标签。NLG模块访问模板或自然响应 。当信息没有提供给管道中的后续模块时,这些组件的模块化依赖关系可能导致错误传播。例如,许多系统并没有在每个回合都考虑整个对话历史,而是依靠NLU模块将信念状态可靠地传递给后续模块组件。
我们建议将面向任务的对话重铸为简单的、因果的(单向的)语言建模任务。我们证明了这种方法可以使用多任务最大似然训练统一地解决所有子任务。提出的简单面向任务的对话(Simple Task-Oriented Dialogue, SimpleTOD)方法通过以端到端方式对所有任务进行优化,支持对面向任务的对话的子任务之间的固有依赖关系进行建模。SimpleTOD还为充分利用大型语言模型(如GPT-2)进行面向任务的对话开辟了道路。SimpleTOD的成功证明了高质量因果语言模型所需的开放领域内的隐式语言理解与完整的面向任务的对话系统所需的理解之间的紧密联系。
评价结果证明了SimpleTOD的优势。在MultiWOZ上达到55.76的联合目标精度,超过了之前所有对话状态跟踪(即信念状态跟踪)子任务的工作。在最接近测试完整的面向任务的对话系统的设置中,信念状态和行动决策是生成的,而不是从oracle中检索的,SimpleTOD的性能在每个单独的行动和响应生成度量上都超过了之前的工作(+8.1的通知率,+9.7的成功率)。
Methods
Task-Oriented Dialogue
任务导向对话(TOD)在三个子任务上进行评估:对话状态(信念状态)跟踪、对话管理(行动/决策预测)和响应生成。这种分解使得为每个子任务创建专用模型成为可能,这是主要的方法。相比之下,我们探索了使用单模型、端到端方法SimpleTOD的可能性。
对话由多个回合组成。在第
回合中,用户提供输入
,系统生成响应
。为了在推理期间生成响应,SimpleTOD读取所有之前的回合作为上下文,
。它产生了一个信念状态
,
它是记录特定域中槽值的三元组列表: (domain, slot_name, value)
。这种信念状态用于在数据库中查询信息。数据库搜索从数据库中返回满足信念状态条件的行。返回的行稍后可用于词法化响应(填充生成的占位符),但是SimpleTOD仅将聚合的数据库搜索结果
作为输入。
包括返回的行数,以及是否预订状态信息(取决于实验设置)。然后SimpleTOD将
、
和
上的条件串联在一起作为单个序列来决定操作
。
这些操作被生成为另一个三元组列表: (domain, action_type, slot_name)
。在将所有先验信息连接为单个序列的条件下,生成去中心化响应
。
当与来自信念状态和数据库搜索结果的信息相结合时,可以对响应进行词汇化,以恢复人类可读的响应文本。图2描述了SimleTOD的训练和推理过程中的生成。
Causal Language Modeling
单个训练序列由以下串联组成:
,允许我们对序列
上的联合概率建模。给定形式为
,
的示例序列。其中每个
来自一组固定的符号,语言建模的目标是学习
。使用概率链式法则对这种分布进行因式分解是很自然的,并训练一个参数为
θ
的神经网络,以最小化数据集
,
,
的负对数似然,其中序列
的长度为
:
Architecture
我们训练了Transformer的一个变体来学习这些条件分布。包含n个标记的序列作为n个向量的序列嵌入到
中。每个向量是学习到的标记嵌入和正弦位置嵌入的加和。向量序列堆叠为矩阵
,经过
个注意力层处理。第i层由两个块组成,每个块保持模型维度
。第一个块使用带有
个头的多头注意力。因果掩码排除了对未来token的关注:
Training Details
模型的输入使用与DitilGPT2相关的预训练BPE代码进行标记,GPT-2的一个蒸馏版本。根据实验结果,SimpleTOD实验使用Huggingface transformer中GPT-2和DitilGPT2的默认超参数。超过1024个记号的序列将被截断。
Dataset Details
我们对Multi-domain Wizard-of-Oz (MultiWOZ)进行了评估,MultiWOZ是一个大规模的、多域的人类对话数据集。它包含10438个多回合对话,平均13.68个回合,跨越7个领域(餐馆、火车、景点、酒店、出租车、医院、警察)。警察和医院领域被排除在评估之外,因为它们没有有效的/测试分割。这就为剩下的5个域留下了30个域槽对,它们有4500个可能的值。SimpleTOD根据中解释的预处理对去中心化的系统响应进行训练。
最近,发布了MultiWOZ 2.1,它从对话状态(信念状态)跟踪注释中去除了一些嘈杂的状态值。对于对话状态跟踪评估,我们使用2.1版本,以便与最新的最先进的方法进行比较。据我们所知,之前所有关于行动和响应生成的工作都在2.0上进行了评估,因此我们将这些结果纳入直接比较。但是,我们也包含了2.1的结果,以便将来的工作也可以与改进版本的SimpleTOD进行比较。
Evaluation Details
对于所有单独的指标,我们遵循最初的MultiWOZ指南,对于综合评分,我们遵循Mehri等人。
联合目标精度( Joint goal accuracy)用于评价对话状态跟踪(即信念状态跟踪)的性能 。它测量生成的信念状态与oracle信念状态的准确性。只有当所有预测值与oracle值完全匹配时,模型输出才被视为正确。
动作和响应生成使用三个度量标准。前两个是 通知率(Inform rate) 和 成功率( success rates) 。它们的设计目的是捕捉任务的完成情况。 通知率衡量系统提供的实体是正确的频率。成功率是指系统能够回答用户所有请求属性的频率 。
BLUE评分用于衡量生成的回答的流畅性 。
行动和反应生成的综合得分计算为 (BLEU + 0.5 * (Inform + Success))
。
Experimental Results and Discussion
Dialogue State Tracking
Action and Response Generation
Analysis and Further Discussion
The Role of Special Tokens
分析显示,如果没有结束标记,SimpleTOD倾向于生成更长的信念状态、动作和响应。更重要的是明确区分SimpleTOD的用户和系统文本。
Pre-training
作为单序列预测的重铸的一个主要优点是能够在开放域设置中利用这些预训练模型所学到的理解。
Robustness to Noisy Annotations
为了理解对话状态跟踪错误的来源,我们深入研究了MultiWOZ 2.1注释。在这个过程中,我们定义了四种主要类型的噪音标签,它们可以被认为是错误的注释:
- 用户提供了多个选项,但上下文没有提供足够的信息来确定真实的信念状态.
- 信念状态没有标记,但是上下文提供了足够的信息。
- 信念状态被标记,但上下文缺乏必要的信息
- 根据上下文信息,信念状态值拼写错误。
Decoding
与HDSA和DAMD不同,SimpleTOD不需要采用先进的、更昂贵的解码策略,如波束搜索、多样化波束搜索和top-k采样。我们的结果报告了简单的贪婪解码。在最初的实验中,我们也尝试过核采样,但我们发现它降低了性能。这与Keskar等人关于可控生成的观察结果有关: 当要求精度时,从分布中抽样本质上比贪婪抽样更不可靠 。
Full Dialogues, Multiple Turns, and Long Contexts
在进一步的分析中,我们发现SimpleTOD能够准确地追踪多个回合和长上下文中的对话状态。在某些情况下,当额外的回合提供更多的上下文时,早期的信念状态错误会得到纠正。