1. ConvAI2总体介绍
目前很少有适合训练和评估闲聊对话系统(聊天机器人)的数据集;同样棘手的是,目前也没有标准的评价方法来评估这类对话模型。因此,第二届Conversational Intelligence Challenge(ConvAI2)的总体目标是建立一个测试聊天机器人的具体方案,旨在吸引研究人员的参与,成为一个标准的评估工具,以使对话系统直接可比。2018年的比赛是ConvAI挑战的第二届,同样是NIPS大会8个正式的竞赛任务之一。与去年相比,今年的竞赛流程做出了以下改进:
从一开始就提供了完整的数据集persona-chat[1]
在对话任务的构建上让会话者的参与度更高
更简单的评估过程(先是使用客观指标进行自动评估,然后再进行人工评估)
ConvAI2的组织者主要来自Facebook AI Research和Moscow Institute of Physics and Technology等机构。所有的基线系统、数据和脚本都集成在了Facebook开发的ParlAI平台[2]中。参赛者可以使用任何的语言或者框架进行开发,最后只需要集成到ParlAI中即可。
参赛者提交系统时需要在github上创建一个私有仓库,并且共享这个仓库给比赛组织方的相关人员。参赛者提供完整的模型与代码,并确保ParlAI平台的评价脚本能够正确调用后,就可以通知主办方的测试人员。测试人员会在隐藏的测试数据上运行客观指标评价脚本,得到此次提交系统的指标,并随后更新竞赛主页上的排行榜(http://convai.io/#leaderboard)。需要注意的是,一支队伍一个月只有一次提交的机会。
数据方面,persona-chat数据集来自于众包人员之间的真实对话。这些众包人员随机配对并被要求扮演给定的persona信息(persona信息随机分配,由另一组众包人员创建)。成对的众包人员之间进行自然对话,并在尝试在对话期间相互了解。这会产生有趣且引人入胜的对话,对话模型可以尝试模仿这些对话。persona-chat数据旨在模拟两个对话者第一次见面、并相互了解的对话。他们的目标是尽可能的参与对话过程,了解对方的兴趣,讨论自己的兴趣并找到共同点。这项任务在技术上具有很大的挑战性,因为它涉及到提问和回答,并且需要维持说话者一致的角色信息。数据被分为了训练集、开发集和测试集,参赛者能够获得的是训练集和开发集。训练集含有约1万组多轮对话,包含了约16万条句子。由于数据来自真实的人人对话,所以该数据的质量非常高。除了组织方提供的数据外,参赛者还可以任意扩充训练数据。唯一的条件是,使用的数据在竞赛结束后必须要公开出来。
评价指标方面,ConvAI2分为了自动评价和人工评价两个阶段。自动评价阶段用到了3个指标,分别是PPL(针对生成模型)、Hits@1(主要针对检索模型)和f1。指标本身很简单,不再赘述。任何一项客观指标排前3的队伍会进入到人工评价阶段,但是人工评价阶段无法调整提交的模型。人工评价根据评价参与者的不同,分为了2个大的类别,分别是Amazon Mechanical Turk和Wild Live Chat with Volunteers。Amazon Mechanical Turk的评价者是众包人员,基于亚马逊的众包平台,和数据的构建方式类似,这部分评价者会得到一定的报酬;而Wild Live Chat with Volunteers则是基于聊天软件Telegram,任何人都可以通过这款软件随机与某一个聊天机器人建立连接并进行打分。客观指标和主观指标的排名互相独立,都会在各自的阶段结束后公布相应的排名。最终的获胜者会在NIPS大会上公布。
2. 对于ConvAI2的一些讨论
数据方面,竞赛组织方提供了一个高质量的人人对话数据集,包含了丰富的persona信息,为相关研究工作的开展提供了很好的支持。个性化对话研究是开放域对话一个重要问题。在persona-chat数据公布之前,研究工作中能够使用的公开数据大多来自社交媒体或者电影台词,而要从这些数据中系统化的提取、整理人物的persona信息比较困难。persona-chat数据的公布则有效的缓解了这一问题,并且使得不同模型之间的比较成为可能;而另一方面,竞赛的组织方出于收集更多数据的考虑,在竞赛规则中允许参赛者使用任意语料扩充自己的训练数据,只需要在赛后公布使用到的数据。众所周知,数据的规模在一定程度上会决定最后的效果。因此,想要在ConvAI2中取得好成绩,模型调整和数据准备二者缺一不可。
评价指标方面,开放域对话系统的评价本身就是一个很难的任务,目前没有任何统一、有效的客观指标能够准确刻画对话系统的性能。就ConvAI2来说,目前情况下使用PPL和Hits@1来评价生成模型和检索模型是相对合理的;而在只有一个句子作为参考答案的情况下,加之对话本身的开放性,使用f1作为评价指标是否合理就值得商榷了;即使需要考虑词重叠率的相关指标,使用BLEU或许也是一个更好的选择。
困惑度(PPL)原本是用来衡量语言模型好坏的指标。因为对话在某种程度上也是一种特殊的语言模型(考虑对话历史而不是同一个句子的前几个词),所以近几年很多开放域对话的研究工作都使用了PPL作为评价指标,以作为回复流畅性的一种度量。在使用PPL作为评价指标的过程中,研究人员们逐渐发现,当对话模型的PPL低于一定的限度时,模型开始倾向于生成通用(generic)的回复。这与我们期望对话系统生成多样化回复的初衷是背道而驰的。在ConvAI2竞赛中,由于客观指标独立于主观指标,参赛者都会以降低模型的PPL为自己的优化目标;此外,由于规则不限制具体数据的使用,在模型相同的前提下,加入更大规模的数据几乎可以确保在PPL指标上取得更好的效果。作为官方基线系统的seq2seq+attention模型在PPL指标上有着很好的表现,很少有队伍的PPL指标能够超过这一模型;但是,很多的研究工作都已表明,seq2seq模型倾向于生成无趣的万能回复[3]。那么,即使PPL优于了seq2seq模型,这样的对话模型又会生成什么样的回复呢?
现有的技术条件下,评价对话系统很难有万全的方案。ConvAI2的赛制以及评价指标可能存在一些值得改进的地方,但该项竞赛对于开放域对话系统研究所作出的推动,以及对于开放域对话模型评价的探索,都值得肯定。
参考文献:
[1] Zhang S, Dinan E, Urbanek J, et al. Personalizing Dialogue Agents: I have a dog, do you have pets too? ACL 2018.
[2] Miller A H, Feng W, Fisch A, et al. ParlAI: A Dialog Research Software Platform[J]. 2017.
[3] Jiang S, De Rijke M. Why are Sequence-to-Sequence Models So Dull? Understanding the Low-Diversity Problem of Chatbots[J]. 2018.