AI TIME欢迎每一位AI爱好者的加入!
对话,基本解释指两个或更多人用语言交谈。长久以来,我们的认知里对话通常发生在人与人之间,但随着大数据和深度学习技术的发展,对话式AI开始广泛存在。对话式AI赋予计算机语言能力,使它们能够通过自然语言对话与人进行交互,就像真人一样,突破了对话的固有定义。
如图一,基于对话的AI已有很多方面的应用,从早期的ELIZA,到后来的智能助手Siri、Cortana、Alexa,再到阿里小蜜、腾讯云小微等,对话式AI发展迅速且越来越“聪明”。图二是2017年comScore的一个报告,调查发现智能音箱/助手的用途是多样的,可询问天气、播放音乐、设定闹钟、事项提醒,也可查看日历、浏览新闻、玩游戏、购物等。对话系统的要求越来越高,能够帮助人们完成的任务也越来越多,其前景可谓不可限量。
图一 对话式AI的发展
图二 智能音箱/助手用途调研
因其前景的广阔,对话系统近年来已成为AI研究热点问题,引起许多研究者的关注。本次AI TIME特别策划了对话系统专题,通过不同的主题为大家解密“会说话的计算机”背后的技术分析。专题第一期,我们有幸邀请到了SIGDIAL 2020最佳论文一作、清华大学计算机系2019级硕士生、交互式人工智能组成员高信龙一,就任务导向型对话系统进行评测。
创建一个任务导向型对话系统以完成用户需求为目的,虽然很多研究提出新的方法以评价或改进个别模块的性能,在关于各个组件如何促进一个对话系统的整体性能上还缺少全面的实证分析。本次报告中,高信龙一将系统性的介绍任务导向型对话系统评测,并针对各类模型、各类配置、各类设定的多轮对话系统进行全面的系统评测,并作详细的实证分析和讨论。
对话系统简介
对话1:
M:你好,欢迎来到剑桥对话系统,你喜欢吃什么?
H:我想找一家有欧洲菜的餐厅。
M:Hotel du Vin & Bistro是个不错的选择,它供应欧洲食物。
H:那酒店的地址和电话号码是多少?
M:地址是XXX,电话是YYY。
H:谢谢,再见。
对话2:
A:你多大了?
B:我16岁了。你为什么要问?
A:我以为你12岁。
B:你为什么这么想?
A:我不知道你在说什么。
B:你不知道你在说什么。
对话1和对话2是对话系统的两个例子,明显二者是有区别的。从类型上,对话系统大致分为两类,一类是如对话1所示的任务导向型对话系统,另一类是闲聊型对话系统如对话2。任务型对话系统以目的为导向,对话过程中要求精确的语义理解、专业领域的支持,难点是数据的收集。系统搭建方式为模块化、高度的人工设计,虽然在领域上有所限制,但意义巨大、具有很高的实用性。
不同于任务导向型对话系统为用户完成特定的任务,闲聊型的对话系统专注于在开放的领域与人交谈,不具有目的性。其数据收集方式众多,来源广泛。在系统搭建上采用端对端的形式、高度的数据驱动,但其应用可能是没有意义、不恰当,甚至不可信的。
任务导向型对话系统
任务导向型对话系统的搭建包含多个模块。一个典型的基于管道方法的对话系统由四个模块组成:自然语言理解(Natural Language Understanding,NLU),对话状态追踪(Dialog State Tracking,DST),对话策略(Dialog Policy,DP),自然语言生成(Natural Language Generation,DLG)。
整个框架流程可阐述为:(1)自然语言理解对来自用户的自然语言描述进行识别,解析成结构化的信息;(2)状态追踪更新当前对话的状态,和背后数据库或知识库进行交互,查询满足用户条件的实体,并转移给对话策略;(3)对话策略根据当前对话状态,选择下一步系统需要回复的结构化信息;(4)自然语言生成模块将接收的结构化信息转换成自然语言,并反馈给用户。
图三 典型管道方法任务导向型对话系统框架
系统的四个模块都有各自的用途和评测指标。自然语言理解识别用户的意图,从用户初始自然语言中提取相关的信息,术语称为槽位和槽值。其评测主要通过两个方面,一是槽位F1,二是意图F1。状态追踪根据多轮的对话确定用户当前的目标,将提取到的信息编码为一组紧凑的对话状态,内容包含带用户查询约束条件的可告知槽和用户希望的可问询槽。状态追踪的评测指标为对话状态每个槽位、槽值的准确度,以及整体意图的准确度。
对话策略依赖对话状态选择接下来的系统操作,其评测标准为是否涵盖了用户想要告知的信息,系统回复的实体是否满足用户的限制,从而判定对话状态的成功与否。自然语言生成从结构化信息中生成自然语言表示,其评测主要通过BLEU(Bilingual Evaluation Understudy,双语评估替补)、困惑度(Perplexity)、槽位错误率(Slot error rate)等几方面。
然而,很大的问题是以上评测指标都是模块化的,只在相应的模块下分别进行,忽视了对一个完整对话系统性能的评价。此外,模块内的评价只是在单轮对话的设定下进行,而一个完整的对话应当由系统和用户进行多轮交互达成。
任务导向型对话系统评测
(一)
框架结构
任务导向型对话系统除了上述提到的简单管道结构以外,还有一些最新的研究工作,见图四。如对传统管道方法加以改进,对不同模块进行组合,或是直接采用另一种端对端(end-to-end)的方法。一个值得考察的问题是:究竟哪种配置或模块组合,对任务导向型对话系统整体性能有最大的提升?
图四 各种系统模块设置
(二)
任务复杂性
在前面的调查报告中也提到,目前用户对于智能助手的需求越来越高,一个对话过程中可能涉及预订餐厅、酒店、机票、出租车等多个领域(如图五)。在涉及多个领域的复杂任务时,考虑对话系统的可扩展性和鲁棒性是极其重要的。
图五 对话系统多任务场景
(三)
多轮评测
任务导向型对话系统需要和用户进行多轮交互,而之前提到的评测方式是在单轮的设定下完成的,这与真实场景存在差距。如图六的例子,系统A和B都有80%的回复准确率,哪个更好?答案显然是B。
图六 多轮评测示例
系统A在第一轮回复错误的情况下,第二轮基于第一轮对话历史再进行评测是没有意义的。因为第一轮对话预测的错误会造成用户行为轨迹发生偏离,改变用户对话过程,使其不向数据集中演变。第一轮错误后,之后的评价再好,实际上对于真实场景已不具有特别大的意义。因此探索多轮对话下的评测是很有必要的。
(四)
SIGDIAL 2020最佳论文研究贡献
在SIGDIAL 2020上,高信龙一作为第一作者的论文《Is Your Goal-Oriented Dialog Model Performing Really Well? Empirical Analysis of System-wise Evaluation》(《你的任务导向型对话模型表现得很好吗?系统级评测的实证分析》)荣获最佳论文 。论文主要针对任务导向型对话系统评测这一研究问题,通过系统级与模块级、模拟评测与真实人工评测、单轮对话与多轮对话、不同任务复杂度,比较不同模块、不同配置、不同设定下对话系统的整体性能。主要聚焦以下四个问题:
1.哪个配置会得到更好的任务导向型对话系统?
2.模块级别、单轮的评测指标与系统级别、多轮的评测指标得到的结果是否具有一致性?
3.当使用不同复杂度的任务评测系统时,性能如何变化?
4.模拟评测和人工评测之间有多大的相关性?
实验分析与讨论
(一)
数据
为考察不同配置、不同模块组合下系统性能的好坏,讲者设计了相关实验进行实证分析。实验采用EMNLP 2018最佳资源论文提出的MultiWOZ,一个大型多领域用于特定任务对话模型的绿野仙踪实验型(人机对话实验)数据集(图七)。其优点在于有相对完善的数据标注(对话状态、系统对话操作、用户目标),包含大量不同子基线的任务,方便直接进行比较。但MultiWOZ缺少NLU的标注,因此实验还添加了含用户对话操作的NLU标注扩展语料库。
图七 MultiWOZ数据集
(二)
用户目标
对任务导向型对话系统进行评测的出发点是用户目标,即用户在对话中想要达到的状态描述(图八)。在实验过程中,让模拟用户和真实用户基于用户目标提供的结构化信息与系统进行对话。为保证公正性,实验中对不同系统设置的评测都将在一组固定的含1000个用户目标的集合下进行,用户目标有些只涉及单领域,有些涵盖多个领域,具体数据分布见图九。
图八 用户目标
图九 实验中用户目标的数据分布
(三)
平台和模拟器
实验使用的平台为带基准的ConvLab平台,这是第一个开源的、多领域的端对端对话系统平台。ConvLab包含了广泛的可训练的统计模型及标注数据,不仅提供了大量的工具用于创建各种对话系统,还提供了对模型的人工评测和模拟评测。用户模拟器方面,实验采用的是基于议程(Agenda-based)的模拟器。模拟器框架如图十,将来自用户策略的输入和输出的对话操作用于评测。
图十 模拟器框架结构
(四)
评测指标
实验的评测指标参照了1997年提出的PARADISE,框架结构见图十一。它将任务导向型对话系统用户满意度分解为两部分,一是最大化任务成功率,二是最小化成本消耗。其中对话成本主要指用户和系统的对话轮次,任务成功率包含用户需求的告知程度、与约束的匹配率。
图十一 PARADISE对话系统评测框架
(五)
实验配置和模块
实验一共比较了4个基于管道方法模型,10个组合模块模型,2个端到端系统。图十二是在各个模块下组件的性能比较。由于NLU模块数据标注是后期添加的,所以实验中采取结合领域标注的联合标注方案。NLU主要比较了BERT和MILU,二者在模块化的评测结果为图十二中的(a),BERT表现更优。DST的比较分为两类,一是基于规则(Rule)的DA级别(DA-level),二是包括MDBT、TRADE、SUMBT、COMER几种模型对比的单词级别(Word-level),结果见(b)。
Policy的比较也是从DA级别(Rule、GDPL)和词级级别(模型对比有:MDRG, HDSA, LaRL)两个维度进行,结果为(c)。NLG模块比较了Retrieval、SCLSTM两种,而E2E(end-to-end)系统则是比较TSCP、DAMD,结果分别为(d)和(e)。
图十二 每个模块组件的性能比较
(六)
实验分析结果
图十三是基于固定的1000个用户目标,16种不同配置、不同组合、不同模型的系统评测实验结果。
图十三 不同配置和模型的系统级评测结果
从中可以得到以下实验结论:
1.系统1、2的整体性能更高。
2.Pipeline > Joint/End-to- end,与在联合模型和端到端系统相比,pipeline系统通常可以获得更好的总体性能。
3.匹配率方面:在使用大型外部数据库进行数据库查询下,一些非管道系统性能相对较好(系统11, 13, 16)。
4.不同模块配置对比:NLU+DST >> Word-DST,词级DST预测的对话状态只记录当前回合的用户约束,导致动作选择(通过对话策略)的信息丢失,如图十四所示。
图十四 Word-DST的信息丢失
5.Policy + NLG > Word-Policy,词级DST(Word-DST)与词级策略(Word-Policy)相结合可以获得更好的整体性能,例如SYSTEM-13的成功率为40.4%,而SYSTEM-6的成功率为27.8%,如图十五所示。
图十五 对话在词级策略被重新编码
6.模块级别和系统级别评测结果对比:模块内的评测结果并不总是与系统级的整体性能一致。
7.单轮和多轮设定的评测结果对比:单轮和多轮的评测之间存在差距,也并非总是一致的。评测错误将传递给下游的模块,并对之后的轮次交互产生重要影响。某些模块和系统级别的评测有很好的相关性,例如NLU,而DST等模块则不存在一致性。
8.不同任务复杂度下系统的性能比较:图十六为单领域不同任务的实验结果,显示大部分系统在餐厅和交通领域的表现优于景点领域。
图十六 单领域任务的实验结果
图十七为涉及多个领域任务时系统的表现情况,数据表明,所有系统的整体性能随任务域的不同而变化,并且随着任务复杂度的增加而显着下降,而pipeline系统对任务复杂性则相对鲁棒。
图十七 多领域任务的实验结果
9.自动模拟评测和真实人工评测:实验采用了真实人工评测100个目标的子集,跨不同模块结构的5个系统,同时加入语言理解程度、回复适合度等评测指标。图十八的最后一列展示了模拟评测与人工评测之间的相关系数,模拟评测与人工评测存在中度相关性,大多数系统在人工评测下任务成功率显著降低。
图十八 人工评测的实验结果
案例研究1:
模拟评测
图十九显示了模拟评测中SYSTEM-1和SYSTEM-6之间的对话比较,模拟评测的好处在于和用户交互过程中,能够把每个模块的内容分解出来。最后结果为SYSTEM-1成功,而SYSTEM-6因为无法跟踪对话状态的价格范围,没有回复邮政编码导致任务失败。
图十九 模拟评测的对话比较
案例研究2:
人工评测
图十九为真实人工评测SYSTEM-1和SYSTEM-6之间的对话比较,其语言多样性高于模拟评测,用户对话更为自然。但现有的对话系统容易受到人类语言变化的影响,例如图十九中棕色突出显示的句子,表明在处理真实的人类对话时缺乏稳健性。最后结果依然是SYSTEM-1成功,SYSTEM-6因为没有回复用户要求旅游景点的电话号码而失败。
(七)
实验结果分析
1.对于搭建对话系统,良好的语义分析(如对话操作)是必要的。
2.虽然基于管道方法的系统整体性能表现更好,但它需要细粒度的人工标注。
3.建议新的模型通过标准化平台组装成一个完整的系统,以便进行有意义的评测和公平的比较。
4.可扩展性和鲁棒性对于系统而言极为重要,在以后的研究中应加以改进。
5.尽管模拟评测和真实人工评测之间存在差异,但模拟评测仍然是昂贵的人工评测的有效替代。
整理:何文莉
审稿:高信龙一
AI Time欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至yun.he@aminer.cn!
微信联系:AITIME_HY
AI Time是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。
更多资讯请扫码关注
(点击“阅读原文 ”下载本次报告ppt)
(最佳论文下载链接:https://static.aminer.cn/misc/pdf/rwdx.pdf)
(直播回放:https://b23.tv/ceyCPW)
蓝精灵801: 请问有实际效果吗
billythekids: 有论文名吗?
小何198: 您好,这个有具体的论文吗
小周_: 请问fashion200k是怎么测试的,它好像只有test query,那对应的测试三元组是怎么得到哈
小懒花苞: 这篇文章发表在哪里了呀