对话即数据流:智能对话的新方法

编者按:一个真正强大的对话式人工智能不仅仅要能够深刻理解语言 , 还必须能执行各种“行动”为用户服务 。 微软 Semantic Machines 团队的研究员们正试图利用深度学习来产生并使用具有强大表达能力的“数据流” , 以实现人们日常生活中自然、灵活、开放式的对话 。 用户只需专注于说出自己想要什么 , 而系统会思考如何将该任务完成 。
“说起来容易做起来难” , 这句话真实反映了智能对话的精髓 。 口头询问“Megan 和我什么时候都有空?”只需要几秒钟 , 但如果是从日历手动查找所需的时间却长得多 。 事实上 , 追求最短路径一直是技术发展的目标 。 微软 Semantic Machines 团队的研究员们正通过全新的智能对话体验缩短“说”和“做”的距离 。 用户只需专注于说出自己想要什么 , 而系统将思考如何完成它 。 用户和人工智能的对话将像跟朋友说话一样 , 是自然、联系语境且充满互动的 。
一个真正强大的对话式人工智能需要做的不仅仅是深刻理解语言 , 因为大多数目标都涉及多个步骤和多个信息源 , 所以 AI 还必须深刻理解各种“行动”才能联系语境进行灵活并且具有鲁棒性的对话 。 搭建智能对话系统的一个核心挑战是设计一种方法来统一地表示对话中的目标、行动和状态 。 微软 Semantic Machines 的研究团队在 Transactions of the Association for Computational Linguistics (TACL) 上发表的新论文 Task-Oriented Dialogue as Dataflow Synthesis描述了一种新的对话表示和建模框架 , 该框架将对话解释为数据流图 , 从而实现了跨越多个领域的复杂任务的对话 。 研究员们还发布了一个超过4万段对话的数据集(包括对应的数据流标注)和一个排行榜 , 以帮助人工智能社区解决多轮对话中的技术挑战 。
正如新数据集所显示的那样 , 用户需求具有惊人的多样性:

  • 多样化的目标:一个用户可能想“预订一个与 Megan 的会议” 。 他们也可能想“在周二预订一个与 Megan 的会议” , 甚至是“在假期之后的第一天早上预订与 Megan 的会议” 。
  • 多样化的语言:用户可能会说“明天的天气是什么”来询问天气 。 相同的请求也可能表述成”明天户外的天气会怎样“或者”我去徒步需要穿外套吗” 。
  • 多样化的语境:这取决于智能助理之前所说的内容 , “三点怎么样”可能表示完全不同的语义 。 例如 , 如果在前一轮智能助理说 “Megan 在两点时是忙碌状态 , 您要预约其他时间吗” , 那么它表示修改会议预约的请求;如果智能助理说 “今天中午的天气是阴天” , 那么它表示修改天气预报时间的请求 。
传统的“意图识别和槽填充”系统忽略了这种多样性 。 它们仅支持一组目标 , 并且不支持丰富的上下文表示(除了表示当前缺少的槽位以外) 。 另一方面 , 最新的“端到端”神经网络理论上可以自由地依照上下文生成任何回复 。 然而 , 灵活地生成词语往往是不够的 , 因为完成任务型对话还需要灵活地执行操作 。 此外 , 产品级对话系统还必须满足可控性和真实性的要求 , 这对于端到端的非结构性系统来说是很大的挑战 。
微软 Semantic Machines 的研究团队提出了有别于传统方案的第三种方法:利用深度学习来产生和使用具有强大表达能力的“数据流”来解决以上问题 。 这种“数据流”表征超越了“意图识别和槽填充” , 既支持灵活的操作 , 又提供了可控的语义 。 该数据流旨在实现人们日常生活中自然、灵活、开放式的对话 。
该方法基于五个关键思想:
1. 把用户的请求表示为一段程序
传统的对话系统能够很好地解释固定的、预先定义好的请求 , 例如“开灯”或者“设置一个5分钟的叫‘意大利面’的闹铃” 。 在这类方法中 , 设计人员预先定义了一组固定的意图 , 每个意图都有一组固定的参数 。 系统把每个用户请求标记为对应意图和参数的组合:
对话即数据流:智能对话的新方法文章插图
但如何处理更复杂的请求呢?例如“约 Megan 喝咖啡的时候气温如何?” , 要回答这个问题 , 智能助理需要做一系列事情:首先要找出 Megan 是谁 , 并在日历应用程序中查找包含 Megan 的事件 , 然后确定其开始时间 , 并查询该时间的天气服务 。 为解决这个问题 , 科研人员不希望添加一个叫做 “和某人在一起期间的天气”的意图 , 而是希望把自然语言转换为联系所有这些步骤的程序 。 该程序被表示为数据流图(dataflow graph) , 它明确定义了智能助理要执行的程序中的步骤(节点)和它们之间的数据依赖关系(边):