An End-to-End Dialogue State Tracking System with...

1. Introduction

在多领域对话中,用户通常在对话中请求不同的服务。在这种情况下,要求对话系统在所有这些服务之间无缝运行,这使DST更具挑战性。只有当对话状态跟踪器准确地估计不同域之间的对话状态时,对话系统才能为后续的动作选择做出正确的判断。在这种情况下,第八届“对话系统技术挑战赛”中提出了“模式指导的对话状态跟踪”赛道。在这场竞赛中,使用模式指导的方法预定义了一系列服务。每个域中的不同开发人员提供不同的服务。每个服务的意图和槽位都附有一个用自然语言来描述其语义的句子,该句子的语义可以被系统识别并在零镜头学习中推广到新模式(Rastogi et al.2019)。图1显示了实现此目标的对话跟踪示例。要求参赛者在每个用户回合中跟踪状态。对话状态由以下部分组成:活动意图,请求的插槽和插槽值。同时,测试数据集包括训练集和验证集中不存在的新服务。提议的系统应该能够跟踪这些新服务的对话状态。 DSTC 8 Track 4的主要挑战如下:

1.与传统的DST系统不同,此任务中用户或系统产生的任何字符串片段都可能成为插槽值,这使得模型无法直接在预定义的值列表中预测未见的插槽值。同时,字符串片段可能是多域对话系统中不同插槽的答案,而传统的DST系统无法使用序列标记模型来处理它。

2.由于测试集中许多服务在训练集中并不存在,因此我们建立的模型必须具有解决零击服务状态跟踪问题的能力。

3.在每个用户回合中,必须预测特定服务的意图和槽值。如果某个回合预测错误,在传统DST系统中该错误将会被后续状态继承,从而降低联合目标精度。

为了解决上述三个问题,我们提出了两个独立的模型来跟踪每个用户回合中所有槽和意图的对话状态。我们的DST系统的主要贡献包括:

1.我们提出了一种端到端DST框架,该框架不继承以前DST结果的信息,从而克服了传统DST系统的错误累积问题。我们完全的端到端DST框架由用于非分类时隙预测的机器阅读理解(MRC-DST)模块和结合了大规模预训练模型的Wide&Deep DST模型(WDDST)组成。

2.两种模型都将意图和槽位的自然语言描述作为输入,以识别意图和槽位的语义,而不仅仅是将它们视为标签。这允许零镜头概括到新服务。实验表明,这些模型对于零镜头服务预测具有良好的效果。

3.在WD-DST的特征工程中,我们利用数据增强来提高模型性能和零击归纳的能力。

在这里插入图片描述

2. Related work

对话状态跟踪是对话管理的重要模块。 它旨在描述用户当前的对话状态,以便系统可以选择正确的对话动作。 传统的DST系统假定每个时隙的候选值都在限制数之内。 但是,该假设不适用于事先具有无限数量的值的插槽。 对于未见领域,更难提前预先定义插槽值

与DSTC 8 Track 4中span-based slot类似,多项研究都将固定槽值转换为对话上下文的子序列。通过这种方式,不需要为每个槽位进行值归一化。传统的DST模型使用一系列更新规则或一些判别模型(根据话语的NLU结果和先前的DST结果构造出来的)来估计当前的对话状态。设计规则很麻烦,并且随着对话的继续,错误会不断累积。针对此问题,研究人员提出了许多神经网络以合理的方式完成DST任务。 Perez和Liu(2017)使用记忆网络作为状态跟踪器来实现DST模块。据我们所知,这是首次将DST问题视为阅读理解问题的研究。但是,记忆网络的逻辑过于复杂,该方法只能解决固定词汇集中的问题。Gao等(2019)使用简单的基于注意力的RNN指向对话中的槽值,但他们的系统使用三个不同的模型组件进行序列预测。他们的分阶段系统存在错误累积问题,且无法有效处理zero-shot问题。 Wu等(2019)使用TRADE-DST跟踪槽值,其模型基于生成和复制机制,并基于双向LSTM构建(Hochreiter和Schmidhuber 1997)。 Chao and Lane(2019)使用BERT-DST解决了状态跟踪问题,但他们的模型每次只能处理一轮对话,而完成状态跟踪问题时需要一些其他对话框状态更新机制。

第8届DSTC Track 4比赛于2019年7月开始。测试阶段于10月7日开始,对模型的评估于10月14日结束。 在我们的工作中,我们注意到张等人(2019)在10月8日发布了他们对多域状态跟踪的研究。 他们使用BERT作为对话历史记录的编码器,使用分类方法来解决基于列表的插槽问题,并使用MRC方法来解决基于跨度的插槽问题。 他们的解决方案与我们在这场比赛中所做的类似。 但是我们的解决方案在几个方面与他们的有所不同。 首先,我们没有联合训练这两个任务的模型。 其次,我们将数值槽转换为基于跨度的槽,并使用MRC模型进行求解。 第三,我们使用宽和深分类模型来解决基于布尔和基于文本的槽位跟踪问题。 第四,我们将整个对话历史记录用作输入以避免错误累积,而他们使用固定长度的对话历史记录作为输入。

我们提出的解决方案中利用了MRC模型和数据增强技术。 MRC可被视为问答任务的扩展,这意味着使用一个模型来阅读文章并回答与之相关的问题(Rajpurkar等人,2016年)。2018年以来,已经提出了几种基于Transformer的大规模预训练模型(Vaswani等,2017)。 BERT(Devlin等人2019)和RoBERTa(Liu等人2019)都是基于Transformer,XLNet(Yang等人2019)是基于TransformerXL。最近的研究表明,Transformer-XL可以对更长的文本依赖信息进行建模(Yang等,2019)。由于XLNet在SQuAD 2.0(Rajpurkar,Jia和Liang 2018)和RACE(Lai et al.2017)中均具有出色的性能,因此在我们的解决方案中使用XLNet作为MRC的基础模型来实现插槽值提取。我们使用Google,百度和Youdao提供的开源翻译和同义词服务,并使用基于Transformer的英语和汉语之间的反向翻译模型进行数据增强(Edunov等人2018)。数据增强增强了模型应对zero-shot问题的能力,这是DSTC 8 Track 4面临的最大挑战之一。实验结果表明,我们提出的模型在使用数据增强后取得了很大的改进。
在这里插入图片描述

3. Model

在图1中,在每个用户回合中,我们应该预测到目前为止的用户插槽状态。 所有服务都有两种类型的插槽:分类插槽和非分类插槽。

非分类槽(non-categorical),也称为spanbased slot,因为它通常由上下文中的子字符串填充。 因此,此类插槽其开始和结束位置被限制在架构中的上下文中,我们使用MRC模型解决了基于跨度的插槽跟踪问题

类别插槽( categorical slot)(也称为基于列表的插槽)附带有一个列表,该列表由架构中所有可能的插槽值组成。所有基于列表的预测插槽值均在预定义列表内。通过分析,我们发现所有基于列表的槽都可以分为三种类型:布尔型槽,基于文本的槽和数字槽
1)布尔槽由{True,False,dontcare,unknown}中的一个值组成。除了模式中提供的候选值之外,还有两个其他候选值“ dontcare”和“ unknown”被增加进来,以满足每个基于列表的插槽的状态跟踪的要求,并在插槽说明中显示了其他关键信息,例如“是否可以免费进入景点”。
2)基于文本的插槽信息包括插槽说明和插槽值,例如“航空公司名称”和“达美航空公司”。
3)与其他两种类型的插槽不同,数字插槽包含的值直接与上下文相关。仅当填写答案时,数字槽的值才会转换为阿拉伯数字。鉴于这种类型的槽可以像基于跨度的插槽一样以更合理的方式解决,对于数字插槽的这种发现发现令人惊讶。因此,在以后的实验中,我们将所有数字插槽转换为基于跨度的插槽格式,并将其视为非分类插槽。对于基于布尔和基于文本的广告位,我们使用Wide&Deep模型进行处理。

图2显示了我们系统中两个模型的体系结构。 图2(a)显示了使用MRC-DST模型解决基于跨度的插槽和数字插槽跟踪问题。 图2(b)显示了针对布尔插槽和基于文本的插槽跟踪问题的WD-DST模型。 DST任务是通过这两种模型的组合来完成的。

4. MRC-DST for Span-based Slots and Numerical Slots

在图2(a)中,我们使用Yang等人提出的XLNet作为MRC模型,这是因为它能够处理任意长度的输入,且在MRC任务中表现出色,例如SQuAD 2.0和RACE。 该模型将输入的问题和对话上下文表示为单个打包序列。 假设 S = [ s 1 , s 2 , . . . , s n ] S = [s_1,s_2,...,s_n] S=[s1s2...sn]是对话上下文, D = [ d 1 , d 2 , . . . , d m ] D = [d_1,d_2,...,d_m] D=[d1d2...dm]是每个插槽的自然描述。 我们将它们连接作为XLNet的输入,并获得它们的对应表示R,其中[CLS]是在每个样本前面添加的特殊标记,[SEP]是特殊的分隔符标记。 一个可回答的分类器基于[CLS]编码和起始位置编码。 引入起始向量 V s t a r t V_{start} Vstart和结束向量 V e n d V_{end} Vend来预测微调期间的回答范围。 我们可以将流程形式化为:
在这里插入图片描述
其中 F C ( ) FC() FC()是全连接网络, r s t a r t P o s r_{startPos} rstartPos是答案范围中第一个词的表示,我们应用逻辑回归损失来预测回答问题的能力,以及标准跨度提取损失来回答问题。我们可以按如下方式计算损失:
在这里插入图片描述

5. WD-DST for Boolean Slot and Text-based Slot

在图2(b)中,我们使用Wide&Deep模型来解决基于布尔和基于文本的槽位跟踪问题。 推荐系统中使用了Wide&Deep模型(Cheng等人,2016),其优势在于将两种不同来源的特征结合在一起并进行预测。 图2(b)中的模型是使用RoBERTa的深层特征和传统特征工程中的宽泛特征的联合模型。 RoBERTa(Liu et al.2019)是一种深度匹配特征提取器,其输入包括两个部分。 第一部分与XLNet相同,是直到当前时刻的对话历史记录 S = [ s 1 , s 2 , . . . , s n ] S = [s_1,s_2,...,s_n] S=[s1s2...sn]。 第二部分 D 0 D_0 D0是槽位的自然语言描述和待判断的候选槽位值的拼接,记为“槽位描述:槽值”。 这两个部分一起作为RoBERTa的输入。 [CLS]的最后一层表示被视为深度匹配特征。

不同于基于时间跨度的slots,该时段关注时间,位置和名称,布尔槽位和基于文本槽位涵盖了广泛的类别,包括“文化活动的类型”,“航班是否是直航航班”和“提供航空运输服务的公司”等。问题的多样性对所提出模型的表达能力提出了更高的要求。为了更好地提高模型性能,我们使用数据增强来同义词化关键词汇和槽值。来自外部API的同义词和每个插槽值的前10个反向翻译结果将添加到其相似的单词集中。例如,“剧院”是“事件3”中“事件类型”槽值之一,可以通过使用类似的单词和反向翻译进行扩展,最终获得约67个同义词,例如“手术”,“舞台”, “电影”,“表演”,“表演”,“舞台”,“戏剧”,“第三幕”,“演艺界”和“百老汇”。借助这些同义词,我们可以通过构造许多语言特征来更好地解决zero-shot问题。此外,我们以深度特征作为最高级DNN的输入来引入会话状态的一些离散功能,以增强模型的功能。一些重要的和基本的对话特征可以归纳如下:

  • 说话的语气:疑问,否定,陈述(通过使用从训练数据集生成的正则表达式)。
  • 话语是否包含布尔插槽描述或这些描述的同义词
  • 话语是否包含基于文本的槽值以及这些槽位值的同义词。
  • 该插槽在先前的系统操作中是否存在? 如果它存在,哪个动作? 通知,请求,提供或确认?
  • 答案是是或否
  • 该插槽当前是否出现在请求的插槽中?
  • 在整个对话中当前回合的信息,例如回合号。
  • 之前是否提到过该槽位?

共有83个手工制作的离散特征被用作宽特征。 全连接层用于转换[CLS]嵌入。 最后,将768维深度特征与宽特征缝合在一起,作为最上层的输入,并共同微调模型。 该过程可以总结为:
在这里插入图片描述
我们将所有候选槽位值的分类得分排序,以与最高得分对应的值作为最终槽位值。

6. Experiment

6.1 Data Sets and Indicators

表1列出了数据集的基本特征。 它是显示在测试数据集中约有50%的服务为zero-shot服务。 这是任务的最大挑战。
在这里插入图片描述
联合目标准确性是用于对提交内容进行排名的主要评估指标。 联合目标准确度是在用户一个回合中正确预测所有槽位分配的平均准确度。 对于非分类槽位,模糊匹配得分用于奖励具有基本事实的部分匹配。 对于分类槽,基本事实与预测字符串之间的完全匹配表明成功。 其他评估指标包括主动意图准确性,槽位标记F1得分,请求槽位F1得分和平均目标准确性。 在此竞赛中,参赛者可以使用外部数据集和资源,包括使用经过预先训练的模型来提高建议系统的性能。

6.2 Input Optimization

我们在所有对话之前附加“ User:”或“ System:”标签,以帮助模型区分系统表达式和用户表达,然后按顺序将它们连接起来作为输入。 在离线实验中,添加区别标记的结果要好于不添加标记的结果。 在后面的实验中,对话历史记录中的所有话语都添加了区分标记。

在构建模型时,存在两个主要挑战:1)无法从最后一句话中检测到的插槽中识别插槽值; 2)电话号码往往是数字插槽的答案。

第一个问题是,当我们使用XLNet进行MRC时,当重要信息位于输入的末尾(尤其是在整个交互的最后一句话)时,槽值预测结果通常是错误的。例如,以“用户:我想预订两人经济型的餐厅”系统:我应该搜索哪个城市?预定什么时间?您是否有首选餐厅?用户:我想在早上11:30在村庄的圣何塞”作为输入,模型可以预测此对话历史记录中有一个“城市”槽位,但无法识别“San Jose”作为槽值。在XLNet和RoBERTa中应用时都存在该问题。由于时间限制,我们无法进行更多调查,而是使用一种简单有效的方法来处理该问题,即复制最后一个句子并将其附加到原始输入中。此输入技巧不会更改原始输入的含义,但会将MRC的最佳F1分数提高0.5%。同样,从理论上讲,应用填充token可以达到相同的结果,但是复制最后一个句子可以直接增加命中答案的概率。

第二个问题也很常见,那就是电话号码会干扰数字槽位做出正确的答案,例如“星级”槽位和“天数”槽位。 根据我们的分析,电话号码通常作为系统“ INFORM”操作中的信息出现,并且不会进入用户的对话状态。 因此,在预处理阶段,所有电话号码替换为“ phone”标签,可大大减少预测误差。

6.3 Intent Model and Requested Slot Model

用户意图识别和用户请求的插槽识别不是本次比赛的核心任务。 因此,我们无需为这两个任务付出很多努力,而仅使用基于RoBERTa的两类分类模型来解决它们。 我们将前九个会话与每个意图(或广告位)描述一起作为分类的输入。 该模型的最大输入长度为512,批量大小为16,学习速率为2e-5,dropout rate为0.1。 我们仅使用训练数据集来训练这些模型,并在十个时期的训练中选择开发数据集上的最佳模型作为最终模型。 开发和测试数据集的结果显示在表2中。在测试数据集中,意图分类模型的平均意图准确性为0.9482,所请求的插槽模型的F1分数为0.9847。
在这里插入图片描述

6.4 Span-based Slot and Numerical Categorical Slot

对于基于范围的槽位,我们使用数据集中提供的槽值的开始和结束位置将数据转换为MRC数据格式。 对于数字槽,槽跨度的位置未直接在数据集中提供。 在数据预处理阶段,我们首先使用正则表达式恢复所有数字槽的位置信息,然后将数字槽的信息转换为基于跨度的MRC数据格式。 对于数字槽值,话语中有两种样式,一种是英语表达,另一种是阿拉伯数字。 在最后的槽值填充阶段之前,数字槽值的模式将保持不变。 在最后的槽值填充阶段,所有数字槽值的模式都将转换为阿拉伯数字。

我们使用XLNet大型模型在TPU v3上进行实验,并使用与Yang等人相同的实验参数。表3显示了基于跨度的槽位的MRC-DST实验结果。 在开发数据集上,我们获得0.9889插槽标记F1分数。 因为只有一些服务仅出现在开发和测试数据集中,例如“警报”,所以我们将开发数据集用作补充,并在测试数据集上实现最佳的槽位标记F1得分0.9835。

除了关注整个插槽标记F1得分外,我们还关心zero-shot问题的表现,因为MRC-DST用于解决70%以上的插槽跟踪问题。 在测试数据集的最终评估结果中,我们的模型在zero-shot服务中的槽位标记F1得分为0.9818,跨距槽位的平均准确度为0.9745,这表明我们的模型有能力处理zero-shot问题。 该模型通过了解对话上下文和插槽的自然语言描述进行预测。 因此,对于zero-shot服务甚至zero-shot域,我们的模型都具有出色的性能。

我们还使用三种方法来解决数字槽位的跟踪问题,它们在开发数据集上的表现如表4所示。开发数据集上的实验结果表明,MRC优于其他方法。 使用MRC模型解决数值槽问题已取得最佳结果,精度达到0.9858,与Wide&Deep模型相比提高了0.03以上,而与RoBERTa分类模型相比提高了0.05。
在这里插入图片描述

6.5 Boolean and Text-based Categorical Slot

我们将RoBERTa(-base)用作深度特征提取器,并使用Adam优化器来优化Wide&Deep模型,其中β1= 0.9,β2= 0.9999, ϵ = 1 e − 6 \epsilon= 1e-6 ϵ=1e6和L2权重衰减为0.01。 批处理大小为16,学习率为2e-5,词嵌入使用0.1dropout rate,并使用fp16训练。

WD-DST的结果如表5所示。我们将Wide&Deep模型与基于RoBERTa的分类模型的结果进行比较,来发现手工制作特征效果。 基于RoBERTa的分类模型在开发数据集上的平均准确度为0.9355,而Wide&Deep模型的平均准确度为0.9751。 与单一深度学习模型相比,Wide&Deep模型可以大大提高系统性能。 这是因为Wide&Deep模型的输入添加了许多手工语义特征,这比仅使用RoBERTa模型更有效。 深度语义理解特征和浅层语言特征的结合是布尔和基于文本的槽位跟踪任务的最重要因素。 此外,仅使用RoBERTa的模型存在一个问题,如果对话历史记录过长,则会截断一些关键信息,从而导致模型准确性下降。
在这里插入图片描述

7. Overall Results

对话状态通常可以在服务中共享,但存在一种特殊情况。当槽位值在一个服务的不同意图之间发生冲突时,当意图被切换时对话状态不能被共享。例如,在“Payment 1”服务中,当切换两个意图“MakePayment”和“RequestPayment”时,对话状态无法共享,因为两个意图的“amount”槽的值不同。基于我们的观察,我们对对话状态跟踪器应用了一个特殊的规则。一旦我们发现新的意图在“Payment 1”中打开,我们就清除历史状态信息以避免冲突。

利用上述模型和特殊规则,我们提出的系统在测试数据集上达到联合目标精度为0.8652,插槽标注F1-score为0.9835的结果。

我们对测试数据集做了一些有限的消融研究。结果如表6所示。采用MRC-DST和WD-DST结合文本增强的集成系统效果最好,比其他方法提高了10%以上。这是因为特征工程不受对话历史长度的限制,许多语言特征是可以人工构建的。在实验中,我们发现MRC-DST具有较强的语义理解能力。我们还使用深度学习语义表示来提高WDDST的泛化能力。结合数据增强技术可获得最优结果。实验结果表明,在zero-shot服务中数据增强可以提高性能,这与我们在开发数据集中的观察结果一致。
在这里插入图片描述
通过这两个端到端模型,我们在DSTC 8 Track 4竞赛中获得了Top 1的排名,最终结果如表7所示。

8. Conclusion and Future Work

在本文中,我们描述了我们在dstc8 track4比赛中的解决方案。我们采用两个RoBERTa分类模型来解决意图识别和请求槽识别问题。我们提出了一种端到端的MRC-DST模型来解决基于span槽和数值槽的状态跟踪问题。MRC-DST使用整个对话历史作为输入,并将插槽描述作为一个问题来提取答案。通过完整的端到端方法,我们实现了插槽标注f1 - 0.9835的得分,在参与团队中是最高的。对于布尔型槽和基于文本的槽,我们采用WD-DST模型求解。所有的意图和插槽将名称替换为其自然语言描述作为输入,使我们提出的系统能够解决zeor-shot问题。

在未来,我们将更加努力地探索统一的模型,例如统一的阅读理解模型,来跟踪所有插槽的状态。当输入端存在关键信息时,预训练的模型往往会做出错误的预测。我们通过复制和附加机制缓解了这个问题。我们计划对它进行更多的研究,并开发模型来提高预训练模型的可解释性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值