本公开涉及用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模。
背景技术:
1、人类可以与在本文中称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人话音助理”、“谈话代理”等)的交互式软件应用进行人机对话。例如,人类-当他们与自动助理交互时可以被称为“用户”-可以使用自由形式的自然语言输入来提供命令、查询和/或请求。自由形式的自然语言可以包括使用语音识别和/或键入的自由形式的语言输入转换成文本的口头话语。
2、自动助理使用户能够获取信息、访问服务和/或执行各种任务。例如,用户能够执行搜索、获取方向,并在某些情况下与第三方计算服务进行交互。这些第三方计算服务交互(可以使用由自动助理和/或第三方计算服务提供的应用编程接口(“api”)来促进访问)允许用户执行各种动作,诸如从车辆共乘应用叫车,订购商品或服务(例如,披萨),进行预订等。
3、自动助理使用语音识别和自然语言处理与用户谈话,其中一些助理还利用机器学习和其他人工智能技术例如来预测用户意图。自动助理可能适于以自然、直观的方式与用户保持谈话,部分原因是它们理解对话背景。为了利用对话背景,自动助理可以保留来自用户的最新输入、来自用户的问题和/或自动助理提供的响应/问题。例如,用户可能会问“where is the closest coffee shop?(最近的咖啡店在哪里?)”,自动助理可能会回答“two blocks east(向东两个街区)”。然后,用户可能会问:“how late is it open?(营业到几点?)”。通过保留至少某种形式的对话背景,自动助理能够确定代词“it”是指“coffeeshop”(即,指代消歧)。
4、然而,通过传统的自动助理,特别是对于与第三方相关联的动作以及需要大量输入参数才能有效地执行的其他计算服务而言,对谈话进行建模以收集所需的输入参数可能会很复杂且劳动强度大,并且可能使得必需与应对所有可能的输入及其组合和顺序相关联的大量开发开销。这些复杂的模型可能在计算机存储器中占用相对大量的空间,并且还可能需要随着时间更新,以应对先前无法预料的输入及其组合和排序。谈话也可能会受到约束并且对各种用户输入不灵活,从而导致与自动助理的交互更加机器人化、不逼真。
技术实现思路
1、本文描述了用于使用依赖图数据结构来对谈话进行建模,以在执行由计算服务执行的动作时促进用户与自动助理的交互的技术。在一些实施方式中,自动助理可以利用依赖图数据结构来引导或以其他方式控制与用户的人机对话会话,例如,通过生成在由用户操作的计算设备上呈现给用户的一个或多个输出或提示来进行。
2、如将在下文更详细地解释的,本文所述的概念可以使自动助理能够以高效的方式获得所选的所需信息,并且在这样做时,这些概念可以允许自动助理以有效的方式进行操作,同时还可以高效地使用用户计算设备(例如,客户端计算设备)上的硬件资源。例如,本文所述的概念可以允许自动助理最高效地使用用户计算设备上的麦克风和/或扬声器硬件,以便可以减少设备上的功耗。
3、因此,根据本发明的一方面,一种使用一个或多个处理器实现的方法可以包括:确定将由计算服务针对计算设备的用户执行的动作,所述计算设备的用户与至少部分地由一个或多个处理器实现的自动助理进行通信;以及通过自动助理,使计算设备通过下述方式执行针对计算设备的用户的动作:针对动作访问依赖图数据结构,依赖图数据结构包括多个节点和多个有向边,每个节点都辨识访问计算服务的动作方法或者收集用于执行动作的一个或多个参数的助理方法,并且每个有向边都连接来自多个节点的相应节点对,并辨识至少一个参数,该至少一个参数由相应的节点对中的一个节点所辨识的动作方法或助理方法生成,并且被相应节点对中的另一节点所辨识的动作方法或助理方法利用;在用户和自动助理之间进行人机对话会话,从而确定用于执行动作的一个或多个参数,包括使用依赖图数据结构生成一个或多个自然语言输出,以通过由用户操作的计算设备呈现,并且接收在由用户操作的计算设备的一个或更多输入组件处接收到的自由形式的自然语言的一个或多个实例;以及发起由计算服务使用所确定的一个或多个参数执行动作。
4、在一些实施方式中,依赖图数据结构中的多个节点中的第一节点辨识调用计算服务的第一动作方法,并且发起由计算服务发起执行动作包括执行第一动作方法。而且,在一些实施方式中,第一动作方法包括调用操作,调用操作包括多个输入,并且执行第一动作方法包括使用所确定的一个或多个参数作为用于调用操作的多个输入中的输入来执行调用操作。
5、此外,在一些实施方式中,依赖图数据结构包括用于定义方法及其之间的依赖关系的规范,并且第一动作方法在规范中被标为可索引的,以指示第一动作方法调用计算服务以执行该动作。在一些实施方式中,第一动作方法调用计算服务以执行动作,并且依赖图数据结构中的多个节点中的第二节点辨识第二动作方法,第二动作方法调用计算服务以获得用于执行动作的中间数据。
6、另外,在一些实施方式中,依赖图数据结构中的多个节点中的第一节点辨识包括请求第一参数的第一提示的第一助理方法,并且生成一个或多个自然语言输出包括执行第一助理方法以生成包括第一提示的第一自然语言输出。在一些实施方式中,确定要由计算服务执行的动作是由自动助理执行的,并且基于在用户的计算设备处接收到的并指定由依赖图数据结构中的第一有向边辨识的第一参数的初始自然语言输入,第一有向边连接第一节点和第二节点,第一节点辨识生成第一参数的第一助理方法,第二节点辨识利用第一参数的第一动作方法,并且在用户和自动助理之间进行人机对话会话包括响应于确定在初始自然语言输入中指定第一参数而绕过生成自然语言输出来请求第一参数。
7、另外,在一些实施方式中,由依赖图数据结构中的第一有向边辨识的第一参数连接第一节点和第二节点,第一节点辨识生成第一参数的第一助理方法,第二节点辨识利用第一参数的第一动作方法,并且在用户和自动助理之间进行人机对话会话包括响应于确定在不需要从用户请求第一参数的情况下第一参数是可确定的而绕过生成自然语言输出来请求第一参数。此外,在一些实施方式中,确定在不需要从用户请求第一参数的情况下第一参数是可确定的包括确定第一参数可从与用户相关联的已存储数据确定。
8、在一些实施方式中,在用户和自动助理之间进行人机对话会话以确定用于执行动作的一个或多个参数包括使用依赖图数据结构对一个或多个生成的自然语言输出排序。一些实施方式也可以包括:响应于接收到自由形式的自然语言输入的一个或多个实例中的自由形式的自然语言的第一实例,使所确定的一个或多个参数中的一个或多个在人机对话会话期间无效;访问依赖图数据结构,以辨识在依赖图数据结构中辨识的一个或多个动作方法或助理方法从而重新执行,以便更新一个或多个无效参数;以及重新执行一个或多个已辨识的动作方法或助理方法,以更新一个或多个无效参数。
9、此外,在一些实施方式中,使一个或多个参数无效保持一个或多个其他参数有效,以便当重新执行一个或多个已辨识的动作方法或助理方法时,绕过用于确定一个或多个其他参数的一个或多个动作方法或助理方法的重新执行。在一些实施方式中,确定动作由自动助理执行,并且包括使用依赖图数据结构从多个动作中选择动作。另外,在一些实施方式中,计算服务是第三方计算服务,并且发起由计算服务使用所确定的一个或多个参数来执行动作包括使用所确定的一个或多个参数来调用第三方计算服务。
10、在一些实施方式中,计算服务是云计算服务,并且在一些实施方式中,计算服务驻留在由用户操作的计算设备上。而且,在一些实施方式中,依赖图数据结构定义有向非循环图。在一些实施方式中,动作创建预留,多个节点中的第一节点辨识第一动作方法,第一动作方法调用计算服务以搜索可用时间槽,并且多个节点中的第二节点辨识第二动作方法,第二动作方法调用计算服务以预留可用时间槽。另外,在一些实施方式中,动作获得产品或事件门票。
11、根据本发明的另一方面,一种使用一个或多个处理器实现的方法可以包括:通过计算机接口接收将被自动助理使用的多个参数,从而使计算服务针对与自动助理通信的计算设备的用户执行动作;确定多个参数之间的多个依赖关系;使用一个或多个处理器构建依赖图数据结构,依赖图数据结构被配置成用于在用户和自动助理之间进行人机对话会话,从而确定用于执行动作的一个或多个参数,包括用于生成一个或多个自然语言输出,从而由用户所操作的计算设备呈现,其中,构建针对动作的依赖图数据结构包括:使用接收到的多个参数构建用于依赖图数据结构的多个节点,包括构建辨识访问计算服务的动作方法的至少一个节点,以及构建从接收到的多个参数收集一个或多个参数的至少一个助理方法;以及使用已确定的多个依赖关系构建用于依赖图数据结构的多个有向边,每个有向边都连接多个节点中的相应节点对,并从所接收到的多个参数中辨识至少一个参数,该至少一个参数由相应节点对中的一个节点所辨识的动作方法或助理方法生成,并且被相应节点对中的另一节点所辨识的动作方法或助理方法利用;以及在动作方法中生成调用操作,其通过一个或多个接收到的多个参数调用计算服务以执行动作。
12、而且,在一些实施方式中,计算服务是第三方计算服务,调用操作被配置成访问第三方计算服务。在一些实施方式中,确定多个依赖关系包括通过计算机接口接收多个依赖关系。此外,在一些实施方式中,接收多个参数包括接收多个动作调用定义。
13、此外,一些实施方式可以包括一种系统,该系统包括一个或多个处理器以及与一个或多个处理器可操作地耦合的存储器,其中该存储器存储指令,响应于该指令被一个或多个处理器执行,使一个或多个处理器来执行任何前述方法。一些实施方式还包括至少一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括指令,响应于该指令被一个或多个处理器执行,使一个或多个处理器执行任何前述方法。
14、应该领会的是,在本文中更详细地描述的上述构思和附加构思的所有组合被设想为是本文公开的主题的一部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合被设想为是本文公开的主题的一部分。
1.一种由一个或多个处理器实现的方法,包括:
2.根据权利要求1所述的方法,其中,所述依赖图包括多个节点和多个边,所述多个节点中的每个节点与所述多个动作中的一个或多个动作相关联,并且所述多个边中的每个边与连接所述多个节点中的相应一对节点的至少一个参数相关联。
3.根据权利要求2所述的方法,其中,访问所述依赖图数据以识别与所述多个动作中的所述第一动作相关联的所述参数中的一个或多个参数包括:
4.根据权利要求1所述的方法,进一步包括:
5.根据权利要求4所述的方法,其中,确定所述多个动作与所述第三方代理相关联包括确定所述初始用户输入明确地调用所述第三方代理。
6.根据权利要求4所述的方法,其中,确定所述多个动作与所述第三方代理相关联包括确定所述初始用户输入中包括的意图和与所述第三方代理相关联地存储的所存储的意图匹配。
7.根据权利要求1所述的方法,其中,所述多个动作是在所述用户的所述计算设备处本地发起和执行的。
8.根据权利要求7所述的方法,其中,当所述多个动作在所述用户的所述计算设备处本地发起并且执行时,所述计算设备没有互联网连接。
9.一种系统,包括:
10.根据权利要求9所述的系统,其中,所述依赖图包括多个节点和多个边,所述多个节点中的每个节点与所述多个动作中的一个或多个动作相关联,并且所述多个边中的每个边与连接所述多个节点中的相应一对节点的至少一个参数相关联。
11.根据权利要求10所述的系统,其中,访问所述依赖图数据以识别与所述多个动作中的所述第一动作相关联的所述参数中的一个或多个参数的所述指令包括用于以下的指令:
12.根据权利要求9所述的系统,其中,所述指令进一步使得所述至少一个处理器:
13.根据权利要求12所述的系统,其中,用于确定所述多个动作与所述第三方代理相关联的所述指令包括用于确定所述初始用户输入明确地调用所述第三方代理的指令。
14.根据权利要求12所述的系统,其中,用于确定所述多个动作与所述第三方代理相关联的所述指令包括用于确定所述初始用户输入中包括的意图和与所述第三方代理相关联地存储的所存储的意图匹配的指令。
15.根据权利要求9所述的系统,其中,所述多个动作是在所述用户的所述计算设备处本地发起和执行的。
16.根据权利要求15所述的系统,其中,当所述多个动作在所述用户的所述计算设备处本地发起并且执行时,所述计算设备没有互联网连接。
17.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得至少一个处理器执行所述指令,所述指令使得所述至少一个处理器:
