首页> 中国专利> 要经由自动助理执行的一系列所请求的动作的协调执行

要经由自动助理执行的一系列所请求的动作的协调执行

摘要

本文中阐述了用于经由对自动助理的口头话语创建用户所请求的动作的执行顺序的实施方式。所请求的动作的执行顺序可以是基于每个所请求的动作如何能够或被预测影响其他所请求的动作。在一些实施方式中,可以基于机器学习模型的输出来确定一系列动作的执行顺序,所述机器学习模型诸如是根据监督学习而已训练的模型。至少相对于其他可能的执行顺序,可以选择特定的执行顺序来减轻处理、内存和网络资源的浪费。使用表征自动助理的过去执行的交互数据,可以随时间适应某些执行顺序,从而允许自动助理从与一个或多个用户的过去交互中进行学习。

著录项

说明书

背景技术

人类可以使用本文称为“自动助理”(也称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“助理应用”、“会话代理”等)来参与人机对话。例如,人类(当他们与自动助理交互时可以称为“用户”)可以使用在一些情况下可以被转换为文本并且然后进行处理的口头自然语言输入(即,话语)和/或通过提供文本(例如,键入的)自然语言输入来向自动助理提供命令和/或请求。自动助理通过提供响应的用户界面输出来响应请求,该用户界面输出可以包括可听和/或可视的用户界面输出。

在许多情况下,自动助理可以根据用户在指定所请求的动作时阐述的顺序来排他地执行动作。这能够证明是有问题的,特别是当用户提供包括对要执行的多个不同动作的请求的单个自然语言输入时。例如,用户能够按照用户在讲出请求之前可能尚未充分地考虑的顺序阐述对要执行的一系列动作的请求。结果,可能无意地延迟否则可能被相对较快地执行的某些动作,从而将等待时间和其他计算低效引入到自动助理的某些性能方面中。

作为一个示例,如果用户请求提供媒体流并执行web搜索,则自动助理可以因此优先考虑提供媒体流,从而延迟web查询的执行—其在许多情况下否则能够被相对较快地执行。如果当正在提供连续媒体回放时用户忘记web查询,则用户可以随后重新发出同一请求,从而在处理重复请求上浪费计算资源。此外,当自动助理排他地依靠用户指示要执行的动作序列的顺序时,可能不顺序地安排诸如下载、缓存和/或渲染数据的某些过程以便以最佳方式执行。

发明内容

本文描述的是与用于为多个所请求的自动助理动作创建执行顺序的系统、方法和装置有关的实现方式。具体地,用户能够经由单个口头话语来请求动作,并且能够根据每个所请求的动作能够或被预测为如何影响另一所请求的动作来安排动作的执行顺序。例如,口头话语能够包括对要执行的多个动作的请求,并且多个动作中的至少一个动作能够对应于对话发起查询。如果要在其他多个动作之前优先考虑对话发起查询,则其他动作的执行将被推迟直到用户与自动助理之间的对话完成了为止。因此,为了减轻动作的请求和执行之间的延迟时间,能够将对话发起查询指配为多个所请求的动作中的要完成的最后动作。用户因此能够将命令提交给设备或系统,这些命令然后被解释以得到更高效的性能。也就是说,由于执行顺序能够由系统、方法或装置确定,所以用户不需要将最高效形式的命令输入与最高效形式的命令执行相协调。因此提高了交互的容易和效率。

作为一个示例,用户能够提供诸如“Assistant,set an alarm for tomorrow andalso could you tell me the weather for tomorrow?(助理,设置明天的闹钟并且你还能告诉我明天的天气吗?)”的口头话语。自动助理能够接收该口头话语并且确定该口头话语包括用于设置闹钟的第一请求和用于提供天气报告的第二请求。此外,自动助理能够确定设置闹钟需要用户提供补充信息,并且因此,需要处理进一步对话。例如,自动助理可能必须生成包括对闹钟的时间的请求的自然语言输出,并且自动助理可能必须处理来自用户的标识闹钟的时间的后续输入。附加地,自动助理能够确定提供天气报告需要通过互联网提交请求、作为响应接收天气数据并且将天气数据转换为用于用户的自然语言输出。因此,至少基于第一请求需要来自用户的进一步信息而第二请求不需要与用户进行任何进一步对话,自动助理能够通过在履行第一请求之前履行第二请求来命令动作的执行。换句话说,至少基于闹钟的设置需要来自用户的进一步信息,用户将在参与用于设置闹钟的对话会话之前接收天气报告。

在一些实现方式中,能够根据所请求的动作中的一个或多个导致持续输出还是被预测为相对于其他请求动作导致持续输出来安排由用户执行的所请求的动作。换句话说,能够根据所请求的动作中的一个或多个是否会导致来自特定模态的会干扰其他请求动作中的一个或多个的执行的输出来安排要应用户请求而执行的动作。例如,用户能够提供诸如“Assistant,play my morning playlist and tell me the weather(助理,播放我的早晨播放列表并告诉我天气)”的口头话语。响应于自动助理接收到该口头话语,自动助理能够标识播放早晨播放列表的第一请求动作和给用户提供天气报告的第二请求动作。此外,自动助理能够确定提供天气报告将导致在第一时间段内提供可听的天气报告,而播放早晨播放列表将导致在第二时间段内提供可听的音乐。附加地,自动助理能够确定第二时间段大于第一时间段,因此,自动助理能够命令动作的执行,使得在第一请求动作之前执行第二请求动作。换句话说,因为将天气报告提供给用户与提供早晨播放列表相比会花费更少的时间,所以自动助理能够使天气报告优先于播放早晨播放列表的音乐。以这种方式,动作的优先化能够基于一个特定动作的执行时间的估计量是否超出另一特定动作的执行时间的估计量。

在一些实现方式中,当用户提供了包括要回放多个媒体项的请求的口头话语时,能够根据在该口头话语中指定的顺序来安排用于回放媒体项的动作的顺序。例如,当用户提供诸如“Assistant,play the songs‘For Once in My Life’and‘I Was Made to LoveHer’(助理,播放歌曲‘For Once in My Life’和‘I Was Made to Love Her’)”的口头话语时。作为响应,自动助理能够按照用户指定的顺序播放两首歌曲中的每一首,而无论用户是否有意指定了顺序。然而,在一些实现方式中,用户能够显式地指定在一个或多个媒体项的回放之后执行一个或多个动作。例如,用户能够提供诸如“Assistant,play the song‘Superstition’and then remind me to set up the security alarm(助理,播放歌曲‘Superstition’然后提醒我设置安全闹钟)”的口头话语。作为响应,因为用户为动作的执行指定了特定条件,所以自动助理能够接收此口头话语并且使得回放所指定的媒体项,然后向用户提供要设置其安全闹钟的提醒。

在一些实现方式中,当用户提供包括调度特定任务或事件的第一动作以及至少部分地取决于第一动作完成的结果的第二动作的口头话语时,自动助理能够延迟第二动作直到第一动作完成为止。例如,用户能够提供诸如“Assistant,book me a ticket for amovie this Friday,and then book a table at a restaurant after the movie(助理,为我预订这个星期五的电影票,然后在电影之后在餐馆预订座位)”的口头话语。响应于接收到该口头话语,自动助理能够确定完成每个动作所必需的参数。例如,为了预订电影票,自动助理需要确定在指定日期电影的播放时间。此外,为了在餐馆预订座位,自动助理需要用于预订预约餐馆的时间的参数。然而,为了减轻所交换的对话量,并且为了保存计算和/或网络资源,自动助理能够基于以下各项确定餐馆的估计预约时间:电影的时间、电影的长度、电影院到餐馆的距离和/或可能影响应该何时预订预约餐馆的任何其他因素。

在一些实现方式中,用户能够提供包括命令自动助理打开特定应用并使用该应用来执行特定动作的口头话语。然而,用户可以以相对于将执行动作的应用不可知的方式提供口头话语。例如,用户能够提供诸如“Assistant open my auction application andtell me how much a box of avocado seeds are(助理打开我的拍卖应用并告诉我一盒鳄梨种子多少钱)”的口头话语。作为响应,自动助理能够确定打开拍卖应用并提供某些商品的价格的动作彼此相关联。在一些实现方式中,自动助理能够量化两个请求之间的相关性。当量化相关性满足特定阈值时,自动助理能够试图使用由用户标识的应用来执行由用户请求的另一动作。以这种方式,不仅执行顺序将由自动助理确定—假定将需要在执行动作之前打开应用,而且有关用于执行动作的应用的歧义能够由自动助理解析。

在一些实现方式中,能够随着时间的推移而学习对请求动作的执行的重新排序。例如,在一些实现方式中,能够使用来自用户的反馈来学习自动助理是否准确地或不准确地排序了某些请求动作的执行。例如,当用户提供包括对执行多个动作的请求的口头话语并且自动助理开始执行用户不打算优先于其他动作的动作时,用户能够提供已错误地初始化了动作的执行的指示。用户能够通过向显示面板提供用于中断由自动助理正在执行的动作的输入来中断动作的执行,并且/或者提供诸如“stop(停止)”的口头话语以用于停止动作的正在进行的执行。此后,可以依靠这种反馈或输入来在用户再次请求动作时校正动作的排序。

在一些实现方式中,能够分析表征用户与自动助理之间的交互的历史交互数据以确定导致了对来自用户的附加输入的请求的特定动作。以这种方式,自动助理能够标识通常导致了进一步交互的动作和未导致进一步交互的动作。此后,当用户提供用于请求执行某些动作的口头话语时,自动助理能够优先考虑或不优先考虑导致了从用户请求附加输入的那些特定动作。

在一些实现方式中,表征各种用户与其相应的自动助理之间的交互的历史交互数据能够用于确定要响应于口头话语而执行的动作的排序。例如,用户能够提供诸如“Assistant,play my morning playlist and tell me the weather”的口头话语。作为响应,当一个或多个用户请求了那些特定动作时自动助理能够访问表征先前实例的历史交互数据,或者否则基于表征先前实例的历史交互数据被训练。具体地,自动助理能够确定用户经常在早晨请求音乐之前请求天气报告。因此,响应于从用户接收到口头话语,自动助理能够对所请求的动作进行重新排序,使得在早晨播放列表之前提供天气报告。在一些实现方式中,历史交互数据能够指示或以其他方式表征用户在单个口头话语中和/或在单独的时间(但是任选地在彼此的阈值时间内)请求了两个动作的实例,但是仍然请求以特定顺序更频繁地执行两个动作。自动助理因此能够针对这些动作标识最频繁地执行的执行顺序,并且相应地对任何请求的动作的执行进行重新排序。

在一些实现方式中,当用户提供包括对要执行的多个动作的请求的口头言语并且一个动作对应于对个人消息的请求时,能够延迟个人消息直到任何其他动作完成为止。例如,当用户提供诸如“Talk to you tomorrow,and please set an alarm for 8A.M.tomorrow(明天与您交谈,请设置明天上午8点的闹钟)”的口头话语时,自动助理能够接收此口头话语,并且确定该口头话语包括对个人消息的请求和对要配置闹钟的请求。作为响应,自动助理能够使设置闹钟优先于提供个人消息。因此,当自动助理对口头话语做出响应时,自动助理能够使得提供自然语言输出,诸如“Ok,I set the alarm.Good night,Jim(好的,我设置了闹钟。晚安,Jim)”。以这种方式,能够使具有较高效用的动作优先于可能不以其他方式影响用户的时间表、用户的环境、用户可访问的设备和/或与用户相关联的任何其他特征的动作。

在一些实现方式中,一种由一个或多个处理器实现的方法被提出为包括诸如从用户接收表征口头话语的音频数据的操作,其中,口头话语包括对要经由自动助理执行的多个动作的请求,并且在计算设备的自动助理界面处接收该口头话语。操作能够进一步包括:基于表征口头话语的音频数据,标识由用户请求的要经由自动助理执行的多个动作中的每个动作,其中,对要执行的多个动作的请求根据第一动作顺序在口头话语中被提出。操作能够进一步包括:基于标识多个动作中的每个动作,确定多个动作中的每个动作的执行特性,其中,当多个动作由一个或多个计算设备根据第一动作顺序来执行时多个动作中的动作的特定执行特性影响多个动作的执行的时间方面,并且其中,确定多个动作中的每个动作的执行特性包括访问在计算设备和/或单独的计算设备处基于多个动作中的一个或多个动作的过去执行来生成的数据。操作能够进一步包括:基于多个动作中的动作的特定执行特性,确定用于执行多个动作的第二动作顺序,其中,当第二动作顺序由一个或多个计算设备执行时,所述第二动作顺序使一个或多个计算设备展出多个动作的执行的不同时间方面。操作能够进一步包括:基于确定第二动作顺序,使自动助理根据第二动作顺序来初始化多个动作中的一个或多个动作的执行。

在一些实现方式中,确定第二动作顺序包括:处理来自经训练的神经网络模型的输出数据,该经训练的神经网络模型已使用表征用户与自动助理之间的至少一个或多个先前交互的历史交互数据来训练。在一些实现方式中,历史交互数据进一步表征涉及先前已与自动助理交互以促进使自动助理执行各种动作序列的其他用户的多个交互。在一些实现方式中,历史交互数据进一步表征由用户提供给自动助理以便影响先前请求动作的执行顺序的反馈。在一些实现方式中,多个动作中的动作的特定执行特性将动作表征为对话发起动作,并且将在用户与自动助理之间发生补充对话会话以便用户标识要指配给动作的参数的值。

在一些实现方式中,根据第一动作顺序的多个动作的执行的时间方面包括至少多个动作中的一个或多个动作的估计执行时间,并且方法进一步包括:当根据第一动作顺序执行多个动作时确定补充对话会话被预测延长一个或多个动作的估计执行时间。在一些实现方式中,多个动作中的另一动作包括提供连续媒体回放,并且第二动作顺序使对话发起动作优先于包括提供连续媒体回放的其他动作。在一些实现方式中,使自动助理根据第二动作顺序来初始化多个动作中的至少一个动作的执行包括:生成给用户提供已根据第二动作顺序初始化了多个动作中的所述至少一个动作的指示的自然语言输出。

在其他实现方式中,一种由一个或多个处理器实现的方法被提出为包括诸如处理表征来自用户的请求自动助理执行多个动作的口头话语的音频数据的操作,其中,多个动作由用户根据第一动作顺序表征在口头话语中。方法能够进一步包括:基于处理音频数据,确定用于由用户请求的多个动作中的每个动作的动作分类,其中,多个动作中的特定动作的特定动作分类包括根据至少一个参数执行的对话发起动作。方法能够进一步包括确定用户是否在口头话语中指定了至少一个参数的值。方法能够进一步包括,当在口头话语中未指定至少一个参数的值时:生成用于多个动作的第二动作顺序,其中,第二动作顺序使对话发起动作基于在口头话语中未指定至少一个参数的值而相对于多个动作中的另一动作具有降低的优先级。

方法能够进一步包括,当在口头话语中指定了至少一个参数时:生成用于多个动作的第三动作顺序,其中,第三动作顺序使对话发起动作具有不受用户在口头话语中指定至少一个参数的值影响的优先级。方法能够进一步包括,确定动作分类包括针对多个动作中的每个动作,确定该动作是否对应于连续媒体回放,并且方法进一步包括:当多个动作中的所请求的动作包括连续媒体回放动作时:生成第二动作顺序或第三动作顺序以优先考虑所请求的动作,使得所请求的动作在时间上相对于多个动作中的其他动作被稍后执行。方法能够进一步包括:确定用户是否显式地指定了用于执行多个动作中的至少一个动作的时间条件;以及当用户已显式地指定了用于执行多个动作中的至少一个动作的时间条件时:生成第二动作顺序或第三动作顺序以遵守用于执行多个动作中的至少一个动作的时间条件。方法能够进一步包括其中,当特定动作是由用户显式地请求的受时间条件影响的至少一个动作时,自动助理被配置成根据时间条件来覆盖第二动作顺序或第三动作顺序。

在仍然其他的实现方式中,一种由一个或多个处理器实现的方法被提出为包括诸如确定用户已提供了口头话语的操作,该口头话语包括对自动助理执行包括第一类型的动作和第二类型的动作的多个动作的请求,其中,用户可经由计算设备的自动助理界面访问自动助理。方法能够进一步包括:响应于用户提供口头话语,当在多个动作的执行期间第二类型的动作优先于第一类型的动作时生成用于第一类型的动作的估计延迟。方法能够进一步包括:基于估计延迟,确定用于第一类型的动作的估计延迟是否满足阈值,其中,当用于第一类型的动作的估计延迟满足阈值时,第一类型的动作的执行优先于第二类型的动作。方法能够进一步包括:基于估计延迟是否满足阈值,生成用于由用户请求的多个动作的优选的执行顺序。方法能够进一步包括使自动助理根据优选的执行顺序来初始化多个动作的执行。

在一些实现方式中,方法能够进一步包括确定用于由用户请求的多个动作中的每个动作的动作分类,其中,自动助理被配置成使动作的至少一种特定分类优先于动作的至少一种其他分类。在一些实现方式中,第一类型的动作包括对话发起动作而第二类型的动作包括媒体回放动作。在一些实现方式中,媒体回放动作被配置成在单独的计算设备处被至少部分地执行,并且方法进一步包括:当对话发起动作优先于媒体回放动作时:与使单独的设备初始化用于执行媒体回放动作的应用同时地使所述对话发起动作在计算设备处被初始化。在一些实现方式中,方法能够进一步包括,当媒体回放动作优先于对话发起动作时:使自动助理提供与对话相对应的自然语言输出以促进完成对话发起动作,以及当对话发起动作完成时:使自动助理在计算设备或单独的计算设备处初始化媒体回放动作的执行。

在一些实现方式中,对话发起动作当被执行时,包括初始化用户与自动助理之间的对话会话以便用户标识要指配给参数的值以促进完成对话发起动作。在一些实现方式中,媒体回放动作当被执行时,包括初始化可经由一个或多个文件访问的媒体的回放,并且估计延迟基于一个或多个文件的文件长度的总数。在一些实现方式中,媒体回放动作当被执行时,包括初始化可经由一个或多个网络源访问的媒体的回放,并且估计延迟基于可经由一个或多个网络源访问的时间数据。

其他实施方式可以包括存储可以由一个或多个处理器(例如,中央处理器(CPU)、图形处理单元(GPU))和/或张量处理单元(TPU)执行的指令的非暂时性计算机可读存储介质以执行诸如上面和/或本文其他地方描述的一种或多种方法的方法。进一步的其它的实施方式可以包括一个或多个计算机和/或一个或者多个机器人的系统,其包括可操作来执行所存储的指令以执行诸如上面和/或本文其他地方描述的一种或多种方法的方法的一个和多个处理器。

应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1图示用户使用口头话语来调用自动助理以便使自动助理执行一系列动作的视图。

图2图示用户调用自动助理以执行多个不同动作并且使自动助理重新排列动作顺序的视图。

图3图示用于修改经由自动助理执行的所请求的动作集的执行顺序以便消除处理资源和网络资源的浪费的系统。

图4图示至少根据使用经训练的机器学习模型的处理来确定自动助理要执行的动作顺序的方法。

图5图示用于根据动作的分类来排列动作序列的方法。

图6是示例计算机系统的框图。

具体实施方式

图1图示用户108使用口头话语102调用自动助理以使自动助理执行一系列动作的视图100。具体地,视图100提供自动助理如何可以修改所请求的一系列动作的顺序以便提供对计算资源的更有效利用的图示。例如,用户108可以位于他们的家的区域106内,该区域可以包括客户端设备124和另一个设备110。客户端设备124和其它设备110中的每个设备可以提供对自动助理的访问。例如,客户端设备124可以经由一个或多个助理界面128提供对客户端自动助理126的访问。助理界面128可以是一个或多个设备或一组设备,其能够从用户108接收输入和/或向用户108提供输出。例如,助理界面128可以包括一个或多个麦克风和一个或多个音频扬声器。可替代地或另外,助理界面128可以包括一个或多个触摸显示面板和/或一个或多个相机。可以在客户端设备124和/或远程计算设备118(诸如服务器设备120)处为客户端自动助理126生成输入和输出。服务器设备120可以包括服务器自动助理122,其可以为如本文讨论的输入和输出处理提供支持。

当用户108提供包括用于自动助理(即,客户端自动助理126和/或服务器自动助理122)执行多个不同动作的口头话语的口头话语102时,客户端自动助理126可以接收口头话语102并确定多个不同动作的顺序。例如,口头话语102可以是“Assistant,play myevening playlist,set an alarm,and tell me the weather for tomorrow(助理,播放我的夜间播放列表,设置闹钟,并告诉我明天的天气)”。口头话语102可以以第一顺序描述所请求的动作,其提出播放晚上播放列表,然后设置闹钟,然后提供天气报告。但是,响应于接收到口头话语102,自动助理可以确定不同顺序应比另一执行顺序更有效或更适合于用户108。

客户端自动助理126和/或客户端设备124可以将口头话语102转换为音频数据,该音频数据可以经由网络130(例如,互联网)从客户端设备124传送到服务器设备120。服务器设备120和/或服务器自动助理122可以将音频数据转换为文本数据,并且然后解析文本数据以标识用户108所请求的动作,如本文所讨论的。在一些实施方式中,可以使用经训练的机器学习模型来处理动作的标识符,以生成指示动作的第二执行顺序的输出。在其他实施方式中,可以标识所请求的动作的分类,并且基于用户所请求的动作的分类,可以生成动作的第二执行顺序。

另外地或可替代地,当确定动作的第二执行顺序时,还可以处理与用户108、区域106和/或可以与用户108相关联的任何其他特征相关联的场境数据。例如,场境数据可以指示用户108位于区域106内,该区域包括客户端设备124(诸如独立扬声器设备112)和另一设备110(诸如触摸显示设备)。因此,响应于接收到口头话语102并访问场境数据,自动助理可以确定要由客户端设备124执行的动作的顺序以及要由其它设备110执行的动作的顺序。例如,自动助理可以使客户端设备124被指配设置闹钟和播放晚上播放列表的动作。此外,自动助理可以使另一设备110被指配提供明天的天气报告的动作。具体地,自动助理可以使天气报告显示在另一设备110的显示面板上,从而减轻对话会话的中断,该中断可能发生在用户108和自动助理之间,用于设置闹钟。

在一些实施方式中,可以使用机器学习模型以及与动作相关联的其他数据来处理口述口头话语102中所请求的动作的标识符。例如,其他数据可以包括正在接收口头话语102的设备的类型、接收到口头话语102的一天中的时间、提供口头话语102的用户108的标识符、所请求的动作中的每个动作的总执行时间量或估计执行时间量、和/或可以适合于表征所请求的动作的特征的任何其他数据。基于已处理的一个或多个输入,机器学习模型可用于生成表征用于执行所请求的动作的顺序的输出。使用机器学习模型生成的输出可以与客户端设备124和/或其他设备110共享。

响应于接收到由服务器设备120生成的、和/或响应于接收到口头话语102而生成的执行顺序,客户端设备124可以初始化动作的执行。例如,客户端自动助理126可以提供自然语言输出104以促进完成动作。如图1中所指示,可以使对天气报告的请求优先于设置闹钟,并且可以使对闹钟的设置优先于播放晚上播放列表。因此,前述动作顺序可以使自然语言输出104最初合并天气报告。具体而言,自然语言输出104可以包括天气报告,诸如“Theweather for tomorrow is sunny,with a high of 75 degrees and a low of 66degrees(明天的天气晴朗,高75度,低66度)”。在完成第一动作(例如,天气报告)之后,客户自动助理126可以初始化第二动作的执行(例如,设置第二天的闹钟)。当执行第二动作时,客户端自动助理126可以通过提供自然语言输出(诸如“What time would you like toset your alarm for tomorrow?(您希望设置明天的闹钟在什么时间?)”)来初始化与用户108的对话会话。并且作为响应,用户108可以提供口头话语102,诸如“7:00A.M.,please(请设置在上午7:00)”。

作为响应,客户端自动助理126可以通过提供自然语言输出104(诸如“Ok(确定)”)来提供对口头话语102的确认。此后,并且响应于完成第二动作,客户端自动助理126可以以动作的第二顺序来初始化第三动作的执行。具体地,客户端自动助理126可以初始化晚上播放列表的回放,该晚上播放列表可以是由用户108设置以在晚上期间优选地播放的歌曲的列表。因此,尽管用户108提供了对要根据第一执行顺序执行动作的请求,但是自动助理可以重新排列执行顺序,以便确保最小化每个动作的执行时间。例如,如果应首先执行晚上播放列表,则设置闹钟和提供天气报告将已经延迟直到达到播放列表结束为止。此外,如果播放列表的回放将一直延续到第二天,则将在第二天执行对“tomorrow(明天)”的天气的请求,从而将天气报告的目标日期更改为其后的一天。对目标日期的改变将浪费计算资源,尤其是如果用户必须提供另一种口头话语以便再次指定天气报告应对应的确切日期。

图2图示用户208调用自动助理以执行多个不同动作并使自动助理重新排列动作的顺序的视图200。例如,用户208可以提供诸如“Assistant,play my show,set an alarm,and tell me the weather for tomorrow”的口头话语202。“play my show(播放我的节目)”的请求可以对应于连续的媒体回放动作,该动作可以涉及一个或多个子任务,诸如下载和缓存媒体的一部分,并且随后初始化下载的媒体的回放。此外,“set an alarm(设置闹钟)”的请求可以包括一个或多个子任务,诸如生成自然语言输出、处理来自用户的后续自然语言输入以及基于来自于用户的自然语言输入的内容来设置闹钟。

在各种实施方式中,为了在执行多个不同动作时节省计算资源并消除时延,可以利用机器学习模型和/或能够确定特定动作的执行顺序的一个或多个模块来确定动作的顺序以及相应的子任务。在一些实施方式中,可以使用监督学习来训练机器学习模型。在那些实施方式中的一些中,利用肯定的训练示例,其包括标识请求中的自动助理动作的数据以及可选地一个或多个场境值作为训练示例输入。标识自动助理动作的数据可以包括例如动作的意图和可选的参数。例如,对于在智能电视上流传输“show X(节目X)”的动作,意图可以是“流媒体”,并且参数可以包括媒体的类型(例如,电视节目类型)、媒体的持续时间(例如,30分钟)和/或用于接收该流的目标设备。一个或多个场境值可以包括,例如,经由其接收请求的设备、一天中的时间、一周中的一天等。训练示例输入可以可选地具有由在为其训练机器学习模型的动作的最大数量的口述的固定维度,并且可以在训练示例中包括小于动作的最大数量的“空”值。例如,动作的最大数目可以是五个,并且对于在请求中包括三个动作的训练示例输入,可以将标识三个动作中的每个动作的数据包括在训练示例输入中,并且可以为其余的两个动作提供空数据。

肯定的训练示例可以进一步包括标识在训练示例输入中标识的动作的特定顺序的数据作为训练示例输出。特定顺序是优选顺序,其可以被确定为利用各种技术的优选顺序。例如,针对肯定的训练示例的训练示例输出的“动作3、动作1、动作2”的特定顺序可以基于人类标记(例如,对“动作3、动作1、动作2”顺序的显式标记)、用户在单个请求中明确指定优选顺序的过去发生(例如“Assistant,first perform Action3,then Action1,and thenAction 2(助理,先执行动作3,然后执行动作1,并且然后执行动作2”))、和/或用户在临时彼此接近的单独请求中指定优选顺序的过去发生(例如,“Assistant,perform Action3”,followed within one minute by“Assistant,perform Action1(助理,执行动作3)”,接着在一分钟之内“Assistant,perform Action1(助理,执行动作1)”,并且接着在一分钟之内“Assistant Action 2(助理,执行动作2)”)。另外,例如,用于肯定的训练示例的训练示例输出的特定顺序的“动作3、动作1、动作2”可以基于以比在任何替代特定顺序下执行动作都计算更有效的特定顺序执行动作的过去发生。例如,可以基于特定命令的过去发生平均耗费33.5秒来完成选择“动作3、动作1、动作2”的特定顺序,而所有替代特定命令的过去发生每个平均耗费34.0秒以上才能完成。特定顺序的平均完成时间较短,可能是由于例如导致用户对提示的响应更快的要在某个时间呈现动作之一的提示、与滞后和/或相对较慢的服务器相关联并且可以按特定顺序抢先取得/执行(因为它们不是第一个)的动作1和/或动作2等等。

训练示例输出可以可选地具有固定维度,该固定维度由或基于机器学习模型正针对其进行训练的动作的最大数量来确定,并且可以包括在训练示例中具有少于动作的最大数量的“空”值。例如,动作的最大数目可以是五个,并且对于在请求中包括三个动作的训练示例输入,可以在训练示例输出中包括标识三个动作的顺序的数据,并且可以为其余的两个动作提供空数据。作为一个特定示例,训练示例输出可以是二十五个值的矢量,每五个的序列组指示按特定顺序放置相应动作之一。例如,假设提供一个顺序,在训练示例输入“动作1、动作2、动作3”和特定顺序“动作3、动作1、动作2”中,以下训练示例输出可以指示该特定顺序:[0,1,0,0,0,|0,0,1,0,0,|1,0,0,0,0,|空,…空,|空,…空]。在前述的示例中,每个“|”指示与每个动作对应的口述的放置之间的间断,第一个“1”指示“动作1”应为第二个(因为它是“动作1”的五个选项中的第二放置),第二个“1”指示“动作2”应为第3个(因为它是“动作2”的五个选项中的第三放置),第三个“1”表示“动作3”应为第1个(因为它是“动作3”的五个选项中的第一个放置),并且“空”指示在训练示例输入中不存在第四和第五个动作。

可以利用监督的训练示例来训练机器学习模型。在训练之后,机器学习模型可以用于基于那些动作的标识符并且可选地基于场境值来预测执行请求的多个动作的特定顺序。对这种机器学习模型的使用可以提供在运行时对特定顺序的快速解析,并可以概括训练数据中可能未出现的动作和/或场境值的组合。因此,这样的机器学习模型对于新添加的动作和/或新呈现的动作组合是稳健的。此外,这种机器学习模型一经训练,比各种动作和优选顺序之间的大型映射消耗的空间更少,并且与搜索此类大型映射相比其计算效率更高。

在一些实施方式中,用于诸如监督学习模型的机器学习模型的训练数据可以包括标识能够经由自动助理执行的动作的输入数据。另外,用于监督学习模型的训练数据可以包括表征用于执行在输入数据中标识的那些动作中的每个动作的总时间的数据。可替代地或另外,用于监督学习模型的训练数据可以包括表征由用户请求的那些动作中的每个动作的时延时间和/或估计的时延时间的数据。可替代地或另外,用于监督学习模型的训练数据可以包括表征待执行的请求动作集中的所有动作的总时间量或估计的总时间量的数据。以这种方式,根据监督学习生成的功能和/或模型可以有效地展出在经由自动助理执行的所请求的动作与每个动作或所有动作的一个或多个时间方面之间的相关性。

经由自动助理执行的动作可以具有一个或多个执行特性,并且动作的执行特性可以影响该动作和/或多个动作的一个或多个时间方面(例如,由用户经由自动助理执行的一系列动作)。例如,执行特性可以表征在动作执行期间要执行的一个或多个操作。例如,对自动助理执行设置闹钟的动作的请求可以使自动助理执行初始化与用户的对话会话的操作,并且对话会话可以是设置闹钟的动作的执行特性。具体而言,可以初始化对话会话,以便为用户提供指定闹钟响起的时间的机会。因此,因为该动作具有初始化对话会话的执行特性,这将耗费一些时间量来完成,该动作的时间方面(例如,完成该动作的总时间)能够受到影响。可以影响动作的各种时间方面,诸如但不限于,用于执行动作的总估计时间、为用户提供输入以完成动作的估计时间、请求和动作的初始化之间的估计时延量、和/或经由对第三方的请求初始化动作与从第三方接收响应之间的时延量。

动作和/或一系列动作的时间方面可以包括一个或多个计算设备在通过一个或者多个计算设备执行动作和/或一系列动作之前、期间和/或之后展出的一个或多个与时间有关的性质。另外或可替代地,动作和/或一系列动作的时间方面可以是表征特定操作和/或动作和/或一系列动作的一部分的时间的任何可量化的值。例如,对自动助理执行诸如“Assistant,turn on my lights and play my podcast(助理,打开我的灯并且播放我的播客)”的一系列动作的请求可以在实际打开灯和播放该播客之间有可量化时延量,和/或完成动作所需的可量化的时间量。此外,取决于执行动作的顺序,可量化的时延量和/或任何其他时间方面可以是不同的。例如,至少相对于在“play my podcast”动作初始化之前初始化“turning on the lights”动作的动作顺序,在初始化“turning on the lights(打开灯)”的动作之前初始化“play my podcast(播放我的播客)”时,提供请求的用户与打开灯的自动助理之间的时延可能更大。

在一些实施方式中,经训练的机器学习模型可以用于估计所请求的动作的序列的时间方面。例如,可以提供第一动作、第二动作和第三动作的标识符作为机器学习模型的输入,以及这些动作的执行顺序的指示。响应于接收到输入,机器学习模型可以提供输出,该输出指示针对动作所提供的执行顺序的一个或多个时间方面。负责提供动作的有效执行顺序的应用或模块可以重新排列动作的序列,并提供动作的不同顺序作为机器学习模型的输入。响应于接收到对应于动作的不同顺序的输入,机器学习模型可以提供动作序列的不同顺序的一个或多个其他时间方面的另一指示。可以针对动作的所有或至少多个执行顺序的变化重复估计动作的各种序列的时间方面的该过程。可以比较针对执行顺序的每个相应变化的来自于机器学习模型的各个相应输出,以便确定提供计算资源的最有效使用和/或减轻相应时间方面的任何负面特征的执行顺序。例如,当机器学习模型的输出指示在执行动作期间的总预期时延量时,可以选择与最低预期时延量相对应的动作顺序的变化,并将其提供给自动助理以用于执行。可替代地或另外,当机器学习模型的输出指示动作序列的总估计执行时间时,可以选择与动作序列的最短总估计执行时间相对应的动作顺序的变化并且将其提供给自动助理以用于执行。

例如,如图2中所图示,用户208可以提供诸如“Assistant,play my show,set analarm,and tell me the weather for tomorrow”的口头话语202。可以由诸如独立扬声器设备212的客户端设备214接收口头话语202。客户端设备214可以将口头话语202转换成音频数据,并且将其通过网络228(例如,互联网)传送到远程计算设备220(诸如服务器设备224)。服务器设备224和/或服务器自动助理226可以处理音频数据,以标识用户208经由口头话语202所要求的任何动作。可以提供动作的标识符(可选地提供有其他数据)作为机器学习模型的输入,以便标识动作的执行顺序。机器学习模型可以在服务器设备224和/或客户端设备214处被存储或以其他方式可访问。

响应于接收到输入,机器学习模型可以用于生成指示动作的一个或多个执行顺序的输出。在一些实施方式中,机器学习模型可以用于提供自动助理可以依靠的单个执行顺序,以便初始化所请求的动作的执行。可替选地,机器学习模型可用于提供多个执行顺序,而自动助理可以选择满足特定准则的执行顺序。例如,机器学习模型可用于提供输出,该输出指示动作的一个或多个执行顺序,以及每个相应执行顺序的一个或多个相应属性。例如,可以为基于机器学习模型提供的执行顺序提供有总执行时间量、总时延量、总内存使用量、总CPU使用量和/或可以关联于计算效率的任何其他指标。然后,自动助理可以选择满足特定准则的特定顺序,诸如最小的执行时间量、最低的时延量、最低的内存使用量、最小的CPU使用量和/或任何其他准则或其组合。

当自动助理已经基于机器学习模型或本文讨论的其他操作选择执行顺序时,自动助理可以初始化一个或多个动作的执行。例如,当自动助理已经选择首先提供天气报告、然后设置闹钟、并且然后播放节目的执行顺序时,自动助理可以初始化经由网络228检索天气报告的操作。当已经检索到天气报告时,客户端设备214可以执行提供与天气报告相对应的自然语言输出204的操作。例如,与天气报告对应的自然语言输出可以是“The weather fortomorrow is sunny,with a high of 75 degrees and a low of 66 degrees”。

在一些实施方式中,自动助理可以使天气报告由第三方代理提供,诸如第三方天气应用或可经由另一计算设备和/或网站访问的模块。第三方可以指的是提供应用、服务、设备和/或任何其他产品的实体,并且可以不同于提供客户端设备214的自动助理和/或操作系统的实体。在第三方代理已将天气报告提供给自动助理之后,第三方代理可以提供指配给第三方代理的一个或多个任务已完成的指示。响应于从第三方代理接收到指示,自动助理可以按照自动助理选择的动作的执行顺序来初始化动作的执行。

在一些实施方式中,选定的执行顺序可以对应于或指示自动助理应完成所请求的动作而不是初始化所请求的动作的顺序。例如,尽管用户208在图2中请求的动作顺序是根据第一顺序完成的,与每个动作相关联的子任务可以以不同的第二顺序完成。例如,机器学习模型可以指示完成的顺序,并且还可以提供指示要执行的子任务的顺序的输出。因此,在一些实施方式中,自动助理可以初始化以动作的执行顺序优先化的第一动作(例如,提供天气报告),并且同时或此后不久按照动作的执行顺序初始化第三动作的子任务的执行(例如,下载和/或缓存节目数据)。例如,这些动作的执行顺序可以将天气报告标识为要完成的最高优先级动作,但是也可以将子任务或操作(诸如下载节目)指定为比大多数其他子任务或操作更高的优先级(例如,提供当闹钟应被设置时请求的自然语言输出,并且确认闹钟的设置),尽管节目回放动作相对于用于完成动作的优先权是最后的。换句话说,自动助理可以初始化某些子任务或操作,这些子任务或操作可以减轻一系列请求操作的完成的总体时延和/或总估计时间。另外或可替代地,自动助理可以将一个或多个子任务或操作委托给不是口头话语202的目标设备的一个或多个设备。例如,在与自动助理通过网络228检索天气报告和/或经由客户端设备214提供天气报告的同时,下载节目的子任务可以作为后台动作230由另一设备210执行。

图3图示用于修改经由自动助理304执行的所请求的动作集的执行顺序以便消除处理资源和网络资源的浪费的系统300。自动助理304可以作为在一个或多个计算设备(诸如计算设备318和/或服务器设备302)上提供的助理应用的一部分进行操作。用户可以经由助理界面与自动助理304进行交互,助理界面可以是麦克风、相机、触摸屏显示器、用户界面和/或任何其他能够在用户和应用之间提供界面的设备。例如,用户可以通过向助理界面提供口头、文本或图形输入来使自动助理304执行功能(例如,提供数据,控制外围设备,访问代理,生成输入和/或输出等等)来初始化自动助理304。计算设备318可以包括显示设备,该显示设备可以是包括触摸界面的显示面板,该触摸界面用于接收触摸输入和/或手势以允许用户经由触摸界面来控制计算设备318的应用。在一些实施方式中,计算设备318可以缺少显示设备,从而提供可听的用户界面输出,而不提供图形用户界面输出。此外,计算设备318可以提供用于接收来自用户的口头自然语言输入的用户界面,诸如麦克风。在一些实施方式中,计算设备318可以包括触摸界面并且可以没有相机,但是可以可选地包括一个或多个其他传感器。

计算设备318和/或其他计算设备334可以通过诸如因特网的网络338与服务器设备302通信。另外,计算设备318和其他计算设备334可以通过诸如Wi-Fi网络的局域网(LAN)彼此通信。计算设备318可以将计算任务卸载到服务器设备302,以便节省计算设备318处的计算资源。例如,服务器设备302可以托管自动助理304,并且计算设备318可以将在一个或多个助理界面320处接收的输入传送到服务器设备302。但是,在一些实施方式中,自动助理304可以作为客户端自动助理322被托管在计算设备318处。

在各种实施方式中,可以在计算设备318上实现自动助理304的所有方面或少于所有方面。在那些实施方式中的一些中,经由计算设备318的客户端自动助理322实现自动助理304的各方面并将其与实现自动助理304的其他方面的服务器设备302进行对接。服务器设备302可以经由多个线程可选地服务于多个用户及其关联的助理应用。在经由计算设备318处的客户端自动助理322实现自动助理304的所有方面或少于所有方面的实施方式中,客户端自动助理322可以是与计算设备318的操作系统分离的应用(例如,安装在操作系统的“顶部”)-或者可以由计算设备318的操作系统直接可替代地实现(例如,被认为是操作系统的应用,但与操作系统集成在一起)。

在一些实施方式中,自动助理304和/或客户自动助理322可以包括输入处理引擎306,其可以采用多个不同的模块来处理用于计算设备318和/或服务器的输入和/或输出。例如,输入处理引擎306可以包括语音处理模块308,该语音处理模块308可以处理在助理界面320处接收的音频数据,以标识体现在音频数据中的文本。音频数据可以从例如计算设备318传送到服务器设备302,以便节省在计算设备318处的计算资源。

用于将音频数据转换为文本的过程可以包括语音识别算法,该语音识别算法可以采用神经网络、word2vec算法和/或统计模型来标识与单词或短语相对应的音频数据组。从音频数据转换的文本可以由数据解析模块310解析,并且可以作为文本数据提供给自动助理,该文本数据可以用于生成和/或标识来自用户的命令短语。在一些实施方式中,可以将由数据解析模块310提供的输出数据提供给参数模块312,以确定用户是否提供对应于能够由自动助理304执行的特定动作和/或例程和/或可以由自动助理304访问的应用或代理的输入。例如,助理数据316可以作为客户端数据332存储在服务器设备302和/或计算设备318上,并且可以包括定义能够由自动助理304和/或客户自动助理322执行的一个或多个动作的数据,以及执行该动作所必需的参数。用户可以指定一个或多个值,以指配给在自动助理304的指导下通过自动助理304和/或由可经由自动助理304访问的第三方代理执行的动作的一个或多个参数。第三方代理可以由与已经提供自动助理304的另一方不同的另一方提供。

在一些实施方式中,系统300可以包括服务器设备302和/或计算设备318,其包括用于对用户以口头话语提出的请求动作的序列进行重新排序的一个或多个特征。可以在自动助理界面320处接收诸如用户请求由自动助理执行的一系列动作的口头话语,并将其转换为音频数据。音频数据可以由输入处理引擎306处理,该输入处理引擎可以在服务器设备302和/或计算设备318处提供。音频数据可以被转换为文本和/或以其他方式处理,以标识用户所请求的每个动作。在一些实施方式中,可以将基于口头话语的音频数据作为输入提供给神经网络模型,该神经网络模型可以提供指示用户所请求的动作和/或动作的顺序的输出。

当已经标识动作时,表征动作的数据可以与计算设备318共享或以其他方式在计算设备318处可用,并且可以由动作分类引擎324进行处理。动作分类引擎可以接收表征动作的数据,并基于该数据确定动作的分类。例如,播放电视连续剧或歌曲的请求可以对应于被称为连续回放动作的分类。可替代地或另外,对来自互联网的诸如天气报告或经济新闻的信息的请求可以对应于被称为对信息动作的请求的分类。此外,或者可替代地,改变特定设备的设置的请求可以对应于被称为设备设置分类的分类。在一些实施方式中,可以分别根据一种或多种不同的分类对一种或多种不同的动作进行分类,而不限于在此公开的那些分类。

在一些实施方式中,动作分类引擎324可以确定用户经由口头话语所请求的每个动作的分类。在一些实施方式中,动作分类可以基于特定动作的一个或多个确定的执行特性。例如,需要在用户和自动助理之间进行进一步对话的动作可以被分类为用于至少具有对话会话作为执行特性的对话发起动作。另外或可替代地,至少基于具有使自动助理将用于修改设备设置的请求传送到本地设备的执行特性的动作,可以将需要确定和修改本地设备的设置的动作分类为改变设备设置的请求。每种分类可以被传达给动作顺序引擎326,该动作顺序引擎326可以接收表征用户所请求的动作的分类的数据,并至少基于该数据来生成动作的顺序。例如,当用户请求与音乐的连续回放相对应的第一动作以及与对来自互联网的信息的请求相对应的第二动作时,动作分类引擎324可以确定来自用户的请求包括连续回放动作以及对信息行动的请求。可以将这些分类提供给动作顺序引擎326,该动作顺序引擎326可以生成使提供来自于互联网的信息的第二动作优先于提供音乐的连续回放的动作的顺序。

在一些实施方式中,动作顺序引擎326可以基于动作顺序模型332来生成所请求的动作集的顺序。动作顺序模型332可以是基于具有来自相应用户的事先许可的历史用户交互数据336和/或历史社区交互数据328训练的一个或多个神经网络模型。例如,历史用户交互数据336可以包括表征用户和自动助理304之间的交互的数据。这样的交互可以包括其中用户提供对要执行的多个动作的请求并且随后向自动助理304提供反馈的交互,并且/或者随后不向自动助理304提供反馈的那些。该反馈可以包括其中用户命令自动助理304重新排列多个动作的执行顺序的随后口头话语。例如,用户可能先前已经提供口头话语,诸如“Assistant,play ambient noise and set an alarm for tomorrow(助理,播放环境噪音并设置明天的闹钟)”。作为响应,在发起用于设置闹钟的对话之前,自动助理304可能已经初始化环境噪声的回放,这可能不是用户所优选的。因此,用户可能已经以诸如“No,setthe alarm first and then play the ambient noise(否,先设置闹钟,然后播放环境噪音)”的口头话语的形式向自动助理304提供了反馈。这样的反馈可以用于训练动作顺序模型332,以便可以根据随着时间的推移在用户的许可下学习的用户偏好来修改后续的类似请求。

训练可以基于客户端数据334,其可以表征计算设备318的操作、计算设备318的上下文和/或可以与计算设备318相关联的任何其他信息。客户数据334可以表征计算设备318的一个或多个应用340的状态。以这种方式,动作顺序模型332可以基于来自用户的反馈以及当用户提供反馈时可能已经相关的任何其他信息来学习用户的偏好。在一些实施方式中,由动作顺序模型332生成的动作的顺序可以基于计算设备318的上下文。例如,由计算设备318提供的GPS数据可以指示用户刚到家,而其他数据可以指示用户随后提供口头话语,例如“Assistant,play my lounge playlist and set my alarm(助理,播放我的休息室播放列表并设置我的闹钟)”。作为响应,代替在用户和自动助理之间发起对话会话以便设置唤醒闹钟,自动助理可以初始化休息室音乐播放列表的回放,并在后台在用户家里打开家庭安全闹钟。如果确定在至少阈值时间量内用户至少已经到家(可以由动作顺序模型332确定),并且可以基于其中用户通常躺在床上睡觉的时间窗,则该产生的动作顺序能够是不同的。例如,如果确定用户在用户通常躺在床上睡觉的时间窗内在家中并且在他们的房间中,并且用户提供口头话语,“Assistant,play my lounge music playlist and set myalarm”,自动助理可以初始化设置唤醒闹钟的对话框,并且然后在完成设置以唤醒闹钟后,初始化休息室音乐播放列表的回放。

在一些实施方式中,一个或多个动作顺序模型332可以根据历史用户交互数据336(该历史用户交互数据可以对应于计算设备318的用户)并且根据历史社区交互数据328(该历史社区交互数据328可以对应于自动助理的一个或多个其他用户)来训练。可以对动作顺序模型332进行训练和配置,使得动作顺序模型332可以接收用户根据第一顺序所请求的动作的分类作为输入,并且提供用户所请求的动作的第二顺序作为输出。在一些实施方式中,历史社区交互数据328可以表征用户与他们相应的自动助理之间的交互,并且可以具体地标识其中用户请求执行动作的不同分类的那些交互。可替代地或另外,历史社区交互数据328还可以表征用户当请求执行某些动作分类时做出的条件陈述。以此方式,至少与针对动作的特定分类的其它执行顺序相比,动作顺序模型332可以识别针对动作的特定分类的执行顺序的用户偏好的趋势。

例如,对动作顺序模型332的训练可以反映大多数用户的偏好,以具有在连续回放动作之前完成对信息动作的请求。可以通过处理历史社区交互数据328并确定用户在同一口头话语中请求对信息操作和连续回放动作的请求的大部分时间来标识大多数用户的偏好,大多数用户还包括条件语句“and then(然后)”。例如,大多数用户或至少多个用户可能已经提供口头话语,诸如“Assistant,tell me the weather for today and then playmy morning playlist。”因为多个用户向条件语句提供这两种不同的动作分类,所以该条件语句可以影响对动作顺序模型332的训练。结果,当计算设备318的用户提供请求要执行的两种不同的动作分类中的每一个的相似的口头话语时,自动助理304可以使用动作顺序模型332以确保根据与历史社区交互数据328对应的用户的偏好来执行动作的执行顺序。然而,如果用户在口头话语中提供条件语句,则该条件语句可以采用优先于从动作顺序模型332确定的动作顺序的用于对动作的执行进行排序的规则。

在一些实施方式中,可以基于自动助理304可访问的可用设备的数量来确定动作的顺序。例如,动作顺序模型332可以接收计算设备的标识符作为输入,该计算设备:通过计算设备318被连接到本地网络,经由客户端自动助理322可访问,并且/或者以其它方式与计算设备318相关联。因为可以在一个或多个不同的计算机设备上执行用户请求的一些动作,所以自动助理304可以基于哪些计算设备可用而将特定动作以特定动作委托给特定计算机设备。例如,用户可以在他们的家中拥有智能恒温器、智能灯泡和自动助理设备。此外,用户可以提供包括执行多个动作的请求的口头话语,例如,“Assistant,turn up thethermostat,turn down the lights,play my night time playlist,and order a fooddelivery(助理,打开恒温器,关掉灯,播放我的夜间播放列表,并且订购外卖)”。

可以处理与口头话语相对应的音频数据以确定用户已经请求的上述动作的分类。可以将用于分类的标识符以及智能恒温器、智能灯泡和助理设备的标识符作为输入提供给动作顺序模型332。动作顺序模型332可以提供自动助理304要遵循的已确定的动作顺序和/或家庭中每个特定设备要遵循的一个或多个动作顺序作为输出。例如,自动助理304可以将灯的变化委托给智能灯泡,将房屋温度的修改委托给恒温器,并且将其余动作的执行顺序提供给自动助理设备。具体地,自动助理设备的动作顺序可以使订购外卖优先于播放夜间播放列表。

自动助理设备的动作顺序可以基于历史用户交互数据336、历史社区交互数据328和/或自动助理304的分类偏好。例如,自动助理304可以使对话发起动作(诸如订购外卖)优先于连续回放动作(诸如播放夜间播放列表)。结果,尽管自动助理304具有为自动助理设备设置的动作顺序,但是其他请求的动作将在其他相应设备上同时执行。换句话说,将为自动助理设备设置的动作顺序的第一动作与为智能灯泡设置的动作和为恒温器设置的动作同时执行。以这种方式,自动助理304和/或动作命令模型332可以生成用于多个不同设备同时执行的动作顺序。

图4图示用于至少根据经训练的机器学习模型来确定自动助理执行的动作顺序的方法400。方法400可以由能够与自动助理交互的一个或多个计算设备、应用和/或任何其他装置或模块执行。方法400可以包括确定是否已经检测到口头话语的操作402。口头话语可以由用户提供给计算设备的自动助理界面,并且口头话语可以转换为在设备之间可传输的数据。例如,当自动助理界面用作麦克风时,可以将口头话语转换为音频数据,然后将其传送到服务器设备以进行进一步处理。在一些实施方式中,确定是否提供口头话语可以包括确定用户是否打算调用自动助理以提供响应或以其他方式执行特定动作。可以周期性地确定操作402,并且当检测到口头话语时,方法400可以进入到操作404。

操作404可以包括标识用户经由口头话语所请求的动作。用户可以使口头话语体现对自动助理要执行的一个或多个动作的一个或多个请求。当处理与口头话语相对应的数据时,该数据可以被转换为文本,被解析并进一步被处理以确定用户请求执行的任何动作。在一些实施方式中,可以使用机器学习模型来处理基于口头话语而生成的数据,以生成输出数据,然后标识用户经由口头话语而请求的一个或多个动作。可以使用自从用户与自动助理进行交互以来已生成的数据和/或由自动助理的提供商生成的数据来训练机器学习模型。

方法400可以进一步包括访问与口头说话相关联的场境数据的可选操作406。场境数据可以基于与用户相关联的一个或多个计算设备、自动助理和/或用户可访问的任何其他设备的操作。例如,场境数据可以标识自动助理可访问的一个或多个设备的操作状态。可替代地或另外,场境数据可以表征与用户的环境相关联的环境特性,诸如用户在何时和何地提供口头说话。可替代地或另外,场境数据可以表征用户的时间表、用户所在的位置的占用、用户提供口头说话的一天中的时间、由用户或另一个人提供的一个或多个先前的口头说话、当用户提供口头说话时由一个或多个设备执行的调度的动作和/或可以与用户的上下文相关联的任何其他信息。

方法400可以进一步包括确定在口头说话中是否请求动作的明确顺序的操作408。提供指示要执行的动作顺序的明确语句的用户可以请求操作的明确顺序。例如,在用户提供的口头说话内,用户可以请求执行第一动作,并且然后执行第二动作。条件语句“andthen(然后)”可以被解释为基于第一动作的完成和/或至少第一动作的初始化对第二动作的执行的偶然性的明确请求。如果用户尚未提供所请求的动作的明确顺序,则方法400可以进入到操作410。

操作410可以包括提供表征所识别的动作的数据以及可选地场境数据作为经训练的机器学习模型的输入。可以使用经训练的机器学习模型来处理输入,以生成表征用户在口头话语中所请求的动作的执行顺序的输出。换句话说,尽管可以以第一顺序在口头话语中提出动作,但是使用经训练的机器学习模型生成的输出可以重新排列顺序,使得在自动助理的方向处执行第二执行顺序。因此,响应于使用经训练的机器学习模型来处理表征所标识的动作的输入以及可选地场境数据,可以生成表征执行动作的顺序的输出数据。

方法400可以进一步包括基于使用经训练的机器学习模型生成的输出来确定动作的执行顺序的操作412。可以生成使用经训练的机器学习模型确定的执行顺序,以减少时延,并且因此消除诸如内存和处理带宽的计算资源的浪费。此外,通过减少接收口头话语与执行动作之间的时延,可以节省网络带宽,因为可以根据网络资源的可用性对取决于网络响应性的动作进行优先化。例如,基于对机器学习模型的训练,可以对机器学习模型进行训练,以对展出低于以最低的网络时延量在过去已经执行的那些动作的最大网络时延的某些动作进行排序。机器学习模型的这种训练可以基于表征提供口头话语的用户与自动助理之间的交互的数据。另外或可替代地,机器学习模型的训练可以基于表征一个或多个其他用户与他们自己的相应自动助理之间的交互的数据。以这种方式,经训练的机器学习模型可以指示当其他用户已经请求执行这样的动作时,依靠于第三方提供商或第三方代理的某些动作是否已经导致更多的时延或者较少的时延。

在一些实施方式中,方法400可以包括根据或以其他方式基于由用户提供的明确顺序和/或可选地用于确定顺序的任何场境数据来训练机器学习模型的可选操作414。换句话说,当用户已经提供了动作的明确顺序时,该明确顺序可以表征为在进一步训练机器学习模型时使用的数据。

方法400还可以包括根据所确定的顺序来使动作执行的操作416。例如,当顺序中指示的第一动作是对信息的请求时,自动助理可以初始化web查询。可替代地,当所确定的顺序中的第一动作包括对设备设置的改变时,自动助理可以使第三方设备调整操作设置。在一些实施方式中,当用户明确地提供顺序时,方法400可以从操作408和/或操作414进入操作416。以这种方式,当用户已经提供明确顺序,自动助理可以依靠于明确顺序,并且基于使用机器学习模型生成的输出,当用户还没有提供所请求的动作的明确顺序时,自动助理可以依靠于单独确定的顺序。

在一些实施方式中,方法400包括确定是否已经接收到关于动作的执行顺序的反馈的操作418。反馈可以包括用户在执行动作之前、期间和/或之后提供的一个或多个输入。例如,当自动助理根据特定顺序已经完成执行用户请求的所有动作后,用户可以提供口头话语,诸如“Assistant,next time set my alarm first(助理,下一次设置我的闹钟)”。前述口头话语可以由自动助理处理,确定为要反馈并体现在训练数据中,该数据可以用于训练机器学习模型。在一些实施方式中,用户可以在动作执行期间提供反馈。例如,用户可以提供口头话语,诸如“Assistant,wait to play my music until I have finishedordering food(助理,等我播放音乐,直到我完成订餐为止)。”作为响应,自动助理可以根据用户提供的反馈来修改任何正在进行的和/或待处理的动作。此外,反馈的特征在于可以被提供作为训练数据的数据,以进一步训练机器学习模型,以便进一步使机器学习模型适应以为所请求的动作序列提供更合适的顺序。当用户提供反馈时,方法400可以进行到根据该反馈训练机器学习模型的操作420。当没有从用户接收到反馈时,至少关于动作的执行,方法400可以返回到操作402,以检测自动助理是否已经接收到任何其他口头话语。

图5图示用于根据动作的分类来安排由自动助理执行的所请求的动作序列的方法500。方法500可以由一个或多个计算设备、应用和/或能够与自动助理进行交互的任何其他装置或模块执行。方法500可以包括确定是否已经检测到口头话语的操作502。可以在提供对自动助理的访问的计算设备和/或与可从其访问自动助理的计算设备通信的服务器设备处检测到口头话语。口头话语可以由用户提供给自动助理界面(诸如麦克风),并且可以包括自然语言,诸如“Assistant,order food delivery,turn down the lights,and tellme what is on TV tonight(助理,订购外卖,关掉灯,并告诉我今晚电视有什么)”。

响应于确定已经检测到口头话语,方法500可以进入到标识用户经由口头话语请求的一个或多个动作的操作504。具体地,可以处理体现和/或以其他方式表征口头话语的音频数据,以便确定口头话语的自然语言内容。可以解析自然语言内容并对其进行进一步处理,以标识用户经由口头话语所请求的一个或多个动作。例如,当处理与前述口头话语相对应的音频数据时,可以标识外卖动作、灯光设置动作和请求电视时间表的动作。

在一些实施方式中,方法500可以包括确定条件语句是否被包括在口头话语中的可选操作506。条件语句可以是用户提供的指示一个或多个请求的动作以发生的其他情况为条件的短语或单词。例如,用户可以提供描述动作的时间偶然性的短语,诸如依靠于另一动作的完成的偶然性。可替代地或另外,用户可以提供描述基于用户的上下文、一个或多个设备的状态、与该用户相关联的应用数据和/或可能与自动助理正在执行的动作有关的任何其他数据可以满足的条件的单词或短语。

在一些实施方式中,当口头话语包括或不包括一个或多个条件语句时,方法500可以进行到操作508。操作508可以包括确定所标识的动作的每个动作的分类。可以基于文本处理模块的输出来确定分类,该文本处理模块的输出可以提供反映口头话语的自然语言上下文的文本数据。可替代地或另外,可以将基于口头话语的音频数据或其他数据提供给经训练的机器学习模型,并且经训练的机器学习模型的输出可以用于确定经由口头话语所请求的每个动作的每个分类。当已经标识分类时,方法500可以进入到操作510。

操作510可以包括确定所标识的动作的执行顺序。确定所标识的动作的执行顺序可以至少部分地基于所标识的动作的每个动作的分类。例如,用户在口头话语中请求的多个动作中的一个动作可以是对连续媒体回放的请求。,动作的这样分类可以相对于用于提供信息(例如,提供天气报告)的动作而具有较低的优先级。可替代地或另外,被分类为改变设备设置的请求的动作可以相对于连续媒体回放分类而具有更高的优先级,但是可以相对于信息分类的请求具有更低的优先级。在一些实施方式中,可以至少基于经训练的机器学习模型的输出来执行确定所标识的动作的执行顺序。经训练的机器学习模型可以适于提供指示适当操作顺序的输出。可以使用表征用户与自动助理之间的交互的数据来训练经训练的机器学习模型。可替代地或另外,可以使用表征多个不同用户之间的交互的数据来训练经训练的机器学习模型,所述多个不同的用户与提供口头话语的用户不直接相关。

方法500进一步包括根据所确定的顺序来使动作执行的操作514。至少当根据操作512确定用户已提供条件语句时,可以由用户明确提供所确定的顺序。可替代地或另外,所标识的动作的执行顺序可以基于一个或多个机器学习模型的输出、表征用户的上下文的场境数据和/或可以基于一系列动作中的动作优先级的任何其他数据。

在一些实施方式中,方法500可以可选地包括确定是否已经接收到关于执行顺序的反馈的操作516。如本文所讨论的,反馈可以基于用户在执行所标识的动作之前、期间和/或之后提供的另一口头话语。该反馈例如可以表征用户对特定的动作分类的偏好,以具有比另一动作分类更高的优先级。当确定在执行所标识的动作之前、期间和/或之后已经接收到反馈时,方法500可以进入根据该反馈训练机器学习模型的操作518。换句话说,可以从用户接收反馈并进行处理,以便生成可以提供给机器学习模型的训练数据,以便根据一个或多个用户的偏好来更新机器学习模型。这样,因为用户不必重复提供相同反馈,所以可以节省计算资源。而是,可以随着时间的流逝学习与执行顺序有关的偏好,使得需要来自于用户的反馈以提供更少的超时。当计算设备较不频繁地处理口头话语时,可以节省某些计算资源,诸如网络带宽和内存。无论用户是否已经提供了反馈,方法500都可以返回到确定是否已检测到口头话语的操作502。以这种方式,方法500允许连续学习用户偏好,同时还消除当用户必须重复地校正那里的请求或以其他方式向自动助理提供关于其先前请求的反馈时可能发生的浪费的处理和不必要的网络传输。

图6是示例计算机系统610的框图。计算机系统610通常包括经由总线子系统612与许多外围设备进行通信的至少一个处理器614。这些外围设备可以包括存储子系统624,包括例如存储器625和文件存储子系统626、用户界面输出设备620、用户界面输入设备622和网络接口子系统616。输入和输出设备允许用户与计算机系统610交互。网络接口子系统616提供到外部网络的接口并且耦合到其它计算机系统中的对应接口设备。

用户界面输入设备622可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板的指点设备、扫描仪、并入到显示器中的触摸屏、诸如话语辨识系统的音频输入设备、麦克风和/或其它类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算机系统610或到通信网络上的所有可能类型的设备和方式。

用户界面输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的某种其它机制。显示子系统也可以例如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括用于从计算机系统610向用户或另一机器或计算机系统输出信息的所有可能类型的设备和方式。

存储子系统624存储提供本文描述的模块中的一些或全部的功能性的程序和数据构造。例如,存储子系统624可以包括用于执行方法400、方法410、方法500的所选方面并且/或者实现以下各项中的一个或多个的逻辑:客户端设备124、客户端自动助理126、服务器设备120、服务器自动助理122、客户端设备214、客户端自动助理216、服务器设备224、服务器自动助理226、服务器设备302、计算设备318、自动助理304、客户端自动助理322、动作分类引擎324、动作顺序引擎326、动作执行引擎330和/或动作顺序模型332。

这些软件模块通常由处理器614单独或与其它处理器相结合地执行。存储子系统624中使用的存储器625能够包括许多存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)630)和其中存储有固定指令的只读存储器(ROM)632。文件存储子系统626能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及关联的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实现方式的功能性的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在可由处理器614访问的其它机器中。

总线子系统612提供了用于让计算机系统610的各个组件和子系统按预期彼此通信的机制。尽管总线子系统612被示意性地示出为单条总线,但是总线子系统的替代实现方式可以使用多条总线。

计算机系统610可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化性质,图6中描绘的计算机系统610的描述仅旨在作为用于图示一些实现方式的目的的具体示例。计算机系统610的许多其它配置可能具有比图6中描绘的计算机系统更多或更少的组件。

在本文描述的系统收集关于用户的个人信息(或在本文中常常称为“参与者”)或者可以利用个人信息的情形下,可以给用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前地理位置的信息)或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。另外,某些数据可以在它被存储或使用之前被以一种或多种方式处理,使得个人可识别信息被去除。例如,可以处理用户的身份,使得对于该用户不能确定个人可识别信息,或者可以在获得地理位置信息的情况下使用户的地理位置一般化(诸如到城市、邮政编码或州级别),使得不能确定用户的特定地理位置。因此,用户可以控制信息如何关于用户被收集和/或使用。

虽然已在本文中描述并图示若干实现方式,但是可以利用用于执行功能和/或获得结果的各种其它手段和/或结构和/或本文描述的优点中的一个或多个,并且此类变化和/或修改中的每一个均被视为在本文描述的实现方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置都意在为示例性的,并且实际的参数、尺寸、材料和/或配置将取决于这些教导被用于的一个或多个具体应用。本领域的技术人员将认识到或能够使用不止例行试验来探知本文描述的具体实现方式的许多等同物。因此,应当理解,前面的实现方式仅作为示例被给出,并且在所附权利要求及其等同物的范围内,可以以不同于具体地描述和要求保护的方式实践实现方式。本公开的实现方式针对本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。另外,两个或更多个此类特征、系统、物品、材料、套件和/或方法的任何组合在此类特征、系统、物品、材料、套件和/或方法不是相互不一致的情况下,被包括在本公开的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号