论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》

论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》

背景

SOM-DST基本思想

SOM-DST把对话状态看做可以选择性覆写的memory。
SOM-DST把DST分解为两个子任务:
(1)state operation prediction,状态操作预测。预测将在每一个memory slot上运行的operations的类型。
(2)slot value generation,槽值生成。生成将新写入memory slots子集的values。
这是第一次提出Selectively Overwriting Memory的思想和两步DST的思想。
过去的方向,是在每一个对话turn中,为全部slots抽取values。但是我们的模型,通过子任务分解,使得可以仅仅为slots的一个最小子集(minimal subset )生成values,生成效率更高。

整体架构如下图所示,输入当前话语,上一轮话语,以及上一轮状态(输入每一轮的前一轮对话状态,即利用了更多的信息),输出当前状态。predictor对每个slot预测,如果某slot预测的operation是UPDATE,就用generationer生成其槽值。状态表现为槽值对表,各slot可能的operation包括CARRTOVER、DELETE、DONTCARE、UPDATE等。槽位符号StiS^i_t,表示领域ttii槽位,领域标签也加了进去,相当于领域分类作为状态操作预测器的一个副功能。两个组件联合训练。

论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》
如果把我们的DST组件看做一个encoder-decoder模型的话,那么相当于state operation predictor是encoder(slots selector),slot value generationer相当于是decoder(slot value generator)。这样明确分工的设计,降低了open-vocabulary based setting下DST的难度。

总结本文的贡献,主要包括:
(1)通过最小化槽位子集和利用前一轮状态,提供了值生成任务的计算效率
(2)在MultiWOZ 2上达到open vocabulary-based DST setting上SOTA性能。
(3)突出了提高state operating prediction准确率的潜力。

Open Vocabulary-based DST简史

目前,面向多领域问答的,运行在MultiWOZ 2上的Open Vocabulary-based DST模型,包括TRADE、DSTreader、COMER、NADST、ML-BST等等

一般思想是运行autoregressive generation算法来生成槽值。

TRADE模型体现了encoder-decoder framework的潜力,但在计算上效率不高,因为它在每一turn为全部slots生成values。

COMER模型通过使用hierarchical decoder,一定上解决了TRADE的上述缺陷。hierarchical decoder,层次堆叠的解码器,以分层的方法解码domains, slots, and values,把当前轮对话状态本身生成为target sequence。此外,它们第一次提出了ICT的概念,以衡量不同DST模型对话状态预测的efficiency。COMER同样在slot values子集上生成,但是由于没有利用上一轮的对话状态信息,所以性能还是不如我们的模型。

DSTreader将DST建模为阅读理解任务,提出了DST Reader模型,从输入中提取槽值。 由于DST需要跟踪abstractive values as well as extractive ones,因此它们的完全提取方法受到限制。 在DST中加入一个槽位携带模块(slot carryover module),对是否将槽位的值从先前的对话状态转移到当前的对话状态做出二值决定,这个概念很重要。也相当于加入是否update的判断。

DS-DST企图结合使用Open Vocabulary和fixed Vocabulary,结果却有点诡异(?)
NADST和ML-BST的模型比较有争议,这里略过。

SOM-DST具体流程

对话状态:用槽值对的集合表示。此处“槽位”=领域名称+槽位名称。

特殊的value:除了本体中该有的value,另外定义两个特殊的value,NULL和DONTCARE。NULL表示空值,DONTCARE表示这个slot不需要被跟踪。

operations:共有四种操作,CARRYOVER表示槽值保持不变,其余三个相当于传统的update。
论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》

predictor相当于每个slot一个四分类器,判断它的operation。第t轮下,输入当前话语,上一轮话语,以及上一轮状态,拼接为input represenation,如下:
论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》
[CLS]标注每一个input的开始。上一轮状态相当于对话历史(基于马尔科夫假设)。
predictor采用预训练BERT, 输入包括全部Xt嵌入、id嵌入、position嵌入,得到slot的
operation。
generator类似TRADE,使用GRU decoder和拷贝机制,通过context和vocabulary共同决定,如下:
论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》

实验

数据集:MultiWOZ 2.1,数据预处理方法照搬TRADE。和TRADE一样砍掉2个领域,所以是5个领域、30个槽位。
predictor:使用预训练的BERT-base-uncased model
optimizer:BertAdam
generator:greedy decoder
结果比较:
论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》
除了在纵向上超越了所有以有的open-vocabulary模型外,SOM-DST还首次实现了MultiWOZ2.1比2.0上表现更好,原因可能是SOM-DST更显式地使用了dialogue state labels作为输入,从而受益于MultiWOZ 2.1上对话状态的标注信息的修正。
论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》
SOM-DST继承并发展了COMER提出的ITC概念,分别考察了最好cases和最坏cases上的ITC;由于SOM-DST仅对UPDATE operations的槽位生成values,所以最好case是Ω(1),即没有slot需要UPDATE;同理最坏case是O(J),所有slots的values都需要被更新。

在MultiWOZ 2.1上,平均每一轮的生成数是1.12,最大是9,考虑到数据集中总共的槽位数量是30,显然SOM-DST是高效的。

Domain-Specific Accuracy:特定领域准确率,指在predicted dialogue state的子集上计量的准确率。这个指标只有最新的三个模型使用,比较结果如下表,表明SOM-DST主要是成功在Taxi和Train领域。这是由于跨多个领域的对话,即领域切换次数超过一次的对话,最终多数都结束在Taxi领域。论文阅读:《Efficient Dialogue State Tracking by Selectively Overwriting Memory》

Ablation

  1. 四种operations比两种好
  2. 把state operation换成groundtruth,联合准确率从52.57%提升到86.87%,而在decoding中换上groundtruth只有55.17%。这说明本模型在state operation prediction上有很大的提升空间。