一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

适当的代理的自动化助理调用的制作方法

2022-04-16 14:55:43 来源:中国专利 TAG:

适当的代理的自动化助理调用
1.分案说明
2.本技术属于申请日为2017年4月18日的中国发明专利申请no.201780028118.7的分案申请。
技术领域
3.本技术大体上涉及适当的代理的自动化助理调用。


背景技术:

4.用户可以经由各种客户端设备(诸如智能电话、平板计算机、可穿戴设备,汽车系统、独立个人助理设备等)与自动化助理(也称为“个人助理”、“移动助理”等)交互。自动化助理接收来自用户的输入(例如,键入和/或说出的自然语言输入)并且以响应内容(例如,可视和/或可听自然语言输出)响应。经由客户端设备与之交互的自动化助理可以经由客户端设备它本身和/或经由与客户端设备进行网络通信的一个或多个远程计算设备(例如,“云”中的计算设备)来实现。


技术实现要素:

5.本说明书一般地致力于用于在用户与自动化助理之间的对话期间调用代理的方法、系统和计算机可读介质。调用代理可包括传送(例如,利用应用编程接口(api))调用请求,所述调用请求包括调用参数的值(例如,意图参数的值、意图位位参数的值和/或其它参数的值),并且使代理生成内容以用于经由一个或多个用户接口输出设备(例如,经由在与自动化助理的对话中利用的用户接口输出设备中的一个或多个)呈现给用户。可针对调用请求的调用参数来定制由代理生成的响应内容。
6.一些实施方式致力于在人与自动化助理对话期间接收用户的自然语言输入,所述自然语言输入指示要代理参与的期望,但是未能指示要特定代理参与。例如,“给我预订芝加哥的旅馆”指示用“旅馆预订”意图参数和“芝加哥”位置参数要代理参与的期望,但是未能指定要调用的特定代理。那些实施方式还致力于从多个可用代理中选择特定代理,以及向所选择的特定代理传送调用请求。例如,可向所选择的特定代理传送调用请求,而无需将该调用请求传送到可用代理中的任何其它代理。在那些实施方式中的一些中,特定代理和针对特定代理的特定意图被选择(例如,当特定代理可操作来响应于多个不同意图中的任何一个而生成响应内容时)。
7.在从多个可用代理中选择特定代理的一些实施方式中,在选择特定代理时使用代理选择模型。在那些实施方式的一些版本中,代理选择模型包括至少一个机器学习模型,诸如深度神经网络模型。可对机器学习模型进行训练以使得能够生成输出,所述输出针对多个可用代理中的每一个(和可选地针对那些代理的意图)指示可用代理(和可选地意图)将生成适当的响应内容的概率。所生成的输出基于应用于机器学习模型的输入,其中输入基于:与自动化助理的当前对话,以及可选地附加场境值。例如,基于当前对话的输入可包括
基于在当前对话中提供给自动化助理的最近的自然语言输入和/或在当前对话中提供的过去的自然语言输入的各种值。另外,可选的附加场境值可包括例如客户端设备场境值,诸如基于以下各项的值:客户端设备的用户的历史交互、客户端设备上的当前渲染和/或最近渲染的内容、客户端设备的位置、当前日期和/或时间等。
8.在一些实施方式中,在代理选择模型包括至少一个机器学习模型的情况下,可基于以与可用代理的过去的交互为基础的训练实例来对机器学习模型中的至少一个进行训练。
9.作为一个示例,多个训练实例可每一个基于以在对应的人与自动化助理对话期间提供的自然语言输入(例如,未能识别特定代理的自然语言输入)为基础而生成的对应的代理请求来生成。可向多个可用代理中的每一个(例如,向所有可用代理)传送代理请求,并且从代理请求被传送到的可用代理中的一个或多个接收响应。训练实例中的每一个均可包括基于以下的训练实例输入:代理请求(例如,对应的自然语言输入和可选地场境值),以及基于响应的训练实例输出。响应可每一个指示代理中的对应一个解析代理请求的能力。例如,来自给定代理的响应可以是二进制指示(例如,“可解析的”、“不可解析的”;或“响应内容”、“无响应内容/错误”)、非二进制置信量度(例如,“70%可能可解析的”)、实际响应内容(或无内容/错误)等。另外,例如,从给定代理收到响应可指示它能够响应,而没有来自给定代理的响应可指示它无法回应。可将代理请求传送到代理,而无需在对话中主动地调用可用代理。例如,代理请求可与调用请求类似,但是包括“非调用”标志和/或不应该立即调用代理的其它指示。另外,例如,响应可附加地或可替选地由自动化助理处理,而不用在对话中提供任何对应内容。
10.这样的机器学习模型一旦被训练,就可被利用来基于当前对话(例如,当前对话的自然语言输入和可选地场境值)预测多个代理中的每一个(和可选地意图)的概率—其中这些概率中的每一个均指示代理能够适当地处理基于对话的调用请求的概率(例如,二进制或非二进制)。对特定代理的选择可至少部分地基于此类概率,并且调用请求被传送到仅特定代理。
11.在一些实施方式中,机器学习模型中的至少一个可基于在代理的调用之后提供给代理的自然语言输入而生成。例如,可与代理相关联地存储紧接在代理的调用之后提供给代理的自然语言输入。例如,自然语言输入可以是紧接在作为“裸”调用的调用之后提供给代理的那些。代理的裸调用是基于被导向代理但是不包括意图参数的值和/或不包括任何意图位参数的值的调用请求对代理的调用。例如,响应于“开放代理x”的自然语言输入,可响应于发送到“代理x”的不包括意图参数的任何值并且不包括任何意图位参数的任何值的调用请求而发生“代理x”的裸调用。另外,例如,响应于“用代理x设置提醒”的自然语言输入,可响应于发送到“代理x”的包括意图参数的“提醒”值但是不包括任何意图位参数的任何值的调用请求而发生“代理x”的裸调用。可生成包括自然语言输入与被提供有自然语言输入的对应代理(和可选地意图)之间的映射(或其它关联)的选择模型。以这种方式,映射基于用户在代理的裸调用之后提供的初始对话,这使得能够生成代理选择模型,该代理选择模型提供对哪些代理最可能适于对各种自然语言做出响应的洞察。可在选择特定代理时利用附加和/或替选选择模型。作为一个示例,可以附加地或可替选地在选择特定代理时利用基于由各种用户对代理的过去的显式选择而生成的选择模型。
12.在一些实施方式中,在选择特定代理(和可选地意图)时使用各种附加和/或替选准则。作为一个示例,可“实况”向多个候选代理传送代理请求(如上所述),并且在确定选择要调用的特定代理时分析来自那些代理的响应。作为另一示例,附加和/或替选准则可包括客户端设备的用户的历史交互(例如,特定代理被用户利用的频率、特定代理最近如何被用户利用)、客户端设备上的当前渲染和/或最近渲染的内容(例如,内容是否对应于代理特征)、客户端设备的位置、当前日期和/或时间、特定代理的排名(例如,按用户群的排名)、特定代理的流行性(例如,在用户群当中的流行性)等。在选择特定代理时利用机器学习模型的实施方式中,这种准则可被应用为机器学习模型的输入并且/或者与在机器学习模型上生成的输出相结合地考虑。
13.在上面和/或在本文中别处描述的各种技术使得能够选择特定代理,并且可以增加所选择的特定代理能够适当地处理调用请求的可能性。这可以减轻被选择调用的特定代理无法执行调用请求的意图(可选地按调用请求的附加参数的值)的风险,这可以保存各种计算资源。例如,它可以保存网络和/或处理器资源,这些资源可能以其他方式被利用代理来执行意图的初始失败尝试消耗,然后在后面另一次尝试执行意图时调用替选代理。此外,在选择特定代理而不用提示用户在多个可用代理之间进行选择的实施方式中,它可以减少在调用之前需要的人与自动化助理对话的“轮番”的数目。这还可以保存将以其他方式被此类轮番消耗的各种网络和/或处理器资源。另外,在利用训练的机器学习模型的实施方式中,可利用经训练的机器学习模型来确定代理能处理特定调用的概率—而不必通过与一个或多个代理的“实况”交互来消耗网络资源以做出这样的确定。这还可以保存会在此类实况交互中以其他方式消耗的各种网络和/或处理器资源。
14.在一些情形中,响应于根据本文中所公开的技术对特定代理的调用,可以将人与自动化助理对话至少临时地(实际上或有效地)转移到特定代理。例如,可以为促进对话而向用户提供基于特定代理的响应内容的输出,并且响应于该输出而接收进一步用户输入。可以将进一步用户输入(或其转换)提供给特定代理。特定代理可以在生成进一步响应内容时利用它自己的语义引擎和/或其它组件,所述进一步响应内容可用于生成为促进对话而输出的进一步输出。此一般过程可以继续,直到例如特定代理提供终止特定代理对话的响应内容(例如,回答或解决方案而不是提示)、用户的附加用户接口输入终止特定代理对话(例如,替选地调用来自自动化助理或其它代理的响应)等为止。
15.在一些情形中,当对话被有效地转移到特定代理时,自动化助理可以仍然充当媒介。例如,在充当其中用户的自然语言输入是语音输入的媒介时,自动化助理可以将语音输入转换为文本,将文本(和可选地文本的注释)提供给特定代理,从特定代理接收响应内容,并且提供基于特定响应内容的输出以用于呈现给用户。另外,例如,在充当媒介时,自动化助理可以分析特定代理的用户输入和/或响应内容以确定是否应该终止与特定代理的对话、是否应该将用户转移到替选代理、是否应该基于特定代理对话更新全局参数值等。在一些情形中对话可以被实际上转移到特定代理(一旦被转移就不用自动化助理作为媒介),并且在发生一个或多个条件时可选地转移回到自动化助理,所述条件诸如由特定代理终止(例如,响应于经由特定代理完成意图)。
16.本文中所描述的实施方式使得自动化助理能够基于与用户的对话选择适当的代理,并且调用代理以实现用户的由用户在对话中指示的意图。这些实施方式可以使得用户
能够经由与自动化助理的交互而使代理参与,而无需用户知道“调用短语”以显式地触发代理和/或而无需用户甚至最初知道代理存在。此外,实施方式可以使得用户能够利用公共自动化助理接口(例如,基于可听/语音的接口和/或图形接口)来调用使得能够跨越多个根本不同的意图执行动作的多个根本不同的代理中的任一个。例如,可以利用公共自动化助理接口来使处理“餐厅预约”意图的多个代理中的任何一个参与、使处理“购买专业服务”意图的多个代理中的任何一个参与、使处理“讲笑话”意图的多个代理中的任何一个参与、使处理“提醒”意图的多个代理中的任何一个参与、使处理“购买旅行服务”意图的多个代理中的任何一个参与、并且/或者使处理“交互式游戏”意图的多个代理中的任何一个参与。
17.如本文中所使用的,“代理”引用与自动化助理分立的一个或多个计算设备和/或软件。在一些情形中,代理可以是第三方(3p)代理,因为它由与管理自动化助理的一方分立的一方来管理。代理被配置成从自动化助理接收(例如,通过网络和/或经由api)调用请求。响应于接收到调用请求,代理基于调用请求生成响应内容,并且传送响应内容以置配基于响应内容的输出。例如,代理可以将响应内容传送到自动化助理以用于由自动化助理提供基于响应内容的输出。作为另一例子,代理它本身可提供输出。例如,用户可经由客户端设备与自动化助理交互(例如,自动化助理可被实现在客户端设备上和/或与客户端设备进行网络通信),并且代理可以是安装在客户端设备上的应用或从客户端设备可远程执行的但是在客户端设备上“可流式传输的”的应用。当应用被调用时,它可由客户端设备执行和/或由客户端设备带到前端(例如,其内容可接管客户端设备的显示)。
18.在本文中描述了各种类型的输入,所述输入可以由用户经由用户接口输入设备提供给自动化助理和/或提供给代理。在一些实例中输入可以是自由形式的自然语言输入,诸如基于由用户经由一个或多个用户接口输入设备(例如,基于经由物理或虚拟键盘提供的键入输入或者基于经由麦克风提供的话音输入)而生成的用户接口输入的文本输入。如本文中所使用的,自由形式输入是由用户公式化的并且不局限于呈现给用户选择的一组选项(例如,不局限于在下拉菜单中呈现的一组选项)的输入。
19.在一些实施方式中,由一个或多个处理器执行的方法被提供并且包括接收在人与自动化助理对话期间基于用户接口输入而生成的自然语言输入实例。该方法还包括,在响应于自然语言输入实例而调用任何代理之前:基于自然语言输入实例生成代理请求;针对代理请求从可用代理的语料库中选择多个代理的集合;将代理请求传送到集合的多个代理中的每一个;响应于传送而从多个代理的至少一个子集接收对请求的对应响应;根据响应中的每一个确定提供响应的代理响应于代理请求而生成响应内容的相对能力;以及基于响应中的至少一个选择多个代理中的特定代理。该方法还包括响应于自然语言输入并基于选择特定代理来调用特定代理。调用特定代理使由特定代理生成的响应内容被提供用于经由一个或多个用户接口输出设备呈现。在一些实施方式中,仅所选择的特定代理响应于接收到自然语言输入而被调用。
20.本文中所公开的技术的这些和其它实施方式可以可选地包括以下特征中的一个或多个。
21.在一些实施方式中,该方法还包括:在一个或多个计算机可读介质中存储代理请求与被确定为能够对代理请求做出响应的代理中的至少一个的关联;以及基于所存储的代理请求与被确定为能够对代理请求做出响应的代理中的至少一个之间的关联生成代理选
择模型。在那些实施方式中的一些中,该方法还包括,继生成代理选择模型之后:在附加人与自动化助理对话中接收附加自然语言输入;基于附加自然语言输入和代理选择模型选择多个代理中的附加代理;以及响应于附加自然语言输入并且基于选择附加代理:向附加代理传送附加调用请求。附加调用请求将调用附加代理。响应于接收到附加自然语言输入,附加调用请求被可选地传送到仅所选择的附加代理。
22.在一些实施方式中,选择特定代理还基于:由参与对话的用户与特定代理的交互的量;由用户与特定代理的交互的新近度;和/或特定代理在用户群当中的排名或流行性。
23.在一些实施方式中,由一个或多个处理器执行的方法被提供并且包括,对于在人与自动化助理对话期间基于用户接口输入而生成的多个自然语言输入实例中的每一个:基于自然语言输入实例生成代理请求;针对代理请求从可用代理的语料库中选择多个代理的集合;经由一个或多个应用编程接口将代理请求传送到集合的多个代理中的每一个;响应于所述传送而从多个代理中的每一个接收对请求的对应响应;在一个或多个计算机可读介质中存储代理请求与对代理请求的响应之间的一个或多个关联。响应可每一个指示多个代理中的对应一个响应于代理请求而生成响应内容的能力。该方法还包括基于所存储的代理请求与其响应之间的关联生成代理选择模型。该方法还包括,继生成代理选择模型之后:接收用户的被导向自动化助理的后续自然语言输入作为用户与自动化助理之间的对话的一部分;基于后续自然语言输入和代理选择模型选择特定代理,其中特定代理是可用代理中的一个;以及响应于接收到后续自然语言输入并且响应于选择特定代理:经由应用编程接口中的一个或多个向所选择的特定代理传送调用请求。调用请求调用特定代理并且使特定代理生成特定响应内容以用于经由一个或多个用户接口输出设备呈现给用户。在一些实施方式中,响应于接收到后续自然语言输入,调用请求被传送到仅所选择的特定代理。
24.本文中所公开的技术的这些和其它实施方式可以可选地包括以下特征中的一个或多个。
25.在一些实施方式中,对于多个自然语言输入实例中的给定自然语言输入实例,响应的第一子集每一个指示生成响应内容的能力并且响应的第二子集每一个指示生成响应内容的无能力。在那些实施方式中的一些中,第二子集的响应基于指示错误或者指示未能满足阈值的置信量度指示无能力。
26.在一些实施方式中,代理选择模型是机器学习模型。在那些实施方式中的一些中,生成机器学习模型包括基于代理请求及其响应生成多个训练实例,以及基于训练实例对机器学习模型进行训练。生成训练实例中的每一个可包括:基于代理请求中的对应代理请求生成训练实例的训练实例输入;以及基于与对应的代理请求相关联地存储的响应生成训练实例的训练实例输出。在那些实施方式中的一些中,基于后续自然语言输入和代理选择模型选择特定代理包括:将基于后续自然语言输入的输入特征应用为机器学习模型的输入;基于输入在机器学习模型上生成包括用于特定代理的值的输出;以及基于用于特定代理的值选择特定代理。在那些实施方式的一些版本中,选择特定代理还基于一个或多个场境值。例如,基于一个或多个场境值选择特定代理可包括将一个或多个场境值应用为机器学习模型的附加输入。
27.在一些实施方式中,该方法还包括基于确定多个自然语言输入实例未能指定任何代理来选择多个自然语言输入实例。
28.在一些实施方式中,该方法还包括,对于多个自然语言输入实例中的给定自然语言输入实例:使用对代理请求的响应来选择集合的多个代理中的给定代理;以及将选择的调用请求传送到所选择的给定代理,其中所选择的调用请求基于给定自然语言输入实例。
29.在一些实施方式中,多个代理的集合是基于多个代理的集合每一个与在自然语言输入实例中表达的意图参数的值相关联而从可用代理的语料库中选择的。
30.在一些实施方式中,由一个或多个处理器执行的方法被提供并且包括,对于在人与自动化助理对话期间基于用户接口输入而生成的多个自然语言输入实例中的每一个:基于自然语言输入实例生成代理请求;针对代理请求从可用代理的语料库中选择多个代理的集合;将代理请求传送到集合的多个代理中的每一个;响应于传送而从多个代理的至少一个子集接收对请求的对应响应。该方法还包括根据响应中的每一个确定提供响应的代理响应于代理请求而生成响应内容的相对能力。该方法还包括在一个或多个计算机可读介质中存储代理请求与被确定为能够对代理请求做出响应的代理中的至少一个的关联。该方法还包括基于所存储的代理请求与被确定为能够对代理请求做出响应的代理之间的关联生成代理选择模型。该方法还包括,继生成代理选择模型之后:接收用户的被导向自动化助理的后续自然语言输入作为用户与自动化助理之间的对话的一部分;基于后续自然语言输入和代理选择模型选择特定代理,其中特定代理是可用代理中的一个;以及响应于选择特定代理:向所选择的特定代理传送调用请求。调用请求调用特定代理并且使特定代理生成特定响应内容以用于经由一个或多个用户接口输出设备呈现给用户。
31.本文中所公开的技术的这些和其它实施方式可以可选地包括以下特征中的一个或多个。
32.在一些实施方式中,在不向用户提供显式地恳求用户在特定代理与可用代理中的一个或多个其它代理之间进行选择的输出的情况下发生选择特定代理。
33.在一些实施方式中,代理选择模型是机器学习模型。在那些实施方式中的一些中,生成机器学习模型包括基于代理请求以及被确定为能够对代理请求做出响应的代理生成多个训练实例;基于训练实例对机器学习模型进行训练。生成训练实例中的每一个可包括基于代理请求中的对应代理请求生成训练实例的训练实例输入;以及基于被确定为能够对请求做出响应的代理中的至少一个生成训练实例的训练实例输出。在那些实施方式中的一些中,基于后续自然语言输入和代理选择模型选择特定代理包括:将基于后续自然语言输入的输入特征应用为机器学习模型的输入;基于输入在机器学习模型上生成包括特定代理的值的输出;以及基于特定代理的值选择特定代理。
34.此外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作来执行存储在相关存储器中的指令,并且其中指令被配置成使得前述方法中的任一个的执行。一些实施方式还包括存储计算机指令的一个或多个非暂时性计算机可读存储介质,所述指令可由一个或多个处理器执行来执行前述方法中的任一个方法。
35.应该了解的是,在本文中更详细地描述的前述构思和附加构思的所有组合都被设想为是本文中所公开的主题的一部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合被设想为是本文中所公开的主题的一部分。
附图说明
36.图1是可以实现本文中所公开的实施方式的示例环境的框图。
37.图2是可以被包括在图1的代理选择模块中的各种组件的示例。
38.图3图示代理请求和响应如何可在选择特定代理时被利用和/或存储在记录数据库中以便在生成代理选择模型时使用的示例。
39.图4是图示根据本文中所公开的实施方式的选择要调用的单个代理的示例方法的流程图。
40.图5是图示根据本文中所公开的实施方式的生成代理选择模型的示例方法的流程图。
41.图6是图示根据本文中所公开的实施方式的选择要调用的单个代理的另一示例方法的流程图。
42.图7是图示根据本文中所公开的实施方式的可以由代理执行的示例方法的流程图。
43.图8和图9每一个图示根据本文中所公开的实施方式的用户;客户端设备;以及用户、与客户端设备相关联的自动化助理和代理之间的示例对话。
44.图10图示根据本文中所公开的实施方式的附加客户端设备;以及客户端设备的用户、与客户端设备相关联的自动化助理和代理之间的示例对话。
45.图11图示计算设备的示例架构。
具体实施方式
46.在一些情形中,为了经由自动化助理为特定意图而调用特定代理,用户必须提供显式地调用该特定代理的输入。例如,为了为“餐厅预订”意图而调用名为“假想代理”的代理,用户必须知道针对该代理说出“调用短语”,诸如“用假想代理预订餐厅”。此类显式调用要求用户在一开始就知道哪一个代理最适于该意图,并且经由与代理的交互将用户直接地送到该代理以用于该意图的尝试解决。
47.然而,情况可能常常是用户不知道各种代理的可用性,并且对于各种自动化助理接口来说,在常常受约束的自动化助理接口中向用户显式地提供可用代理和相关功能性的列表可能是不切实际的和/或不合需要的。例如,一些自动化助理接口是“仅语音”的,并且对用户而言针对代理和相关功能性“读取列表”可能是不实际的和/或不合需要的。此外,情况甚至可能是自动化助理不知道各种可用代理的能力。
48.本文中所公开的各种实现方式使得能够响应于用户的“模糊”自然语言输入—诸如指示要期望使代理参与但是未指示要特定代理参与的自然语言输入,而选择并调用适当的代理。
49.现在转向图1,图示了可以实现本文中所公开的技术的示例环境。该示例环境包括客户端设备106、自动化助理110和多个代理140a-n。客户端设备106可以是例如独立语音激活的扬声器设备、台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备和/或用户的包括计算设备的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替选客户端设备。
50.尽管自动化助理110在图1中被图示为与客户端设备106分立,然而在一些实施方式中自动化助理110的全部或各方面可以由客户端设备106实现。例如,在一些实施方式中输入处理引擎112可以由客户端设备106实现。在自动化助理110的一个或多个(例如,所有)方面由远离客户端设备106的一个或多个计算设备实现的实施方式中,客户端设备106和自动化助理110的那些方面经由一个或多个网络(诸如广域网(wan)(例如,互联网))进行通信。
51.尽管结合自动化助理110图示仅一个客户端设备106,然而在许多实施方式中自动化助理110可以是远程的并且可以与多个用户的多个客户端设备中的每一个对接。例如,自动化助理110可以经由不同的会话管理与多个设备中的每一个的通信并且可以并行管理多个会话。例如,可以将一些实施方式中的自动化助理110实现为采用云基础设施的基于云的服务,例如,使用服务器场或运行适合于处理来自多个用户的大量请求的软件的高性能计算机的集群。然而,为了简单起见,相对于单个客户端设备106描述本文中的许多示例。
52.自动化助理110与代理140a-n分立并且经由api和/或经由一个或多个通信信道(例如,客户端设备106和/或网络(诸如wan)的内部通信信道)与代理140a-n进行通信。在一些实施方式中,代理140a-n中的一个或多个每一个由与管理自动化助理110的一方分立的相应方来管理。
53.代理140a-n中的一个或多个可以每一个可选地直接地或间接地提供用于存储在代理数据库152中的数据。然而,情况可能常常是某些代理140a-n不提供某些数据、提供不完整的数据、并且/或者提供不准确的数据。本文中所公开的某些实施方式可以通过在为模糊用户输入选择适当的代理时利用各种附加技术来减轻这些情形。针对给定代理提供的数据可以定义例如可由给定代理解析的意图。此外,针对给定代理提供的数据可以针对每一个意图来定义可由该代理针对为所述意图所定义的多个意图位参数来处理的可用值。在一些实施方式中,自动化助理110和/或其它组件可以定义意图,以及可以针对意图位参数中的每一个定义的可接受值。例如,可以经由自动化助理110所维护的api定义这种准则。代理140a-n中的一个或多个然后可以向自动化助理110和/或其它组件提供(例如,通过wan传送)其意图及其意图位参数的可用值,所述自动化助理110和/或其它组件可以验证数据并将其存储代理数据库152中。代理数据库152可以附加地或可替选地存储各种代理的其它特征,诸如代理的排名、代理的流行性量度等。
54.自动化助理110包括输入处理引擎112、本地内容引擎130、代理引擎120和输出引擎135。在一些实施方式中,可以省略、组合并且/或者在与自动化助理110分立的组件中实现自动化助理110的一个或多个引擎。此外,自动化助理110可以包括为了简单起见在本文中未图示的附加引擎。
55.自动化助理110从客户端设备106接收用户输入的实例。例如,自动化助理110可以以流式音频记录的形式接收自由形式自然语言语音输入。流式音频记录可以由客户端设备106响应于从客户端设备106的麦克风接收到的信号而生成,所述麦克风捕获客户端设备106的用户的话音输入。作为另一示例,自动化助理110可以在一些实施方式中接收自由形式自然语言键入输入和/或甚至结构化(非自由形式)输入。在一些实施方式中,用户输入可以由客户端设备106生成并且/或者响应于由客户端设备106的用户对自动化助理110的显式调用被提供给自动化助理110。例如,调用可以是检测到客户端设备106对用户的某些语
音输入(例如,诸如“嘿助理”的自动化助理110热词/短语)、用户与硬件按钮和/或虚拟按钮的交互(例如,对硬件按钮的轻敲、对由客户端设备106显示的图形接口元素的选择)和/或其它特定用户接口输入。
56.自动化助理110响应于从客户端设备106接收到用户输入的实例而提供输出的实例。输出的实例可以是例如要由设备106可听地呈现的音频(例如,经由客户端设备106的扬声器输出)、要由设备106图形地呈现的文本和/或图形内容(例如,经由客户端设备106的显示器渲染)等。如本文中所描述的,输出的一些实例可以基于由自动化助理110生成的本地响应内容,然而输出的其它实例可以基于由代理140a-n中的所选一个生成的响应内容。
57.自动化助理110的输入处理引擎112处理经由客户端设备106接收到的自然语言输入和/或其它用户输入并且生成注释输出以供由自动化助理110的一个或多个其它组件(诸如本地内容引擎130和/或代理引擎120)使用。例如,输入处理引擎112可以处理由用户经由客户端设备106的一个或多个用户接口输入设备生成的自然语言自由形式输入。所生成的注释输出包括自然语言输入以及可选地自然语言输入的一个或多个(例如,所有)词项的注释。作为另一示例,输入处理引擎112可以附加地或可替选地包括语音至文本模块,所述语音至文本模块接收语音输入的实例(例如,形式为数字音频数据),并且将语音输入转换成包括一个或多个词或短语的文本。在一些实施方式中,语音至文本模块是流式语音至文本引擎。语音至文本模块可以依靠一个或多个存储的语音至文本模型(也称为语言模型),所述语音至文本模型每一个可以对音频信号与语言中的语音单位以及语言中的词序列之间的关系进行建模。
58.在一些实施方式中,输入处理引擎112被配置成在自然语言输入中识别并注释各种类型的语法信息。例如,输入处理引擎112可以包括被配置成用其语法角色来注释词项的词性标记器。例如,词性标记器可以利用诸如“名词”、“动词”、“形容词”、“代词”等的其词性标记每一个词项。另外,例如,在一些实施方式中输入处理引擎112可以附加地和/或可替选地包括依赖性解析器,所述依赖性解析器被配置成确定自然语言输入中的词项之间的句法关系。例如,依赖性解析器可以确定哪些词项修饰句子的其它词项、主语和动词等(例如,解析树)——并且可以对此类依赖性进行注释。
59.在一些实施方式中,输入处理引擎112可以附加地和/或可替选地包括实体标记器,所述实体标记器被配置成注释一个或多个分段中的实体引用,诸如对人群、组织、位置等的引用。实体标记器可以以高粒度水平(例如,以使得能够识别对诸如人群的实体类的所有引用)和/或较低粒度水平(例如,以使得能够识别对诸如特定人的特定实体的所有引用)注释对实体的引用。实体标记器可以依靠自然语言输入的内容来解析特定实体并且/或者可以可选地与知识图或其它实体进行通信以解析特定实体。
60.在一些实施方式中,输入处理引擎112可以附加地和/或可替选地包括共指解析器,所述共指解析器被配置成基于一个或多个场境线索对对相同实体的引用进行分组或“聚类”。例如,可以利用共指解析器来在用户输入的实例中解析词项“它”,该用户输入紧接在前的用户输入实例中在前提到的“餐厅a”。
61.在一些实施方式中,输入处理引擎112的一个或多个组件可以依靠来自输入处理引擎112的一个或多个其它组件的注释。例如,在一些实施方式中,命名实体标记器在对特定实体的所有提及进行注释时可以依靠来自共指解析器和/或依赖解析器的注释。另外,例
如,在一些实施方式中,共指解析器在对针对相同实体的引用进行聚类时可以依靠来自依赖解析器的注释。在一些实施方式中,在处理特定自然语言输入时,输入处理引擎112的一个或多个组件可以使用特定自然语言输入之外的相关在先输入和/或其它相关数据来确定一个或多个注释。
62.输入处理引擎112可以试图辨别用户输入的语义或含义并且向本地内容引擎130和/或代理引擎120提供用户输入的语义指示以供由那些引擎使用。输入处理引擎112可以依靠一个或多个存储的语法模型来将文本(或其它输入)映射到特定动作并且识别约束此类动作的执行的属性,例如,此类动作的输入变量。
63.当该用户输入与“本地动作”相关联(与代理动作相反)时,本地内容引擎130可以生成对接收到的用户输入的响应。在一些实施方式中,输入处理引擎112确定用户输入是与本地动作还是代理动作相关联。本地内容引擎130可以与输入处理引擎112相结合地工作并且执行如通过由输入处理引擎112提供的解析的文本(例如,动作和动作参数)所指示的一个或多个动作。对于本地意图,本地内容引擎130可以生成本地响应内容并且将该本地响应内容提供给输出引擎135以便提供对应输出以用于经由设备106呈现给用户。本地内容引擎130可以利用一个或多个存储的本地内容模型154用于生成本地内容和/或执行其它动作。本地内容模型154可以例如并入用于创建本地响应内容的各种规则。在一些实施方式中,本地内容引擎130可以在生成本地响应内容时与一个或多个其它“本地”组件(诸如本地对话模块(其可以与对话模块126相同或类似))进行通信。
64.输出引擎135向客户端设备106提供输出的实例。输出的实例可以基于本地响应内容(来自本地内容引擎130)和/或来自代理140a-n中的一个的响应内容(当自动化助理110作为媒介时)。在一些实施方式中,输出引擎135可以包括将响应内容的文本分量转换为音频格式的文本至语音引擎,并且由输出引擎135提供的输出具有音频格式(例如,作为流式音频)。在一些实施方式中,响应内容可能已经具有音频格式。在一些实施方式中,输出引擎135附加地或可替选地提供文本回复内容作为输出(可选地用于由设备106转换为音频)并且/或者提供其它图形内容作为输出以用于由客户端设备106图形显示。
65.代理引擎120包括参数模块122、代理选择模块124、对话模块126和调用模块128。在一些实施方式中,可以省略、组合并且/或者在与代理引擎120分立的组件中实现代理引擎120的模块。此外,代理引擎120可包括为了简单起见在本文中未图示的附加模块。
66.参数模块122确定诸如意图参数、意图位参数、场境参数等的参数的值。参数模块122基于用户在与自动化助理110的对话中提供的输入并且可选地基于客户端设备场境来确定这些值。意图参数的值指示通过用户在对话中提供的输入所指示的和/或通过其它数据所指示的意图。例如,对话意图的值可以是多个可用意图中的一个,诸如“预订”、“预订餐厅预约”、“预订旅馆”、“购买专业服务”、“讲笑话”、“提醒”、“购买旅行服务”和/或其它意图。参数模块122可基于在对话中提供给自动化助理的最近的自然语言输入和/或在对话中提供的过去的自然语言输入来确定意图。
67.意图位参数的值指示意图的更细粒度参数的值。例如,“预订餐厅预约”意图可以具有针对“人数”、“日期”、“时间”、“烹饪类型”、“特定餐厅”、“餐厅区域”等的意图位参数。参数模块122可基于用户在对话中提供的输入和/或基于其它考虑事项(例如,用户设定偏好、过去的用户交互)来确定意图位参数的值。例如,“预订餐厅预约意图”的一个或多个意
图位参数的值可基于在对话中提供给自动化助理的最近的自然语言输入和/或在对话中提供的过去的自然语言输入。例如,“为我预订今晚6:30的餐厅”的自然语言输入可由参数模块122用来确定意图位参数“日期”的值为“今天的日期”,和意图位参数“时间”的值为“18:30”。应理解的是,对于许多对话来说,参数模块122可以不解析意图的意图位参数中的全部(或甚至任一个)的值。此类值可以由被调用来满足意图的代理来解析(如果有的话)。
68.用于场境参数的值可包括例如客户端设备场境值,诸如基于以下各项的值:客户端设备的用户的历史交互、客户端设备上的当前渲染和/或最近渲染的内容、客户端设备的位置、当前日期和/或时间等。
69.对话模块126可在经由客户端设备106与用户交互来选择特定代理时利用来自输入处理引擎112的一个或多个语法模型、规则和/或注释。参数模块122和/或代理选择模块124可以可选地与对话模块126交互以生成用于恳求与选择特定代理有关的进一步用户输入的提示。可以提供由对话模块126生成的任何提示以供由输出引擎135呈现给用户并且接收进一步响应用户输入。进一步用户输入可以每一个由参数模块122(可选地如由输入处理引擎112注释)和/或代理选择模块124分析以帮助选择特定代理。作为一个示例,三个候选代理可以由代理选择模块124根据本文中所描述的技术最初选择为潜在代理,并且对话模块126可以向用户呈现恳求用户对三个候选代理中的特定一个做出选择的一个或多个提示。代理选择模块124然后可基于用户选择来选择特定代理。
70.代理选择模块124利用由参数模块122确定的值来从代理140a-n中选择要调用的特定代理。代理选择模块124可以在选择特定代理时附加地或可替选地利用其它准则。例如,代理选择模块124可以在选择特定代理时利用选择模型数据库156的一个或多个选择模型并且/或者使用代理数据库152。
71.参考图2,图示了可以被包括在代理选择模块124中的各种组件124a-e的示例。
72.请求组件124a可向代理140a-n中的一个或多个传送“实况”代理请求并且利用来自那些代理的响应(和/或缺少响应)来确定这些代理中的每一个响应于代理请求而生成响应内容的能力。例如,请求组件124a可向(例如,在代理数据库152中)与符合由参数模块122确定的意图参数的值的意图相关联的那些代理140a-n传送实况代理请求。如本文中所描述的,代理请求可基于由参数模块122确定的参数的值。代理请求可与调用请求类似(或相同),但不会导致任何代理的立即调用。响应于代理请求来自代理的响应(或缺少响应)可直接地或间接地指示该代理响应于代理请求而生成响应内容的能力。
73.代理场境组件124b确定代理140a-n(诸如(例如,在代理数据库152中)与和由代理模块122确定的意图参数的值相符合的意图相关联的那些代理140a-n)中的一个或多个的特征。代理场境组件124b可从代理数据库152中确定特征。代理的特征可包括例如特定代理的存储的排名(例如,按用户群的排名)、特定代理的一般流行性、特定代理针对由参数模块122确定的意图的流行性等。
74.客户端场境组件124c确定与客户端设备106的用户(和/或客户端设备106它本身)相关联的特征,诸如基于客户端设备的用户与自动化助理110的历史交互的特征。例如,特征可包括基于以下各项的特征:各种代理中的每一个被用户利用的频率;各种代理中的每一个最近如何被用户利用;客户端设备上的当前渲染和/或最近渲染的内容(例如,存在于渲染的内容中的实体、最近利用的应用)、客户端设备的位置、当前日期和/或时间等。
75.选择模型组件124d利用选择模型数据库156的一个或多个选择模型来确定可能适于调用的代理140a-n中的一个或多个。例如,选择模型组件124d可利用选择模型来针对多个代理140a-n中的每一个确定指示调用该代理的适当性的一个或多个概率或其它度量。选择模型组件124d可对选择模型中的每一个应用由参数模块122确定的参数值和/或由组件124a、124b和/或124c确定的值中的一个或多个。
76.选择组件124e在选择一个或多个代理140a-n时利用由组件124a、124b、124c和/或124d提供的输出。在一些实施方式和/或情形中,选择组件124e仅选择代理140a-n中的单个代理,而不提示用户在多个代理之间选取。在一些其它实施方式和/或情形中,选择组件124e可以选择代理140a-n的子集并且(例如,经由由对话模块126在对话中生成的提示)向用户提供恳求用户提供用户接口输入来选择子集的代理中的一个的提示。选择组件124e可向调用模块128提供所选择的代理的指示。
77.调用模块128向由代理选择模块124选择的(代理140a-n中的)代理传送包括由参数模块122确定的参数的调用请求。所传送的调用请求调用特定代理。如本文中所描述的,在一些情形中当特定代理被调用时,自动化助理110可以仍然充当媒介。例如,在充当其中用户的自然语言输入是语音输入的媒介时:自动化助理110的输入处理引擎112可以将语音输入转换为文本;自动化助理110可以将文本(以及可选地来自输入处理引擎112的文本的注释)传送到特定代理,并且从该特定代理接收响应内容;以及输出引擎135可以提供基于响应内容的输出以用于经由客户端设备106呈现给用户。另外,例如,在充当媒介时,自动化助理110可以附加地或可替选地分析用户输入和/或响应内容以确定与代理的对话是否应该被终止、转移到替选代理等。如本文中另外描述的,在一些情形中对话可以被实际上转移到代理(一旦被转移就不用该自动化助理110充当媒介),并且在发生一个或多个条件时转移回到自动化助理110。另外,如本文中另外描述的,在一些情形中调用的代理可由客户端设备106执行并且/或者被客户端设备106带到前端(例如,其内容可接管客户端设备106的显示)。
78.代理140a-n中的每一个均可以包括场境参数引擎、内容引擎和/或其它引擎。此外,在许多实施方式中代理可以在生成响应内容时访问各种存储的模型和/或其它资源(例如,它自己的语法模型和/或内容模型)。
79.图1中另外图示的是模型引擎150和记录数据库158。如在本文中更详细地描述的,记录数据库158可以包括基于各种自动化助理110与代理140a-n的交互的存储的信息。模型引擎150可在生成选择模型数据库156的一个或多个选择模型时利用这种信息。在本文中提供附加描述。
80.现在转向图3-10,将描述对图1的环境的各种组件的附加描述。
81.图3提供代理请求和响应在选择特定代理时可以如何被利用和/或存储在记录数据库158中以用于在生成代理选择模型使用的示例。
82.在图3中,自然语言输入171由自动化助理110的输入处理引擎112接收。作为工作示例,自然语言输入171可以是“4人桌,户外座位,餐厅a”。输入处理引擎112生成带注释的输入172并且将该带注释的输入172提供给参数模块122。
83.参数模块122基于带注释的输入172和/或基于客户端设备场境生成用于参数的值173。继续工作示例,参数模块122可生成意图参数的值“餐厅预订”、座位偏好意图位参数的
值“户外”以及餐厅位置意图位参数的值“餐厅a”。
84.请求组件124a基于参数的值173生成代理请求。如通过图3的“ar”有向箭头所指示的,请求组件124a将代理请求传送到多个代理140a-d中的每一个。在一些实施方式中,请求组件124a可基于确定它们与“餐厅预订”意图相关联来选择代理140a-d。在一些其它实施方式中,请求组件124a可不顾意图将代理请求传送到代理140a-d和/或附加代理(例如,它可被传送到所有代理140a-n)。例如,可被各种代理处理的意图可以是未知的并且/或者该意图可能无法从对话导出。
85.如通过图3的“r”有向箭头所指示的,请求组件124a响应于将代理请求传送到代理140a-d而从代理140a-d中的每一个接收响应。所述响应每一个指示代理140a-d中的对应一个解析代理请求的能力。例如,来自给定代理的响应可以是二进制指示、非二进制置信量度、实际响应内容(或无内容/错误)等。尽管在图3中图示了来自这些代理中的每一个的响应,然而在一些实施方式或情形中代理140a-d中的一个或多个可能不响应——这可以指示对应代理无法响应(例如,代理不能处理代理请求和/或离线)。代理请求在无需代理140a-d的主动调用的情况下被传送到代理140a-d。
86.请求组件124a在记录数据库158中存储响应(和/或基于响应做出的确定)和代理请求。例如,请求组件124a可存储代理请求以及对代理140a-d中的每一个的响应的指示。例如,请求组件124a可存储代理请求以及代理140a无法响应、代理140b能够响应、代理140c无法响应的指示等。
87.请求组件124a还将响应174(和/或基于响应做出的确定)提供给选择组件124e。
88.选择组件124e利用响应174来选择特定代理176,并且可以可选地附加地利用由代理场境组件124b和/或客户端场境组件124c提供的特征。作为一个示例,选择组件124e可以基于仅响应174选择特定代理176(例如,选择具有最指示响应能力的响应的代理)。作为另一示例,选择组件124e可以利用响应174以及由代理场境组件124b提供的代理140a-d中的一个或多个的排名。例如,选择组件124e可以最初选择代理140a-d中的其响应最具响应能力指示性的两个,然后基于所选择的比未选择的一个排名更高而选择那些中的一个。作为又一个示例,选择组件124e可以利用响应174和由客户端场境组件124c提供的历史使用特征。例如,选择组件124e可以最初选择代理140a-d中的其响应最具响应能力指示性的两个,然后基于所选择的一个被与自动化助理110交互的用户更频繁地和/或最近利用来选择那些中的一个。
89.选择组件124e将特定代理176提供给调用模块128。调用模块128可调用特定代理。例如,调用模块128可通过向特定代理传送基于参数的值173的调用请求来调用特定代理。另外,例如,调用模块128可使用输出引擎135来提供基于来自特定代理的已经接收到的响应内容的输出——并且可以可选地调用特定代理以便响应于进一步接收的用户接口输入(若有的话)而生成进一步响应内容,所述进一步接收的用户接口输入是响应于提供该输出而接收到的。
90.图4是图示根据本文中所公开的实施方式的示例方法400的流程图。为了方便,参考执行操作的系统描述图4的流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如自动化助理110的一个或多个组件。此外,虽然方法400的操作被以特定顺序示出,但是这不意在为限制性的。可以重新排序、省略或者添加一个或多个操作。
91.在块450处,系统接收用户输入。在一些实施方式中,在块450处接收到的用户输入是自由形式的自然语言输入。
92.在块452处,系统确定所接收到的用户输入是否指示代理动作。例如,系统可以解析接收到的自然语言输入的文本(或从接收到的音频自然语言输入转换的文本),并且确定经解析的文本是否映射到任何代理动作。例如,系统可以基于包括在文本中的词项/短语是否与和代理动作相关联地存储的词项/短语匹配来确定经解析的文本是否映射到任何代理动作。另外,例如,系统可以确定从文本导出的一个或多个实体是否与和代理动作相关联地存储的一个或多个实体匹配。作为又一个实例,如果系统确定它无法响应于输入而生成本地响应内容,则系统可以假定输入映射到代理动作。注意的是,在一些实施方式中,即便当系统能够响应于输入而生成本地响应内容时,系统也可以确定输入映射到代理动作。例如,系统可以确定它能够生成本地响应内容并且一个或多个代理还能潜在地生成代理响应内容。在那些示例中的一些中,系统可包括要在块462、464、466和468(在下面描述)中考虑的代理当中的本地代理。
93.如果系统在块452处确定代理意图动作未被指示,则系统进行到块454、456和458。在块454处,系统在没有代理的调用的情况下生成本地响应内容。例如,系统可以利用系统的本地语法模型和/或本地内容模型来生成本地响应内容。在块456处,系统提供基于本地响应内容的输出。例如,输出可以是本地响应内容或本地响应内容的转换(例如,文本至话音转换)。输出被提供用于经由客户端设备呈现(例如,可听的或图形的)。在块458处,系统等待附加语音输入并且在接收到附加语音输入时往回进行到块450。
94.如果系统在块452的迭代时确定代理动作被指示,则系统进行到块460。在块460处,系统确定是否在块450的用户输入中指定了单个代理并且/或者可以其它方式不含糊地解析单个代理。
95.如果系统在块460处确定单个代理被指示,则系统进行到块474。
96.如果系统在块460处确定单个代理未被指示,则系统进行到块462、464、466和468。在块462处,系统基于块450的最近迭代中的用户输入和/或基于在先用户输入和/或其它准则生成代理请求。在块464处,系统从可用代理的语料库中选择多个代理。例如,系统可以选择语料库的所有代理或代理的子集(例如,具有通过代理请求指示的意图的那些)。代理可以仅包括非本地代理和/或本地和非本地代理。在块466处,系统将块462的代理请求传送到在块464中选择的代理中的每一个。
97.在块468处,系统响应于块466的传送而从代理接收一个或多个响应。在块470处,系统存储在块468处接收到的响应(或基于响应做出的确定)与在块466处传送的代理请求之间的关联。可以在生成代理选择模型时使用这种存储的关联(例如,在图5的方法500中)。在块472处,系统基于在块468处接收到的响应和/或基于其它准则选择单个代理。
98.在一些实施方式中,在块472处系统使用在块468处接收到的响应来选择代理的子集,提供子集的代理的指示作为输出以供呈现给用户,并且利用响应于该输出的用户选择来从子集的代理中选择单个代理。在那些实施方式的某个版本中,系统还可以在块470处存储由用户选择的单个代理的指示。代理的指示可以是例如代理的名称或其它标识符和/或包括在块468处接收到的响应中的代理的响应内容的指示。
99.在块474处,系统向单个代理传送调用请求。单个代理可以是在块472处选择的一
个(块460处的确定为“否”),或在用户输入中指示的单个代理(块460处的确定为“是”)。例如,系统可以通过一个或多个通信信道传送调用请求并且可以可选地利用api。在一些实施方式中,调用请求包括如本文中所描述的用于各种调用参数的值。在一些实施方式中,系统可以在从块472进行到块474之前首先提示用户确认用户期望利用单个代理。在那些实施方式中,系统可以在从块472进行到块474之前响应于该提示而要求肯定的用户输入。在其它实施方式中,系统可以在不用首先提示用户确认的情况下自动地从块472进行到块474。
100.在可选块476处,系统可基于用户与单个代理的交互更新全局参数值。例如,由用户提供给单个代理的进一步自然语言输入可以导致单个代理定义先前未定义的全局参数(例如,特定意图位参数)的值——或者可以导致单个代理修改参数的先前定义的值。单个代理可以将这样更新的值提供给系统并且系统可以更新全局参数值以反映经更新的值。
101.在块478处,系统接收代理切换输入。指示要切换到不同代理的期望的代理切换输入是从用户(例如,自然语言输入)输入的。例如,诸如“与另一代理交谈”、“不同代理”、“用代理x尝试它”等的输入可以是代理切换输入。
102.响应于接收到代理切换输入,在块480处系统向替选代理传送调用请求。对替选代理的调用请求调用替选代理来代替在块474中调用的单个代理。调用请求可可选地包括在块476处更新的经更新的全局参数值。以这种方式,可将通过与第一代理的交互导出的值转移到随后调用的代理,从而提高与随后调用的代理的交互的效率。在一些情形中,选择向哪一个替选代理传送附加调用请求可以基于代理切换输入它本身(例如,如果它通过名称或特性来引用替选代理中的一个)和/或基于其它因素(例如,可以基于经更新的全局参数值和被利用来选择替选代理的响应来再次传送代理请求)。在一些实施方式中,在块480处将调用请求传送到替选代理之前,系统可以检查以确保替选代理很可能能够生成响应内容。例如,系统可向替选代理传送代理请求并基于响应做出这样的确定,并且/或者基于代理数据库152中的代理的信息做出这样的确定。
103.图5是图示根据本文中所公开的实施方式的另一示例方法500的流程图。图5图示基于代理请求和相关联响应生成选择模型数据库156中的选择模型的示例。在图5的示例中,选择模型是机器学习模型,诸如深度神经网络模型。
104.为了方便,参考执行操作的系统描述图5的流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如模型引擎150。此外,虽然方法500的操作被以特定顺序示出,但是这不意在为限制性的。可以重新排序、省略或者添加一个或多个操作。
105.在块552处,系统选择代理请求和相关联响应。作为一个示例,可以从记录数据库158中选择代理请求和相关联响应。在一些实施方式中,所选择的代理请求和相关联响应可能已由请求组件124a像图3中所图示的那样生成并且/或者可能已在图4的方法400的块470的迭代中被存储。在一些其它实施方式中,可以利用通过其它技术生成的代理请求和/或相关联响应。例如,可以将代理请求传送到代理,并且以“非实况”方式接收响应。换句话说,代理请求和响应不一定是在过去的人与自动化助理对话期间主动地选择特定代理时生成的那些。作为一个非限定实例,代理请求可包括基于紧接在作为“裸”调用的调用之后提供给代理的自然语言输入的那些。例如,可利用紧接在“代理a”的裸调用之后提供给“代理a”的自然语言输入来生成此后被传送到多个附加代理的代理请求。
106.作为工作示例,假定在块552的迭代时选择的代理请求包括意图参数的值“餐厅预
订”、座位偏好意图位参数的值“户外”以及餐厅位置意图位参数的值“餐厅a”。进一步假定所选择的相关联响应包括对代理请求的“是”(可生成响应内容)或“否”(不能生成响应内容)的二进制响应。特别地,相关联响应指示代理1-5生成了“是”的响应并且代理6-200生成了“否”的响应。
107.在块554处,系统基于所选择的代理请求和相关联响应生成训练实例。块554包括子块5541和5542。
108.在子块5541处,系统基于代理请求并且可选地基于附加值生成训练实例的训练实例输入。继续工作示例,系统可生成包括用于以下各项的代理请求的值的训练实例输入:意图参数、座位偏好意图位参数和餐厅位置意图位参数。对于代理请求未定义的训练实例输入的维度,系统可在训练实例中包括“空”值(或其它值)。例如,如果要训练的机器学习模型的输入维度包括用于其它意图位参数的输入(相同意图和/或其它意图),则空值可用在此类输入在训练实例中。
109.在子块5542处,系统基于响应生成训练实例的训练实例输出。继续工作示例,系统可生成训练实例输出,所述训练实例输出对于与代理1-5(其生成了“是”的响应)相对应的输出维度中的每一个包括“1”(或其它“正值”)而对于对应于代理6-200(其生成了“否”的响应)的输出维度中的每一个包括“0”(或其它“负”值)。
110.在块556处,系统确定是否存在附加代理请求和相关联响应。如果是这样的话,则系统返回到块552并且选择另一代理请求和相关联响应,然后基于所选择的代理请求和相关联响应生成另一训练实例。
111.可以紧跟块552、554和556的多次迭代之后或者与其并行地执行块558-566。
112.在块558处,系统选择在块554的迭代中生成的训练实例。
113.在块560处,系统将训练实例应用为机器学习模型的输入。例如,机器学习模型可具有对应于在块5541处生成的训练实例输入的维度的输入维度。
114.在块562处,系统基于所应用的训练实例输入在机器学习模型上生成输出。例如,机器学习模型可具有对应于在块5541处生成的训练实例输出的维度的输出维度(例如,输出的每一个维度可对应于代理和/或代理和意图)。
115.在块564处,系统基于所生成的输出和训练实例输出更新机器学习模型。例如,系统可基于在块562处生成的输出和训练实例输出确定错误,并且在机器学习模型上反向传播错误。
116.在块566处,系统确定是否存在一个或多个附加未处理的训练实例。如果是这样的话,则系统往回进行到块558,选择附加训练实例,然后基于附加未处理的训练实例执行块560、562和564。在一些实施方式中,在块566处如果已经满足一个或多个训练准则(例如,已经发生阈值数目的周期(epoch)并且/或者已经发生训练的阈值持续时间),则系统可以确定不处理任何附加未处理的训练实例。尽管相对于非批量学习技术描述方法500,然而可以附加地和/或可替选地使用批量学习。
117.此后可利用根据方法500训练的机器学习模型来基于当前对话预测多个可用代理(以及可选地意图)中的每一个的概率_其中这些概率中的每一个均指示代理能够适当地处理基于对话的调用请求的概率。例如,可将基于当前对话的值应用为经训练的机器学习模型的输入以在模型上生成输出——其中输出包括每一个对应于代理的多个值并且这些值
每一个指示对应代理能够在被调用情况下生成适当的响应内容的概率(例如,从0到1的值)。例如,如果200个可用代理通过模型来表示,则可以在输出中包括200个值,其中每一个值对应于代理中的一个并且指示该代理能够生成适当的响应内容的概率。以这种方式,经训练的机器学习模型有效地提供对各种代理通过基于那些代理对各种真实世界代理请求的响应而进行训练的能力的洞察。经训练的机器学习模型可用于基于输入确定各种代理生成对输入的响应的能力——即便当代理数据库152和/或其它资源未显式地指示那些代理对于输入的能力时。
118.图5图示可被生成并利用的代理选择模型的一个示例。然而,如本文中所描述的,可在选择特定代理时利用附加和/或替选代理选择模型。此类附加和/或替选代理选择模型可以可选地是基于与关于图5所描述的那些训练实例不同的训练实例而训练的机器学习模型。
119.作为一个示例,可基于各种用户对代理的过去的显式选择生成选择模型并且可以附加地或可替选地在选择特定代理时利用这样的选择模型。例如,如关于图4的块472所描述的,在一些实施方式中可以向用户呈现多个代理的指示并且可利用用户对多个代理中的单个代理的选择来从多个代理中选择单个代理。可以利用多个用户的此类显式选择来生成选择模型。例如,可生成与上面关于方法500所描述的那些训练实例类似的训练实例,但是可基于由用户选择的代理生成每一个训练实例的训练实例输出。例如,训练实例“1”(或其它“正值”)可被用于与所选择的代理相对应的输出维度并且“0”(或其它“负”值)可被用于对应于所有其它代理的输出维度中的每一个。另外,例如,训练实例“1”(或其它“正值”)可被用于与所选择的代理相对应的输出维度,“0.5”(或其它“中间值”)可被用于与呈现给用户但未选择的其它代理相对应的输出维度,并且“0”(或其它“负”值)可被用于对应于所有其它代理的输出维度中的每一个。以这种和其它方式,可在生成一个或多个代理选择模型时利用用户对代理的显式选择。
120.图6是图示根据本文中所公开的实施方式的另一示例方法600的流程图。图6图示在选择要调用的单个代理时利用代理选择模型(诸如基于图5的方法500而生成的代理选择模型)的示例。
121.为了方便,参考执行操作的系统描述图6的流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如自动化助理110的一个或多个组件。此外,虽然方法600的操作被以特定顺序示出,但是这不意在为限制性的。可以重新排序、省略或者添加一个或多个操作。
122.在块650处,系统接收用户输入。块650可以共享与图4的块450有共同之处的一个或多个方面。
123.在块652处,系统确定所接收到的用户输入是否指示代理动作。块652可以共享与图4的块452有共同之处的一个或多个方面。
124.如果系统在块652处确定代理意图动作未被指示,则系统进行到块654、656和658。在块654处系统在没有调用代理的情况下生成本地响应内容。在块656处,系统提供基于本地响应内容的输出。在块658处,系统等待附加语音输入并且在接收到附加语音输入时往回进行到块650。块654、656和658可以共享与图4的块454、456和458有共同之处的一个或多个方面。
125.如果系统在块652的迭代时确定代理动作被指示,则系统进行到块660。在块660处,系统确定是否在用户输入650中指定了单个代理并且/或者可以其它方式不含糊地解析单个代理。块660可以与图4的块460共享一个或多个方面。
126.如果系统在块660处确定单个代理被指示,则系统进行到块680。
127.如果系统在块660处确定单个代理未被指示,则系统进行到块672、674、676和678。在块672处,系统基于650的最近迭代中的用户输入和/或基于在先用户输入和/或其它准则生成输入特征。例如,系统可生成输入特征,所述输入特征包括用于基于用户输入而确定的参数的值,诸如意图参数、意图位参数等的值。另外,例如,系统可基于当前客户端设备场境生成值。
128.在块674处,系统将输入特征应用于代理选择模型。
129.在块676处,系统基于输入到代理选择模型的应用生成多个代理中的每一个的概率。这些概率中的每一个均指示对应代理生成适当的响应内容的能力。
130.在块678处,系统基于概率和/或其它准则选择单个代理。在一些实施方式中,系统基于生成适当的响应内容的最高概率来选择单个代理。在一些其它实施方式中,系统基于附加准则选择单个代理。例如,系统可基于概率选择代理的初始子集,将“实况”代理请求传送到子集的代理,并且在选择单个代理时利用对代理请求的“实况”响应。作为另一示例,系统可附加地或可替选地基于客户端设备的用户的历史交互(例如,单个代理被用户利用的频率、单个代理最近如何被用户利用)、客户端设备上的当前渲染和/或最近渲染的内容、客户端设备的位置、当前日期和/或时间、单个代理的排名(例如,按用户群的排名)、单个代理的流行性(例如,在用户群当中的流行性)等选择单个代理。
131.在块680处,系统向单个代理传送调用请求。单个代理可以是在块678处选择的一个(其中块660处的确定为“否”),或在用户输入中指示的单个代理(其中块660处的确定为“是”)。块680可以共享与图4的块474有共同之处的一个或多个方面。
132.图7是图示根据本文中所公开的实施方式的另一示例方法700的流程图。图7图示可以由代理选择模型中的一个或多个执行的方法的示例。
133.为了方便,参考执行操作的系统描述图7的流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如代理140a-n中的一个代理的一个或多个组件。此外,虽然方法700的操作被以特定顺序示出,但是这不意在为限制性的。可以重新排序、省略或者添加一个或多个操作。
134.在块752处,系统从自动化助理接收代理请求。在一些实施方式中,代理请求被标记或者以其它方式指示为代理请求。
135.在块754处,系统基于代理请求生成响应。例如,系统可以解析代理请求的内容、确定系统是否能够对请求做出响应、并且基于它是否能够对请求做出响应生成响应。例如,请求可以包括意图参数的值并且系统可以基于它是否可对通过值指示的意图做出响应来确定它是否可对请求做出响应。例如,如果意图参数的值是“预订”,但是系统仅能够处理“游戏”意图,则它可以确定它无法响应并生成指示它完全无法响应的响应(例如,“0”或其它“负”响应值)。另外,例如,请求可以包括意图位参数的值并且系统可以基于它是否可对意图位参数和/或值做出响应来确定它是否可对该请求做出响应。例如,如果系统不支持意图位参数,但是支持代理请求的其它参数和值,则系统可以生成指示它能够处理代理请求的
参数中的一些而非全部的响应(例如,“0.5”或其它“部分”响应值)。作为又一个示例,系统可以支持意图位参数,但是系统可能不支持特定值。例如,意图位参数可以是“地理区域”参数并且值可以是不由系统服务的地理区域。在这样的场景中,系统可以生成指示它无法响应或者更特定地指示它能够处理代理请求的值中的一些而非全部的响应。
136.在块756处,系统将代理响应提供(例如,传送)给自动化助理,而无需由自动化助理调用。
137.在块758处,系统此后可以从自动化助理接收调用请求。在一些实施方式中,调用请求可以指示系统应该有效地或实际上接管对话。如果调用请求指示系统应该实际上接管对话,则系统可以与对应的客户端设备建立直接网络通信会话。如果调用请求指示系统应该有效地接管对话,则系统可以在仍然与提供了调用请求的组件和/或相关组件进行通信的同时接管对话。
138.在块760处,系统基于被包括在调用请求中的参数的值生成响应内容。
139.在块762处,系统提供响应内容。例如,在调用请求指示系统应该有效地接管对话并且/或者应该仅执行预定动作而不参与对话的情况下,系统可以将响应内容传送到发送了调用请求的组件(或相关组件)。另外,例如,在调用请求指示系统应该实际上接管对话的情况下,系统可以将响应内容传送到对应的客户端设备。
140.块758、760和762在图7中被以虚线图示以指示可以在某些情形中不执行它们。例如,如本文中所描述的,在一些实施方式中系统可以在曾经没有接收到对应的调用请求的情况下接收代理请求。
141.图8和图9每一个图示用户101、支持语音的客户端设备806以及可以在用户101、与客户端设备806相关联的自动化助理和代理之间发生的对话的示例。客户端设备806包括一个或多个麦克风和一个或多个扬声器。可以在客户端设备806上和/或在与客户端设备806进行网络通信的一个或多个计算设备上实现图1的自动化助理110的一个或多个方面。因此,为了易于说明在图8和图9的描述中引用自动化助理110。
142.在图8中,用户提供“助理,今天将花送到我家”的话音输入880a。与话音输入相对应的语音输入由设备806生成并提供给自动化助理110(例如,作为流式语音输入)。即使话音输入880a未指定特定代理,自动化助理110也可以基于本文中所描述的一种或多种技术(例如,基于代理选择模型)利用话音输入880a来从多个可用代理中选择单个代理。
143.响应于话音输入880a并选择单个代理,自动化助理110可以生成并提供输出882a“当然,代理1可处理”。另外,自动化助理110可以调用“代理1”,所述“代理1”然后提供“嗨,这是代理1。什么样的花?”的代理输出882b。
144.响应于代理输出882b,用户提供“12朵红玫瑰”的进一步话音输入880b。与该话音输入相对应的语音输入由设备806生成并提供给自动化助理110,所述自动化助理110将该话音输入(或其转换和/或注释)转发到“代理1”。进一步话音输入880b指定用于“订购花”意图的先前未指定的“花类型”意图位参数的值。自动化助理110可以基于进一步话音输入880b(直接地或基于“代理1”提供的那个值的指示)更新“花类型”意图位参数的全局值。
145.响应于进一步话音输入880b,“代理1”提供“我可以在5点送它们总计60美元。想要订购吗?”的进一步代理输出882c。
146.响应于进一步代理输出882c,用户提供“助理,将我切换到另一花代理”的进一步
话音输入880c。自动化助理110可将这样的进一步话音输入辨识为切换输入,并且选择适当的替选代理。例如,自动化助理110可基于代理选择模型和/或“实况”代理请求确定“代理2”可处理具有意图位参数的各种值(包括用于“花类型”的值)的意图。
147.响应于进一步话音输入880c并选择替选代理,自动化助理110可以生成并提供输出882d“当然,代理2也可处理”。进一步,自动化助理110调用“代理2”,并用包括“花类型”意图位参数的经更新的全局值的调用请求来调用“代理2”。“代理2”然后提供“嗨,这是代理2。我可以在5点送12朵红玫瑰,50美元。订购吗?”的代理输出882e。值得注意的是,此输出是基于“花类型”意图位参数的经更新的全局值而生成的,所述全局值响应于与先前调用的“代理1”的交互而被更新。
148.用户然后提供“是”的进一步语音输入880f以使“代理2”满足具有意图位参数的指定值的意图。
149.在图9中,用户提供“助理,2人桌,户外座位,今晚6点在假想咖啡馆”的话音输入980a。与该话音输入相对应的语音输入由设备806生成并提供给自动化助理110(例如,作为流式语音输入)。即使话音输入980a未指定特定代理,自动化助理110也可以基于本文中所描述的一种或多种技术(例如,基于代理选择模型)利用话音输入980a来从多个可用代理中选择单个代理。
150.响应于话音输入980a并选择单个代理,自动化助理110可以调用“代理3”。“代理3”能够满足具有意图位参数的指定值的意图,而无需参与和用户的任何进一步对话。“代理3”生成要提供给自动化助理110的指示预约完成的响应内容并且将向用户101发送文本确认。作为响应,自动化助理110提供“用代理3预约。文本确认在途中”的输出982a。
151.图10图示另一客户端设备1006和客户端设备1006的显示屏幕1040。客户端设备1006可以包括自动化助理110和/或与自动化助理110通信。显示屏幕1040包括用户可以选择来经由虚拟键盘生成用户输入的回复接口元素1088以及用户可以选择来经由麦克风生成用户输入的语音回复接口元素1089。在一些实施方式中,用户可以在无需选择语音回复接口元素1089的情况下经由麦克风生成用户输入。例如,在对话期间,可以发生对经由麦克风输入的可听用户接口的主动监视以消除对用户选择语音回复接口元素1089的需要。在那些实施方式中的一些中和/或在其它实施方式中,可以省略语音回复接口元素1089。此外,在一些实施方式中,可以附加地和/或可替选地省略回复接口元素1088(例如,用户可以仅提供可听用户接口输入)。显示屏幕1040还包括可以由用户与之交互以使客户端设备1010执行一个或多个动作的系统接口元素1081、1082、1083。
152.在图10中,输入1080a与图8中的输入880a相同。同样地,输出1082a和1082b与图8的输出882a和882b相同。图10被图示为与自动化助理110和/或代理的图形交互(代替图8的话音/可听交互)的示例。尽管图10图示图形交互的一个示例,然而设想了不同的示例。例如,不是像图10中所图示的那样“代理1”经由与自动化助理的公共接口提供输出1082b——而是“代理1”可以替代地是响应于调用而被启动和/或带到前台的分立的应用。例如,在图10的输出1082a之后,“代理1”应用接口可以取代图10的自动化助理接口,然后提供与输出1082b类似的输出。
153.图11是可以可选地被利用来执行本文中所描述的技术的一个或多个方面的示例计算设备1110的框图。在一些实施方式中,设备106、自动化助理110、3p代理和/或其它组件
中的一个或多个可以包括示例计算设备1110的一个或多个组件。
154.计算设备1110通常包括经由总线子系统1112与许多外围设备进行通信的至少一个处理器1114。这些外围设备可以包括储存器子系统1124(包括例如存储器子系统1125和文件储存器子系统1126)、用户接口输出设备1120、用户接口输入设备1122和网络接口子系统1116。输入和输出设备允许用户与计算设备1110交互。网络接口子系统1116提供到外部网络的接口并且耦合到其它计算设备中的对应的接口设备。
155.用户接口输入设备1122可以包括键盘、诸如鼠标、轨迹球、触摸板或图形平板、扫描仪、并入到显示器中的触摸屏的指示设备,诸如语音辨识系统、麦克风和/或其它类型的输入设备的音频输入设备。一般而言,术语“输入设备”的使用旨在包括用于将信息输入到计算设备1110中或到通信网络上的所有可能类型的设备和方式。
156.用户接口输出设备1120可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或用于产生可见图像的某种其它机制。显示子系统还可以诸如经由音频输出设备提供非可视显示。一般而言,术语“输出设备”的使用旨在包括用于将信息从计算设备1110输出到用户或者输出到另一机器或计算设备的所有可能类型的设备和方式。
157.储存器子系统1124存储提供本文中所描述的模块中的一些或全部的功能性的编程和数据构造。例如,储存器子系统1124可以包括用于执行图4、图5、图6和/或图7的方法的所选方面的逻辑。
158.这些软件模块一般地由处理器1114单独或者与其它处理器相结合地执行。储存器子系统1124中使用的存储器1125可包括许多存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)1130以及存储固定指令的只读存储器(rom)1132。文件储存器子系统1126可为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联可移动介质、cd-rom驱动器、光学驱动器或可移动介质盒。实现某些实施方式的功能性的模块可以由文件储存器子系统1126存储在储存器子系统1124中,或者存储在可由处理器1114访问的其它机器中。
159.总线子系统1112提供用于让计算设备1110的各种组件和子系统按预期彼此通信的机制。虽然总线子系统1112被示意性地示为单条总线,但是总线子系统的替选实施方式可以使用多条总线。
160.计算设备1110可以是变化类型的,包括工作站、服务器、计算集群、刀片服务器、服务器场,或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化性质,图11中描绘的计算设备1110的描述仅旨在作为用于图示一些实施方式的目的的具体示例。与图11中描绘的计算设备相比具有更多或更少的组件的计算设备1110的许多其它配置是可能的。
161.在本文中所讨论的某些实施方式可以收集或者使用关于用户的个人信息(例如,从其它电子通信中提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物计量信息以及用户的活动和人口统计信息)的情形中,用户被提供有控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何关于用户收集信息、如何存储并使用信息的一个或多个机会。也就是说,本文中所讨论的系统和方法的实施方式仅在接收到来自相关用户的要这样做的显式授权时才收集、存储和/或使用用户个人信息。例如,用户被提供有对程序或特征是否收集关于该特定用户或与该程序或特征有关的其它用户
的用户信息的控制。要为其收集个人信息的每一个用户被呈现有一个或多个选项来允许控制与该用户有关的信息收集,以提供关于是否收集信息以及关于信息的哪些部分将被收集的权限或授权。例如,可通过通信网络给用户提供一个或多个此类控制选项。此外,某些数据可以在它被存储或者使用之前被以一种或多种方式处理,使得个人可识别的信息被移除。作为一个示例,可以处理用户的身份,使得不能确定个人可识别的信息。作为另一示例,可以使用户的地理位置一般化到较大的区域,使得不能确定用户的特定位置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献