自然语言理解(NLU)一直是采用最先进的深度学习技术的最活跃领域之一。如今,我们拥有数十种主流的NLU堆栈,这些堆栈可以以最小的努力实现相当先进的会话代理。但是,绝大多数对话模型仍然高度限制于单个主题。业界将这些代理称为封闭域聊天机器人。与封闭域聊天机器人相反的是,会话代理可以在模拟人类对话风格的多个主题之间进行对话。我们称这类代理为开放域聊天机器人,它们难以实施。最近,Facebook人工智能研究(FAIR)团队公布了这项研究,开放了Blender的源代码,Beverer是有史以来最大的开放域聊天机器人。
出于以下几个原因,寻求构建可模仿人类风格对话的开放域会话代理程序是NLU研究的重点。自婴儿时代起,语言就一直是人类智力发展的基本要素。在整个过程中,我们获得了一系列技能,例如倾听,同理心或使不同的响应具有一致的观点或价值观,这是人类沟通的基本要素。尽管我们仍然不了解这些功能的神经科学架构,但是我们可以同意,必须在NLU代理中重新创建才能实现人与人之间的交流。毫不奇怪,许多从事开放域聊天机器人研究的公司都是在对话接口上投入巨资的技术巨头。之前Google揭开了参与不同主题的对话代理Meena背后的研究面纱,尽管做出了这些努力,但是开放域聊天机器人的实施仍然面临着巨大的挑战。特别是对于使用当前NLU技术实现开放域聊天机器人而言,存在三个至关重要的关键挑战。
1)大规模的预训练:当今构建开放域的聊天机器人需要大规模的预训练模型。最近的语言代理(例如Google的BERT或Microsoft的Turing-NLG)已经证明了这种方法。
2)交际能力:善解人意,独特的个性或背景知识等能力对于良好的对话至关重要。
3)人类的主观性:没有有效的方法可以量化类似人类的对话。为此,我们仍然依靠人类的判断。研究表明,诸如答案长度之类的主观方面会影响人对质量的判断。
Blender
Blender是一个开源的开放域聊天机器人,是Facebook ParlAI项目的一部分。Blender能够在几乎任何主题上进行各种各样的对话,同时展现出类似人的特征,例如同理心和个人化的参与度。为了实现这一目标,Facebook团队必须直接应对上一节中概述的一些挑战。
预训练量表
Blender基于类似于BERT或Turing-NLG等项目的变压器架构。当前版本的Blender使用了94亿个参数的预训练神经网络。如此庞大的神经网络可以在单个设备上运行。结果,Blender使用列式并行技术将Blender拆分为较小的神经网络,这些神经网络可以并行执行,同时保持较高的效率。
融合技巧
为了评估Blender的各种类似于人的会话技巧,Facebook团队依靠一项名为Blended Skill Talk(BST)的并行研究工作。BST是一个新的数据集和基准,用于评估对话代理中的知识和同理心等能力。具体来说,BST结合了以下数据集来评估不同的融合技巧:
- 参与使用人格(PersonaChat)
- 参与知识的使用(维基百科向导)
- 展示同情(移情对话)
- 能够无缝融合所有三个(BST)
BST的使用使Blender可以学习不同的行为,例如改变音调以表现出对另一方的同理心或对笑话做出适当的反应。
生成策略
如前所述,答案长度之类的方面可能会对对话的质量产生重大影响。为了控制这一点,Blender依靠用于超参数搜索的微调模型来帮助平衡知识显示和长度之间的权衡。
Blender架构
Blender是三种Transformer架构的组合,可优化开放域聊天机器人的不同方面。
1)检索器:检索器接收对话历史记录作为输入,然后选择下一个语音。这通常是通过在训练集中所有可能的响应中选择最高分数来完成的。
2)Generator: Generator Transformer是一个Seq2Seq模型,它生成不同的响应,而不是从训练数据集中选择它们。当前版本的ParlAI中包含Blender杠杆生成器模型。
3)检索和细化:此Transformer模型尝试细化传统生成模型产生的响应。众所周知,生成模型通常会产生幻觉。Retrieve and Refine体系结构尝试通过在生成步骤之前引入检索步骤来解决这些问题,并尝试尽可能地对其进行优化。Blender使用两种检索技术,称为对话检索和知识检索。
Blender实战
当前版本的Blender包括分别针对90M,2.7B和9.4B参数训练的不同体系结构。毫不奇怪,最初的测试表明,较大的模型可以在更少的步骤中实现更高的性能。
Facebook使用不同的基准评估了Blender。最值得注意的是,使用成对的人工评估将Blender与Google Meena聊天机器人进行了比较。Blender在参与度(a)和人性化(b)的交谈方式方面胜过Meena。
此外,还针对人类反应对Blender进行了评估,结果可比。实际上,多达49%的评估者更喜欢Blender对人类的反应。
Blender进行的对话令人印象深刻。下面的示例使我们快速了解了对话代理人的参与程度,广泛的知识和词汇。
Blender代表了开放域对话代理程序实施中的重要里程碑。尽管Blender仍然可能重复犯错误,但它的性能表明,与在AI代理中实现类似于人的对话功能相比,它也实现了一些重要突破。
原创文章,作者:xgl,如若转载,请注明出处:https://edgeaitech.com/p/250