如何评测一个智能对话系统(二)
本章我们介绍了目前业界比较流行的智能对话评测方法,包括人工评测和自动评测。阐述了不同评测方法的优势与不足,并解释了人工评测在智能对话评测任务中的重要性和必要性。enjoy~
主流的评测方法与分布式的评测方法
在上一章中我们介绍了智能对话系统的分类,阐述了不同类别智能对话系统的目标。我们把“如何评价一个智能对话系统”这个问题转化为“如何定义一个好的智能对话系统” 。我们从对话情境,对话场景和对话意图三个角度对一个智能对话系统进行了定义,从而了解了智能对话系统的考量标准与评判尺度。
同时,我们还提到,智能对话系统的评测任务是一个开放性的热门问题。相关领域的从业人员们在过去的一段时间里,已经提出过很多对话评测的方法。接下来,我们就来看一下当前主流的对话评测方法有哪些。
总的来说,智能对话系统的评测方法分为两个大类:人工标注评价和自动算法打分。
1. 人工评测
人工评测的方法是指通过雇佣测试人员对对话系统生成的结果进行人工标注。让人通过自己的常识和经验来判断人工智能的对话表现。测试人员会在预设的任务领域或场景内,与系统进行对话交互,在交互过程中,对系统的表现进行评分。
人工评测是智能对话系统评测的主要方式。这种方式让人类亲自来测试机器人的说话能力,以判断机器人是否具备和人类一样表现。人觉得好就是好,人觉得不好就是不好。
目前,市面上有很多被用于服务人工智能相关任务的众包平台。这些平台可以通过互联网快速的整合大量的人力资源,并对智能对话系统进行人工评测标注,比如,亚马逊的AMT(the Amazon Mechanical Turk)就是这样的一个平台。
不过,人工标注的评测方式有两个致命的缺陷。
第一个缺陷,就是人工评测的成本非常高,一个字总结就是“贵”。对话系统的评测任务往往需要由评测者投入大量的时间和精力。为了评测结果的普适性,我们需要组织一定规模的评测者参与到评测的任务当中。这也就意味着,人工评测将会消耗大量的人力成本。
第二个缺陷,就是人工评测难免会存在一些不可控制的误差。
- 一方面,只要是依赖人工处理的事情,就一定会有失误的概率发生,没有哪个人能保证自己一定不会犯错。一般来说,人工标注任务的默认准确率在百分之八十左右。这也就是说,人们平均有百分之二十的概率会犯错。
- 另一方面,凡是有人参与评判的任务,就必然存在主观的因素。针对同一个问题的时候,每个人都可能会有自己独特的看法和见解,而语言的表达本身就是一个非常主观的东西。每个人在判断一组对话内容好坏的时候很难避免主观因素的干扰。
2. 自动评测
自动评测一般指通过预先设定的计算机算法或规则,对一个智能对话系统进行自动化的评测。自动评测的结果常常会以分数或阈值的形式来表现。
目前,业界广泛认可的自动对话评测方法主要有两种。一种方法是根据对话系统生成的回复与标准答案之间的词重叠率来进行评价。其中BLEU和METEOR在机器翻译的任务中被广泛使用,ROUGE则在文本自动摘要的任务中取得了不错的评价效果。另一种思路是通过了解每一个词的意思来判断回复的相关性。词向量(Word2Vec)是实现这种评价方法的基础。
上面介绍的这些评测方法虽然有效,但是仅限于一些特定的实验场景。
近年来,随着人工智能算法的不断突破,有不少新的评测方法被陆续提出。包括受生成对抗网络(GAN)结构启发的类GAN模型,以及依靠回归神经网络(RNN)而训练的自动评价模型ADEM。前者用于直观的评判生成器(Generator)产生的回复结果与人类回复的相似程度;后者用于预测系统回复的人工评价结果,从而以更少的人工标注数据达到更准确的评测效果。
自动化的评测方法能够节省人力成本,快速高效的完成对话系统的评测工作。然而,这些方法更多的是被当作一个参考指标运用于特定的实验场景。在实际的应用场景当中,并不能代替人工标注实现客观且全面的对话评测。我们日常生活中很多人与人的沟通和交互恰恰是无法用预设规则所约束的。多有一种“只可意会,不可言传”的感觉。
自动评测的方法虽然方便省事,但是它还是没有解决实际的问题。真实的世界不会是实验室中预设的状态,每一种自动化的评测方法都会被大量的反例所挑战。语言是人类特有的能力,因此,对话能力评判这样的工作,还是有必要由人亲自来完成,这当中需要一些人类特有的直觉。
3. 分布式的评测方法
与其煞费苦心的去研究一个理想中的自动评测算法,倒不如集中精力优化人工评测的任务。于是,降低人工评测中的主观判断因素和人力资源成本就成了我们努力的方向。
明确了对话系统的考量标准和评判尺度之后,接下来我们就尝试把任务进行细分,从不同的维度入手,来判断一个智能对话系统的表现。我们把这种评测方法称为“分布式的评测方法”。
分布式的评测方法旨在把评测任务切分成尽可能小的单元进行处理。
第一步,我们把一个对话系统的表现切分成最小的单位,即单独的一轮对话(一组问答对)。只要我们把许多轮对话的综合表现统计起来,就可以比较客观的反映一个对话系统的整体表现。
第二步,我们把每一轮对话的评测任务再进行拆分,从不同的维度对一个对话系统进行评测,判断系统生成的每一组问答内容在对话情境,对话场景和对话意图这三个指标下的表现。经过多次的尝试与探索,我们为对话系统定义了六个评测维度。
智能对话系统的六个评测维度包括:语法质量;内容质量;内容关联度;逻辑关联度;情感强度;发散性。
语法质量:这部分我们关注的主要是对话系统生成答案的基本语法使用情况。智能对话系统生成的回复内容应该是符合语言通用语法的,用词正确且规范,句子通顺且完整。这个维度的判断比较客观,每一种语言都有各自的语法规则。
内容质量: 内容的质量可以从三个角度进行判断。首先,智能对话系统回复的内容长度应该恰到好处,不易过长也不易过短。第二,对话内容应该“言之有物”包含实体信息,同时不存在语言歧义。第三,对话内容需要避免血腥暴力,淫秽消极等不好的内容,同时要避免政治敏感的内容,表达正确的立场和观点。
内容关联度:内容关联度指的是系统匹配答案与问题的相关度。这里需要判断系统回复的内容与用户的问题是不是在讨论同一个话题,上文内容与下文内容是不是在讨论同一件事情。一般情况下,包含相同实体内容的问答对都可以被视为内容关联。
逻辑关联度:这里指的是系统生成对话内容与上文逻辑的关联性。这个逻辑包括时间逻辑,比较逻辑,客观规律等。比如,上文的内容是关于一个物体大小的,那回复也应当是与物体大小相关的内容。如果回复内容可以自然的与上文内容衔接,我们也可以说这组问答对包含逻辑关联。
情感强度:智能对话系统的回复内容是不是有情感表达。情感强弱的定义因人而异,很难定义衡量标准。但是在回答内容合理,逻辑准确的基础上,可以通过回答内容是否含有语气助词,是否包含拟声词等因素进行判断。对话的情感还体现在回复是不是在敷衍,有没有表现出强烈的主观态度和意愿,以及是不是幽默搞笑或悲伤难过。
发散性:发散性指的是人机对话过程中,机器回复内容话题的发散性。即评价当前的回复内容能否引发出更多轮数的对话。或者说,当用户看到系统回复内容之后,是不是有意愿继续将对话进行下去。一般情况下,如果机器生成的回复是一个开放性的问题,那么对话就很容易自然的进行下去。这里涉及到内容推荐,主动提问等人机交互技巧。
总结
本章我们介绍了目前业界比较流行的智能对话评测方法,包括人工评测和自动评测。阐述了不同评测方法的优势与不足,并解释了人工评测在智能对话评测任务中的重要性和必要性。我们认为在智能对话系统评测这个问题上,提出更加有效的人工测试方法比探索理想中的自动评测方法更为现实。
我们介绍了分布式的评测方法。把一个问题分解成六个不同的维度,并给每一个维度做了明确的定义。把对话系统拆解成一个一个的问答对,并将评测任务聚焦到每一个系统回复上。我们从六个维度对一个对话系统所生成的每一条回复进行评测,再将所有的评测结果整合起来统计出最终的结果。
我将在下一篇文章中讲解分布式评测方法的具体实现步骤。与大家分享如何为对话评测任务设计标注问题,并分析每一个标注问题背后的技术原理。
相关阅读
本文由 @单师傅 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash ,基于 CC0 协议
有个提问,单轮可以这么做,但是结合上下文语境的如何做评测呢?
您好,关于多轮的方法之后会更新,最近工作比较忙一直没有更新 ➡
另外您的文章我也有看,非常细致,贴近场景,深入浅出,值得认真研读,膜拜一下 🙂