Paper: [ACL2020]SAS: Dialogue State Tracking via Slot Attention and Slot Information Sharing
Link: https://www.aclweb.org/anthology/2020.acl-main.567.pdf
对话状态追踪(Dialogue State Tracking, DST) 的目的,在于从历史的对话记录中推断出当前的对话状态(一般以槽-值对的形式表示),基于对话状态得到用户的真实目的。在这里,借用这篇文章中的一张例图,来看看History, Slot(槽)和Slot-value pair具体指什么:
在本文的Intro部分,作者首先介绍了以往DST任务存在的一些问题:
-
现有的基于原始对话来生成对话状态的方法,一般面对两个问题:一是如何从原始对话中选取出与当前状态相关的信息,二是当前对话所需的信息可能出现在很多轮前的对话内容中,如何跨越长距离来抽取所需要的相关信息;
-
相同领域或包含相同属性的槽往往具有一定的相关性,能够互相提供一定的指导信息,尤其是对于一些数量较少的槽。
基于以上两个问题,本文提出了具有如下两个特点的SAS(Slot Attention and Slot Information Sharing) 模型:
- 通过 Slot Attention 从历史记录中抽取各个槽所需要的相关信息;
- 通过 Slot Informaiton Sharing 建模各个槽之间的关联性,实现槽之间的信息共享;
具体地,SAS是一个基于sequence-to-sequence的模型, 他包括四个部分构成:
-
Encoder: 通过GRU来进行对话历史内容的编码;
-
Slot Attention: 目的在于从过滤对话记录中的无关噪声,捕捉到对当前槽值所需要的信息作为 context vector;例如计算第 j j j个槽对应的context vector,则首先通过GRU对slot name进行编码,然后与对话历史记录进行Slot Attention计算:
-
Slot Information Sharing: 目的在于实现相关slot之间的信息共享, 作者具体通过两种方式判断两slot间是否存在关联:
-
Fix Combination Method
- 分别计算所有slots中slot names两两之间的相似性和slot types (slot type是指这个slot所对应指代的类型,例如resuaurant-area是一个地点类型的slot,而 restaurant-book day 是一个时间类型的slot) 两两之间的相似性,得到两个相似性矩阵。
- 通过一个范围在[0,1]之间的超参数 α 对 slot name 和 slot type 的相似性进行融合:
- 通过将超参 β 作为相似阈值计算最终的相似度矩阵 M, 其中,若
M
i
j
=
1
M_{ij}=1
Mij=1, 则认为第
i
i
i个slot和第
j
j
j个slot之间存在信息共享:
-
K-means Sharing Method
- 分别计算所有slots中slot names两两之间的相似性和slot types
- 通过K-Means算法将相似度值聚类为两类,一类代表该值对应的两个slot之间是相关的,即 M i j = 1 M_{ij}=1 Mij=1,另一类则表示不相关;
-
基于相似矩阵 M M M和 Slot Attention得到的context vector, 将存在关联的slot的context vector相加进行融合:
-
-
Decoder: 目的在于预测每个slot对应的值,具体包括两步完成: 首先,设计slot gate模块,预测slot的value是否被某个用户所包含,若包含,则抽取出对应的value;
- 第一步,设计 一个三分类的分类器Slot Gate,对编码层的隐状态进行三分类,若分类结果是 ptr, 则继续进行具体value的抽取;若是 none 或 dontcare, 则将对应slot的值填充为not mentioned或do not care;
- 第二步,以 Slot Information Sharing 中得到的
i
n
t
j
int_{j}
intj为初始化表示,通过GRU对slot进行编码:
最后,根据计算的概率从词表或Dialogue History中拷贝具体所需的Value:
作者在MultiWOZ数据集上进行了实验,SAS模型取得了sota效果:
并通过消融实验分析了各个模块的作用:
了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋