【论文笔记】Efficient Dialogue State Tracking by Selectively Overwriting Memory

Efficient Dialogue State Tracking by Selectively Overwriting Memory

概要

问题动机

 最近在对话状态跟踪(DST)方面的工作集中于基于开放词汇的设置,以解决基于预定义本体的方法的可伸缩性和泛化问题。然而,他们效率低下,因为他们从头开始预测对话状态。

主要贡献

  • 启用高效的DST,利用之前的对话状态生成插槽最小子集的值。

  • 在基于开放词汇表的DST设置中,在MultiWOZ2.0和MultiWOZ2.1上实现了最先进的性能。

  • 强调了在我们提出的框架中提高状态操作预测精度的潜力。

image-20210527163109299

模型

image-20210527163125033

编码器输入

image-20210527163159342

输入分为两个部分,包括最近两轮对话历史 $D$ 与前轮的状态 $B_{t-1}$,简单表示为:

image-20210527163426635

编码器输出

image-20210527163938323

image-20210527163908986

编码器预测对应的每一个槽的操作,一共有4种操作$[CARRYOVER,DELETE,DONTCARE,UPDATE]$, 只有当操作为$UPDATE$时槽值生成器才生成新槽值$v$:image-20210527164022895

image-20210527163628980

槽值生成器

image-20210527164133826

槽值生成器是一个GRU网络,初始隐藏层状态和输入分别为:image-20210527164423280 并通过将一个单词嵌入$e^{j,k}_t$作为输入,递归地更新隐藏状态$g_t^{j,k}∈ \R^d$,直到生成[EOS] token:

image-20210527164658360

在解码的第$t$步,解码器隐藏状态转换为词汇表的概率分布,其中$E∈R^{d{vcb}×d}$是编码器和解码器共享的单词嵌入矩阵,因此$d{vcb}$是词汇表大小:

image-20210527165118498

image-20210527165322379

其中 image-20210527165402095 且 $P_{val,t}^{j,k}$ 为最终分布

目标函数

在训练过程中,我们共同优化了状态操作预测器和插槽值生成器。

  • 状态操作预测器:

    除了状态操作分类外,我们还使用域分类作为辅助任务,迫使模型学习插槽操作和域的相关性,域分类使用$h^X_t$之上的软最大层完成:

    image-20210527170148221

    每个状态操作分类和域分类的损失为负对数似然的平均值,如下:

    image-20210527170229121

  • 槽值生成器

    训练插槽值生成器的目标函数也是负对数可能性的平均值:

    image-20210527170304997

将3个任务联合训练,得道总目标函数:

image-20210527170340805

实验

数据集

使用MultiWOZ2.0(Budzianowski等人,2018)和MultiWOZ2.1(Eric等人,2019)作为我们实验的数据集。这些数据集是两个最大的公开的多领域面向任务的对话数据集,包括7个领域内的大约1万次对话。MultiWOZ2.1是MultiWOZ2.0的一个改进版本,其中可以更正注释错误。

结果

image-20210527170558061

image-20210527170609881

image-20210527170635255

A Simple Language Model for Task-Oriented Dialogue

概要

动机

面向任务的对话通常被分解为三个任务:理解用户输入、决定操作和生成响应。虽然这种分解可能会为每个子任务提供一个专门的模型,但作者发现一个简单、统一的方法可以在MultiWOZ数据集上获得最先进的性能。

贡献

SimpleTOD是一种面向任务的对话的简单方法,它使用单一的因果语言模型,对所有子任务重新转换为单一序列预测问题。这使得SimpleTOD能够充分利用来自预先训练的、开放领域的、因果语言模型的转移学习,如GPT-2。SimpleTOD提高了对话状态跟踪的现有最新的联合目标精度,我们的分析揭示了在这种设置下对噪声注释的鲁棒性。

  • SimpleTOD-一种最先进的对话状态跟踪生成模型

  • SimpleTOD也是第一个在端到端设置中一起实现对话状态跟踪、动作决策和响应生成度量的最新性能的模型

  • 分析表明,SimpleTOD是存在噪声标记注释下的鲁棒对话状态跟踪器

  • 消融实验表明显示用户/系统和末端(段)标记的重要性

  • 显示预训练的重要性,也显示更大版本的简单训练,对于端到端MiltieTOD并不总是更好

模型

对话系统

面向任务的对话(TOD)对三个子任务进行评估:对话状态(信念状态)跟踪、对话管理(行动/决策预测)和响应生成。这种分解使得为每个子任务创建专用的模型成为可能,这是主要的方法。相比之下,我们探索了使用单模型的端到端方法的可能性,SimpleTOD。

设第$t$轮对话为$U_t$, 为了在推理过程中生成响应,SimpleTOD将之前的所有回合读取为上下文,image-20210529093654836 , 并生成对话状态 $B_t$:

image-20210529093740424

这是记录特定域中的插槽值的三元组列表:(域、slot_name、值)。此信念状态用于查询数据库中的信息。数据库搜索从数据库中返回满足信念状态条件的行。返回的行以后可用于将响应词汇化(填充生成的占位符),但SimpleTOD只将聚合的数据库搜索结果$D_t$作为输入。$D_t$包括返回的行,以及根据实验设置,是否有预订状态信息。然后,SimpleTOD将$C_t、B_t和D_t$上的条件作为一个单一的序列连接在一起,以决定操作,$A_t$:

image-20210529094201550

这些操作作为另一个三联体的列表生成:(域、action_type、slot_name)。根据连接为单一序列的所有先验信息生成分层响应$S_t$:

image-20210529094336354

当与来自信念状态和数据库搜索结果的信息相结合时,响应可以被词汇化,以恢复人类可读的响应文本。

因果语言模型

一个单一的训练序列由连接组成 image-20210529094648303 ,允许我们建模序列$x_t$上的联合概率。给定该形式的示例序列 image-20210529094846351 其中每个$x_i$来自一组固定的符号,语言建模的目标是学习$p(x)$。利用概率链规则对这个分布进行因式分解是很自然的,并训练一个具有参数 $θ$ 的神经网络,以最小化数据集 image-20210529095134956 上的负对数似然,其中,序列 $x^t$ 的长度为 $n_t$:

image-20210529095309699

架构

作者通过训练Transformer的一个变体来学习这些条件分布。一个包含n个token的序列被嵌入为n个d维向量的序列。每个向量都是学习的token嵌入和正弦位置嵌入的和。因此,输入矩阵为 image-20210529095803347 由$l$个注意层处理。第$i$层由两个块组成,每个块保留模型维数d。第一个块使用了带有k个头的多头注意力。

image-20210529100031883

第二个块使用具有ReLU激活的前馈网络,将输入投影到内部维度f。此操作由 image-20210529100242047 参数化:

image-20210529100304128

每个块在核心功能之前使用layer normalization,之后是残差连接。它们一起生成$X_{i+1}$:

image-20210529100544457

然后根据最后一层的输出计算分数:

image-20210529101108230

在训练过程中,这些分数是一个交叉熵损失函数的输入。在生成过程中,与最后一个令牌对应的分数用软最大值进行标准化,生成一个用于对新的token进行采样的分布。

实验

image-20210529101939370

image-20210529102011983