对话式AI新方法:对话即数据流
作者|语义机器研究团队翻译|将计划|陈思微软语义机器公司正试图建立一个对话式的人工智能体验。用户只需要专注于说出他们想要的,剩下的就交给系统了。
本文原载于微软研究院博客,由InfoQ中文网站翻译分享。
& ldquo说起来容易做起来难。& rdquo这句话反映了会话式人工智能的前景。询问& ldquo梅根和我总是有空& rdquo;就几秒钟。但是手动查看日历需要更长的时间。事实上,我们在技术的帮助下完成的每一件事都让人们觉得我们已经走过了一条通往短期目标的漫长道路。在微软语义机器公司,我们正试图填补这一空白。& mdash要建立一个对话式的人工智能体验,你只需要专注于说出你想要的,剩下的就交给系统了。像这样与人工智能的对话应该像与朋友交谈一样:自然地、情境地、合作地。
一个真正强大的对话式AI不仅需要对语言有深刻的理解,还需要情境性、灵活性和健壮性,人工智能还必须对动作有深刻的理解& mdash& mdash大多数目标涉及多个步骤和多个信息源。表达、动作和对话状态是会话式人工智能系统的核心挑战之一。我们在计算语言学协会(TACL)杂志上发表了一篇题为& ldquo面向任务的对话是数据流合成。(面向任务的对话作为数据流合成)描述了一种新的表示和建模框架,它将对话解释为数据流图,并使跨多个领域的复杂任务的对话成为可能。我们还发布了包含4万多个对话的数据集(标有数据流图)和公开排名列表,可以帮助人工无线城市在多轮面向任务的对话中解决具有挑战性和实用性的问题。
从我们的新数据集,我们可以看到令人难以置信的用户请求多样性:
目标多样性。用户可能想要& ldquo预约梅根& rdquo。他们也可能会认为& rdquo和梅根约好周二见面。,甚至& ldquo约好梅根在劳动节后的第一天早上开会。。
语言多样性。问题可能是& ldquo明天天气会怎么样?& rdquo同样的问题也可以通过& ldquo明天外面会怎么样?& rdquo或& other徒步旅行需要带夹克吗?& rdquo以这种形式。
上下文多样性。& ldquo三个怎么样?& rdquo这句话的意思完全取决于刚才说的话。句子& ldquo梅根两点钟没有来。你还有其他建议吗?& rdquo提议改变会议时间。句子& ldquo天气预报说中午多云。天气有疑问。句子& ldquo里沃利有一张两人桌。这是增加晚餐座位的请求。
传统& ldquoslot filling)& rdquo;系统忽略了这种多样性。它们只支持一组目标,除了当前目标中缺少的参数列表之外,它们没有上下文表示。另一个极端是最新的。端到端& rdquo原则上,神经系统可以自由地学习任何与语境相关的反应,但仅仅灵活地使用词语是不够的,因为对话也需要灵活地执行动作。部署的系统还需要可控和可信,这在非结构化系统中非常具有挑战性。
我们提供了第三种方法,使用深度学习来产生和消费强大的& ldquo数据流& rdquo超越槽填充方法的表示提供了灵活的动作和可控的语义。数据流旨在支持人类在日常生活中自然、灵活、开放的对话。我们的方法基于以下五个关键概念。
1.用户请求是程序。
现有的对话方法非常适合解释固定的和预定义的任务请求,例如& ldquo打开灯& rdquo或& other& rdquo设置一个名为“意大利面”的计时器5分钟。。在这些方法中,对话系统设计者定义了一组固定的意图,每个意图都有一组固定的参数。系统用用户表达的意图和意图的参数来标记每个用户请求:
但是,对于更复杂的请求,如& ldquo我和梅根一起喝咖啡的时候温度会是多少?& rdquo回答这个问题需要对话代理做一系列不同的事情:找出梅根是谁,使用梅根在日历应用中查找事件,找出开始时间,然后使用时间查询天气服务。我们不需要系统构建器来创建特殊目的的weather _ duration _ event _ with _ person。相反,我们将自然语言请求转换成一个程序,并将所有这些调用链接在一起。我们将程序表示为数据流图,该图清楚地定义了对话代理计划中的步骤(节点之间的数据依赖关系( edge ):
一旦神经网络预测到这个程序,对话代理就会执行它,根据结果回复用户,并将结果存储在数据流图中。
2.面向任务的对话是交互式编程。
使用数据流来表达用户意图的一个优点是,它可以非常自然地概括为许多来回通信中的交互。如果用户开始询问& ldquo我下次什么时候能见到梅根?& rdquo,对话代理首先预测一小段图片:
如果用户继续询问& ldquo在下一轮对话中;那时的天气怎么样?& rdquo回答这个新问题所需的大部分工作已经完成。代理返回到上一轮的程序片段,将其输出输入到新的API调用中,然后描述结果:
这个过程的结果和我们之前为一个复杂问题生成的程序完全一样!这种重用是我们框架的核心特征& mdash& mdash复杂的动作是通过组合更简单的动作来构建的,而不是定义一堆顶级行为。这种组合可以一次完成,也可以通过在多个周期中依次扩展数据流图来逐步完成。
3.语义依赖语境
展开的图形用作对话状态。它记录了代理迄今为止为理解、服务和响应用户而执行的所有计算。随后的表达式在这个上下文中解释(通过深度学习),它们可以参考这些早期的计算和结果。如本文所示,明确引用和重用早期计算机制提高了对话代理机器学习的数据效率和准确性。它们还使工程师更容易推理和控制对话代理的行为。
在前面的示例中,用户使用单词然后来指代数据流图中较早的节点。其他引用表达式,例如【/s2/】、【/s2/】她的【/s2/】或【/s2/】您指示【/S2/】的第二次会议,也可以指示重用对话中前面提到的值或实体的请求。
这个引用也可以隐式发生。想象一下问你的设备& ldquo天气怎么样?& rdquo通常你指的是最近的天气。但是如果你在提到未来的活动后问同样的问题,你可能是在问活动期间活动现场的天气。最终,这两种情况需要两种不同的计算方法。如下图,左边的计算将用于解释最近的情况,右边的计算将用于解释特定事件的情况:
弄清楚如何区分这些用法(更不用说这个问题的其他解释)是一个具有挑战性的机器学习问题。但是直觉上,在这两种情况下。天气怎么样?& rdquo意思是相同的& mdash& mdash用户想要知道与对话上下文最相关的时间和地点的天气。
在我们的方法中,这种推理是显式的:当在上下文中解释用户输入时,我们的对话代理显式地预测引用现有计算片段的程序,包括从对话开始就隐式可用的片段,例如这里的和现在的。对于上面的两个例子,它看起来像这样:
换句话说,在这两次对话中,对话代理人的解释是一样的& ldquo天气怎么样?& rdquo这个问题。它预测了相同的数据流图片段,并调用了refer(时间)和refer(地点)。然而,这个片段的解释会根据前面的上下文而改变。
& ldquo公司假期怎么样?& rdquo这个问题与语境关系更为密切。在这里,用户不仅指现有的实体,还要求对话代理为先前的问题计算新的答案,其中一些细节已经改变。我们把这种变化称为修订版。与reference一样,revision提供了一种强大的机制来执行复杂的图转换,以响应简单的请求。下图说明了当用户问完& ldquo我和梅根喝咖啡的时候天气怎么样?& rdquo然后问& ldquo公司假期怎么样?& rdquo
这里,第一个事件搜索的条件(名为coffee包含Megan的事件)被新条件(指定名为company backup的事件)替换。
详情请见报纸:
https://www . Microsoft . com/en-us/research/publication/task-oriented-dialogue-as-gt;
4.事情会出错的
在任何复杂的对话中,事情都会以许多意想不到的方式发生。与梅根预约的请求可能会失败,因为用户的联系人列表中没有名为梅根的人;因为有很多人叫梅根;;因为没有空会议;即使网络断开,会话代理也无法联系服务器。每种情况都需要不同的响应,现有的对话系统通常使用复杂的硬编码逻辑来从错误中恢复。
我们通过从数据流图中的一个节点抛出一个异常来处理所有这些失败。我们的对话代理将对此失败做出回应。结果& rdquo为用户生成适当的警告或问题。用户可以随意回应,或许可以通过纠正问题;例如,在这种情况下,& ldquo我指的是梅根·鲍恩;将被解释为对原始请求的修改。该方法允许系统和用户在错误发生时根据上下文灵活、模块化和协作地处理错误。
5.语言的生成依赖于对话语境。
要成为有用的团队伙伴,对话AI系统需要能够生成语言,而不仅仅是解释语言。现有的对话方法大多要么是硬编码的生成规则(使输出听起来像机器人,不会因上下文不同而改变),要么是非结构化的神经语言模型(有时说的是实话!)在我们的方法中,语言生成被建模为神经引导的合成程序转换过程,在这个过程中,代理将依次扩展数据流图。代理可以讨论图表中出现的任何内容,而不仅仅是它计算的最终结果。它甚至可以向图表中添加新的计算和结果,用户可以在未来的对话中随意引用:
代码、数据和新一轮竞争
我们认为,这种方法是迈向新一代自动对话代理的第一步,它可以像人一样与人互动。然而,解决这个问题需要全社会的共同努力。为了促进基于数据流的会话代理的开放研究,我们发布了规模最大、最复杂的面向任务的会话数据集SMCalFlow。该数据集有41517个标有数据流程序的对话。这个数据集来自人类之间的公开对话,讨论日历、天气、人和地方。与现有的对话数据集相比,我们不收集基于预先指定的脚本的对话。参与者不限。他们可以问任何问题,他们可以用自己的方式完成任务。因此,SMCalFlow本质上不同于现有的对话数据集,它对代理能力、多轮错误恢复和复杂目标有具体的讨论。
数据集、代码和排行榜可以在我们的GitHub页面上找到。我们期待看到自然语言处理社区如何使用这一新资源。
0条评论