李宏毅DLHLP.31.Dialogue State Tracking (as Question Answering)

介绍

本门课程是2020年李宏毅老师新课:Deep Learning for Human Language Processing(深度学习与人类语言处理)
课程网站
B站视频
公式输入请参考:在线Latex公式
Dialogue State Tracking aka DST,是 task-oriented dialogue的核心模块。task-oriented dialogue比较复杂包含很多模块,大体构架如下:
在这里插入图片描述
Input: several sequences, Output: a sequence
以前State Tracker前面要接NLU(nature language understanding)模块。现在进化了,直接吃input,变成端到端模型了
插曲
在这里插入图片描述
这个比赛17年之前叫:Dialog State Tracking Challenge (DSTC)
具体来说DST就是做对话的摘要,例如:
在这里插入图片描述

State简介

State通常是由Key和Value组成,下图是Dialogue State,可以表示为A set of (key, value)
在这里插入图片描述
以上图为例,则可以认为冒号前边是Key,后边是Value
Key通常是事先定义好的,Value则是Key的一组取值,通常是离散的,例如星期几?当然也有取值范围,例如就餐人数,到达时间等。
早期Key的个数比较少的时候,没有对Key进行划分,后来Key的个数比较多了以后,就再把Key分为两个部分:Domain和Slot
例如上面的的例子中:

DomainSlotValue
hotelprice rangemoderate
hotelinternetyes / no
restaurantprice rangemoderate

Domain意味着主题,相同则主体相同,Slot则表示主体的某个属性,不同主体属性相同,取值范围也就一样。不同属性,取值范围通常也不同。

DST数学描述

DST可以表示为a sequence of sentences
S 1 U 1 S 2 U 2 ⋮ S T U T \begin{matrix} S_1\\ U_1\\ S_2\\ U_2\\ \vdots\\ S_T\\ U_T\end{matrix} S1U1S2U2STUT
What the user and agent have said
S: agent, U: user
Key k k k include domain and slot
k e y 1 : { v 1 1 , v 2 1 , ⋯   , v n 1 1 } k e y 2 : { v 1 2 , v 2 2 , ⋯   , v n 2 2 } k e y 3 : { v 1 3 , v 2 3 , ⋯   , v n 3 3 } \begin{matrix} key_1:\{v_1^1,v_2^1,\cdots,v_{n_1}^1\}\\ key_2:\{v_1^2,v_2^2,\cdots,v_{n_2}^2\}\\ key_3:\{v_1^3,v_2^3,\cdots,v_{n_3}^3\}\end{matrix} key1:{v11,v21,,vn11}key2:{v12,v22,,vn22}key3:{v13,v23,,vn33}
DST就是要:Select the correct value for each key

Corpus

MultiWOZ 2.0

[Budzianowski, et al., EMNLP’18]Multi-domain,有7个,但是有2个domain数据比较少,通常不用
在这里插入图片描述
WOZ的由来:绿野仙踪Wizard of OZ,这个故事中的巫师是由人来控制的。
引申到计算机领域就是一种收集数据的方式
在这里插入图片描述
例如这个数据集就是找两个人,让他们分别扮演两个计算机,一个是订票人,一个是订票系统,他们之间的对话就是这个数据集的来源。

Schema-Guided Dialogue (SGD)

[Rastogi, et al., AAAI’20] 最新的数据集,slot很多
在这里插入图片描述
这个数据集的生成方式用了部分AI:先用simulator根据规则生成一些关键字,然后按template,生成句子,这两个步骤是机器完成的;然后再由人把机器生成的句子进行改写,使得句子更加接近人类语言。
在这里插入图片描述

CrossWOZ

[Zhu, et al., TACL’20],这个是一个中文的corpus
在这里插入图片描述
在这里插入图片描述

挑战

Infinite values

Some slots have almost infinite possible values (e.g. leave time, phone number)
有些模型将这些无穷取值利用近似的方法来模拟,例如时间,每隔10分钟设置一个点。
但是类似电话号码,就很难穷举,因此有人想到,用QA的方法来解决这个问题:
在这里插入图片描述
把QA里面的knowledge source替换为上面的数学表达,也就是Dialogue History,然后把question替换为想要知道的slot,例如我们想要知道电话号码,就把question替换为What is the phonenumber。模型就会把对话中人念电话号码那段截取出来,当做SQuADS来解。
在这里插入图片描述

New Service

通常我们需要在系统里面加新的Key的时候非常方便,例如:
在这里插入图片描述
上面是我们现有的数据,提问可能是:
What is the destination of train?
假如我们要加一个Taxi的Key,提问:
What is the destination of taxi?
将DST当做阅读理解或者说QA来解的模型有:

TRADE

TRAnsferable Dialogue statE generator[Wu, et al., ACL’19]
在这里插入图片描述
左边是文章,也就是dialogue history,是一个BiLSTM的结构。右边是question,也就是DST的Key。
可以看到上图中右边吃Domains和Slots,每个值都是一个向量,可以和模型一起训练,也可以是预训练向量,例如:GloVe。把Domains和Slots concat起来丢进模型的State Generator(RNN),State Generator和左边dialogue history的embedding做attention,得到一个Slot Gate,里面有三个形态(PTR代表要从dialogue history中抽取一段),然后得到一个word distribution,然后生成一个word sequence,就是最后的DST的Value。
下面是原文将Slot的embedding做相关性可视化的结果,可以看到红框中的Slot有比较相似的embedding。
在这里插入图片描述
这个文章中还有一个很有意思的事情是:Zero Shot
在这里插入图片描述
Zero Shot的意思是五个domain只训练其他四个,然后在最后一个上测试,可以看到Taxi这个domain上还不错,Joint和Slot是两种Evaluate metric,Joint是所有的key value都答对才算正确,Slot貌似部分Key答对就算对。
Taxi之所以能弄好,估计是火车那个domain包含的key有涵盖taxi的key
在这里插入图片描述
这里还有一个和Zero Shot相关的操作:Embedding from Description [Rastogi, et al., AAAI’20]
假如说我们的Key的domain和slot有相关的描述:
在这里插入图片描述
(上图中的Service相当于Domain)那么这个时候我们可以把这些描述丢进类似BERT的预训练模型中去,那么得到的embedding表示再丢DST里面,这个时候如果一个新的Domain进来,虽然DST不认识或者没见过这个Domain,但是Domain的描述经过预训练模型后,由于有相似性,那么DST就会有机会直接学会如何回答相应的Value。

Slot Carryover Prediction

[Gao, et al., SIGDIAL’19]
在这里插入图片描述
这个模型加了一个分类器,每次对话前都判断用户提问是否改变了条件,例如用户开始就说要定一个四星酒店,那么后续步骤中这个四星酒店的条件就固定下来,不变,不用每次都全部调用QA模型进行回答。
在这里插入图片描述

DST QA

[Zhou, et al., NeurIPS Workshop’19]
这个模型就是典型的把DST当做QA来做,这里的一个创新点就是把Key (domain, slot)看做是有关联的,例如预订酒店,那么如果打车目的地可能就是这个酒店。考虑Key直接关系的部分在模型图中右下角,不展开。
在这里插入图片描述

SimpleTOD

TOD是Text to Dialogue的缩写,就是直接把Key当做Text丢GPT-2,然后预测Value,整个思路也不是用QA模型,直接当做LM来玩。
在这里插入图片描述
结果在MultiWOZ 2.1上拿了SOTA:
在这里插入图片描述

看了一下文章的例子:
在这里插入图片描述
就是抽Key Value

Reference

• Shuyang Gao, Abhishek Sethi, Sanchit Agarwal, Tagyoung Chung, Dilek HakkaniTur, Dialog State Tracking: A Neural Reading Comprehension Approach, SIGDIAL, 2019
• Ehsan Hosseini-Asl, Bryan McCann, Chien-Sheng Wu, Semih Yavuz, Richard Socher, A Simple Language Model for Task-Oriented Dialogue, arXiv, 2020
• Chien-Sheng Wu, Andrea Madotto, Ehsan Hosseini-Asl, Caiming Xiong, Richard Socher, Pascale Fung, Transferable Multi-Domain State Generator for TaskOriented Dialogue Systems, ACL, 2019
• Li Zhou, Kevin Small, Multi-domain Dialogue State Tracking as Dynamic Knowledge Graph Enhanced Question Answering, NeurIPS Workshop, 2019
• Abhinav Rastogi, Xiaoxue Zang, Srinivas Sunkara, Raghav Gupta, Pranav Khaitan, Towards Scalable Multi-domain Conversational Agents: The Schema-Guided Dialogue Dataset, AAAI, 2020
• Qi Zhu, Kaili Huang, Zheng Zhang, Xiaoyan Zhu, Minlie Huang, CrossWOZ: A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset, TACL, 2020
• Paweł Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Iñigo Casanueva, Stefan Ultes, Osman Ramadan, Milica Gašić, MultiWOZ – A LargeScale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling, EMNLP, 2018

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值