【论文笔记】An End-to-end Approach for Handling Unknown Slot Values in Dialogue State Tracking

An End-to-end Approach for Handling Unknown Slot Values in Dialogue State Tracking

概要

动机

​ 以前的方法通常假设预定义的候选列表,这些方法通常依赖于固定本体上的分类,或通过枚举候选列表分别对每个槽值对进行评分,输出列表中每个值的概率分布,因此不被设计来输出未知槽值。

贡献

​ 作者提了一种基于指针网络(PtrNet)的E2E架构,它本质上以提取方式执行状态跟踪,类似于SLU中常用于插槽标记的序列标记技术,它可以有效地提取未知的插槽值,并且在标准的DSTC2基准上获得最先进的精度。

  • 首先,作者的目标是DST中一个非常实用但很少被研究的问题,即在没有预定义本体的情况下处理未知的插槽值。
  • 其次,作者提出了一种基于PtrNet的无SLU的新E2E架构来执行状态跟踪。
  • 最后,作者还引入了一种有效的退出技术来训练该模型,它极大地提高了未知槽值的召回率。

模型

PtrNet

​ 在PtrNet架构中,类似于其他序列对序列(seq2seq)模型,有一个编码器,它接收输入并迭代地生成与每个输入位置的特征向量对应的一系列隐藏状态序列。还有一个解码器,它在加权编码状态的帮助下生成输出,其中权重是通过注意来计算的。在这里,解码器不是使用软max来预测一组预定义的候选对象上的分布,而是直接正常化每个位置的注意力分数,并获得输入序列上的输出分布。最大概率的索引是点位置,选择相应的元素作为解码器输出,然后输入到下一个解码步骤。编码器和解码器都基于各种RNN模型,能够处理可变长度的序列。

​ PtrNet专门针对输出对应于输入序列中位置的问题,广泛用于seq2seq任务,需要从输入进行seq复制。在其各种应用中,机器理解(一种问题回答的形式),如在(王和江,2016),是最接近我们如何将该模型应用于DST的。

​ DST的输出与机器理解一样,大部分时间都是输入序列中的一个字段,因此可以自然地表述为一个指向问题。解码器不必生成更长的输出序列,而只需要预测开始索引和结束索引,以识别字段。

DST Model

image-20210611094551683

  • 针对用户和系统的文本第一个词前面添加一个表明角色的词,如<sys><usr>
  • 通过一个BiLSTM将系统和用户的文本连接起来,并得到最终的隐藏层状态表征$h_t^f$;
  • BiLSTM得到的表征使用一个分类器。这里使用分类器的最主要原因是,针对某个具体的slot,有可能是用户根本就未曾提供该信息(对应nonpointable),也有可能是用户并不关心该slot的值(对应dontcare)等等,针对这些情况,显然是无需也不必在对话历史中找到某个具体的词或短语作为slot value的,因此需要使用一个分类模型,当分类结果为other的时候才需要使用后面要提到的pointer network;
  • 如果分类模型结果为other的时候,通过pointer network针对encoder的输入,在其上做point,这个过程分为两步:第一步预测一个value的起始点,第二步预测该value的终止点。因此这两步一起组成一个decoder,这个decoder的初始输入是待考察slot的类型

其计算过程如下:

首先第一步解码计算开始索引$s^0$:

image-20210611095309323

然后第二步解码计算结束索引$s^1$:

image-20210611095555829

最后,文中也使用了一些dropout的方法,即针对那些出现次数过于频繁的值,以某种概率将训练集中的该词embedding替换为0,从而让模型能够更多的从上下文结构中学习到该词。

实验

数据集

使用DSTC2数据集(亨德森等人,2014a)和Bobies对话数据集(2016)上进行实验。

image-20210611100241824

image-20210611100324185

结果

image-20210611100529671

image-20210611100555203