首页 / 专利库 / 人工智能 / 对话语料库 / 为自动化助手提供命令束建议

为自动化助手提供命令束建议

阅读:510发布:2020-05-08

专利汇可以提供为自动化助手提供命令束建议专利检索,专利查询,专利分析的服务。并且为自动化助理的用户生成和/或推荐命令束。命令束包括可以由自动化助理执行的多个分立动作。命令束的动作中的一个或多个可能使对应的命令和/或其他数据传输到一个或多个设备和/或与设备不同的代理和/或基于束的其他动作而向其传输数据的代理。实现确定可能与用户相关的命令束,并将这些命令束作为建议呈现给用户。在那些实现中的一些中,利用 机器学习 模型来生成用户的用户动作嵌入以及多个命令束中的每一个的命令束嵌入。可以基于用户动作嵌入和命令束嵌入的比较来选择命令束以用于建议。,下面是为自动化助手提供命令束建议专利的具体信息内容。

1.一种由一个或多个处理器实现的方法,所述方法包括:
识别用户的助理交互数据,所述助理交互数据指示由自动化助理应用针对所述用户执行的多个历史动作,所述历史动作中的每个响应于由所述用户经由一个或多个自动化助理接口提供的对应用户接口输入而执行,所述自动化助理接口与所述自动化助理应用交互;
使用经训练的机器学习模型处理所述助理交互数据中的至少一部分,以生成用户动作嵌入;
识别多个命令束,所述命令束中的每个包括命令束数据,所述命令束数据识别能够由所述自动化助理应用执行的多个对应分立动作;
针对所述命令束中的每个:
使用所述经训练的机器学习模型或附加的经训练的机器学习模型处理该命令束数据中的至少一部分,以生成命令束嵌入,以及
生成该命令束的相似度评分,其中,针对所述命令束中的每个生成所述相似度评分包括:将所述用户动作嵌入与该命令束的命令束嵌入进行比较;
基于给定命令束的所述相似度评分,选择所述多个命令束中的所述给定命令束;
响应选择所述给定命令束:
使与所述给定命令束有关的信息经由所述用户的计算设备呈现给所述用户;
其中,响应于用户接口输入的所述用户的对所述给定命令束的调用使所述自动化助理应用执行所述给定命令束的所述对应分立动作。
2.根据权利要求1所述的方法,其中,呈现给所述用户的与所述给定命令束有关的所述信息包括所述给定命令束的调用短语,并且所述方法还包括:
在使与所述给定命令束有关的所述信息被呈现之后,接收由所述用户经由所述助理接口中的一个提供的自然语言用户接口输入;
确定所述自然语言用户接口输入与所述调用短语一致;以及
响应于确定所述自然语言用户接口输入与所述调用短语一致:
由所述自动化助理应用执行所述给定命令束的所述对应分立动作。
3.根据权利要求1所述的方法,其中,所述给定命令束的所述对应分立动作包括:
第一分立动作,所述第一分立动作使所述自动化助理应用向第一电子设备传输第一命令;以及
第二分立动作,所述第二分立动作使所述自动化助理应用向第二电子设备传输第二命令。
4.根据权利要求1所述的方法,其中,所述给定命令束的所述对应分立动作包括:
第一分立动作,所述第一分立动作使所述自动化助理应用向第一代理传输第一命令;
以及
第二分立动作,所述第二分立动作使所述自动化助理应用向第二代理传输第二命令。
5.根据权利要求1所述的方法,还包括:
基于所述相似度评分对所述命令束进行排名;
其中,选择所述给定命令束是基于所述给定命令束相对于所述命令束中的其他命令束的所述排名的。
6.根据权利要求5所述的方法,其中,使与所述给定命令束有关的所述信息经由所述用户的计算设备呈现给所述用户包括:使所述信息以显示显著性来呈现,所述显示显著性是基于所述给定命令束的所述排名的。
7.根据权利要求1所述的方法,其中,识别所述多个命令束包括:
基于所选择的多个命令束与所述用户的用户特定数据之间的一致性,从可用命令束的语料库中选择所述多个命令束。
8.根据权利要求7所述的方法,其中,基于所选择的多个命令束与所述用户的用户特定数据之间的一致性选择所述多个命令束包括:
基于以下操作,从所选择的多个命令束中排除所述可用命令束中的给定可用命令束:
识别所述给定可用命令束的所需的外围设备;以及
基于所述用户特定数据,确定所述自动化助理应用缺少所述用户对所述所需外围设备的访问
9.根据权利要求1所述的方法,其中,对所述命令束数据中的所述至少一部分的所述处理是使用所述经训练的机器学习模型来执行的。
10.根据权利要求1所述的方法,其中,针对所述命令束中的每个生成所述相似度评分是基于所述用户动作嵌入与所述命令束的所述命令束嵌入之间的欧几里得距离。
11.根据权利要求1所述的方法,其中,所述给定命令束包括所述对应动作中的至少一个动作的具有未定义值的至少一个槽位,并且所述方法还包括:
响应于使与所述给定命令束有关的所述信息被呈现,接收对所述给定命令束的选择;
响应于接收到所述选择,经由所述自动化助理应用与所述用户进行对话,以消解所述槽位的值;以及
针对所述给定命令束并且针对所述用户将所述值与所述槽位相关联地存储。
12.根据权利要求11所述的方法,还包括:
在针对所述给定命令束并且针对所述用户将所述值与所述槽位相关联地存储之后:
接收由所述用户经由所述助理接口中的一个提供的自然语言用户接口输入;
确定所述自然语言用户接口输入与所述命令束的调用短语一致;以及
响应于确定所述自然语言用户接口输入与所述调用短语一致,并基于所述值被存储:
由所述自动化助理应用执行所述给定命令束的所述对应分立动作,包括使用所述槽位的所述值执行所述至少一个动作。
13.一种由一个或多个处理器实现的方法,所述方法包括:
识别命令束的语料库,所述命令束中的每个包括命令束数据,所述命令束数据识别能够由自动化助理应用执行的多个对应分立动作;
识别用户的外围设备数据,所述外围设备数据指示与所述自动化助理应用配对的所述用户的外围设备;
从命令束的所述语料库中为所述用户选择多个候选命令束,其中,选择所述多个候选命令束是基于所述外围设备数据与所述命令束的所述命令束数据的比较;
基于所述命令束数据和助理交互数据,对所述候选命令束进行排名,所述助理交互数据指示由所述自动化助理应用针对所述用户执行的多个历史动作;以及基于所述排名,使与所述候选命令束中的一个或多个有关的信息被呈现,其中,所述信息经由所述用户的计算设备呈现给所述用户。
14.根据权利要求13所述的方法,其中,与所述一个或多个命令束中的给定命令束有关的所述信息包括所述给定命令束的调用短语,并且所述方法还包括:
在使与所述一个或多个命令束有关的所述信息被呈现之后,接收由所述用户经由与所述自动化助理应用相关联的助理接口提供的自然语言用户接口输入;
确定所述自然语言用户接口输入与所述调用短语一致;以及
响应于确定所述自然语言用户接口输入与所述调用短语一致:
由所述自动化助理应用执行所述给定命令束的所述对应分立动作。
15.根据权利要求14所述的方法,其中,所述给定命令束的所述对应分立动作包括:
第一分立动作,所述第一分立动作使所述自动化助理应用向第一电子设备传输第一命令;以及
第二分立动作,所述第二分立动作使所述自动化助理应用向第二电子设备传输第二命令。
16.一种由一个或多个处理器实现的方法,所述方法包括:
识别命令束的语料库,所述语料库的所述命令束中的每个命令束包括命令束数据,所述命令束数据识别能够由自动化助理应用执行的多个对应分立动作;
识别用户的数据;
从命令束的所述语料库中为所述用户选择多个候选命令束,其中,选择所述多个候选命令束是基于所述用户的所述数据与所述命令束的所述命令束数据的比较;
识别所述用户的助理交互数据,所述助理交互数据指示由自动化助理应用针对所述用户执行的多个历史动作,所述历史动作中的每个响应于由所述用户经由一个或多个自动化助理接口提供的对应用户接口输入而执行,所述自动化助理接口与所述自动化助理应用交互;
使用经训练的机器学习模型处理所述助理交互数据中的至少一部分,以生成用户动作嵌入;
基于用户动作嵌入与给定命令束的命令束嵌入的比较,从所述多个候选命令束中选择所述给定命令束;
响应选择所述给定命令束:
使与所述给定命令束有关的信息经由所述用户的计算设备呈现给所述用户;
其中,响应于用户接口输入的所述用户的对所述给定命令束的调用使所述自动化助理应用执行所述给定命令束的所述对应分立动作。
17.根据权利要求16所述的方法,其中,呈现给所述用户的与所述给定命令束有关的所述信息包括所述给定命令束的调用短语,并且所述方法还包括:
在使与所述给定命令束有关的所述信息被呈现之后,接收由所述用户经由所述助理接口中的一个提供的自然语言用户接口输入;
确定所述自然语言用户接口输入与所述调用短语一致;以及
响应于确定所述自然语言用户接口输入与所述调用短语一致:
由所述自动化助理应用执行所述给定命令束的所述对应分立动作。
18.根据权利要求16所述的方法,其中,所述给定命令束包括所述对应动作中的至少一个动作的具有未定义值的至少一个槽位,并且所述方法还包括:
在使与所述给定命令束有关的所述信息被呈现之后,接收对所述给定命令束的调用;
响应于接收到所述调用,经由所述自动化助理应用与所述用户进行对话以消解所述槽位的值;以及
针对所述给定命令束并且针对所述用户将所述值与所述槽位相关联地存储。
19.根据权利要求16所述的方法,还包括:
在针对所述给定命令束并且针对所述用户将所述值与所述槽位相关联地存储之后:
接收由所述用户经由所述助理接口中的一个提供的自然语言用户接口输入;
确定所述自然语言用户接口输入与所述命令束的调用短语一致;以及
响应于确定所述自然语言用户接口输入与所述调用短语一致,并基于所述值被存储:
由所述自动化助理应用执行所述给定命令束的所述对应分立动作,包括使用所述槽位的所述值执行所述至少一个动作。

说明书全文

为自动化助手提供命令束建议

背景技术

[0001] 可以由用户经由诸如智能电话、平板电脑、可穿戴设备、汽车系统和独立的个人助理设备等的各种客户端设备与自动化助理(也称为“个人助理”、“移动助理”等)交互。自动化助理接收来自用户的输入(例如,键入和/或口头的自然语言输入),并以响应内容(例如,视觉和/或可听自然语言输出)和/或通过控制一个或多个外围设备(例如,物联网(loT)设备)响应。可以经由客户端设备本身和/或经由与客户端设备进行网络通信的一个或多个远程计算设备(例如,“”中的计算设备)来实现经由客户端设备与之交互的自动化助理。
[0002] 自动化助理通常被配置为执行各种动作,其中每个动作是响应于映射到该动作的预确定的规范命令(或其轻微变化)而执行的。例如,响应于接收到口头命令“Assistant,turn off my living room lights(助理,关闭我的客厅灯)”,自动化助理可以使一个或多个命令被传输,这些命令使被标记为“客厅”灯的用户的联网灯转变为“关闭”状态。作为另一示例,响应于接收到单独的口头命令“Assistant,what is tomorrow's weather(助理,明天的天气如何)”,自动化助理可以发布一个或多个查询和/或与第三方代理进行交互,以解决发布语音命令的用户的位置的“明天的天气”的预报,并提供转达明天的所预报的天气的图形和/或可听输出。
[0003] 然而,利用自动化助理的用户可能不知道自动化助理可执行的动作中的许多和/或可能不知道可由用户提供以使动作由自动化助理执行的规范命令。结果,许多用户只能采用有限数量的自动化助理的功能性。虽然可以向与自动化助理交互的用户提供规范命令和相关联的动作的常规推荐(例如,“Try saying X to get a weather report for tomorrow(尝试说X以获取明天的天气报告)”),但通常会盲目地提供这样的常规推荐给用户。结果,在向用户提供不相关的推荐时会浪费大量的网络和/或计算资源。而且,通常这样的常规推荐仅用于单个动作。为了执行多个动作,用户必须通过与自动化助理的多个对话回合来提供多个不同的规范命令,从而在执行多个动作时消耗了大量的网络和/或计算资源。发明内容
[0004] 本说明书针对用于为自动化助理应用的用户生成和/或推荐命令束的方法、装置和计算机可读介质(暂时性和非暂时性)。命令束包括可由自动化助理应用执行的多个分立的动作。例如,“good night(晚安)”束可以使自动化助理应用执行以下:传输命令以关闭一个或多个联网灯的第一动作;传输命令以将用户的计算设备的闹钟设置为在8:00AM响起的第二动作;以及,传输请求“明天的”当地天气的命令并可听地呈现响应内容的第三动作;等等。
[0005] 从前面的示例可以理解,命令束的动作中的一个或多个可能使对应的命令和/或其他数据传输到一个或多个设备和/或与设备不同的代理和/或基于束的其他动作而向其传输数据的代理。例如,在前面的示例中,对于第一动作,可以将命令传输到联网灯(和/或与联网灯通信的硬件桥),而在第三动作中,可以将单独的命令传输到托管“天气”代理的远程计算设备。可以响应于各种提示来激活命令束,该提示诸如,说出命令束的一个或多个调用短语中的一个(例如,“晚安”束的“晚安”)、激活命令束的图形用户接口元素(例如,命令束的“快捷方式”图标)和/或一个或多个场境条件的发生(例如,对于“晚安”束,时间为10:00PM的发生)。
[0006] 命令束可以从头开始和/或基于在一个或多个用户与自动化助理之间的交互期间收集的历史数据来生成。例如,可以由为命令束指定动作的程序员从头开始生成命令束,并且对于动作中的一个或多个中的每个动作,可选地为该动作的一个或多个槽位(slot)指定一个或多个固定槽位值。作为另一示例,可以通过以下来自动生成命令束:收集由多个对应用户中的每个用户在彼此的短时段内发布的命令短语——并生成对应的命令束,该命令束在被激活时使与收集的命令短语相关联的动作被执行。例如,可以至少基于阈值数量的用户均通过与其自动化助理的交互使在彼此的一分钟内执行第一、第二和第三动作来自动生成具有第一、第二和第三动作的命令束。
[0007] 本文公开的实现涉及确定可能与给定用户相关的命令束,以及将那些命令束作为建议/推荐呈现给给定用户。在那些实现中的一些中,可以训练机器学习模型,该机器学习模型接收一个或多个自动化助理“动作”的指示(以及可选地,动作的槽位值和/或其他参数)作为输入并提供嵌入作为输出,该嵌入在多维空间中提供这些“动作”的语义表示(以及可选的槽位值和/或其他参数)。
[0008] 可以使用机器学习模型来处理由给定用户通过自动化助理应用执行的动作(以及可选地槽位值和/或其他参数),以生成“用户动作嵌入”。此外,对于命令束中的每一个,可以使用机器学习模型(或另一种机器学习模型)来处理命令束的动作(以及可选地槽位值和/或其他参数)以生成“命令束嵌入”。然后,可以将具有与“用户动作嵌入”最相似的“命令束嵌入”的命令束作为推荐提供给给定用户。例如,如果给定用户仅使用“音乐”和“灯控制”动作的自动化助理应用,则“用户动作嵌入”可以表示这些动作。具有对应的“音乐”和“灯控制”动作的命令束将具有比例如缺少音乐或灯控制动作的命令束更类似于“用户动作嵌入”的命令束嵌入。以这些和其他方式,通过将命令束的特征和给定用户与自动化助理应用的过去交互的特征进行比较,图形地和/或可听地推荐给给定用户的命令束可以首先地被确定为可能与给定用户相关。
[0009] 此外,在一些实现中,在确定是否向用户推荐命令束时,可以考虑命令束的一个或多个动作的所需外围设备和/或其他参数。例如,可以基于确定给定用户缺少命令束所需的外围设备来过滤掉某些命令束(例如,在相似度确定之前)。例如,基于确定没有联网灯与自动化助理应用的给定用户相关联,可以将需要联网灯来执行动作的给定命令束从作为对给定用户的推荐的考虑中过滤掉。同样,例如,在生成在上面和本文的其他位置所述的用户嵌入和/或命令束嵌入时,对用户的外围设备和/或命令束的外围设备的指示可以附加地作为输入被应用。
[0010] 在一些实现中,推荐给给定用户的命令束的至少一个动作可以包括至少一个缺少固定值的槽位(即,具有明确的“未定义”或“可变”值的槽位或缺少槽位的任何值的定义的槽位)。在那些实现中的一些中,当命令束被给定用户选择或者后续被给定用户初始地调用时,自动化助理应用可以提示给定用户以使得能够实现缺少固定值的槽位的值的消解(resolution)。在那些实现的某些版本中,可以与给定用户相关联地存储槽位的消解值,其后响应于命令束的进一步调用而自动利用该消解值。例如,命令束可以包括传输命令以设置用户的计算设备的闹钟的动作。但是,闹钟动作的“闹钟时间”槽位可能不是固定的。在那些实现中的一些实现中,自动化助理应用可以提供提示“What time would you like the alarm set for(您想将闹钟设置为什么时间)”以及响应于提示而接收的响应用户接口输入“8:00AM”以用于向用户呈现。自动化助理应用可以可选地在确认用户想要将“8:00AM”设置为默认值之后,将“8:00AM”作为该用户的命令束的“闹钟时间”槽位的消解值存储。其后,当给定用户调用该命令束时,自动化助理应用可以自动将“8:00AM”用作“闹钟时间”槽位的槽位值。
[0011] 可以实现本说明书中描述的主题的特定实现,以实现以下优点中的一个或多个。与其他方法相比,命令束推荐方法和/或在命令束推荐中使用的模型可以提供改进的数据效率。例如,这样的推荐方法和/或模型可以增加提供给给定用户的命令束推荐与给定用户相关的可能性,并因此增加给定用户后续将使用命令束的可能性。这可以减轻在提供不相关的命令束的中的网络资源和/或计算资源的消耗。
[0012] 此外,如本文所述,在许多实现中,推荐命令束可以在后续被调用时使多个分立的动作被执行。与多个分立的动作中的每个被单独调用相比,可以利用消耗更少网络和/或计算资源的后续用户接口输入来实现这种后续调用。例如,可以通过提供给自动化助理的诸如“Assistant,good night(助理,晚安)”的口头命令来调用上述“晚安”束。调用“晚安”束可以使自动化助理应用执行以下:传输命令以关闭一个或多个联网灯的第一动作;传输命令以将用户的计算设备的闹钟设置为在8:00AM响起的第二动作;传输请求“明天的”当地天气的命令并可听地呈现响应内容的第三动作。在没有命令束的情况下,用户将需要发布至少三个单独的命令,要处理这些命令,与命令束的单个调用命令相比,将需要更多的网络和/或计算资源消耗。例如,在没有命令束的情况下,用户可能必须发布三个单独的命令:“Assistant,turn off the lights(助理,关闭灯)”;“Assistant,set the alarm on my mobile phone to 8:00AM(助理,将我的移动电话上的闹钟设置为8:00AM)”;以及“Assistant,what is tomorrow's weather(助理,明天的天气如何)”。
[0013] 另外,也如本文所述,在许多实现中,推荐的命令束可包括至少一个缺少固定值的槽位,并且可通过交互(例如自动化助理与用户的对话)给定用户消解该槽位的值。其后,当给定用户使命令束被调用时,可以利用消解值,可选地不提示用户进行任何确认。以这些和其他方式,可以通过消除否则将需要被提供以消解槽位的值的一个或多个提示来使由用户进行的后续对命令束的调用更有效率。
[0014] 提供以上发明内容作为本文公开的各种实现的一些特征的概述。下面提供了那些实现以及各种附加特征和各种附加实现的附加描述。
[0015] 在一些实现中,提供了一种由一个或多个处理器执行的方法,该方法包括识别用户的助理交互数据,以及使用经训练的机器学习模型来处理助理交互数据的至少一部分以生成用户动作嵌入。助理交互数据指示自动化助理应用针对用户执行的多个历史动作。历史动作中的每一个响应于用户通过一个或多个自动化助理接口提供的对应用户接口输入而执行,该自动化助理接口与自动化助理应用交互。该方法还包括识别多个命令束,其中每个命令束包括识别能够由自动化助理应用执行的多个对应分立动作的命令束数据。该方法还包括:对于命令束中的每一个,使用经训练的机器学习模型或附加的经训练的机器学习模型处理命令束数据的至少一部分以生成命令束嵌入,并生成命令束的相似度评分。生成命令束中的每个的相似度评分包括:将用户动作嵌入与命令束的命令束嵌入进行比较。该方法还包括:基于给定命令束的相似度评分,选择多个命令束中的给定命令束。该方法还包括:响应于选择给定命令束,使与给定命令束有关的信息经由用户的计算设备被呈现给用户。响应于用户接口输入的用户的对给定命令束的调用使自动化助理应用执行给定命令束的对应分立动作。
[0016] 本文公开的技术的这些和其他实现可以可选地包括以下特征中的一个或多个。
[0017] 在一些实现中,呈现给用户的与给定命令束有关的信息包括给定命令束的调用短语。在那些实现中的一些中,该方法还包括:在使与给定命令束有关的信息被呈现之后,接收由用户通过助理接口中的一个提供的自然语言用户接口输入;确定自然语言用户接口输入与调用短语一致;以及响应于确定自然语言用户接口输入与调用短语一致:由自动化助理应用执行给定命令束的对应分立动作。
[0018] 在一些实现中,给定命令束的对应分立动作包括第一分立动作和第二分立动作。在那些实现中的一些中,第一分立动作使自动化助理应用向第一电子设备传输第一命令并且第二分立动作使自动化助理应用向第二电子设备传输第二命令。在那些实现中的一些中,第一分立动作使自动化助理应用向第一代理传输第一命令并且第二分立动作使自动化助理应用向第二代理传输第二命令。
[0019] 在一些实现中,该方法还包括基于相似度评分对命令束进行排名。在那些实现中的一些中,选择给定命令束基于给定命令束相对于命令束中的其他的排名。在那些实现的某些版本中,使与给定命令束有关的信息经由用户的计算设备呈现给用户包括:使信息以基于给定命令束的排名的显示显著性来呈现。
[0020] 在一些实现中,识别多个命令束包括:基于所选择的多个命令束与用户的用户特定数据之间的一致性,从可用命令束的语料库中选择多个命令束。在那些实现中的一些中,基于所选择的多个命令束和用户的用户特定数据之间的一致性来选择多个命令束包括:基于以下来从所选择的多个命令束中排除可用命令束中的给定可用命令束:识别给定可用命令束的所需的外围设备;以及基于用户特定数据,确定自动化助理应用缺少用户对所需外围设备的访问
[0021] 在一些实现中,使用经训练的机器学习模型来执行命令束数据的至少一部分的处理。
[0022] 在一些实现中,基于用户动作嵌入和命令束的命令束嵌入之间的欧几里得距离来生成命令束中的每个的相似度评分。
[0023] 在一些实现中,给定命令束包括对应动作中的至少一个动作的具有未定义值的至少一个槽位。在那些实现中的一些中,该方法还包括:响应于使与给定命令束有关的信息被呈现而接收对给定命令束的选择;响应于接收到选择,经由自动化助理应用与用户进行对话,以消解槽位的值;以及针对给定命令束并且针对用户将值与槽位相关联地存储。在那些实现的某些版本中,该方法还包括,在针对给定命令束并且针对用户将值与槽位相关联地存储之后:接收用户经由助理接口中的一个提供的自然语言用户接口输入;确定自然语言用户接口输入与命令束的调用短语一致;以及响应于确定自然语言用户接口输入与调用短语一致,并基于所述值被存储:由自动化助理应用执行给定命令束的对应分立动作,包括使用槽位的值执行至少一个动作。
[0024] 在一些实现中,提供了一种由一个或多个处理器执行的方法,该方法包括识别命令束的语料库以及识别用户的外围设备数据。所识别的命令束中的每一个包括命令束数据,该命令束数据识别可以由自动化助理应用执行的多个对应的分立动作。所识别的外围设备数据指示与自动化助理应用配对的用户的外围设备。该方法还包括从命令束的语料库中为用户选择多个候选命令束。选择多个候选命令束基于外围设备数据与命令束中的命令束数据的比较。该方法还包括基于命令束数据和助理交互数据对候选命令束进行排名,并基于排名使与候选命令束中的一个或多个有关的信息被呈现。该信息经由用户的计算设备呈现给用户。
[0025] 本文公开的技术的这些和其他实现可以可选地包括以下特征中的一个或多个。
[0026] 在一些实现中,与一个或多个命令束中的给定命令束有关的信息包括给定命令束的调用短语。在那些实现中的一些中,该方法还包括:在使与一个或多个命令束有关的信息被呈现之后,接收由用户经由与自动化助理应用相关联的助理接口提供的自然语言用户接口输入;确定自然语言用户接口输入与调用短语一致;以及响应于确定自然语言用户接口输入与调用短语一致:由自动化助理应用执行给定命令束的对应分立动作。在那些实现的某些版本中,给定命令束的对应分立动作包括使自动化助理应用将第一命令传输到第一电子设备的第一分立动作,以及使自动化助理应用将第二命令传输到第二电子设备的第二分立动作。
[0027] 在一些实现中,提供了一种由一个或多个处理器执行的方法,该方法包括识别命令束的语料库以及识别用户的数据。语料库的命令束中的每个包括命令束数据,该命令束数据识别可以由自动化助理应用执行的多个对应分立动作。该方法还包括从命令束的语料库中为用户选择多个候选命令束。选择多个候选命令束基于用户的数据与命令束的命令束数据的比较。该方法还包括识别用户的助理交互数据,该助理交互数据指示由自动化助理应用针对用户执行的多个历史动作。该方法还包括:使用经训练的机器学习模型来处理助理交互数据中的至少一部分以生成用户动作嵌入;以及基于用户动作嵌入与给定命令束的命令束嵌入的比较,从多个候选命令束中选择给定命令束。该方法还包括:响应于选择给定命令束,使与给定命令束有关的信息经由用户的计算设备被呈现给用户。响应于用户接口输入的用户的对给定命令束的调用使自动化助理应用执行给定命令束的对应分立动作。
[0028] 本文公开的技术的这些和其他实现可以可选地包括以下特征中的一个或多个。
[0029] 在一些实现中,呈现给用户的与给定命令束有关的信息包括给定命令束的调用短语。在那些实现中的一些中,该方法还包括:在使与给定命令束有关的信息被呈现之后,接收由用户经由助理接口提供的自然语言用户接口输入;确定自然语言用户接口输入与调用短语一致;以及响应于确定自然语言用户接口输入与调用短语一致:由自动化助理应用执行给定命令束的对应分立动作。
[0030] 在一些实现中,给定命令束包括对应动作中的至少一个动作的具有未定义值的至少一个槽位。在那些实现中的一些中,该方法还包括:在使与给定命令束有关的信息被呈现之后,接收对给定命令束的调用;响应于接收到调用,经由自动化助理应用与用户进行对话以消解槽位的值;并针对给定命令束并且针对用户将值与槽位相关联地存储。在那些实现的一些版本中,该方法还包括,在针对给定命令束并且针对用户将值与槽位相关联地存储之后:接收由用户经由助理接口提供的自然语言用户接口输入;确定自然语言用户接口输入与命令束的调用短语一致;以及响应于确定自然语言用户接口输入与调用短语一致并基于所述值被存储:由自动化助理应用执行给定命令束的对应分立动作,包括使用槽位的值执行至少一个动作。
[0031] 另外,一些实现包括一个或多个计算设备的一个或多个处理器,其中,一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,所述指令被配置为使执行本文所描述的一种或多种方法。处理器可包括一个或多个图形处理单元(GPU)、中央处理单元(CPU)和/或张量处理单元(TPU)。一些实现包括一种或多种非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文所述的一种或多种方法的计算机指令。
[0032] 应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。附图说明
[0033] 图1是在其中可以实现本文公开的实现的示例环境的框图
[0034] 图2A和图2B示出了在一些实现中图1的各个组件可以如何进行交互的示例。
[0035] 图3A和图3B各自示出了动作模型的示例以及可以如何使用动作模型来处理用户的助理交互数据以生成用户动作嵌入。
[0036] 图4A示出了具有图形地显示对多个命令束的推荐的显示屏的示例计算设备。
[0037] 图4B示出了图4A的示例计算设备以及在图4A的命令束中的一个的初始调用时可能发生的对话的示例以及在该命令束的后续调用时可能发生的对话的示例。
[0038] 图5是示出根据本文公开的实现的示例方法的流程图
[0039] 图6示出了计算设备的示例架构。

具体实施方式

[0040] 图1示出了在其中可以实现本文公开的技术的示例环境。示例环境包括客户端设备106、自动化助理110(在本文中也称为自动化助理应用)和多个代理140A-N。客户端设备106可以是例如独立的语音激活的扬声器设备、台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户车辆的计算设备以及/或者包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加的和/或替代的客户端设备。
[0041] 虽然在图1中将自动化助理110示出为与客户端设备106分离,但是在一些实现中,自动化助理110的全部或方面可以由客户端设备106实现。例如,在一些实现中,输入处理引擎112可以由客户端设备106实现。在其中自动化助理110的一个或多个(例如,所有)方面由远离客户端设备106的一个或多个计算设备实现的实现中,客户端设备106和自动化助理110的那些方面通过一个或多个诸如广域网(WAN)(例如互联网)的网络进行通信。
[0042] 虽然仅示出了与自动化助理110组合的一个客户端设备106,但是在许多实现中,自动化助理110可以是远程的,并且可以与同一用户的多个客户端设备中的每个和/或与多个用户的多个客户端设备中的每个对接。例如,自动化助理110可以经由不同的会话来管理与多个设备中的每一个的通信,并且可以并行地管理多个会话。例如,在一些实现中,自动化助理110可以例如使用服务器场或运行适合于处理来自多个用户的大量请求的软件高性能计算机集群被实现为采用云基础设施的基于云的服务。然而,为了简单起见,本文关于单个客户端设备106描述了许多示例。
[0043] 自动化助理110经由API和/或经由一个或多个通信信道(例如,内部通信信道和/或诸如WAN的网络)与多个代理140A-N中的每个通信。在一些实现中,代理140A-N中的一个或多个均由与管理自动化助理110的一方分开的相应方来管理。如本文所使用的,“代理”是指自动化助理110使用的一个或多个计算设备和/或软件。在某些情况下,代理可以与自动化助理110分开和/或可以通过一个或多个通信信道与自动化助理110进行通信。在那些情况中的某些情况下,自动化助理110可以从第一网络节点向实现代理的功能性中的全部或方面的第二网络节点传输数据(例如,代理命令)。在某些情况下,代理可以是第三方(3P)代理,因为它是由与管理自动化助理110的一方分开的一方来管理的。在某些其他情况下,代理可以是第一方(IP)代理,因为它由管理自动化助理110的同一方管理。
[0044] 代理被配置为从自动化助理110接收(例如,通过网络和/或经由API)调用请求和/或其他代理命令。响应于接收到代理命令,该代理基于代理命令生成响应内容,并且传输响应内容以提供基于响应内容的用户接口输出和/或控制一个或多个外围设备。例如,代理可以传输响应内容以控制一个或多个外围设备,诸如一个或多个loT设备(例如,智能灯、恒温器、电器、相机)。作为另一个示例,代理可以将响应内容传输到自动化助理110,以由自动化助理110提供基于响应内容的输出。作为另一个示例,代理本身可以提供输出。例如,用户可以经由客户端设备106的助理接口与自动化助理110进行交互(例如,自动化助理可以在客户端设备106上实现和/或与客户端设备106进行网络通信),并且代理可以是安装在客户端设备106上的应用或远离客户端设备106可执行的应用,但在客户端设备106上是“可流式传输的(streamable)”的。当应用被调用时,它可以由客户端设备106执行和/或由客户端设备106带到最前端(例如,其内容可以接管客户端设备106的显示)。
[0045] 自动化助理110包括输入处理引擎112、输出引擎116和调用/交互引擎118。自动化助理110还包括命令束引擎120和推荐引擎125。推荐引擎125包括过滤模126、嵌入模块127、评分模块128和推荐模块129。在一些实现中,自动化助理110的某些引擎(和/或模块)可以被省略、组合和/或实现在与自动化助理110分开的组件中。此外,为了简单起见,自动化助理110可以包括此处未示出的附加引擎(和/或模块)。
[0046] 自动化助理110从客户端设备106接收用户输入的实例。用户可以通过用户接口输入设备向自动化助理110提供各种类型的用户输入。在某些情况下,输入可以是作为自由形式的自然语言输入的“用户话语”,诸如基于由用户通过一个或多个用户接口输入设备生成的用户接口输入(例如,基于通过物理或虚拟键盘提供的键入输入或基于通过麦克提供的口头输入)的文本输入。如本文中所使用的,自由形式的输入是由用户制定的并且不被约束为被呈现以供用户选择的选项组(例如,不被约束为在下拉菜单中呈现的选项组)。
[0047] 作为一个示例,自动化助理110可以以包括令牌序列的自然语言数据流的形式接收用户话语。例如,自动化助理110可以响应于键入的用户输入来接收自然语言数据流,或者可以接收以流式音频记录的形式的自然语言语音输入数据流。可以由客户端设备106响应于从客户端设备106的麦克风接收的捕获客户端设备106的用户的口头输入的信号来生成流式音频记录。在一些实现中,用户输入可以由客户端设备106生成和/或响应于由客户端设备106的用户对自动化助理110的明确调用而被提供给自动化助理110。例如,具有用户的某些语音输入(例如,自动化助理110热词/短语,诸如“Hey Assistant(嘿,助理)”)、用户与硬件按钮和/或虚拟按钮的交互(例如,轻敲硬件按钮、对客户端设备106显示的图形接口元素的选择)和/或其他特定用户接口输入的调用可以被客户端设备106检测到。
[0048] 自动化助理110响应于从客户端设备106接收到用户输入的实例而提供输出的实例。输出的实例可以是例如包括自然语言输出的“系统话语”。系统话语可以作为将由客户端设备106可听地呈现的音频(例如,经由客户端设备106的扬声器输出)和/或作为将由客户端设备106图形地呈现的文本和/或图形内容(例如,经由客户端设备106的显示器渲染)等被提供。如本文所述,输出的一些实例可以是基于由用户输入调用的命令束确定的系统话语。如本文中也描述的,输出的一些实例可以是对一个或多个命令束的推荐。推荐可以可选地被“推送”给用户(即,在没有接收明确要求推荐的用户输入的情况下被提供),或可以响应于用户输入被提供给用户,所述用户输入诸如寻求探索可用命令束的输入。而且,输出的一些实例可以基于由所选择的代理140A-N中的一个生成的响应内容(例如,响应于代理命令,所述代理命令响应于对命令束的调用而被传输)。
[0049] 自动化助理110的输入处理引擎112处理自然语言输入(例如,从客户端设备106接收到的自然语言输入),并生成经标注的输出,以供自动化助理110的一个或多个其他组件使用。例如,输入处理引擎112可以处理由用户经由客户端设备106的一个或多个用户接口输入设备生成的自然语言自由形式输入。生成的经标注的输出可以包括基于自然语言输入的令牌,并且可以可选地包括自然语言输入的一个或多个标注。
[0050] 在一些实现中,输入处理引擎112包括语音到文本模块114,其接收语音输入的实例(例如,以数字音频数据的形式),并将语音输入转换成包括一个或多个的文本词或短语的文本。输入处理引擎112然后可以利用转换后的文本来生成令牌和/或其他数据。在一些实现中,语音到文本模块114是流式语音到文本引擎,其使用一种或多种语音到文本算法来基于语音输入生成文本。语音到文本模块114可以依靠一个或多个存储的语音到文本模型(也称为语言模型),每个语音到文本模型可以对语言中的音频信号和发音单元之间的关系以及语言中的词序列进行建模。
[0051] 在一些实现中,输入处理引擎112被配置为识别和标注自然语言输入中的各种类型的语法信息。例如,输入处理引擎112可以包括词性标记器,其被配置为用词项的语法色来标注词项。例如,词性标记器可以用词项的诸如“名词”、“动词”、“形容词”、“代词”等的词性来标记每个词项。此外,例如,在一些实现中,输入处理引擎112可以附加地和/或替代地包括被配置为确定自然语言输入中的词项之间的句法关系的依存解析器。例如,依存解析器可以确定哪些词项修饰其他词项、句子的主语和动词等等(例如,解析树)——并且可以对这种依存进行标注。
[0052] 在一些实现中,输入处理引擎112可以附加地和/或替代地包括实体标记器,该实体标记器被配置为在一个或多个段中标注实体指代,诸如对人、组织和位置等的指代。实体标记器可以以较高的粒度级别(例如,使得能够识别对诸如人的实体类的所有指代)和/或较低的粒度级别(例如,使得能够识别对诸如特定人的特定实体的所有指代)标注对实体的指代。实体标记器可以依赖于自然语言输入的内容来消解特定实体和/或可以可选地与知识图或其他实体通信以消解特定实体。在一些实现中,除了或代替被确定为与对应槽位相对应的令牌,可以将针对令牌消解的实体用作那些槽位的槽位值。
[0053] 在一些实现中,输入处理引擎112可以附加地和/或替代地包括被配置为基于一个或多个上下文线索来将对同一实体的指代进行分组或“聚类”的共指消解器。例如,共指消解器可以用于将在用户输入的实例中的词项“it(它)”消解为在用户输入的紧接在前的实例中的对“Restaurant A(饭店A)”的先前提及。在那些实现中的一些中,由输入处理引擎112供应的令牌可以包括代替代词本身的代词的指代物。例如,可以提供“Restaurant A”作为代替“it”的令牌。
[0054] 在一些实现中,输入处理引擎112的一个或多个组件可以依赖于来自输入处理引擎112的一个或多个其他组件的标注。例如,在一些实现中,所述的实体标记器在标注对特定实体的全部提及时可以依赖于来自共指消解器和/或依存解析器的标注。同样,例如,在一些实现中,在将对同一实体的指代聚类时,共指消解器可能依赖于来自依存解析器的标注。在一些实现中,在处理特定自然语言输入时,输入处理引擎112的一个或多个组件可以使用特定自然语言输入之外的相关先验输入和/或其他相关数据来确定一个或多个标注。
[0055] 输出引擎116将输出的实例提供给客户端设备106。输出的实例可以是例如由推荐引擎125生成的对命令束的推荐,或者在命令束引擎120执行命令束时(当自动化助理110充当该代理的中介时)基于来自代理140A-N中的一个或多个的响应内容。在一些实现中,输出引擎116可以包括将响应内容的文本成分转换成音频格式的文本到语音引擎,并且由输出引擎116提供的输出是以音频格式(例如,作为流式音频)的。在一些实现中,响应内容可能已经是音频格式。在一些实现中,输出引擎116另外地或替代地提供文本回复内容作为输出(可选地以供客户端设备106转换为音频)和/或提供其他图形内容作为输出以供客户端设备106进行图形显示。
[0056] 调用/交互引擎118将代理命令传输到代理140A-N中的一个或多个。例如,当调用包括多个代理140A-N的多个动作的命令束时,调用/交互引擎118可以生成代理命令并将其传输到代理140A-N中的多个,以使那些动作执行。代理命令可以是包括相关联槽位中的槽位值以及可选的附加数据的结构化命令,所述附加数据诸如对域的指示(例如,在代理在多个域上运行的情况下)、用户标识符、会话标识符等。在某些实现或情况下,代理命令是调用所选择的代理的调用命令。所选择的代理可以响应于代理命令而生成响应内容。在一些实现中,响应内容由所选择的代理传输到自动化助理110,并且输出引擎116基于响应内容生成输出。例如,输出引擎116可以提供不改变的响应内容作为输出——或者可以执行响应内容的文本到语音转换(或其他转换),并提供转换后的内容作为输出。在一些实现中,响应内容由所选择的代理直接传输到客户端设备106。在其他实现中,所选择的代理可以在客户端设备106上本地操作(例如,是安装在客户端设备106上的应用),并且可以生成响应内容以在客户端设备106上直接显示。在其他实现中,响应内容可以被传输到一个或多个外围设备,并使外围设备(例如loT设备)中的一个或多个的状态被改变。
[0057] 代理140A-N中的每个代理可以包括其自己的内容引擎和/或其他引擎。此外,在许多实现中,代理可以在生成响应内容时访问各种存储的模型和/或其他资源(例如,其自己的语法模型和/或内容模型)。
[0058] 命令束引擎120接收来自输入处理引擎112的经标注的输入和/或直接来自客户端设备106输入,并且确定接收到的输入是否调用了命令束数据库152的命令束。命令束包括自动化助理应用可以执行的多个分立的动作。例如,“晚安”束可以使自动化助理110执行以下:传输命令以关闭一个或多个联网灯的第一动作;传输命令以将用户的计算设备的闹钟设置为在8:00AM响起的第二动作;传输请求“明天的”当地天气的命令并可听地呈现响应内容的第三动作。例如,调用/交互引擎118可以将三个不同的代理命令传输到代理140A-N中的不同的三个,其中,每个代理命令使三个动作中的对应一个被执行。
[0059] 命令束引擎120可以基于各种提示来确定接收到的输入调用命令束。例如,命令束可以与调用短语相关联,命令束引擎120可以从输入处理引擎112接收经标注的输入,并且命令束引擎120可以确定经标注的输入包括命令束的调用短语。同样,例如,命令束引擎120可以确定接收到的输入直接指示命令束。例如,在客户端设备106处可以响应于用户选择图形用户接口元素(例如,可选择的“图形快捷方式”)来接收输入,并且可以将这种输入直接映射到命令束。同样,例如,命令束引擎120可以确定接收到的输入对应于命令束,并且满足命令束的一个或多个场境条件。例如,命令束引擎120可以确定仅在接收到的输入对应于命令束并且还满足一个或多个场境条件(例如,当前时间在某个时间窗口内、今天是一周的某一天、客户端设备106的位置在某个地理界限内)时接收到的输入才调用命令束。在其他实现中,命令束引擎120可以确定调用命令束而无需参考来自客户端设备106的任何输入。例如,可以响应于仅确定满足某些场境条件而调用某些命令束。
[0060] 响应于确定接收到的输入调用了命令束,命令束引擎120使自动化助理110执行命令束的动作。命令束引擎120可以与调用/交互引擎118交互,以在执行命令束的动作时使代理命令被提供给代理140A-N中的一个或多个。在一些实现中,可以利用特定于调用命令束的用户的值来执行命令束的动作中的一个或多个。例如,如本文描述的,在执行命令束的动作时要被提供的代理命令的槽位的值可以特定于用户。命令束引擎120可以在确定特定于给定用户的命令束的槽位的值时,参考用户数据数据库156中的用户数据。
[0061] 推荐引擎125从命令束数据库152确定可能与给定用户相关的命令束,并将与那些命令束有关的信息作为推荐呈现给给定用户。在一些实现中,推荐引擎125是自动化助理110的一部分和/或经由客户端设备106的助理接口来呈现推荐,助理接口也用于与自动化助理110的其他交互中。在一些实现中,推荐引擎125替代地是与自动化助理110分开和/或通过与客户端设备106的助理接口完全不同的接口呈现推荐的组件。
[0062] 现在参考图2A,提供了推荐引擎125及其模块126-129的附加描述。在图2A中,过滤模块126从命令束数据库152中选择多个经过滤的命令束172以提供给嵌入模块127。经过滤的命令束172是数据库152中包含的命令束的语料库的子集。
[0063] 过滤模块126可以在选择经过滤的命令束172的命令束时利用各种标准。例如,在选择经过滤的命令束172的命令束时,可以将在图2A中考虑的与给定用户相关联的用户设备171和与命令束相关联地存储在命令束数据库152中的数据进行比较。例如,用户设备171可以指示与给定用户相关联的外围设备(例如,loT设备),并且可以从经过滤的命令束172中排除需要与给定用户不相关的外围设备的命令束。作为一个特定示例,用户设备171可以指示所考虑的用户缺少与智能恒温器的任何存储的关联,并且结果,过滤模块126可以从经过滤的命令束172中排除任何需要智能恒温器的命令束。可以在命令束数据库152中将需要智能恒温器的命令束明确地指示为需要智能恒温器(例如,在“所需的外围设备”字段中),或者需要智能恒温器的命令束可以基于这些命令束的动作(例如,基于命令束,所述命令束每个都具有使代理命令被发送到“恒温器”代理的动作)来被推断。
[0064] 如本文所使用,如果命令束的一个或多个动作导致外围设备的状态被改变,则命令束需要外围设备。在一些实现中,如果外围设备已经由自动化助理110“发现”并且可以由自动化助理110控制,则可以将用户与外围设备相关联。在一些实现中,如果用户输入和/或一个或多个网络数据包指示存在外围设备,即使该外围设备尚未被自动化助理110明确“发现”,也可以将用户与外围设备相关联。
[0065] 在一些实现中,过滤模块126可以在选择命令束以包括在过滤的命令束172中和/或从过滤的命令束172中排除命令束时利用一个或多个附加和/或替代标准。例如,如果一个或多个命令束的(通过多个用户的)命令束的评级不满足阈值和/或(在整个用户群上)命令束的使用数量和/或使用频率不满足阈值,则可以排除该一个或多个命令束。
[0066] 经过滤的命令束172被提供给嵌入模块127。嵌入模块127确定经过滤的命令束172的命令束嵌入175。即,对于经过滤的命令束172中的每个,嵌入模块127确定对应的命令束嵌入。嵌入模块127可以使用命令束的动作和/或其他特征以及使用动作模型154来确定命令束嵌入。例如,命令束的动作的指示可以作为输入(作为输入的一部分或作为整个输入)应用到动作模型154,并在动作模型154上被处理以生成命令束嵌入。命令束嵌入可以是多个值,这些值可以被映射到提供对应命令束嵌入的语义表示的多维空间。例如,命令束嵌入可以是256个值的向量。在一些实现中,嵌入模块127可以预生成命令束嵌入175,并且将命令束嵌入175与其对应的命令束相关联地存储在命令束数据库152中。例如,嵌入模块127可以响应于命令束的创建而为命令束生成命令束嵌入,将其与命令束相关联地存储在命令束数据库152中,然后通过从命令束数据库152中检索所存储的命令束嵌入确定命令束的命令束嵌入。下面关于图3A和图3B描述生成命令束嵌入和用户动作嵌入的实现的附加描述。
[0067] 嵌入模块127还生成用户动作嵌入174。嵌入模块127基于用于用户的助理交互数据173生成用户动作嵌入174,该助理交互数据173指示由自动化助理110为用户执行的多个历史动作(以及可选的动作的其他特征)。例如,可以将执行的历史动作的指示作为输入(作为输入的一部分或作为整个输入)应用于动作模型154,并通过动作模型154处理以生成用户动作嵌入174。用户动作嵌入174可以是多个值,这些值可以被映射到提供历史动作和/或其他历史特征的语义表示的多维空间。例如,用户动作嵌入174可以是256个值的向量。下面关于图3A和3B描述生成用户动作嵌入和命令束嵌入的实现的附加描述。
[0068] 评分模块128利用用户动作嵌入174和命令束嵌入175来生成经过滤的命令束172的评分。例如,经过滤的命令束172中的一个的评分可以基于用户动作嵌入174与该经过滤的命令束的命令束嵌入的比较。例如,评分可以基于多维空间中的两个嵌入之间的欧几里得距离(例如,余弦相似度量度)。命令束的评分可以可选地进一步基于附加度量,诸如命令束的(通过多个用户的)评级、(在整个用户群中)命令束的使用数量和/或使用频率等。例如,命令束的评分可以基于以下功能:用户动作嵌入和命令束的命令束嵌入之间的余弦相似度量度;指示命令束的用户指派评级的量度和/或指示命令束的流行度的量度。
[0069] 命令束176的评分被提供给推荐模块129。推荐模块129基于命令束176的评分向客户端设备106提供推荐177。推荐177中的每个可以针对对应的命令束,并且可以被提供以用于向客户端设备106的用户可听和/或图形呈现。例如,推荐177中的一个可以针对给定命令束,并且可以包括给定命令束的调用短语、给定命令束执行的动作的概要和/或与给定命令束有关的其他信息。
[0070] 推荐模块129可以在提供推荐177时基于命令束176的评分利用各种技术。例如,推荐模块129可以仅在该命令束的评分满足阈值时针对给定命令束提供推荐。而且,例如,推荐模块129可以提供多个推荐,每个推荐针对多个命令束中的对应一个,并且可以以基于多个命令束的评分的方式来提供多个推荐。例如,对于最佳评分命令束的推荐可以最显著地被呈现(例如,在顶部),对于次佳评分命令束的附加推荐可以次显著地被呈现(例如,第二个)等等。作为另一示例,可以提供X个最佳评分命令束的推荐以用于在客户端设备106处初始呈现,并且仅响应于指示期望接收附加推荐的进一步的用户接口输入来提供接下来的Y个最佳评分命令束。
[0071] 在一些实现中,推荐模块129独立于为推荐指定一个或多个搜索标准的查询来提供推荐。例如,推荐模块129可以提供推荐以在客户端设备106处的“推荐”接口中显示(和/或用于可听呈现),而无需接收基于指示推荐的搜索标准的用户的自然语言输入的任何查询(例如,独立于诸如“show me recommendations that include lighting control(向我展示包括照明控制的推荐)”的查询)。在一些其他实现中,推荐模块129响应于指定推荐的一个或多个搜索标准的查询来提供推荐。在那些实现中的一些中,查询可以被解析以识别用于过滤推荐的一个或多个标准,并且过滤模块126可以在生成经过滤的命令束172时应用该标准。例如,响应于查询“show me recommendations that include lighting control”,经过滤的命令束172可以仅包括包含“照明控制”动作的束,并且评分模块128可以在确定针对其向客户端设备106提供推荐的经滤波命令束172时和/或在确定如何提供推荐时(例如,在确定推荐的顺序和/或其他呈现显著性时)为那些经过滤的命令束172生成评分。
[0072] 现在参考图2B,提供了命令束引擎120如何响应于确定命令束被调用而响应的实现的示例。在图2B中,从客户端设备106接收命令束调用180。命令束调用180调用特定的命令束,并且可以例如是选择推荐177(图2A)中的对应一个和/或是提供自然语言输入,其包含推荐177中对应一个的调用短语。
[0073] 命令束引擎120接收命令束调用180或与命令束调用180相对应的经标注的输入(来自输入处理引擎112)。命令束引擎120确定与命令束调用180相对应的命令束。例如,命令束引擎120可以参考命令束数据库152确定命令束。
[0074] 在一些实现中,命令束的至少一个动作包括至少一个缺少固定值的槽位(即,具有明确的“未定义”或“可变”值的槽位,或者缺乏槽位的任何值的定义的槽位)。在那些实现中的一些中,例如当命令束调用180是用户对命令束的初始调用时,命令束引擎120提供槽位(即,缺少任何固定值的槽位)的值的提示181。响应于提示181,客户端设备106的用户可以利用一个或多个用户接口输入设备来提供一个或多个响应182。命令束引擎120可以利用对所确定的那些槽位(缺少任何固定值的槽位)的消解值187的响应。例如,输入处理引擎112可以处理对所生成的经标注的输入的响应,并且命令束引擎120可以基于这样的经标注的输入来消解值。命令束引擎120可以将槽位的消解值187存储在用户数据156(或其他数据库)中。这使得命令束引擎120能够响应于用户(通过客户端设备106或用户的另一个客户端设备)的命令束调用180的未来实例而使命令束的动作利用消解值187来执行——而无需再次向用户提示值和/或无需需要值的任何后续的用户确认。
[0075] 命令束引擎120还可以使代理命令183被传输到代理140A,并且使代理命令185被传输到代理140B。例如,命令束引擎120可以使调用/交互引擎118(图1)将命令传输到代理140A和140B。代理命令183和/或代理命令185每个可以可选地包括槽位的消解值的一个或多个对应——如使用响应182所确定的。代理140A响应于代理命令183生成响应内容184。响应内容184可以使一个或多个外围设备的状态被改变(例如,打开/关闭灯、调整亮度级别、调整输出颜色)——和/或可以被提供给输出引擎116,其可以使在客户端设备106处可听地和/或图形地提供对应的内容。代理140B响应于代理命令185生成响应内容186。响应内容
186可以使一个或多个外围设备的状态被变和/或可被提供给输出引擎116,这可使得在客户端设备106处可听地和/或图形地提供对应的内容。
[0076] 现在转向图3A和图3B,示出了动作模型154(图1)的实现的示例154A和154B,以及如何使用动作模型154A和154B来处理用户的助理交互数据173A和173B以生成用户动作嵌入174A和174B的示例。还提供了可以如何使用动作模型154A和154B来生成命令束的命令束嵌入的描述。
[0077] 在图3A中,示出了助理交互数据173A,并且助理交互数据173A包括多个动作指示173A1-N。多个动作指示173A1-N可以响应于用户经由与自动化助理交互的自动化助理接口提供的用户接口输入实例来指示自动化助理对给定用户执行的N个最近动作。以相对粗的粒度示出图3A的动作指示173A1-N。但是,可以提供更细粒度的动作指示。例如,代替动作指示
173A1所指示的“播放音乐”,动作指示173A1可以附加地指示所播放的音乐的流派(例如雷鬼或古典摇滚)和/或在执行“播放音乐”动作时与之交互的代理(例如,音乐代理1或音乐代理
2)。为了清楚起见,在图3A中示出了描述动作指示173A1-N的文本,并且在某些实现中可以将文本应用为输入。然而,应当理解,可以利用其他值。作为一个非限制性示例,可以用二进制值“0010”代替地指示“播放音乐”动作、可以用二进制值“0011”代替地指示“控制灯”动作等。
[0078] 在图3A中,多个动作指示173A1-N中的每一个被应用到动作模型154A的N个输入1541A1-N中的对应一个,并且可以可选地以任何顺序被应用。在一些其他实现中,以基于新近度的顺序来应用N个输入1541A1-N。例如,动作指示173A1可以对应于最近动作、动作指示
173A2可以对应于第二最近动作等。而且,在图3A中,多个动作指示173A1-N中的每一个被相等地加权。然而,在其他实现中,较近的动作指示可以比不太近的动作指示被更重地加权。
[0079] 一个或多个处理器可以在编码层1542A上处理输入动作指示173A1-N以生成用户动作嵌入174A。编码层1542A可以包括一个或多个神经网络层,诸如前馈神经网络层。在一些实现中,编码层1542A是来自编码器-解码器网络的编码层,该编码器-解码器网络利用大量的训练示例被训练以再生成所应用的动作指示。例如,训练示例中的每个可以包括:训练示例输入,其包括对应的动作指示;以及训练示例输出,其包括对应的动作指示。在训练期间,可以将训练示例的训练示例输入应用于编码层1542A,并且将编码层1542A的隐藏状态应用于解码层以生成具有与训练示例输入相同维度的预测输出。然后可以基于将预测输出与训练示例输出(与训练示例输入相同)进行比较来确定误差,并在解码层和编码层1542A上反向传播误差以更新解码层和编码层1542A的权重。以这种方式,对编码层1542A进行训练以生成被应用为输入的动作指示的压缩(condensed)表示,从而使得解码层能够生成再产生动作指示的预测。在训练编码器-解码器网络之后,可以将“编码器部分”用作编码层1542A,然后可以将编码层1542A的输出用于生成用户动作嵌入和命令束嵌入。
[0080] 虽然在图3A中未示出,可以通过使用动作模型154A,通过将命令束的动作的动作指示作为输入应用到动作模型154A来生成命令束嵌入——可选地,将“补零”值用于命令束中不存在的N个动作指示中的任何一个。例如,如果N是50,并且命令束仅包括5个动作,则“填充”值可以用于动作指示中的45个。一个或多个处理器可以在编码层1542A上处理命令束的输入动作指示,以生成针对命令束的命令束嵌入。
[0081] 在图3B中,多个动作指示173B1-N中的每一个指示对应的动作以及对应的动作的权重。例如,动作指示173B1指示“设置闹钟”动作和权重“0.2”。每个动作指示的权重可以基于用户的动作执行的新近性、用户的动作执行的发生数量和/或用户的动作执行的频率。例如,动作指示173B3的“控制灯”动作的权重0.3可以基于与图3B中明确指示的其他动作(均具有较小的权重)相比,该动作比较近、较多数量和/或频率较高地执行。
[0082] 在图3B中,动作模型154B的N个输入1541B1-N中的每一个对应于唯一动作指示。即,输入1541B1对应于“设置闹钟”动作,输入1541B2对应于“调整恒温器”动作等。在图3B中,每个动作指示173B1-N的权重可以被应用到它们对应的输入1541B1-N,并且在编码层1542B上被处理以生成用户动作嵌入174B。可以将“0”权重或其他空权重用于对于其没有对应的动作已经针对用户被执行和/或对于其权重以其他方式为“空”的任何输入1541B1-N。在一些实现中,编码层1542B是来自编码器-解码器网络的编码层,该编码器-解码器网络利用大量的训练示例来进行训练以再生成所应用的权重以用于动作指示。
[0083] 虽然未在图3B中示出,但是可以使用动作模型154B通过下述方式来生成命令束嵌入:针对与命令束的动作相对应的输入1541B1-N将“1”或其他值作为输入应用到动作模型154B——并且针对其他输入1541B1-N应用“0”或其他空权重。例如,对于仅包括“调整恒温器”和“控制灯”动作的命令束,可以将“1”应用于以下中的每一个输入1541B2和1541B3,并将“0”应用于所有其他输入。
[0084] 现在转向图4A和图4B,示出了客户端设备106(图1)的示例106A。客户端设备106A包括显示屏140,在图4A中,显示屏140图形地显示第一命令束的第一推荐177A、第二命令束的第二推荐177B以及可选的一个或多个附加推荐(由图4A的省略号指示)。在图4B中,显示屏140正在显示可能在初始调用图4A的推荐177A的命令束时发生的对话的示例以及在后续调用该命令束时可能发生的对话的示例。
[0085] 图4A和图4B的显示屏140还包括:用户可以选择以通过虚拟键盘生成用户接口输入的文本回复接口元素188;以及,用户可以选择以通过麦克风生成用户接口输入的语音回复接口元素189。在一些实现中,用户可以经由麦克风来生成用户接口输入而无需选择语音回复接口元素189的情况下经由麦克风来生成用户接口输入。例如,在对话期间,可能发生对经由麦克风的可听用户接口输入的主动监测,以消除了用户选择语音回复接口元素189的需求。在那些实现中的一些和/或在其他实现中,可以省略语音回复接口元素189。此外,在一些实现中,可以附加地和/或替代地省略文本回复接口元素188(例如,用户仅可以提供可听用户接口输入)。图4A和图4B的显示屏140还包括系统接口元素190A、190B、190C,系统接口元素190A、190B、190C可以由用户进行交互以使客户端设备106A执行一个或多个动作。在其他实现中,可以提供仅接受语音输入并且仅提供可听输出的“仅音频接口”计算设备(即,缺少显示屏的计算设备)。
[0086] 在图4A中,第一推荐177A显示第一命令束的调用短语(“good night”),以及由第一命令束执行的动作的指示。类似地,第二推荐177B显示第二命令束的调用短语(“good morning(早上好)”),以及第二命令束执行的动作的指示。如本文所述,推荐177A和177B可以基于它们对应的命令束的评分来被选择以用于呈现。此外,在一些实现中,推荐177A可以基于其对应命令束的评分呈现在推荐177B之上。例如,推荐可以基于它们对应的命令束的评分来排名,并且推荐177A基于其对应于最佳评分命令束被初始地呈现。
[0087] 在图4B中,与第一推荐177A(图4A)相关联的命令束已经响应于用户接口输入而被初始调用。例如,可以基于用户对推荐177A的选择(例如,推荐177A的“轻敲”)——或者基于用户说出(或键入)调用短语“good night”来初始调用命令束。注意,在一些实现中,用户可以使他/她自己的优选的调用短语被指派给命令束。可以使用这样的调用短语来代替“good night”调用短语或者作为附加的调用短语。例如,可以由用户提供和选择一个额外的接口元素,以针对用户将调用短语更改为“nighty night(晚安了)”——或者用户可以通过经由助理接口提供给自动化助理的口头命令来更改调用短语(例如,“when I say‘nighty night’,run the‘good night’bundle(当我说‘晚安了’时,运行‘晚安’束)”)。
[0088] 在图4B中,与第一推荐177A相关联的命令束缺少“关闭灯”动作的“灯识别符”槽位的固定值。基于此,自动化助理向用户提供提示482A,该提示482A索求用户提供输入以使得能够实现“灯识别符”槽位的值的消解。作为响应,用户提供为“全部”的输入480A,可以将其消解为识别与自动化助理相关联的用户的所有灯的值。
[0089] 在图4B中,与第一推荐177A相关联的命令束也缺少“设置闹钟”动作的“闹钟时间”槽位的固定值。基于此,自动化助理向用户提供提示482B,该提示482B索求用户提供输入以使得能够实现“闹钟时间”槽位的值的消解。作为响应,用户提供为“8:00AM”的输入480B,可以将其消解为对应的时间值。
[0090] 然后,自动化助理提供指示值已被消解的输出482C,并且还向用户指令可以提供以更改已消解的值和/或更改命令束的调用短语的进一步的用户接口输入。在一些实现中,自动化助理可以针对用户进一步提示用户以确保用户想要将已消解的值存储为命令束的“默认值”——并且在如此做之前可以作为响应可选地要求肯定的用户接口输入。此外,在这些实现中的一些实现中,自动化助理可以附加地或替代地提供输出,该输出使用户能够代替地在每次调用命令束时选择被提示用户希望用于“灯识别符”槽位和/或“闹钟时间”槽位的该实例的值。
[0091] 图4B还示出了用户在稍后的时间提供为“good night”的后续输入480C。自动化助理可以确定输入480C是命令束的调用短语,并且作为响应,可以使命令束的动作使用通过提示482A、482B和输入480A和480B确定的消解值来执行。然后,自动化助理提供指示已使用消解值执行“关闭灯”和“设置闹钟”动作的进一步输出482D,并响应于“获取明天的天气预报”动作(对于其可以使用固定的“当地天气”值)提供从代理接收到的“Tomorrow looks sunny with a high of 82 degrees(明日看起来晴,高达82度)”输出。在其他实现中,进一步的输出482D可以可选地缺少对消解值被用于“关闭灯”和“设置闹钟”动作的确认。例如,可以代替地提供“Lights are off and alarm set.Tomorrow looks sunny with a high of 82degrees(灯关闭且闹钟被设置。明天看起来晴,高达82度)”的输出。
[0092] 图5是示出根据本文公开的实现的示例方法500的流程图。为了方便起见,参考执行操作的系统描述图5的流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如自动化助理110的一个或多个组件。此外,虽然以特定顺序示出了方法500的操作,但这并不意指是限制性的。可能会重新排序、省略或添加一个或多个操作。
[0093] 在框550处,系统识别命令束的语料库。
[0094] 在框552处,系统基于一个或多个标准来识别命令束的子集。如果这些命令束包括要求对于用户而言尚未与自动化助理应用配对的任何外围设备的动作,则标准可以包括例如从子集中排除命令束。如果外围设备已由助理应用“发现”,并且可以由助理应用控制,则对于用户而言该外围设备与自动化助理应用配对。在一些实现中,如果那些命令束包括需要对于用户而言尚未通过用户输入和/或一个或多个网络分组检测到其存在的任何外围设备的动作,则标准可替代地包括例如从子集中排除命令束。在这样的示例中,即使外围设备未明确配对,也仍然可以包括包含要求给定外围设备的动作的命令束。例如,即使外围设备尚未被自动化助理明确地“发现”(例如,响应于“发现请求”,该“发现请求”响应于明确用户接口输入而发起),也可以基于用户输入(例如,指示用户具有外围设备)和/或网络分组(具有指示由外围设备生成的特性)来检测给定的外围设备。可以考虑附加和/或替代标准,诸如本文其他地方描述的一个或多个标准。在一些实现中,可以省略框552,并且在后续框中考虑语料库的所有命令束。
[0095] 在框554处,系统识别在方法500的迭代中正在考虑的用户的助理交互数据。
[0096] 在框556处,系统基于在框554处识别的助理交互数据为用户生成用户动作嵌入。
[0097] 在框558处,系统确定框552的子集的命令束的命令束嵌入。例如,系统可能已经预生成了命令束嵌入,与它们的对应的命令束关联地存储了预生成的命令束嵌入,并且从存储中检索那些预生成的命令束嵌入。
[0098] 在框560处,系统针对子集的命令束中的每个,基于用户动作嵌入和命令束嵌入来生成相似度评分。例如,对于给定命令束,相似度评分可以至少部分地基于用户动作嵌入和给定命令束的命令束嵌入之间的余弦相似度量度。
[0099] 在框562处,系统基于框560的相似度评分中的一个或多个呈现命令束中的一个或多个的一个或多个推荐。例如,系统可以至少部分地基于相似度评分来对命令束进行排名,基于排名选择命令束中的一个或多个,并呈现与所选命令束有关的信息作为推荐。
[0100] 在框564处,系统可选地为用户定制未消解的槽位(如果有的话),以用于推荐中的一个的命令束中的一个的动作。在一些实现中,系统呈现一个或多个提示,并利用对提示的一个或多个响应来消解槽位的值,从而定制未消解的槽位。在那些实现中的一些中,响应于以下来呈现提示:对推荐中的一个的选择、接收推荐中的一个的命令束的调用短语和/或其他用户接口输入,该其他用户接口输入指示使命令束的动作执行的期望和/或将命令束与用户相关联。
[0101] 在框566处,系统响应于对命令束的调用而执行推荐中的一个的命令束的动作。可以可选地使用框564的定制值中的一个或多个来执行动作。在一些实现中,执行动作包括将一个或多个代理命令传输到一个或多个代理,并且可选地在代理命令中的一个或多个中包括代理命令的槽位的定制值中的一个或多个。
[0102] 图6是示例计算设备610的框图,该示例计算设备610可以可选地用于执行本文描述的技术的一个或多个方面。在一些实现中,以下中的一个或多个可以包括示例计算设备610的一个或多个组件:客户端设备106、自动化助理110、代理和/或其他组件。
[0103] 计算设备610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备进行通信。这些外围设备可以包括例如包括存储器子系统625和文件存储子系统626的存储子系统624、用户接口输出设备620、用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口并耦合到其他计算设备中的对应的接口设备。
[0104] 用户接口输入设备622可以包括:键盘;定点设备,诸如鼠标轨迹球触摸板或图形输入板;扫描仪;合并在显示器中的触摸屏;音频输入设备,诸如语音识别系统、麦克风;和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备
610中或通信网络上的所有可能类型的设备和方式。
[0105] 用户接口输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或一些其他用于创建可见图像的机制。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。通常,术语“输出设备”的使用旨在包括从计算设备610向用户或另一台机器或计算设备输出信息的所有可能类型的设备以及方式。
[0106] 存储子系统624存储提供本文所述的一些或所有模块的功能性的程序和数据构造。例如,存储子系统624可以包括执行图5的方法和/或本文描述的其他方法的所选方面的逻辑。
[0107] 这些软件模块通常由处理器614单独或与其他处理器结合执行。在存储子系统624中使用的存储器625可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)630以及其中存储了固定指令的只读存储器(ROM)632。文件存储子系统626可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实现某些实现的功能性的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在处理器614可访问的其他机器中。
[0108] 总线子系统612提供了一种机制,该机制使计算设备610的各种组件和子系统按预期彼此通信。虽然总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实现可以使用多个总线。
[0109] 计算设备610可以具有各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,因此图6中所描绘的计算设备610的描述仅旨在为了说明一些实现的目的而作为特定示例。计算设备610的许多其他配置可能具有比图6中描绘的计算设备更多或更少的组件。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈