近日,微软旗下的Maluuba公司新发布了一个开放的对话数据集。该数据集基于假期预定的场景——具体来说,查找航班和宾馆。据悉,近年来聊天机器人的数量越来越多,尤其是自一年前Facebook向这些机器人开放Messenger平台以来。而在目前,大多数机器人仅支持简单的顺序交互。
借助这个数据集,Maluuba(最近被微软收购)帮助研究人员和开发人员让他们的聊天机器人更智能。Maluuba让两个人在聊天室中对话并收集了这些数据。一个人扮演用户,另一个人充当计算机。用户试图查找特价机票,另一个充当聊天机器人的人使用数据库检索信息。交互只包含文本(没有口语交互),研究人员有意识地选择了这个方法。大部分人都喜欢打字,而不是说话,那也就是说,这份数据集就远离了质量不高的语音识别和背景噪声。该数据集包含1369句有关旅行规划的对话,可以免费下载。
Maluuba还提供了一种表示对话的方式。让旅行规划更加困难的是,用户经常改变谈话主题。你可能同时讨论去滑铁卢、蒙特利尔、多伦多的计划。对于我们人类而言,将人们在交谈中制定的不同计划分开并不困难。不过,如果用户在预订之前探讨了多个选项,那么计算机往往会遇到问题。当你突然输入一个新目的地,大多数聊天机器人都会忘记你刚刚谈论的所有内容。下面左边那副图是“传统”聊天机器人的交互。当用户说出一个新城市时,机器人会忘记旧城市。右侧是微软发布的数据集中出现的一个模式:用户在做出决定之前比较多个城市。
这就是为什么微软引入了所谓的“框”。每次用户修改了以前设置的值,向导程序就会新建一个框。每个跟踪框会记录所有用户提到的不同的约束集合。这让你可以同时谈论预定到蒙特利尔最贵200美元的旅行和到多伦多最贵300美元的旅行。这种会话记忆向着构建可以在在线旅游场景中帮助用户探讨不同航班的机器人迈进了一步。
传统的聊天机器人,就像你可以在Pandorabots上创建的机器人那样,会设法将对话导向所谓的“格位填充(slot-filling)”。机器人会设法在你给出的答案中找出一些属性(如名字和年龄)。一旦聊天机器人知道了这些属性,对话就会继续,机器人会设法填充下一个格位。其他公司,如被Facebook收购的Wit,已经通过“故事”把这种理念向前推进了一步。这个位于语言理解层之上的“柔性层(flexible layer)”已经创建了“让人感觉更自然的”对话。Maluuba发布的数据集更进一步,它侧重于进行同时涉及多个主题的对话。