CN112136124B - 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 - Google Patents
用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 Download PDFInfo
- Publication number
- CN112136124B CN112136124B CN201880093458.2A CN201880093458A CN112136124B CN 112136124 B CN112136124 B CN 112136124B CN 201880093458 A CN201880093458 A CN 201880093458A CN 112136124 B CN112136124 B CN 112136124B
- Authority
- CN
- China
- Prior art keywords
- action
- user
- parameters
- assistant
- dependency graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000009471 action Effects 0.000 claims abstract description 192
- 238000000034 method Methods 0.000 claims description 232
- 230000004044 response Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 abstract description 10
- 235000013550 pizza Nutrition 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 235000013305 food Nutrition 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 235000013580 sausages Nutrition 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 240000005561 Musa balbisiana Species 0.000 description 1
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000763 evoking effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000011273 social behavior Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
使用依赖图数据结构对谈话进行建模,以在执行由计算服务执行的动作时促进用户与自动助理的交互。自动助理可以利用依赖图数据结构来引导或以其他方式控制与用户的人机对话会话,例如,通过在由用户操作的计算设备上生成呈现给用户的一个或多个输出或提示来引导或控制,由此可以使得能够高效地使用技术硬件。
Description
背景技术
人类可以与在本文中称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人话音助理”、“谈话代理”等)的交互式软件应用进行人机对话。例如,人类-当他们与自动助理交互时可以被称为“用户”-可以使用自由形式的自然语言输入来提供命令、查询和/或请求。自由形式的自然语言可以包括使用语音识别和/或键入的自由形式的语言输入转换成文本的口头话语。
自动助理使用户能够获取信息、访问服务和/或执行各种任务。例如,用户能够执行搜索、获取方向,并在某些情况下与第三方计算服务进行交互。这些第三方计算服务交互(可以使用由自动助理和/或第三方计算服务提供的应用编程接口(“API”)来促进访问)允许用户执行各种动作,诸如从车辆共乘应用叫车,订购商品或服务(例如,披萨),进行预订等。
自动助理使用语音识别和自然语言处理与用户谈话,其中一些助理还利用机器学习和其他人工智能技术例如来预测用户意图。自动助理可能适于以自然、直观的方式与用户保持谈话,部分原因是它们理解对话背景。为了利用对话背景,自动助理可以保留来自用户的最新输入、来自用户的问题和/或自动助理提供的响应/问题。例如,用户可能会问“Where is the closest coffee shop?(最近的咖啡店在哪里?)”,自动助理可能会回答“Two blocks east(向东两个街区)”。然后,用户可能会问:“How late is it open?(营业到几点?)”。通过保留至少某种形式的对话背景,自动助理能够确定代词“it”是指“coffeeshop”(即,指代消歧)。
然而,通过传统的自动助理,特别是对于与第三方相关联的动作以及需要大量输入参数才能有效地执行的其他计算服务而言,对谈话进行建模以收集所需的输入参数可能会很复杂且劳动强度大,并且可能使得必需与应对所有可能的输入及其组合和顺序相关联的大量开发开销。这些复杂的模型可能在计算机存储器中占用相对大量的空间,并且还可能需要随着时间更新,以应对先前无法预料的输入及其组合和排序。谈话也可能会受到约束并且对各种用户输入不灵活,从而导致与自动助理的交互更加机器人化、不逼真。
发明内容
本文描述了用于使用依赖图数据结构来对谈话进行建模,以在执行由计算服务执行的动作时促进用户与自动助理的交互的技术。在一些实施方式中,自动助理可以利用依赖图数据结构来引导或以其他方式控制与用户的人机对话会话,例如,通过生成在由用户操作的计算设备上呈现给用户的一个或多个输出或提示来进行。
如将在下文更详细地解释的,本文所述的概念可以使自动助理能够以高效的方式获得所选的所需信息,并且在这样做时,这些概念可以允许自动助理以有效的方式进行操作,同时还可以高效地使用用户计算设备(例如,客户端计算设备)上的硬件资源。例如,本文所述的概念可以允许自动助理最高效地使用用户计算设备上的麦克风和/或扬声器硬件,以便可以减少设备上的功耗。
因此,根据本发明的一方面,一种使用一个或多个处理器实现的方法可以包括:确定将由计算服务针对计算设备的用户执行的动作,所述计算设备的用户与至少部分地由一个或多个处理器实现的自动助理进行通信;以及通过自动助理,使计算设备通过下述方式执行针对计算设备的用户的动作:针对动作访问依赖图数据结构,依赖图数据结构包括多个节点和多个有向边,每个节点都辨识访问计算服务的动作方法或者收集用于执行动作的一个或多个参数的助理方法,并且每个有向边都连接来自多个节点的相应节点对,并辨识至少一个参数,该至少一个参数由相应的节点对中的一个节点所辨识的动作方法或助理方法生成,并且被相应节点对中的另一节点所辨识的动作方法或助理方法利用;在用户和自动助理之间进行人机对话会话,从而确定用于执行动作的一个或多个参数,包括使用依赖图数据结构生成一个或多个自然语言输出,以通过由用户操作的计算设备呈现,并且接收在由用户操作的计算设备的一个或更多输入组件处接收到的自由形式的自然语言的一个或多个实例;以及发起由计算服务使用所确定的一个或多个参数执行动作。
在一些实施方式中,依赖图数据结构中的多个节点中的第一节点辨识调用计算服务的第一动作方法,并且发起由计算服务发起执行动作包括执行第一动作方法。而且,在一些实施方式中,第一动作方法包括调用操作,调用操作包括多个输入,并且执行第一动作方法包括使用所确定的一个或多个参数作为用于调用操作的多个输入中的输入来执行调用操作。
此外,在一些实施方式中,依赖图数据结构包括用于定义方法及其之间的依赖关系的规范,并且第一动作方法在规范中被标为可索引的,以指示第一动作方法调用计算服务以执行该动作。在一些实施方式中,第一动作方法调用计算服务以执行动作,并且依赖图数据结构中的多个节点中的第二节点辨识第二动作方法,第二动作方法调用计算服务以获得用于执行动作的中间数据。
另外,在一些实施方式中,依赖图数据结构中的多个节点中的第一节点辨识包括请求第一参数的第一提示的第一助理方法,并且生成一个或多个自然语言输出包括执行第一助理方法以生成包括第一提示的第一自然语言输出。在一些实施方式中,确定要由计算服务执行的动作是由自动助理执行的,并且基于在用户的计算设备处接收到的并指定由依赖图数据结构中的第一有向边辨识的第一参数的初始自然语言输入,第一有向边连接第一节点和第二节点,第一节点辨识生成第一参数的第一助理方法,第二节点辨识利用第一参数的第一动作方法,并且在用户和自动助理之间进行人机对话会话包括响应于确定在初始自然语言输入中指定第一参数而绕过生成自然语言输出来请求第一参数。
另外,在一些实施方式中,由依赖图数据结构中的第一有向边辨识的第一参数连接第一节点和第二节点,第一节点辨识生成第一参数的第一助理方法,第二节点辨识利用第一参数的第一动作方法,并且在用户和自动助理之间进行人机对话会话包括响应于确定在不需要从用户请求第一参数的情况下第一参数是可确定的而绕过生成自然语言输出来请求第一参数。此外,在一些实施方式中,确定在不需要从用户请求第一参数的情况下第一参数是可确定的包括确定第一参数可从与用户相关联的已存储数据确定。
在一些实施方式中,在用户和自动助理之间进行人机对话会话以确定用于执行动作的一个或多个参数包括使用依赖图数据结构对一个或多个生成的自然语言输出排序。一些实施方式也可以包括:响应于接收到自由形式的自然语言输入的一个或多个实例中的自由形式的自然语言的第一实例,使所确定的一个或多个参数中的一个或多个在人机对话会话期间无效;访问依赖图数据结构,以辨识在依赖图数据结构中辨识的一个或多个动作方法或助理方法从而重新执行,以便更新一个或多个无效参数;以及重新执行一个或多个已辨识的动作方法或助理方法,以更新一个或多个无效参数。
此外,在一些实施方式中,使一个或多个参数无效保持一个或多个其他参数有效,以便当重新执行一个或多个已辨识的动作方法或助理方法时,绕过用于确定一个或多个其他参数的一个或多个动作方法或助理方法的重新执行。在一些实施方式中,确定动作由自动助理执行,并且包括使用依赖图数据结构从多个动作中选择动作。另外,在一些实施方式中,计算服务是第三方计算服务,并且发起由计算服务使用所确定的一个或多个参数来执行动作包括使用所确定的一个或多个参数来调用第三方计算服务。
在一些实施方式中,计算服务是云计算服务,并且在一些实施方式中,计算服务驻留在由用户操作的计算设备上。而且,在一些实施方式中,依赖图数据结构定义有向非循环图。在一些实施方式中,动作创建预留,多个节点中的第一节点辨识第一动作方法,第一动作方法调用计算服务以搜索可用时间槽,并且多个节点中的第二节点辨识第二动作方法,第二动作方法调用计算服务以预留可用时间槽。另外,在一些实施方式中,动作获得产品或事件门票。
根据本发明的另一方面,一种使用一个或多个处理器实现的方法可以包括:通过计算机接口接收将被自动助理使用的多个参数,从而使计算服务针对与自动助理通信的计算设备的用户执行动作;确定多个参数之间的多个依赖关系;使用一个或多个处理器构建依赖图数据结构,依赖图数据结构被配置成用于在用户和自动助理之间进行人机对话会话,从而确定用于执行动作的一个或多个参数,包括用于生成一个或多个自然语言输出,从而由用户所操作的计算设备呈现,其中,构建针对动作的依赖图数据结构包括:使用接收到的多个参数构建用于依赖图数据结构的多个节点,包括构建辨识访问计算服务的动作方法的至少一个节点,以及构建从接收到的多个参数收集一个或多个参数的至少一个助理方法;以及使用已确定的多个依赖关系构建用于依赖图数据结构的多个有向边,每个有向边都连接多个节点中的相应节点对,并从所接收到的多个参数中辨识至少一个参数,该至少一个参数由相应节点对中的一个节点所辨识的动作方法或助理方法生成,并且被相应节点对中的另一节点所辨识的动作方法或助理方法利用;以及在动作方法中生成调用操作,其通过一个或多个接收到的多个参数调用计算服务以执行动作。
而且,在一些实施方式中,计算服务是第三方计算服务,调用操作被配置成访问第三方计算服务。在一些实施方式中,确定多个依赖关系包括通过计算机接口接收多个依赖关系。此外,在一些实施方式中,接收多个参数包括接收多个动作调用定义。
此外,一些实施方式可以包括一种***,该***包括一个或多个处理器以及与一个或多个处理器可操作地耦合的存储器,其中该存储器存储指令,响应于该指令被一个或多个处理器执行,使一个或多个处理器来执行任何前述方法。一些实施方式还包括至少一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括指令,响应于该指令被一个或多个处理器执行,使一个或多个处理器执行任何前述方法。
应该领会的是,在本文中更详细地描述的上述构思和附加构思的所有组合被设想为是本文公开的主题的一部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合被设想为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例计算环境的方框图。
图2是用于针对示例餐厅预留预定动作的谈话进行建模的示例依赖图数据结构的方框图。
图3A至图3G示出了在图2的依赖图数据结构中表示的动作和助理方法的示例实施方式。
图4是用于针对示例事件门票购买动作的谈话进行建模的示例依赖图数据结构的方框图。
图5A至图5I示出了在图4的依赖图数据结构中表示的动作和助理方法的示例实施方式。
图6是示出根据各种实施方式的用于使用依赖图数据结构进行人机对话会话的示例操作序列的流程图。
图7示出了根据各种实施方式的使用用户的计算设备在用户和自动助理之间进行的示例餐厅预留预定对话。
图8示出了根据各种实施方式的使用用户的计算设备在用户和自动助理之间进行的另一示例餐厅预留预定对话。
图9示出了根据各种实施方式的使用独立的交互式扬声器在用户和自动助理之间进行的示例事件门票购买对话。
图10示出了根据各种实施方式的用于生成和部署依赖图数据结构的示例操作序列的流程图。
图11图示计算设备的示例架构。
具体实施方式
现在转向图1,图示了可以实现本文公开的技术的示例环境。该示例环境包括多个客户端计算设备1061-N。每个客户端设备106可以执行自动助理客户端118的相应的实例。可以在一个或多个计算***(统称为“云”计算***)上实现一个或多个基于云的自动助理组件119,诸如自然语言理解引擎135,所述一个或多个计算***经由一般地在110处指示的一个或多个局域网和/或广域网(例如,互联网)通信地耦合到客户端设备1061-N。
在一些实施方式中,自动助理客户端118的实例通过其与一个或多个基于云的自动助理组件119的交互,可以形成从用户的角度来看似乎是用户可以与之进行人机对话的自动助理120的逻辑实例。在图1中描绘了这样的自动助理120的两个实例。通过虚线所包含的第一自动助理120A为操作第一客户端设备1061的第一用户(未描绘)服务并且包括自动助理客户端1181和一个或多个基于云的自动助理组件119。
因此应该理解的是,与在客户端设备106上执行的自动助理客户端118接洽的每个用户实际上可以与他或她自己的自动助理120的逻辑实例接洽。为了简洁和简单起见,如在本文中被用作“服务”特定用户的术语“自动助理”将指代在由用户操作的客户端设备106上执行的自动助理客户端118和一个或多个基于云的自动助理组件119(其可以在多个自动助理客户端118之间共享)的组合。还应该理解的是在一些实施方式中,自动助理120可以对来自任何用户的请求做出响应,而不管该用户是否实际上被自动助理120的该特定实例“服务”。
客户端设备1061-N可以包括例如以下各项中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信***、车载娱乐***、车载导航***)、独立交互式扬声器、诸如智能电视这样的智能家电和/或用户的包括计算设备的可穿戴装置(例如,用户的具有计算设备的手表、用户的具有计算设备、虚拟或增强现实计算设备的眼镜)。可以提供附加和/或替代客户端计算设备。
客户端计算设备1061-N中的每一个均可以操作各种不同的应用,诸如多个消息交换客户端1071-N中的相应一个。消息交换客户端1071-N可以以各种形式出现并且这些形式可以跨越客户端计算设备1061-N而变化并且/或者可以在客户端计算设备1061-N中的单个客户端计算设备上操作多种形式。在一些实施方式中,消息交换客户端1071-N中的一个或多个可以以以下各项的形式出现:短消息服务(“SMS”)和/或多媒体消息服务(“MMS”)客户端、在线聊天客户端(例如,即时信使、互联网中继聊天或“IRC”等)、与社交网络相关联的消息传递应用、专用于与自动助理120的谈话的个人助理消息传递服务等。在一些实施方式中,可以经由通过客户端计算设备106的web浏览器(未描绘)或其它应用所呈现的网页或其它资源来实现消息交换客户端1071-N中的一个或多个。
如在本文中更详细地描述的,自动助理120经由一个或多个客户端设备1061-N的用户接口输入和输出设备来与一个或多个用户进行人机对话会话。在一些实施方式中,自动助理120可以响应于由用户经由客户端设备1061-N中的一个的一个或多个用户接口输入设备提供的用户接口输入而与用户进行人机对话会话。在这些实施方式中的一些中,用户接口输入被显式地导向到自动助理120。例如,消息交换客户端1071-N中的一个可以是专用于与自动助理120的谈话的个人助理消息传递服务,并且经由该个人助理消息传递服务提供的用户接口输入可以被自动地提供给自动助理120。另外,例如,可以基于指示自动助理120将被调用的特定用户接口输入来将用户接口输入显式地导向消息交换客户端1071-N中的一个或多个中的自动助理120。例如,特定用户接口输入可以是一个或多个键入的字符(例如,@AutomatedAssistant)、用户与硬件按钮和/或虚拟按钮的交互(例如,轻敲、长轻敲)、口头命令(例如,“嗨自动助理”)和/或其它特定用户接口输入。
在一些实施方式中,即便当用户接口输入未被显式地导向自动助理120时,自动助理120也可以响应于该用户接口输入而进行人机对话会话。例如,自动助理120可以检查用户接口输入的内容并且响应于在用户接口输入中存在某些术语和/或基于其它线索来进行对话会话。在许多实施方式中,用户可说出命令、搜索等,并且自动助理120可以利用语音识别来将话语转换成文本,并且相应地对文本做出响应,例如,通过提供搜索结果、一般信息和/或采取一项或多项响应动作(例如,播放媒体、启动游戏、订购食物等)。在一些实施方式中,自动助理120可附加地或可替换地在无需将话语转换成文本的情况下对话语做出响应。例如,自动助理120可将话音输入转换成嵌入,转换成实体表示(其指示存在于话音输入中的一个或多个实体)和/或其它“非文本”表示并且对这样的非文本表示进行操作。因此,在本文中描述为基于从话音输入转换的文本来操作的实施方式可以附加地和/或可替换地直接地对话音输入和/或话音输入的其它非文本表示进行操作。
客户端计算设备1061-N和操作基于云的自动助理组件119的计算设备中的每一个均可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据和执行应用的一个或多个处理器以及便于通过网络进行通信的其它组件。由客户端计算设备1061-N中的一个或多个和/或由自动助理120执行的操作可以分布在多个计算机***上。自动助理120可以作为例如在一个或多个位置中的通过网络彼此耦合的一个或多个计算机上运行的计算机程序来实现。在各种实施方式中,例如,自动助理的一些或全部功能可以分布在多个计算机***之间,或者甚至分布到客户端计算设备。例如,在一些实施方式中,本文关于使用依赖图数据结构进行人机对话会话和启动动作的执行所讨论的功能可以完全在客户端计算设备内执行,例如,使得即使没有在线连接用户也可利用这种功能。
如上面所指出的,在各种实施方式中,客户端计算设备1061-N中的每一个均可以操作自动助理客户端118。在各种实施方式中,每个自动助理客户端118可以包括相应的语音捕获/文本至语音(“TTS”)/语音至文本(“STT”)模块114。在其它实施方式中,可以与自动助理客户端118分开地实现语音捕获/TTS/STT模块114的一个或多个方面。在各种实施方式中,语音捕获/TTS/STT模块114可以基于口头查询来生成语音识别输出。
每个语音捕获/TTS/STT模块114可以被配置成执行一个或多个功能:例如经由麦克风捕获用户的语音;将该捕获的音频转换为文本(和/或转换为其它表示或嵌入);和/或将文本转换为语音。例如,在一些实施方式中,因为客户端设备106可能在计算资源(例如,处理器周期、存储器、电池等)方面相对地受约束,所以在每个客户端设备106本地的语音捕获/TTS/STT模块114可以被配置成将有限数目的不同的口语短语—特别是调用自动助理120的短语—转换为文本(或者转换为其它形式,诸如降低维数嵌入)。可以将其它语音输入发送到基于云的自动助理组件119,该组件在一个或者多个基于云的计算机服务器处实现,其可以包括基于云的TTS模块116和/或基于云的STT模块117。
基于云的STT模块117可以被配置成利用云的实际上无限的资源来将由语音捕获/TTS/STT模块114捕获的音频数据转换成文本(其然后可以被提供给自然语言处理器122)。基于云的TTS模块116可以被配置成利用云的实际上无限的资源来将文本数据(例如,由自动助理120制定的自然语言响应)转换成计算机生成的语音输出。在一些实施方式中,TTS模块116可以将计算机生成的语音输出提供给客户端设备106以例如使用一个或多个扬声器来直接地输出。在其它实施方式中,可以将由自动助理120生成的文本数据(例如,自然语言响应)提供给语音捕获/TTS/STT模块114,其然后可以将文本数据转换成在本地输出的计算机生成的语音。
自动助理120(以及特别是基于云的自动助理组件119)可以包括自然语言理解引擎135、前述TTS模块116、前述STT模块117、以及在下面更加详细地描述的其它组件。在一些实施方式中,自动助理120的引擎和/或模块中的一个或多个可以被省略、组合和/或实现在与自动助理120分开的组件中。在一些实施方式中,为了保护隐私,可以至少部分地在客户端设备106(例如,排除在云之外)上实现自动助理120的一个或多个组件,诸如自然语言理解引擎135、语音捕获/TTS/STT模块114等。
在一些实施方式中,自动助理120响应于由客户端设备1061-N中的一个的用户在与自动助理120的人机对话会话期间生成的各种输入而生成响应内容。自动助理120可以提供响应内容(例如,当与用户的客户端设备分开时通过一个或多个网络)以用于作为对话会话的一部分呈现给用户。例如,自动助理120可以响应于经由客户端设备1061-N中的一个提供的自由形式的自然语言输入而生成响应内容。如本文所使用的,自由形式的自然语言输入是由用户制定并且不局限于被呈现以供由用户选择的一组选项的输入。
如本文所使用的,“对话会话”可以包括一个或多个消息在用户与自动助理120(以及在一些情况下,其它人类参与者)之间的逻辑上自包含的交换。自动助理120可以基于各种信号来区分与用户的多个对话会话,所述各种信号诸如会话之间的时间流逝、会话之间的用户上下文(例如,位置、在安排会议之前/期间/之后等)的改变、对用户与客户端设备之间的一个或多个中间交互而不是用户与自动助理之间的对话的检测(例如,用户暂时切换应用,用户走开然后稍后返回到独立话音激活的产品)、客户端设备在会话之间的锁定/休眠、用于与自动助理120的一个或多个实例接口的客户端设备的改变、用户采用的输入/输出(“I/O”)形态的改变等。
自然语言理解引擎135的自然语言处理器122处理由用户经由客户端设备1061-N生成的自然语言输入并且可以生成带注释的输出(例如,以文本形式)以供自动助理120的一个或多个其它组件使用。例如,自然语言处理器122可以处理由用户经由客户端设备1061的一个或多个用户接口输入设备生成的自然语言自由形式输入。所生成的带注释的输出包括自然语言输入的一个或多个注释以及可选地自然语言输入的项中的一个或多个(例如,全部)。
在一些实施方式中,自然语言处理器122被配置成辨识并注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器122可以包括词素引擎,该词素引擎可以将个别单词分离成词素和/或例如用它们的类别对词素进行注释。自然语言处理器122也可以包括词性标注器的一部分,其被配置成用其语法角色来注释项。例如,词性标注器可以用诸如“名词”、“动词”、“形容词”、“代词”等这样的词性标注每个项。另外,例如,在一些实施方式中,自然语言处理器122可以附加地和/或可替换地包括依赖性解析器(未描绘),所述依赖性解析器被配置成确定自然语言输入中的项之间的句法关系。例如,依赖性解析器可以确定哪些项修饰其它项、句子的主语和动词等(例如,解析树)—并且可以对这样的依赖性进行注释。
在一些实施方式中,自然语言处理器122可以附加地和/或可替换地包括实体标注器(未描绘),所述实体标注器被配置成注释一个或多个分段中的实体引用,诸如对人(包括例如文学人物、名人、公众人物等)、组织、位置(真实的和虚构的)等的引用。在一些实施方式中,关于实体的数据可以被存储在一个或多个数据库中,诸如存储在知识图(未描绘)中。在一些实施方式中,知识图可以包括表示已知实体(以及在一些情况下,实体属性)的节点以及连接节点并表示实体之间的关系的边。例如,“香蕉”节点可以被连接(例如,作为子节点)到“水果”节点,所述“水果”节点进而可以被连接(例如,作为子节点)到“生产”和/或“食物”节点。作为另一示例,称作“假想咖啡馆”的餐馆可以通过还包括诸如其地址、所供食物的类型、营业时间、联系人信息等的属性的节点来表示。“假想咖啡馆”节点可以在一些实施方式中通过边(例如,表示子-父关系)连接到一个或多个其它节点,诸如“餐馆”节点、“表示餐馆所位于的城市和/或州的节点等。
自然语言处理器122的实体标注器可以以高粒度水平(例如,以使得能够辨识对诸如人这样的实体类的所有引用)和/或较低粒度水平(例如,以使得能够辨识对诸如特定人员这样的特定实体的所有引用)注释对实体的引用。实体标注器可以依靠自然语言输入的内容来解析特定实体并且/或者可以可选地与知识图或其它实体数据库进行通信以解析特定实体。
在一些实施方式中,自然语言处理器122可以附加地和/或可替换地包括共指解析器(未描绘),所述共指解析器被配置成基于一个或多个上下文线索来对对同一实体的引用进行分组或“聚类”。例如,可以利用共指解析器来将自然语言输入“我喜欢上次我们在那里用餐的假想咖啡馆”中的项“那里”解析为“假想咖啡馆”。
自然语言处理器122的一个或多个组件可以依靠来自自然语言处理器122的一个或多个其它组件的注释。例如,在一些实施方式中,命名实体标注器在向特定实体注释所有提及时可以依靠来自共指解析器和/或依赖性解析器的注释。另外,例如,在一些实施方式中,共指解析器在对对同一实体的引用进行聚类时可以依靠来自依赖性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器122的一个或多个组件可以使用除了特定自然语言输入之外的相关在先输入和/或其它相关数据来确定一个或多个注释。
自然语言理解引擎135还可以包括意图匹配器136,意图匹配器136被配置成基于自然语言处理器122的注释输出来确定与自动助理120进行人机对话会话的用户的意图。虽然与图1中的自然语言处理器122分开示出,但是在其他实施方式中,意图匹配器136可以是自然语言处理器122(或更一般地,包括自然语言处理器122的流水线的)的集成部分。在一些实施方式中,自然语言处理器122和意图匹配器136可以共同形成上述“自然语言理解”引擎135。
意图匹配器136可以使用各种技术来确定用户的意图。在一些实施方式中,意图匹配器136可以访问一个或多个数据库137,数据库137包括例如语法和响应动作(或更一般地,意图)之间的多个映射。另外或可替代地,在一些实施方式中,一个或多个数据库137可以存储一个或多个机器学习模型,机器学习模型被训练成基于用户的输入生成指示用户意图的输出。
可以随时间选择、制定(例如,手动)和/或学习语法,例如以表示用户的最普通意图。例如,一种语法“play<artist>(播放<艺术家>)”可以被映射到一种意图,该意图调用响应动作,该响应动作使得<artist>的音乐在用户操作的客户端设备106上播放。另一种语法“[weather|forecast]today([今天的天气预报])”可以与用户查询匹配,诸如“what’s theweather today(今天天气如何?)”和“what’s the forecast for today?(今天的天气预报如何?)”。如在“play<artist>”示例语法中所示,某些语法具有可以用槽值(或“参数”)填充的槽(例如,<artist>)。槽值可以以各种方式确定。用户通常会主动提供槽值。例如,对于语法“Order me a<topping>pizza(帮我订购一个<浇头>披萨)”,用户可能会讲出短语“orderme a sausage pizza(帮我订购一个香肠披萨)”,在这种情况下,自动填充槽<topping>。另外或可替代地,如果用户调用包括要用槽值填充的槽的语法,而无需用户主动提供槽值,则自动助理120可以向用户征求那些槽值(例如,“what type of crust do you want onyour pizza?”(您的披萨上想要那种硬皮?)。
与许多语法(可以手动创建)相比,例如,可以使用用户和自动助理之间的交互的日志来自动地训练机器学习模型。机器学习模型可以采用各种形式,诸如神经网络。它们可以被以各种方式训练,以从用户输入预测用户意图。例如,在一些实施方式中,可以提供包括个别训练示例的训练数据。每个训练示例都可以包括例如来自用户的自由形式输入(例如,以文本或非文本形式),并且可以以意图加标签(例如,手动)。训练示例可以被应用为跨机器学习模型(例如,神经网络)的输入以生成输出。可以将输出与标签进行比较以确定误差。例如,可以使用该误差来训练模型,例如使用诸如梯度下降(例如,随机、批量等)的技术和/或反向传播来调整与模型的隐藏层相关联的权重。一旦通过(通常是大量的)许多训练示例对此类模型进行了训练,就可以将其用于从未加标签的自由形式的自然语言输入生成预测意图的输出。
在一些实施方式中,自动助理120可以促进(或“协调”)计算服务150代表用户执行动作。这些动作(通常是意图匹配器136能够辨识或确定的一种意图)通常向计算服务发出请求,并且通常这样做与向计算服务提供一个或多个参数以指示这类计算服务如何执行动作有关。
在这一点上,计算服务可以被视为实际上包括能够被调用以代表用户执行一些活动的任何类型的计算机功能。计算服务可以由一个或多个处理器实现,并且可以驻留在与自动助理相同的计算机***上,或者可以驻留在与托管自动助理的计算机***不同的计算机***上。一些计算服务可以通过网络访问(例如,如基于云的计算服务的情况一样),而其他计算服务则可以驻留在用户的客户端计算设备上。一些计算服务也可以被视为与自动助理和用户不同的第三方相关联的第三方计算服务,不管那些计算服务在何处托管(例如,在第三方计算机***上、在自动助理计算机***上、在用户计算设备上、在云计算***中等)。
因而,可以由意图匹配器136辨识的一种用户意图是使第三方计算服务代表用户执行交易或其他操作的动作。例如,自动助理120可以向第三方服务(诸如旅行服务)提供对应用程序编程接口(“API”)的访问。用户可以调用自动助理120并提供诸如“I’d like toorder a vehicle with wheelchair space to the nearest metro station with step-free access(我想预约有轮椅空间的车辆到最近的具有无障碍通道的地铁站)”之类的命令。意图匹配器136可以将该命令映射到语法(在一些情况下,第三方可以将其添加到数据库137),该语法触发自动助理120以经由对旅行服务的一个或多个API调用来与第三方旅行服务进行交互。在另一示例中,自动助理120可以向不同的第三方服务(诸如披萨递送服务)提供对API的访问。用户可以调用自动助理120并提供诸如“I’d like to order a pizza.(我想订购披萨)”之类的命令。意图匹配器136可以将该命令映射到语法(在一些情况下,第三方可以将其添加到数据库137中),该语法触发自动助理120经由对披萨递送服务的一个或多个API调用来与第三方披萨递送服务进行互动。如下面将变得更加明显的,在一些实施方式中,第三方服务,诸如旅行服务或披萨递送服务,可以使用由第三方服务创建或以其他方式基于第三方服务所提供的用户输入生成的依赖图数据结构,构建谈话以使得能够进行订购,诸如订购合适的车辆或订购要递送的披萨。依赖图数据结构可以提供一组输入参数,这些输入参数需要被填充,以便实现例如合适车辆的订单或披萨递送订单。自动助理120可以生成自然语言输出并将其提供给用户(经由客户端设备106),该自然语言输出请求无法从用户数据获得的任何参数的输入和/或结合向自动助理指定意图而提供的输入。可以以这种方式将自动助理120配置成仅请求不能从用户数据获得的参数的输入和/或结合向自动助理指定意图而提供的输入。这允许自动助理12高效地辨识和获得所选的丢失信息。这样做时,自动助理120高效地利用客户端计算设备上的硬件资源,包括例如麦克风资源和扬声器资源。在该过程中,可以减少设备的功耗。
特别地,为了请求不能从用户数据中获得的参数的输入和/或结合向自动助理指定意图而提供的输入,实现引擎124可以被配置成接收意图匹配器136输出的意图以及任何相关联的参数(无论是由用户主动提供还是由用户请求),并实现意图。在各种实施例中,用户意图的实现可以引起生成/获得各种实现信息。如下文所述的,在一些实施方式中,可以将实现信息提供给自然语言生成器(“NLG”)126,NLG126可以基于实现信息来生成自然语言输出。
实现信息可以采取各种形式,因为可以以各种方式实现意图。假设用户请求纯粹的信息,诸如“Where were the outdoor shots of‘The Shining’filmed?(《闪灵》的户外镜头是在哪里拍摄的?)”。可以例如通过意图匹配器136将用户的意图确定为搜索查询。可以将搜索查询的意图和内容提供给一个或多个搜索引擎,以搜索文档和/或其他数据源(例如,知识图等)的语料库以获取响应信息。实现引擎124可以向搜索引擎提供指示搜索查询的数据(例如,查询的文本,降维嵌入等),搜索引擎继而可以提供响应信息,诸如GPS坐标,或者其他更明确的信息,诸如“Timberline Lodge,Mt.Hood,Oregon(美国俄勒冈州胡德山森林界线小屋)”。该响应信息可以形成由实现引擎124生成的实现信息的一部分。
另外或可替代地,实现引擎124可以被配置成例如从自然语言理解引擎135接收用户的意图,并继而利用对话引擎138与用户进行人机对话会话以执行与该意图相关联的动作,例如,通过计算服务150调用或唤起执行一项或多项操作。响应动作可以包括,例如,订购商品/服务,购买事件门票,预订餐厅、酒店、飞机、火车,订购出租车或车辆共乘服务,启动计时器,设置提醒,发起电话呼叫,播放媒体,发送消息等。在某些此类实施方式中,实现信息可能包括与动作、确认响应(在某些情况下可以从预定响应中选择)相关联的参数,等。
如上所述,自然语言生成器126可以被配置成基于从各种来源获得的数据来生成和/或选择自然语言输出(例如,被设计成模仿人类语音的口语单词/短语)。在一些实施方式中,自然语言生成器126可以被配置成接收与实现引擎124实现意图相关联的实现信息作为输入,并基于实现信息生成自然语言输出。另外或可替代地,自然语言生成器126可以从诸如第三方计算服务之类的其他来源接收信息,并且如在下文将变得更加明显的那样,可以从依赖图数据结构接收信息,依赖图数据结构可以用来为用户制定自然语言输出。
对话引擎138可以用于管理与动作相关联的谈话的进行,并且可以使用与特定动作相关联的依赖图数据结构来控制用户与自动助理之间的交互。因此,对话引擎138可以存储与不同动作或意图(例如,与数据库142)相关联的各种依赖图数据结构,并且在与用户交互时访问那些依赖图数据结构。
另外,在一些实施方式中,谈话构建器组件140也可以被支持为生成、修改、更新或以其他方式管理依赖图数据结构。例如,在一些实施方式中,谈话构建器组件140也可以提供基于web的用户界面,以使得内部和/或第三方开发人员能够针对特定动作生成依赖图数据结构并在数据库142中存储那些数据结构,以供对话引擎138之后访问。
图1的各种组件,诸如对话引擎138和谈话构建器组件140,可以被配置成执行本公开的所选方面,以利用和/或生成依赖图数据结构,从而用于与用户进行人机对话会话,以发起由一个或更多计算服务执行动作。然而,应明白,本文公开的功能可以利用计算设备、计算机***和/或软件组件的其他组合以无数其他方式实现,这对于受益于本公开的普通技术人员来说是显而易见的。因此,本发明不限于本文所讨论的特定实施方式。
现在转向图2,该图描绘了根据一些实施方式的示例依赖图数据结构200。如上文讨论的,在许多实例中,构建用于由自动助理实现的谈话可能存在问题。例如,已经发现基于形式和槽填充的谈话模型产生不良的谈话流程,例如,谈话流程是机器人式的或者不是对人类互动的现实模拟。
对于一些类型的谈话,诸如与访问计算服务的动作相关联的谈话,对这些谈话建模可能特别有问题。例如,考虑进行“预订餐桌”谈话以进行餐厅预留。通常要求用户至少指定人数和优选时间,并且通常调用计算服务以获得用户可以选择的可用日期和时间。然后可能要求用户提供附加输入,诸如联系信息,并且再次调用计算服务以完成预订。在此过程中,当在会话的各个部分中提示用户时,有时会在合理的时间延迟之后,客户端计算设备的各种硬件元素(诸如扬声器、麦克风和其他用户接口硬件)可能会被激活和停用,以提供信息。
形式和槽填充模型通常很难为这些类型的谈话建模,部分原因是可能需要在某些用户输入之前进行中间调用,以及在可能做出这样的中间调用之前可能需要一些用户输入的事实。这样的谈话流程是许多交易使用案例(诸如上述预留案例,以及各种购物、事件门票购买和类似案例)的典型代表。
然而,在所示实施方式中,利用部分定义参数和谈话中执行的操作之间的依赖关系的依赖图数据结构对谈话进行建模。在一些实施方式中,例如,依赖图数据结构可以基于计算服务的API来创建,并且可以在运行时访问,以生成与访问计算服务的用户的谈话。
在一些实施方式中,依赖图数据结构可以部分地基于多种方法及其间的依赖关系。在一些实施方式中,可以对定义可能由特定方法产生并且可能由其他方法作为参数使用的一个或多个对象的谈话定义规范。
可以在规范中定义的第一种类型的方法在本文中被称为动作方法,动作方法通常指定计算服务的实现。在第三方计算服务的情况下,例如,动作方法可以与访问第三方计算服务的代理(例如,包括URL和一个或多个参数以进行HTTP调用的HTTP代理)相关联。在一些实施方式中,还可以在动作方法的规范中提供一个字段,以指定方法是否可索引,这意味着该方法可以由代理触发以执行动作。
可以在规范中定义的第二种方法在本文中被称为助理方法,该方法通常指定自动助理如何从用户获取信息。在一些实施方式中,助理方法可以指定用户输入,例如,文本输入、日期的选择等,并且在一些实施方式中,助理方法可以是由第三方提供的平台。
现在参考图2,在所示实施方式中,依赖图数据结构200被实现为包括通过有向边216彼此链接的多个节点202-214的有向非循环图(DAG)。应注意,图2表示适于解释目的的简化依赖图数据结构,为了清楚,在该图中未表示全部关系和参数。
应明白,DAG是其中边具有与其相关联的方向的图的类型(即,边不是双向的),以及其中未定义有向环的图的类型(即,边不形成节点的闭环)。另外,在一些实施方式中,并且与树数据结构相反,在一些实施方式中使用的DAG可以支持针对任何给定节点定义多个父和/或子关系的有向边。然而,应明白,在其他实施方式中,可以使用其他数据结构,因此本发明不具体限于DAG。
每个节点202-214都辨识访问计算服务的动作方法或收集一个或多个参数的助理方法。此外,每个有向边216都连接节点202-214中的相应一对节点,并有效地辨识至少一个参数,该至少一个参数由该对中的一个节点生成、产生或以其他方式输出,并由该对中的另一节点使用、接收或以其他方式利用。为了表示这种有向关系,在图2中用指向利用相关联的参数的该对中的节点的箭头表现每个有向边216。
依赖图数据结构200通过标有相关联的动作或助理方法的每个节点202-214,以及由相关联方法输出的对象或参数对上述“预订餐桌”谈话进行建模,在这种情况下,假设的餐厅名为“O’Briens”。对于该谈话,定义了四种动作方法,并由方框202、204、208和210表示:
Reserve(方框202):进行最后预留并产生收据对象。在所示的实施方式中,这是对“book a table at O’Briens(在O'Briens餐厅预订餐桌)”用例编制索引的方法。
Slotlock(方框204):锁定可用时间槽并产生由预留动作方法使用的SlotLockID。
SearchSlotsByPartySize(方框208):基于期望的聚会规模产生可用时间槽(由SearchSlotObjects表示)
SearchSlots(方框210):基于期望的聚会规模和优选的日期和时间产生可用时间槽(由SearchSlotObjects表示)
此外,为了对谈话建模,定义了三种助理方法,并由方框206、212和214表示:
SelectDateTime(方框206):提示用户选择由SearchSlots动作方法返回的可用时间槽。
GetPartySize(方框212):提示用户指定期望的聚会规模并产生PartySize对象。
GetPreferredDateTime(方框214):提示用户指定优选日期和时间,并产生Preferred DateTime对象。
可以看出,图2中的有向边216表示由某些节点定义的方法产生或输出以及由其他节点使用或利用的参数。因而,应明白,节点208的SearchSlotsByPartySize动作方法使用由节点212的GetPartySize方法产生的PartySize对象作为输入参数,而节点210的SearchSlots动作方法不仅使用由节点212的GetPartySize方法产生的PartySize对象,而且使用由节点214的GetPreferredDateTime方法产生的PreferredDateTime对象。同样地,节点206的SelectDateTime方法可以使用由节点208和210的方法产生的SearchSlotObjects,节点204的SlotLock方法可以使用由206的SelectDateTime方法产生的SelectedDateTime对象,并且节点202的Reserve方法可以使用由节点204的SlotLock方法产生的SlotLockID对象。
从图2可以明显看出,在一些实施方式中,依赖图数据结构可以支持多种可替代的助理方法,就像节点208和210的方法一样,后者基于不同的输入参数搜索可用时间槽并向节点206提供类似的输出。同样地,节点的方法可以使用多个其他节点产生的输入参数,就像节点210的方法一样,后者使用节点212和214中的每个输出的参数。
图3A至图3G示出了针对由图2的方框202-214定义的动作方法和助理方法的规范。例如,图3A在220示出了用于Reserve动作方法的示例规范。例如,该规范指示该方法是可索引的,因而可调用以执行有意用于谈话的动作。该规范定义了HTTP代理,以调用托管在api.exampleagent.com上的假定第三方计算服务,并指定该调用使用的许多参数以及每个参数的来源。应注意,为了简化图示,在图3A中未示出调用使用的所有参数。
从图3A还显而易见的是,在一些实施方式中,不仅可以通过请求用户输入(例如,以初始自然语言输入提供的用户输入,或者响应于助理方法生成的提示在谈话过程中提供的用户输入)来提供参数,还可以基于不是明确地从用户处请求或者由用户结合谈话提供的已存储用户数据来提供参数。例如,图3A中示出的一个参数是“firstname(名字)”参数,在一些实施方式中,该参数可以由为用户维护的用户简档来提供,因为在许多情况下,可以通过与用户交互的自动助理来访问用户的联系信息。
图3B至图3D同样在222-226示出了针对SlotLock、SearchSlots和SearchSlotsByPartySize动作方法的规范,并且每个规范都包括对HTTP代理的引用,以调用假定的第三方计算服务。然而,这些方法中的每一种都生成用于执行预留动作的中间数据,因此这些方法均未被标记为可索引的。
图3E至图3G在228-232示出了针对SelectDateTime、GetPartySize和GetPreferredDateTime助理方法的规范。在一些实施方式中,每个规范还可以包括期望的用户输入以及文本或其他数据,以在向用户生成提示时使用,从而提供期望的用户输入。尽管在一些实施方式中可以指定用于提示的文本,但在其他实施方式中,可以为助理方法定义表示自然语言输出的其他方式,例如语法,并且在其他实施方式中,可以基于期望的用户输入,不需要针对该方法的规范中的任何特定定义来确定提示。
图4和图5A至图5I示出了另一示例用例,即用于购买事件门票的谈话的用例。特别地,图4示出了示例依赖图数据结构250,其包括节点252-270和有向边272。依赖图数据结构250还用于对图2和图3A至图3G的示例用例中使用的相同第三方计算服务执行动作,可在api.exampleagent.com访问该第三方计算服务。
节点252、256、262和266定义了调用第三方计算服务调用的动作方法:
BuyTicket(方框252):基于用户的授权令牌、要购买的门票的SKU以及输入的要购买的门票的数量来购买门票。在图5A中的280处示出了该动作方法的规范。规范指示,例如,该方法是可索引的,因而可被调用以执行针对谈话的有意动作。
GetTicketSku(方框256):基于事件ID和指定门票类型获得门票的SKU。在图5B中的282示出了该动作方法的规范。
GetAvailableTicketTypes(方框262):获得可用于给定事件ID的门票类型。在图5C中的284示出了该动作方法的规范。
SearchEvents(方框266):搜索特定日期的可用事件并匹配期望的关键字(或关键字集合)。在图5D中的286示出了该动作方法的规范。
节点254、258、260、264、268和270定义了助理方法,这些助理方法收集可用于执行动作的信息:
AssistantUser(方框254):从存储的用户数据中获得用户的授权令牌。该助理方法仅访问用户的存储数据,因此未示出该方法的规范。
SelectTicketType(方框258):提示用户从GetAvailableTicketTypes动作方法检索的那些门票类型中选择门票类型,并产生SelectedTicketType对象。在图5E中的288示出了该助理方法的规范。
GetNumTickets(方框260):提示用户指定门票的期望数量并产生NumTickets对象。在图5F中的290示出了该助理方法的规范。
SelectEvent(方框264):提示用户从SearchEvents动作方法检索的那些事件中选择事件,并产生SelectedEventId对象。在图5G中的292示出了该助理方法的规范。
GetPreferredDate(方框268):提示用户指定优选日期,并产生Date对象以用于搜索事件。在图5H中的294示出了该助理方法的规范。
GetKeyword(方框270):提示用户指定一个或多个关键字以用于搜索事件并产生SearchKeyword对象。在图5I中的296示出了该助理方法的规范。
在上述示例中,所有所示参数都是强制的。然而,在其他实施方式中,参数可以被指定为可选的,并且可以在由用户提供或通过其他方式可用时将其提供给计算服务,但是如果在对话会话期间未确定,则将其省略。
现在转向图6,其中示出了用于使用依赖图数据结构进行人机对话会话的操作300的示例序列。例如,可以在对话引擎138的控制下并利用其他自动助理组件119,来例如使用一个或多个处理器以及使用图1中所示的各个组件中的一个或多个来实现序列300。在方框302中,例如,可以最初接收与意图相关联的用户输入,并且在方框304中,可以例如通过图1的意图匹配器136来确定意图。在方框306中,可以确定意图是否与依赖图数据结构与其相关联的动作相关联,例如,已经通过依赖图数据结构对谈话进行建模的各种用例之一。如果否,则控制可以转移到方框308从而以常规方式处理意图。
此外,在方框304中也应注意,在一些实施方式中,也可以使用依赖图数据结构确定意图。例如,在一些实施方式中,可能期望在同一依赖图中对多种类型的动作进行建模,由此使得对依赖图的遍历能够用于从多个动作中进行选择。作为示例,在使用类似类型的输入参数来支持多个动作的情况下,从多个建模的动作中选择动作可以部分地基于用户在初始输入中指定的可用参数。
重新转到方框306,如果意图被确定为与用于依赖图数据结构为了对谈话进行建模而存在的动作相关联,则控制可以从方框306转到方框310以访问和遍历依赖图数据结构,并基于先前的用户输入和/或存储的用户数据可选地设定一个或多个参数。例如,如果来自用户的初始输入包括在请求动作时定义被动作使用的一个或多个参数的文本,则通常无需针对那些参数提示用户。因而,如果用户输入“please book a table for four at O’Briens(请在O’Briens餐厅预订四人的餐桌)”,则所需的聚会规模已知,因此无需要求用户提供该数据。同样地,在依赖图数据结构为多个餐厅的预留谈话建模的情况下,从初始输入中就已经知道了餐厅“O’Briens”。这可以馈入以上讨论的效果,从而引起客户端计算设备处的硬件方面的更高效的整体使用。
同样地,在动作使用的一个或多个参数作为存储数据(例如,来自用户简档)可用的情况下,也可能无需针对该数据提示用户,或者,可替代地,出于确认的目的而提供该数据(例如,“Would you like me to use your mobile number XXX-XXX-XXXX as yourcontact number?”(您想让我使用您的移动电话号码XXX-XXX-XXXX作为您的联系号码么?))。
然后,在方框312中,确定是否执行动作所需的任何参数未设定(即,仍未确定)。例如,如果仍然需要提示用户提供该参数,则可能未设定该参数。另外,如果需要执行动作方法以便生成在获取该参数之前所需的一些中间数据(例如,用户然后可以从其中选择的用于预订餐桌的可用时间槽列表),则参数可能仍未设定。
如果任何参数仍未设定,则控制转到方框314以基于依赖图数据结构选择一个或多个未设定参数。在一些实施方式中,例如,可以至少部分地使用依赖图数据结构来确定选择参数的顺序,例如,通过对由生成之后被另一方法用作参数的中间数据的动作方法所使用的参数进行优先级划分。
在方框316中,例如,通过执行与所选的参数相关联的一种或多种助理方法,生成针对所选的一个或多个参数的提示并将其呈现给用户,然后在方框318中,接收用户对该提示的输入,并且设定在输入中指定的任何参数。应明白,在一些实施方式中,在对话会话中生成的提示和响应可以是以视觉和/或音频形式呈现的自然语言输出的形式,而用户输入可以包括被计算设备的一个或多个输入组件(例如,触摸屏、键盘、麦克风等)接收到的自由形式的自然语言输入的实例,但是本发明不限于此。
在方框320中,确定用户输入是否改变了已经设定的任何参数,如果否,则控制转到方框322,其中确定是否有任何中间动作方法准备执行(即,设定了针对该动作的所有参数)。如果是,则控制转到方框324以执行中间动作方法,并将控制返回方框312以继续对话会话从而确定任何剩余的未设定参数。如果否,则跳过方框324,并且方框322将控制直接返回到方框312。然后,一旦已经设定了所有参数,则方框312将控制转到方框326以执行最后的动作方法,例如,通过使用在对话会话期间作为对调用操作的输入确定的参数来执行对计算服务的调用操作。然后在方框328中生成响应并将其呈现给用户以报告动作的结果,并且对话会话完成。
重新转向图320,如上文应注意的,在一些实例中,对话会话中的用户输入可以包括对已经设定的参数的改变。因而,在这种情况下,控制可以转移到方框330以使一个或多个受影响的参数无效。通过这样做,序列300中的后续操作可以重新执行一个或多个动作或助理方法以更新任何无效的参数。应注意,当一个或多个参数无效时,不受改变影响的一个或多个其他参数可以保持有效,并且结果是当重新执行与无效参数相关联的一种或多种动作方法或助理方法时,重新执行用于确定未受影响的一种或多种动作方法或助理方法可以被有效地绕过。
现在转向图7,该图示出了用户与至少部分地在由用户操作的计算设备340上实现的自动助理120之间的示例对话会话,计算设备340包括触摸屏342、各种用户界面按钮344、346、348、文本输入域350以及麦克风图标352。麦克风图标352可操作为使用户能够提供声音输入,声音输入可以是例如被语音捕获/TTS/STT模块114识别的语音,并用于例如填充文本输入域350。
在该对话会话中,用户操作客户端设备340(“You”(你))提供以下自由形式的自然语言输入(例如,使用输入域350):“HEY ASSISTANT,CAN YOU BOOK A DINNER RESERVATIONAT O’BRIENS THIS WEEKEND?”(嗨,助理,你能预定本周末在O’BRIENS餐厅的晚餐么?)。在一些实施方式中,例如,使用意图匹配器136的自动助理可以确定该输入与在O’Briens餐厅预定餐桌的动作相关联,并且该动作具有相关联的依赖图数据结构(例如,如上文结合图6的方框304-306所讨论的)。该示例的依赖图数据结构可以类似于上文结合图2和图3A至图3G所讨论的依赖图数据结构200。
此外,通过访问和遍历如上文结合图6的方框310所讨论的依赖图数据结构,可以确定已经提供了与PreferredDateTime参数有关的输入数据(“dinner”(晚餐)和“thisweekend”(本周末)),但没有提供与PartySize参数有关的输入数据,并且没有这两个参数就无法执行SearchSlots动作方法。因此,如上文结合图6的方框314和316所讨论的,可以生成诸如“SURE,FOR HOW MANY PEOPLE?”(当然,多少人?)之类的提示并将其呈现给用户。如先前所讨论的,该过程的效率和所生成的提示的相关性使得能够在客户端计算设备处高效地使用硬件资源。
然后,用户可以用诸如“FOUR”(四)的数字来响应,该数字然后被用于设置PartySize参数。然后,可以确定存在足够的数据来执行SearchSlots动作方法从而生成中间数据(这里是可用时间槽),并且可以执行SearchSlots动作方法,例如,如上文结合图6的方框322-324所讨论的。应注意,可以将SearchSlots动作方法本身或自动助理配置成确定对计算服务的SearchSlots调用的适当输入。例如,假设用户输入“dinner”(晚餐)和“thisweekend”(本周末),则可以使用诸如5:00pm至10:00pm的时间范围以及包括下星期五、星期六和星期日的日期范围。在某些实例中,可以多次调用计算服务,例如在日期范围内每天进行一次。
一旦从计算服务返回可用时间槽,就可以向用户呈现一个或多个可用时间槽,并提示选择要预留的时间槽(“RESERVATIONS ARE AVAILABLE AT 7:00PM ON FRIDAY AND 8:00PM ON SATURDAY.WOULD YOU LIKE TO MAKE A RESERVATION AT ONE OF THOSE TIMES?”(可预定周五晚上7:00和周六晚上8:00。您想预定这些时间中的一个吗?)。在一些实例中,可以呈现所有可用时间槽的列表,或者可替代地,如图7中所示,可以仅呈现一个或多个优选时间槽(例如,基于用户历史、餐厅历史等选择的时间槽)。
然后,基于选择时间槽的用户响应(“YES.LET’S DO SATURDAY AT 8:00PM”(好的,周六晚上8:00吧)),自动助理可以确定现在设定执行SlotLock动作方法所需的参数,由此执行SlotLock动作方法以锁定到该时间槽,然后为Reserve动作方法提供所有必要的参数。执行Reserve动作方法可能导致返回ReceiptObject,然后可以由自动助理进行处理以输出确认响应(“YOUR RESERVATION IS CONFIRMED.YOU SHOULD RECEIVE A CONFIRMATIONEMAIL SHORTLY”(您的预定已确认,您应该很快就会接收到确认邮件))。
图8示出了与计算设备340的用户的另一示例对话会话,其始于初始输入“HEYASSISTANT,CAN YOU BOOK A RESERVATION FOR FOUR AT O'BRIENS?”(嗨,助理,你能在O’BRIENS餐厅预定四人位么?)。遍历依赖图可以确定未设定PartySize参数,由此导致提示“WHAT DAY AND TIME ARE YOU LOOKING FOR?”(您想要订哪一天的什么时间?)。响应于用户输入“TONIGHT AT 7:00PM”(今晚7:00),自动助理可以执行SearchSlots动作方法,以使用四人聚会规模以及当日和7:00PM的优选日期和时间来调用计算服务。
假设对计算服务的调用的响应仅返回6:00PM的可用时间槽,则可以返回诸如“THEONLY AVAILABLE RESERVATION TONIGHT IS AT 6:00PM.SHOULD I BOOK IT FOR YOU?”(今晚唯一可预定的是下午6:00。我应该为您预订吗?)的响应。同样地,假设该时间对于用户来说是不可接受的,则用户可以使用诸如“NO.WHAT ABOUT TOMORROW NIGHT?”(不,明晚怎么样?)之类的输入作为响应,该输入可以被自动助理检测为改变PreferredDateTime参数,使得该参数以及先前由SearchSlots动作方法生成的SearchSlotsObject无效,并且重新执行SearchSlots动作方法来生成新的可用时间槽集(例如,如以上结合图6的方框320和330所讨论的)。然后,自动助理可以生成诸如“7:00PM IS AVAILABLE TOMORROW NIGHT.SHOULD IBOOK IT FOR YOU?”(明晚7:00可用。我应该为您预订吗?)之类的新提示,并且假设该时间槽对于用户而言是可接受的,则可以类似于上文结合图7所述的方式来完成预订。
然后,图9描绘了根据各种实施方式的通过由用户360操作的独立的交互式扬声器362在用户360和自动助理120之间进行的示例对话会话。在该对话会话中,初始输入“ANYTHEATER PERFORMANCES TONIGHT?”(今晚剧院有什么演出?)可以导致与图4和图5A至图5I的依赖图数据结构250相关联的动作的意图确定。
对依赖图数据结构的初始分析可以确定SearchKeyword参数(“theater”)和Date参数(“tonight”)的值,因而可以在针对任何附加参数提示用户之前执行SearchEvents动作方法。因此,自动助理可以执行SelectEvent助理方法以向用户输出一个或多个可能事件(“SHAKESPEARE IN THE PARK IS PLAYING TONIGHT,WOULD YOU LIKE TO GO?”(公园中的莎士比亚今晚演出,您想去么?)),并且假设用户做出肯定响应,则自动助理可以执行GetAvailableTicketTypes动作方法来确定一个或更多TicketTypeObjects(例如,这可以包括位置和价格信息,例如“ORCHESTRA SEATS ARE AVAILABLE FOR$25.WOULD YOU LIKETO PURCHASE THESE TICKETS?”(前排座位的价格为$25。您想购买这些票吗?))。还假定用户响应“YES,I'D LIKE TO BUY THREE”(是的,我想买三张),则可以执行GetTicketSku动作方法来确定所选门票的SKU。此外,由于用户输入指定了门票数量,因此自动助理可以绕过GetNumTickets助理方法的执行,并且可以使用门票SKU和门票数量的输入以及自动助理提供的认证信息来执行BuyTicket动作方法以调用计算服务,并且可以生成诸如“OK,I'VEPURCHASED THE TICKETS.YOU SHOULD RECEIVE A CONFIRMATION EMAIL SHORTLY”(好的,我已经购买了三张票。您应该很快就会接收到确认邮件)的响应并将其呈现给用户。
依赖图数据结构可以在不同的实施方式中以多种方式生成,并且可以使用多种不同的图形、视觉和/或文本编程界面来生成。例如,图10示出了用于生成依赖图数据结构的示例操作序列370。例如,在方框372中,计算机***可以生成编程用户界面,并将该界面呈现给用户(例如,开发人员)。然后,计算机***可以在方框374中接收对应于例如第三方代理API的一个或多个动作调用定义。然后,在方框376中,可以接收和/或确定一个或多个参数。例如,接收到的参数可以由用户手动提供,而确定的参数可以例如从动作调用定义的分析中得出。
然后,在方框378中,可以接收和/或确定依赖关系。例如,可以基于将一些动作调用的输出链接到其他动作调用的输入的用户输入来接收依赖关系,而可以基于那些动作调用的输入和输出的程序分析来确定依赖关系。然后,在方框380中,可以接收和/或确定一种或多种助理方法和/或参数提示。例如,用户可以手动输入针对特定参数的提示或针对各种助理方法的起草程序代码。作为另一示例,计算机***可以确定哪些参数需要用户输入,并且可以得出助理方法、助理方法模板和/或用于收集该用户输入的提示。
然后,在方框382中,计算机***为每个动作调用定义创建动作方法节点,并且在方框384中,计算机***为每个助理方法创建助理方法节点。然后,在方框386中,根据确定的依赖关系,创建有向边以将各个节点链接在一起。另外,在一些实施方式中,并且如方框388和390中所示,可以生成类似于图3A至图3G以及图5A至图5I中所示的规范,并且可以例如使用自动代码生成来确定针对每种方法的程序代码,或者可替代地,可以由用户手动地或者通过两种方法的某种组合来起草规范。
然后,在方框392中,计算机***可以索引在规范中被标识为可索引的所有动作方法,由此将动作方法注册到自动助理中。然后在方框394中,可以部署依赖图数据结构并使该依赖图数据结构可供自动助理使用。
应明白,可以在各种实施方式中使用各种各样的编程模型、语言和界面,包括不同级别的自动代码生成和来自用户的手动输入,因此本发明不限于在此讨论的特定实施方式。例如,在一些实施方式中,自动化可以用于生成或建议数据类型、依赖关系、授权或认证方法等,并且在某些实例中可以执行依赖图数据结构的验证,例如以确认每种方法使用的每个参数都具有来自输出该参数的另一种方法的相应的有向边。另外,在一些实施方式中,依赖图数据结构的方法和/或部分可以被存储和/或重新用于其他依赖图数据结构,例如,如可以由第三方计算服务提供商、由助理提供商、经由社区存储库等来提供。
依赖图数据结构的上述使用在不同的实施方式中提供了许多技术优点。例如,与某些低级API或形式填充方法相比,可以支持更现实和更少的机器人式的谈话,并且自动助理在决定可以请求参数的顺序和可以执行哪种动作方法的过程中可以具有更大的灵活性。此外,自动助理可以使用机器学习技术来优化对依赖图数据结构的使用,以提供更真实的谈话以及更适合特定用户的谈话。该方法还可以适用于多种用例,并且可以扩展为仅需很少或不需要附加编程的附加用例。此外,可以避免需要开发人员预期所有可能的输入和输入参数的组合。
此外,在一些实施方式中,可以通过在使其他参数保持有效的同时使参数动态无效的能力来节省计算资源,由此避免了需要重新开始谈话。
图11是示例计算设备410的框图。计算设备410通常包括经由总线子***404与许多***设备进行通信的至少一个处理器402。这些***设备可以包括存储子***406(包括例如存储器子***408和文件存储子***410)、用户接口输入设备412、用户接口输出设备414、和网络接口子***416。输入和输出设备允许用户与计算设备400交互。网络接口子***416提供到外部网络的接口并且耦合到其它计算设备中的对应的接口设备。
用户接口输入设备412可以包括键盘、诸如鼠标、轨迹球这样的指示设备、触摸板或图形平板、扫描器、并入到显示器中的触摸屏、诸如话音辨识***、麦克风这样的音频输入设备和/或其它类型的输入设备。通常,术语“输入设备”的使用旨在包括所有可能类型的设备以及用于将信息输入到计算设备400中或者通信网络上的方式。
用户接口输出设备414可以包括显示子***、打印机、传真机或诸如音频输出设备这样的非视觉显示器。显示子***可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)这样的平板设备、投影设备或用于创建可见图像的某种其它机制。显示子***还可以例如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括所有可能类型的设备以及用于从计算设备400向用户或者向另一机器或计算设备输出信息的方式。
存储子***406存储提供本文描述的模块中的一些或全部的功能的编程和数据结构。例如,存储子***406可以包括用于执行图6的序列以及图10的序列的所选方面的逻辑。
这些软件模块通常由处理器402单独或者与其它处理器相结合地执行。存储子***406中使用的存储器408可包括许多存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)418以及存储有固定指令的只读存储器(ROM)420。文件存储子***410可为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及关联的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实施方式的功能的模块可以由存储子***406中的文件存储子***410存储,或者存储在可由处理器402访问的其它机器中。
总线子***404提供用于使计算设备400的各个组件和子***按预期彼此通信的机制。尽管总线子***404被示意性地示出为单条总线,但是总线子***的替代实施方式可以使用多条总线。
计算设备400可以是各种类型,包括移动设备、智能手机、平板电脑、便携式计算机、台式计算机、可穿戴计算机、可编程电子设备、机顶盒、工作站、服务器、计算集群、刀片服务器、服务器场或任何其它数据处理***或计算设备。由于计算机和网络的不断变化的性质,对图11中描绘的计算设备400的描述仅作为用于说明一些实施方式的具体示例。计算设备400的许多其它配置可能具有比图11中描绘的计算设备400更多或更少的组件。
在此处描述的***收集有关用户的个人信息或可以利用个人信息的情况下,可以向用户提供以下机会:控制程序或功能是否收集用户信息(例如,有关用户社交网络、社交行为或活动、职业、用户的偏好或用户当前的地理位置的信息),或控制是否和/或如何从内容服务器接收与用户更为相关的内容。同样,某些数据在存储或使用之前可能会以一个或多个方式加以处理,以便删除个人身份信息。例如,可以处理用户的身份,以便无法针对所述用户确定任何个人可识别信息,或者可以在获得地理位置信息(诸如针对城市,邮政编码或州级别)的情况下一般化用户的地理位置,使得无法确定用户的特定地理位置。因此,用户可以控制如何收集和/或使用有关用户的信息。
虽然已在本文中描述和图示了若干实施方式,但是可以利用用于执行功能并且/或者获得结果的各种其它手段和/或结构和/或本文描述的优点中的一个或多个,并且这样的变化和/或修改中的每一个均被视为在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和构造意在为示例性的,并且实际的参数、尺寸、材料和/或构造将取决于教导被用于的一个或多个具体应用。本领域的技术人员将认识到或者能够使用不超过例行实验来探知本文描述的具体实施方式的许多等同物。因此应当理解的是,上述实施方式仅作为示例被呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体地描述和要求保护的方式实践实施方式。本公开的实施方式涉及本文描述的每个单独的特征、***、物品、材料、套件和/或方法。此外,如果这样的特征、***、物品、材料、套件和/或方法不是相互不一致的,则两个或更多个这样的特征、***、物品、材料、套件和/或方法的任何组合被包括在本公开的范围内。
Claims (25)
1.一种使用一个或多个处理器实现的方法,包括:
确定将由计算服务针对计算设备的用户执行的动作,所述计算设备与至少部分地由所述一个或多个处理器实现的自动助理进行通信;以及
利用所述自动助理,使所述计算服务通过以下步骤执行针对所述计算设备的用户的动作:
针对所述动作访问依赖图数据结构,所述依赖图数据结构包括多个节点和多个有向边,每个节点都辨识访问所述计算服务的动作方法或者收集用于执行所述动作的一个或多个参数的助理方法,并且每个有向边都连接来自所述多个节点的相应节点对,并辨识至少一个参数,所述至少一个参数由所述相应节点对中的一个节点所辨识的所述动作方法或所述助理方法生成,并且被由所述相应节点对中的另一节点所辨识的所述动作方法或所述助理方法利用;
在所述用户和所述自动助理之间进行人机对话会话,以确定用于执行所述动作的一个或多个参数,包括使用所述依赖图数据结构生成一个或多个自然语言输出以通过由所述用户操作的所述计算设备呈现,并且接收在由所述用户操作的所述计算设备的一个或多个输入组件处接收到的自由形式的自然语言的一个或多个实例;以及
发起由所述计算服务使用所确定的一个或多个参数执行所述动作。
2.根据权利要求1所述的方法,其中,所述依赖图数据结构中的所述多个节点中的第一节点辨识调用所述计算服务的第一动作方法,并且其中,发起由所述计算服务执行所述动作包括执行所述第一动作方法。
3.根据权利要求2所述的方法,其中,所述第一动作方法包括调用操作,所述调用操作包括多个输入,并且其中,执行所述第一动作方法包括使用所确定的一个或多个参数作为用于所述调用操作的所述多个输入中的输入来执行所述调用操作。
4.根据权利要求2所述的方法,其中,所述依赖图数据结构包括用于定义方法及其之间的依赖关系的规范,并且其中,所述第一动作方法在所述规范中被标为可索引的,以指示所述第一动作方法调用所述计算服务来执行所述动作。
5.根据权利要求2所述的方法,其中,所述第一动作方法调用所述计算服务来执行所述动作,并且其中,所述依赖图数据结构中的所述多个节点中的第二节点辨识第二动作方法,所述第二动作方法调用所述计算服务来获得用于执行所述动作的中间数据。
6.根据权利要求1所述的方法,其中,所述依赖图数据结构中的所述多个节点中的第一节点辨识包括请求第一参数的第一提示的第一助理方法,并且其中,生成所述一个或多个自然语言输出包括执行所述第一助理方法以生成包括所述第一提示的第一自然语言输出。
7.根据权利要求1所述的方法,其中,确定要由所述计算服务执行的所述动作是由所述自动助理执行的,并且基于在所述用户的所述计算设备处接收到的并指定由所述依赖图数据结构中的第一有向边辨识的第一参数的初始自然语言输入,其中,所述第一有向边连接第一节点和第二节点,所述第一节点辨识生成所述第一参数的第一助理方法,所述第二节点辨识利用所述第一参数的第一动作方法,并且其中,在所述用户和所述自动助理之间进行所述人机对话会话包括响应于确定在所述初始自然语言输入中指定所述第一参数而绕过生成自然语言输出来请求所述第一参数。
8.根据权利要求1所述的方法,其中,由所述依赖图数据结构中的第一有向边辨识的第一参数连接第一节点和第二节点,所述第一节点辨识生成所述第一参数的第一助理方法,所述第二节点辨识利用所述第一参数的第一动作方法,并且其中,在所述用户和所述自动助理之间进行所述人机对话会话包括响应于确定在不需要从所述用户请求所述第一参数的情况下所述第一参数是可确定的而绕过生成自然语言输出来请求所述第一参数。
9.根据权利要求8所述的方法,其中,确定在不需要从所述用户请求所述第一参数的情况下所述第一参数是可确定的包括确定所述第一参数能从与所述用户相关联的已存储数据确定。
10.根据权利要求1所述的方法,其中,在所述用户和所述自动助理之间进行所述人机对话会话以确定用于执行所述动作的所述一个或多个参数包括使用所述依赖图数据结构对所生成的一个或多个自然语言输出排序。
11.根据权利要求1所述的方法,进一步包括:
响应于接收到所述自由形式的自然语言输入的一个或多个实例中的自由形式的自然语言的第一实例,使所确定的一个或多个参数中的一个或多个在所述人机对话会话期间无效;
访问所述依赖图数据结构,以辨识在所述依赖图数据结构中辨识的一个或多个动作方法或助理方法从而重新执行,以便更新所无效的一个或多个参数;以及
重新执行所辨识的一个或多个动作方法或助理方法,以更新所无效的一个或多个参数。
12.根据权利要求11所述的方法,其中,使所述一个或多个参数无效保持一个或多个其他参数有效,使得当重新执行所辨识的一个或多个动作方法或助理方法时,绕过用于确定所述一个或多个其他参数的所述一个或多个动作方法或助理方法的重新执行。
13.根据权利要求1所述的方法,其中,确定所述动作由所述自动助理执行,并且包括使用所述依赖图数据结构从多个动作中选择所述动作。
14.根据权利要求1所述的方法,其中,所述计算服务是第三方计算服务,并且其中,发起由所述计算服务使用所确定的一个或多个参数执行所述动作包括使用所确定的一个或多个参数来调用所述第三方计算服务。
15.根据权利要求1所述的方法,其中,所述计算服务是云计算服务。
16.根据权利要求1所述的方法,其中,所述计算服务驻留在由所述用户操作的所述计算设备上。
17.根据权利要求1所述的方法,其中,所述依赖图数据结构定义有向非循环图。
18.根据权利要求1所述的方法,其中,所述动作创建预留,其中,所述多个节点中的第一节点辨识第一动作方法,所述第一动作方法调用所述计算服务来搜索可用时间槽,并且其中,所述多个节点中的第二节点辨识第二动作方法,所述第二动作方法调用所述计算服务来预留可用时间槽。
19.根据权利要求1至17中的任一项所述的方法,其中,所述动作获得产品或事件门票。
20.一种使用一个或多个处理器实现的方法,包括:
通过计算机接口接收将被自动助理使用的多个参数,以使计算服务针对与所述自动助理通信的计算设备的用户执行动作;
确定所述多个参数之间的多个依赖关系;
使用所述一个或多个处理器为所述动作构建依赖图数据结构,所述依赖图数据结构被配置成用于在所述用户和所述自动助理之间进行人机对话会话,以确定用于执行所述动作的一个或多个参数,包括用于生成一个或多个自然语言输出以由所述用户所操作的所述计算设备呈现,其中,为所述动作构建所述依赖图数据结构包括:
使用接收到的多个参数构建用于所述依赖图数据结构的多个节点,包括构建辨识访问所述计算服务的动作方法的至少一个节点,以及构建从接收到的多个参数中收集一个或多个参数的至少一个助理方法;以及
使用所确定的多个依赖关系构建用于所述依赖图数据结构的多个有向边,每个有向边都连接来自所述多个节点中的相应节点对,并从接收到的多个参数中辨识至少一个参数,所述至少一个参数由所述相应节点对中的一个节点所辨识的所述动作方法或助理方法生成,并且被由所述相应节点对中的另一节点所辨识的所述动作方法或助理方法利用;以及
生成所述动作方法中的调用操作,所述调用操作利用接收到的多个参数中的一个或多个来调用所述计算服务以执行所述动作。
21.根据权利要求20所述的方法,其中,所述计算服务是第三方计算服务,并且其中,所述调用操作被配置成访问所述第三方计算服务。
22.根据权利要求20所述的方法,其中,确定所述多个依赖关系包括通过所述计算机接口接收所述多个依赖关系。
23.根据权利要求20-22中的任一项所述的方法,其中,接收所述多个参数包括接收多个动作调用定义。
24.一种***,包括一个或多个处理器以及与所述一个或多个处理器可操作地耦合的存储器,其中,所述存储器存储指令,响应于所述指令被所述一个或多个处理器执行,所述指令使所述一个或多个处理器执行根据权利要求1至23中的任一项所述的方法。
25.一种包括指令的至少一个非暂时性计算机可读介质,响应于所述指令被一个或多个处理器执行,所述指令使所述一个或多个处理器执行根据权利要求1至23中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410167600.0A CN118093076A (zh) | 2018-04-19 | 2018-05-01 | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862660129P | 2018-04-19 | 2018-04-19 | |
US62/660,129 | 2018-04-19 | ||
PCT/US2018/030451 WO2019203859A1 (en) | 2018-04-19 | 2018-05-01 | Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410167600.0A Division CN118093076A (zh) | 2018-04-19 | 2018-05-01 | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112136124A CN112136124A (zh) | 2020-12-25 |
CN112136124B true CN112136124B (zh) | 2024-02-20 |
Family
ID=62223255
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410167600.0A Pending CN118093076A (zh) | 2018-04-19 | 2018-05-01 | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 |
CN201880093458.2A Active CN112136124B (zh) | 2018-04-19 | 2018-05-01 | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410167600.0A Pending CN118093076A (zh) | 2018-04-19 | 2018-05-01 | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10803860B2 (zh) |
EP (1) | EP3776246A1 (zh) |
CN (2) | CN118093076A (zh) |
WO (1) | WO2019203859A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102476621B1 (ko) | 2018-05-07 | 2022-12-12 | 구글 엘엘씨 | 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용 |
US11200893B2 (en) * | 2018-05-07 | 2021-12-14 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
US11295213B2 (en) * | 2019-01-08 | 2022-04-05 | International Business Machines Corporation | Conversational system management |
US11392773B1 (en) * | 2019-01-31 | 2022-07-19 | Amazon Technologies, Inc. | Goal-oriented conversational training data generation |
KR20200123945A (ko) * | 2019-04-23 | 2020-11-02 | 현대자동차주식회사 | 자연어 생성 장치, 이를 포함하는 차량 및 자연어 생성 방법 |
US11206229B2 (en) * | 2019-04-26 | 2021-12-21 | Oracle International Corporation | Directed acyclic graph based framework for training models |
CN110413250B (zh) * | 2019-06-14 | 2021-06-01 | 华为技术有限公司 | 一种语音交互方法、装置及*** |
US11120790B2 (en) | 2019-09-24 | 2021-09-14 | Amazon Technologies, Inc. | Multi-assistant natural language input processing |
US11393477B2 (en) * | 2019-09-24 | 2022-07-19 | Amazon Technologies, Inc. | Multi-assistant natural language input processing to determine a voice model for synthesized speech |
US11449578B2 (en) * | 2019-09-27 | 2022-09-20 | Botty Todorov DIMANOV | Method for inspecting a neural network |
US11275902B2 (en) * | 2019-10-21 | 2022-03-15 | International Business Machines Corporation | Intelligent dialog re-elicitation of information |
US11501776B2 (en) * | 2020-01-14 | 2022-11-15 | Kosmos Ai Tech Inc | Methods and systems for facilitating accomplishing tasks based on a natural language conversation |
US11698779B2 (en) * | 2020-09-01 | 2023-07-11 | Ansys, Inc. | Systems using computation graphs for flow solvers |
US11206190B1 (en) | 2021-02-01 | 2021-12-21 | International Business Machines Corporation | Using an artificial intelligence based system to guide user dialogs in designing computing system architectures |
US20230099368A1 (en) * | 2021-09-30 | 2023-03-30 | Intuit Inc. | Conversational user interfaces based on knowledge graphs |
US11922938B1 (en) | 2021-11-22 | 2024-03-05 | Amazon Technologies, Inc. | Access to multiple virtual assistants |
US20230259714A1 (en) * | 2022-02-14 | 2023-08-17 | Google Llc | Conversation graph navigation with language model |
US11516158B1 (en) * | 2022-04-20 | 2022-11-29 | LeadIQ, Inc. | Neural network-facilitated linguistically complex message generation systems and methods |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321296A (zh) * | 1998-10-02 | 2001-11-07 | 国际商业机器公司 | 通过会话虚拟机进行会话式计算 |
CN102236701A (zh) * | 2010-05-07 | 2011-11-09 | 微软公司 | 关于多个域的依赖图 |
WO2014197635A2 (en) * | 2013-06-07 | 2014-12-11 | Apple Inc. | Intelligent automated assistant |
CN105808200A (zh) * | 2010-01-18 | 2016-07-27 | 苹果公司 | 智能自动化助理 |
CN106528613A (zh) * | 2016-05-26 | 2017-03-22 | 中科鼎富(北京)科技发展有限公司 | 智能问答方法及装置 |
WO2017070257A1 (en) * | 2015-10-21 | 2017-04-27 | Genesys Telecommunications Laboratories, Inc. | Data-driven dialogue enabled self-help systems |
WO2018067368A1 (en) * | 2016-10-04 | 2018-04-12 | Google Llc | Hierarchical annotation of dialog acts |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150188A1 (en) * | 2004-12-21 | 2006-07-06 | Manuel Roman | Method and apparatus for supporting soft real-time behavior |
US9202171B2 (en) | 2008-11-11 | 2015-12-01 | Digideal Corporation | Virtual game assistant based on artificial intelligence |
US10276170B2 (en) * | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8689191B2 (en) * | 2010-03-05 | 2014-04-01 | International Business Machines Corporation | Correct refactoring of concurrent software |
US9930092B2 (en) * | 2010-12-06 | 2018-03-27 | Zoho Corporation Private Limited | Editing an unhosted third party application |
US9201865B2 (en) * | 2013-03-15 | 2015-12-01 | Bao Tran | Automated assistance for user request that determines semantics by domain, task, and parameter |
US9594542B2 (en) * | 2013-06-20 | 2017-03-14 | Viv Labs, Inc. | Dynamically evolving cognitive architecture system based on training by third-party developers |
KR102189855B1 (ko) | 2015-10-21 | 2020-12-11 | 구글 엘엘씨 | 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성 |
US10757048B2 (en) * | 2016-04-08 | 2020-08-25 | Microsoft Technology Licensing, Llc | Intelligent personal assistant as a contact |
EP3430514B1 (en) * | 2016-04-18 | 2019-10-09 | Google LLC | Automated assistant invocation of appropriate agent |
US20180033017A1 (en) * | 2016-07-29 | 2018-02-01 | Ramesh Gopalakrishnan IYER | Cognitive technical assistance centre agent |
US10467345B2 (en) * | 2016-08-30 | 2019-11-05 | Microsoft Technology Licensing, Llc | Framework for language understanding systems that maximizes reuse through chained resolvers |
US10217462B2 (en) * | 2016-08-31 | 2019-02-26 | Microsoft Technology Licensing, Llc | Automating natural language task/dialog authoring by leveraging existing content |
US11755997B2 (en) * | 2017-02-22 | 2023-09-12 | Anduin Transactions, Inc. | Compact presentation of automatically summarized information according to rule-based graphically represented information |
US11170285B2 (en) * | 2017-05-05 | 2021-11-09 | Google Llc | Virtual assistant configured to recommended actions in furtherance of an existing conversation |
-
2018
- 2018-05-01 CN CN202410167600.0A patent/CN118093076A/zh active Pending
- 2018-05-01 EP EP18726624.2A patent/EP3776246A1/en active Pending
- 2018-05-01 US US15/772,998 patent/US10803860B2/en active Active
- 2018-05-01 WO PCT/US2018/030451 patent/WO2019203859A1/en unknown
- 2018-05-01 CN CN201880093458.2A patent/CN112136124B/zh active Active
-
2020
- 2020-10-05 US US17/063,196 patent/US11488601B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321296A (zh) * | 1998-10-02 | 2001-11-07 | 国际商业机器公司 | 通过会话虚拟机进行会话式计算 |
CN105808200A (zh) * | 2010-01-18 | 2016-07-27 | 苹果公司 | 智能自动化助理 |
CN102236701A (zh) * | 2010-05-07 | 2011-11-09 | 微软公司 | 关于多个域的依赖图 |
WO2014197635A2 (en) * | 2013-06-07 | 2014-12-11 | Apple Inc. | Intelligent automated assistant |
WO2017070257A1 (en) * | 2015-10-21 | 2017-04-27 | Genesys Telecommunications Laboratories, Inc. | Data-driven dialogue enabled self-help systems |
CN106528613A (zh) * | 2016-05-26 | 2017-03-22 | 中科鼎富(北京)科技发展有限公司 | 智能问答方法及装置 |
WO2018067368A1 (en) * | 2016-10-04 | 2018-04-12 | Google Llc | Hierarchical annotation of dialog acts |
Non-Patent Citations (2)
Title |
---|
User-Centered Multimodal Interaction Graph for Design Reviews;Martin Witzel 等;《2008 IEEE Virtual Reality Conference》;299-300 * |
基于"问题-用户"的网络问答社区专家发现方法研究;龚凯乐 等;《图书情报工作》;115-121 * |
Also Published As
Publication number | Publication date |
---|---|
US20210020178A1 (en) | 2021-01-21 |
US20200258509A1 (en) | 2020-08-13 |
US10803860B2 (en) | 2020-10-13 |
CN112136124A (zh) | 2020-12-25 |
WO2019203859A1 (en) | 2019-10-24 |
CN118093076A (zh) | 2024-05-28 |
US11488601B2 (en) | 2022-11-01 |
EP3776246A1 (en) | 2021-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112136124B (zh) | 用于与计算机实现的自动助理进行人机对话会话的依赖图谈话建模 | |
US10679622B2 (en) | Dependency graph generation in a networked system | |
JP7032504B2 (ja) | 会議能力を有する自動アシスタント | |
JP7498149B2 (ja) | ユーザプログラマブル自動アシスタント | |
JP7209818B2 (ja) | 自動ナビゲーションを容易にするためのウェブページの分析 | |
KR102567447B1 (ko) | 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의 전환 | |
KR20200006107A (ko) | 다수의 코퍼스들로부터 응답 정보 획득 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |