首页 / 专利库 / 计算机网络 / 搜索引擎 / 用于对话语义分析的知识图谱

用于对话语义分析的知识图谱

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

专利汇可以提供用于对话语义分析的知识图谱专利检索,专利查询,专利分析的服务。并且在本文中描述的是一种可以在诸如 个人数字助理 的系统中使用的对话引擎或者将在 请求 执行期间所构建的动态知识图谱与保存长期知识的一个或多个静态知识图谱相结合的 搜索引擎 。该对话引擎包括保存表示对话的当前状态的动态知识图谱的状态 跟踪 器,选择该动态知识图谱中的实体并且执行那些实体中所提供的动作以将对话状态朝向完成移动的策略引擎,以及用于搜索所述静态知识图谱的知识图谱搜索引擎。通过多个轮次地构建动态知识图谱并且将朝向对话完成构建的操作链接在一起来完成该对话。该对话的完成引起用户所进行的请求的完成。,下面是用于对话语义分析的知识图谱专利的具体信息内容。

1.一种用于完成用户所请求的动作的方法,包括:
接收对输入的语义表示,所述语义表示包括意图和槽;
将所述对输入的语义表示添加到包括知识图谱搜索配方的动态知识图谱中;
选择与所述知识图谱搜索配方相关联的知识图谱搜索动作;
针对包括所存储的配方和对真实世界信息的语义表示的知识图谱执行所述知识图谱搜索动作;
响应于所述动作而接收与所述相关联的动作相匹配的任何实体;
将所述实体的子集融合到所述动态知识图谱中以产生经更新的动态知识图谱;以及执行与所述意图相关联的第二动作。
2.根据权利要求1所述的方法,还包括:
响应于所述融合操作:
选择与所述经更新的动态知识图谱中的配方相关联的动作;以及
执行所述动作。
3.根据权利要求2所述的方法,其中,执行所述动作包括:
识别与所述动作相关联的动作类型;
至少部分地基于所述动作类型而执行至少一个操作,包括:
发出用于进行API调用的动作;
发出用于进行面向用户的响应的动作;
执行所选择的配方的动作;以及
发出用于执行知识图谱搜索的动作。
4.根据权利要求1所述的方法,其中,所述实体的所述子集包括配方。
5.根据权利要求1所述的方法,还包括:
暂停对所述动态知识图谱中的配方的执行;以及
保存所暂停的配方的状态。
6.根据权利要求5所述的方法,还包括重新开始对所暂停的配方的执行。
7.根据权利要求1所述的方法,还包括:
识别已经超出范围的对谈;以及
将已经超出范围的所述对谈归档至与用户相关联的个人知识图谱。
8.根据权利要求1所述的方法,还包括将多个配方链接在一起以得到所述第二动作。
9.根据权利要求1、2、3、4、5、6、7或8所述的方法,其中,所述实体包括以下中的至少一项:
配方;
知识实体;以及
结构化关系。
10.一种包括处理器和计算机可执行指令的系统,所述计算机可执行指令当由所述处理器执行时,使得所述系统实行以下操作,包括:
访问具有初始状态并且存储与用户的对话的当前状态的动态知识图谱,处于其初始状态的所述动态知识图谱包括:
对来自所述用户的输入的语义表示,所述语义表示包括意图和槽;
搜索知识图谱配方;以及
个人知识图谱配方;
选择所述动态知识图谱中的配方;
选择与所述配方相关联的至少一个动作;
执行所述至少一个动作;
至少部分地基于对所述至少一个动作的所述执行的结果来更新所述动态知识图谱;以及
执行与所述意图相关联的第二动作。
11.根据权利要求10所述的系统,其中,更新所述动态知识图谱包括:
识别作为对所述至少一个动作的所述执行的一部分被返回的至少一个实体;以及将所述至少一个实体融合到所述动态知识图谱中。
12.根据权利要求10所述的系统,其中,在对所述第二动作的执行之前实行多个轮次的以下操作:
对所述动态知识图谱中的所述配方的选择;
对至少一个动作的选择;
对所述至少一个动作的执行;以及
对所述动态知识图谱进行更新。
13.根据权利要求10、11、或12所述的系统,其中,执行所述至少一个动作包括:
识别与所述至少一个动作相关联的动作类型;
至少部分地基于所述动作类型而实行至少一个操作,包括:
发出用于进行API调用的动作;
发出用于进行面向用户的响应的动作;
执行所选择的配方的动作;以及
发出用于执行知识图谱搜索的动作。
14.根据权利要求10、11、或12所述的系统,还包括:
识别已经超出范围的对谈;以及
将已经超出范围的所述对谈归档至与用户相关联的个人知识图谱。
15.根据权利要求10、11、或12所述的系统,其中:
所述动态知识图谱中的所选择的配方包括所述搜索知识图谱配方;
所选择的至少一个动作包括对包括所存储的配方和真实世界信息的知识图谱的搜索;
对所述搜索的执行返回至少一个实体,所述至少一个实体随后通过所述更新操作被融合到所述动态知识图谱中;并且
其中,所述至少一个实体包括以下中的至少一项:
配方;
知识实体;以及
结构化关系。

说明书全文

用于对话语义分析的知识图谱

技术领域

[0001] 该申请一般地涉及数字助理和搜索系统。更加具体地,该申请涉及实现数字助理和对话搜索系统。

背景技术

[0002] 搜索引擎和数字助理的不同之处不仅在于它们如何工作,而且还在于它们做什么,并且它们中的每个已经被定制为解决具体的用户场景和需求。
[0003] 搜索引擎被创建为找到并显示宽泛的多种信息,其常常从许多不同的来源拉取信息。为了完成该任务,搜索引擎接收查询,所述查询采用被用于返回相关搜索结果的文本短语和/或关键词的形式。然而,搜索引擎不支持代表用户来执行任务。
[0004] 另一方面,数字助理可以代表用户执行任务,其中之一是执行搜索。然而,搜索结果在给定数字助理与用户对接的方式(仅通过语音或者经由具有小型显示器的设备)的情况下必定是受限的。
[0005] 正是在该上下文内提出了这里的实施例附图说明
[0006] 图1图示了与数字助理和/或搜索引擎的用户交互的示例。
[0007] 图2图示了根据本公开一些方面的系统的示例架构。
[0008] 图3图示了代表性动态知识图谱在代表性系统的操作期间如何演进的示例。
[0009] 图4图示了根据本公开一些方面的状态跟踪器的代表性流程图
[0010] 图5图示了根据本公开一些方面的策略引擎的流程图。
[0011] 图6图示了根据本公开一些方面的用于执行动作的流程图。
[0012] 图7图示了已经通过来自用户所作出的“订披萨”请求的一系列处理轮次所构建的代表性动态知识图谱。
[0013] 图8图示了适合于实现本文所公开的系统和其他方面以及用于执行本文所公开的方法的代表性机器架构。

具体实施方式

[0014] 随后的描述包括例示了说明性实施例的说明性系统、方法、用户界面、技术、指令序列、和计算机器程序产品。在以下描述中,出于解释的目的,阐述了很多具体细节以便提供对发明主题的各个实施例的理解。然而,对于本领域技术人员而言显然的是,发明主题的实施例可以在没有这些具体细节的情况下被实践。一般地,没有详细地示出公知的指令实例、协议、结构、和技术。
[0015] 定义
[0016] 本公开中使用以下定义:
[0017] ·实体是存储在知识图谱(例如,动态或静态知识图谱)或者如本文所公开的其他数据存储中的对象。
[0018] ·知识实体是在真实世界中存在或者描述与真实世界相关的事物的事物的语义表示,例如可能被搜索引擎所知。
[0019] ·配方(recipe)定义了与其他实体、要由系统所完成的任务、和/或系统可用的信息相关的操作。配方列出其消费的输入实体类型、其产生并且通过程序完成其功能的输出实体类型(如果存在),所述程序通常以高阶或脚本语言、API调用、和/或针对另一配方的调用来撰写。配方也是系统通过其进行扩展以完成新任务的机制。
[0020] ·任务是用户希望完成的事情,如“订餐”、“载我去机场”、“这个地区有什么猛禽”,等等。
[0021] ·对谈(dialog)是可能以非自然语言形式(例如,通过显示卡片/瓦片、激活UI按钮、作出手势,等等)以及通过自然语言形式进行的与一个或多个用户的交互。对谈通过配方和/或知识实体的分组而在知识图谱中表示的。多个对谈可以在知识图谱中同时存在并且可以进入和离开范围。例如,两个潜在对谈可能在同一时间实行,一个是从第一供应方订餐而另一个是从第二供应方订餐。在对话中的某一点处,该系统将终止对谈之一并且保留最可能产生订单的对谈。
[0022] ·对话(conversation)是与用户的一系列多个对谈交换。
[0023] 概述
[0024] 提供以下概述以用简化形式引入对在以下的具体实施方式中进一步描述的概念的选择。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。其唯一的目的是以简化的形式呈现一些概念,作为之后所呈现的更加详细的描述的前序。
[0025] 搜索引擎和数字助理执行不同的功能。搜索引擎被定制为获取并显示与用户搜索查询相关的信息,其常常从宽泛的多种源拉取信息。然而,搜索引擎无法代表用户执行任务(除了获取搜索结果以外)。另一方面,数字助理则被定制为代表用户执行任务,所述任务之一可以是执行搜索。然而,如上文所提到的,返回给用户的搜索结果由于用户与数字助理交互的方式(仅通过语音或者经由具有小型显示器的设备)而必定受限。因此,没有单个系统能够达到用户预期,特别是对于复杂的自然语言查询而言,没有单个任务(针对助理)和单个web搜索结果(针对搜索引擎)足以解决用户的需求。本文所公开的实施例针对该问题提出了一种解决方案。
[0026] 本公开的实施例包括一种对话引擎,其可以被用作诸如个人数字助理和/或搜索引擎之类的系统的一部分,以实现对话语义从而获取信息和/或完成任务。该对话引擎组合不同类型的知识图谱以利用搜索引擎的深度知识来允许数字助理的灵活度。
[0027] 用户例如经由话音、文本、手势、触摸、视觉/图形或者它们的组合向系统提交查询以开始新的对话(也被称为会话)。例如,用户可以说“设置日出前30分钟的闹钟”。输入的该语义表示是由语言理解模型创建的。该语义表示例如可以包括(多个)意图以及一个或多个槽(slot)。在上述示例中,该意图是设置闹钟,而槽则包括“30分钟”(时段)、“之前”(关系)、和“日出”(事件)。该输入开启了与系统的对话,该对话可以包括用户与系统之间的一个或多个交换。
[0028] 状态跟踪器负责将新的输入集成到对话的现有表示中。在一些实施例中,对话的表示被保存在动态知识图谱中,其从初始状态被建立并且随着新信息的发展而更新。当新对话开始时,该动态知识图谱包括对输入查询的语义表示并且专用于该用户的上下文信息被用于产生新的会话。此外,初始动态知识图谱可以包括一个或多个上文所定义的“配方”。在一些实施例中,初始动态知识图谱包括对搜索知识图谱进行搜索的配方(即,搜索知识图谱配方)。该搜索知识图谱保存其他配方以及诸如将在搜索引擎中可用的长期信息。该动态知识图谱内容因此表示处理期间的任何给定时间点处的对话状态。
[0029] 策略引擎作出有关接下来要关于动态知识图谱采取什么动作的确定。在一些实施例中,在其初始状态,动态知识图谱包括用户查询的语义表示以及对搜索知识图谱进行搜索的配方。在一些实施例中,最初地,策略引擎可以选择搜索知识图谱配方并且使用其动作(即,搜索)将用户查询的语义表示发送至知识图谱搜索引擎。该知识图谱搜索过程将返回实体的子图。所返回的实体可以包括配方、包含诸如事实之类的信息的知识实体,和/或实体之间的结构化关系。所述结果(所返回的实体)被发送至状态跟踪器。接着,该状态跟踪器将搜索结果集成到动态知识图谱中。
[0030] 经更新的动态知识图谱被策略引擎所评估,所述策略引擎基于当前动态知识图谱中的配方和其他实体来选择所要采取的一个或多个动作。例如,动作可以包括执行与配方相关联的过程,直到不可能进行进一步的执行(例如,由于缺少执行所需的一些信息)、对应用程序接口(API)的调用、对渲染器的调用(面向用户的动作,例如请求另外的信息)、对搜索知识图谱的进一步搜索,等等。
[0031] 为了向用户询问更多信息,现有渲染器将被调用以将所选择的动作转换成能够在用户的设备或输出表面(例如,台式机或电话屏幕、仅音频的扬声器、网页)上显示的对象。如果通过向用户询问更多信息而在对话中发起了另外的步骤,则策略引擎将已经关于用于从用户请求信息的界面和方法作出了决定。用户响应接着再次被变换成对象。该动态知识图谱由状态跟踪器所更新,并且策略引擎针对用户的意图而再次选择(多个)动作。
[0032] 对谈是表示与用户的交互的多个配方和实体的群组。与用户的多个对谈可以在进行中,它们将由存储在会话中的配方和实体的多个分组所表示。对谈可以被暂停,或者明确地由于用户请求,或者在用户在对话中间将焦点切换至不同主题或无关请求的情况下隐含地被暂停。这些对谈可以在未来继续进行。当前会话因此包含足够的信息来反映其过程当前在被执行的每个配方以及由系统或用户搁置的对谈或对话两者的状态。如果来自用户的新查询与所述暂停的对谈之一紧密匹配,则该对谈将重新开始并且尝试达到完成而无需从头开始。
[0033] 该动态知识图谱还将关于不再处于范围中的实体和/或几乎没有完成可能性的配方而被更新。这可以涉及到从动态知识图谱修剪掉这样的实体和/或配方。修剪可以通过从该动态知识图谱移除实体/配方,移除这样的实体和/或配方与其他实体之间的关系,和/或降低或否定与这样的实体、配方和/或它们与其他实体的关系相关联的权重来完成。被修剪的实体/配方可以被归档在用户的个人知识图谱中,从而它们可以在未来被再次使用(例如,因为用户作出了相同/相似的请求)。
[0034] 该系统将通过多个轮次进行迭代直到来自用户的意图被达成为止。当来自用户的意图被达成时,该系统可以发起最终动作以向用户通知结果,确认所述动作已经被完成,提供所述动作无法被完成的错误,等等。
[0035] 描述
[0036] 图1图示了与数字助理和/或搜索引擎的用户交互的示例100。用户常常经由用户设备102来访问数字助理和/或搜索引擎108,所述用户设备102经由网络106连接至数字助理和/或搜索引擎108。请求和/或查询(在本文统称为查询)104被发送至数字助理和/或搜索引擎108,并且响应112则被发送回用户设备102。
[0037] 随着用户预期的增长,尚没有单一的数字助理和/或搜索引擎能够满足用户的预期和期望。例如,用户例如可以通过用户设备(例如,智能电话、可穿戴设备、平板设备、计算机)来发起对话。以下表示其中用户向系统发送信息请求和动作的混合的样本交换:
[0038] 1.用户:“为我显示阿凡达的预告片。”
[0039] 2.系统:“您是指James Cameron执导的电影吗?”
[0040] 3.用户:“是的。”
[0041] 4.系统:获取并播放阿凡达的预告片
[0042] 5.用户:“他还执导了什么其他节目?”
[0043] 6.系统:获取并显示James Cameron执导的其他电影的列表
[0044] 7.用户:“为我订购真实的谎言的拷贝。”
[0045] 8.系统:发起用于购买电影“真实的谎言”的对谈
[0046] 在该对话中,用户具有信息请求(即,James Cameron执导的节目的列表)以及该用户想要系统执行的动作请求,所述动作请求不是简单地获取信息(即,播放电影阿凡达的预告片,订购电影真实的谎言的拷贝)。如以下实施例中公开的对话引擎可以处理与用户的整个对话。
[0047] 图2图示了根据本公开一些方面的系统的示例架构200。用户经由用户设备202提交输入204(例如,查询、请求)。示例用户设备包括但不限于移动电话、智能电话、平板设备、可穿戴设备、智能手表、个人计算机、台式计算机、游戏设备、电视机,或者可以使用或适于使用个人数字助理、搜索服务、或对话引擎能够被集成的其他系统的任何其他设备,例如交通工具、家用电器等。
[0048] 在一些实现中,该系统可以作为用户设备202的一部分被提供,而在其他实现中,该系统可以通过网络被访问。在再其他的实现中,该系统可以利用驻留在用户设备202上的一些功能以及通过网络访问的其他功能来实现。
[0049] 架构200包括输入预处理引擎206。输入预处理引擎206负责对进入到系统的输入的任何预处理。例如,输入预处理引擎206负责以下的任务,例如:
[0050] ·将所接收的输入转换成语义输出(以下所描述的);
[0051] ·对输入执行任何格式转换或其他转换;
[0052] ·关于(以下所描述的)上下文信息调节对话和/或语义输出的生成。
[0053] 在操作期间,异步输入可以从任何数量的来源进入到输入预处理引擎206。该异步输入例如可以包括用户输入、主动服务触发、设备事件、API返回事件、轮询响应(例如,服务回调事件),等等。主动服务触发是发生的预先安排的事件,并且其将在系统的一部分上触发一些行为并且可以来自于用户设备或另一个系统。例如,如果系统正在监视用户的GPS并且确定用户在定位目的地上有困难,则该系统可以使用信号的组合来触发向该用户提供去往目的地的指引的提议(offer)。设备事件包括在设备上发生的任何事情,例如闹钟响铃、计时器到期、网页刷新回调,等等。API返回事件是来自同步或异步API调用的返回事件。
[0054] 用户所提交的输入204可以采用各种形式。例如,该输入可以以文本、语音、触摸、手势、视觉输入、和/或其组合的形式到来。当输入204被系统所接收时,该系统创建对输入204的语义表示208。这例如由输入预处理引擎206中的语言理解模型来完成。可以采用任何数量的公知语言理解模型和/或架构从输入204提取语义含义。在代表性实施例中,语义表示包括(多个)意图和槽。如本文所使用的,“意图”是用户的目的。例如,意图是有关用户想要从特定输入要什么的确定结果。意图也可以指示系统如何操作。“槽”则表示存在于输入内的可行动内容。使用以上示例中来自用户的第一通信,用户输入是“为我显示阿凡达的预告片。”在该通信中,用户的意图可以被表达为“得到视频片段”或者可能是“观看视频片段”。槽将包括描述内容名称的“阿凡达”以及描述内容类型的“预告片”。如果输入是“为我订披萨”,则意图是要预订/购买某样东西并且槽将包括披萨,这是用户想要预订的东西。
[0055] 输入208的语义表示被传递至状态跟踪器210。状态跟踪器210负责各种功能,包括:
[0056] ·为新对话创建新的表示;
[0057] ·保存当前对话的状态;
[0058] ·将新输入和实体集成到对话的现有表示中以更新当前对话;
[0059] ·表示对话的当前表示中的任务和实体的不确定性(例如,置信度得分);以及[0060] ·其他功能。
[0061] 在一些实施例中,对话是以动态知识图谱来表示的,所述动态知识图谱具有新对话的初始状态并且如本文所描述的随着另外的实体经多次或多轮次被添加而成长。如本公开中所使用的,“实体”是存储在动态知识图谱中的对象并且可以包括配方和知识实体(例如,其表示真实世界中的对象、信息、和/或知识)。实体可以被强类型化,这意味着具有如在至少一个静态知识图谱(下文进一步讨论)中所定义的固定语义表示。知识实体的示例可以是表示特定商业体的实体、表示商业体所出售的特定物品的实体、表示该商业体的母公司的实体、表示特定日期或时间的实体、表示所要设置的闹钟的实体,等等。实体就它们被预先计算或预先确定的意义而言可以是静态的,或者就它们在运行中被生成的意义而言可以是动态的。
[0062] 如在本文中所使用的,“配方”意味着定义与要由系统完成的其他实体或任务相关的操作或者系统可用的信息的实体类型。配方列出其所消费的输入实体类型,其产生并且通过程序完成其功能的输出实体类型(如果存在),所述程序通常以高阶或脚本语言和/或配方用于完成其功能的API调用来撰写。配方也是系统通过其进行扩展以完成新任务的机制。配方的代表性示例包括用于预定地面交通(例如,出租车或 )的配方,用于向用户的日历添加事项的配方,用于调节设备上的设置的配方,知晓如何预定航班的配方,调节房间中的照明的配方,或者执行任何其他类型的任务的配方。
[0063] 当用户通过提交用户输入204而开始新的对话时,输入208的语义表示被呈现给状态跟踪器210,后者使用输入208、专用于该用户的上下文信息212、以及其他实体来生成新的对话。对话包括与用户的一系列交换并且也被称为会话。
[0064] 为了生成新的对话,状态跟踪器210以空白的动态知识图谱作为开始并且对其进行更新以保存输入208的语义表示、上下文信息212、和其他信息。上下文信息可以包括以下的一个或多个:
[0065] ·来自用户设备202的信号,例如地理位置、设备类型、传感器读数,等等;
[0066] ·例如来自推断引擎的推断信号,所述推断引擎推断用户可能在哪里、用户正在做什么,等等;
[0067] ·来自用户的个人知识图谱和/或个人数据平台的信息;和/或
[0068] ·其他环境和/或上下文信息。
[0069] 另外地,初始动态知识图谱可以包括一个或多个配方。最初,动态知识图谱可以被生成为具有知晓如何搜索(下文讨论的)静态知识图谱的配方和/或知晓如何搜索用户的个人知识图谱的配方。其他初始配方也可以用来生成动态知识图谱的初始状态。共同地,该语义输入、上下文、和初始配方被存储在动态知识图谱中并且表示该动态知识图谱的初始状态。动态知识图谱216经若干轮次被更新(在下文讨论),并且在每个轮次,状态跟踪器210将新发展出的实体集成到动态知识图谱216中以更新其状态。因此,动态知识图谱随着对话的演进而随时间演进,并且在任何给定时间发展并表示对话的当前状态。
[0070] 动态知识图谱216可以由资源描述架构(RDF)三元组(RDF三元组)知识图谱来实现,其是专构建的用于存储语义查询并通过其获取三元组的数据库。三元组是由主语-谓语-宾语组成的数据实体,如“Bob-is-35(Bob35岁)”或“falcons-are a type of-raptor(猎鹰是一种猛禽)”。也可以使用其他类型的实现。
[0071] 在本公开中,动态知识图谱中相关或互相关联的实体的分组被称为对谈。动态知识图谱可以包含多个对谈和实体(与对谈相关或者不与任何对谈相绑定)。在实体和/或对谈已经超出范围和/或不可能被完成时,状态跟踪器210还将它们从动态知识图谱修剪掉。例如,如果动态知识图谱包括两个配方,一个将预定披萨而另一个将预定三明治并且清楚的是用户想要订披萨而不是三明治,则预定三明治的配方将已经超出范围并且可以从动态知识图谱中被修剪掉。修剪也可以是基于完成的可能性、置信度得分、或类似量度的。如下文讨论的,状态跟踪器210可以跨不同对谈和实体来保持对置信度得分的跟踪。置信度得分可以有助于识别对谈何时应当从动态知识图谱中被修剪掉。
[0072] 当对谈或实体从动态知识图谱中被修剪掉时,其可以被删除或者被归档以便之后获取。例如,如果三明治配方超出范围,则其可以被归档在诸如用户的个人知识图谱之类的位置处,其中,其在随后期望的情况下可以被获取并且重新激活。修剪和/或归档可以以周期性和/或非周期性的基础来进行,响应于事件而进行,等等。
[0073] 动态知识图谱还可以包含被暂停的对谈(包括被暂停的配方)。在任何给定时间,一个或多个对谈可以出于各种原因而被暂停,例如所需要的输入(还)不可用、对谈在等待配方完成、API调用,等等。如下文所描述的,系统可以随着系统朝向完成用户请求的目标移动而在对谈之间切换并且暂停对谈。
[0074] 动态知识图谱216被呈现给策略引擎218。策略引擎负责一个或多个操作,包括:
[0075] ·从动态知识图谱中选择一个或多个实体(包括知识实体和配方);
[0076] ·将所选择实体与所选择的配方或知识实体相关联;
[0077] ·使用相关联的知识实体作为配方的输入来执行所选择的配方中的一个或多个;
[0078] ·选择如配方所提出的待完成的一个或多个动作;以及
[0079] ·其他功能。
[0080] 换句话说,策略引擎218评估动态知识图谱216并且确定接下来要关于动态知识图谱采取什么动作以将对话的状态朝向完成用户的意图向前推动。因此,策略引擎218采用当前动态知识图谱作为输入并且输出要采取的一个或多个动作。策略引擎218可以在其每次被调用时选择多个动作。如下文所解释的,所述动作可以是执行配方、调取API、调用渲染器、调用设备,等等。调用就它们可以向用户呈现对谈框/请求从而呈现信息和/或请求信息的意义而言可以是“面向用户的”,或者调用就它们是并不涉及来自用户的交互的调用的意义而言可以是“内部的”。
[0081] 当调用是面向用户的时,两种交互因素包括高阶形式的呈现以及对谈流。多条信息的呈现可以缩短对谈流,而每次一条的信息的呈现将拉长对谈。策略引擎218将基于用户是否能够理解被问的是什么而进行选择,而用户是否能够理解进而取决于画布以及(在一些实例中的)用户上下文。如本文所使用的,“画布”是针对用户的对话代理的外观。画布由设备(例如,形状因子、屏幕的存在/缺失、屏幕大小、键盘或其他用户输入设备/方法的存在/缺失,等等)以及对话代理的上下文(例如,代理是否能够启动浏览器,代理是否嵌入在聊天窗口中,等等)二者所定义。这些因素可以被放入矩阵或其他查找表中,其中,系统可以基于画布或用户上下文或者此二者选择合适的调用和/或调用参数。例如,如果系统需要获取到用户想要预订的披萨类型以及用户想要预订的披萨的尺寸的偏好,如果屏幕面板足够大,以及如果用户能够专注于被询问的问题,则系统可以选择呈现出询问这两条信息的对谈。另一方面,如果用户在车中通过语音进行交互,为了不让用户分心(即,增加用户的认知负担),系统可以选择每次询问一个问题。
[0082] 并非所有动作都是面向用户的。例如,所选择的动作可以包括API调用。这样的调用可以被指向内部或外部服务或者指回到用户的设备以获得并未随初始用户输入传递的信息。例如,考虑这样的配方,其需要知晓用户的设备在输入给出时是否正在播放歌曲,并且如果正在播放歌曲则需要知晓该歌曲的标题。这样的信息可以预期如上文所描述的当用户输入被发送至设备时被识别的上下文的一部分来提供。然而,如果其不是该上下文的一部分,则该系统可以针对设备进行API调用以从用户设备请求该信息。在该情况下,这样的信息可以在并不要求用户部分上的交互的情况下被提供。作为另一个示例,配方可能需要知晓仅能够在需要知晓的基础上才请求的个人可识别信息(PII)。例如,PII可以包括本地地址簿联系人的电话号码,并且将仅在需要时才例如通过对话服务从用户设备请求从而改进隐私性。当配方需要该信息来执行时,可以进行API调用以基于需要知晓而获取该PII。再一次,在已经针对该情形授予了预先授权的情况下,这样的调用可以不需要用户的注意。
[0083] 由于API或其他调用的响应时间可能是可变化的,所以它们能够作为异步过程被分派,所述异步过程在如上文所描述的完成时将经由预处理引擎206返回报告,其可以发起下一轮的处理。策略引擎218也可以设置允许其等待并且查看API是否响应的回调,并且因此保持用户得到进展或故障的通知。
[0084] API或其他调用常常引起被添加至状态的实体。这样的实体可以以(下文所讨论的)静态知识图谱之外的语义本体或者系统所使用的一些其他本体为基础。在这样的情况下,可以使用适配器将所接收实体的语义本体映射至系统所使用的语义本体(例如,在静态知识图谱中)。在映射无法可靠进行的情况下,所返回的实体可以驻留在动态知识图谱内的单独的本体空间中。这将使得它们被单独保存(即,并不被映射至现有对谈)直到能够进行可靠映射(如果有的话)为止。
[0085] 策略引擎218的一个选项是发出单一的“什么也不做”动作。这可以在系统等待下一个用户输入或者等待来自不同源的在执行能够继续之前必须要接收的其他输入时使用。
[0086] 策略引擎218的一个选项是选择与用于搜索静态知识图谱222的配方相关联的动作。如上文所解释的,在其初始状态下,动态知识图谱包括用户查询的语义表示、上下文信息、以及用于搜索静态知识图谱的配方。因此,在搜索静态知识图谱的动作始终可用的同时,在第一传递中,其通常是至少所选择的选项中的一个选项。静态知识图谱包含对有关真实世界的知识的存储,其包括知识实体和配方,这在上文有所定义。搜索静态知识图谱动作将包括用户输入的语义表示和/或上下文的动态知识图谱的部分或全部内容发送至知识图谱搜索引擎220。知识图谱搜索引擎220具有相关联的静态知识图谱222,其存储如上文所描述的包括知识实体和配方的实体。用户输入中的语义信息和/或上下文被附加至静态知识图谱222并且运行知识图谱推断。可替换地,也可以使用其他公知的信息获取方法来获取实体,例如将动态知识图谱(包括用户查询和上下文)的整体或部分映射至矢量以及基于与预先计算的实体的矢量表示的矢量相似性来获取实体,等等。其结果是这样一组实体,其包括相关配方、知识实体、和/或实体间的结构化关系。
[0087] 在一些实施例中,来自用户的个人知识图谱/个人数据平台的相关信息被包括在上下文中,并且因此也被加入到静态知识图谱222中。因此,推断可以返回用户在不作为静态知识图谱222的一部分的先前归档的对谈中所参考的相关实体。
[0088] 在该公开中,个人知识图谱和个人数据平台可以被用来存储相同的信息,虽然是以不同的形式。个人知识图谱以与本文所参考的其他知识图谱(例如,静态知识图谱、动态知识图谱)相同或相似的格式来存储信息。个人数据平台通常将信息存储在一个或多个表格中并且因此趋向于使用查找表来获取信息。在本公开中,个人知识图谱的示例将被用来存储用户信息,但是对于本领域技术人员而言将会显而易见的是,也可以使用个人数据平台。此外,个人知识图谱和个人数据平台仅是这样的信息可以如何被存储的代表性示例。
[0089] 知识图谱搜索引擎220所返回的实体集合独立于被应用于画布或设备形状因子的流程。因此,实体例如并不关心需要收集的信息是在与用户的一个对谈还是与该用户的多个对谈中被收集的。
[0090] 知识图谱222在本文被称为“静态”以将其与动态知识图谱216进行对比,后者被策略引擎218的各种所选择的动作所修改。因此,静态并非意味着知识图谱222始终都不改变。相反地,其相对于动态知识图谱216更为缓慢地改变。动态知识图谱216如本文所描述的随着系统寻求完成用户意图而成长和演进。静态知识图谱222则随着新知识的添加或者新配方的添加而成长和演进,这是更加缓慢的过程。
[0091] 静态知识图谱222以两种重要方式进行改变。首先,静态知识图谱222随着另外的知识被添加至图谱(例如,被web爬取器或者向静态知识图谱222添加知识的其他机制)而演进和改变。第二,静态知识图谱222随着向其添加新的配方而改变。如上文所解释的,向系统添加新的配方是一种扩展和改变系统的功能的方式。
[0092] 开发方向系统或注册服务来注册配方。在一个实施例中,注册配方需要以下两段信息:1)如何将配方连接到静态知识图谱222中,以及2)在配方执行期间被调用的程序、配方、和/或API。为了将配方连接至静态知识图谱222,需要对以下内容的声明:配方作为输入消费的实体(包括配方将尝试收集的实体)的类型、配方作为输出(如果存在)产生的实体的类型、以及相关实体。相关实体将配方链接至其他实体或者语义构造的用户输入以使其可发现。将配方链接至其他实体或语义构造的输入的实体的示例,考虑用于从Northwind Pizza订披萨的配方。这样的配方可以链接至Northwind Pizza公司知识实体,但是该知识实体不需要作为针对配方的输入。所需要的仅是表示本地Northwind Pizza店铺的知识实体。然而,链接至Northwind Pizza公司知识实体可以有助于用户输入的查询在静态知识图谱中找到该配方。配方也可以是有状态的,这在于它们能够计算出从一次执行带到下一次执行的值。
[0093] 相关实体、输入实体、输出实体等的声明在配方和静态知识图谱之间建立了连接。将配方链接至相关实体以及以上的输入和输出定义有助于改进该配方能够在相关情形中被定位的可能性并且有助于改进成功执行的可能性。随着时间,配方的成功执行、执行失败、以及其他反馈可以被用来抑制较不相关的配方并且提升较相关的配方。在一个实施例中,可以使用机器学习技术来帮助识别相关和较不相关的配方。相关性是相对于配方对于完成用户意图而言多么有用来度量的。
[0094] 从知识图谱搜索引擎220所返回的实体如224所表示的通过输入预处理引擎224或者通过如225所表示的绕开输入预处理引擎206而被发送至状态跟踪器210。状态跟踪器210随后将至少一部分结果集成到动态知识图谱216中以如先前所讨论的更新对话的状态,并且经更新的动态知识图谱216作为下一轮处理的一部分被发送至策略引擎218。
[0095] 暂时返回至策略引擎218,如先前所描述的,假设充分发展的动态知识图谱216,策略引擎218也可以选择不涉及知识图谱搜索引擎220的动作,包括针对API和/或渲染器的调用。如上文提到的,API调用可以是内部的或外部的、面向客户端或非面向客户端的、针对客户端设备202或针对其他设备228的。如上文提到的,这些调用在一些实施例中通常是异步的,但是也可以使用同步的API/渲染器调用。这些API和/或渲染器调用由226所指示。如图中所示以及上文所讨论的,API和/或渲染器调用的结果可以被输入预处理引擎206所接收,并且一旦输入预处理已经完成,该实体就被发送至状态跟踪器210以便集成到当前的动态知识图谱216中。策略引擎218的详细操作在下文被讨论。
[0096] 概言之,动态知识图谱被设置为初始状态,并且动态知识图谱通过在图谱内添加、暂停、执行、和归档实体而经若干轮次的处理来成长和演进。在任何给定时间可以进行与用户的多个对谈,它们将由存储在会话中的配方和知识实体的多个群组所表示。处理轮次继续进行直到用户的意图被完成或者处理最终失败并且用户被通知该任务无法完成。
[0097] 图3图示了代表性动态知识图谱在代表性系统的操作期间如何演进的示例300。在该图中,空心圆圈表示未绑定的一般实体(知识实体等)——诸如在输入尚未被绑定的情况下,填充以宽斜线的圆圈表示知识实体或其他信息实体,并且填充以密集斜线的圆圈和格纹则表示配方。将首先解释关于图3的总体示例,并且接着将给出更为具体的示例以说明该过程。对话利用用户输入302而被发起。输入预处理引擎(206)创建该用户输入的语义表示304。状态跟踪器(210)以空白动态知识图谱324作为开始,并且利用语义输入304、用户上下文306、以及能够搜索静态知识图谱的配方308来生成动态知识图谱324。此外,可以添加能够搜索用户的个人知识图谱或个人数据平台的配方(未示出)。这表示对话的初始状态。
[0098] 策略引擎(218)对动态知识图谱324的内容进行评估并且选择要采取的动作。在该初始轮次,仅有一个能够执行的配方308,并且因此策略引擎激活/实例化要执行的配方。在该图中,配方308搜索静态知识图谱(222)并且输出实体的集合。在图3的示例中,配方308的输出包括一个知识实体312以及被指示为310、314、316和318的四个配方。配方310没有所定义的输入。配方314和316各自具有一个输入,而配方318则有所定义的两个输入。
[0099] 该集合被传送至状态跟踪器(210),并且该状态跟踪器更新动态知识图谱以包含该集合的至少一部分。在该示例中,配方314和316具有与用户输入304相匹配的所定义的输入。因此,如所图示的,用户输入304被绑定至配方314和配方316两者。上下文306保留在图谱中,并且知识实体312和配方318被添加。
[0100] 策略引擎评估动态知识图谱324并继续选择要在多个轮次中执行的动作,并且动态知识图谱324继续演进。图3中的动态知识图谱的最终表示图示了已经被暂停的一个对谈322以及以配方314开始并且已经演进为包括配方320的另一个对谈。如果配方320能够完成与用户输入304相关联的意图,则策略引擎可以选择一个或多个动作,包括来自用于实现该意图的配方320的动作。
[0101] 为了更加具体地考量以上的一般示例,假定用户向移动电话讲话并且要求系统“设置日出前20分钟的闹钟”。该系统将接收该输入并且输入预处理引擎会将该语音转换成一般输入格式,例如文本。接着,该文本将被评估以创建语义输入表示,其包括意图“设置闹钟”以及槽“日出前20分钟”。此外,该请求的上下文可以包括诸如输入方式(语音)、设备(移动电话)、用户的位置(家中)、请求的时间和日期之类的信息,以及其他这样的上下文信息。
[0102] 状态跟踪器将取得该语义输入表示、上下文信息,并且将其与search_KG(搜索静态知识图谱)配方和search_pKG(搜索用户的个人知识图谱)配方相结合以形成动态知识图谱(dKG)的初始状态。
[0103] 在评估dKG时,策略引擎选择search_KG配方来运行。策略引擎输出所选择的动作,并且利用该语义输入和/或上下文作为输入来执行search_KG。输出实体包括描述日出是什么的知识实体、语言理解配方、聊天机器人配方、取经纬度作为输入并且输出日出时间的日出计算器、以及取时间作为输入并且在移动电话上设置该输入时间的闹钟的设置闹钟配方。
[0104] 这些被发送至状态跟踪器,该状态跟踪器对实体进行融合和绑定。在该实例中,状态跟踪器将输入字符串“设置日出前20分钟的闹钟”绑定至语言理解配方,该语言理解配方负责返回如下文所指示的槽和(多个)意图。其余的实体被融合到dKG中,但是此时不进行任何绑定。
[0105] 策略引擎选择该语言理解配方来执行并开始对所选择的配方的解释。该语言理解配方的输出对该输入的若干种可能的解释进行输出,包括:
[0106] 1.域:日历;意图:GetEvent(获得事件);槽:[事件:日出]
[0107] 2.域:闹钟;意图:SetAlarm(设置闹钟);槽:[start_time(开始时间):日出前20分钟]
[0108] 3.域:其余;意图:Creat(创建);槽:[time_difference(时间差):20分钟,限定词:之前]
[0109] 这些不同解释被传递至状态跟踪器,并且该状态跟踪器将它们作为针对语言理解配方的三种不同输出而集成到dKG中。该策略引擎再次评估经更新的知识图谱,并且因为其最可能朝向用户所请求的任务推进而选择search_KG配方来运行。搜索的输出包括日历转换器事件实体,其接收语言理解槽事件并且输出事件实体。该搜索还输出时间限定器,其取绝对时间和时间差作为输入并且输出新的绝对时间以及搜索用户日历的配方。该配方取时间和日期作为输入并且针对给定时间和日期而返回事件列表。
[0110] 输出实体被发送至状态跟踪器,所述状态跟踪器将它们集成到dKG中,将日历事件转换器绑定至以上#1的日出事件,将时间限定器绑定至#2的槽,并且将用于搜索用户的日历的配方以未绑定方式置于dKG中。
[0111] 后续处理轮次将经转换的日出事件绑定至日出计算器,基于用户的位置识别用户的经纬度,并且计算日出的绝对时间。该绝对时间随后被绑定至设置在日出前20分钟的闹钟的配方。
[0112] 该略显更加详细的示例阐述了状态跟踪器如何将实体绑定至合适的输入,静态知识图谱的后续搜索如何产生可以包括被绑定至合适输入的配方、转换器等的实体以使得执行能够推进。如下文所描述的,策略引擎可以保存不同的可能动作的置信度得分并且选择具有最高可能性的那些来将dKG朝向在用户输入中指定的最终意图移动。
[0113] 图4图示了根据本公开一些方面的状态跟踪器的代表性流程图400。状态跟踪器在操作402接收要被置入动态知识图谱中的新输入。如先前所描述的,这样的输入可以是任何数量的任何类型的实体。例如,这样的输入可以是上下文信息、一些类型的输入(用户输入、来自API调用的输入等)的语义表示、(多个)配方、知识实体、实体间的结构化关系、以及其他这样的信息。输入可以来自于输入预处理引擎或者来自于另一个位置。
[0114] 在操作404中,状态跟踪器将输入信息组合到当前会话信息中。如上文所讨论的,动态知识图谱的初始状态可以包括语义输入表示、上下文、搜索静态知识图谱配方、和/或搜索个人知识图谱配方的组合。
[0115] 新输入以若干种方式被融合到动态知识图谱中。如果动态知识图谱具有与要被添加至动态知识图谱的配方的输入相匹配的实体,则该配方的输入可以被绑定至该实体。如果所要添加的实体是与要被添加至动态知识图谱的配方的输入相匹配的知识实体,则该知识实体可以被绑定至该配方的输入并且该配方和绑定的知识实体可以被添加至该动态知识图谱。如果所要添加的实体是与动态知识图谱中的配方的输入相匹配的知识实体,则该知识实体可以被绑定至该配方的输入。如果该实体并不涉及到任何其他实体,则其可以以未绑定的方式被置于该动态知识图谱中。注意到,这些并不一定是互相排斥的。例如,知识实体可以被绑定至动态知识图谱中的配方以及要被添加至动态知识图谱的配方两者。
[0116] 在一些实施例中,状态跟踪器在操作406中更新置信度信息。例如,语言理解模型常常具有与该语言理解模型的输出相关联的量度,其给出了与该输出相关联的可能性或非确定性的度量。如本领域技术人员将会意识到的,可能性和非确定性是相似的度量,其中能够使用任一种得分来得出该输出表示用户预期的内容的确定性(或置信度)。例如,可能性衡量出输出有多么可能表示用户预期的内容。类似地,非确定性(或模糊性)衡量该输出表示用户预期的内容存在有多少的模糊性。在本公开中,将使用置信度得分来涵盖衡量可能性、非确定性等的任何这样的得分。
[0117] 随着动态知识图谱演进以及对谈变得更加可能或更不可能,置信度得分可以作为操作406的一部分而被更新。更新置信度得分可以是基于用来计算它们的算法的,例如由语言理解模型用来计算置信度得分的算法。另外地或可替代地,置信度得分可以是基于实体或对谈与最终用户意图的相关性(即,与用户输入相关联)的。也可以使用其他机制来更新置信度得分。
[0118] 操作408识别应当暂停的任何配方和/或对谈。在一些实施例中,该确定是由策略引擎而不是状态跟踪器作出的。如上文所提到的,配方和/或对谈可以在它们进入或超出范围时和/或在它们以其他方式未准备好运行的情况下被暂停。当对谈或配方不具有其运行所需要的信息时,其可以被暂停。类似地,当对谈或配方在等待另一个对谈、API调用、配方等的完成时,对谈或配方可以被暂停。
[0119] 对谈、知识实体、配方等也可以如操作410中所指示的被归档和/或修剪。对谈或配方可以在它们与意图无关(例如,它们超出范围)或者不可能执行以完成时被归档/修剪。对谈或配方例如可以被归档在用户的个人知识图谱中,以使得如果所述对谈或配方变得相关、如果用户输入了类似输入、或者出于其他原因,则它们可以随后被获取。通过将对谈或配方连同表示对谈或配方的状态的实体一起进行归档,该对谈或配方可以在并不重新开始对话的情况下被获取。就此而言,被归档的对谈或配方可以被认为是已经被留存的暂停的对谈或配方。
[0120] 操作412对已经在操作410中被识别的实体进行归档和/或修剪。如上文提到的,被归档的实体可以被存储在用户的个人知识图谱中或一些其他数据存储中。归档可以包括一些形式的概括,其中对谈的一些细节被去除或者以更加紧凑的方式来表示。被修剪的实体是指被删除而不是被暂停或归档的实体。
[0121] 该过程在操作414处结束。
[0122] 图5图示了根据本公开一些方面的策略引擎的流程图500。由于对话被存储在动态知识图谱中,所以可以跨动态知识图谱运行推断来识别接下来应当做什么。图5中的操作表示该推断的可能实现。
[0123] 该流程图在操作502开始并且继续进行至操作504。在操作504中,策略引擎访问动态知识图谱。操作506、508和510形成循环,其中动态知识图谱中的每个配方被检查以查看应当执行哪一个。可以选择多个配方以供执行,并且因此所有配方都被检查以确定该配方是否与选择标准相匹配(操作508)。配方可以基于若干不同的标准被选择。例如,在一些实施例中,操作508可以选择能够执行的任何配方。在又一个示例中,配方可以根据诸如置信度得分的一个或多个标准而被排序,并且具有阈值置信度得分平的任何配方都被选择以执行。在另外的示例中,与用户输入最佳匹配(例如,具有最高的置信度得分)的前N个配方被选择以执行。也可以使用它们的组合。
[0124] 当配方与选择标准相匹配时,选取操作508的“是”分支,并且配方在需要的情况下被实例化以运行。操作514执行所选择的配方直到该过程调取API调用为止,其生成对用户的响应/调用或者其调用对另一个配方的执行,或者其完成执行。这些在操作516中被统称为退出标准。
[0125] 在退出标准之一发生时,操作516沿着“是”分支继续进行至操作518,其中所选择的动作被添加至列表,最终动作群组将从该列表中选择。图6是操作518可以如何被实现的代表性示例并且将在下文中被讨论。
[0126] 执行继续进行至操作510,其选择下一个配方(如果存在)来检查。
[0127] 一旦所有配方都已经被检查并且所选择的配方的对应过程被执行,则能够从策略管理器发出的可能动作的列表就已经被创建。执行继续进行至操作520,其中,该列表上的所有动作都被检查以选择从策略管理器发出的一个或多个动作。
[0128] 在操作522处,列表中的下一个动作被检查和测试以查看其是否与选择标准相匹配。动作可以基于若干种不同的标准而被选择。例如,操作522可以选择列表上的任何动作,从而列表上的所有动作都被选择。在另一个示例中,动作可以根据诸如置信度得分之类的一个或多个标准而被排序,并且具有阈值置信度得分水平的任何配方都被选择以执行。在另外的示例中,与用户输入最佳匹配(例如,具有最高的置信度得分)的前N个配方被选择以执行。也可以使用它们的组合。
[0129] 如果一个动作被选择,则选取“是”分支并且该动作在操作524中被选择。
[0130] 在选择调用面向用户的渲染器的动作时,操作522和524对动作的选择可以考虑画布的特性。如先前所讨论的,哪些动作被选择以及多少面向用户的动作被选择以同时渲染可以取决于将接收渲染的画布。例如,如果系统需要获取用户想要预订的披萨类型以及用户想要预订的披萨尺寸的偏好,如果屏幕面板足够大,并且如果用户能够关注于被询问的问题,则系统可以选择呈现询问这两条信息的对话。另一方面,如果用户在车中通过语音进行交互,为了不使得用户分心(即,增加用户的认知负担),系统可以选择每次询问一个问题。因此,针对当前处理轮次可以仅选择单个问题。
[0131] 操作526使得该循环考虑下一个动作(如果存在)。
[0132] 用于搜索静态知识图谱的配方总是可用于选择。因此,在搜索静态知识图谱配方被选择执行时,能够被选择的一个动作是搜索静态知识图谱。该动作可以除了被选择的任何其他动作以外被选择。操作528测试系统是否想要选择搜索静态知识图谱动作。搜索静态知识图谱动作可以在多种情况下被选择。例如,如果因为动态知识图谱不包含其他配方,因为没有选择其他动作以便输出(即,循环520、522、524、526没有选择动作),或者出于一些其他原因而没有其他被选择的动作,则搜索静态知识图谱动作可以被选择。另外地或可替换地,是否选择搜索动态知识图谱动作可以是基于具有未绑定输入的动态知识图谱中的实体的。例如,如果未绑定输入的数量达到阈值数量,如果可能在静态知识图谱中发现未绑定的输入,或者出于一些其他原因,搜索动态知识图谱动作可以被选择。
[0133] 当达到用于选择搜索静态知识图谱动作的一个或多个标准时,在操作530中选取“是”分支并且选择搜索静态知识图谱动作。否则,选取“否”分支并且从策略引擎输出所选择动作的列表。所选择动作的列表将通过调用相对应的API、通过生成对用户的响应(例如,对渲染器的调用)等而被执行。
[0134] 所选择的动作的输出形式取决于实施例以及动作。动作可以包括任何数量的事项,例如向用户呈现对谈(视觉、口述等),以诸如视觉、口述、文本等的期望格式从用户请求信息,用于执行诸如设置定时器之类的一些功能的对API的调用,对设备的调用,用于设置轮询事件以生成回调的调用,等等。策略引擎的一个选项是不返回动作(即,空列表)。在该实例中,该系统进行等待或者开始新的处理轮次。
[0135] 图6图示了根据本公开一些方面的用于添加动作(即,操作518)的流程图600。如上文所讨论的,在与所选择的配方相关联的过程达到退出标准的情况下到达操作518,例如在该配方调取API调用时、生成对用户的响应/调用时、调用另一个配方的执行时、或者其完成执行时。图6中提出了前三个选项。如果过程的执行完成,则执行从操作516运行至操作510,并且图6并不被涉及。
[0136] 执行在操作602处开始并且继续进行至操作603,其中,该过程的状态被保存在动态知识图谱中。这样使得该过程的执行能够在API调用、对用户的响应/调用和/或另一个配方的执行完成时继续进行。
[0137] 执行接着继续进行至操作604,其中该系统识别发生了哪种退出标准(调取API调用、生成对用户的响应/调用、调用另一个配方的执行)。
[0138] 如果退出标准是调取API调用,则选取来自操作604的分支606并且选择用于进行API调用的动作(操作608)。这意味着用于调用合适API的动作被添加至要在包括操作520、522、524和526的循环中被评估的列表。执行接着在操作622处结束,并且在图5上执行继续进行至操作510。
[0139] 如果退出标准是生成对用户的响应/调用,则选取来自操作604的分支610并且选择用于作出合适的面向用户的响应的动作(操作612)。这意味着用于作出合适的面向用户的响应的动作被添加至要在包括操作520、522、524、和526的循环中被评估的列表。执行接着在操作622处结束,并且在图5上执行继续进行至操作510。
[0140] 如果退出标准是执行另一个配方,则选取来自操作604的分支614以去往操作616,在那里检查动态知识图谱以确定是否有其他配方可用。如果是,则选取“是”分支并且执行继续进行至操作618,配方在那里在需要的情况下被实例化以便执行。执行接着经连接符512继续进行至操作514,其中配方被执行。在所调用配方已经基于对调用配方的选择而被选择执行的假设下,连接符512绕开了测试所调用的配方被选择执行的操作506。作为可替换的实现,连接512在操作508之前进行连接,在所述操作508处,被调用的配方可以被选择(或不被选择)以供执行。如果所调用的配方运行至完成,则先前的配方执行在一些实施例中可以继续进行(在图5或6上并未示出)。
[0141] 如果配方不可用,则选取“否”分支以去往操作620,在那里选择用于针对配方搜索静态知识图谱的动作。这意味着针对配方搜索静态知识图谱的动作被添加至要在包括操作520、522、524和526的循环中被评估的列表。执行接着在操作622处结束,并且在图5上执行继续进行至操作510。
[0142] 图7的示例用来说明图5和6如何工作。图7图示了已经通过来自用户所作出的“订披萨”请求的一系列处理轮次所构建的代表性动态知识图谱。该动态知识图谱已经为了清楚而被稍作简化以去除上下文和其他信息。
[0143] 空心圆圈表示一般实体(知识实体等),而实心圆圈则表示配方。以下表格示出了图上各种编号实体的名称。该名称并未被包括在图上以提升可读性,因为并非所有名称和编号在图上都适合。
[0144] 表1:图7的描述标签
[0145] Number Description702 Pizza
704 Word’s Best Pizza
706 Best Pizza in the World
708 WBP_Order
710 Place_Order
712 Food_Type:Pizza
714 BPW_Order
716 Order
718 Account
720 OrderID
722 Name
724 PhoneNumber
728 OrderType
730 AccountType
732 OrderIDType
736 NameType
738 PhoneNumberType
742 AskForPizza
744 WhichPizza
746 PKGLookup
748 AskForName
756 AskForPhoneNumber
758 Search_KG
[0146] 在图7的知识图谱中,Place_Order 710和Food_Type:Pizza 712表示用户输入的语义表示。如图7中提到的,这两个输入已经被绑定至World’s Best Pizza(世界上最好的披萨)预定配方708和Best Pizza in the World(在世界上最好的披萨)配方714。图5的配方选择循环(操作506、508和510)选择配方708和配方714二者以执行,这是由于该系统在该阶段无法得知用户想要从这两个地方中的哪一个来预定。
[0147] 注意到World’s Best Pizza配方708和Best Pizza in the World配方714利用共用的配方来完成其工作。例如,这两个配方都使用AskForPizza配方742、WhichPizza配方744和AskForName配方748。
[0148] 当配方708被操作508选择执行时,该配方被执行(操作514)直到该配方调用了对AskForPizza配方742、WhichPizza配方744、PKGLookup配方746、和AskForName配方748的进一步执行为止。配方742和746向用户询问细节(分别是用户想要的披萨的细节以及订单上的名字)。配方746从用户的个人知识图谱查找用户细节(例如,支付信息等)。配方744在用户想要有关哪些披萨可供预定的信息的情况下向用户发送这样的信息。
[0149] 假设被选择执行的与配方708相关联的另外的配方是配方742、746和748,则图6将执行切换至这些配方(操作616)并且该执行导致对应于这些配方的动作将在要在操作520、522、524和526中被评估的动作列表上终止。这些动作将是向用户询问他们想要什么披萨的细节的面向用户的调用(即AskForPizza配方742),从用户的个人知识图谱查找用户信息的动作(即PKGLookup配方746),以及询问用户他们的名字的动作(即AskForName配方748)。
[0150] 在配方714被操作508选择执行时,该配方被执行(操作514)直到该配方调用了对AskForPizza配方742、WhichPizza配方744、AskForName配方748、和AskForPhoneNumber配方756的进一步执行为止。配方742、746和746向用户询问细节(分别是用户想要的披萨的细节、订单上的名字、以及用户的电话号码)。配方744在用户想要有关哪些披萨可供预定的信息的情况下向用户发送这样的信息。
[0151] 假设被选择执行的与配方714相关联的另外配方是配方742、748、和756,则图6将执行切换至这些配方(操作616)并且该执行导致对应于这些配方的动作将在要在操作520、522、524和526中被评估的动作列表上终止。这些动作将是向用户询问他们想要什么披萨的细节的面向用户的调用(即AskForPizza配方742),询问用户他们的名字的动作(即AskForName配方748),以及询问用户他们的电话号码的动作(即AskForPhoneNumber配方
756)。
[0152] 因此,要整理的动作列表包括以下,其中第一群组来自于World’s Best Pizza配方708而第二群组则来自于Best Pizza in the World配方714:
[0153] ·渲染:
[0154] ○AskForPizza
[0155] ○PKGLookup
[0156] ○AskForName
[0157] ·渲染:
[0158] ○AskForPizza
[0159] ○AskForName
[0160] ○AskForPhoneNumber
[0161] 所选择的这些都没有考虑画布。在这种情况下,可以选择共同的动作(AskForPizza和AskForName)。因此,选择多少动作以及选择哪些动作可以是基于画布、动作之间的共同性、以及其他因素的,例如从对话观点来看首先询问哪个动作是合理的。例如,应当在对话中首先被询问的动作可以被排名最高,共同的动作被排名第二,并且最终是排名最后的其他动作。作为另一个示例,不要求用户交互的动作可以比要求用户交互的那些动作排名更高,或者反之亦然。也可以使用其他排名标准。因此,操作520、522、524和526在该列表中的所有动作上循环并且应用该标准来选择一个或多个动作。在这种情况下,如果画布每次仅允许单个请求,则系统可以选择AskForName或AskForPizza动作。如果系统没有理由优先于一个而选择另一个(即,没有将允许系统优先于一个而选择另一个的排名、分数或其他标准),则该系统可以使用所定义的策略,例如挑选列表中的第一个动作,随机地挑选动作,等等。假设搜索静态知识图谱动作也没有被选择,则所选择的动作接着在操作
532中被输出。
[0162] 在以上的所有实施例中,可以增加机器学习来完成或帮助完成所描述的功能。在该系统中可以使用一个或多个强化学习、监督或非监督时机器学习过程,诸如支持向量机(SVM)技术、卷积神经网络深度神经网络决策树处理、k最近邻居处理、内核密度估计、K均值聚类、期望最大化等。例如,机器学习可以被用来帮助识别可能或不可能运行完成的实体并且因此识别用于暂停、归档和/或修剪的候选项。作为另一个示例,机器学习可以帮助识别应当被加入动态知识图谱以帮助完成用户意图的事项。例如,系统可以随着时间而学习用户何时具有特定意图,特定实体集合被用来完成该意图。因此,该实体可以被获取并放入到动态知识图谱中以帮助实现该意图。另外地或可替换地,机器学习能够进行学习以捕获语义空间中缺失的实体。因此,它们可以帮助动态知识图谱、静态知识图谱、和/或个人知识图谱进行演进以包括新的特征。
[0163] 在另一个示例中,机器学习可以被用来帮助识别能够被链接在一起以完成没有被“硬编码”至配方自身中的内容的配方。如上文所讨论的,一个配方可以调用另一个。然而,两个不相关的配方在它们一起执行时常常能够实现更多,即使它们没有被链接在一起。例如,如果用户要求系统预定航班,并且系统随着时间学习到该用户前往搭乘航班时常常预定去机场的交通,该系统可以学习将预定航班的配方和预定交通的配方进行“链接”从而主动地预见到用户的未来请求。
[0164] 机器学习过程均具有训练过程(有监督或无监督的)。初始训练可以通过以随时间调适为个性化的“标准”模型作为开始或者通过使用批量的收集的数据进行初始训练来完成。
[0165] 示例机器架构和机器可读介质
[0166] 图8图示了适于实现本文所公开的系统等或者用于执行本文所公开的方法的代表性机器架构。图8的机器被示为独立设备,其适于以上概念的实现。对于上文描述的服务器方面,可以使用在数据中心架构的一部分等中进行操作的多个这样的设备。在服务器方面,并非所有所图示的功能和设备都被采用。例如,虽然用户用来与服务器和/或云架构交互的系统、设备等可以具有屏幕、触摸屏输入等,但是系统常常并没有屏幕、触摸屏、相机等,并且通常通过所连接的具有适当输入和输出方面的系统与用户交互。因此,以下的架构应当被理解为包含多种类型的设备和机器并且各个方面根据其形状因子和作用可能存在于任何的特定设备或机器中(例如,服务器很少具有相机,而可穿戴设备则很少包括磁盘)。然而,图8的示例解释适于允许本领域技术人员确定如何利用硬件软件的适当组来实施之前所描述的实施例,其中对于所使用的特定设备、机器等而针对所图示实施例进行适当修改。
[0167] 尽管仅示出了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行这里所讨论的方法中的任何一个或多个。
[0168] 机器800的示例包括至少一个处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、高级处理单元(APU)、或其组合)、一个或多个存储器(例如,主存储器804、静态存储器806、或其他类型的存储器等),它们经由链路808彼此通信。链路808可以是总线或其他类型的连接通道。机器800可以包括其他可选方面,例如包括任何类型的显示器的图形显示单元810。机器800还可以包括其他可选方面,例如字母数字输入设备812(例如键盘、触摸屏等)、用户接口(UI)导航设备814(例如,鼠标轨迹球、触摸设备等等),存储单元816(例如,磁盘驱动器或其他存储设备)、信号生成设备818(例如,扬声器)、传感器821(例如,全球定位传感器、加速度计)、麦克、相机等)、输出控制器828(例如,与一个或多个其他设备进行有线或无线连接和/或通信,例如通用串行总线(USB),近场通信(NFC),红外(IR),串行/并行总线等)和通过一个或多个网络826连接和/或进行通信的网络接口设备820(例如,有线和/或无线)。
[0169] 可执行指令和机器存储介质
[0170] 各种存储器(即,804、806和/或处理器802的存储器)和/或存储单元816可以存储由本文所述的任何一种或多种方法或功能实施或实现的一组或多组指令和数据结构(例如,软件)824。这些指令在由处理器802执行时引起各种操作以实现所公开的实施例。
[0171] 如本文中所使用的,术语“机器存储介质”、“设备存储介质”、“计算机存储介质”是指同一事物,并且在本公开中可以互换使用。术语指的是存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。因此,应将这些术语理解为包括诸如固态存储器之类的存储设备,以及光和磁介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的特定示例包括非易失性存储器,例如包括半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”具体且明确地排除了载波、调制数据信号和其他此类瞬态介质,其中至少一些在下文讨论的术语“信号介质”中涵盖。
[0172] 信号介质
[0173] 术语“信号介质”应被认为包括任何形式的调制数据信号、载波等。术语“调制数据信号”是指具有一种或多种其特征被设置或改变而在信号中编码信息的信号。
[0174] 计算机可读介质
[0175] 术语“机器可读介质”、“计算机可读介质”和“设备可读介质”表示相同的事物,并且在本公开中可以互换使用。这些术语被定义为既包括机器存储介质又包括信号介质。因此,该术语既包括存储设备/介质又包括载波/调制数据信号。
[0176] 示例实施例
[0177] 示例1.一种用于完成用户所请求的动作的方法,包括:
[0178] 接收对输入的语义表示,该语义表示包括意图和槽;
[0179] 将该对输入的语义表示添加到包括知识图谱搜索配方的动态知识图谱中;
[0180] 选择与该知识图谱搜索配方相关联的知识图谱搜索动作;
[0181] 针对包括所存储的配方和对真实世界信息的语义表示的知识图谱执行该知识图谱搜索动作;
[0182] 响应于该动作而接收与相关联的动作相匹配的任何实体;
[0183] 将该实体的子集融合到该动态知识图谱中以产生经更新的动态知识图谱;以及[0184] 执行与该意图相关联的第二动作。
[0185] 示例2.根据示例1所述的方法,还包括:
[0186] 响应于该融合操作:
[0187] 选择与该经更新的动态知识图谱中的配方相关联的动作;以及
[0188] 执行该动作。
[0189] 示例3.根据示例2所述的方法,其中执行该动作包括:
[0190] 识别与该动作相关联的动作类型;
[0191] 至少部分地基于该动作类型而执行至少一个操作,包括:
[0192] 发出用于进行API调用的动作;
[0193] 发出用于进行面向用户的响应的动作;
[0194] 执行所选择的配方的动作;以及
[0195] 发出用于执行知识图谱搜索的动作。
[0196] 示例4.根据示例1所述的方法,其中该实体的子集包括配方。
[0197] 示例5.根据示例1所述的方法,还包括:
[0198] 暂停该动态知识图谱中的配方的执行;以及
[0199] 保存所暂停的配方的状态。
[0200] 示例6.根据示例5所述的方法,还包括重新开始所暂停的配方的执行。
[0201] 示例7.根据示例1所述的方法,还包括:
[0202] 识别已经超出范围的对谈;以及
[0203] 将已经超出范围的对谈归档至与用户相关联的个人知识图谱。
[0204] 示例8.根据示例1所述的方法,还包括将多个配方链接在一起以得到该第二动作。
[0205] 示例9.根据示例1、2、3、4、5、6、7或8所述的方法,其中该实体包括以下中的至少一项:
[0206] 配方;
[0207] 知识实体;以及
[0208] 结构化关系。
[0209] 示例10.一种包括处理器和计算机可执行指令的系统,所述计算机可执行指令当由该处理器执行时使得该系统实行操作,包括:
[0210] 访问具有初始状态并且存储与用户的对话的当前状态的动态知识图谱,处于其初始状态的该动态知识图谱包括:
[0211] 来自用户的输入的语义表示,该语义表示包括意图和槽;
[0212] 搜索知识图谱配方;以及
[0213] 个人知识图谱配方;
[0214] 选择该动态知识图谱中的配方;
[0215] 选择与该配方相关联的至少一个动作;
[0216] 执行该至少一个动作;
[0217] 至少部分地基于对该至少一个动作的执行的结果来更新该动态知识图谱;以及[0218] 执行与该意图相关联的第二动作。
[0219] 示例11.根据示例10所述的系统,其中更新该动态知识图谱包括:
[0220] 识别作为该至少一个动作的执行的一部分被返回的至少一个实体;以及[0221] 将该至少一个实体融合到该动态知识图谱中。
[0222] 示例12.根据示例10所述的系统,其中,多个轮次的以下操作:
[0223] 对该动态知识图谱中的配方的选择;
[0224] 对至少一个动作的选择;
[0225] 对该至少一个动作的执行;以及
[0226] 对该动态知识图谱进行更新,
[0227] 是在该第二动作的执行之前实行的。
[0228] 示例13.根据示例10、11或12所述的系统,其中执行该至少一个动作包括:
[0229] 识别与该至少一个动作相关联的动作类型;
[0230] 至少部分地基于该动作类型而执行至少一个操作,包括:
[0231] 发出用于进行API调用的动作;
[0232] 发出用于进行面向用户的响应的动作;
[0233] 执行所选择的配方的动作;以及
[0234] 发出用于执行知识图谱搜索的动作。
[0235] 示例14.根据示例10、11或12所述的系统,还包括:
[0236] 识别已经超出范围的对谈;以及
[0237] 将已经超出范围的对谈归档至与用户相关联的个人知识图谱。
[0238] 示例15.根据示例10、11或12所述的系统,其中:
[0239] 该动态知识图谱中的所选择的配方包括该搜索知识图谱配方;
[0240] 所选择的至少一个动作包括针对包括所存储的配方和真实世界信息的知识图谱的搜索;
[0241] 该搜索的执行返回后续通过更新操作被融合到该动态知识图谱中的至少一个实体;并且
[0242] 其中,该至少一个实体包括以下中的至少一项:
[0243] 配方;
[0244] 知识实体;以及
[0245] 结构化关系。
[0246] 示例16.一种用于完成用户所请求的动作的方法,包括:
[0247] 接收对输入的语义表示,该语义表示包括意图和槽(208,402);
[0248] 将该对输入的语义表示添加到包括知识图谱搜索配方的动态知识图谱中(404);
[0249] 选择与该知识图谱搜索配方相关联的知识图谱搜索动作(530);
[0250] 针对包括所存储的配方和地真实世界信息的语义表示的知识图谱执行该知识图谱搜索动作(220);
[0251] 响应于该动作而接收与相关联的动作相匹配的任何实体(224,225,402);
[0252] 将该实体的子集融合到该动态知识图谱中以产生经更新的动态知识图谱(210,404);以及
[0253] 执行与该意图相关联的第二动作。
[0254] 示例17.根据示例16所述的方法,还包括:
[0255] 响应于该融合操作:
[0256] 选择与该经更新的动态知识图谱中的配方相关联的动作;以及
[0257] 执行该动作。
[0258] 示例18.根据示例17所述的方法,其中执行该动作包括:
[0259] 识别与该动作相关联的动作类型;
[0260] 至少部分地基于该动作类型而执行至少一个操作,包括:
[0261] 发出用于进行API调用的动作;
[0262] 发出用于进行面向用户的响应的动作;
[0263] 执行所选择的配方的动作;以及
[0264] 发出用于执行知识图谱搜索的动作。
[0265] 示例19.根据示例16、17或18所述的方法,其中该实体的子集包括配方。
[0266] 示例20.根据示例16、17、18或19所述的方法,还包括:
[0267] 暂停该动态知识图谱中的配方的执行;以及
[0268] 保存所暂停的配方的状态。
[0269] 示例21.根据示例20所述的方法,还包括重新开始所暂停的配方的执行。
[0270] 示例22.根据示例16、17、18、19、20或21所述的方法,还包括:
[0271] 识别已经超出范围的对谈;以及
[0272] 将已经超出范围的对谈归档至与用户相关联的个人知识图谱。
[0273] 示例23.根据示例16、17、18、19、20、21或22所述的方法,还包括将多个配方链接在一起以得到该第二动作。
[0274] 示例24.根据示例16、17、18、19、20、21、22或23所述的方法,其中该实体包括以下中的至少一项:
[0275] 配方;
[0276] 知识实体;以及
[0277] 结构化关系。
[0278] 示例25.根据示例16、17、18、19、20、21、22、23或24所述的方法,其中,多个轮次的以下操作:
[0279] 选择该知识图谱搜索动作;
[0280] 执行该知识图谱搜索动作;
[0281] 响应于该动作而接收与相关联的动作相匹配的任何实体;
[0282] 将该实体的子集融合到该动态知识图谱中,
[0283] 是在与该意图相关联的第二动作的执行之前实行的。
[0284] 示例26.根据示例16、17、18、19、20、21、22、23、24或25所述的方法,还包括:
[0285] 选择该动态知识图谱中的配方;
[0286] 选择与该配方相关联的至少一个动作;
[0287] 执行该至少一个动作;
[0288] 至少部分地基于对该至少一个动作的执行的结果来更新该动态知识图谱。
[0289] 示例27.根据示例26所述的方法,其中执行该至少一个动作包括:
[0290] 识别与该至少一个动作相关联的动作类型;
[0291] 至少部分地基于该动作类型而执行至少一个操作,包括:
[0292] 发出用于进行API调用的动作;
[0293] 发出用于进行面向用户的响应的动作;
[0294] 执行所选择的配方的动作;以及
[0295] 发出用于执行知识图谱搜索的动作。
[0296] 示例28.根据示例16、17、18、19、20、21、22、23、24、25、26或27所述的方法,还包括:
[0297] 识别已经超出范围的对谈;以及
[0298] 将已经超出范围的对谈归档至与用户相关联的个人知识图谱。
[0299] 示例29.一种装置,包括用于执行根据之前任一个示例所述的方法的器件。
[0300] 示例30.一种存储机器可读指令的机器可读存储,所述机器可读指令在被执行时用于实施根据之前任一个示例所述的方法或者实施根据之前任一个示例所述的装置。
[0301] 结论
[0302] 考虑到本发明的原则和上述示例可以针对其应用的许多可能实施例,应当认识到的是,本文所描述的示例意在仅是说明性的而并不应当被理解为对本发明的范围有所限制。因此,如本文所描述的发明将所有这样的实施例预期为处于以下权利要求及其任何等同形式的范围之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈