如何评测一个智能对话系统 (三)

4 评论 892 浏览 9 收藏 10 分钟

本文将把目光聚焦到分布式评测方法的具体实现细节上,为大家介绍评测系统标注数据的采样,标注问题的设计以及问题背后的技术原理。

一、评测标注任务的数据采集与问题设计

在上一章中我们介绍了目前业界比较流行的智能对话评测方法,包括人工评测和自动评测。阐述了不同评测方法的优势与不足,并解释了人工评测在智能对话评测任务中的重要性和必要性。

之后,我们介绍了分布式的评测方法。即把一个问题分解成:语法质量;内容质量;内容关联度;逻辑关联度;情感强度;发散性六个不同的维度。并以这六个维度为思考角度,分别对一个对话系统的对话内容进行评判。

分布式的评测方法就是将问题拆分成多个维度,再分解为可操作的问题,分别进行回答。最后整理合并,计算出一个具有参考价值的结果。复杂的问题,答案往往是辩证的,而分布式统计的方法恰恰能够较好的处理信息庞大的复杂问题。

接下来,让我们将目光聚焦到分布式评测方法的具体实现细节上。笔者将在本章为大家介绍评测系统标注数据的采样,标注问题的设计以及问题背后的技术原理。

1. 数据样本

想要创建一个有效的评测标注任务,我们首先需要制作一组数据集,也就是用来评测对话系统的问题集(或者说是query集,因为输入内容不局限于疑问句)。

用于对话评测的query集往往是一套包含各种形式和类别的自然语句。目前各大NLP相关的竞赛和研究报告中,会有一些开源的数据集供研究者使用。不过,这些数据集多以英文为主。因而,我们需要有针对性的为评估任务整理一份中文样本数据集。

中国汉语可谓博大精深,客观的讲,一套简单的数据集不可能囊括所有汉语中的对话意图和语言使用场景。因此,理论上讲,样本的数据量一定是越多越好(用于训练语言模型的数据常在亿级以上)。

然而,为了便于评测标注任务的执行,我们希望标注的题目尽可能的少。(这样标注人员就可以在较短的时间完成标注)于是,以尽可能少的数据量囊括尽可能多的语言话题成了样本数据的重点和难点。

在这里,笔者将自己收集和整理样本数据的方法与大家分享,希望大家可以借鉴笔者的方法,整理属于自己的评测数据集。

由于数据保密的原因,笔者不便将数据内容在这里完全公开(感兴趣的朋友可搜索“NLPCC2019 – 开放领对话系统评测任务”,了解更多细节)。

当然,笔者所做的数据集并不一定是最好的,如果有更好的数据集也欢迎大家与笔者分享和交流。

2. 数据采样及细节描述

数据源:来自真实的用户日志和互联网社交媒体上的公开数据

获取方式:通过脚本筛选和人工标注的方式从亿级的原始数据中获取数据池

话题分类:

  • 通过百度开源信息获得百度中发帖数前200的贴吧
  • 通过百度贴吧分类将200个贴吧分为22个类别
  • 从22个类别中提取出16个话题和2个无话题类别

样本数据:

  • 针对每个话题,从数据池中抽取100个问题,共计1600个问题
  • 从数据池中收集16个话题之外的100个问题
  • 样本数据集共计1700个问题

数据分配:1700个问题当中,有200题作为测试问题,其余1500题作为真实评测问题

3. 标注选项

有了评测的数据集,接下来我们还需要设计标注的具体任务。(annotation task)为了能够更加准确且高效的评测一个对话系统的表现,评测的标注任务需要秉持两个基本原则:客观和精简。

对话评测的底层方法论是从6个不同的维度分布式的评测一个对话系统,在评测的过程中,我们主要是在判断被评测的对话系统是否能够满足这6个维度的信息特征。为了能够更加直观的进行判断,我们将6个维度的评判分解成12个封闭式问题(True or False question)。封闭式的问题能够帮助评测者尽可能的避免主观思考的模式,相对快速的给出理性的评判。

以下是笔者针对对话评估任务设计的12个问题,以及相应的几个维度:

语法质量:

  • 回复是不是符合正确的语法
  • 回复是不是有与上文内容相关或重叠的实体词
  • 回复是不是明显的书面化表达

内容质量:

  • 回复内容是不是不可以被接受(色情,暴力,辱骂,政治等)
  • 回复内容是不是不含糊,不存在歧义
  • 回复内容是不是信息量适当

内容关联度:

  • 回复内容是不是看上去正确理解了上文意图

逻辑关联度:

  • 回复内容是不是可以自然的与上文衔接

情感强度:

  • 回复是不是有主观态度或明显的情绪表达
  • 回复内容是不是会引人发笑

发散性:

  • 回复是不是有发散,生成新的内容或实体
  • 回复是不是能让用户知道接下来该说什么

4. 标注类型

标注任务的类型包括基本标注和特殊标注。

一般情况下,在评测一个答案的时候,我们会有限判断其内容是否可以被接受。如果回复可以被接受,则继续从多个维度对这个回复进行评测。如果回复不可以被接受,则直接跳过其他问题,将这组问答对标为不合格。

我们将“回复是不是符合正确的语法“与“回复内容是不是不可以被接受”这两条评测问题整合到一起作为特殊标注类型,而所有其他的评测问题则都是基本标注类型。

5. 技术理论依据

虽然,上面提到的大多数评测标注问题都是在分布式对话评测方法的基础上而创建,我们依然需要有足够的技术理论作为参考和支持。

一方面,经典技术理论的支持可以使整个评测方法更具说服力,另一方面,我们可以通过技术理论中的数学模型,部分的实现一个对话系统的自动化评测。

在有效评判市场上智能对话类产品表现的同时,也具备了一定的科研价值。

语法和内容质量:参考了常用的NLP评测方法理论,如PPL,BLEU和Distinct等。

关联度和发散性:名词实体变化统计(NER)和LSTM深度学习算法针对多轮对话概率的计算。

情感强度:基于情感分析(Sentiment Analysis)的一些算法和理论支持。

二、总结

本章我们介绍了分布式对话系统评测方法的具体实现细节,包括数据的分类和采样,标注问题的设计和其背后的技术原理。我们详细阐述了获取标注数据,以及定位语言数据话题类型的方法。同时,我们还介绍了基于6个维度的信息特征而分解出来的12个封闭式问题。我们将数据与问题相互对应,就形成一份可操作,可统计的对话评测标注任务。

不同的对话系统有不同的侧重点,有的对话系统比较擅长单轮的问答对话,有的对话系统则在多轮对话的场景下有更好的表现。我将在接下来的两篇文章中,分别介绍如何使用分布式对话评测方法进行单轮对话系统的评测与多轮对话系统的评测。

 

本文由 @单师傅 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash ,基于 CC0 协议

给作者打赏,鼓励TA抓紧创作!
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 你好~不是6个维度吗?为什么12个问题只是针对于5个维度呢?

    回复
    1. 非常感谢你的反馈。之前这里编辑的时候出了问题,已经订正了

      回复
  2. 沙发🛋️

    回复
    1. 官方认证沙发

      回复