对话状态跟踪的评估方法:从 Dialog State Tracking Challenge 谈起
虽然对话状态跟踪本质上也是一个分类问题,但作为辅助对话策略决策的一个关键步骤,DST 维护的是一个概率分布,那么这里就引入了两个问题:(1)怎样衡量一个概率分布的优劣;(2)在哪一轮评估合适。下面我们就结合 2013 年Dialog State Tracking Challenge(DSTC)(2)的评估结果来分析一下这些问题。
DSTC 2013 是国际上第一届对话状态跟踪任务的公开评测,由微软研究院,本田研究院和卡内基 · 梅陇大学联合组织。评测数据来自匹斯堡公车路线电话自动查询系统 3 年间的真实用户 log。评测提供 5 组训练集和 4 组测试集,分别用于测试以下四种情况:
(1)有与测试集来自完全相同的 ASR、SLU 和对话策略的训练数据;
(2)有与测试集来自完全相同的 ASR 和 SLU 的训练数据,但对话策略不同;
(3)只有少量与测试集来自完全相同的 ASR、SLU 和对话策略的训练数据;
(4)产生测试数据的 ASR、SLU 和对话策略均与产生训练样本的系统不同。
除了两组训练集只有 ASR 的标注外,其它训练集均提供了人工标注的 ASR、SLU 和 DST 结果。此次评测共有 11 个团队参与,提交了 27 个系统。因为是第一次评测,主办方提出了 11 种评测指标和 3 种评测时机(schedule)作为参考,详细说明如下:
Hypothesis accuracy: 置信状态中首位假设(top hypothesis)的准确率。此标准用以衡量首位假设的质量。
Mean reciprocal rank: 1/R 的平均值,其中 R 是第一条正确假设在置信状态中的排序。此标准用以衡量置信状态中排序的质量。
L2-norm: 置信状态的概率向量和真实状态的 0/1 向量之间的 L2 距离。此标准用以衡量置信状态中概率值的质量。
Average probability: 真实状态在置信状态中的概率得分的平均值。此标准用以衡量置信状态对真实状态的概率估计的质量。
ROC performance: 如下一系列指标来刻画置信状态中首位假设的可区分性
Equal error rate: 错误接受率(false accepts,FAs) 和错误拒绝率(false rejects,FRs)的相交点(FA=FR)。
Correct accept 5/10/20: 当至多有 5%/10%/20% 的 FAs 时的正确接受率(correct accepts,CAs)。
上述 ROC 曲线相关指标采取了两种 ROC 计算方式。第一种方式计算 CA 的比例时分母是所有状态的总数。这种方式综合考虑了准确率和可区分度。第二种方式计算 CA 的比例时分母是所有正确分类的状态数。这种计算方式单纯考虑可区分度而排出准确率的因素。
排序结果的不同程度[3]圆圈的半径越小表示结果越相似
上述评估标准从不同角度衡量了置信状态的质量,但从 DSTC 2013 提交的系统结果分析可以看出一些标准之间有很强的相关性,如图 3 所示。所以在后续的 DSTC 2014 评测中选取了上述 11 中指标的一个子集作为主要评估指标。
DSTC 2013 还提出了三种评测的时机,分别为:
Schedule 1:每轮对话都做评估;
Schedule 2:对于一个概念(slot-value pair),只有在这个概念被提及时才评估;
Schedule 3:在每个对话结束时评估。
可以看出上述三种评估时机中,schedule 2 更能体现在真实应用中的价值。而 schedule 1 是有偏执的,因为当一个概念被提及后,如果用户或系统没有对其修改的操作,多数情况下其置信状态的估计不会改变,这个结果会一直保持多个对话轮次,这样无论这个估计的质量优劣,都会被计算多次,对评估指标的均值产生影响。Schedule 3 的问题在于忽略了置信状态质量在对话过程中的影响,即一个概念如果在对话过程中被多次提及或澄清过,那么在对话过程中这个概念对应的置信概率的变化被忽略了。其实 schedule 2 也有一定的局限性,如果概念之间有冲突或相互影响,即当用户或系统提及一个概念时会潜在的影响其他在当前轮未被提及的概念的置信概率时,schedule 2 就无法衡量这个影响造成的状态变化。
次年,剑桥大学组织了两次 DSTC 评测(DSTC 2 & 3(3)),分别提出了两项新的挑战。在 DSTC2 中,对话的场景选为在剑桥找餐厅的问题。与 DSTC 2013 不同,此次评测假定用户的目标在对话过程中是可以改变的;随后在 DSTC 3 中,对话场景从找餐厅扩展到找餐厅或酒店。但 DSTC 3 除了极少量供调试用的种子数据外并不提供额外的训练数据,参评团队需要只用 DSTC 2 的训练数据训练模型,并迁移至 DSTC3 的测试集上。这两次评测的主要评估指标均为基于 schedule 2 的 accuracy,L2 norm 和 ROC CA 5。
之后的两年中,新加坡的 I2R A*STAR 研究所组织了DSTC 4(4)和DSTC 5(5)的评测 。主要评测目标是对在旅游场景下人和人对话中的对话状态建模。其中,DSTC 5 在 DSTC 4 的基础上提出通过机器翻译实现跨语言对话建模的挑战。由于这两次评测的数据来自人工标注,并没有引入 ASR 和 SLU,所以选用的评估指标是基于 schedule1 和 schedule 2 的 accuracy ,外加参评系统输出的 slot-value pairs 的准确率、召回率和 F-score。
现有的对话状态跟踪的评测标准有一定的局限性。主要问题在于,上述评估机制完全基于结构化的语义和对话状态表示。而在真实的商业应用对话系统中,为了更大程度的满足用户的需求,往往会采用结构化表示和非结构表示相结合的方法。
对话策略的评估
首先,我们再次说明,因为对话策略是一个决策过程,无法评估单轮决策结果的优劣。所以对话策略的评估通常是通过评估整体对话系统的效果来实现的。
一个任务驱动的多轮对话系统的核心目的是最有效的帮助用户完成信息或服务获取的任务。那么,评估一个任务驱动的对话系统的好坏最直接的两个指标就是任务完成率和平均对话轮数。其中,任务完成率越高越好,而在同等对话完成率的基础上,平均对话轮数越少越好。理想的情况下,统计上述指标需要有真人参与对话。(虽然早期的对话系统研究中也有通过对话模拟器进行自动评估的先例[4],但是对话模拟器自身的质量引入了另一个维度的问题。)获得上述的统计结果,我们既可以离线标注真实用户与对话系统交互的 log[5],也可以预先(随机)产生用户目的,再让真人实验员按照指定的目的进行对话[6]。后者,可以通过 Amazon Mechanical Turk 类的众测平台完成[6]。此外,如果进行众测类实验,还应注意两个问题:(1)通常我们除了需要自动统计客观的任务完成率(通过匹配预先指定的用户目的和机器输出的结果),还应要求测试用户提供主观感知到的任务完成情况。因为根据以往的研究经验,这两个结果的绝对值会有较大出入[6];(2)造成主客观任务完成率差异的主要原因是测试用户因为各种原因在陈述需求时并未能准确完整的表达预定义的目的。因此,我们还需要一个检测机制来检验用户陈述的需求和系统输出结果的匹配程度[6]。
这里值得一提的是,据我所知唯一一次端到端对话系统的公开评测是 Spoken Dialog Challenge 2010,其选用的主要评估指标就是任务完成率和平均对话轮数。
总结
评测一个任务驱动的多轮对话系统,主要涉及评测自然语言理解、对话状态跟踪和对话策略三个部分。自然语言理解是一个典型的分类问题,可以通过准确率、召回率和 F-score 等指标进行评测。对话状态跟踪,作为辅助对话策略的一个中间环节,业界已总结出一系列的评测标准,详情请参考历届 DSTC 公开评测。而对话策略的质量通常需要通过对话系统的整体效果来体现,其主要评测指标是任务完成率和平均对话轮数。
原文参考:https://www.leiphone.com/news/201704/8ofqhd0UEJVjgWHv.html