【论文笔记】2020-acl-Dialogue State Tracking with Explicit Slot Connection Modeling

2020-acl-Dialogue State Tracking with Explicit Slot Connection Modeling

概要

问题动机

 虽然近年来提出的方法显著提升了DST的效果,但是在多域场景下,用户经常使用省略号和引用来表示来自其他域的插槽所提到的值。这让模型很难去追踪这些引用的真实槽值。

主要贡献

 为了解决上述问题,作者提出了一个带有槽连接的DST模型(DST-SC)去显示地考虑不同域的插槽之间的链接关系。简单来说,就是给定一个目标槽,DST-SC中的槽连接机制可以推理得到它的源槽(source slot)并且直接复制source slot的槽值,显著降低学习和推理的难度。实验表明DST-SC在MultiWOZ 2.0 和 MultiWOZ 2.1数据集上取得了SOTA。

  • 这项工作是第一个讨论多域DST中的相关槽问题,并通过显示建模跨域的槽连接来解决该问题
  • 证明了DST-SC在处理相关的插槽问题方面更有效,并且优于最先进的基线

相关研究

  • 2019-acl-Dialog state tracking: A neural reading comprehension approach

  • 2017-EMNLP-. A joint many-task model: Growing a neural network for multiple NLP tasks.

  • 2019-acl-Transferable multi-domain state generator for task-oriented dialogue systems.

  • 2018—acl-Toward scalable neural dialogue state tracking model.

模型

 DST-SC是一种基于编码解码器结构的开放词汇模型,如下图:

image-20210428092844187

它由三个部分组成:

  • 从词汇表中生成单词
  • 从对话历史中复制单词
  • 从source slot 中复制槽值

下面分别介绍:

Encoder

image-20210428095241183

 本模型利用$Bi-GRU$来编码对话历史$x= { w_1,w_2,…,w_m }$。对话历史中的每个词$w_i$会先经过一个词嵌入函数在被编码为一个固定长度的隐藏向量$h_i$.

Word Generation

image-20210428101238053

 用另外一个GRU来解码槽值。每个槽都由一个域名和一个槽名组成(hotel-area).在解码第$j$个槽$s_j$时,将二者的嵌入相加作为解码器的第一个输入,并将编码器的最终隐藏状态初始化解码器的隐藏状态。在编码过程的第$t$步,隐藏状态为$\tilde{h}_t^{j}$。遵循基于注意力的编码器架构,$\tilde{h}_t^{j}$ 用于将注意力应用在编码器的输出上,并聚合它们得到上下文向量$c_t$.

生成token $y_t$的分布如下:

Word Copying

image-20210428105544751

 复制机制在DST中证明有效(Lei等人,2018;Xu和Hu,2018;Wu等人,2019)。在这里,作者跟随Wu等人通过指针生成器复制来增强普通的基于注意力的解码器,使它能够捕获对话历史中显式出现的插槽值。

soft gate $g1$ 用来融合单词复制分布$P{gen}$和生成分布$P_{wc}$:

Slot Connecting Mechanism

image-20210428105428074

 改机制被用于建模槽之间的联系。在解码目标槽$s_j$时,DST-SC从最近对话状态中推理它的source slot,然后复制它的值。最近对话状态是一个槽值对元组的集合: ${ (s_1,v_1),…,(s_n,v_n) }$, 利用$\tilde{h}_t$ 作为query 来得到潜在source slot:

注意力分数$ak$衡量了$s_k$与目标槽$s_j$的相关度,它在第一个解码步骤中只计算一次,并保持与值$v_k$中的后续标记的一致性。在解码的第$t$步,第$t$个token $v{kt}$用来形成值复制分布$P_{vc}(y_t)$.

实验

数据集

  • MultiWOZ 2.0
  • MultiWOZ 2.1

模型实现细节

  • 词嵌入:Glove, 大小为 400
  • GRU隐藏状态大小:400
  • 优化器:Adam
  • 学习率:0.001 且取0.2为衰减因子
  • batch_size: 32
  • dropout rate: 0.2

结果

image-20210429142808322

image-20210429142909186

2020-acl-A SIMPLE BUT EFFECTIVE BERT MODEL FOR DIALOG STATE TRACKING ON RESOURCE-LIMITED SYSTEMS

概要

问题动机

 现有DST模型虽然有很大的性能提升,但是他们往往都非常的庞大复杂,导致非常难以实现、调试、以及维护。

主要贡献

 作者提出了一个简单但是高效的基于BERT的DST模型,并在WoZ 2.0数据集上取得了SOTA。

  • 利用知识蒸馏的方法降低模型复杂度

  • 模型参数量不会随着槽实体的数量增长而增长

  • 模型可以适应领域的动态变化

相关研究

  • 2016-acl-Neural belief tracker: Data-driven dialogue state tracking

  • 2018-acl-Global-locally self-attentive encoder for dialogue state tracking

  • 2019-NAACL-Bert: Pre-training of deep bidirectional transformers for language understanding

  • 2015-arXiv-Distilling the knowledge in a neural network

  • 2015-CoRR-Deep compression: Compressing deep neural network with pruning, trained quantization and huffman coding
  • 2019-arXiv-Distilbert, a distilled version of bert: smaller, faster, cheaper and lighter

模型

image-20210501092440481

模型压缩

 由于原生的BERT模型的参数量(110M)所以非常耗费计算资源,如果将其作为我们模型的一部分将会很难部署在那些小容量的移动设备上。因此,作者利用Knowledge Distillation 技术将BERT模型进行压缩使其成为一个小模型。

 Knowledge Distillation 旨在教师模型的知识迁移到一个跟精简的学生模型上。其训练目标就是使得学生模型的输出与教师模型一致,隐含了学生模型学习到教师模型的知识。作者用一个已经预训练过的Bert模型作为教师模型,再设计了一个规模小很多的学生模型:

image-20210501093532463

然后训练他们,损失函数就是二者的输出的交叉熵损失:

$\tau$: 超参数,被设置为 10

经过上述操作,就可以把学生模型用于DST模型中了。

BERT-base DST

 简单来说,就是给定对话上下文和候选槽值对,模型将输出一个对候选槽值对的相关度评分,类似于句子对分类任务。第一个输入对应于对话上下文,它由前一个回合的系统话语和当前回合的用户话语组成。两个语句被[SEP]标签分开。第二个输入是候选槽值对的token序列。输入表示为:

$M$: 输入的token数量,包含[CLS]、[SEP]

根据对应于第一个特殊标记(CLS)的输出向量,候选槽值对相关的概率为:

在每一轮预测中,模型会对所有的候选槽值对逐一评分,之后,只选择预测概率至少等于0.5的对作为本轮的最终预测,然后使用新预测的槽值对在之前的状态下更新相应的值。例如,假设用户在当前轮指定了一个 food = chinese 的餐馆,如果目前的状态没有指定food就将food=chinese添加进去,如果状态中已经有food = korean 那就将其替换。

实验

数据集

 数据集采用标准的WoZ 2.0 数据集。包含3个槽:food, price, area。在一个典型的对话中,用户会首先通过指定这些插槽的值来搜索餐馆。随着对话的进行,对话系统可能会向用户询问有关这些插槽的更多信息,并且用户会回答这些问题。用户目标可能会随着对话而动态变化。与之前的工作类似,我们主要关注两个关键的评估指标:联合目标的精度回合请求的精度

结果

image-20210501101328293

image-20210501101529239