Amendable Generation for Dialogue State Tracking
对话状态追踪的可修改生成
abstract
Recent dialogue state tracking tend to perform one-pass generation of the dialogue state based on the previous doalogue state
模型在当前轮次的错误很容易传播到下一轮对话状态的生成,错误传播
论文提出新的可修改对话状态的模型,模型分两步生成:(1)根据当前轮次的对话和上一轮次的对话状态生成当前轮次的原始对话状态(2)修改第一步生成的原始对话状态
目的是学习到更鲁棒的对话状态
Introduction
背景:从预定义曹植(OOV问题)–》从对话话语中去生成提取对话状态(效率不高,需要针对对话历史从头到尾预测)-----利用上一轮的对话状态代替对话历史,因为对话状态就是对话历史的压缩表示-----》编码上一轮对话状态和当前对话历史,采用状态预测和生成器去完成对话状态追踪(模型的准确率收到状态预测器的限制)----------》将对话状态的生成当做是因果模型,序列到序列。(编码时采用了上一轮的对话状态,存在错误传播问题,缺乏修正错误的复核程序)-----》本文的模型
在训练的过程中这种错误的对话状很难修复,同时出现的次数较少,我们使用负采样的工作。
Methodology
Basic Generation
问题定义:
表示共T轮的对话话语
表示第t轮的对话话语
表示第t轮的系统回复
表示第t轮的用户话语
表示每一轮对话话语的对话状态
表示第t轮的对话状态,
表示第i个域槽
表示第i个域槽的相关槽值
使用**,**表示not mentioned 和 don‘t care域槽值
表示第t轮的对话话语
在第一阶段的基本生成中,当前轮次的对话话语被特殊标记包裹,以表示对话话语的界限
并且使用分别添加在第t轮的系统回复和第t轮的用户话语之前
表示第t轮的对话状态,I表示在不同的领域中共有I个域槽
同时输入时使用包裹对话状态。
如上AG-DST的模块概述图,在第一阶段中,输入当前轮的对话话语和前一轮的对话状态,从而生成原始对话状态(Primitive DS)。公式如下:
在输入时使用包裹整个输入序列,以提示模型当前处于生成原始对话状态阶段
输入时每一个字的嵌入是Position Embedding+Role Embedding+Segment Embedding,其中重点是
Position Embedding 用来区分每一个字的位置,
Role Embedding主要用来区分对话中的角色,
Segment Embedding 用来区别每一段的区别
Amending Generation
在修订生成时,输入当前的对话和第一阶段生成的原始对话状态
表示修订新生成的对话状态,在修正阶段时,与基本生成模型共享参数。
使用包裹与基本生成进行区分
Negative Sampling
负采样的目的促进生成过程的有效学习,提出这种策略,去主动挖掘模型中出错的示例(生成错误的槽值、未能填充更新某些曹植),作者的做法是随机的替换错误的槽值。
替换的部分是这个
Training Objective
Experiments
Datasets
使用的是MUZ 2.2,修复了2.1数据集中17.3%的注释错误,使用MUZ2.0单域数据集
Implementation Details
论文的实验可以使用很多大型预训练生成模型,使用GPT-2,batchsize=6 在4张v100上,跑40epoch
Experimental Results
![image-20220326115604023](https://i-blog.csdnimg.cn/blog_migrate/f197548b2814b1df8c2c7e36bf65c06d.png)
可以看到AG-DST sota了。
Analysis
Amending Generation
为了展示论文中的修正生成的效果,到底有没有起作用,作者做了以上的实验。不加负采样的生成,是输入第一阶段的输出,NS 的负采样是随机负采样错误的槽值,NS+指的是启发式负采样,指交换域槽之间的相关的槽值(比如出发地和目的地的名称类似的)
Visualization
![image-20220326115828655](https://i-blog.csdnimg.cn/blog_migrate/f436953015de3ce687ef29680e2095d4.png)
展示两个步骤的生成中Attention可视化,在基础生成阶段可以看到对于槽restaurant area和people的槽值分别是从上一轮的对话对话状态和用户话语中复制来的,但是对于restaurant-name在第一阶段生成错误了,但是在第二阶段根据原始对话状态成功的将错误的对话状态修改正确了。
Error Analysis
作者分析在一次性生成的DST 模型当中,存在三种错误(1)槽值不更新(2)槽值更新的不正确(3)相关槽值混淆
![image-20220326120318633](https://i-blog.csdnimg.cn/blog_migrate/51086ec34f347d6bc080edf6249d735f.png)
作者在MUZ2.2里对模型出现的错误类型进行统计,inconsistent annotation指的是数据集中的错误
Effect of Previous Dialogue State
主要是为了展示不同的输入对模型的效果影响,第一行是使用全部的对话历史,第二行是使用全部的对话历史和上一轮的对话状态,第三行是适用当前轮次的对话话语和上一轮的对话状态。证明使用当前轮次的对话话语和上一轮的对话状态与第二行比较几乎不影响性能,也表明这样的做法的有效性。
Effect of Pre-training
使用不同的预训练模型进行测试
表明本论文方法对预训练模型的DST的性能提升是有效果的
Effect of Special Tokens
进一步证明使用特殊符号的有效性