PLATO-2使用潜在变量来生成不同的响应,并通过课程学习引入了有效的训练方法。实验结果表明,在中文和英文评估中,相对于其他SOTA模型,PLATO-2有了实质性的改进。
随着计算机对话系统的稳步发展,人们与Google Assistant和百度的DuerOS等对话代理的交谈变得越来越舒适。但是自然的人机对话还有很长的路要走。大多数聊天机器人是面向任务的对话系统,仅专注于目标区域。人们想要的是没有主题限制的聊天机器人,称为开放域聊天机器人。
尽管开放域聊天机器人仍然是一个充满挑战的研究领域,但由于巨大的文本语料库推动的大规模预训练方法的最新进展催生了诸如微软的DialoGPT,谷歌的Meena和Facebook的Blender之类的尖端英语聊天机器人模型。
很高兴介绍PLATO-2,这是最新的开放域聊天机器人模型,可以谈论中文和英文,并进行深入的对话。受其先前版本PLATO的启发,PLATO-2使用潜在变量生成各种响应,并通过课程学习引入了有效的训练方法。实验表明,在中文和英文评估中,PLATO-2优于其他最新模型,并且有了实质性的改进。
可以在arXiv上 阅读“通过课程学习构建一个开放域聊天机器人”一文。可以在GitHub上找到开源代码。
arXiv:
https://arxiv.org/abs/2006.16779
GitHub:
https://github.com/PaddlePaddle/Knover
一对多映射
对话生成系统面临的挑战之一是“一对多”映射,这是指一个对话上下文如何对应于多个适当的响应。例如,如果被告知“外面正在下雪”,人们会说:“堆雪人怎么样?” 或“太冷了。我想念夏天。”
不同答案的创建可以归因于上下文和背景知识,包括个人属性(性别,年龄,肖像等),常识性知识,个性,情感等。但是,计算机系统发现建模一对一具有挑战性许多关系,给对话系统的训练带来麻烦。
为了解决这一挑战,百度的PLATO和微软的OPTIMUS等模型通过潜在空间表示了这种一对多的关系。PLATO明确使用离散的潜在变量,并设计了两个相互的任务,分别是响应生成和响应选择,以提高对话生成的质量。该模型在三个公开可用的数据集(Persona-Chat,Daily Dialogue,DSTC7-AVSD)中获得了最新的结果。
PLATO-2
与DialoGPT的单向网络以及Meena和Blender的Encoder-Decoder体系结构不同,PLATO-2通过灵活的关注机制设计保持统一的网络用于双向上下文编码和单向响应生成。该模型还采用了GPT-2中使用的预归一化技术,其中层归一化位于剩余连接中。
研究人员通过课程学习对PLATO-2进行了训练。如下图所示,学习过程涉及两个阶段。在第一阶段,训练粗粒度基线模型,以简化的一对一映射关系生成一般响应。在第二阶段,分别训练了两种细粒度生成和评估模型,分别用于不同的响应生成和响应一致性估计。
研究人员这次将PLATO扩大到PLATO-2。PLATO包含12个带110个参数的变压器块,而标准PLATO-2模型则具有32个带16亿参数的变压器块和32个关注头。研究人员还通过课程学习引入了有效的PLATO-2训练方法,理由是训练大型模型的计算越来越多。
借助PaddlePaddle强大的并行计算功能,使用64块Nvidia Tesla V100图形卡进行了1.6B参数模型的训练大约花费了三周的时间。研究人员还采用梯度检查点来交换计算以换取内存。
由于PLATO-2同时具有中文和英文模型,因此研究人员分别从Reddit提取的684M英语数据集和源自社交媒体网站的1.2B中文数据集分别对其进行了训练。
评价结果
在实验中,研究人员进行了静态评估,其中模型的任务是针对给定的多回合上下文生成响应,还进行了交互式评估,其中包括针对英语评估的机器人自聊天和针对中文评估的人机聊天。
与Microsoft的DialoGPT,Google的Meena和Facebook的Blender相比,PLATO-2在连贯性,信息和参与英语对话方面表现优于其他公司。与微软的中文数字助手小冰相比,PLATO-2在中文多回合聊天中也显示出显着优势。
如下图所示,PLATO-2在自我聊天评估中的对话增加了极大的丰富性,并扩大了话题范围,使其包括其他相关问题。相反,Blender模型经常改变主题。
相信使用PLATO-2,将与自然的人机交互迈出一步。英文版PLATO-2的代码和模型即将在GitHub上提供。还计划发布中文模型的API。