针对计算机化个人助手的技能发现的制作方法
背景技术:
计算机化个人助手可以提供被配置为执行任务以辅助用户的各种不同技能。然而,用户可能并不知道有不同技能可用,或者用户可能并不知道如何使用特定技能。
技术实现要素:
提供该发明内容而以简化形式对随后将在下文的具体实施方式中进一步进行描述的代表性概念的选择进行介绍。该发明内容并非意在标示出所请求保护主题的关键特征或必要特征,其也并非意在被用来限制所请求保护主题的范围。此外,所请求保护主题并不局限于解决在本公开的任何部分中所提到的任何或全部缺陷的实施方式。
一种计算机化个人助手通信耦合至计算机数据库,所述计算机数据库包括能够由该计算机化个人助手执行的多种可用技能。该计算机化个人助手被配置为识别用户的当前情境,并且操作先前训练的学习分类器以评估候选技能的匹配置信度。该匹配置信度指示该当前情境与之前关联于该候选技能的基准情境之间的匹配质量。该计算机化个人助手被配置为响应于该匹配置信度超过预定义匹配置信度阈值而执行关联于该候选技能的辅助动作。该计算机化个人助手被配置为响应于该匹配置信度并未超过预定义匹配置信度阈值而执行关联于该候选技能的补充帮助动作。
附图说明
图1示出了包括被配置为促成对其技能的发现的计算机化个人助手的示例性计算环境。
图2示出了用于促成对计算机化个人助手的技能的发现的方法。
图3-4示出了其中计算机化个人助手促成对技能的发现的示例性对话。
图5示出了示例性计算系统。
具体实施方式
一种计算机化个人助手可以被配置为使用各种不同的技能来为用户(例如,经由被配置为接收音频和/或文本自然语言查询的自然语言用户接口(nlui))所提交的自然语言查询提供服务。
如本文所使用的,“技能”包括可以被计算机化个人助手所执行以辅助用户的任何操作或相关操作的集合。可以由技能提供的辅助的非限制示例包括:1)采集并输出信息和/或多媒体内容(例如,自动搜索用于流式传输内容的多媒体流服务);2)记录信息以供后续检索(例如,备忘录、笔记、待办列表、提交);3)与其它用户通信(例如,通过发送电子邮件或其它消息);4)控制电子和/或机械装置(例如,自动控制家用恒温器);和/或5)与协同计算机服务或设备交互(例如,准备要在诸如移动电话的用户设备处显示的内容)。
在一些示例中,使用技能可以包括将计算机化个人助手通信耦合至协同计算机服务以便使得该协同计算机服务执行至少一部分操作从而辅助用户。例如,使用技能可以包括通信耦合至具有相关联的应用编程接口(api)的协同计算机服务,并且自动调用该api以辅助用户。更一般地,技能可以被配置为以任何适当方式调用一个或多个api以辅助用户。api的非限制示例包括:1)用于购买物品和/或服务的api(例如,用于安排行程的api、用于订食物外卖的api);2)用于订阅多媒体内容的api(例如,用于登录流视频服务并且检索许可的适配内容的api);3)用于采集信息的api(例如,用于从地图服务检索指引的api);4)用于执行计算和/或变换数据的api;5)用于存储和/或检索用户数据的api(例如,用于合作式文档编辑的api、用于分享照片的api);和/或6)用于与具体硬件设备和/或协同计算机服务交互的api(例如,用于使用在诸如移动电话的用户设备处收集的传感器数据的api)。被配置为调用多个api的技能可以使用该api为任意(多种)适当任务提供辅助。
计算机化个人助手可以被配置为使用各种各样的不同技能。然而,计算机化个人助手的用户可能并不了解有哪些技能可用和/或如何使用可用技能。由此,在用户想要执行任务时,虽然他们可能希望接收来自计算机化个人助手的辅助,但是他们可能并不了解计算机化个人助手是否能够提供辅助。即使用户猜测计算机化个人助手被配置为进行帮助,但是该用户可能并不了解将会导致该计算机化个人助手提供所期望辅助的适当查询。如本文所使用的,“查询”包括可以被计算机化个人助手所处理以便确定如何辅助用户(例如,可以利用什么技能来辅助用户)的任何话语(例如,问题、口头命令(verbalcommand)、非口头命令,和/或口述或手写的单词、短语和/或句子)。话语包括可听话音以及通过用户表明词汇内容所作出的任何其它动作,例如打字键入文本和/或符号、墨水手写文本和/或符号,和/或手势。类似地,“对话”在本文被用来指代用户和计算机化个人助手之间的口述和/或文本交换。
即使在用户先前已经与计算机化个人助手进行过对话并且因此熟悉计算机化个人助手的一些技能时,该用户也可能不熟悉该计算机化个人助手的其它技能。在一些示例中,计算机化个人助手可以被更新以提供该计算机化个人助手的用户先前并未见过的新技能。在一些示例中,计算机化个人助手可以提供与用户不太可能频繁进行的特定于领域的任务相关的技能,或者与用户先前从未尝试借助于计算机化个人助手而完成的任务相关的技能。作为结果,计算机化个人助手的用户可能并不熟悉计算机化个人助手的技能,并且可能无法提出适当查询以使用该技能来完成任务。
由此,图1示出了包括计算机化个人助手101的计算环境100,所述计算机化个人助手101被配置为通过与用户10的对话而促成用户10对技能的发现。计算机化个人助手101经由计算机网络111通信耦合至个性化数据库121、技能数据库131、分类器机器141、验证机器151,以及可选地进一步通信耦合至协同计算机服务161和/或用户设备171。计算机网络111可以是任何适当的计算机网络,例如互联网。协同计算机服务161可以是任何适当的计算机服务,例如api的提供方。用户设备171可以是用户10的任何适当的计算设备,例如个人计算机或移动电话。
通过与用户10的对话而促成用户10对技能的发现可以改善计算机化个人助手101在辅助用户10完成各种任务时的效率和/或性能。例如,当通过对话发现相关技能时,用户10可以通过简单地询问有关任务的问题而高效地了解如何使得计算机化个人助手101为该任务提供辅助,而无需从该任务转移注意力。此外,通过对话而促成对技能的发现可以允许用户10了解特别适合任务的技能。例如,计算机化个人助手101可以帮助用户10发现将在完成任务时在计算效率(例如,处理器负载和/或网络带宽使用)、用户满意度、完成任务所过去的时间、完成任务的金钱成本和/或计算机化个人助手101对任务完成的其它适当性能考虑的方面实现特别好的性能的技能。
此外,计算机化个人助手101可以通过与用户10的对话而确保在从事技能前收集到用于完成该任务的所有相关信息。因此,计算机化个人助手101可以延后从事技能,直至收集到充分信息以从事很可能成功辅助用户10完成任务的有关技能为止。类似地,通过促成对有关技能的发现以及在从事技能之前收集相关信息,计算机化个人助手101可以避免从事不太可能成功辅助用户10完成任务的技能。因此,计算机化个人助手101可以提高计算效率和/或降低完成任务的成本(例如,通过减少处理器负载和/或网络带宽使用)。
计算机化个人助手101包括被配置为接收查询的nlui102。可选地,在一些示例中,nlui102可以包括被配置为捕捉话音音频的麦克风103。因此,nlui102所接收的查询可以包括由该麦克风捕捉的话音音频。在一些示例中,nlui102被配置为接收用户话音音频并且将该用户话音音频表示为文本。
可替换地或除此之外,nlui102可以包括键盘或者被配置为以文本形式接收查询的任何其它文本输入设备。在一些示例中,nlui102包括墨水输入设备,并且nlui102所接收的用户输入可以包括由该墨水输入设备所捕捉的用户手写和/或用户手势。如本文所使用的,“墨水输入设备”包括可以允许用户提供墨水输入的任何设备或设备组合。例如,墨水输入设备可以包括允许用户指示相对于显示器或任何其它表面的一系列二维或三维位置的任何设备,例如,1)由用户的手指所控制的电容触摸屏;2)由输入笔控制的电容触摸屏;3)包括输入笔和触摸屏的“悬停(hover)”设备,所述触摸屏被配置为在该输入笔接近该触摸屏时检测该输入笔的位置;4)鼠标;或者5)视频游戏控制器。在一些示例中,可替换地或除此之外,墨水输入设备包括被配置为检测用户手势的相机。例如,相机可以被配置基于用户的手的三维移动来检测手势。可替换地或除此之外,相机(例如,深度相机)可以被配置为将用户的手的移动检测为相对于表面或平面的二维位置,例如相对于相机的视锥前侧所定义的平面的二维位置。
可选地,在一些示例中,nlui102可以包括被配置为以话音音频的形式输出针对查询的响应的扬声器104。可替换地或除此之外,nlui102可以包括被配置为以文本的形式显示针对查询的响应的显示器。可替换地或除此之外,nlui102可以被配置为经由网络111向用户设备171(例如,移动电话)发送响应,以便经由用户设备171的扬声器输出话音音频和/或在用户设备171的显示器处显示响应文本。可替换地或除此之外,nlui102可以被配置为向用户10发送任何适当的通知(例如,经由适当的消息收发协议,经由可见光,经由所显示的符号、文本和/或图像,和/或经由可听的声音和/或合成话音)。
计算机化个人助手101包括技能发现机器105。技能发现机器105被配置为促成对技能的发现以辅助用户10。技能发现机器105可以基于在计算机化个人助手101的nlui102处所接收到的查询和/或基于用户10的当前情境而促成技能的发现。
技能发现机器105被配置为评估候选技能的匹配置信度,该匹配置信度指示当前情境与先前关联于该候选技能的基准情境之间的匹配质量。在一些示例中,该基准情境可以包括示例性自然语言语句所定义的种子查询。在一些示例中,基准情境包括历史活动情境,其包含计算机服务(例如,协同计算机服务161)的状态数据,其中该状态数据与所识别的该计算设备的历史用户从事的活动相关联,并且其中用于辅助用户的操作涉及到所识别的活动。
在一些示例中,技能发现机器105被配置为通信耦合至技能数据库131和/或分类器机器141,以基于用户10的当前情境而从技能数据库131中选择技能,以便促成对候选技能的发现。从技能数据库131中选择候选技能是基于对候选技能的匹配置信度的评估的,该匹配置信度指示当前情境与先前关联于该候选技能的基准情境之间的匹配质量。
如本文所使用的,“情境”包括对计算机化个人助手101可用并且可以与用户10的当前活动相关的任何涉及用户10的信息。这样的情境信息的非限制示例包括:1)用户10和计算机化个人助手101之间的交互的历史(例如,过往查询)和/或用户10和协同计算机服务161之间的交互的历史;2)协同计算机服务161的当前状态;3)用户设备171的当前状态(例如,基于用户设备171的传感器所捕捉的传感器数据或者基于在用户设备171上执行的应用程序);4)所存储的提交(commitment)、预约(appointment)、通信,或者用户10所输入和/或从协同计算机服务161和/或用户设备171处的其它用户所接收的其它逻辑信息;5)所存储的用户10的偏好;6)在nlui102处接收的查询;和/或7)用户的当前音频或视频观察。在一些示例中,基于识别在nlui102处所接收的查询的自然语言特征确定用户的情境,以便识别该查询所表达的意图和/或该查询所定义的约束中的一种或多种。在一些示例中,基于以用户的当前和/或过往活动为基础识别用户的意图而确定用户的情境,例如,以在用户设备171上执行的应用程序的状态数据或者协同计算机服务161的状态数据为基础识别用户的意图。
如本文所使用的,“意图”包括用户所预期的任何结果,例如用户想要被针对查询的响应所实现的目标,或者用户使用协同计算机服务执行的任务。“约束”包括情境所指定的任何细节,例如在查询中提到的实体、在查询中提到的事件、协同计算机服务161的状态数据所指示的实体,或者任何其它适当细节(例如,时间/日期/位置细节)。使用nlui102,计算机化个人助手101可以识别情境的意图,例如查询的意图或者用户可以基于协同计算机服务161的状态而从事的预期任务。例如,如果用户10请求计算机化个人助手101“播放迪斯科音乐”,则计算机化个人助手101可以识别出播放音乐的意图,以及音乐流派应当为迪斯科的约束。在一些示例中,计算机化个人助手101可以基于查询的意图而识别出应当与所接收到的查询相关联的一种或多种预定义约束。例如,当查询的意图是要播放音乐时,计算机化个人助手101可以识别出应当指定的“流派”、“歌曲”和/或“艺术家”约束中的一种或多种,以便播放音乐。
个性化数据库121可以存储用户10的一种或多种当前情境。例如,响应于与用户10的交互,计算机化个人助手101、协同计算机服务161和/或用户设备171可以通信耦合至个性化数据库121以便在个性化数据库121中存储相关数据。在一些示例中,个性化数据库121可以是计算机化个人助手101的组件。例如,计算机化个人助手101的存储设备可以存储个性化数据并且使得这样的个性化数据可用于提供个性化数据库121的功能。在一些示例中,计算机化个人助手101可以通信耦合至个性化数据库121以便访问存储在个性化数据库121中的个性化数据。因此,计算机化个人助手101可以检索用户10的当前情境,以便基于这样的情境而促成对技能的发现。可替换地或除此之外,计算机化个人助手101、协同计算机服务161和/或用户设备171可以独立于个性化数据库121保存用户10的一个或多个当前情境。因此,计算机化个人助手101可以基于任何适当的当前情境(例如,在自然语言用户接口102处接收到的查询和/或计算机化个人助手101、个性化数据库121、协同计算机服务161和/或用户设备171所保存的当前情境的任何组合)而促成对技能的发现。
计算机化个人助手101进一步包括技能执行机器106。技能执行机器106被配置为确定当前查询(例如,通过从nlui102接收麦克风103所捕捉的当前查询)。响应于接收到当前查询,技能执行机器106进一步被配置为操作技能发现机器105以评估候选技能的匹配置信度。在一些示例中,技能执行机器106被配置为关于多种后续技能中的每种后续技能而操作技能发现机器105,例如,由此在多种候选技能中选择具有相对更高的匹配置信度的候选技能。因此,通过技能发现机器105的操作,技能执行机器106可以选择用于执行辅助动作的候选技能和/或候选技能的补充帮助动作。技能执行机器106进一步被配置为响应于匹配置信度超过预定义匹配置信度阈值而执行定义与候选技能相关联的辅助动作的指令,从而执行操作来辅助用户。技能执行机器106进一步被配置为执行响应于匹配置信度并未超过预定义匹配置信度阈值而执行定义与候选技能相关联的补充帮助动作的指令,以输出预定义响应而关于辅助动作对用户进行教导。
技能数据库131被配置为包括用于计算机化个人助手101的多种技能。技能数据库131可以包括可用技能和/或非可用技能。计算机化个人助手101被配置为根据任何可用技能而执行操作以辅助用户10,同时计算机化个人助手101可以需要进一步配置以利用非可用技能。例如,技能数据库131可以包括仅在计算机化个人助手101被配置为提供与相对应计算机服务(例如,协同计算机服务161)的用户账户相关联的用户证书的情况下才可以被利用的非可用技能。在一个示例中,非可用技能是用于播放来自流媒体服务的流媒体内容的技能,并且该非可用技能仅在计算机化个人助手101被配置为使用用户10的用户账户登录到该流媒体服务中的情况下才可以被利用。
技能数据库131被配置为针对多种技能中的候选技能定义辅助动作、先前关联于该辅助动作的基准情境以及先前关联于该辅助动作的补充帮助动作。技能的辅助动作由能够由计算机化个人助手101所执行以实施操作来辅助用户的指令所定义。例如,辅助动作可以包括用于采集来自计算机化个人助手101和/或用户设备171的传感器数据,以及基于所采集的传感器数据调用一个或多个api的指令,以便使用该一个或多个api实施操作而辅助用户。关联于辅助动作的基准情境可以是如上文所描述的任何适当情境,例如查询或者协同计算机服务161的状态。关联于辅助动作的补充帮助动作由能够由计算机化个人助手101所执行以输出预定义响应从而关于辅助动作对用户进行教导的指令所定义。例如,补充帮助动作可以由用于输出描述如何使用辅助动作的预定义响应的指令所定义。在一些示例中,该预定义响应可以经由计算机化个人助手101的扬声器103输出。
技能数据库131被配置为允许通过接收数据而增加新技能,所述数据针对新技能而定义:能够由计算机化个人助手101执行以实施该新技能的辅助动作的指令,与该辅助动作相关联的基准情境,以及能够由计算机化个人助手101执行以实施与该辅助动作相关联的补充帮助动作的指令。用于执行辅助帮助动作的指令可以被配置为输出预定义响应以关于辅助动作对用户10进行教导。因此,在一些示例中,定义该补充帮助动作可以基于提供预定义响应,并且技能数据库131被配置为自动定义指令以基于所提供的预定义响应执行补充帮助动作。
基于用户10的当前情境评估匹配置信度可以包括操作分类器机器141以将当前情境与关联于候选技能的基准情境进行匹配。在一些示例中,技能发现机器105被配置为访问技能数据库131以便选择初始的多种可用技能,并且针对该多种可用技能中的每种技能,操作分类器机器141以选择匹配的技能。在一些示例中,技能数据库131和分类器机器141的功能可以由单个计算机服务和/或计算机设备所提供,例如,技能数据库131和分类器机器141可以在公用服务器上实施。在一些示例中,技能数据库131和/或分类器机器141可以是计算机化个人助手101的组件。在一些示例中,技能数据库131和/或分类器机器141被配置为自动协同操作以基于当前情境自动选择技能。例如,技能数据库131可以被配置为接收当前情境并且自动操作分类器机器141以选择匹配技能并将该匹配技能返回至技能发现机器105。
分类器机器141包括机器学习分类器,其先前被训练以针对技能数据库131中的多种可用技能中的候选技能来评估该候选技能的匹配置信度,所述匹配置信度指示用户10的当前情境与先前关联于该候选技能的基准情境之间的匹配质量。
通过将当前情境与候选技能的基准情境进行匹配,分类器机器141由此可以评估候选技能与当前情境的相关性,例如,在当前情境和基准情境相似时,该候选技能可以能够被应用于这两种情境。例如,在当前情境基于在nlui102处接收的当前查询时,基准情境可以是相似的基准查询(例如,基本上相同的查询或者在语义上等同的当前查询的改述)。因此,当前查询和基准查询可能以表达相似的意图和/或定义相似的约束,并且该候选技能很可能能够应用于当前查询以及基准查询。
可选地,在一些示例中,分类器机器141被配置为在语言预处理142对当前情境的自然语言数据(例如,从查询得出的自然语言数据和/或与协同计算机服务161的状态相关联的自然语言数据)进行预处理。语言预处理142可以包括任何适当的预处理,例如令牌化、依赖性和/或顾客解析、更正拼写、阻止单词并利用同义词替换单词,和/或用于将当前情境的自然语言数据变换为标准化形式(例如,包括被阻止的、正确拼写单词的解析树)的任何其它适当技术。
可选地,在一些示例中,分类器机器141被配置为经由分类器管线143和/或词汇管线144之一或二者对当前情境进行处理(例如,在语言预处理142处的预处理之后)。在一些示例中,分类器机器141被配置为独立且基本上并行地在分类器管线143和词汇管线144中的每一个处对当前情境进行处理。
分类器管线143包括一种或多种机器学习(ml)和/或人工智能(ai)模型,其先前被训练以对当前情境和基准情境分类,以便评估指示当前情境和基准情境之间的匹配质量的匹配置信度。分类器管线143可以包括任何适当的ml和/或ai模型。
在一些示例中,分类器管线143包括统计分类器(例如,支撑矢量机、逻辑回归或者任何其它适当的统计分类器)。在一些示例中,分类器管线143包括深度神经网络模型,例如深度语义相似度模型(dssm)。更一般地,分类器管线143可以包括可以基于训练数据进行训练(例如,使用标记示例进行的监管训练)的ml模型。即使在当前情境和基准情境的自然语言特征在词汇上有所不同时,分类器管线143也被配置为识别当前情境和基准情境之间的语义匹配。在一些示例中,分类器管线143可以包括被配置为集成模型的多个不同的ai和/或ml模型。例如,该全集模型可以基于任何适当的集成方法,诸如套袋(bagging)和/或boosting(提升)(例如,adaboost)。
词汇管线144被配置为应用一种或多种规则以便基于当前情境和基准情境的词汇内容来评估指示当前情境和基准情境之间的匹配质量的匹配置信度。词汇管线144被配置为检测与当前情境和/或基准情境相关联的词汇特征(例如,查询的词汇特征或与情境相关联的自然语言特征的词汇特征)。在一些示例中,词汇管线144被配置为检测关键词(例如,根据关键词白名单)和/或词汇模式(例如,单词的排序次序或者根据诸如常规表达语法或无上下文语法之类的正式语言的模式)。在一些示例中,词汇管线144被配置为检测关键词(例如,关键词白名单)和/或词汇模式的缺失。
在一些示例中,词汇管线144被配置为基于出现在两个情境中的相似词汇特征来评估当前情境和基准情境之间的匹配置信度。在一些示例中,逻辑管线144被配置为基于逻辑特征对当前情境进行归类。例如,在当前情境是包括单词“help”或者涉及辅助的类似词汇内容的查询时,逻辑管线144被配置为将该查询归类为帮助查询。如本文所使用的,“帮助查询”包括用于辅助发现技能和/或配置计算机化个人助手101的任何查询。在一些示例中,计算机化个人助手101被配置为响应于识别出可能与技能相关的帮助查询(例如,具有被分类器管线143所评估的高匹配置信度同时也被词汇管线144识别为帮助查询的查询)而执行与该技能相关联的补充帮助动作。
分类器管线143和词汇管线144可以协同操作以鲁棒地评估当前情境和基准情境之间的匹配。分类器管线143和词汇管线144每个均可以评估当前情境关于基准情境的匹配置信度。在一些示例中,分类器机器141所评估的匹配置信度可以基于分类器管线143和词汇管线144所输出的匹配置信度(例如,匹配置信度的加权和)。
在一些示例中,分类器机器141可以评估当前情境和多个不同基准情境中的每一个之间的匹配,其具有指示与当前情境不同匹配质量的不同匹配置信度。因此,分类器机器141被配置为针对技能数据库131中所包括的多种可用技能中的每种可用技能而评估该可用技能的候选匹配置信度。分类器机器141可以进一步被配置为在排名145基于候选匹配置信度对不同基准情境进行排名,并且选择具有最高的候选匹配置信度的候选技能。以这种方式,即使在多种技能可能与不同事件匹配时,分类器机器141也可以促成对具有与当前情境最近似匹配的基准情境的技能的发现。在一些实例中,分类器机器141可以基于单个匹配置信度值(例如,基于分类器管线143和/或词汇管线144所评估的候选匹配置信度的加权和)对不同基准情境进行排名。在一些示例中,分类器机器141可以基于在匹配过程期间所生成的多个不同值而对不同的基准情境进行排名。例如,可以基于分类器管线143和/或词汇管线144所评估的单独匹配置信度,基于分类器管线143的一个或多个ai和/或ml模型所评估的值(例如,基于诸如dssm的深度神经网络模型的隐藏单元所评估的值)和/或基于词汇分类器144所应用的个体规则(例如,基于基准情境和当前情境之间关于特定关键词的匹配)对基准情境进行排名。
在一些示例中,基于将当前情境的意图与基准情境的意图相匹配而评估当前情境和基准情境的匹配置信度。在一些示例中,基于将关联于当前情境的一种或多种约束与关联于基准情境的一种或多种约束相匹配而评估当前情境和基准情境的匹配置信度。例如,当前情境和基准情境在这两个情境各自定义了相同约束时和/或在这两个情境具有一种或多种相似约束时可以具有所评估的相对较高的匹配置信度。
基于在分类器机器141处评估匹配置信度,可以以任何适当方式选择与当前情境匹配的技能。例如,该技能可以基于具有与当前情境具有相对最高的匹配置信度的相关联基准情境而被选择。在一些示例中,该技能可以在分类器机器141处被选择。在一些示例中,该技能可以基于分类器机器141所评估的匹配置信度(例如,分类器机器141可以向技能数据库131和/或计算机化个人助手101发送与技能数据库131中的技能相关联的一个或多个匹配置信度值以供选择)而在技能数据库131处和/或计算机化个人助手101处被选择。
在一些示例中,计算机化个人助手101被配置为操作技能执行机器106以便响应于技能的选择而执行定义候选技能的辅助动作的指令。在一些示例中,技能执行机器106被配置为仅在候选技能的匹配置信度超过预定义匹配阈值置信度时才执行定义该技能的辅助动作,例如以便仅执行高度可能被用户10所预期的操作。在一些示例中,技能执行机器106被配置为在候选技能的匹配置信度并未超过预定义匹配置信度阈值时延后定义该技能的辅助动作的执行,例如以便在执行指令之前采集更多信息和/或向用户10提出除歧问题。在一些示例中,不同于执行定义技能的辅助动作的指令或者除此之外,技能执行机器106被配置为执行定义与该技能相关联的补充帮助动作的指令(例如,在匹配置信度并未超过预定义匹配置信度阈值时)。
指令可以在图1的计算环境100中的任何计算设备处执行(例如,计算机化个人助手101、网络111、个性化数据库121、技能数据库131、分类器机器141、验证机器151、协同计算机服务161和/或用户设备171)。在一些示例中,执行指令可以包括技能数据库131向计算机化个人助手101发送命令以执行被配置为实施与候选技能相关联的辅助动作和/或补充帮助动作的另外指令。在一些示例中,执行指令可以包括计算机化个人助手101向协同计算机服务161发送命令以执行另外指令。更一般地,辅助动作和/或补充帮助动作可以由部分被计算设备的任意适当组合执行的指令所定义,由此使得计算环境11和/或其它协同计算机共同提供辅助动作和/或补充帮助动作。
虽然关于计算机化个人助手101描述了示例性计算环境100,但是本公开中所描述的方法(例如,方法200)可以在任何适当计算设备上进行,例如个人计算设备或者在一个或多个网络可访问计算环境上例示的云服务。如本文所使用的,计算机化个人助手101一般是指被配置为促成从技能数据库131的技能发现和/或通过使用技能来应答查询的本地和/或远程的计算设备的集合。在一些示例中,计算机化个人助手101包括1)本地计算设备,其包括用于与用户交互的输入设备(例如,键盘、麦克风、相机)和输出设备(例如,显示器、扬声器),和2)协同远程计算机设备(例如,云计算设备),其被配置为促成从技能数据库131的技能发现和/或通过使用技能来应答查询。在一些示例中,示例性计算环境100的一个或多个组件可以被包括在公用外壳中,例如作为计算机化个人助手101的组件。例如,计算机化个人助手101可以被实施为多合一计算设备,其包括提供个性化数据库121、技能数据库131、分类器机器141和验证机器151的功能的组件。在一些示例中,计算机化个人助手101可以进一步提供例如协同计算机服务161的一个或多个协同计算机服务的功能。在一些示例中,计算机化个人助手101可以实施为被配置用于在用户设备171上执行的应用程序。
计算机化个人助手101可以遇到用户10的许多不同的当前情境。例如,计算机化个人助手101可以从用户10接收许多不同查询。此外,从用户10接收的查询在词汇形式上可以有所变化并且可以表达用户10的许多不同意图和/或与不同意图相关的约束。这样,可以存在许多不同的方式来向计算机化个人助手101发出查询。此外,在一些情况下,能够通过立即使用技能来辅助用户10来为查询服务,而在其它情况下,在计算机化个人助手101能够使用技能关于查询辅助用户10之前可能要求更多的信息。类似地,可以存在用户10的许多不同的活动情境。在一些情况下,使用技能在给定特定活动情境的情况下可以是适宜的,但是在其它情况下,技能可以仅是部分与该活动情境相关、或者在计算机化个人助手可以使用该技能关于活动情境辅助用户10之前可能要求更多的信息。
因此,图2描绘了用于促成对例如计算机化个人助手101的计算机化个人助手的技能的发现的方法200。在一些示例中,计算机化个人助手101可以执行方法200以便基于用户10的当前情境展现出相关技能,由此帮助用户10了解到哪些技能对于计算机化个人助手101而言可用以及了解到如何使用这些可用技能。例如,计算机化个人助手101可以执行方法200以便基于用户10的当前情境在与用户10的对话期间展现出相关技能(例如,由用户10在对话期间提出的查询所定义的当前情境)。
在201,方法200包括将计算机化个人助手101通信耦合至包括用于计算机化个人助手101的多种可用技能的计算机数据库,例如技能数据库131。
在211,方法200包括识别例如用户10的用户的当前情境。可选地,在一些示例中,在212,用户10的当前情境包括在nlui处——例如在nlui102处——接收的用户查询。例如,如图1在11所示的,用户10发出询问计算机化个人助手101是否能够“播放70年代音乐”的查询。
在221,方法200包括操作先前训练的机器学习分类器以评估匹配置信度,该匹配置信度指示该当前情境和该候选技能的基准情境之间的匹配质量。因此,为了促成对与11处的用户查询相关的候选技能的发现,计算机化个人助手101和/或技能发现机器105可以操作先前训练的机器学习分类器141来评估候选技能的匹配置信度和/或评估多种候选技能的匹配置信度,以便从多种候选技能中选择该候选技能。
在一些示例中,评估候选技能的匹配置信度基于评估当前情境关于候选技能的基准情境的匹配置信度。在一些示例中,该基准情境可以包括示例性的自然语言语句所定义的种子查询。因此,用于辅助用户的辅助动作和相关联操作可以与该种子查询相关。例如,该候选技能可以是具有用于使用流音乐服务播放音乐的辅助动作的技能。因此,与候选技能相关联的种子查询可以是查询“播放“thebeatles”的音乐”,例如表达播放音乐的意图以及音乐艺术家应当是“thebeatles”的约束。因此,用于辅助用户的操作可以包括使用流音乐服务播放“thebeatles”的音乐。
在241,方法200包括确定该匹配置信度是否超过了预定义阈值。该预定义阈值可以以任何适当方式所定义。例如,该预定义阈值可以基于评估先前训练的机器学习分类器关于标记训练数据的准确性、精确度和/或召回(recall)(例如,使用标记训练数据的监管训练和/或交叉验证)。
在281以及如图1中所描绘的,该匹配置信度并未超过预定义阈值。例如,针对当前查询“能播放70年代音乐吗”关于种子查询“播放“thebeatles”的音乐”所评估的匹配置信度由于问题的形式/措辞的差异而并未超过预定义阈值。可替换地或除此之外,匹配置信度可能由于查询的约束而并未超过预定义阈值,例如,该种子查询具有与音乐艺术家相关的约束,而该当前查询则具有有关音乐年代的约束,而这可能无法被用于指定要使用流音乐服务进行流式传输的音乐。因此,在281,方法200包括响应于该匹配置信度并未超过预定义匹配置信度阈值而执行定义该候选技能的补充帮助动作的指令。如图1所示,计算机化个人助手101在12输出预定义响应以教导用户10。
可选地,在282以及如图1中所示,输出预定义响应以关于辅助动作教导用户可以包括输出该辅助动作的自然语言描述,例如计算机化个人助手101可以在给定流派、艺术家或歌曲名称的情况下播放音乐。
可选地,在283以及如图1中所示,输出预定义响应可以包括输出示例性查询,机器学习分类器针对所述示例性查询被配置为输出大于预定义匹配置信度阈值的匹配置信度值,从而使得计算机化个人助手101被配置为响应于接收到该示例性查询而执行与候选技能相关联的操作以辅助用户。例如,计算机化个人助手101被配置为通过自动播放摇滚乐而对查询“播放摇滚乐”作出响应。在一些示例中,该示例性查询可以类似于种子查询或者可以基于该种子查询,例如,“播放摇滚乐”具有与种子查询“播放“thebeatles”的音乐”相似的词汇形式,并且包括适于使用流音乐服务流式传输音乐的流派约束。
在计算机化个人助手101输出预定义响应以关于如何使用该技能来播放音乐而教导用户10之后,用户10可以通过发出另一个查询而继续该对话。例如,在13,用户10发出另一个查询,其讲出计算机化个人助手101应当“播放迪斯科音乐”。该新查询在词汇上类似于示例性查询并且包括类似于该示例性查询的流派约束。因此,计算机化个人助手101被配置为基于该新查询识别用户的新情境(例如,根据方法200在211),以操作先前训练的机器学习分类器来评估该新情境与候选技能的基准情境的匹配置信度(例如,根据方法200在221),并且确定该匹配置信度超过了预定义匹配置信度阈值(例如,根据方法200在241)。
在251,方法200包括确定候选技能是否可用。如图1所示,用于播放音乐的候选技能是可用的,并且因此,方法200进一步包括在261响应于该匹配置信度超过预定义匹配置信度阈值而执行定义该候选技能的辅助动作的指令。因此,计算机化个人助手101在14确认音乐将开始播放,由此满足用户查询的意图。
图3示出了计算机化个人助手101根据方法200帮助用户10的另外的示例。如图3中所示,在31处,计算机化个人助手101基于查询而识别用户10的当前情境(例如,根据方法200在211),用户在所述查询中要求设备使用具体音乐服务“musicservice2”播放摇滚乐。因此,计算机化个人助手101被配置为操作先前训练的机器学习分类器来评估候选技能的匹配置信度,例如用于使用musicservice2播放音乐的技能。
在一些示例中,用户10可以要求播放仅在特定音乐服务上可用的特定音乐音轨(例如,来自在该特定音乐服务上而非计算机化个人助手101可用的其它音乐服务上发布的艺术家和/或转机的歌曲)。因此,计算机化个人助手101可以推断出用户10的查询所暗示的约束,其指示使得该音乐音轨可用的音乐服务应当被用于播放该音乐音轨。通过推断要用于流式传输音乐的音乐服务,计算机化个人助手101可以减轻用户10知晓和/或指定用于播放流内容的服务的负担。计算机化个人助手101可以类似地基于用户10的查询所暗示的(多种)约束而针对任何其它类型的服务(例如,流电影和/或电视服务、食品服务、叫车服务等)推断并选择适宜的提供方。例如,计算机化个人助手101可以基于用户10有兴趣点单的菜单项的可用性和/或可用食品服务的地理覆盖区域来推断和选择食品服务。类似地,计算机化个人助手101可以基于用户10在可用流电影服务所提供的电影目录内的电影选择的可用性而推断并选择流电影服务。
基于31处的查询,先前训练的机器学习分类器可以针对候选技能评估相对高的匹配置信度,使得在241该匹配置信度超过了预定义匹配置信度阈值。因此,在251,方法200包括确定候选技能是否可用。然而,该候选技能可能由于用户10之前尚未针对musicservice2配置用户账户而非可用。
在271,方法200包括响应于非可用技能匹配置信度超过了预定义匹配置信度阈值,输出描述该非可用技能的预定义响应,并且关于配置计算机化个人助手101而使得该非可用技能变为可用对用户进行教导。因此,如图3所示,计算机化个人助手101被配置为输出先前(例如,当该技能被添加至技能数据库131时)与该技能相关联的预定义响应。例如,在32,计算机化个人助手101输出描述如何可以使用musicservice2播放音乐的预定义响应,其指示首先需要musicservice2的用户账户,以及描述如何创建用户账户。在该示例中,计算机化个人助手101进一步被配置为提议在用户的电话(例如,用户设备171)上显示“账户”设置页面以用于针对musicservice2配置用户账户。因此,在33用户10接受该提议,并且在34计算机化个人助手101确认用户10能够在他们的电话上继续创建过程。以这种方式,虽然用于利用musicservice2播放音乐的候选技能最初可能还非可用,但是计算机化个人助手101可以通过经配置过程引导用户10以使得该候选技能可用而促成对该候选技能的发现和使用。
图4示出了计算机化个人助手101和用户10之间的对话的另外的示例,其中计算机化个人助手101根据方法200而促成对技能的发现。如图4所示,在41,用户10要求计算机化个人助手101订外卖。计算机化个人助手101可以针对用于使用“foodservice1”或“foodservice2”订餐的两种不同技能中的每一种识别出相对高的匹配置信度。然而,这两种不同技能中的每一种的匹配置信度都可能低于预定义阈值(例如,甚至在识别出用户订餐的意图时,用户的查询也可能没有与两种技能中的任一种足够高的匹配,因为用户的查询并未充分限定诸如要使用哪一种特定技能/餐食服务的约束)。
计算机化个人助手101被配置为执行补充帮助动作,其中该补充帮助动作定义了消歧问题。因此,通过在42询问是要使用foodservice1还是foodservice2,计算机化个人助手101可以经由nlui102输出消歧问题。计算机化个人助手101进一步被配置为经由nlui102接收针对该消歧问题的回答,例如,用户10在43的回答。计算机化个人助手101被配置为基于与用户10的对话历史来解释针对该消歧问题的回答,例如通过解释用户10的回应“第一个”来指示在42所提供的第一个选项,也就是foodservice1。因此,计算机化个人助手101可以基于与用户10的对话历史识别出新的情境,其中该新的情境指示用户10意图特定地使用foodservice1来订餐。
甚至在用户10在43说出使用foodservice1之后,当前情境关于候选技能的基准情境的新匹配置信度也可能并未超过预定义匹配置信度阈值。例如,甚至在识别出用户使用foodservice1订餐的意图之后,用户的查询也可能不具有与用于使用foodservice1订餐的技能足够高的匹配,因为用户的查询并未充分限定诸如要从什么餐厅订餐和/或要订菜单上的什么事项之类的约束。因此,如在44、45、46和47所示,计算机化个人助手101可以向用户10提出进一步的消歧问题以便识别出新情境,例如,用于识别出用户10想要使用foodservice1订餐以及特别地从“theburritoplace”订“vegieburrito”的意图。因此,计算机化个人助手101被配置为在48输出确认下单的响应。
更一般地,无论何时当前情境关于与可用和/或非可用技能相关联的一种或多种基准情境的匹配置信度足够高而超过预定义匹配置信度阈值,计算机化个人助手101都被配置为输出预定义响应以提出一系列消歧问题。例如,计算机化个人助手101可以提出消歧问题以确定特定技能(例如,当用户的意图被识别,但是多于一种的技能可以被应用于为该意图服务,如图4中所示),和/或确定与该意图相关联的约束。在一些示例中,用户10可以向计算机化个人助手101请求附加选项,例如,如果用户并不想要使用foodservice1或foodservice2,则用户10可以询问是否有任何其它技能可用于订餐。因此,计算机化个人助手101可以在有这样的选项可用时提供另外的选项,例如通过指示foodservice3是另一个选项。当没有这样另外的选项可用时,计算机化个人助手101被配置为提供一般的“退回(fallback)”选项,例如指示没有另外的选项可用于订餐。
在一些示例中,计算机化个人助手101可以基于当前情境自动消除用户意图的歧义,以便自动确定要使用什么技能和/或自动确定与用户意图相关联的约束。
在一些示例中,用户10的当前情境包括用户偏好(例如,存储在个性化数据库121中的用户偏好),并且评估候选技能的匹配置信度包括基于该候选技能的辅助动作满足用户偏好而针对该候选技能评估较高的匹配置信度。例如,计算机化个人助手101先前已经在可能时识别出用户10对于使用foodservice1而不是foodservice2的偏好,例如基于用户10使用foodservice1的频率或者基于用户10明确表明在未来使用foodservice1的偏好。因此,计算机化个人助手可以识别出用户10很可能希望使用foodservice1,并且可以针对使用foodservice1的技能评估与使用foodservice2的技能相比更高的匹配置信度。
在一些示例中,用户10的当前情境包括针对技能数据库131中的多种可用技能中的每种可用技能的利用频率,其指示该可用技能过往被用户10所利用的程度。计算机化个人助手101被配置为促成对具有相对较低的利用频率的未充分利用的技能的发现。例如,用户10可能不知道这样的未充分利用的技能。因此,计算机化个人助手101被配置为基于候选技能相比其它技能具有相对较低的利用频率而针对该候选技能评估更高的匹配置信度。
返回图2,可选地,在一些示例中,在213,用户10的当前情境是包括计算机服务(例如,协同计算机服务161)的状态数据的当前活动情境。候选技能可以具有包括历史活动情境的相关联基准情境,所述历史活动情境包括计算机服务(例如,协同计算机服务161)的状态数据,其中该状态数据与所识别的由该计算机服务的历史用户所从事的活动相关联,并且其中用于辅助用户的操作涉及到所识别的活动。当前活动情境和历史活动情境之间的高质量匹配可以指示用户10的当前活动是所识别的活动。因此,由于用于辅助用户的操作涉及到所识别的活动,所以计算机化个人助手101可以利用该技能辅助用户进行该所识别的活动。
在一些示例中,计算机化个人助手101可以响应于评估候选技能的匹配置信度而自动和/或主动地执行定义该候选技能的补充帮助动作的指令。例如,如果用户10在机场,咋用户设备171可以检测到用户10在机场(例如,基于用户设备171中所包括的全球定位系统(gps)传感器),并且因此,计算机化个人助手101所识别的用户10的当前情境可以包括用户10在机场这一事实。技能数据库131可以包括用于提供旅行辅助的技能(例如,通过在用户10进入机场时以及贯穿旅程显示旅行计划、地图和/或票据)。然而,用户10可能尚未发现该用于提供旅行辅助的技能。因此,基于当前情境和/或基于该用于提供旅行辅助的技能未被充分利用,计算机化个人助手101可以主动地执行指令以实施该旅行技能的补充帮助动作。例如,该旅行技能的补充帮助动作可以包括在nlui102输出预关于旅行技能对用户10进行教导的定义响应。更一般地,基于识别出该旅行技能可能能够应用于用户10的当前情境,计算机化个人助手101可以向用户10提供任何适当的通知,例如通过在用户设备171的显示器显示有关该旅行技能的信息。
在一些示例中,技能可能与多于一种的预定义响应相关联,例如,用于主动执行补充帮助动作的预定义响应以及用于响应于查询而执行补充帮助动作的预定义响应。在一个示例中,用于对用户进行关于旅行技能的主动教导的预定义响应可以包括该旅行技能的简要描述以用于向用户教导该技能(例如,在用户还不知道该技能的情况下),而用于响应于查询而对用户进行关于该旅行技能的教导的预定义响应可以包括如何使用该旅行技能的更加深入的描述,其包括示例性的查询(例如,在用户已经知道该技能但是可能从有关该技能的附加深入信息获益的情况下)。更一般地,技能可以与任何适当数量的预定义响应相关联,例如涉及到与技能相关的不同情境、查询、意图和/或约束。
返回图1,促成技能的发现可以通过训练分类器机器141而得到持续改进。例如,可以关于标记数据使用监管训练来对分类器机器141进行训练,例如基于标记配对,其中标记配对包括示例性的当前情境和示例性的基准情境,它们被标记以指示情境之间的匹配质量。
验证机器151被配置为验证分类器机器141关于历史情境的操作(例如,历史查询和历史活动情境)。验证机器151被配置为接收训练示例情境,其可以是任何适当的情境,例如计算机化个人助手101先前所识别的历史情境。针对技能数据库131中所包括的多种可用技能中的一种可用技能,验证机器151被配置为操作分类器机器141来评估指示该训练示例情境和先前与该可用技能相关联的训练基准情境之间的匹配质量的训练置信度。在一些情况下,该训练置信度可能接近于预定义匹配置信度阈值,而并未超过该预定义匹配置信度阈值。因此,该训练置信度可以指示该训练示例情境和训练基准情境“近似匹配”,其中该可用技能可能至少部分与该训练示例情境相关。
在训练示例情境和基准情境之间“近似匹配”的一些情况下,如果有更多训练数据被提供给分类器机器141,则分类器机器141将潜在地针对该训练示例情境和训练基准情境评估较低和/或较高的匹配置信度。因此,验证机器151被配置为使得“近似匹配”引起训练器(例如,计算机化个人助手101的用户)的注意,以便从该训练器接收到附加的训练数据和/或反馈。
验证机器151被配置为从训练器接收不同于第一训练基准情境的第二训练基准情境,并且更新技能数据库131以将该第二训练基准情境与该可用技能的辅助动作相关联。在一些示例中,该第二训练基准情境可以在语义和/或词汇上类似于该训练示例情境。因此,基于该可用技能与该第二训练基准情境之间的关联,分类器机器141可以关于该可用技能针对该训练示例情境评估较高的匹配置信度。
可替换地或除此之外,验证机器151被配置为从训练器接收该训练示例情境事实上与训练基准情境相匹配的指示并且对分类器141进行训练,从而在训练之后,分类器141被配置为评估并不超过预定义匹配置信度阈值的更新匹配置信度。从训练器所接收的数据可以确认可用技能实际上是否是训练示例情境的良好匹配。因此,通过基于这样的数据更新分类器机器141和/或技能数据库131,验证机器151可以使得分类器机器141更适宜地评估可能作为可用技能的“近似匹配”的示例情境的匹配置信度,由此在示例情境出现时促成这样的技能的发现。
分类器机器141可以以任何适当方式来确定匹配的质量,例如,使用现有技术和/或未来的自然语言处理(nlp)、ml和/或ai技术的任何适当组合,如下文将进一步描述的。例如,分类器管线143可以使用这样的技术的任何适当组合来实施。
更一般地,包括个性化数据库121、技能数据库131、验证引擎151、总体上的计算机化个人助手101(特别是nlui102、技能发现机器105和技能执行机器106)的计算环境100的组件可以使用现有技术和/或未来的nlp、ml和/或ai技术的任何适当组合来实施。例如,计算环境100的组件可以使用nlp、ml和/或ai技术处理自然语言输入、作出决策和/或评估决策置信度值,并且更一般地执行本文所公开的任何方法和处理。
可以整合在计算环境100的实施方式中的技术的非限制性示例包括支撑矢量机、多层神经网络、卷积神经网络(例如,包括用于处理自然语言语句的时间卷积神经网络)、文字嵌入模型(例如,glove或wordvec)、递归神经网络(例如,长短期记忆网络)、辅助记忆(例如,查找表、散列表、bloom过滤器、神经图灵机和/或神经随机访问存储器)、非监管的空间和/或集群方法(例如,最近邻算法、拓扑数据分析和/或k均值聚类)和/或图形模型(例如,马尔科夫模型、条件随机场和/或ai知识库)。
在一些示例中,计算环境100的组件所执行的方法和处理(例如,方法200)可以使用一个或多个可区分函数来实施,其中可以关于该可区分函数的输入和/或输出(例如,关于训练数据和/或关于目标函数)来计算和/或估计该可区分函数的梯度。计算环境100的方法和处理可以至少部分由计算环境100的可训练参数集合(例如,包括计算环境100的每个组件的可训练参数)所确定。因此,计算环境100的可训练参数可以通过任何适当的训练过程来调节,以便持续改善本文所描述的方法和过程的运作。
训练过程的非限制性示例包括监管训练(例如,使用梯度下降或任何其它适当的优化方法)、零样本(zero-shot)、小样本(few-shot)、非监管学习方法(例如,基于从非监管聚类方法所得出的类别的分类)、强化学习(例如,基于反馈的深度q学习,所述反馈诸如来自用户10的有关计算助手101所提供辅助的质量的反馈)和/或生成式对抗神经网络训练方法。在一些示例中,计算环境100的多个组件可以关于测量该多个组件的集体运作性能的目标函数(例如,关于来自用户10的反馈或者关于标记训练数据)而被同时训练,以便改善这样的集体运作。在一些示例中,计算环境100的一个或多个组件可以独立于其它组件进行训练(例如,关于历史数据的离线训练)。
在一些实施例中,本文所描述的方法和处理可以与一个或多个计算设备的计算系统联系起来。特别地,这样的方法和处理可以被实施为计算机应用程序或服务、api、库集和/或其它计算机程序产品。
图5示意性地示出了可以实施上文所描述的一种或多种方法和处理的计算系统500的非限制性实施例。计算系统500以简化形式示出。计算系统500可以采用一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其它计算设备的形式。例如,计算系统500可以是计算机化个人助手101。可替换地或除此之外,计算系统500可以是个性化数据库121、技能数据库131、分类器机器141、验证机器151、协同计算机服务161和/或用户设备171。
计算系统500包括逻辑机器501和存储机器502。计算系统500可选地可以包括显示子系统503、输入子系统504、通信子系统505和/或图5中并未示出的其它组件。
逻辑机器501包括被配置为执行指令的一个或多个物理设备。例如,逻辑机器可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其它逻辑构造的一部分的指令。这样的指令可以被实施以执行任务、实施数据类型、变换一个或多个组件的状态、实现技术效果,或者以其它方式达到所期望的结果。
该逻辑机器可以包括被配置为执行软件指令的一个或多个或处理器。除此之外或可替换地,该逻辑机器可以包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机器。该逻辑机器的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。该逻辑机器501的个体组件可选地可以分布在可以远程定位和/或被配置用于协同处理的两个或更多的单独设备中。逻辑机器的各方面可以由以云计算配置进行配置的可远程访问的联网计算设备进行虚拟化并执行。
存储机器502包括被配置为保存指令的一个或多个物理设备,所述指令能够由逻辑设备执行以实施本文所描述的方法和处理。在实施这样的方法和处理时,存储装置502的状态可以被变换,例如用于保存不同的数据。
存储机器502可以包括可移动和/或内置设备。存储设备602可以包括一种或多种类型的存储设备,包括光存储器(例如cd、dvd、hd-dvd、蓝光盘等),半导体存储器(例如,ram、eprom、eeprom等),和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、mram等),诸如此类。存储设备可以包括易失性、非易失性、动态、静态、读/写、只读、随机访问、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。
将要意识到的是,存储机器502包括一个或多个物理设备。然而,可替换地,本文所描述指令的多个方面可以由并不被物理设备无限期保存的通信介质(例如,电磁信号、光信号等)进行传播。
逻辑机器501和存储机器502的多个方面可以一起被集成到一个或多个硬件逻辑组件中。这样的硬件逻辑组件可以包括现场可编程门阵列(fpga)、程序和专用集成电路(pasic/asic)、程序和专用标准产品(pssp/assp)、片上系统(soc)和复杂可编程逻辑器件(cpld)。
术语“模块”、“程序”和“引擎”可以被用来描述被实施以执行特定功能的计算系统的一个方面。在一些情况下,可以经由执行存储机器52所保存的机器可读指令的逻辑机器501来对程序进行实例化。将要理解的是,不同的模块、程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、api、函数等进行实例化。同样,相同的程序可以由不同的应用、服务、代码块、对象、库、例程、api、函数等进行实例化。术语“模块”、“程序”和“引擎”可以包含可执行文件、数据文件、库、驱动程序、脚本、数据库记录等的个体或群组。
将要意识到的是,如本文所使用的,“服务”是能够跨多个用户会话执行的应用程序。服务可能能够被一个或多个系统组件、程序和/或其它服务所使用。在一些实施方式中,服务可以在一个或多个服务器计算设备上运行。
在被包括时,显示子系统503可以被用来呈现存储机器52所保存的数据的视觉表示形式。该视觉表示形式可以采用图形用户界面(gui)的形式。由于本文描述的方法和处理改变了存储机器502所保存的数据,并且因此变换了存储机器502的状态,所以显示子系统503的状态可以同样地被变换从而以视觉形式表示底层数据的变化。显示子系统503可以包括采用例如上文所讨论的实际上任意类型的技术的一个或多个显示设备。这样的显示设备可以在共享封装中与逻辑机器501和/或存储机器502进行组合,或者这样的显示设备可以是外围显示设备。
在被包括时,输入子系统504可以包括一个或多个用户输入设备或者与之对接,诸如键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,该输入子系统可以包括所选择的自然用户输入(nui)组件或与之对接。这样的组件可以是集成的或外围的,并且输入动作的转换和/或处理可以在板上或板外进行处理。示例的nui组件可以包括用于话音和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估脑活动的电场传感元件。
在被包括时,通信子系统505可以被配置为将计算系统500与一个或多个其它计算设备通信耦合。例如,通信子系统505可以包括与一种或多种不同通信协议相兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置为经由无线电话网络或者有线或无线局域网或广域网进行通信。在一些实施例中,通信子系统可以允许计算系统经由诸如互联网之类的网络而往来于其它设备发送和/或接收消息。
在一个示例中,一种计算机化个人助手包括:自然语言用户接口(nlui),包括麦克风和扬声器;技能发现机器,其被配置为通信耦合至包括用于该计算机化个人助手的多种可用技能的计算机数据库,其中该计算机数据库针对每种候选技能定义:可由该计算机化个人助手执行以实施操作来辅助用户的指令所定义的辅助动作;先前与该辅助动作相关联的基准查询;和先前与该辅助动作相关联的补充帮助动作,其中该补充帮助动作由可用该计算机化个人助手执行以输出预定义响应从而关于辅助动作对用户进行教导的指令所定义。在该示例或任意其它示例中,该计算机化个人助手进一步包括:技能执行机器,其被配置为:从该nlui接收该麦克风所捕捉的当前查询;响应于接收到该当前查询,操作该技能发现机器以评估候选技能的匹配置信度,该匹配置信度指示该当前查询与基准查询之间的匹配质量;响应于该匹配置信度超过预定义匹配置信度阈值而执行定义该辅助动作的指令;并且响应于该匹配置信度并未超过预定义匹配置信度阈值而执行定义该补充帮助动作的指令,并且经由该扬声器输出该预定义响应。
在一个示例中,一种促成计算机化个人助手的技能发现的方法,包括:将该计算机化个人助手通信耦合至包括用于该计算机化个人助手的多种可用技能的计算机数据库,其中该计算机数据库针对每种候选技能定义:可由该计算机化个人助手执行以实施操作来辅助用户的指令所定义的辅助动作;先前与该辅助动作相关联的基准情境;和先前与该辅助动作相关联的补充帮助动作,其中该补充帮助动作由可用该计算机化个人助手执行以输出预定义响应从而关于辅助动作对用户进行教导的指令所定义。在该示例或任意其它示例中,该方法进一步包括:识别用户的当前情境;操作先前训练的机器学习分类器以评估候选技能的匹配置信度,该匹配置信度指示该当前情境与基准情境之间的匹配质量;响应于该匹配置信度超过预定义匹配置信度阈值而执行定义该辅助动作的指令;并且响应于该匹配置信度并未超过预定义匹配置信度阈值而执行定义该补充帮助动作的指令。在该示例或任意其它示例中,该基准情境包括示例性自然语言语句所定义的种子查询;用于辅助用户的操作涉及该种子查询;并且该用户的当前情境包括经由自然语言用户接口所接收的用户查询。在该示例或任意其它示例中,该基准情境包括历史活动情境,其包括计算机服务的状态数据,所述状态数据与所识别的该计算机服务的历史用户的活动相关联;用于辅助用户的操作涉及所识别的活动;并且该用户的当前情境包括当前活动情境,其包括计算机服务的状态数据,该状态数据指示该用户正在使用该计算机服务从事所识别的活动。在该示例或任意其它示例中,执行定义该候选技能的补充帮助动作的指令是响应于评估候选技能的匹配置信度而被主动地实施。在该示例或任意其它示例中,该用户的当前情境包括用户偏好;并且评估该匹配置信度包括基于该辅助动作满足该用户偏好而针对该候选技能评估较高的匹配置信度。在该示例或任意其它示例中,该用户的当前情境包括针对该多种可用技能中的每种可用技能的利用频率,其指示用户对该可用技能的过往利用的程度;并且评估该匹配置信度包括基于该候选技能具有相对较低的利用频率而针对该候选技能评估较高的匹配置信度。在该示例或任意其它示例中,该方法进一步包括:操作先前训练的机器学习分类器以针对该多种可用技能中的每种可用技能评估该可用技能的候选匹配置信度;并且按照候选匹配置信度对该多种技能进行排名。在该示例或任意其它示例中,该候选技能是具有最高的候选匹配置信度的可用技能。在该示例或任意其它示例中,该计算机数据库进一步包括非可用技能,并且该方法进一步包括:操作先前训练的机器学习分类器以评估该非可用技能匹配置信度,其指示该当前情境和先前关联于该非可用技能的基准情境之间的匹配质量;并且响应于该非可用技能匹配置信度超过预定义匹配置信度阈值而输出响应,所述响应描述该非可用技能并且关于配置该计算机化个人助手而使得该非可用技能变为可用对该用户进行教导。在该示例或任意其它示例中,输出预定义响应以关于辅助动作对用户进行教导包括经由nlui输出该辅助动作的自然语言描述。在该示例或任意其它示例中,用于关于辅助动作对用户进行教导的预定义响应包括示例性查询,该先前训练的机器学习分类器被配置为针对所述示例性查询而输出大于预定义匹配置信度阈值的匹配置信度值,从而该计算机化个人助手被配置为响应于接收到该示例性查询而执行操作以辅助该用户。在该示例或任意其它示例中,该补充帮助动作进一步定义消歧问题,并且该方法进一步包括:经由自然语言用户接口(nlui)输出该消歧问题;经由该nlui接收针对该消歧问题的回答;并且响应于接收到该回答,操作该计算机化个人助手以执行定义该候选技能的辅助动作的指令。在该示例或任意其它示例中,该方法进一步包括:接收训练示例情境;针对该多种可用技能中的一种可用技能:操作先前训练的机器学习分类器以评估训练置信度,其指示该训练示例情境和先前关联于该可用技能的第一训练基准情境之间的匹配质量,其中该训练置信度并未超过预定义匹配置信度阈值;从训练器接收第二训练基准情境;并且更新该计算机数据库以将该第二训练基准情境与该可用技能的辅助动作相关联。在该示例或任意其它示例中,该方法进一步包括:接收训练示例情境;针对该多种可用技能中的一种可用技能:操作先前训练的机器学习分类器以评估训练置信度,其指示该训练示例情境和先前关联于该可用技能的训练基准情境之间的匹配质量,其中该训练置信度并未超过预定义匹配置信度阈值;从训练器接收该训练示例情境匹配该训练基准情境的指示;并且训练该先前训练的机器学习分类器,而使得进一步训练的机器学习分类器被配置为评估经更新的置信度,其中该经更新的置信度超过预定义匹配置信度阈值。
在一个示例中,一种计算机系统包括:逻辑机器;和保存指令的存储机器,所述指令能够由该逻辑机器执行以:通信耦合至包括用于该计算机系统的多种可用技能的计算机数据库,其中该计算机数据库针对每种候选技能定义:可由计算机化个人助手执行以实施操作来辅助用户的指令所定义的辅助动作;和先前与该辅助动作相关联的基准情境;和先前与该辅助动作相关联的补充帮助动作,其中该补充帮助动作由可用该计算机化个人助手执行以输出预定义响应从而关于辅助动作对用户进行教导的指令所定义。在该示例或任意其它示例中,该指令能够进一步被执行以:识别用户的当前情境;操作先前训练的机器学习分类器以评估候选技能的匹配置信度,该匹配置信度指示该当前情境与基准情境之间的匹配质量;响应于该匹配置信度超过预定义匹配置信度阈值而执行该辅助动作;并且响应于该匹配置信度并未超过预定义匹配置信度阈值而执行该补充帮助动作。在该示例或任意其它示例中,该基准情境包括示例性自然语言语句所定义的种子查询;用于辅助用户的操作涉及该种子查询;并且该用户的当前情境包括经由自然语言用户接口所接收的用户查询。在该示例或任意其它示例中,该基准情境包括历史活动情境,其包括计算机服务的状态数据,所述状态数据与所识别的该计算机服务的历史用户的活动相关联;用于辅助用户的操作涉及所识别的活动;并且该用户的当前情境包括当前活动情境,其包括计算机服务的状态数据,该状态数据指示该用户正在使用该计算机服务从事所识别的活动。在该示例或任意其它示例中,该候选技能的补充帮助动作响应于评估候选技能的匹配置信度而被主动地实施。在该示例或任意其它示例中,该用户的当前情境包括用户偏好;并且评估该匹配置信度包括基于该辅助动作满足该用户偏好而针对该候选技能评估较高的匹配置信度。在该示例或任意其它示例中,该用户的当前情境包括针对该多种可用技能中的每种可用技能的利用频率,其指示用户对该可用技能的过往利用的程度;并且评估该匹配置信度包括基于该候选技能具有相对较低的利用频率而针对该候选技能评估较高的匹配置信度。
将要理解的是,本文所描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应被认为是限制性的,因为可能有许多的变化。这里所描述的距离例程或方法可以表示任意数量的处理策略中的一种或多种。因此,所示出和/或描述的各种动作可以以所图示和/或描述的顺序、以其它顺序、并行地来执行,或者被省略。同样,上述处理的顺序可以有所改变。
本公开的主题包括这里所公开的各种处理、系统和配置以及其它特征、功能、动作和/或性质的所有新颖的且非显而易见的组合和子组合形式,以及它们的任意或和所有等同物形式。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除