首页 > 编程知识 正文

对话(遗传算法的鲁棒性)

时间:2023-05-05 09:25:15 阅读:86782 作者:2386

在这次AI TIME PhD直播中,我们邀请了清华大学计算机科学与技术系的硕士生——的发夹项链,分享了—— 《任务型对话中语言理解的zqdtd性测试》

发夹项链:

清华大学计算机科学与技术系硕士生,导师是能干的玫瑰副教授。 研究方向为任务导向对话的zqdtd性测试,作为第一作者在ACL、AAAI会议上发表了论文。

背景

01

什么是面向任务的对话?

任务驱动的对话不同于开放式对话,它往往是完成任务、满足用户需求的对话过程。 例如,用小蜜或siri等语音智能助手订票或检查酒店。

面向任务的对话框架

上图是面向任务的对话的典型框架。 用户说一句话后,自然语言理解模块(NLU )将该词转换为机器理解的语义标签,并将标签发送到会话管理模块) DM )。 DM通过一些策略生成智能助手提供的语义标签,并将自然语言生成模块(NLG )生成的自然语言返回给用户。

这次,我们将对最初的模块——自然语言理解(NLU )进行zqdtd性能测试。

02

为什么要对自然语言理解模块进行zqdtd性测试?

首先,由于近年来预训语言模式的热潮,大多关注性能方面。 虽然面向任务的对话在实际生活中有很多应用场合,稳定性(即zqdtd性)也需要很高,但由于人们的兴趣相对较低,zqdtd性会测试现有NLU模型的zqdtd性,从而更全面地评价模型的能力

其次,现有的数据集(datasets )与现实场景相比相对理想化,只能反映纸面上的性能,往往缺乏zqdtd性好的测试和训练能力。 如下图所示,数据集的收集比较理想化。 是由收集数据的workers按照说明文件中的一些说明编写的会话数据集,其术语更加规范,表达方式也受文件中例子的限制。 因此,语言理想化,语言多样性不丰富。

然而,实际场景并非如此。

数据集与实际场景的复杂性比较

首先,在现实生活中,用户数量巨大,远远超过了工作器的数量,而且这些用户的语言也更加个性化。 如上图右侧的第一个例子所示,如果一个人想买去Leicester的票,会有各种各样的表现方法。

其次,语音输入时遇到语音识别错误、口语化等问题也是现实场景中的zqdtd课题。

同时,我们所处的世界存在着非常复杂的噪声,阻碍了系统的进程。

三种zqdtd性问题测试手段

语言多样性的问题。 实际用户的拼写、词汇具有更丰富的多样性。 这些多样性给NLU模型带来了zqdtd性的挑战。

口语特征问题(Speech要命的月饼)。 与书面语相比,口语在用语和语调方面可能有规范性等方面的差异。 同时导入口语输入的话,有可能会发生语音识别错误等。

干扰。 实际场景中存在各种各样的噪声,如背景噪声、信号干扰、拼写错误、语法错误等。

本文采用数据扩展(Augmentation )方法作为测试手段。 为什么数据放大可以测试模型的zqdtd性呢? 这样,现在我们有了原始的测试数据。 任何变化施加干扰都会生成新的测试集。 然后,用新的测试集测试模型。 如果新数据集上的模型性能明显下降,则相应的zqdtd性能可能较差; 如果下降少,则认为zqdtd性好。 以下是采用的4种数据的放大方式。

字干扰。 随机插入、删除或交换单词,进行同义词置换和槽值置换。 其中,随机增加、删除、替换词语进行测量,是模型对抗噪声扰动的能力; 同义词置换和槽值置换测试了模型对语言多样性的适应能力。

同义复述(Te

xt Paraphrasing)。简单地说,就是把一句话用不同的表达方式再讲一遍。这很显然是在测试语言多样性相关的zqdtd性。我们是用一个SC-GPT模型去实现,先把一句话的语义标签拿出来,再用这个语义标签生成一句同样意思的话。

模拟语音识别(Speech Recognition)。我们先用TTS(text to speech)系统把文本变成音频,然后再用语音识别系统(ASR),把音频转为文本。这样我们得到的文本就会模拟带有噪音、识别错误等经语音识别转换得到的文字的特征。其目的一方面是测试口语特征,另一方面是测试噪声扰动。

口语不流畅(Speech Disfluency)。口语存在许多不流畅的现象,比如说话时可能会产生停顿,可能会重复上一个词,犹豫一下再说,还可能会改口。比如这句话:“我要去买一张去北京,不对,是去上海的火车票”,这就是一个改口行为,话说到中途发现不对,于是重新说一遍。

我们刚才定义了三个方面的zqdtd性,提出了四种数据增广的方法去测试它。若每一个数据增广方法都构造了一个新的数据集,然后我们在这些数据集上进行测试,就可以看出此模型对应的zqdtd性如何。下表是一个checklist,是我们的zqdtd性的测试框架。我们可以看到,刚刚说到的Word Perturbation(词扰动)测试的是语言多样性和噪声扰动方面。剩下三个也有这样的对应关系。

实验测试框架

其实这个框架是可扩展的。你可以提出新的数据增广的手段,然后去测试不同的组合,或者说不同方面的zqdtd的对应情况。这也是我们框架的一个特点。


实验设定

我们选择了两个数据集,一个是MultiWOZ,一个是Frames。

它们的差异性主要体现在两个方面:一是数据量方面,MultiWOZ比Frames数据集的量要大;二是MultiWOZ的domain非常多,是multi-domain,但Frames只有两个domain。轮次,句子长度这方面两者相差得不是特别多。

数据集

我们列了五个模型作为测试对象,分别是MILU、BERT、ToD-BERT、CopyNet和GPT-2 。前三个模型为分类式模型,是给一句话的每个单词打标签。例如说,“我要一张去上海的车票”,那么“上海”两个字就会被打上标签,并分类是“目的地”的槽位。

后面CopyNet和GPT-2两种模型为生成式模型。我们还是输入“我要一张去上海的车票”这句话,然后模型就会生成一系列有固定规则的词语序列,例如像,“(买票,目的地,上海)”这样直接生成这个标签。

这是两种不同类型的做法。

同时BERT, ToD-BERT和GPT-2是预训练语言模型(Pretraining Language Model,PLM),剩下两种不是预训练模型。

五个测试对象


实验结果

MultiWOZ上的实验结果

最左边一列是模型,第二列是训练。训练有在原数据集和数据增广的数据集上的几项训练,即用刚才4种模型对元素做一个增广,观察这是否能增加其zqdtd性。右边是在原测试集(Ori.),和用四种不同数据增广方法增广出来在新测试机上的性能,分别是词扰动(WP)、同意词复述(TP)、语音识别(SR)和不顺滑(SD)。左右对比一下,我们就可以看到性能的下降。例如,MILU在原测试集性能是91.33 ,在语音识别方面掉到了77.98 ,存在性能下降,就能看出MILU在这方面的zqdtd性欠佳。再向右是四个不同测试集上的平均性能(Avg),和与增广数据集上比在原测试集上掉了多少(Drop)。我们可以看到不同模型的zqdtd性也有所不同。最后一列是在我们通过增强训练之后能恢复多少性能(Recov.)。


结论

首先,预训练的模型,比非预训练的模型更加zqdtd。第二,分类式模型,比生成性模型更加zqdtd。第三,口语特征可能是最具挑战性的这方面。因为我们看到口语特征对应的SR和SD掉的性能都较多,说明它比较有挑战性。最后,在经数据增广的训练集上训练可以增强模型的zqdtd性。


其他

我们也做了AblationStudy:在BERT 和MILU(预训练和非预训练模型)上对两种测试方法进行拆解。

首先,是对词扰动(WP)的拆解。词扰动,分为同义词替换、插入、删除、随机替换、槽值替换。可以发现,MILU对于一些没有见过的槽值(Slot),有一些没有见过的实体,识别得比较差;但是BERT作为预训练模型,见过更多一些,(比如说酒店,宾馆,电影的名字),它能知道这是一个实体。它们之间的zqdtd性性差距主要来自于这方面。

其次,是对口语不顺滑现象(SD)的拆解。口语不顺滑,分为停顿、重复、改口和重塑。后面两项没有什么影响;而插入停顿会产生一定的影响,其中影响最大的是改口。可以看到,模型在语言逻辑性方面的zqdtd性极弱,譬如它往往只是看到一些词就把它分为某一个类,完全不管前面有没有否定词。

最后我们做了真人评估(Human Evaluation),来保证在真实场景中的合理性。如下表的右侧所示,超过95%的句子都被真人标注者标为合理的数据增广,也就是这些增广符合我们的设计初衷。

下表是我们向真人收集的两百余句话的小规模数据。给真人一个语义标签,让他自己组织一句话,把声音录下来,再识别——这其实是一个完全真实的场景。在最右边这一列,可以看到这个真实测试集比我们的增广测试集还要困难。一是因为它可能会存在多种zqdtd性问题,二是这批收集者和以前收集者的说话风格可能完全不一样。尽管数据集难度增加,我们依然可以看到,经过增广的训练,模型的性能有显著提高。也就是说,增广数据上的训练对真实场景是有一定帮助的;也侧面说明,我们的增广测试一定程度上能反映真实zqdtd性情况。

最后我们来总结一下。

第一,我们对语言理解的zqdtd性分成了三大方面——语言多样性、口语特征和噪声扰动。第二,我们提出了四种数据增广的方法作为zqdtd性的测试手段。我们发布了一个名为LAUG的toolkit,欢迎大家关注。第三,我们在两个数据集上,做了五个模型的深度实验分析。最后,真人标注检验也说明我们的数据增广方式具有分布上的合理性和真实性,可以作为比较真实的噪声数据的代表。

相关资料

论文链接:

https://arxiv.org/abs/2012.15262

代码链接:

https://github.com/thu-coai/LAUG

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。