对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2

机器之心发布
机器之心编辑部
近日 , 百度发布对话生成网络PLATO-2 , 宣布在开放域对话生成模型上迎来重要进展 。 PLATO-2承袭PLATO隐变量进行回复多样化生成特性 , 模型参数高达16亿 , 涵盖中英文版本 , 可就开放域话题深度畅聊 。 实验结果显示 , PLATO-2中英文对话效果已超越谷歌Meena、微软小冰和FacebookBlender等先进模型 。
百度NLP于去年10月预公布了通用领域的对话生成预训练模型PLATO , 近期在ACL2020上展示 。 最近 , 百度又新发布了超大规模模型PLATO-2 。 PLATO-2承袭了PLATO隐变量进行回复多样化生成的特性 , 模型参数规模上升到了16亿 。 PLATO-2包括中英文版本 , 能够就开放域话题进行流畅深入的聊天 。 据公开数据 , 其效果超越了Google于今年2月份发布的Meena(26亿参数)和FacebookAIResearch于今年4月份发布的Blender(27亿 , 最高94亿参数)的效果 。 在中文上更是达到了全新高度 。
论文名称PLATO-2:TowardsBuildinganOpen-DomainChatbotviaCurriculumLearning
论文地址:https://arxiv.org/abs/2006.16779
GitHub地址:https://github.com/PaddlePaddle/Knover
PLATO-2中文对话效果演示
1.引言
传统对话系统需求大量的人工编码 , 通常只能解决领域内的问题 。 随着深度学习的普及和不断发展 , 端到端的开放域对话系统效果也在稳步提升 。 基于大量语料和超大规模模型的预训练开放域对话生成技术近些年取得了非常多的进展 。 如微软发布的DialoGPT , Google发布的Meena , Facebook发布的Blender等 , 依托数亿到数十亿级级别参数的Transformer模型 , 以及数亿到数十亿的语料训练模型 , 模型能模拟人产生和人类非常相近的对话 。
对话中存在“一对多”问题 , 也就是同样的对话语境下 , 可以有多种不同的回复 。 这些不同的回复 , 除了与上下文相关 , 也和背景知识相关 。 这些背景知识包括个人属性(性别年龄 , 画像等等)、生活常识、相关知识、价值观和态度(如认同/不认同一个观念)、对话发生的场景信息 , 对话人情绪状态意图等等(图1) 。 然而这些背景知识往往非常难获取 , 这就给对话系统训练带来非常大的噪音 。 一般的Encoder-Decoder神经网络不管有多么复杂 , 仍然是一个“一对一”的函数 , 如果直接使用 , 就很容易产生诸如“哈哈” , “不知道”之类的安全回复 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图1对话系统难点:对话语料下面的丰富隐藏信息
在百度去年发布的PLATO模型 , 和微软近期发布的OPTIMUS模型中 , 都提到了利用隐变量(LatentSpace)来建模这种不可见的多样性的方法 。 而百度PLATO模型更是独特采用了离散隐变量的方式来建模 , 且采用了多样化生成+合适度判断的方式 , 其中合适度判断用于回复筛选(ResponseSelection) 。 PLATO在Persona-Chat,DailyDialogue和DSTC7-AVSD三个不同类型的公开数据集上获得了SOTA的效果 。
2.PLATO-2介绍
这次公布的PLATO-2,是在PLATO工作基础上的进一步扩展 。 PLATO使用了12层Transformer作为基础 , 参数为1.1亿 。 PLATO-2通过扩展网络 , 增加训练数据集 , 将网络扩展到16亿参数 。 考虑到精细化的引入隐变量的网络训练 , 计算消耗很大 , PLATO-2采取了课程学习的方法 , 逐步优化参数 , 加快训练效率 。
2.1PLATO-2模型结构
和DialoGPT单向网络 , 以及Meena和Blender使用的Encoder-Decoder结构不同 , PLATO-2使用了UnifiedNetwork结构 , 针对上文部分使用双向Attention , 回复部分使用单向Attention , 两者共享网络参数 , 只是AttentionMask进行了灵活设计 。 这种设定经过各项任务的反复验证 , 发现在同等规模参数量的情况下具有最佳的性价比 。 同时 , PLATO-2采用了GPT-2的前置正则化层的方式 , 以更好适应大规模训练的需求 。
此外 , PLATO-2承袭了PLATO结构,包括三个逻辑模块 , Generation、Recognition和ResponseSelection , 如图2右边所示 。 其中Recognition网络用于在训练过程中识别隐变量,Generation则能够根据不同隐变量来生成回复(蓝色部分) 。 ResponseSelection承担从不同隐变量生成的回复中 , 选择合适度最好的回复 , 因此也可以认为是一种评估(Evaluation)模型(橙色部分) 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图2PLATO-2模型结构简图
2.2PLATO-2训练方法
【对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2】PLATO-2采用了课程学习方法 。 因为带隐变量的模型需要同时训练三个不同模块 , 其训练成本很大 , 因此 , 第一步 , PLATO-2先训练了不含隐变量的模型 。 该模型进行的是简化的“一对一”建模 , 容易生成安全回复 。 第二步 , 在前一步模型基础上 , 添加上隐变量 , 然后同时训练Generation+Recognition和ResponseSelection两个不同模型 。 其中 , ResponseSelection模型在合适度预测的基础上 , 还添加了MaskedLanguageModel作为辅助任务 , 以强化模型对语义的理解 。
3.PLATO-2效果
PLATO-2包含中英文两部分模型 。 其中 , 中文模型在12亿中文开放域多轮对话数据集上进行训练 , 而英文模型则在7亿英文开放域多轮数据集上训练 。 PLATO-2训练耗费了64张英伟达V100卡共3周的时间 , 依托了百度飞桨强大并行能力 , 包括Fleet并行库和Recompute等扩展显存的方式 。 单个Batch包含52万Token , 训练过程中约进行了30万次梯度回传 。
为了全面对比PLATO-2和其他基线的效果 , PLATO-2的论文进行了静态和动态评估 。 其中 , 静态评估是利用现有对话上文 , 要求模型预测一句下文 , 人工评估对话的合适度 。 而动态评估中 , 由于中文的对比模型没有开放API接口 , 中英文采用了不同的评估数据收集方式 。 英文动态评估采用了两个模型进行相互对话(Self-Chat)的形式 , 通过人工来评估效果 。 中文则采用了人机对话的形式 。 中英文动态评估中 , 都是先给定一句起始话题(第一句对话) , 然后进行多轮交互 , 最后对这些多轮对话进行评估 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图3PLATO-2动态评估效果
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图4PLATO-2静态评估效果
从结果上看 , PLATO-2在动态(图3)或者静态(图4)评估中 , 均明显超越了DialoGPT、Meena和Blender , 在中文上和微软小冰拉开了极大的差距 。 这意味着 , PLATO-2的对话智能达到了全新的领域 。
此外 , 文章也放出了PLATO-2一些中文(图5)和英文(图6)对话的演示 。 从对话效果上看 , PLATO-2和之前的模型 , 包括Meena和Blender有非常明显的区别 。 一方面PLATO-2在对话内容丰富度上提升明显 , 另一方面 , PLATO-2能够就一个话题深入聊天并扩展到相关话题 。 而之前的最佳模型Blender , 则非常频繁地转换话题 , 并且在每个话题上聊得相对较浅 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图5PLATO-2中文对话演示
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
文章图片
图6PLATO-2英文对话演示和Blender使用相同对话种子对比
4.总结
PLATO-2基于全新的隐空间技术和Transformer模型 , 从内容丰富 , 连贯性上都达到了新的高度 。 期待PLATO-2能为智能对话开辟全新的领域 。 此外 , PLATO-2的英文模型和代码即将陆续在Github开放 , 而中文模型也有望于不久的将来 , 开放接口提供相关服务 。 对智能对话感兴趣的小伙伴一定不能错过 。


    推荐阅读