0%

任务完成型对话系统论文调研(一)

2021.06.12 更新:本文已停止更新,大部分内容已经总结至《近年对话状态追踪综述:进展与挑战》。

  1. 任务完成型对话系统论文调研(一):本文是系列文章的第一篇,一开始架构文章的时候没有考虑太多,所以到目前为止只是写了一些基础的内容,并且逻辑有点乱。
  2. 任务完成型对话系统论文调研(二):《一》中大部分内容已总结至此文。
DSTC2 WOZ 2.0 MultiWOZ 2.1

任务完成型对话系统

任务完成型对话系统(Task-oriented Dialog System,TODS),也被称为口语对话系统(Spoken Dialogue System,SDS),下简称为 TODS。

对话状态与对话动作

对话状态(Dialog State,DS)是 TODS 中的一个重要概念,它贯穿了整个系统的运行过程。要理解 TODS,首先需要从对话状态入手。

对话状态也被称为信念状态(Belief State),或者对话信念状态(Dialog Belief State)。这是历史问题,一般在以前的模型中称之为对话状态,现在使用深度学习技术的对话系统称之为信念状态(Z. Zhang et al. 2020),不过如今二者混用,下称之为对话状态。对话状态由槽值对组成,以此呈现用户的目的(Z. Zhang et al. 2020)

在此需要说明很重要的一点。狭义来讲,对话状态指的是一系列槽值对。但是广义来讲,对话状态可以保存任意的对象,因为对话状态的本意是对话的状态。例如还可以保存当前对话的轮数、历史的对话动作、是否已经完成用户的任务、是否超时、根据当前轮所拥有的信息从数据库中查到的一系列数据项等。

对话动作(Dialog Action)由用户意图(Intention)和若干槽值对(通常只有 1 对)组成。一般来说,槽值对的表示方式为 slot=value。但是实际上还有多种不同的表示方式,例如 slot>valueslot in value 等(参考 Plato 框架)。下面如果不做说明,我们还是默认使用 slot=value 的方式。

值得注意的是,对话状态由槽值对组成,对话动作也由槽值对组成。但是对话状态保存的是对话历史中提到的所有槽值对,而对话动作只保存当前轮提到的若干槽值对。

举个例子,用户:“请帮我预定一个在市中心的餐厅,四人桌,大概晚上 6:30 到。”则对话动作为:

1
2
3
4
5
6
7
8
{
intention: 'inform',
sv: {
location: '市中心',
time: '晚上 6:30',
num_people: 4
}
}

如果系统回复:“那么,您需要什么口味呢?”此时系统也拥有对话状态和对话动作,但是暂且不做解释,目前只讲解用户相关的对话状态和对话动作。用户回复:“我们吃浙菜。”则此时的对话动作为:

1
2
3
4
5
6
{
intention: 'inform',
sv: {
food_type: '浙菜'
}
}

此时,系统可能就可以根据以上的条件,到数据库中检索出一个合适的餐厅返回给用户。通过上述的例子可以观察到,我们追踪到的只是用户的动作。然而,其实可以很容易地取出槽值对,从而形成对话状态。那么为什么要多次一举呢?有了对话动作,还要有对话状态。首先,这还是历史遗留问题。一般而言,以前,对话动作都从 SLU 模块获取,然后将其输入进 DST。但是近几年,许多模型都将该模块并入 DST 模块,导致对话动作没什么发挥的空间。其次,在对话状态中可以保存当前轮的对话动作,乍一听这没什么用!但是遇到需要更新槽值的情况时,就有用了。

例如,当前的对话动作是 inform(food_type='浙菜'),那么我们可以得到对话状态 food_type='浙菜'。但是,如果在后面几轮中,用户突然改变了用餐的类型呢?那么我们的对话状态就是 food_type='*',而之前的对话动作还是成立的,只不过是用户改了想法而已。如果以后还需要使用到很久以前用户做出的决策,那么就可以用到之前所保存的动作了。所以这也是对话动作和对话状态之间的一个区别。

最后需要说明的是,以上提到的名词在不同的框架或者论文中还有不同的叫法。例如,intention 被称为动作;对话动作被称为语义框架(Semantic Frame)等。

用户动作与系统动作

系统动作与用户动作(即上节的状态动作)类似,有区别的是,系统动作包含一些用户所不具有的动作。

SLU

注意,由于 2019 年之后大部分论文都默认将 SLU 并入 DST 中,故本节以后将不再更新。

口语理解(Spoken Language Understanding,SLU)是 TODS 的重要组成部分。其共由两项任务组成,分别是意图检测(Intent Detection,ID)与槽填充(Slot Filling,SF)。实际上,ID 可以被视为句子分类任务,SF 可以被视为序列标注任务。需要注意的是,有些作者也将 SLU 称为自然语言理解(Natural Language Understanding,NLU),但是由于 NLU 本身在自然语言处理中就是一项比较重要的任务,难免会产生歧义,所以下文统称为 SLU。另外,有时意图检测也被称为意图识别(Intent Determination,ID)。

SLU 的实现大致分为两种:1)独立模型(separate models):训练两个独立的神经网络,一个用于 ID 任务,另一个用于 SF 任务;2)联合模型(joint model):使用一个神经网络对两个任务进行联合训练,它旨在共享两个任务所捕获的信息。

突然发现已经有人对比过很多论文,详见【综述】对话系统中的口语理解技术,就不重复造轮子了。以下大部分都是该文未统计的论文,一般是 2018 年以后的论文。

以下论文按发表时间(或提交到 arxiv 的时间)排序:

论文 类别 标签
笔记论文 Zhang et al. 2019 BERT
笔记论文 Chen et al. 2019 BERT
笔记论文 Wang et al., 2018 separate BiLSTM
encoder-decoder cross-impact hidden state sharing
笔记论文 Li et al., 2018 joint BiLSTM
self-attention Intent-Augmented Gating Mechanism
笔记论文 Liu and Lane, 2016a joint BiLSTM
encoder-decoder attention
笔记论文 Zhu and Yu, 2017 separate BiLSTM
encoder-decoder focus mechanism
笔记论文 Zhang and Wang, 2016 joint Bi-GRU
contextual word embedding
笔记论文 粗体代表有启发的论文 BERT\
论文 解决的问题 局限性
Wang et al., 2018
Li et al., 2018
Liu and Lane, 2016a
Zhu and Yu, 2017
Zhang and Wang, 2016
---------------- 粗体代表不错的想法 斜体代表在以后的论文中此缺点大致已被解决

难点/未来的工作

大多数模型都假定用户的语句只有一个意图分类,但是现实并不是如此。而且在系统覆盖多个领域时,ID 模型的决策空间变得过大。如果以后要新增一个意图,必须重新训练整个模型。

此外任务完成型对话系统很难找到现成的数据,因为完成任务的系统动作有时可能并不是语言,而是数据库查询语句或是其他动作,这就使得难以界定任务是否完成,导致数据难以爬取。综上所述,SLU 的难点大致如下所示:

  • 如何解决多意图分类?
  • 如何解决未知的意图和槽值对?
  • 如何解决数据稀缺问题?

相关工作

传统模型将 SF 和 ID 视为两个独立的任务,许多工作为它们单独一个训练神经网络,并执行预测。这忽略了二者之间的联系。近年来,一些工作开始将二者进行联合训练,共享它们的信息。

以下将分别介绍独立模型和联合模型的几项工作。

独立模型

(Zhu and Yu 2017) 对 SF 任务提出了一个模型,使用 encoder-decoder 架构,encoder 部分应用 BiLSTM,deocder 部分应用 uniLSTM,同时结合 attention 机制。但是他们发现 attention 机制对于 SF 任务确实有一定局限性:1)序列标注任务中的输入和输出是对齐(alignment)的,一个单词对应着一个标注,但是 attention 机制的思想却是取所有输入单词的加权和;2)单词的对齐可由 attention 机制学习到,但是在序列标记任务中,很难拟合有限的标注数据(与此不同的是机器翻译更容易获得成对数据,如中英文翻译,而序列标注任务的数据非常稀少,且需要人工标注)。所以他们提出了一种新的 focus 机制。原理是在执行 attention 机制时,放弃其他上下文单词,只关注当前单词。

(Wang, Shen, and Jin 2018) 认为先前的工作经常将 ID 和 SF 当做两个平行的任务看待,一般使用一个联合模型建模两个认为,他们认为这样无法完全利用二者之间的交叉影响。所以为了考虑二者的交叉影响,虽然他们使用的是独立模型架构,分别为 ID 以及 SF 任务训练一个 LSTM 模型,但是在训练时,共享了两个模型的隐藏状态

联合模型

(Mesnil et al. 2014) 发现使用一个 context word window 可以提高 RNN 在 SF 上的性能。(Zhang and Wang 2016) 利用此方法,对 ID 以及 SF 训练了一个联合模型。具体做法是:获得词向量 \(e(w_t)\) 后,令 \(x^d_t = [e(w_{t-d}), \cdots, e(w_t), \cdots, e(w_{t+d})]\) 重新表示词向量,其中 \(e(w_t)\) 代表单词 \(w_t\) 的词向量,d 代表窗口半径。此外为了使模型获得更好的性能,在 \(x^d_t\) 中还拼接了单词所对应的命名体词向量,比如“New York”的命名体为“B-city I-City”,最终 \(x^d_t = [e(w_{t-d}), \cdots, e(w_t), \cdots, e(w_{t+d}), e\prime(n_{t-c}), \cdots, e\prime(n_t), \cdots, e\prime(n_{t+c})]\),其中 \(e\prime(n_t)\) 代表命名体 \(n_t\) 的词向量,c 代表窗口半径。在编码部分,句子的信息由 Bidirectional GRU(Bi-GRU)进行提取。在解码部分,一个 decoder 用于输出意图,另一个 decoder 用于输出句子中每个单词的命名体。不过在真实的场景下可能无法获取单词的命名体信息所以本文不采用 W+N 的特征,而是选用 W 的特征与其他论文作对比)。

(Liu and Lane 2016) 采用 sequence-to-sequence 模型以及 attention 机制,对于 ID 任务来说,提高了 0.56% 的性能,对于 SF 任务来说,提高了 0.23% 的性能。就实验的结果来看,attention 机制对于序列标注任务来说提升不明显,对于意图分类任务有些许提升。

(Li, Li, and Qi 2018) 使用词级别的嵌入和字母级别的嵌入组合而成的词向量进行模型训练。使用 self-attention 机制获取上下文信息,然后使用 BiLSTM 产生隐藏状态,此时利用隐藏状态生成意图分类,最后加上意图增强门控机制产生槽位标签。

论文笔记

详见 SLU论文笔记(?-2020)

引用

  1. 认真的聊一聊对话系统(任务型、检索式、生成式对话论文与工具串讲)
  2. Awesome Paper List of Dialogue Systems
  3. 任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
  4. Natural-language-understanding-papers

DST

Model encoder method history
aux input
extra level 2-stage
Henderson RNN cls
LecTrack LSTM cls
NBT simpleNN disc turn
Rastogi 2 layer BiGRU cls
GLAD BiLSTM disc
TRADE BiGRU gen Y
BERT-DST BERT span turn Y
DS-DST BERT hybrid Y
MA-DST biGRU gen full dialog Y
TripPy BERT hybrid turn Y
模型 局限性
TripPy 1)需要枚举 (domian, slot),并且相比于 TRADE/DS-DST,参数量更大;2)使用了两种内存记忆实现共指解析,但是感觉只使用一种也可以做到;3)并没有处理 pick-list slot;
DS-DST 1)需要枚举 (domian, slot);2)需要人工定义哪个槽位是 picklist-based,哪个是 span-based。
TRADE 1)每一轮都需要枚举 (domian, slot);2)可能会生成错误格式的字符串;3)有些槽位并不需要直接生成,直接选取槽值即可(例如“是否”问题);4)没有利用领域和槽位之间的联系。
GLAD 1)对于局部编码器来说,每一个槽位都需要一个模型,这很麻烦;2)要遍历所有的槽值对
Rastogi 1)还是需要遍历有限的槽值对2)需要使用 SLU 模块进行 delexicalisation,所以实际上它是使用两个独立模型进行训练的;3)不同的槽位需要不同的参数,没有做到槽位之间也贡献参数
NBT 1)DST 模型需要遍历所有槽值对组合,但是有时候用户的语句所对应的槽值对可能并没有出现在训练集中2)槽值对可能有时无法枚举3)很难迁移到一个新的领域
LecTrack 1)还是需要遍历槽位,并为每一个都设计一个分类函数2)太过于简化模型,在现实中应该无法适用。
Henderson 1)需要为每个槽位都训练一个模型,在确定槽值是否出现在语句中时,需要遍历所有槽位的模型;2)还是需要人工构建的词汇表
-- 斜体代表在以后的论文中此缺点大致已被解决

由于最初并没有打算写那么多内容,导致以下内容的逻辑很乱。故已将其整理至任务完成型对话系统论文调研(二)

对话状态追踪(Dialogue State Tracking,DST)是 TODS 中一个重要的模块,同时它也是对话管理(Dialog Manager,DM)的两大模块之一,另一个是话策略学习(Dialog Policy Learning,DPL)模块。下面,首先简单地介绍 DST 的两种实现方式,具体可以参考 task-oriented dialog system 综述。其次引入两个简单的概念,即独立模型和联合模型。然后,对 DST 任务中目前具有的各项挑战做一个总结。最后给出近年(到 2019 年为止)的相关工作。

DST分类体系

目前 DST 的做法多种多样,主要可以分为 ontology-based 和 ontology-free 两种。不过也有其他的分法,如 picklist-based 和 span-based(J. Zhang et al. 2020);fixed-vocabulary 和 open-vocabulary (Eric et al. 2019)。虽然命名不同,但是分类规则类似。它们都将是否使用本体(也即是否可分类)作为依据。

除了以上这种主流的分类方法,[] 还将 DST 分为 dialogue-level DST 和 turn-level DST。

独立模型与联合模型

DST 的目标是提取并监控用户语句中所蕴含的用户目标。根据是否联合训练 SLU 和 DST,可以分为独立模型和联合模型。

独立模型首先接收 SLU 模块的输出,然后生成当前的对话状态。由于 TODS 的管道式(pipeline)架构以及 ASR 和 SLU 模块可能会存在信息误差,这种做法会导致信息误差的层级传播。

联合模型(Henderson, Thomson, and Young 2014)直接将 ASR 识别出的用户语句作为 DST 的输入,不再是 SLU 模块输出的语义表征。该模型同时执行了语音理解以及对话状态跟踪的功能,对于此方法而言,SLU 模块在名义上已经不再存在。

  1. 结合从 SLU 模块提取出的语义去估计当前的对话状态。(论文 07-14)

传统的 TODS pipeline 使用 SLU decoder 来检测在 ASR 输出中所表达的槽值对。然后下游 DST 模型将这些信息与过去的对话上下文结合起来更新 belief state。

在 DSTC 挑战中,一些系统使用基于模板的匹配系统(如 Phoenix)的输出。然而还有许多更精确的统计 SLU 系统可用。

  1. 许多辨别式 SLU 训练独立的二元模型,以此决定每个槽值对是否出现在用户话语中(Mairesse et al., 2009)。这项工作后来将重点转移到对 ASR 输出的处理上(Henderson et al., 2012;Tur et al., 2013)。
  2. SLU 也被视为序列标注的问题,句中的每个字都根据用户的意图贴上标签,可以使用标准的标记模型,如 CRFs 或 RNN(07-16 论文)。
  3. 另外的方法受语义解析的启发,采用更复杂的建模结构(14 论文)。

这些方法有一个共同的缺点:资源需求。要么是因为它们需要为每个槽值对学习独立的参数,要么是因为它们需要在单词级别上进行精细的人工标注。这阻碍了其扩展到更大、更现实的应用程序上 [2]。

  1. 或者与 SLU 模块联合学习(论文 14-17)

研究发现,以 ASR 预测为输入,以信念状态的产生为输出。联合 SLU 和 DST,有利于两个模型的推理。

联合模型通常依赖一种 delexicalisation 策略,即将句子中出现的槽位/槽值替换为通用的标签。替换完毕之后可以使用 n-gram 提取特征,比如 [want <value> food][want Chinese <slot>] 等。为了执行 DST,这个模型需要遍历所有的槽值对,提取特征,并进行二元决策。

Delexicalisation 引入了一个很少被讨论的隐藏依赖关系:我们如何识别文本中提到的槽位/槽值?对于不是很正式的领域,可以手动构建词表,枚举所有可能的表达。如 Mrkšić N et al., 2016 所示,使用此类词典对于当前基于 delexicalisation 的模型的性能至关重要。不过,这也不能扩展到丰富多样的用户语言或者通用领域 [2]。

难点/未来的工作

当前 DST 模型还有许多问题亟待解决,下面将列出目前已知的几类难点,加粗的难点代表是本文所关注的(即本文中提到的一系列论文)。

  • 可扩展性 [1]
    • 动态的槽位:槽值对的表征不够灵活,目前的做法是将槽位预定义在本体之中,其拥有对应的槽值。但是如果有些槽位是未见过的或者低频的,那么系统将无法处理。注:大约在 2019 年开始已经有工作(TRADE)开始在处理这一问题,但是本文暂且不涉及此类问题。
    • 动态的槽值:无法表示无限的或者动态的值,即有些槽值不可枚举,例如日期、地点。
    • 新增的意图:随着系统的更新迭代,有可能会新增意图,这样就必须重新训练模型。
    • 变化的系统动作(action):注意,用户的意图+槽值对也是 action,即 user act,而这里所阐述的是 system act。例如在手机销售的场景下,系统原本只有提供产品信息的动作。但是假设一个用户询问“如何升级手机系统?”[1],系统必定无法告知用户操作方法,因为系统不具有提供手机系统升级步骤的动作。
    • 多领域 DST
  • 计算复杂度高
  • 数据稀缺

相关工作

最初,由于深度学习以及基于深度学习的自然语言处理技术才刚开始起步,并没有词向量作为支撑,大多数模型都需要采用一个人工构建的词汇表,这相当费时费力。由于近几年的工作已经抛弃这一做法,所以可能有部分人都无法理解这个词汇表到底代表什么意思。以下本文将举例介绍。

简单来说,它其实就是一个同义词表。例如某人告知系统,心仪的餐厅位置是“the center of town”,直观来说模型可以提取出槽值对“area=center”,但是对于值“center”,它还有其他的变体词汇,如 {center, downtown, central, city centre, midtown, town centre...}(Mrkšić et al. 2017)。这使得模型很难提取出精确的词汇,因此需要维护一个人工构建的词汇表,将所有的同义词都替换为相同词。

传统模型

传统 DST 模型的做法大都结合 SLU 模块,被称为独立模型。通常使用从 SLU 模块提取出的语义信息,例如意图以及槽值对,去估计当前的对话状态。由于时代过于久远,本节不做深度展开。

传统 DST 模型具有如下几项缺点:1)依赖人工制作的特征;2)需要复杂的特定于领域的词汇表(本体除外);3)很难扩展以及灵活调整到新的领域4)需要显式语义表征以及在 SLU 阶段可能存在信息误差,这些误差将传播到 DST 模型上,使得误差累积;5)并未解决上述 DST 模型所拥有的难点。

单领域DST

(Henderson, Thomson, and Young 2014) 使用 RNN 试图直接使用 ASR 的结果作为 DST 输入,这避免了显式语义表征的需要以及在 SLU 阶段潜在的信息误差。并且继续沿用作者同年发表的论文中的方法——使用 delexicalisation features,但是该方法有一个弊端,需要使用一个人工构建的词汇表。比如说对于“i want chinese food”可以被替换为“i want <value> <slot>”,这样可以提升模型的泛化性,使得模型能够处理未见或低频的对话状态。但是该模型的缺点是需要为每一个槽位都训练一个模型,而后遍历所有槽位的模型,以此确定某槽值是否与用户的语句有关联。此外该论文还从用户语句和对话状态中提取出了 n-gram 特征。最后由于此论文发表的时间尚早,人工构建词汇表的问题并没有得到解决。笔记

(Zilka and Jurcicek 2015) 在输入用户语句时还结合 ASR 的置信度分数,并且将生成对话状态中的槽值转为了多分类问题,不再需要人工构建的词表笔记 低频词抽象化 Model Averaging

(Mrkšić et al. 2017) 提出了 Neural Belief Tracker(NBT),使用分布式表征表达的语义信息解决一义多词的问题。借助词向量的优势,可以使得回答“center”的语句也能匹配槽值对 (area=central),这得以摆脱人工构建词表的束缚。由于该论文的做法是迭代所有预定义好的槽值对去和历史对话做匹配,故有一定缺陷。因为槽值对的组合无穷无尽,即使有穷,也会拥有大量的组合(这也导致参数在槽位之间无法共享 (Wu et al. 2019)),并且这种枚举的做法也无法处理从未见过的槽值。此外它还缺少一些扩展性,它的信念状态(belief state)更新机制在其他领域需要进行大量修改,所以无法跨领域(这已经有人在解决了,详见论文 Fully Statistical Neural Belief Tracking笔记 Semantic Decoding Context Modelling

(Zhong, Xiong, and Socher 2018) 使用 global-locally 自注意力机制改进了对低频槽值对的追踪。具体做法是,每一个槽位拥有一个局部编码器,编码用户的输入。除此之外,所有的槽位还共享同一个全局编码器,这意味着该编码器的参数被所有槽位共享。状态追踪的思想还是与 NBT 类似,将其分解为一个个的二元分类问题,即遍历所有槽值对组合,判断此槽值对是否在用户语句中被提及。它的缺点也与 NBT 类似,需要遍历所有的槽值对。此外它的另一个缺陷是需要每个槽位创建一个局部编码器,这很麻烦。笔记

Nouri and Hosseini-Asl (2018) 对 GLAD 改进,去除了局部编码器及其 self-attention 机制。

Ren et al. (2018) 提出了 StateNet,它可以生成对话历史的表征并且作者与候选集中的槽值向量比对了距离

(Xu and Hu 2018)index-based Pointer Network 用于不同的槽位,展示了指向未知槽值的能力。然而,许多模型都需要一个预定义的领域本体,并且模型只在单领域的设置(DSTC2)上进行评估

多领域DST

(Rastogi, Hakkani-Tür, and Heck 2017) 1)提出一个多领域模型,它使用两层的 Bi-GRU。虽然该方法不再需要枚举所有的槽值对组合,而是转用一个使用有限候选集(因为某些槽位不可能出现在用户语句中,在预测时并不需要它),但它需要依赖 delexicalisation 来提取特征;2)由于该方法利用 SLU 模块提取槽值,进而将此槽值替换成一个特殊的符号,因此它不算是一个联合模型3)另外它还是不可避免地需要遍历所有的槽位。对于槽值,由于有候选集,所以只需要枚举槽值即可;4)最后评分函数中的参数,每个槽位都有特定的一组,但是 GRU 中的参数都是为一整个领域定义的,因此它可以轻松地被迁移到新的领域中笔记

无论是传统模型,还是近年使用的深度学习模型,都不可避免地需要使用本体,其定义了槽值对。(Wu et al. 2019) 认为一个完整的本体很难获取,即使存在这么一个本体,槽值对的数量也会极其的庞大。此外,由于 (Budzianowski et al. 2018) 提出了多领域对话数据集 MultiWOZ,将 DST 迁移到多领域内势在必行。(Wu et al. 2019)1)提出将原先的 (slot, value) 二元组修改为 (domain, slot, value) 的三元组形式,并且槽值不再预定义于本体之中,而是使用 Pointer Network (soft-gated copy)直接从用户的语句中提取而出;2)另外他们强调要共享知识,因为一个槽位可能会出现在多个领域之内;3)zero-shot。笔记

(Kumar et al. 2020) 使用三阶段的 attention 机制捕获多粒度特征,然后利用 slot gate 和 decoder 解码槽值(与 TRADE 类似)。

(J. Zhang et al. 2020) 认为当前基于神经网络的对话系统大致可以分为两类:1)picklist-based;2)span-based。picklist-based 讲究从预定义的槽值中选取最可能的值,span-based 讲究使用 Ptr 直接从用户语句中生成槽值,它由 (Xu and Hu 2018) 首次提出。作者认为二者各有优缺点,picklist-based 方法太麻烦,而 span-based 方法中,由于用户语言的多样性,有些槽值并不会出现在上下文中(如,回答有关“是否”的问题,它拥有一个包含两个元素的 picklist 就可以解决,不需要 Ptr 生成)。所以作者将二者结合起来,提出了 DS-DST。由于模型中会出现多个句子或者符号,比如说对于 picklist-based 方法,一个 picklist 中有多个槽值,那么该怎么处理它们?作者直接用了拼接的方式。用户的多轮对话语句,域槽对都是使用此方法。 笔记 Slot-Context Encoder Slot-Gate 拼接词向量

(Heck et al. 2020) 提出 TripPy,其包含三种拷贝机制,即1)Ptr;2)from System Inform Memory(SIM);3)fromDialog State Memory(DSM)。TripPy 主要通过一个 Slot Gate 判断使用哪种拷贝机制,与 TRADE 等模型类似。具体来讲,模型的运行流程为:使用 BERT 对上下文建模,然后将 BERT 的特殊符号 \([CLS]\) 输入 Slot Gate 进行五元分类,即 \(\{none, dontcare, span, inform, refer\}\),然后执行对应的拷贝机制。以下将介绍三种机制的具体实现。 笔记 Auxiliary Features 但是没说怎么追踪 system inform,猜测是生成自 DPL。

  1. Ptr 为 span-based 方法,即从用户的语句中直接提取槽值,具体公式略,可参考原文。此外,对于特殊的 Boolean slot,他们的做法与 DS-DST 类似,DS-DST 采用 picklist-based 方法,而 TripPy 将 Slot Gate 改为四元分类,即 \(\{none, dontcare, true, false\}\)
  2. SIM 记录被系统提及到的槽值,如果用户引用了它,则直接从 SIM 中拷贝,而不使用 Ptr(例,“xx酒店不错”;“那就了”)。
  3. DSM 用于共指解析(个人认为,SIM 也算共指解析)。假设槽位 A 的槽值已在上文中被提及,如果槽位 B 在当前轮被触发,且槽值与槽位 A 相同,那么直接引用槽位 A 的槽值,而不使用 Ptr(例,订餐的酒店地址和用餐后打的的乘车地址)。

计算复杂度高

(Ren, Ni, and McAuley 2019) 认为以往的 DST 模型依赖一个预定义的本体,其包含一系列的潜在的槽值对。这些模型在单领域上已经取得了不错的性能,但是它们都一直遭受着计算复杂度的问题。由于多领域中的槽值对是单领域的数倍之多,这个问题在多领域中将更为严重。(Ren, Ni, and McAuley 2019)提出以往算法的推理时间复杂度(Inference Time Complexity,ITC)为 \(O(mn)\)\(O(n)\),他们提出的模型则是 \(O(1)\)为了解决以上的问题,他们提出了 COMER 模型,抛弃了传统的模型架构,即将槽值的识别或者生成视为一个二元分类问题,而是转用了 seqseq 模型。

引用

  1. 任务导向型对话系统——对话管理模型研究最新进展
  2. 任务型对话(二)—— DST(对话状态追踪)
  3. 多领域多轮问答调研报告 3:也是一个综述文章。

结果对比

SLU模块结果对比

DST模块结果对比

参考文献

Budzianowski, Pawel, Tsung-Hsien Wen, Bo-Hsiang Tseng, Inigo Casanueva, Stefan Ultes, Osman Ramadan, and Milica Gašić. 2018. “Multiwoz-a Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling.” arXiv Preprint arXiv:1810.00278.

Eric, Mihail, Rahul Goel, Shachi Paul, Adarsh Kumar, Abhishek Sethi, Peter Ku, Anuj Kumar Goyal, Sanchit Agarwal, Shuyang Gao, and Dilek Hakkani-Tur. 2019. “MultiWOZ 2.1: A Consolidated Multi-Domain Dialogue Dataset with State Corrections and State Tracking Baselines.” arXiv Preprint arXiv:1907.01669.

Heck, Michael, Carel van Niekerk, Nurul Lubis, Christian Geishauser, Hsien-Chin Lin, Marco Moresi, and Milica Gasic. 2020. “TripPy: A Triple Copy Strategy for Value Independent Neural Dialog State Tracking.” In Proceedings of the 21th Annual Meeting of the Special Interest Group on Discourse and Dialogue, 35–44. 1st virtual meeting: Association for Computational Linguistics. https://www.aclweb.org/anthology/2020.sigdial-1.4.

Henderson, Matthew, Blaise Thomson, and Steve Young. 2014. “Word-Based Dialog State Tracking with Recurrent Neural Networks.” In Proceedings of the 15th Annual Meeting of the Special Interest Group on Discourse and Dialogue (Sigdial), 292–99.

Kumar, Adarsh, Peter Ku, Anuj Goyal, Angeliki Metallinou, and Dilek Hakkani-Tur. 2020. “MA-Dst: Multi-Attention-Based Scalable Dialog State Tracking.” In Proceedings of the Aaai Conference on Artificial Intelligence, 34:8107–14. 05.

Li, Changliang, Liang Li, and Ji Qi. 2018. “A Self-Attentive Model with Gate Mechanism for Spoken Language Understanding.” In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, 3824–33. Brussels, Belgium: Association for Computational Linguistics. https://doi.org/10.18653/v1/D18-1417.

Liu, Bing, and Ian Lane. 2016. “Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling.” arXiv Preprint arXiv:1609.01454.

Mesnil, Grégoire, Yann Dauphin, Kaisheng Yao, Yoshua Bengio, Li Deng, Dilek Hakkani-Tur, Xiaodong He, et al. 2014. “Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding.” IEEE/ACM Transactions on Audio, Speech, and Language Processing 23 (3). IEEE: 530–39. https://doi.org/10.1109/TASLP.2014.2383614.

Mrkšić, Nikola, Diarmuid Ó Séaghdha, Tsung-Hsien Wen, Blaise Thomson, and Steve Young. 2017. “Neural Belief Tracker: Data-Driven Dialogue State Tracking.” In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 1777–88.

Rastogi, Abhinav, Dilek Hakkani-Tür, and Larry Heck. 2017. “Scalable Multi-Domain Dialogue State Tracking.” In 2017 Ieee Automatic Speech Recognition and Understanding Workshop (Asru), 561–68. IEEE. https://doi.org/10.1109/ASRU.2017.8268986.

Ren, Liliang, Jianmo Ni, and Julian McAuley. 2019. “Scalable and Accurate Dialogue State Tracking via Hierarchical Sequence Generation.” Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Association for Computational Linguistics. https://doi.org/10.18653/v1/d19-1196.

Wang, Yu, Yilin Shen, and Hongxia Jin. 2018. “A Bi-Model Based Rnn Semantic Frame Parsing Model for Intent Detection and Slot Filling.” In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers), 309–14.

Wu, Chien-Sheng, Andrea Madotto, Ehsan Hosseini-Asl, Caiming Xiong, Richard Socher, and Pascale Fung. 2019. “Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems.” In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, 808–19. Florence, Italy: Association for Computational Linguistics. https://doi.org/10.18653/v1/P19-1078.

Xu, Puyang, and Qi Hu. 2018. “An End-to-End Approach for Handling Unknown Slot Values in Dialogue State Tracking.” In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 1448–57. Melbourne, Australia: Association for Computational Linguistics. https://doi.org/10.18653/v1/P18-1134.

Zhang, Jianguo, Kazuma Hashimoto, Chien-Sheng Wu, Yao Wang, Philip Yu, Richard Socher, and Caiming Xiong. 2020. “Find or Classify? Dual Strategy for Slot-Value Predictions on Multi-Domain Dialog State Tracking.” In Proceedings of the Ninth Joint Conference on Lexical and Computational Semantics, 154–67. Barcelona, Spain (Online): Association for Computational Linguistics. https://www.aclweb.org/anthology/2020.starsem-1.17.

Zhang, Xiaodong, and Houfeng Wang. 2016. “A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding.” In IJCAI, 16:2993–9.

Zhang, Zheng, Ryuichi Takanobu, Qi Zhu, Minlie Huang, and Xiaoyan Zhu. 2020. “Recent Advances and Challenges in Task-Oriented Dialog Systems.” Science China Technological Sciences. Springer, 1–17.

Zhong, Victor, Caiming Xiong, and Richard Socher. 2018. “Global-Locally Self-Attentive Dialogue State Tracker.” arXiv Preprint arXiv:1805.09655.

Zhu, Su, and Kai Yu. 2017. “Encoder-Decoder with Focus-Mechanism for Sequence Labelling Based Spoken Language Understanding.” In 2017 Ieee International Conference on Acoustics, Speech and Signal Processing (Icassp), 5675–9. https://doi.org/10.1109/ICASSP.2017.7953243.

Zilka, Lukas, and Filip Jurcicek. 2015. “Incremental Lstm-Based Dialog State Tracker.” In 2015 Ieee Workshop on Automatic Speech Recognition and Understanding (Asru), 757–62. https://doi.org/10.1109/ASRU.2015.7404864.