本文看点
本文来自Google AI Blog。其在开放领域的对话研究正在试图开发一种不专门针对聊天,但实际上仍然可以与用户聊任何内容的聊天机器人。目前的聊天机器人往往答非所问。
Meena是一个基于26亿参数的端到端训练的神经对话模型,可以学习对特定的对话上下文做出明智的响应。针对开放域聊天机器人,本文提出了一个人工评估指标:合理度和具体度平均值(SSA),捕获自然对话中基本但重要的属性。
困惑度(Perplexity)是一种适用于任何神经对话模型的自动指标,与SSA高度相关,用于衡量语言模型的不确定性。困惑度越低,模型的SSA评分越好,相关系数也很强。实验证明,Meena的SSA与人类很接近。在后续工作中,还会考虑其他属性,如个性和事实性。
原文来自Google AI Blog,作者Daniel Adiwardana
现代的聊天机器人往往非常专业,只要用户的行为与预期相距不远,它们的表现就会很好。为了更好地处理各种各样的对话主题,开放领域的对话研究探索了一种补充方法,试图开发一种聊天机器人,使之不专门针对聊天、但仍然可以与用户聊任何内容。
这不仅是一个有趣的研究问题,而且还可以促进开发许多有趣的App,例如进一步人性化的计算机交互、改进外语练习,以及创作可关联的交互式电影、视频游戏角色。
但是,当前的开放域聊天机器人有一个严重的缺陷:它们说的话通常没有意义。有时,它们说话前后不一致,或者缺乏常识和关于世界的基本知识。此外,聊天机器人给的答案不是具体根据语境的回应。例如,“我不知道”可以用来回答任何问题,但并不具体。当前的聊天机器人这样做的频率比人高,因为对话过程有许多可能的用户输入。
在论文《迈向类似于人类的开放域聊天机器人》中,我们介绍了Meena,一个26亿参数的端到端训练的神经对话模型。我们证明,与现有的先进聊天机器人相比,Meena可以进行更合理、更具体的对话。我们针对开放域聊天机器人提出了一项新的人工评估指标,即合理度和具体度平均值(下称SSA),能够捕获人类对话中基本但重要的属性。
值得注意的是,我们证明了困惑度(Perplexity)是一项自动指标,适用于任何神经对话模型,而且与SSA高度相关。
图注:Meena(左)与某人(右)的聊天对话。
Meena
Meena是一种端到端的神经对话模型,可以学习根据特定语境做出明智回答。训练的目标是最大程度地减少困惑度,即预测下一句的不确定性。在上文的例子中,指的是对话中的下一个词。
它的核心在于Evolved Transformer(下称ET)seq2seq架构,即一个由进化的神经架构搜索发现的transformer(语言模型)架构,用来降低困惑度。
具体而言,Meena具有单个ET编码器模块和13个ET解码器模块,如下图所示。编码器负责处理对话语境,以帮助Meena理解对话中已经说过的内容。然后,解码器使用该信息来构成实际回答。通过调整超参数(hyper-parameters),我们发现功能强大的解码器是提高对话质量的关键。
图注:Meena的7句对话上下文和生成“下一代”回答,示例。
用于训练的会话被组织为线索树,其中每条线索中的每个答复都被视为一个会话回合。我们提取每个会话训练示例(具有七个上下文对话来回),作为线索树的一条路径。我们认为七个来回的对话是一个良好的平衡,一边保证训练的上下文长度足够,一边保证不超过内存限制,因为较长的上下文会占用更多的内存。
Meena模型具有26亿个参数,经过341 GB的文本训练,这些文本是从公共社交媒体对话中过滤出来的。与现有的先进生成模型OpenAI GPT-2相比,Meena具有1.7倍的模型容量,并且受过8.5倍的数据训练。
人工评估指标:SSA
现有的聊天机器人质量的人工评估指标往往很复杂,而且评估者之间没有统一的指标。这促使我们设计了一种新的人工评估指标,即SSA,它捕获了自然对话中的基本但重要的属性。
为了计算SSA,我们与正在测试的聊天机器人进行了形式自由的对话。这些机器人包括Meena和其他著名的开放域聊天机器人,尤其是Mitsuku、Cleverbot、XiaoIce和DialoGPT。为了确保评估之间的一致性,每个对话都以相同的问候语“嗨!”开始。
对于每次讲话,工作人员都会评估两个问题:“回答有意义吗?”和“回答是否具体?”。评估者需要用常识来判断回答是否完全合理。如果出现任何问题,比如语义混乱、不合逻辑、脱离上下文或有事实性错误,则应将其回答评为“没有意义”。
如果回答是有意义的,则需要评估回答是否符合给定的上下文。例如,如果A说“我爱网球”,而B回答“很好”,那么回答应标记为“不具体”,因为这样的答复在许多不同的上下文中都可使用。但是,如果B回答:“我也是,我超爱费德勒!”,则回答被标记为“具体”,因为它与所讨论的内容密切相关。
对于每个聊天机器人,我们通过大约100个对话收集了1,600至2,400个个人对话。每个模型的回答都由工作人员标记,以表明其是否合理和具体。聊天机器人的合理度是被标记为“合理”的回答,而具体度是被标记为“具体”的回答。这两个的平均值是SSA分数。下面的结果表明,就SSA分数而言,Meena的表现大大优于现有的最先进的聊天机器人,并且正在缩小与人类表现的差距。
SSA
图注:与人类、Mitsuku、Cleverbot、XiaoIce和DialoGPT相比,Meena的合理度和具体度平均值(SSA)。
自动指标:困惑度
长期以来,研究人员一直在寻找一种自动评估指标,该指标与更准确的人工评估相关。这样可以更快地开发对话模型,但是迄今为止,找到这样的自动衡量标准一直是一个挑战。出乎意料的是,在工作中,我们发现困惑度是一种易于用在任何神经seq2seq模型的自动度衡量指标,它与人工评估(如SSA值)具有很强的相关性。困惑度用于衡量语言模型的不确定性。困惑度越低,模型就越有信心生成下一个标记,如字符、子单词或单词。从概念上讲,困惑度表示在生成下一句时,模型试图从中进行选择的数量。
在开发过程中,我们对具有不同超参数和架构的八个不同模型版本进行了基准测试,例如层数、关注数、总训练步骤、是否使用ET或常规Transformer,以及是否使用硬标签或蒸馏(即知识提取)来训练。如下图所示,困惑度越低,模型的SSA评分越好,相关系数也很强(R2= 0.93)。
图注:互动SSA与困惑度的比较。每个蓝点代表Meena模型的不同版本。绘制出的回归线表示SSA和困惑度的强关联。点线代表人类、其他模型、我们端到端训练的模型Meena(base),以及具有过滤机制和优化解码过的完整版Meena。
我们最好的端到端训练的Meena模型称为Meena(base),其困惑度为10.2(数字越小越好),转化为SSA相当于72%。与其他聊天机器人的SSA相比,我们的SSA分数为72%,与普通人类86%的SSA相差不远。完整版Meena具有过滤机制和优化解码功能,可将SSA分数进一步提高到79%。
未来研究与挑战
如先前所提倡的,我们将继续通过改进算法、架构、数据和计算来降低神经对话模型的困惑度。
尽管我们只专注于合理度和具体度,但在后续工作中也会考虑其他属性,例如个性和事实性。此外,解决模型中的安全性和偏差是我们关注的重点领域,鉴于与此相关的挑战,我们目前尚未发布外部研究演示。但是,我们正在评估与外部化模型检查点相关的风险和收益,并可能选择在未来几个月中使用它,以帮助推进该领域的研究。