对话系统答非所问?快试试这篇ACL'21的连贯性评估大法

文 | 页眉3
编 | 小轶

背景

当我们在绞尽脑汁地想怎么设计一个对话系统的时候,我们当然希望最后训练出来的系统能越像人越好,输出的回复很连贯,很有趣,很体贴。而其中,连贯性可以说是最基本的要求之一了,毕竟不连贯的回复往往会让人觉得这个对话系统很笨。

至于连贯性的定义,简单来说其实就是对话系统说的话在语法和语义上够不够连贯。比如说,当一个人说“我今天中午吃了面条”,对话系统如果回复“我吃也面面条”,那就是语法不连贯;如果回复“我喜欢跑步”,那就是语义不连贯。

定义有了,那现在问题就来了,要怎么去评估对话系统的连贯性呢?针对这个问题,学术界最开始就是奉行“拿来主义”,把之前机器翻译任务上的自动指标拿来评估对话连贯性,比如BLEU[1],衡量对话系统输出回复和给定参考回复之间的N-gram重叠程度。但这种指标存在一个致命伤:缺乏语义上的考量,容易错怪“好人”,也容易听信“坏人”。比如说,参考回复是 “真巧,我中午也吃了面条”,对话系统的回复是 “哈哈哈我也吃了”,这种情况,对话系统回复是连贯的,只不过和参考回复相比换了个表述,但BLEU只看这两个回复在字面上像不像,就会认为回复是不连贯的。又比如说,对话系统的回复是 “真巧,我中午也吃了条”,和参考回复只有一字之差,但意思就不对了,是不连贯的,但BLEU会觉得它们很像,认为对话系统是连贯的。

发现不对劲后,学术界为了摆脱BLEU这种生硬的字面评估,转向研究基于深度神经网络的自动指标,希望神经网络在训练时记住各种连贯和不连贯的情况,并能泛化到训练时没见过的情况。模型结构往往是一个神经网络作为编码器(比如RNN, Transformer),来对输入的对话历史和对话回复提特征,然后再接一个分数预测模块来将特征转变为连贯性分数。从结果上看,这类指标相比前面提到的BLEU这类指标,确实在整体上能给出更为准确的评估结果。

这类工作的训练目标,最常采用的损失函数还是 cross entropy loss 或 margin ranking loss,并采用无监督的方式来训练。而所谓无监督,其实就是不自己标数据,将原始对话数据作为正样本,再用一些启发式策略为每一个正样本自动生成一个相应的负样本(最直接粗暴的就是从对话语料中随机选一个出来),然后按照前面提到的两种loss之一,让指标在训练过程中尽可能将正负样本区分开。比如说18年提出的RUBER[2],19年提出的BERT-RUBER[3],以及去年提出的GRADE[4],整体思想都是如此。

这种训练方式会存在两个局限:

  1. 将对话连贯性评估问题简化为了一个是否问题,只要求指标能够区分出连贯与不连贯,而忽略了其中具体的连贯性程度。如图1所示,这与人工打分(比如打1到5分)是有明显区别的;

  2. 使用某种启发式负采样策略来人为获取负样本往往存在偏置,无法准确学习到真实的人工打分标准。

▲图1 人工打分 VS. 指标打分

为了解决上述局限,今天要介绍的这篇工作提出了一个新型指标训练框架 QuantiDCE旨在实现可量化的对话连贯性评估指标。该文已被ACL 2021 主会录用,并获得了4/4/4的 review 评分,受到评审人的一致认可。

论文标题

Towards Quantifiable Dialogue Coherence Evaluation

论文链接
https://arxiv.org/abs/2106.00507

开源代码
https://github.com/James-Yip/QuantiDCE

方法

本文提出的 QuantiDCE框架包括两个训练阶段:MLR预训练(Multi-Level Ranking pre-training)和 KD微调(Knowledge Distillation fine-tuning)。

▲图2 QuantiDCE整体训练流程

模型结构方面,采用BERT作为特征提取模块对输入的context-response pair进行编码,然后将编码后的特征输入到一个三层MLP中,得到最终的连贯性分数输出:

在MLR预训练阶段,我们希望能够让指标模型在没有连贯性分数标注作为监督信息的情况下,初步学习到对不同连贯性程度的对话回复的粗粒度判断。对此,本文提取了一个多层级排序损失函数(MLR loss)作为训练目标。MLR loss 具体包括三个子 loss :separation loss, compactness loss 以及 ordering loss。

其中,separation loss旨在让具有不同连贯性程度的context-response pairs彼此远离;compactness loss是让连贯性程度相同的pairs相互靠近;而最后的ordering loss则是为了约束不同连贯性程度的pairs之前满足一个从小到大的排序关系,例如最不连贯的pair对应的分数要小于中等连贯的,中等连贯的又要小于最连贯的。损失函数具体公式如下:

接下来的KD微调阶段,主要是希望指标模型能够在前面预训练的基础上,进一步学习到人类打分的真实标准。为此,文章作者用了少量的人工打分标注数据作为ground truth,计算模型预测分数和人工真实分数之间的MSE loss进行优化。另外,因为用于微调的数据量很少,模型很容易会出现过拟合的现象,导致之前在预训练阶段学习到的量化知识都被遗忘掉。针对这个问题,我们在MSE loss的基础上,引入了一个知识蒸馏正则项,用于在微调阶段保留预训练阶段学习到的知识。具体来说,我们将预训练后的指标模型(参数固定)作为teacher,待微调的指标模型作为student,并借鉴TinyBERT[5]的蒸馏目标,约束student的各层输出以及中间层注意力矩阵与teacher的保持一致。损失函数具体公式如下:

实验结果

实验在一个公开的指标评测benchmark[4]上进行。将QuantiDCE训练的指标模型与现有的八个自动指标进行了比较。实验结果显示,本文指标取得了最佳性能,并比目前的SOTA结果平均高五个点左右。

▲表1 各个自动指标在ConvAI2和EmpatheticDialogues数据集上的性能对比

另外,针对MLR预训练阶段和KD微调阶段,我们还尝试了各种不同的损失函数进行比较,进一步验证了我们提出的MLR loss以及KD-MSE loss的有效性。图二也展示了模型采用不同损失函数的可视化结果。可以看到,在预训练阶段优化MLR loss可以使得指标模型能够有效地区分出不同连贯性程度的对话输入。

▲表2 采用不同预训练损失函数的性能对比
▲图3 采用不同预训练损失函数时,模型中间特征(上)及最终分数输出(下)的可视化结果
▲表3 采用不同微调损失函数的性能对比

最后还进行了两组消融实验。(1)单独去除QuantiDCE训练过程中用到的其中一个损失函数,研究了本文提出的各个损失函数对最终性能影响的重要程度;(2)对微调阶段使用的数据量进行了实验,研究少样本设定下数据量对模型性能的影响。

▲表4 消融实验(1):去除某个特定损失函数的性能对比
▲图 3 消融实验(2):微调阶段采用不同数据量的性能变化趋势

总结

本文针对对话连贯性评估问题提出了一个两阶段指标训练框架QuantiDCE。通过两阶段的递进式训练,逐步让指标模型掌握量化的能力,从而能够输出与人工打分更为一致的连贯性分数。实验上,本文将QuantiDCE训练出来的指标模型与当前现有的各种自动指标进行了对比,并取得了最佳性能,验证了该框架的有效性。

寻求报道、约稿、文案投放:
添加微信xixiaoyao-1,备注“商务合作”

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1] Kishore Papineni, et al. BLEU: a Method for Automatic Evaluation of Machine Translation. In ACL 2002.

[2] Chongyang Tao, et al. Ruber: An unsupervised method for automatic evaluation of open-domain dialog systems. In AAAI 2018.

[3] Sarik Ghazarian, et al. Better automatic evaluation of open-domain dialogue systems with contextualized embeddings. In Proceedings of the Workshop on Methods for Optimizing and Evaluating Neural Language Generation, ACL 2019.

[4] Lishan Huang, et al. GRADE: Automatic Graph-Enhanced Coherence Metric for Evaluating Open-Domain Dialogue Systems. In EMNLP 2020.

[5] Xiaoqi Jiao, et al. TinyBERT: Distilling BERT for Natural Language Understanding. In Findings of EMNLP 2020.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 384. 打乱数组(rand)

1. 题目 打乱一个没有重复元素的数组。 示例:// 以数字集合 1, 2 和 3 初始化数组。 int[] nums {1,2,3}; Solution solution new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。 solution.shuffle();// 重设数组到它的初始状态[…

论文浅尝 - ACL2020 | 知识图谱补全方法的再评估

笔记整理 | 谭亦鸣,东南大学博士来源:ACL 2020链接:https://www.aclweb.org/anthology/2020.acl-main.489.pdf源码:http://github.com/svjan5/kg-reeval概述图谱补全(KGC)的目标是自动的预测大规模知识图谱…

美团数据库高可用架构的演进与设想

本文介绍最近几年美团MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。 在2015年之前,美团&…

恕我直言,很多小样本学习的工作就是不切实际的

文 | ????????????????编 | 小轶以前的小样本学习(Few-shot Learning),是需要用一个巨大的训练集训练的。测试时只给出 n-way k-shot,在这 N * k 个样本上学习并预测。我第一次看到这种任务设定的时候真是非常失望…

LeetCode 204. 计数质数(质数的倍数不是质数)

1. 题目 统计所有小于非负整数 n 的质数的数量。 示例:输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。2. 填表解题 2的倍数不是质数3的倍数不是质数5的倍数,7的倍数,11的倍数。。。质数的倍数不是质数 class Solution { p…

论文浅尝 | 六篇2020年知识图谱预训练论文综述

转载公众号 | AI机器学习与知识图谱本文介绍六篇有关知识图谱预训练的优秀论文,大致上可分为两类,生成学习模型和对比学习模型。其中GPT-GNN模型是生成学习模型,模型灵感来源于自然语言处理中的GPT模型;GCC,GraphCL&am…

distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘setupto

distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘setupto: 解决办法 1、安装scm:pip install setuptools-scm 2、 升级pip:pip install --upgrade pip 3、安装setuptools:pip install set…

客户端自动化测试研究

测试作为质量保证极其重要的一环,在移动App开发流程中起到非常关键的作用。从开发工程师到测试工程师,人人都应具备良好的测试意识,将隐患和风险在上线之前找出并解决,可以有效的减少线上事故。 美团和大众点评App作为美团点评平台…

视觉增强词向量:我是词向量,我开眼了!

文 | 橙橙子亲爱的读者,你是否被各种千亿、万亿模型的发布狂轰乱炸,应接不暇,甚至有点产生对大模型的审美疲劳?出于这个目的,今天来分享一篇研究静态词向量的小清新文章。希望大家可以在理性追热的同时,小冶…

会议交流 | 知识图谱前沿技术与热门应用

长按上图或点击『阅读原文』免费报名随着人工智能技术的发展与应用,知识图谱作为AI进步的阶梯越来越受到学术界和产业界的重视,并且已经在很多领域、场景中体现出自身的价值。从最初的互联网搜索、推荐、问答等ToC场景,逐渐进入到垂直行业ToB…

美团点评酒店后台故障演练系统

随着海量请求、节假日峰值流量和与日俱增的系统复杂度出现的,很有可能是各种故障。在分析以往案例时我们发现,如果预案充分,即使出现故障,也能及时应对。它能最大程度降低故障的平均恢复时间(MTTR)&#xf…

那些在家啃书自学算法的人,最后都找到工作了吗?

面试官手把手带你刷题AI岗位面试题 详解训练特惠免费0元在准备应聘的过程中,大部分同学关注点都在自己的技术水平以及项目经验是否能够比过其他人。但往往忽略了一点,你会的和你在面试中能完全讲清楚是两码事,如果不提前梳理好思路&#xff0…

论文小综 | 知识图谱中的复杂查询问答

作者 | 张文,浙江大学博士,研究兴趣为知识图谱表示与推理陈名杨,浙江大学在读博士生,研究兴趣为知识图谱表示与推理本文将介绍近两年4篇关于知识图谱中的复杂查询问答(Complex Query Answering, CQA)的研究工作。复杂查询问答的目…

LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)

1. 题目 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \…

KeyError: ‘segment_ids paddlehub中出现segement_ids错误解决方案

examples.append((encoded_inputs[‘input_ids’], encoded_inputs[‘segment_ids’])) KeyError: ‘segment_ids’ 找到源代码:输出encoded_inputs 将segments_ids改成 token_type_ids解决问题

Android增量代码测试覆盖率工具

美团业务快速发展,新项目新业务不断出现,在项目开发和测试人员不足、开发同学粗心的情况下,难免会出现少测漏测的情况,如何保证新增代码有足够的测试覆盖率是我们需要思考的问题。 先看一个bug: 以上代码可能在onDesto…

ACL'21 | 多模态数值推理新挑战,让 AI 学解几何题

文 | 陈嘉奇编 | 小轶从小到大,数学都是一门令人头秃充满魅力的学科。从基本的代数、几何,到高数微积分,各类数学问题都对答题者的逻辑推理能力都有着不同程度的挑战。而逻辑推理能力一直以来都是 AI 发展的核心目标之一。学术界对于 AI 自动…

论文浅尝 - ICLR2021 | 从信息论的角度提高语言模型的鲁棒性

笔记整理 | 胡楠,东南大学来源:ICLR 2021论文下载地址:https://arxiv.org/pdf/2010.02329.pdf动机最近的研究表明,BERT和RoBERTa这种基于BERT的模型容易受到文字对抗攻击的威胁。论文旨在从信息理论的角度解决此问题并提出InfoBER…

LeetCode 74. 搜索二维矩阵(二分查找)

1. 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix [[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34,…

美团点评旅游搜索召回策略的演进

本文内容与6月22日第22期美团点评技术沙龙“美团点评AI实践”主题演讲一致,欢迎大家去现场和作者交流。 关注“美团点评技术团队”微信公众号,第一时间获取沙龙最新信息,还可以查阅往期沙龙PPT/视频。 美团点评作为最大的生活服务平台&#x…