万微科技2016开源聊天机器人 Blender,更具“人情味”,Facebook( 二 )


万微科技2016开源聊天机器人 Blender,更具“人情味”,Facebook
文章图片
FAIR团队将一个向导生成模型与另一个检索器配对 , 共同决定何时将知识整合到聊天机器人的响应中 。 这两个模型产生了一组初始知识候选者 , 然后对这些候选者进行排序 , 之后它们选择一个句子 , 并使用它来对生成响应进行约束 。 分类器根据每个对话选择是否执行检索 , 以避免在不需要的时候提供知识 。
解码
对于生成模型 , FAIR的研究人员使用了一种波束搜索(BeamSearch)解码器的方法来生成对给定对话上下文的响应 。 波束搜索保留了一组被部分解码的序列 , 称为假设 , 这些序列被附加在一起形成序列 , 然后进行评分 , 从而使最好的序列按冒泡排序的方法到达顶端 。
为了控制聊天机器人响应的长度 , FAIR团队考虑了两种方法:对最小生成长度的硬约束和分类器预测回答长度 , 并将最小生成长度约束设置为相应的预测值 。 后者更为复杂 , 但结果是对问题的响应长度不固定 , 确保聊天机器人在看似合适的情况下能提供较长的响应 。
训练模型
为了准备组成Blender的各种模型 , 研究人员首先进行了预训练 , 这已不是为特定任务的机器学习模型设定条件 。 他们使用了Facebook自己的Fairseq , 这是一个支持训练自定义语言模型的工具箱 , 其数据样本来自Reddit语料库 , 其中包含15亿条评论(每条评论保留两组36万条 , 用于验证和测试) , 对已知的聊天机器人、非英文的Subreddit、已删除的评论、带有URL的评论和一定长度的评论进行了缩短等优化调整 。
万微科技2016开源聊天机器人 Blender,更具“人情味”,Facebook
文章图片
接下来 , FAIR团队使用另一个Facebook开发的套件ParlAI对模型进行了微调 , 该套件用于训练和测试对话模型 。 所选的一个训练语料库是ConvAI2 , 其中包含14万句话语 , 包括成对的志愿者通过提问和回答有好的问题相互了解 。
另一个是移情对话(EmpatheticDialogues) , 其中包含50000个情感情境的众包话语 。 然而 , 另一个数据集“维基百科向导”(WizardofWikipedia) , 由194000个话题组成 , 每个对话以随机选择的话题开始 , 目标是展示专家知识 。
第四个微调数据集“BlendedSkillTalk” , 旨在将前三个数据集(ConvAI2、移情对话和维基百科向导)混合在一起 , 以便在对话过程中将它们各自的技能结合起来 。 在这里 , 我们收集了76,000句话语 , 其中有引导的和无引导的人类说话者 , 引导的说话者可以选择由机器人在这三个单独的数据集上训练的机器人建议的话语 。
评估
训练结束后 , 研究人员将Blender与Google最新的机器学习模型Meena聊天机器人进行了性能比较 , Meena是一个拥有26亿个参数的机器学习模型 。 人类志愿者的任务是回答两个问题:“你更愿意和谁进行长时间的对话?”和“哪个说话的人听起来更有人情味?”—给出了100条Meena公开发布的随机日志以及Blender生成的相同数量的日志 。 在每种情况下 , 志愿者们都会看到一系列人类与相应的聊天机器人配对的对话 。
对话的主题从烹饪、音乐、电影、宠物到瑜伽、素食主义、乐器和购物中心等 , Blender模型在被问及相关商店、乐队、电影、演员、宠物种类和宠物名称时 , 往往会深入细节 。 有这样的一个例子 , Blender细致入微地回答了一个关于Bach与JustinBeiber相比较的问题 , 而要求Blender写出一首歌时 , 确实产生了歌词 , 尽管没有什么特别的诗意 。
万微科技2016开源聊天机器人 Blender,更具“人情味”,Facebook
文章图片
向志愿者分别展示Meena和Blender的聊天后 , 67%的志愿者表示 , 表现最好的Blender聊天机器人听起来更像人类 , 它包含94亿个参数的生成模型 , 是在BlendedSkillTalk语料库上预训练的 。 大约75%的志愿者表示 , 他们宁愿与27亿个参数的微调模型进行长时间对话 , 也不愿与Meena进行长谈 。 并且 , 在人与人和人与Blender对话之间的A/B对比中 , 49%的志愿者表示更喜欢在BlendedSkillTalk上进行微调的模型 , 而只有36%的志愿者更喜欢只接受过公共领域对话训练的模型 。