论文笔记:A Simple Language Model for Task-Oriented Dialogue

417 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情

导语

SimpleTOD是面向任务对话的一种简单方法,它使用在所有对话子任务上训练的单一因果语言模型,将其重建为单个序列预测问题。相比于在各个子任务上分别进行预测,SimpleTOD在各个子任务上都取得了SOTA的表现。

1 简介

对话系统可以分为两大类:一类是开放领域的对话系统(Open-domain dialogue systems),其注重于与人类的闲聊、开放式的对话更自然、更有吸引力。而另一类则是任务导向性型的对话系统(Task-oriented dialogue (TOD) systems),该类系统注重于完成用户用自然语言描述的目标,帮助用户解决具体的问题。

TOD系统用于帮助用户完成一个任务目标。一般而言,这类系统都是pipeline形式的方法,需要三个独立的模块:

  1. NLU模块用于belief state tracking
  2. DM模块基于这些belief来决定下一步动作
  3. NLG模块用于生成响应文字

许多系统并不是每次都考虑整个对话历史,而是依靠NLU模块可靠地将信念状态传递给随后的模块组件。这种模块化的任务型对话系统,每个模块都依赖于上一个模块的输入,这种依赖关系可能会导致传播错误的积累,从而影响到其他任务。

本文将任务型对话的三个模块,重建为一个简单的、因果的(单向的)语言模型任务。Simple TOD充分利用大型语言模型(如GPT-2)通过端到端的方式优化所有任务,同时建模子任务之间的内在依赖关系。

2 相关工作

3 方法

3.1 Task-Oriented Dialogue

任务导向对话(TOD)的评价包括三个子任务:

  1. 对话状态(信念状态)跟踪、
  2. 对话管理(行动/决策预测)、
  3. 响应文本生成。 过去的研究者们大都为每个子任务创建专用模型。而本文中,SimpleTOD探索了使用单一模型、端到端方法来对多个子任务进行统一处理。

对话包含有多轮的交互。假设在tt轮,用户的输入记作UtU_t,系统生成响应StS_t。为了生成StS_t,系统读入所有过去轮次的历史信息作为上下文,即Ct=[U0,S0,,Ut]C_t= [U_0, S_0, \cdots, U_t],接着系统生成belief state:

image.png

BtB_t是一个特定领域下的三元组列表,每一个三元组的形式为(domain,slot_name,value)(domain, slot\_name, value). 这个belief state被用来在数据库中查找信息,我们将数据库返回的结果记作DtD_t。接着,SimpleTOD将基于Ct,Bt,DtC_t, B_t, D_t来决定下一步的action。即:

image.png

这些actions是另一种形式的三元组列表,每个三元组形式为:(domain,action_type,slot_name)(domain, action\_type, slot\_name)。最后,系统在以上条件的基础上生成最终的响应文本:

image.png

3.2 Causal Language Modeling

在训练语言模型时,输入的sequence是几部分的拼接,即xt=[Ct,Bt,Dt,At,St]x_t = [C_t, B_t, D_t, A_t, S_t ]。这样的拼接输入可以便于语言模型计算xtx_t出现的联合概率。语言建模的目标是学习p(x)p(x),训练一个带有参数的神经网络来最小化数据集上的负对数似然函数(即最大化似然函数):

image.png

训练时的示意图如下,即通常的因果语言模型的训练方式。

image.png

而验证时的示意图如下,

image.png

首先会预测belief state,然后将预测的belief state到数据库中查询,得到匹配结果,然后将匹配结果拼接到输入,继续进行预测直到StS_t预测完成。

3.3 其他细节

使用MultiWOZ数据集进行评估,该数据包含10438个多回合对话,平均13.68个回合,跨越7个领域。评估方案中,针对单项指标,使用MultiWOZ的评估方案,针对综合评分,使用Mehr等人的评估方案。联合目标精度(joint goal accuracy)用于评价对话状态跟踪的性能,对话管理和文本生成阶段使用三个度量标准,inform rates、sucess rates和Bleu socre。对话系统的综合评估值(Combined)计算方式为(BLEU + 0.5*(Inform + Sucess))。

4 实验

实验结果如下:

Dialogue State Tracking

image.png

Action and Response Generation

image.png

5 分析

表4使用不同的特殊token对SimpleTOD进行评估,用于标识与不同子任务对应的输入组件。分析表明,如果没有结束标记token,SimpleTOD倾向于生成更长的信念状态、行动和响应。更重要的是,SimpleTOD必须要明确区分用户文本和系统文本。

image.png

表5强调了使用预训练权值初始化SimpleTOD的重要性。任务重建作为单序列预测的一个主要优点是能够利用这些预先训练的模型在开放域环境中学习到的理解。

6 总结

本文探索了一种简单的面向任务的对话方法(SimpleTOD),它使用单一的因果语言模型。为此,在训练期间,将对话状态跟踪、动作和响应生成的所有输入视为模型的单个序列。SimpleTOD可以直接利用预训练模型,如GPT-2,从开放领域中转移语言理解的能力。在MultiWOZ上的实验结果表明,该方法在对话状态跟踪以及端到端场景下的动作和响应生成方面优于以往所有方法。同时,作者发现,预训练的权重是必不可少的,但要充分利用这些权重,必须使用特殊的token来标记用户和系统响应,以及与不同子任务相关的序列的不同部分来指导系统。我SimpleTOD能够有效地跟踪带有许多回合的长背景下的对话状态,并且只用greedy decoding就能够获得最先进的结果,尽管有嘈杂的注释。