用于计算机学习和理解的体系结构和方法与流程

文档序号:17123920发布日期:2019-03-16 00:07阅读:377来源:国知局
用于计算机学习和理解的体系结构和方法与流程

本申请要求于2016年6月24日递交的申请人号为15/192,796、名称为“用于计算机学习和理解的体系结构和方法”美国专利申请的优先权。该专利申请的全部内容通过引用并入本文中。



背景技术:

世界长期以来一直梦想着人工智能的机器人、机器和计算机。从阿瑟·c·克拉克的太空奥德赛系列中的哈尔(hal)和杰特森卡通系列中的罗西女佣,到星际迷航系列中的舰载计算机、以及星球大战传奇中的r2d2和c3po,我们一直着迷于可以天生学习、理解并思考的机器。

虽然这可有助于非常好的娱乐,并且可以为未来的机器的诞生提供理想的目标,但是与人工智能和构建智能机器相关的问题非常复杂。例如,现在没有任何系统能够令人满意地与人类通过任意文本进行开放的对话,更不用说那种能够从这种交互中独立地“学习”并解释复杂问题的合理答案的系统。

在这个领域已经取得了进展。像ibm公司的沃森(watson)这样的知名系统在电视游戏节目“危险边缘”上取得了成功,而苹果公司产品的语音助手siri肯定能够使得在苹果产品上更容易地找到音乐和位置。但是这些系统仅仅将大量数据、大型训练集、浅层语言技巧和机器学习技术应用于自动问答的任务。这些系统缺乏深刻的理解。最近关于阅读理解任务的工作仍然集中在浅层统计方法上,这些方法具有狭隘的基于答案的指标,而不是要求逻辑理解和流利的解释。然而,直到今天,任何计算机系统都无法自主地阅读、构建和传达对即使是任意二年级文本的逻辑理解和解释。

因此,不断需要可以学习和理解的更智能化的机器。

附图说明

以下参考附图进行了详细描述。在附图中,附图标记的最左边的一个或多个数字标识首次出现该附图标记的图。在不同附图中使用相同的附图标记表示相似或相同的项目或特征。

图1示出了一种体系结构和环境,其中,计算机器通过对话使人类参与,以学习和理解任意文本,例如在故事中找到的文本。

图2a和图2b呈现了用于通过人类交互来学习和形成理解的过程的流程图,该人类交互的过程可以由图1的体系结构实现。

图3是通过允许人们参与到围绕在文本中讨论的主题、与计算系统进行的对话来教导人们的过程的流程图。

图4示出了图1的学习和理解体系结构中的选择组件的示例实施方式,并演示了某些过程和数据在组件之间可能的流程。

图5是计算系统的框图,并且示出了由图1的体系结构执行的选择模块,用以使计算系统能够读取、构建和传达对任意文本的逻辑理解。

图6是用于学习和理解文本的过程的流程图,其可以由图4的体系结构组件实现。

图7是由图1的体系结构采用的故事解析引擎的一个示例性实施方式的框图。图7示出了可用于在语法上处理文本字符串(例如故事)以产生语言分析结果的选择组件的一种实施方式。

图8是用于在语法上处理故事中的文本字符串(例如句子)的过程的流程图。

图9是由图1的体系结构采用的知识整合引擎的一个示例性实施方式的框图。图9示出了可用于在语义上处理故事的语言分析结果的选择组件。

图10示出了一组示例性的生成语义基元(generativesemanticprimitive)结构,其可被构成以表达对应文本字符串(例如,句子)的意义范围。

图11示出了示例性故事、示例性剧集和示例性语义结构,用以演示图9的知识整合引擎的对准模块如何对准框架语义与不断变化的故事模型,以改善对故事的理解。

图12是用于推断语义信息以便提供对故事的更深理解的过程的流程图。

图13是在图1的体系结构中找到的知识推导引擎的一个示例性实施方式的框图。图13示出了可以被实现用以生成资源以协助推断故事的语义信息的选择组件。

图14是一个过程的流程图,该过程用于为故事中的单词/短语的意义和关系提供可能的候选者,以在推断关于故事的语义信息时进行协助。

图15是在图1的体系结构中找到的信念表示和推理框架的一个示例性实施方式的框图。图15示出了框架中的选择组件,该框架可用于支持体系结构的操作,包括知识表现语言、以及用于上下文区分和语义基元的推断和学习机制。

图16是在图1的体系结构中采用的对话引擎的一个示例性实施方式的框图。图16示出了对话引擎中的选择组件,其生成用户问题以质疑或验证系统对故事的当前理解,并接收用户响应以更新系统的理解。

图17示出了对话引擎使用的依赖性结构的示例,其用以生成要向一个或多个人类用户提出的适当问题。

图18是一个过程的流程图,该过程用于生成问题以提交给人类用户,以验证和通知系统对语义结构和框架中当前反映的故事的当前理解。

图19示出了对话用户界面的屏幕渲染,该对话用户界面被呈现在用户装置上、并且在计算系统和人类用户之间的对话会话期间被用户看到。

图20示出了在图19的屏幕渲染之后、在用户装置上呈现的对话用户界面的第二屏幕渲染,以示出对话会话中的下一个问题。

图21示出了在图20的第二屏幕渲染之后、在用户装置上呈现的对话用户界面的第三屏幕渲染,以示出对话会话中的又一个问题。

图22是具有示意图示的框图,示出了用于将相同或不同问题并行分配给多个人类用户的分布式对话机制的实施方式。

图23是涉及多个用户的第一示例性分布式对话会话的示意图。

图24是涉及多个用户的第二示例性分布式对话会话的示意图。

图25是示出用于在多个用户对话会话期间分配问题的过程的流程图。

图26的框图示出故事模型、以及故事模型中包含的数据结构如何因语法处理、语义处理和人类交互而随着时间的推移得到发展。

图27的流程图示出用于通过处理和推断越来越困难的自然语言故事和人类交互,而随时间的推移增长计算机理解的过程。

图28的示意图示出了由于越来越多的增加难度的故事通过对话进行语法处理、语义处理和人类评估,当前世界模型中作为语义结构体现的知识如何随着时间的推移而增长。

图29示出了一组可视化的示例图,其示出了递增地构建概率信念网络并迭代地改进其全局逻辑一致性的动态过程。

具体实施方式

本公开描述了用于计算机学习和理解的体系结构和过程。该体系结构通过与人类的合作,学习和形成对任意文本的理解。这种合作可能是在联合解决问题的背景下,或者在利用人类教导系统或协助系统理解其正在阅读的文本的情况下。通过在很大程度上加快对任务相关知识的访问并协助人类研究、学习、发现和解决问题,一种可以独立地从文本中获取知识并将知识转换为从文本转换成一种形式的体系结构将会改变世界,该形式允许该系统进行推理、进化和有意义地对话。

计算体系结构解决了深层自然语言理解的问题,在深层自然语言理解中,计算机系统可以自主地阅读、构建和传达对广泛的自然语言文本的逻辑理解和解释。深层理解所需的大部分内容并未明确地存在于文本中(或任何文本中),而是隐含的,并且通过与世界的交互或通过与人类的交互对话而被学习。本文描述的过程包括在交互式问题解决任务中与人类进行对话,例如阅读理解,使得计算系统迭代地学习,从而一致地、准确地和独立地将预期意义(通过交互得到验证)分配给日益复杂的语言。

深层的自然语言理解是困难的,因为语言本身很难。语言是无限可组合的,因为表达同一个事物可以有很多方式,并且存在意义上的微妙差异。例如,单词“touchdown”可以指飞机着陆或美式足球中的得分。有人可能会“为你疯狂(madaboutyou)”或“对你生气(madatyou)”,这有两个完全不同的含义。想象一下,能够通过以下脚本与计算机进行对话:

人:你好,我有一个问题。

计算机:嗨。我能帮你什么?

人类:我想从技术角度和道德角度讨论一篇关于干细胞在器官再生中的作用的文章。

计算机:好的。这篇文章认为干细胞是非常有效的。这项技术可行,因为干细胞包含......,关于......尚有的开放性问题。

人类:为什么干细胞会被吸引到损伤领域?

计算机:通过“为什么”,你可能意味着“如何”。真的吗?如果是这样,干细胞行进到损伤领域并使用化学信息系统在损伤领域进行收集,其中,......

虽然这种对话在两个人之间可能是合理的,但由于不精确的语言引入了许多复杂程度,故这种会话对计算机来说是困难的。在词义、语法和意图方面存在普遍的模糊性。而且,意义通常是隐含的,其中,未说明重要信息并假设背景信息。

为了进一步说明这一点,请考虑以下简短的故事:

bat飞向他。

比利跑得尽可能快。

他安全回家了!

根据设置或背景,可以有不止一种方式来理解这个故事。读一次这个故事,单词“bat”意思是飞行的哺乳动物蝙蝠。然后,再读一遍,“bat”这个词也允许其意思为棒球棒(baseballbat)。

作为人类,我们的知识和经验也帮助我们从故事中辨别出意义,而在文本本身中故事可能没有这个含义。作为另一个示例,以下参考名称为“恩佐(enzo)和佐伊(zoe)”的简单的初级故事,描述下面的体系结构和过程的各方面如下:

恩佐和佐伊正在参加比赛。恩佐跌倒了。他伤了膝盖。

佐伊回头看。佐伊想赢。如果她继续跑,她会赢。佐伊停

下来。她跑回去。她帮助恩佐起来。

考虑如下的简单问题:佐伊在看什么?佐伊停下来做什么?她跑回去了哪里?佐伊赢了吗?天气怎么样?恩佐和佐伊多大了?计算机器通常不会以必要经验和知识开始来填空,因此本文描述的过程使得计算机器能够为人类参与构想和表达问题,从而为了更丰富地理解这个故事而获得这样的学习。

因此,这里描述的体系结构具有计算系统,该计算系统通过使用自然语言对话与人类协作来学习如何理解它所读取的内容,以回答关于给定文本(例如故事)的问题。这个故事可能伴随着一些阅读理解问题。该系统创建故事的语义表现,其尤其可以用于回答阅读理解问题。

计算系统首先执行故事的语言分析,产生语言分析结果,例如语法解析(syntacticparse)、谓词论元(predicateargument)结构、实体类型分配和相互参照(co-reference)分析。使用该语言分析,计算系统创建故事的语义表现,其中,故事的含义是根据生成语义基元(gsp)来表达。gsp是结构的一个小集合,其表达关于世界的基本事实,例如时间、空间、逻辑、数量、变化、原因、关联、信念、感知、表现和意图。gsp可以被构成为表示自然语言的非常广泛的含义。

计算系统维持并持续更新当前世界模型,当前世界模型包含其关于世界真实情况的信念。当前世界模型可以由框架的集合组成,其中,每个框架是提议的集合,例如gsp,其在某些共同的背景下可能为真。例如,在恩佐和佐伊的故事中,框架结构可以提供在比赛期间通常发生的情况。计算系统借鉴其当前世界模型中的知识和根据大型语言语料库自动推导的知识来构建故事模型。

在构建初始故事模型之后,计算系统通过与已经阅读该故事的人的对话来测试故事模型。这个过程可能包括一起完成阅读理解练习、回答问题、以及提供有效的解释。人类对话使计算机系统能够发现另外的隐含语义和故事中隐含的背景知识,并使用这种隐含的知识来理解故事和未来的新故事。人类响应可用于更新故事模型,并调整计算系统对某些理解的选择。在对模型进行修订之后,可以通过与人类的额外对话来进一步测试新的理解。

以这种方式,通过与人对话,计算系统随着时间的推移学习,以连续回答关于更困难的阅读理解文本的问题,并通过回答问题以及通过解释为什么这些答案是正确的,来证明其理解其所阅读的内容的能力。例如,该系统可以从幼儿园水平开始,并发展到通过更高的等级水平。在一些应用中,系统可以与学生们进行对话,这些学生也处于针对文本的适当等级水平。计算机系统生成问题并向人们提问,随后由计算机系统使用其答案,以学习如何将语言映射到表示其理解的逻辑模型。

而且,计算机系统可以被配置为通过交互过程教导人们。该系统帮助人类学生构建他们正在阅读的内容的逻辑模型,并通过评估系统的理解且通过逻辑验证系统的答案来学习批判性思考,最终达成对给定故事的相互理解。通过生成将故事元素联系到计算机系统在背景语料库上检测到的其他类比内容的类比,并通过要求学生考虑和验证这些类比,该系统学习和教导类比推理。通过多次这样的交互,学生学习如何质疑、批判、探索和扩展其自己的知识,并且计算机系统学习一致地、准确地、独立地将预期意义(通过交互得到验证)分配给越来越复杂的语言。

在一些情况下,除了人类交互之外,计算系统还可以进一步参与到与其他计算系统的对话中。例如,第一计算系统可能已经获得了对故事的理解,而第二计算系统尚未遇到该故事。第一和第二计算系统能够参与关于故事的对话,使得第一计算系统基本上教导第二计算系统。以这种方式,随着计算机系统随着时间的推移而独立发展,以通过学习和理解不同领域中的文本来形成那些领域的专业知识,这些计算机系统可以相互学习,以整合其他系统的知识。计算机系统之间的对话可以处于非常不同的级别,例如传达它们各自的语义表现。

该体系结构采用来自人工智能的技术,例如知识表现和机器学习。而且,它采用来自自然语言处理的技术,例如语法分析、谓词论元结构、实体类型分配、相互参照分析和统计技术,例如分布语义(例如潜在语义分析、随机索引和主题建模)。

说明性的结构体系环境

图1示出了示例性体系结构100,其中,机器(诸如计算系统)可以通过对话与人类紧密结合,以学习和理解任意的自然语言,例如在故事中找到的自然语言。出于讨论的目的,该体系结构被部分地描述在教育的示例性环境中,其中,计算系统与各种水平的学生交互,以便向学生学习和/或通过回答学生提出的问题来教导他们。然而,该体系结构可以在基本上任何环境中实现,并不旨在将其限于教育。

体系结构100包括学习和理解计算系统102,其被配置为通过与人类的协作交互,来收集和分析任意自然语言,并学习和理解单词和概念的含义和意义。人类协作可以在联合解决问题的环境中进行,或者是在利用人类来教导或帮助系统理解其正在阅读的文本的环境中。学习和理解计算系统102可以被托管在一个或多个服务器104(1)、104(2)、104(s)上,其具有处理和存储能力,以收集可以是任意文本字符串形式的自然语言输入,例如故事106(1)、…,106(t)。服务器104(1)-(s)处理自然语言输入,并通过用户界面使人参与,以改善对人和计算系统的自然语言输入的相互理解。服务器104(1)-(s)可以以任意多种方式实现,包括作为单个服务器、服务器群集、服务器场或数据中心等,尽管也可以使用其他服务器体系结构(例如,大型机体系结构)。

在所示的实施方式中,示出的故事106(1)-(t)被输入到学习和理解计算系统102中。通常,这些故事可以源自任何形态(说话、文本、ocr等),最终将其转换成文本的数字格式表示(例如,ascii),以供计算系统102处理。这些故事可以伴随有许多阅读理解问题。故事可以由计算系统102存储并由系统102使用,以获得对语言的更深层理解。在这个示例中,显示了两个故事:“本(ben)和埃娃(ava)”的故事106(1)和“恩佐(enzo)和佐伊(zoe)”的故事106(t)。以上提供了enzo和zoe的故事106(t)。同样,ben和ava的故事106(1)也是一个适合年龄较小的学生的短故事,如下:

ava走进来。

ben将ava引导到一张桌前。

ava坐下来。

ben给了ava菜单。

ava点了意大利面条。

ben将食物带给ava。

ava吃了并且离开。

根据体系结构100,计算系统102与人共享故事106(1)-(t),并且有时参与达与人的对话中,以测试系统对这些故事的理解。学习和计算系统102构建初始模型,其包含故事的语义表现以表示对故事的初始理解。这个第一模型在本文中称为“故事模型”,并且在下面更详细地描述。通常,初始故事模型根据包括语法元素和/或生成语义基元(gsp)集的数据结构来表达初始理解。生成语义基元是结构的一个小集合,其表达关于世界的基本事实,并且可以被构成用以表达自然语言的含义的全部范围。例如,对于句子“ben将食物带给ava”,语法元素可以识别“带”为动词,语义基元可以包括关于句子中的实体的事实,例如ben使一个动作发生,该动作导致了食物处于ava附近,或者ben的意图是使ava拥有食物。除了其它用途之外,gsp还可用于回答阅读理解问题。

理解语言是在书面文字中明确的内容之外附加的关于未说出来的信息和部分人类感受。典型地,对自然语言陈述的最佳解释是关于我们对世界的知识“最有意义”的解释。计算系统102维持并持续更新另一个模型,该另一个模型包含关于世界真实情况的信念。这个第二模型在本文中称为“当前世界模型”,并且在下面更详细地描述。当前世界模型由框架的集合组成,其中,每个框架是提议的集合,例如gsp,其在某些共同的背景下可能为真的。计算系统102借鉴当前世界模型中的知识和根据其他来源(例如大型语言语料库)自动推导的知识,来构建初始故事模型。

在构建初始故事模型之后,学习和理解计算系统102可以与已经阅读故事的用户进行对话。计算系统102形成一个或多个用户问题以向人类提出,以测试对故事的这种初始理解。例如,在已知故事模型不完整、系统对其语义表现不具有高置信度、或者存在无法自信地回答的阅读理解问题的情况下,计算系统102可以生成问题。系统可以提出问题,以验证其理解或获取缺失的知识。例如,用户问题可以提供其他可能的生成语义基元集,来质疑初始故事模型中的生成语义基元是否传达了故事的准确含义。用户问题是以从生成语义基元转换的自然语言来提供,并被发送给人类用户供他们输入。用户对这些问题的响应被返回到系统102,并用于增强当前世界模型,以及用于修改或产生故事模型的新迭代,其表示对故事的新的和增强的理解。新模型将新理解表达为数据结构,这些数据结构关联生成语义基元的不同集合,这些基元可以进一步组合成甚至提供更多含义的框架结构。该过程可以重复多次,直到计算系统102已经完成各种场景下的工作,并且其对故事的理解与人类用户将如何理解故事对准一致。保留更新的当前世界模型,以用于处理将来可能收集到的其他自然语言故事。还可以存储各个故事模型,以便在以后必要时调用。当计算系统经历在多个故事上的多个用户交互时,当前世界模型在每个交互中逐渐丰富,并且系统学习以一致地、准确地和独立地确定自然语言文本的语义表现。随着时间的推移,该系统可以逐步读取更难的故事、文档和其他文本,并结合人们去学习和理解越来越难的主题。结果,系统利用新的gsp和新框架、以及系统中使用的其他资源,继续构建和发展当前世界模型138。

再次参考图1,计算系统102可以与许多人类用户交互而作为对话过程的一部分,并且这些用户可以有不同的目的来使系统参与。出于讨论目的,示出了两组人类用户,包括:人类学生110(1)、110(2)、…、110(l),其被示为属于人类学生群体112;以及人类协作者114(1)、…、114(c),其属于基于人工的协作众包(crowdsourcing)网络116。学生110(1)-(l)与计算系统102交互,以从计算系统102学习到与计算系统102从其所学到的一样多的知识。学生和计算系统102在他们完成故事106时参与联合问题解决任务,从而通过该过程从彼此学习多个方面。学生110(1)-(l)可以是任何年龄、阅读水平或基本上任何人口特性。出于讨论目的,学生110中的两个包括文法学生110(1),例如一年级学生,以及成人110(2),例如大学生或专业人士。在一些应用中,计算系统102可以与处于针对文本的适当年级的学生进行对话。

人类协作者114(1)-(c)主要受到计算系统102的吸引,以测试系统对文本字符串的理解,例如在故事106(1)-(t)中找到的那些字符串。人类协作者114(1)-(c)可以是正式的协作者,或者是简单地回答由计算系统102提出的问题的未经训练的人。在一个实施方式中,协作者114可以是有组织的众包网络116的一部分,例如来自亚马逊的mechanicalturktm众包平台。人群交互的使用允许体系结构100在多个合作方面的扩展,这使计算系统能够以更快的速度学习更多。

学生110(1)-(l)和人类协作者114(1)-(c)都可以是分布式的,彼此没有正式关系,并且仅仅使用他们自己的电子设备来与学习和理解计算系统102进行交互。在一些实施方式中,系统102将故事(特别是较长的故事)处理成若干个不同的部分,并将针对不同部分的不同用户问题分配给不同的学生或协作者,从而允许系统并行地学习单词和概念,并且更快地透彻理解该故事。

学生110(1)-(l)可以以许多方式与学习和理解计算系统102交互,包括直接与系统102交互,或通过基于用户的电子设备118(1)、118(2)、…、118(d)(统称为设备118)进行交互,设备118经由网络120与系统102通信。网络120表示多种不同类型的网络中的任何一个或组合,例如因特网、线缆网络、无线网络和有线网络。学生设备118具有处理、存储、网络和显示/音频能力,使学生110(1)-(l)能够与系统102交互。设备118基本上可以是任意类型的计算装置,包括例如,计算机118(1)、多功能通信设备118(2)、和便携式计算机118(d)。除了这些所示出的设备之外,还可以使用其他类型的电子设备,例如便携式数字助理(pda)、蜂窝电话、便携式媒体播放器、平板计算机、上网本、笔记本计算机、台式计算机、机顶盒、娱乐设备、有线电视盒、游戏系统等。

学生110可以通过不同或多种形式与学习和理解计算系统102交互,包括文本、音频和/或视频。如图1所示,关于“enzo和zoe”的故事106(t)可以描绘在学生设备118(1)的显示器上,以供其中的一个学生阅读,例如成人学生110(2)。

类似地,学生110(1)已阅读“ben和ava”故事106(1),并且现在正在与学习和理解计算系统102讨论该故事,如在学生的设备118(d)上呈现的对话用户界面122所示。学生110(1)可能早先在同一屏幕上已经阅读了故事,或者已通过文本到语音转换器收听故事,该转换器通过扬声器输出故事的音频表示。在故事期间或在其完成之后,学生110(1)可以通过向用户界面122键入问题/评论,或者通过与设备118(d)交谈,以口头提问或发表评论,来询问关于故事的问题。在图1中,学生110(1)问一个口头问题“ben为什么给ava菜单?”,该问题以冒泡124的形式绘制。计算机118(d)将该音频问题转换为文本格式,并将该问题以文本格式而呈现在ui122上。计算机118(d)还通过网络120将学生问题以数字形式发送到计算系统102,计算系统102对问题进行处理。计算系统102检查其当前对故事的理解和故事的这个特定元素,并向学生提供答案。在该示例中的学习交互的这个阶段,假设计算系统102已经认识到故事包括诸如ben将菜单和食物(意大利面条)带给ava的动作。计算系统102将这些动作识别为可能属于一个可能涉及餐馆的框架,其中ben是服务员,而ava是顾客。因此,学习和理解计算系统102构想出一个响应,该响应假定了餐馆的含意。在图1中,示例性响应被发送到设备118(d)并且在ui122中呈现为“故事提到ben带来菜单和食物给ava。我相信,ben和ava在餐馆中”。计算系统可以进一步使用这种交互,不仅教导学生110(1)而且还通过添加第二语句来评估系统自己的理解,例如“你同意吗?”。如果系统的响应性解释对于学生是准确的,则学生可以确认该理解,例如通过回答“是”,如ui122中所示。

以这种方式,出于教育学生并且还向学生学习的双重目的,学习和理解计算系统102可以使用人类交互,以提高计算机器的理解。从学生的角度来看,人与计算机在一起学习并解决问题。虽然这个示例假设了基本故事,但考虑到这种相同的交互可以在复杂的主题上发挥作用,例如物理学、生命科学、医学和音乐理论。学生110可能对学习他或她一无所知的新主题感兴趣。虽然可以通过传统的搜索找到信息,但学生仍然需要阅读并尝试理解由这样的搜索找到的各种各样的结果。在该体系结构100中,人类学生可以与计算系统102交互,该计算系统102是该主题的专家,或者通过其关于该主题(例如,白皮书、研究文档等)的各种文本的深入理解过程而成为该主题的专家。人类学生可以在自然对话中向系统询问问题,并通过讨论文本而得到关于该主题的教导。

在另一实施方式中,体系结构100允许协作者114(1)-(c)回答由计算系统102提出的询问,作为学习理解故事106(1)-(t)的过程的一部分。协作者114(1)-(c)中的每一个可以使用某种计算机或电子设备,诸如台式计算机、膝上型计算机、智能电话、pda、机顶盒、娱乐设备、游戏系统等。学习和理解计算系统102与协作网络116的协作者114(1)-(c)交互,其主要目的是改善理解,而不是用于指导协作者。因此,计算系统102可以在与协作者114(1)-(c)进行接触时呈现不同的ui126,协作者114(1)-(c)提出问题以确认或质疑系统的理解。在该示例中,ui126示出了简单的交互,其中,计算系统102正试图更好地理解关于该句子的ben和ava故事106(1)的摘录,“ben将食物带给ava”。在ui126中,归属于计算系统102的一个对话框128(a)(由蝴蝶图标表示)提供用户询问:

这是我试图理解的一句话:

ben将食物带给ava。

下面的哪个选项使用了最类似于上面的句子中的单词:“带”(bring)?

计算系统102还提供多个选项,并在第二对话框128(b)中提供那些归因于协作者的响应(由用户图标表示)的选项。系统可以基于每个选项的内部置信度对生成的问题中的答案选项进行排名。在此示例中,协作者可以从以下三个选项中选择:

1.将某物或者某人随身带到某个地方。

2.导致进入特定状态或状况。

3.合法地呈现或提出。

协作者中的一个(例如协作者114(c))浏览在框128(a)中的系统生成的用户询问和框128(b)中的选择,然后,通过点击选项进行选择,或说出答案(例如,选项1)。响应被返回到计算系统102并用于通过潜在地修改故事模型和支持该模型的语义基元的集合来改善其对故事的理解。这些响应可以进一步用于将来解释在未来阅读的类似上下文中的单词或短语,例如单词“带”。

如图1所示,学习和理解计算系统102具有在服务器104(1)-(s)上存储和执行的多个模块130。模块130包括程序、应用程序、数据结构、数据存储、算法和其他处理逻辑和存储器,以实现本文所述的计算机学习和理解过程。选择模块如图1所示,以提供高级概述,而本文以下参考后面的附图提供了附加模块和更详细的讨论。

学习和理解模块130通过联合推断和对话与人一起工作,以产生准确描绘故事的故事模型132,例如故事106(1)-(t)。故事模型132随着时间的推移,从故事中句子的早期语法表现演变为若干个数据结构,这些数据结构包含实例化的生成语义基元和由语义结构组成的框架结构,以准确地传达关于故事的更高层次的含义。

模块130包括故事解析引擎134,其接收故事(例如,故事106(1)-(t)),并且对故事中的句子执行语法分析以生成若干语言分析结果。在一个实施方式中,语言分析结果包括(1)提供句子结构的语法分析,(2)谓词论元结构(pas),(3)为句子中的每个实体分配类型的实体类型分配;(4)通过故事的相互参照分析而产生的相互参照链。可能的是,将产生语言分析结果的多个集合,因为语言通常是模糊的,并且可能无法确定肯定是正确的单个分析。下面参考图4和图7更详细地描述语言分析结果及其如何产生。

知识整合引擎136接收作为输入的故事、以及来自故事解析引擎134的语言分析结果。知识整合引擎136构建故事的初始概率语义表现,其对于系统关于世界的当前知识是有意义的,其保存在当前世界模型138中。初始语义表现形成第一版本的故事模型132,然后其由知识整合引擎136通过使用人类交互和先前获取的知识资源随时间的推移而进化。在故事中,正如假定的那样,信息通常未被说出来;不幸的是,这也可能导致含糊不清的含义。如下面将更详细地描述的,知识整合引擎136推断出有效预测可能未说出来的内容的相关语义结构,因此系统可以形成更好的知识模型,并且向人类学生或协作者询问更聪明的问题。当故事提到“ben将食物带给ava”时,知识整合引擎136会评估可能缺少的信息,例如:“ben是服务员吗?”、“ava是在餐馆吗?”等等。

知识整合引擎136依赖于存储在存储器中的当前世界模型138和知识推导引擎140,来协助推断相关的语义结构。当前世界模型138是系统随时间的推移已经学习和构建的所有语义知识的知识库。当前世界模型138可以包括或能够参考生成语义基元的集合,其最初是通用的和未实例化的。例如,这些生成语义基元可以包括用于简单概念的预先形成的结构,例如位置、时间、动作和经验,它们最初未使用任何附加信息进行实例化。知识整合引擎136从当前世界模型138中识别相关的未实例化语义基元结构,并用故事中句子的语法解析中包含的单词/短语来将其实例化,例如将动词(例如,“去”、“带来”、“吃”等)和实体(例如“ben”、“ava”、“菜单”、“意大利粉”)映射到结构中。当前世界模型138另外包含框架的集合。框架是在特定语境(context)中的提议(包括但不限于gsp)的概率分布。一种简单的情况是在语境中可能为真的提议(proposition)的集合,诸如通常在特定地点(例如,餐馆)中发生的动作。在一种可能的方法中,知识整合引擎136构建并迭代地对准推断的语义结构和语法分析的输出,以使故事模型132进化,优选与已知框架配合很好的语义结构。知识整合引擎136基本上迭代地对准故事模型132与在当前世界模型138中包含的知识一致。

知识整合引擎136查询知识推导引擎140以协助进行智能预测。知识推导引擎140被配置为离线分析大型语料库和其他资源并生成资源存储库(在此称为“推导的知识资源”),其捕获故事文本中暗示或隐含的信息。知识推导引擎140使用推导的知识资源来实现多个任务,包括但不限于词义消歧、关系检测、释义生成、文本蕴涵、场景分析和遗漏文本生成。

在其各种应用的技术中,知识推导引擎140消除了单词的词义(例如,单词“ball”可以是正式舞蹈或一件运动装备)。推导引擎140可以找到/识别释义,其中,可以重写单词和短语,但具有大致相同的含义(例如,“爆发的人群(crowderupted)”与“看台上的掌声(applauseinthestands)”大致相同?)。知识推导引擎140可以进一步检测单词或短语之间的关系(例如,在短语“opec提升油价(rampedupthepriceofoil)”中,短语“提升”具有增加量的关系)。知识推导引擎140可以执行其他形式的单词和短语分析,以检测和揭示其他相关知识。在这些情况中的每一种情况下,知识推导引擎140向知识整合引擎136返回具有相关推断概率的候选排序表,知识整合引擎136使用推断概率来选择适当的词义,并构建准确的语义结构和框架,这些语义结构和框架将含义灌输到故事模型132中。下面参考至少图4、9和13,提供知识整合引擎136和知识推导引擎140的更详细讨论。

对话引擎142获取故事模型132,并识别语义表现不完整的区域或系统对那些表现具有低置信度的区域。置信度值可以以各种方式计算,并且与任务相关以及通常依赖于上下文。对话引擎142为人类的学生群体110(1)-(l)和/或协作者114(1)-(c)生成对话问题,以用他们拥有的、将有助于弥合这些差距的信息来回答问题。对话引擎142生成结构化问题,以质疑或确认系统的当前理解,如故事模型132所表示的,并通过网络120将这些问题发送给学生110(1)-(l)中的一个或多个和/或协作者114(1)-(c)中的一个或多个。在ui126中示出了一个示例性问题,其中,对话引擎142针对如何解释句子“ben带食物给ava”,提出了寻求用户反馈的问题。还可以生成阅读理解问题,以帮助识别故事模型132和当前世界模型138不足以提供问题答案的差距。人类学生/协作者通过网络120将反馈返回到计算系统102,其中,结果由对话引擎142收集,并传递到知识整合引擎136以进行分析。

基于来自对话引擎142的人-交互结果,知识整合引擎136用修改的或新的语义结构、以及表示故事的新/修订概念的进一步定义的框架结构来更新当前世界模型138。以这种方式,系统102继续学习并获得对故事中的语言更深入的理解。而且,知识整合引擎136继续针对更新的当前世界模型138迭代地改善故事模型132。知识整合引擎136继续利用人在对话引擎142的协助下探测其理解,直到达到终止条件,例如,系统对其故事的语义表现具有足够的置信度。在一种方法中,知识整合引擎136和对话引擎142继续迭代,直到达到阈值置信水平,其表明当前理解具有准确描绘故事的高概率。可以根据各种应用和使用情境来设置和调整阈值。

可以根据给定情况的目标,以各种方式计算置信水平。计算系统102可以应用于例如涉及语言理解的许多目标,例如总结文本或回答问题。实现这些目标的先决条件是计算系统102能够确定其信念中的哪一些为真的。在一个实施方式中,系统用于作出该确定的机制是为每个信念分配置信值,其中,置信值表示计算系统102确定信念为真的程度。基于系统102实现其目标的程度,系统102来迭代地调整置信度值,使得每次迭代优于上一次。最终,这个过程为这些信念找到了一组置信度,这些信念使得系统在当前一组信念的目标上的性能最大化。该方法导致计算系统102可以部署两种策略,以改进其在其目标上的性能并决定何时停止改进。

首先,系统可以独立于其目标检查其信念。也就是说,系统可以从信念到信念来寻求来自对话引擎142或知识推导引擎140的信息,以校正其信念为真的置信度。计算系统102可以在其已经用尽其一组信念时,或者当其发现源自新信息的置信度变化已经下降到统计显著性水平以下时,停止寻求更多信息。

第二,计算系统102可以将其实现目标的能力判断为胜任还是不胜任,然后对该结果采取行动。例如,如果系统的问题回答正确性准确度为60%并且系统的目标是实现70%的准确度,则系统102将从对话引擎142或知识推导引擎140寻求信息,以提高其信念的置信度,直到实现这一目标。一旦实现该目标,计算系统102就可以停止改进。可替选地,如果需要,计算系统102可以继续进一步迭代,直到其准确度的变化已经降至统计显著性水平以下。该后一种方法优于前者的优点在于,它还允许相对于即将到来的目标评估向系统添加新信念的效用。也就是说,如果新的信念改善了系统在目标上的性能,那么新信念的效用就是高的。如果信念没有或有负面影响,那么新信念的效用就是低的。

一旦知识整合引擎136确信故事模型132表示对故事106的可能理解,则可以存储故事模型132,并将其编入索引以供将来检索和使用。获得用于产生故事模型132的知识也在当前世界模型138中被捕获。以这种方式,可以保留针对每个故事开发的理解以供用于将来考虑,甚至可能在学习更多信息时用于更多的精细化。而且,当系统在多个故事上经历多个用户交互时,当前世界模型138在每个交互中递增地变得丰富。随着阅读的故事越来越多,当前世界模型138增长有更多的推断框架,并且能够协助理解越来越复杂的主题。下面至少参考图4、16和22,提供对话引擎142的更详细讨论。

在所示实施方式中,学习和理解模块130还包括信念表示和推理构架144,其提供用于处理知识模型的设施,作为实现故事模型132和当前世界模型138的一种方式。知识模型是知识的正式的、结构化的表示,其可以用由“实体”和“提议”组成的知识表现语言(krl)来表达。实体代表了世界上的事物,包括虚构的事物(例如:“飞马座”)或抽象的事物(例如“哲学”)。提议(proposition)是一种可真可假的陈述。提议具有谓词(其是一种实体)和一组论元,其中,每个论元都有标签(称为角色)、和可以为实体或提议的值。相同的角色可以有多个值。信念是代理人(通常是,但不一定是,系统本身)认为有一定可能性为真的提议。

构架144包括系统中的各种模块使用的功能组件。该构架使用知识表现语言,并为“上下文”区分和生成语义基元提供推理和学习机制,这些是一小组结构,其可以被组成为用于表示自然语言文本的含义。更具体地,构架144的组件可以包括:(1)用于表示实体和提议的形式语言,(2)用于提供期望经常使用的一组定义提议类型的公共语义组件,(3)知识储存库,其提供知识模型的持久存储并支持对该知识的查询,以及(4)一个或多个推理引擎,其提供对于知识模型的不同推理能力。以下至少参考图4和15提供对信念表示和推理构架144的更详细讨论。

图1提供了学习和理解计算系统102中的选择模块130的概述。下面开始参考图4提供更详细的解释和示例。然而,在提供更详细的解释之前,将参考图2和3描述由参与学生110(1)-(l)和协作者114(1)-(c)的体系结构100实现的高级过程。

而且,图1示出了与人用英语进行的示例性对话。然而,应注意,本文描述的体系结构100是语言不可知的,并且可以被配置为以任何语言与人交互。

说明性的一般操作

图2a和2b示出了由图1的体系结构100实现的一般过程200,用于通过人际互动来学习和发展对文本(例如,故事)中使用的语言的理解。过程200(以及参考流程图描述的所有后续过程)被示为逻辑流程图中的块的集合,其表示表示一系列操作,这些操作可以以硬件、软件或其组合实现(例如,例如由服务器104(1)-(s)提供的那些)。在软件的背景下,块表示计算机可执行指令,当其由一个或多个处理器执行时,执行所述和引用的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。当由处理器执行时,计算系统被转换成专门配置成学习和理解故事中呈现的文本语言的机器。描述操作的顺序不旨在被解释为限制性的,并且可以以任何顺序和/或并行地组合任何数量的所描述的块,以实现该过程,或者进一步分成更多增量步骤的更多块。

出于讨论的目的,参考图1的体系结构100、计算系统102和用户装置114和118来描述过程200。而且,过程200以两列示出,以大致描绘由计算系统102执行的、与用户装置114和118执行的操作分开的操作。

参考图2a,在202,在学习和理解计算系统102处接收故事。故事由多个文本句子形成,例如短的“ben和ava”故事106(1),和短的“enzo和zoe”故事106(t)。故事由系统102摄取或转换为数字格式。在204,用户装置114/118接收相同的故事,并在206,故事被呈现给用户以供他或她阅读故事。可以将故事显示和/或转换为音频输出以供用户使用。这个故事可能伴随着一些阅读理解问题。

在208,计算系统102生成第一或初始故事模型,以表示对故事的第一理解。在210,生成第一故事模型涉及语法分析(称为故事解析),为每个句子产生语言分析结果(例如,语法解析、谓词论元结构、实体类型分配、相互参照)。参考图1,故事解析引擎134被配置为执行该解析操作。解析操作产生一组语言分析结果,包括语法解析,以用于提供句子结构、谓词论元结构(pas)、实体类型分配、和相互参照链。下面参考图4-8更详细地描述解析操作及其示例。

一旦产生了语言分析结果,在212,计算系统102通过语义处理解析的句子的语法表示,将语义结构推断为每个解析的句子的表示。知识整合引擎136和知识推导引擎140执行任务,以支持推断语义结构的该动作212。得到的第一故事模型表示为实体和提议的知识数据结构,例如通过一组相关的实例化生成语义基元和框架结构。

在214,系统相对于当前世界模型评估故事模型。系统可以识别故事模型不包含与当前世界模型中的已知框架很好地匹配的高置信度语义表现的区域。该系统还可以识别故事模型中的缺陷,其中,存在无法自信地回答的阅读理解问题。在216,计算系统102生成一个或多个用户问题,以探测用户对故事的理解,和/或改进、测试或质疑系统对故事的理解。用户问题包括基于不同的生成语义基元集提供其他可能的理解的查询,以质疑初始实例化的生成语义基元是否传达了故事的准确含义。对话引擎142可用于生成用户问题。

在218,将用户问题从计算机系统102发送到用户计算装置114/118以呈现给人类用户。在220,接收问题并将其呈现给用户,例如经由图1中的ui126,或是听觉输出供用户听到。在222,用户装置捕获用户响应,用户响应可能已经经由ui输入或被说出。由于用户已经阅读了在206处呈现的故事,因此用户具有回答问题的故事背景。用户依靠他或她的知识、背景和经验来回答问题,从而潜在地提供可以添加到当前世界模型的新信息。计算系统先前可能没有此信息,或者可能未完全理解它所具有的信息。在224,用户装置将用户响应发送回计算系统102。

在226,在计算系统102处接收用户对问题的响应。计算装置102和用户装置114/118之间的交互可以涉及发送多个问题并接收多个响应,以从人类用户充分地提取知识。

参考图2b,在228,生成新故事模型以表示对故事的新理解。作为该操作的一部分,在230,使用用户响应来更新当前世界模型,并且在232,修改原始故事模型132以与更新的当前世界模型138对准一致。新故事模型将其新的理解表达为实体和提议的知识数据结构,其由一组新的实例化生成语义基元和框架结构表示。该组新的实例化生成语义基元和框架结构与第一组实例化生成语义基元和框架结构不同,尽管可能仅略微不同。

在234,在形成新故事模型132之后,针对更新的当前世界模型评估该故事模型。计算置信度分数,以确定故事模型与当前世界模型的一致程度。当少数框架与从故事中提取的大量信念相匹配时,给出更高的分数。而且,如果新预测的信念与系统关于故事的其他信念相矛盾,则一组框架对准一致性得分很低。在236,将置信度得分与阈值进行比较。如果已经达到终止条件,例如当置信度分数满足预先构建的阈值(即,来自236的“是”分支)时,在238,输出故事模型132作为对故事的准确理解。相反,如果未达到终止条件,例如当置信度分数未满足预先构建的阈值(即,来自236的“否”分支)时,过程200返回以生成一组新的用户问题,以在216,进一步测试对新故事模型的理解(图2a)。

在图2a和2b的示例中,体系结构100被描述为使人群参与,以协助系统学习并获得对故事中所表达的自然语言的更深入的理解。计算系统100使用户参与在专门学习环境中或在更正式的协作环境中,在该环境中,向协作者提出问题以增长系统的知识。然而,体系结构100可以用在教育环境中以向人类教示在基于文本的作品中描述的某些主题,同时继续改进系统自己的知识库。参考图3描述一个这样的示例。

图3示出了用于通过参与围绕感兴趣的主题的交互式对话来教示人们关于该主题的示例性过程300。在302,人使用他或她的装置114/118开始与计算系统102的对话会话。用户可以以任意多种方式发起对话会话,包括通过提问,关于感兴趣的话题作出陈述,或参考文本或文章来讨论。在304,计算系统识别对话会话的隐含请求,并生成转换响应,该转换响应被设计用于使用户参与特定主题,并且可能从用户提取更多信息。转换响应可能是许多可能的预先构建和预先存储的转换陈述中的一者(例如,“我可以帮你什么?”;“你能告诉我更多关于你想知道什么吗?”;“当你说“飞机”时,您对哪种类型的飞机感兴趣?”等等)。在一些实施方式中,系统可以使用与图2a和2b相同的过程,与用户对话以发现要讨论的话题。该系统可以具有设计用于协助人们开始学习主题的框架,并且系统尝试推断关于该框架的信息。如果无法推断变量,那么系统会向人类询问关于其的事情,并且以上面的一般转换问题开头。

在306和308,计算系统和用户经由他或她的用户装置参与对话会话,以定义话题。在310,计算系统识别与该话题有关的一个或多个文本。文本可以以任何数量的形式体现,例如文章、白皮书、产品说明书、教育性读本、书籍摘录等。一旦被识别,在312,计算系统从文本构建关于话题的知识模型。如上所述,这可以涉及在314处解析文本,并且在316处推断表示文本的语义结构。

在这一点上,计算系统102准备好与用户讨论该话题。系统可以生成有关该话题其已读取的所有相关信息的摘要。在320,用户可以经由装置114/118询问关于该主题的问题。在322,计算系统102接收问题并基于新创建的话题模型和当前世界模型来构想出计算机生成的响应。这些响应可以提供的基本信息是,系统对当前世界模型的准确性具有高置信度。可替选地或另外地,响应可以是意图协调所讨论的主题的知识模型与当前世界模型之间的差异的问题的形式。响应被发送到用户装置并在324处呈现给用户,以供用户从这些响应中学习。通过该交互式交换,计算系统102通过使得基于文本和当前世界模型创建的知识模型对准一致,来针对话题教导用户,进一步学习并获得对描述话题的文本的更深理解。

在326,过程300继续,直到用户指示他或她已充分学习该话题(即,来自326的“是”分支)。如果他或她没有完成(即,来自326的“否”分支),则用户可以在320处针对该话题来进一步提问,或者换新话题,并在302处重新开始该过程。如果用户已完成(即,来自326的“是”分支),可以完成过程300。

说明性的系统设计

图4示出了实现图1的学习和理解体系结构的所选模块130。模块130被示出由学习和理解计算系统102托管。模块130包括图1中介绍的模块以及其他数据库。图4还示出了各种模块之间的数据流,以展示通过体系结构的过程工作流程,因为计算机生成的故事模型通过联合推理和与人类的对话以理解故事中的语言而形成。

如图4所示,自然语言输入(诸如文本)由学习和理解计算系统102摄取,并且还被提供给与人类学生/协作者相关联的用户装置114/118。该文本可以基本上是以自然语言书写或说出的任何数字形式的单词、短语或句子,并且在图4中示出为故事106。该文本可以呈现在用户的显示屏上,用于阅读或可听地播放以供用户收听。

执行故事解析引擎134,以分析主题文本并产生一组语言分析结果。在语言分析结果中有语法解析,它提供与句子结构有关的信息。语法解析类似于学生在文法学校学习的句子图表(sentencediagramming),其中,动词、名词等在结构上相关。故事解析引擎134还利用谓词的解析器中立表示及其实例化论元,来确定谓词论元结构(pas),所述谓词及其实例化论元用作其他分析组件在其上操作的基元信念。例如,按照句子的语法解析,“ben将食物带给ava”,pas认识到“ben”是主语论元,“食物”是宾语论元,“带给(brought)”或词根形式“带给(bring)”是谓词(或者,在这种情况下是动词谓词)。故事解析引擎134进一步将实体类型分配给句子中的各种单词/短语,并且导出单词/短语的相互参照链,尽管它们不相同,但是指的是同一事物。

为了说明故事解析引擎134的操作,考虑以下示例文本:

热的液体状岩石在地下。火山是地面上的开口,液体可以从这里出来。有时,火山喷发。这意味着火山爆发了。烟雾和热的液体状岩石从火山出来。这种液体叫做熔岩。维苏威火山是意大利著名的火山。

对于句子“烟雾和热的液体状岩石从火山出来”,故事解析引擎134可以形成具有根谓词“来”的pas,其中,“烟雾”和“热的液体状岩石”作为主语论元。引擎进一步将“烟雾”、“岩石”和“火山”识别为名词,“热的”和“液体状”作为修饰名词“岩石”的形容词,并进一步将“和”识别为主题名词“烟雾”和“岩石”之间的连词。引擎134还用实体类型注释单词,例如将“维苏威火山”注释为山型并且将“意大利”注释为国家类型。故事解析引擎134可以进一步识别到:术语“热的液体状岩石”、“该液体”、“热的液体状岩石”、“液体”和“熔岩”都可以互参为指代相同的事物。

故事解析引擎134将语言分析结果连同故事一起输出到知识整合引擎136。语言分析结果可以包括语法解析和谓词论元结构,它们一起形成语言结构,以及实体类型和故事106的相互参照。故事解析引擎134的一个实施方式的更详细描述在下面参考图7和8提供。

知识整合引擎136将故事和语言分析结果作为输入,以构建故事模型132的初始概率语义表现,其相对于系统的、关于如包含在当前世界模型138中的关于世界的当前知识“有意义”。知识整合引擎136是一组可执行组件,其通过联合推断和人交互随时间推移使得故事模型132进化,以使故事模型132与当前世界模型138对准一致。知识整合引擎136是由信念生成组件402、约束组件404和联合推断引擎406组成的可配置且高度灵活的模块。信念生成组件402输入一组信念,并输出新信念的概率分布,该新信念在给定输入信念的情况下可能为真。如前所述,信念是系统或其他代理人认为对于某种概率是真的提议。约束组件404输入一组信念,并输出指示该组信念为真的概率的分数。联合推断引擎406获取来自信念生成组件402和约束组件404的输出,并计算关于信念的联合分布。这用于计算每个信念的边际概率,其用于构建故事模型。联合推断引擎406可以被配置为基于当时已知的所有信念产生可能信念的条件概率。在一些背景下,信念生成组件402、约束组件404和联合推断引擎406通常可以称为联合推断系统。

联合推断引擎406可以以各种方式操作。在一个实施方式中,联合推断引擎提出多个可能的世界,其中,每个世界具有被认为为真的一组信念。信念生成组件402在这些世界上迭代地运行,观察真实的信念并提出在新信念上的分布。通过从那些概率分布中提取信念来创建新世界。运行约束组件404以评估世界的概率。当过程结束时,信念的边际概率是为真的世界的概率的总和。由于边际概率可能无法捕获信念的概率之间的关系,因此可以将世界存储为故事模型132的一部分。参考图9提供了可能的信念生成组件的更详细的实施方式。

通过联合推断,知识整合引擎136组合解释水平。也就是说,引擎136以各种概念丰富度来解释文本。更高水平的解释更强大,但也更隐含,因此更难以推断。在一个实施方式中,解释水平包括第一级或基本级,其基本上是自然语言文本,可能以一系列单词(或有时一般称为“符号”)表示。第二或下一个解释水平涉及对自然语言文本的语言分析。可以执行该语言分析,以提供语法解析和统计单词相似性(例如,嵌入)。该第二水平的解释由故事解析引擎134提供。

第三水平涉及对生成基元语义的分析,以提供关于文本语言的空间、时间和认知事实的形式的更丰富的含义。生成语义基元(gsp)可以被视为意义的原子构建块,允许对故事中的语言进行更有意义的解释。gsp代表关于世界的基本事实,例如时间、空间、逻辑、数量、变化、原因、关联、信念、感知、表征和意图。gsp可以以无数种方式实例化和组合,以代表机器的所有知识和经验。gsp表示为具有谓词和角色的krl提议。当故事实体和其他gsp提议填补这些krl角色时,gsp就会被实例化。来自故事中的文本中的实体(明确地或暗示存在于语篇语境中)可以在与gsp相对应的krl提议中使角色实例化。而且,gsp可以经由将一个gsp嵌套在另一个gsp的角色中来组成。这种组合性允许系统表达关于自然语言陈述的含义的无限数量的事实。这样,gsp结构提供了通用的方式来解释在ben和ava故事中ben将一些食物带给ava的意义或语义,无论该句子是如何实际写的。例如,这个含义可以用以下类似但不相同的方式表达:“ben将食物带给ava(benbroughtthefoodtoava)”;“ben取食物给ava(bentookthefoodtoava)”;“ben端食物给ava(benservedthefoodtoava)”;“ben拿食物给ava(benhandedavathefood)”;“ava从ben取得食物(avatookthefoodfromben)”;“ava从ben得到食物”(avaacquiredthefoodfromben);“ben给ava带来食物(bengaveavathefood)”;“ava从ben得到食物(avagotthefoodfromben)”;以及“ben给ava带来食物(benbroughtavathefood)”。gsp的任意实例化可以转换为自然语言,允许人类直接与系统的文本表示进行交互,而不会暴露于gsp的内部表示。

第四水平和最高水平涉及框架语义的分析,其提供逻辑或常识知识脚本,从而填充可能隐含在故事中的大部分内容。框架是特定背景中提议(例如gsp)的概率分布。一个简单的示例是一组在背景下可能是真的提议,例如通常在特定地方发生的动作。例如,在ben和ava的故事中,“餐馆”框架可以提供ben和ava在餐馆中的隐含信息,从而提供主题或背景,在该主题或背景下,以更好地理解故事中的明确语言。餐馆框架适用,因为故事中描述的体验与存储在该框架中的体验相匹配。例如,餐馆框架可能包含可能在餐馆背景下发生的以下一系列行动的gsp(在此,它们以自然语言表示形式显示,但在实际框架中它们将表示为gsp):

·顾客进入餐馆

·顾客坐在桌旁

·顾客等待服务员来

·服务员为顾客提供菜单

·顾客挑选他们想要的食物

·服务员将食物带给顾客

·顾客吃食物

·服务员带来账单

·顾客支付账单

·顾客离开餐馆

知识整合引擎136在处理故事时利用这样的框架,例如将餐馆框架应用于理解ben和ava故事。

知识整合引擎136通过获取由故事解析引擎134生成的基本语言分析结果(即,第二水平解释),然后通过使用生成语义基元推断意义(即,第三水平解释)和框架语义(即第四水平解释),来使故事模型132进化。

作为其操作的一部分,知识整合引擎136执行框架推断过程,以推断生成语义基元和更高级别框架。框架推理过程包括四个主要方面:框架检索、框架对准(alignment)、信念预测和评估。在框架检索中,从当前世界模型138识别框架的子集,其可以与系统关于故事的当前信念相关。也可以使用统计或基于规则的技术在现场动态生成框架。框架对准涉及确定将故事中的实体对准框架中的角色(变量)。使用基于统计和/或语义技术的各种匹配算法来完成框架对准。例如,在一个实施方式中,如果提议是文本提议,则计算系统102可以使用统计文本相似性算法(例如,word2vec)来对准/匹配提议。如果提议是包含类型化的实体和关系的基于gsp的提议,则系统可以使用基于本体(例如,wordnet)的语义匹配器来对准/匹配提议。例如,ben对准到服务员,ava对准到顾客。在对准之后,知识整合引擎136断言由框架预测的信念,使得在框架中但在故事中未提及的每个语义基元结构是可能的推断。然后,引擎136产生针对一组框架对准与该故事匹配的程度的分数。当少量的框架匹配从故事中提取的大量信念时,给出更高的分数。而且,如果框架预测的信念与系统关于故事的其他信念相矛盾,则一组框架对准可能可替选地得分很低。

框架推断可以在多个解释级别发生。在句子级别,框架推断可用于推断对应于句子或子句的语言结构的gsp。在这种情况下,每个框架包含语义基元结构和语言分析结果的混合。作为一个示例性配置,对于故事中的每个句子,知识整合引擎136利用来自语言分析结果的信息来实例化一个或多个gsp结构以产生gsp结构实例。在ben和ava的故事中,引擎136可以通过以下来实例化动作gsp结构实例:通过可能地用单词“带”(具体化:故事/带)指代的事件实体填充具体化角色,用单词“ben(代理人:故事/ben)”指代的实体填充代理人角色,用关于ava拥有食物的事实的嵌套的提议填充后状态。这种嵌套的提议可能具有拥有者角色与“ava”(拥有者:故事/ava)一词所指的实体,以及拥有角色与“食物”(拥有:故事/食物)一词所指的实体。

在情节级别,框架推断可以用于确定哪些gsp组可能很好地适合在一起以及可以做出什么新的推断。例如,在ben和ava的故事中,“餐馆框架”非常适合gsp用于故事中提到的动作,例如:“ben为ava带来了菜单”。如果ben对准的是服务员,并且ava对准的是顾客,则可以做出新的推断,例如“ben带来账单”和“ava支付账单”。

如前所述,框架本身是提议,因此,可以由其他更高级别的框架引用。例如,一般可能存在关于进食的框架,包括咀嚼和吞咽的动作,可能使用刀叉等,并且这整个框架可能以某种可能性被包括在餐馆框架中。通常,框架推断过程可以多次迭代,以发现“解释”故事的框架的层级。

在一个实施方式中,在基本级别,可以通过用其实体类型(人、或顾客和服务员)替换特定实体的出现,从特定文本创建一般框架。知识整合引擎136可以访问当前世界模型138中的框架库,并选择表现出与故事中的单词/短语相关的高概率的一个或多个框架。例如,在ben和ava的故事中,诸如“菜单”、“食物”、“餐桌”等词可以映射到gsp结构实例,例如“(服务员)将食物带给(顾客)”和“(顾客)有了食物”。然后,可以对这样的gsp结构实例进行分组,以限定框架中的角色,其中,在这个示例中,这些gsp结构实例可以适合于与接待类型有关的框架,例如餐馆框架、旅馆框架或酒吧框架。这些框架可以组合成聚合的、更一般的接待服务框架。一旦被选择,知识整合引擎136确定故事中的实体对准到框架中的概念角色(例如,ava是顾客,而ben是服务员),其可使得框架中的gsp结构实例与故事模型中的gsp结构实例匹配。通过框架结构的这种构造和实例化,知识整合引擎136使框架对准故事的语言成分。实例化的框架结构提供对故事的新理解,并且可以被返回到当前世界模型138,以增加存储在其中的知识体系。

随着时间的推移,知识整合引擎136也可用于推导新框架。框架推导是一个过程,通过该过程,当系统读取并理解更多文本时,它会创建新框架以添加到当前世界模型中。随着系统读取更多文本并使人们参与对话时,当前世界模型136随着新框架的添加而成长,从而增加其知识、以及帮助理解更复杂主题的能力。在一个实施方式中,在基本级别,可以通过用其实体类型(人、或顾客和服务员)替换特定实体的出现,来从特定文本创建一般框架。下面参考图9-12提供对知识整合引擎136的一种实施方式的更详细描述。

知识整合引擎136可以进一步查询知识推导引擎140,以更多地学习在故事中找到的单词/短语。知识推导引擎140包含可执行组件,其可以离线运行或与其他组件分开运行,以分析大型语言语料库410和其他资源。知识推导引擎140使用各种技术来导出许多推导的知识资源,其捕获文本中暗示或隐含的信息。知识整合引擎136可以随后查询知识库412,以执行以下任务,诸如词义消歧、关系检测、释义生成、文本蕴涵、场景分析和遗漏文本生成之类。

下面参考图13-14提供知识推导引擎140的一个实施方式的更详细描述。

学习和理解模块130还可以包括信念表示和推理构架144,其是由所有各种模块130在整个系统102中使用的一组基础组件。构架144提供知识表现语言并且启用更高层次的功能,如用于上下文区分和语义基元的推断和学习机制。构架144还执行基本操作,其允许系统102随时间存储、索引、检索、导航和操纵概率性的提议(或“信念”)。构架144提供这样的机制,以定义gsp结构和框架,以表示在故事模型132和当前世界模型138中的自然语言。构架144还可以产生表达各种语义关系对于合适解释故事句子的可能性程度的概率。

在一个实施方式中,故事模型132和当前世界模型138被构造为知识模型,其是由实体和提议形成的知识的正式的、结构化的表示。实体是这样一种事物:其可以存在(例如,“狗”、“猫”、“卡车”等)或实际上可能不存在(例如,“飞马座”、“夏洛克·福尔摩斯”)。实体也可以是抽象概念(例如,“动物”、“哲学”、“动作”等)。实体可以具有名称,并由关于其已知的所有信息限定。提议是可以具有真值的陈述。每个提议都有谓词和一组论元,其可以是实体或提议。故事模型132是知识模型,其旨在表示由系统读取的特定文本(故事)中陈述的内容。当前世界模型138是这样的知识模型,其旨在表示关于世界上什么为真的一般知识。

在知识模型的该实施方式中,构架144是用于与知识模型一起工作的工具。构架144包括:用于表示实体和提议的形式语言,预期经常使用的一组定义的提议类型,可以被查询以访问知识的知识模型的永久存储库,以及提供对知识模型的不同推理能力的一组组件。

下面参考图15提供对构架144的一个实施方式的更详细描述。

学习和理解模块130还可以包括对话引擎142,以促进与人类用户的问答对话会话,以测试或验证系统对故事模型中表示的故事的理解。对话引擎142将故事模型132和当前世界模型138作为输入,将它们用作为用户生成问题和/或回答用户的问题的基础,并且在整合通过用户交互获得的知识之后,输出更新的故事模型和更新的当前世界模型。对话过程还利用诸如知识整合引擎136和知识推导引擎140之类的其他系统组件,来协助解释用户问题/响应,并构想出系统问题/响应。例如,在ben和ava的故事中,系统可能无法首先辨别食物是指意大利面条,而是留下语义结构的一部分未填充。对话引擎142可以生成一个或多个问题,以询问用户食物是否可能是意大利面条。

在其他情况下,系统可能不相信其当前的假设。例如,假设知识推导引擎140预测在故事中使用的单词“带”的两个意义大致产生相同的正确概率。知识整合引擎136可以选择一种含义。因为系统对该选择不完全有信心,所以对话引擎142可以询问关于特定句子或故事中该词义选择的准确性的问题。

对话引擎142可以使若干单个的用户参与在线性对话会话中,或者将问题并行地分配给更大的用户组。例如,在这种分布式方法中,对话引擎可以在逻辑上将问题分成不同的组,并向不同的用户询问不同组的问题。分布式对话会话允许计算机系统在一群用户之间扩展,并通过与多个用户的并行交互来减少学习过程的延迟。

可以以任意多种方式和样式将问题呈现给一个或多个用户。用户考虑问题并提供响应。对话引擎142使用这些响应来决定向用户询问什么后续问题。另外,对话引擎142处理响应,以更新当前世界模型和故事模型中的语义结构和框架,从而改善系统对故事的理解。

可以重复该对话会话,直到满足终止条件,例如当知识整合引擎136在与当前世界模型中的已知框架很好地配合的故事的语义表现中实现足够的置信水平时。在一个实施方式中,对话引擎142可以被分配任务,以向用户表达理解,以用于针对准确性的最终验证。一旦达到终止条件,就可以存储故事模型132并将其编入索引以供将来使用,并且保留更新的当前世界模型138以用于处理其他故事。

图5更详细地示出了体系结构100的一个示例性实施方式,其中,学习和理解系统102在服务器104(1)-(s)上实现,并且用户装置被实现为电子设备114/118。服务器104(1)-(s)共同提供处理能力502和存储器504。存储器504可以包括易失性和非易失性存储器,以任何类型或技术实现的可移动和不可移动介质以用于存储信息,例如计算机可读指令、数据结构、程序模块或其他数据。这种存储器包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd-rom、数字通用盘(dvd)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁性存储装置、raid存储系统、或可用于存储所需信息并且可由计算装置访问的任何其他介质。

系统数据存储库506存储在存储器504中,其定义了用于维护数据结构、数据集、诸如故事的文本字符串、语言语料库等的多个数据库。在该示例中,数据存储库506包括故事模型132、当前世界模型138、语义基元408的数据库、大型语言语料库410、推导知识资源库412以及其他可能的数据存储库508。

学习和理解模块130被示为实现为存储在存储器504中并且可由处理器502执行的软件模块。学习和理解模块130包括故事解析引擎134、知识整合引擎136、知识推导引擎140、对话引擎142、和信念表示和推理构架144。可以单独调用和执行每个模块,以处理从系统数据存储库506之一中提取的数据或者产生存储回系统数据存储库506之一中的输出数据。

服务器104(1)-(s)与一个或多个协作者装置114(1)-(c)和/或一个或多个学生装置118(1)-(d)通信,如图5中的装置114/118所表示。装置114/118具有处理器510和存储器512(例如,易失性、非易失性等)。操作系统514、读取器用户界面(ui)516、和语音/文本转换器518被存储在存储器512中并由处理器510执行。电子装置114/118包括用于描绘读取器ui516的显示器520,因此,人类用户可以在对话会话期间阅读故事并与计算系统102交互,在对话会话中,用户向计算系统102询问问题,并且计算系统向用户询问问题。

装置114/118可以支持其他交互模式,包括通过在语音/文本转换器518中将文本转换为语音并通过扬声器522输出音频来以可听方式呈现故事。然后,用户可以收听故事,而不是阅读故事。用户还可以通过用言语说出问题,以及通过口述响应来用言语说出答案,所述响应由麦克风524捕获并由语音/文本转换器518转换为文本字符串。在讨论屏幕、键盘、扬声器/麦克风时,该装置可以基本上包括任何其他i/o装置,以便于人与计算机系统之间的交互。

图6示出了由体系结构100实现的示例性过程600,更具体地,示出了图4和5的学习和理解模块130,用以摄取基于文本的故事,推断对这些故事的理解,并让人们参与对话以测试对故事的理解。在602,计算系统接收故事(或文本字符串)。在604,同样的故事也与用户共享并呈现在用户装置上。为了讨论,假设计算系统和用户都读取的故事是ben和ava的故事106(1)。

在606,解析故事以产生故事的语法表示。可以对句子、句子内的子句或其他多词文本字符串执行语法解析。在体系结构100中,故事解析引擎134执行语法解析并输出语言分析结果,该语言分析结果包括保持句子的单词的语言结构,其被标记或注释有用于描述单词的语法标签和用于定义单词之间关系之间的谓词论元结构。语言分析结果可以进一步包括分配给句子中的单词的实体类型和相互参照链。在我们的故事的示例中,语法解析可以生成语言结构,该结构将“带(brought)”这个词标识为具有“带(bring)”的词根形式,这是句子中的动词谓词。“ben”这个词被确定为主语论元,“食物(food)”这个词是宾语论元。而且,“ben”被类型化为人,“食物”被类型化为营养品(例如)。最后,可以将“食物”和“意大利面条”这些词语评估为属于共同的相互参照链。

在608,推断出包含它们的语义结构和框架以表示对故事的可能解释。在一个实施方式中,知识整合引擎136根据预先构建的背景知识、通过语义处理从语法解析中接收的语言分析结果,来推断语义结构。例如,背景知识可以部分地体现为存储在数据库408中的生成语义基元的预先形成的未实例化结构,其为在解析的句子中找到的单词/短语提供公共关联或关系。未实例化的gsp结构从数据库中选择,并使用来自语法解析的句子中的元素进行实例化。知识整合引擎136可以进一步选择和实例化框架,其中每个框架由多个实例化的gsp结构实例组成,以提供甚至更高级别的解释,从而可能实现更深入的理解。

继续ben和ava故事的示例,可以选择与动作对应的未实例化的gsp结构,并使用来自语法解析的句子的信息来实例化。例如,gsp结构的具体化角色可以填充有由单词“带”(具体化:故事/带)指代的事件实体,使得代理人角色填充有单词“ben”(代理人:故事/ben)指代的实体,以及使得后状态填充有关于ava拥有食物这一事实的嵌套提议。这个嵌套提议本身就是与拥有概念相对应的gsp,并且可能具有拥有者角色与“ava”(拥有者:故事/ava)一词所指代的实体,以及拥有角色与“食物”(拥有:故事/食物)一词所指代的实体。gsp结构的一般性是由于它们的复合性,其部分依赖于系统将一个gsp结构嵌套在另一个gsp结构中的能力。从这个示例中可以明显看出,通过添加谁给谁带来什么,以及在这个动作之后的状态是什么样的可能关系,对句子的当前语言解释被提升到更深层次的理解。这种额外的语义信息提供了更丰富的理解。

当为故事的句子实例化其他gsp结构时,执行框架推断过程,其中,检索相关框架并与故事对准。例如,在ben和ava的故事中,可以检索出餐馆框架,并且ben可以被对准到服务员,ava对准到顾客。然后,从框架中断言新的信念,例如ben带来了账单,ava支付了账单。评估该组框架对准,使得当少量框架匹配从故事中提取的大量信念时给出更高的分数。而且,如果框架预测的信念与系统关于故事的其他信念相矛盾,则可替选地,一组框架对准可能得分很低。

在610,作为推断操作的一部分,可以产生关于句子中的单词/短语的其他语义信息,以提供一种或多种可能的方式来解释单词/短语。例如,在一种方法中,知识整合引擎136可以查询知识推导引擎140以提供这样的语义信息,诸如词义、释义、关系、场景分析等。生成的结果可以与相关联的概率一起返回,使得知识整合引擎136可以选择更可能的候选者来做出更准确的推断,并且对话引擎142可以消除使用低概率候选者,以避免询问看似错误或无知的问题。

在ben和ava的故事中,知识推导引擎140可以对单词“带来(brought)”或其词根形式“带来(bring)”执行词义消歧。通过消除歧义,可以发现“带来”这个词的几种可能的含义,例如:(1)随身带着某人或者某物在某地;(2)引起进入特定的状态或条件;或(3)合法地提出或呈现。其他分析可以提供其他资源,例如“提供膳食服务”这一短语可能是“带来食物”的意思。知识推导引擎140可以进一步提供与这些结果相关联的概率,以协助选择适当的一个。例如,当出现在语料库中时,“带来”一词可能更可能与第一种意义相关联(即,随身带着某人或者某物在某地),而不是第三种意义(即,合法地提出或呈现)。

在612,针对从当前世界模型检索的框架来评估故事,以发现故事模型不包含与当前世界模型中的已知框架很好地匹配的高置信度语义表现的区域,或识别应由人类用户验证的低概率的推断。以这种方式,可以确定故事中当前已知的内容与实例化框架中表示的内容之间可能存在的差距,从而揭示应该或可以添加到gsp结构或框架的信息。例如,对于ben和ava的故事,对准操作可能会发现“带来”(对于故事中的“带来”动词)的多种意义具有足够的可能性分数,这会引起关于对选择哪一个的怀疑。在这些情况下,与人类协商可以协助消除怀疑。

在614,可以构想出一个或多个问题,以解决差距或挑战推断。当询问用户时,问题旨在评估当前语义结构和框架表示故事的满意程度,特别是在计算机系统对其当前理解不太确信的情况下。该操作可以例如由对话引擎142与知识整合引擎136协同工作来执行。例如,在ben和ava的故事中,假设知识整合引擎136最初确定句子“ben将食物带给ava”涉及包含动词“带来”的动作语义结构。可能构想出的一个问题是询问人:动词“带”是否应该被视为动作,因此与动作语义结构相关联。这个问题可能是精心设计的,例如,“我认为“带来”指代动作,在带来动作发生后,某些事情会有所不同。对吗?”在其他情况下,词义可能缺乏清晰度。例如,知识推导引擎140在被询问时可以向知识整合引擎136告知单词“带”具有多种含义,如上所述。因此,对话引擎142可以构想出试图解决该问题的问题。可以像图1中的ui126中所示的那样,精心制作出一个合适的问题,如下:

这是我试图理解的一句话:

ben将食物带给ava。

下面的哪个选项使用了最类似于上面的句子中的单词“带”?

1.将某事物或者某人随身带到某个地方。

2.导致进入特定状态或状况。

3.合法地呈现或提出。

在616,与用户打开对话会话。在会话期间,在618,将结构化问题从计算系统102提交给用户装置114/118。在620,呈现问题供人类用户使用(例如,视觉上和听觉上)。在622,用户检查问题并提供他或她的输入,其被捕获并返回到计算系统102。例如,用户可以查看上面的问题,并且决定选项1(即,将某事物或者某人随身带到某个地方)是正确的回应。在624,计算系统从用户装置接收和处理用户响应。

在626,基于从人类用户接收的响应来修改语义结构和/或框架中的一个或多个,以开发对故事的不同解释。然后,可以将故事模型与修改的语义结构和框架重新对准(动作612),并且为另一个对话会话生成新的问题(动作614)(动作616)。

可以继续过程600,直到为对准的故事模型计算足够的置信水平。在一个实施方式中,针对实例化语义结构计算置信度分数,其提供故事中每个词/短语的语义表现。由于每个都通过与用户进行对话而在各种语义结构内进行测试,因此置信度得分会趋于提高。此时,作为对故事的准确理解,可以输出故事模型132。其包含故事的完整语义表现,系统可以将故事编入索引,以供将来调用或用于理解其他文本。

说明性的故事解析引擎

图7示出了故事解析引擎134的一种实施方式,其示出了可用于处理文本字符串(例如故事)的选择组件。故事解析引擎134被配置为提出多个可能的语言分析结果,并将那些结果传递到知识整合引擎,该知识整合引擎使用联合推断来计算结果上的联合分布。故事解析引擎134摄取故事106并将故事106的数字表示传递给语言分析器702,以进行自然语言处理(nlp)。语言分析器702接收故事106,并将故事分成易吸收的片段,例如单词、短语、句子或其他可定义的文本字符串。语言分析器702具有一组nlp组件,其对文本字符串执行各种语言分析。语法解析器704在句子中识别单词的词性部分和它们之间的语法关系。在一个实施方式中,语法解析器704部分地通过使用斯坦福核心nlp包(stanfordcorenlppackage)进行语法解析来实现。

在一些实施方式中,故事引擎134可以使用单个解析器或者多个解析器,单个解析器输出句子的多个可能的解析,多个解析器706提供解析分集。解析选择器708可以用于根据期望的应用选择或合并解析结果,目的是最终提高给定应用的解析准确度。在其他实施方式中,可能没有解析选择器,而是多个解析结果将被传递到知识整合引擎136,其将确定与语义和框架结构的置信度联合的每个解析结果的置信度,如下将做更详细的描述。

故事解析引擎134的语言分析器702还包括谓词论元结构(pas)模块710,其产生谓词的解析器中立表示及其实例化论元,其用作其他分析组件在其上操作的基元信念。pas模块710将语法关系的解析器特定表示转换为谓词和论元的公共表示,使得由不同解析器产生的语法信息可以在系统中互操作。在变换过程中,pas模块710还执行某些标准化过程,例如将被动语义改变为主动语义,并通过去除对句子处理不重要的某些语法关系来简化表示。例如,在故事106中的句子“ben将食物带给ava”的语法解析之后,pas模块710识别出“带来(brought)”或其词根形式“带(bring)”是主谓词(在这种情况下是动词的谓词),“ben”是主语论元,“食物”是宾语论元。pas模块710用适当的标签标记或以其他方式标记这些单词。在一个特定实施方式中,pas模块710被配置在语法解析器704之上;在其他实施方式中,语法解析器704和pas模块710可以实现为公共可执行模块。

如图7所示,语言分析器702输出一组语言分析结果712,其将作为输入从故事引擎传递到知识整合引擎136。语言分析结果712的一部分是由语法分析器702的语法解析器704和pas模块710产生的语言结构714。语言结构714体现为包含句子的单词、单词的语法标签和单词之间的pas关系的数据结构。数据结构714在图7中示出,其使用树状可视化,其中,关键词表示为节点,并且它们的关系由互连分支表示。继续例句“ben将食物带给ava”,单词“带(bring)”(即“带来(brought)”的词元形式)显示为节点716,并被识别为动词谓词。单词“ben”表示为节点718,并标记为相对于动词谓词“bring”的主语论元。单词“食物”表示为节点720,并标记为相对于动词谓词“bring”的宾语论元。单词“ava”由节点722表示,其与动词谓词“bring”的关系表示ava是带谓词的目标。

语言分析器702还包括实体分配模块724,其用于将实体类型分配给句子中的各种单词。类型是来自一个或多个适用本体的预定类别。基本上,可以定义任何语义类型,但是常见类型可以包括人、国家、位置、家具、运动等。在我们的示例中,实体分配模块724将“人”类型分配给单词“ben”和将“营养品”类型分配给“食物”一词,如实体类型数据结构726中所示。在一个实施方式中,可以使用斯坦福核心nlp包中的命名实体识别器来实现实体分配模块724,其用于自动注释实体类型。另一种实施方式可以涉及使用词义消歧组件,其将基于wordnet层级的类型分配给句子中的词。

语言分析器702还具有相互参照模块728,其识别句子中的单词/短语的相互参照。相互参照是词语/短语,尽管不一定是词法上相同的,但是指的是相同的现实世界实体。在该示例中,假设故事106具有其他句子,包括词语“食物”、“膳食”和“意大利面条”。相互参照模块728可以将这些词/短语识别为意指同一事物,并产生以某种方式将这些词/短语相关联的数据结构730。相互参照模块728可以识别实体相互参照以及事件相互参照。语言分析结果712被传递到知识整合引擎136,其将参考图9更详细地描述。

在另一实施方式中,当语言分析结果712被整合到故事模型中时,联合推断引擎406可以进一步利用语言分析结果的下游来重新计算上游结果的可能性,因为它们适用于自然语言处理(nlp)分析。故事解析引擎134在评估替代解析中考虑更高级别的语义信息和世界知识,该替代解析是从在整个故事中推断的框架级知识导出的。也就是说,故事解析引擎134可以利用较高级别的下游知识来重新计算替代解析的可能性。而且,随着系统在当前世界模型138中累积更多知识,这种动态重新计算可能性的能力随着时间的推移而增强。

图8示出了由故事解析引擎134执行以在语句构成上处理传入的故事的示例性过程800。参考图1、4、5和7的系统体系结构100和故事解析引擎134来描述过程800。在802,接收文本字符串。文本字符串可以是故事的一部分并且代表故事中的一个或多个自然语言句子。在804,在语言上分析文本字符串。在一种方法中,这涉及由动作804(1)-(4)表示的多个子操作。

在804(1),从语法上分析文本字符串,以开发句子中的单词的语法表示。参考图7,语言分析器702调用一个或多个语法解析器704来解析文本字符串,从而产生语言结构714,其提供单词之间的语法关系。在804(2),执行谓词论元结构(pas)分析,以将解析表示变换为解析器中立的pas表示。作为一种方法,谓词论元结构模块710标记或以其他方式将句子内的某些单词标记为谓词和一个或多个论元。这些指定被存储并反映在语言结构714的数据层次中。

在804(3),将来自适当本体的实体类型分配给文本字符串中的单词。实体类型是预定义的(例如,人、地点、事物等)。实体分配模块724基于上下文和本体信息,识别文本字符串中的每个单词的可能实体类型,并用实体类型标记该单词。实体分配在数据结构726中维护,数据结构726形成语言分析结果的一部分。

在804(4),还确定文本字符串中的任何相互参照链。尽管每个句子或逻辑文本片段可以具有相关联的语言结构,但是通过检查整个故事以找到涉及共同真实世界实体的单词/短语来形成相互参照链。该动作804(4)可以例如由相互参照模块728来执行:通过检查整个文本字符串中的单词和短语,并基于语义和上下文信息识别形成相互参照链的单词。任何发现的相互参照都存储在数据结构730中。

在804(1)-(4)处的语言分析一起产生一组语言分析结果712,包括语言结构714、实体类型结构726和相互参照结构730。还要注意,在一些实施方式中,语言分析器702可以为同一句子产生多个语言分析结果。例如,假设分析器702正在处理句子,“猫抓住了老鼠,因为它很聪明”。当出于语法原因或相互参照链,试图表征术语“它”时,可能存在一个以上的答案,因为“它”可能指代“猫”或“老鼠”。在这个阶段,由于还没有额外的语义知识,故事解析引擎可以输出将由知识整合引擎在下游解决的两种可能性。

在806,可以将语言分析结果712输入到知识整合引擎136。语言分析结果712可以递增地输出为完整的或分批发送以描述整个故事106。语言分析结果随后针对语义分析,以产生包括一组生成语义基元的初始故事模型。

说明性的知识整合引擎

图9示出了知识整合引擎136的示例性实施方式,示出了可以用于语义处理故事106的语言分析结果712的选择组件。语言分析结果712由故事解析引擎134从摄取的故事创建,并且传递到知识整合引擎136(连同故事106),以初始构建表示故事的故事模型132。知识整合引擎136将故事模型132构建为故事的概率语义表示,其理解关于在当前世界模型138中捕获的系统的当前知识。

知识整合引擎136是一组高度可配置且灵活的可执行组件,其通过联合推理和人类交互随时间推移而使故事模型132进化,以通过将故事模型132对准当前世界模型138来开发故事的含义。知识整合引擎136推断相关的语义结构,其吸收故事中句子的语言分析结果712并开始为那些句子赋予意义。通过联合推理,知识整合引擎136组合多个级别的解释,从而在概念丰富度的各个级别解释文本。如上所述,更高层次的解释更丰富,但也更隐含,因此更难以发现。第一级解释是识别故事中发现的明确的自然语言文本。第二级解释涉及由故事解析引擎134执行的语言分析。下面两个级别的解释,即用于提供生成语义基元(即,级别3)和框架语义(即,级别4)的语义分析,由知识整合引擎136执行(在知识推导引擎140、对话引擎142、和构架144的协助下)以发现故事中隐含的含义。

在图9中,知识整合引擎136具有可以以各种方式操作的联合推断引擎406。在一个实施方式中,联合推断引擎406提出多个可能的“世界”,其中,每个世界具有被认为为真的一组信念。信念生成组件402在世界上迭代地运行,观察真实的信念,并提出对新信念的分布。通过从这些概率分布中提取信念来创建新世界。运行约束组件404,以评估世界的概率。当过程结束时,信念的边际概率是其中为真的世界的概率总和。由于边际概率不捕获信念概率之间的关系,因此系统还可以将世界自身存储为故事模型132的一部分。而且,这可以替代地例如通过以下技术来完成,例如马尔可夫链或蒙特卡罗采样等。

在一个非限制性方法中,信念生成组件402包括语言分析器904,其产生表达语言分析结果712内的每个句子或短语的语言结构的信念的概率分布,例如谓词论元结构(pas)、词义、实体类型和相互参照。例如,语言分析器904可以接收包含以下信念的世界:文本“bat飞向他”为真的,并输出包含以下信念的概率分布:bat为动物蝙蝠的概率为80%,为棒球棒(baseballbat)的概率为20%。

信念生成组件402还可以包括语言到gsp映射器906,其基于诸如pas和词义的信息,在实例化的gsp上产生表示文本的可能语义解释的概率分布。语言到gsp映射器906可以使用上面讨论的框架推断过程,利用来自当前世界模型138的框架,每个框架包含语言分析结果提议和gsp提议的混合。继续前面的示例,语言到gsp映射器906可以接收其中bat是动物蝙蝠并且是动词“飞”的主语的世界,并且在gsp中产生具有99%概率的概率分布,其中,bat是飞行动作的代理人,其不是的概率有1%(也就是说,它是通过其他方式被推向他的,就像在棒球棒的情况下一样)。如图9所示,当前世界模型138最初在其未实例化状态中维护gsp和框架语义结构的库,包括未实例化gsp结构910(1)-(g)的gsp库908和通用框架结构914(1)-(f)的框架库912。

gsp库908中的gsp结构910(1)-(g)可以被预定义为捕获各种事实、情况或环境的含义。例如,一个gsp结构可以表达动作,结构包括定义动作的角色(例如,具体化(reifier),代理人),动作之前发生的事情、动作之后发生的事情(即具体化、代理人、之前、之后的元素)。其他gsp结构可以表达经验(在代理人的角色,经验关系(例如,看、听等)和刺激等方面)、空间位置(关于位置关系、实体1、实体2的角色)、时间位置(关于时间关系、事件1、事件2的角色)和拥有(关于所有者、拥有的角色)。

gsp结构910(1)-(g)以对应于基本类型事实的未实例化概念开始。例如,存在用于空间位置的gsp结构,其在实例化时提供关于空间位置的事实的含义。存在时间关系的gsp结构,当实例化时,意味着关于时间关系的事实。每个未实例化的gsp结构910具有其自己的特定角色集,其中,要用故事中明确或隐含的信息来完成。空间关系的gsp结构对于第一对象或位置具有一个角色,对于第二对象或位置具有另一个角色,并且具有用于指定第一对象和第二对象之间的空间关系(例如,靠近,上,内,上方,下方等)的第三角色。

来自故事的单词或短语可以对应于gsp结构的一个以上的实例。例如,对于每个词义,一个单词可以具有不同的gsp结构实例。单词“fall”可能有一种含义的gsp结构的一个实例(例如,如在句子“一个大雨滴落(fell)在chloe的脸上”中找到的),另一个含义上的第二个gsp结构实例(例如,如在句子“chloe滑倒并摔倒(fell)在泥里”中找到的),以及另一种含义上的第三个gsp结构实例(例如,在句子“温度下降了(fell)十度”中找到的)。

还可以定义复合gsp结构,其中,结构的至少一个角色被填充另一个gsp结构。作为示例,假设存在用于通信的gsp结构(例如,代理人、接收者、消息的角色)和用于目标的第二gsp结构(例如,代理人、目标的角色)。在通信gsp结构中的“消息”的角色可以由目标gsp结构填充。这形成了一个复合gsp结构,它代表了有关通信的事实,其中传达的消息本身关于某个代理人的目标。例如,这样的复合gsp可以对应于自然语言句子,“alice告诉bob,carol想要一张票”,或者,“丹说,把玉米递过来”。上面参考某些结构讨论的嵌套关系是复合gsp结构的实例。

图10示出了gsp结构910的示例性集合1000,其可以被组成以表达对应文本字符串(例如,句子)的含义范围。有许多方法可以建立如何组织结构来表达意义。在该示例性集合1000中,基本结构可以包括动作结构1002以及时地表达事实的变化,其包括之前、当时和之后的元素或角色。可以存在位置结构1004来表达就地找到的事物,其包括位置、实体1和实体2的元素或角色。作为又一示例,可能存在信念结构1006,其表达代理人所相信的事实、具有代理人的角色、信念和置信度。

再次参考图9,框架914是特定背景中的提议(例如gsp)上的概率分布。一个简单的情况是在上下文中可能为真的一组提议,例如通常在特定地方发生的动作。框架指的是通常与上下文相关联的各种参与者、动作、属性和其他概念角色。框架914可以被认为是通过将相关经历分组在一起而形成的事物。通常,框架存在于不同的抽象级别。框架可以表示一个特定的情节,其中实体指代特定的人,并且同样地,框架可以表示非常抽象的概念(如友谊),其中对实体知之甚少。在多个框架中,指代gsp结构的某些角色中实体可能不是故事中的特定实体,如ben和ava,而是更通用的特定于框架的角色,如顾客和服务员。例如,餐馆框架可以包含两个gsp结构动作实例,包括顾客的一个动作实例(具有具体化的实例化角色:坐;代理人:顾客;之后:桌旁边的位置),和服务员的另一个动作实例(带有具体化的实例化角色:带来,代理人:服务员,之后:菜单或食物的位置在顾客处)。

框架914还可以指代其他框架。例如,餐馆框架可以指饮食框架,其定义用于消费食物和饮料的体验的gsp结构实例的集合。框架也可以按层次结构排列,以便框架可以从其父框架继承参与者、动作和属性。作为一个示例,快餐店框架可以是餐馆框架的孩子,并且继承餐馆框架的某些方面。框架也可以按冲突的模式组成。例如,在餐馆框架中,客人支付餐费。但是,在生日框架中,客人不需要支付餐费。对于后一个示例,框架也可以说提议具有低概率。例如,更具体的生日框架可能暗示你支付账单的低概率,其中,该概率在常规的餐馆框架中要高得多。

当前世界模型138最初可以包括手动策划的语义框架库,例如库“verbnet”。例如,为了准备系统,在verbnet库中编码的一组动词(例如,儿童首先学习的100个动词)可以被导入到当前世界模型138中。不幸的是,这种手动策划的资源不能扩展。因此,当计算系统学习时,不再手动创建当前世界模型138,而是从处理背景语料库并通过与人类学生和协作者的对话来学习。

在图9中,语言到gsp映射器906执行框架推断过程,以识别存储在当前世界模型138中的非实例化gsp结构910(1)-(g)的子集,其可能在框架中很好地适合并且确定将故事中实体分配给gsp结构中的变量。目标是通过定义语言所指的各种实体并确定gsp结构保持实体的真实,将语言从语言结构映射到gsp结构。在所示示例中,语言结构714具有动词谓词“带”,其可被确定为最接近地匹配未实例化的gsp结构910以用于动作。匹配可以通过关键字匹配来确定(例如,语言结构714中的“带”与该特定动作gsp结构910中的单词“带”匹配)或通过其他搜索策略,诸如相似性、概念等。如图所示,动作gsp结构910包括具体化名称的角色(具体化:带),代理人(代理人:人1)和后状态(之后:具有)的角色,其中具有的嵌套提议与拥有者角色(拥有者:人2)具有相关的拥有角色(拥有:事物)相关。在一些实施方式中,模块914可以识别和选择可以与语言结构714匹配的多个未实例化的gsp结构。

在选择过程期间,可以计算相关性或置信度分数。得分较高的gsp结构表示与语言结构714更紧密匹配的结构。

在识别一个或多个未实例化的gsp结构910之后,语言到gsp映射器906用来自语言结构714的信息实例化gsp结构,以产生gsp结构实例916。这里,ben和ava故事中的具体化角色被识别为“带来”(具体化:带来),代理人角色被识别为“ben”(代理人:ben),拥有者角色被识别为“ava”(拥有者:ava),并且拥有角色被识别为“食物”(拥有:食物)。gsp结构实例916是具有来自故事的尽可能多的信息的实例化版本。

在一些情况下,可能没有完全实例化该结构的所有信息,这产生了不确定性,该不确定性形成了询问人类用户关于对其故事的理解,以协助发现缺失元素的基础。而且,在一些情况下,从不同gsp结构910实例化一个以上gsp结构实例,以提供故事摘录的不同可能含义。当从同一个故事摘录创建多个gsp结构实例,并且那些实例具有相似的置信度分数时,这也会提示系统询问人类用户哪个可能的含义可能更适合于故事,从而获得用户理解摘录的知识。

作为另一个示例,假设文字写着:“男孩在公园”。语言到gsp映射器906可以选择处理称为“男孩”和“公园”的实体的gsp结构,例如具有对象、关系和位置的角色的位置gsp结构。实例化位置gsp结构,以通过用文本信息填充角色来捕获文本的含义(例如,对象:男孩;关系:在;位置:公园)。如果将该句子稍微修改为“男孩去公园”,则语言到gsp映射器906可以选择具有代理人“男孩”和效果的第一动作gsp结构的嵌套排列,其中,效果引用嵌套位置gsp结构。考虑一下这句话,“女孩向她妈妈要自行车”。这句话可以最好映射到具有通信gsp结构的实例化复合gsp结构的级联嵌套排列(例如,代理人:女孩;接受方:妈妈;消息:目标_结构),目标gsp结构(例如,代理人:女孩;目标:拥有_结构),以及拥有gsp结构(例如,拥有者:女孩;拥有:自行车)。

在图9中,信念生成组件402还可以包括情节框架推断模块918,其实现框架推断过程,以从当前世界模型138检索可能与故事的当前信念相关的一个或多个未实例化框架914(1)-(f)。部分地基于gsp结构实例916的子集来推断框架,gsp结构实例916的子集被识别为表示文本的可能语义解释。情节框架推断模块918提出了在情节框架上的概率分布,将故事中的实体对准框架中的角色,并且从框架推断出新的信念。可以迭代地发生该过程,以发现解释故事的框架层次结构。例如,在ben和ava的故事中,餐馆框架920可以提供ben和ava在餐馆中的隐含信息,从而提供主题或上下文,在该主题或上下文内更好地理解故事中的明确语言。为此,可以选择餐馆框架920,因为与旅馆或酒吧的可能的其他框架相比,餐馆框架920具有与涉及人、菜单、食物和餐桌的故事相关的更高可能性。

然后,由情节框架推断模块918实例化餐馆框架920,以包括与故事有关的多个gsp结构实例916。餐馆框架在其未实例化状态下具有对“顾客”、“服务员”等的一般参照。情节框架推断模块918用来自故事的信息填充该框架的字段,使得顾客对准ava,以及服务员是ben。

在ben和ava的故事示例中,故事中有七个句子,并且七个句子可以由对应的gsp结构实例916(1)-(7+)中的至少七个(并且可能更多)来表示。故事中的第一句(即,“ava走进来”)由gsp结构实例916(1)表示,其中,示出了主要动作术语“走”。故事的第二句(即,ben将ava引导到桌旁)由gsp结构实例916(2)表示,其中,示出了主要动作术语“引导”。在每个示出的实例916(1)、916(2)、…916(6)和916(7)中,仅显示主要动作(即,“走”、“引导”、“带”和“吃”),但这是意味着传达用来自故事的其他事实实例化的整个结构。

在一个实施方式中,情节框架推断模块918可以搜索和识别具有不同相关程度的多个框架。每次搜索都返回可用于选择一个或多个框架的置信度或相关性分数。最终选择的框架期望以最佳解释故事的方式对准故事中的元素。例如,可以选择餐馆框架,因为故事涉及人、菜单、食物和餐桌。然而,模块918还可以识别旅馆框架,其也可以与涉及人、菜单、食物和餐桌的故事相关。因此,情节框架推断模块918可以选择餐馆框架和旅馆框架,其中,餐馆框架可能具有比旅馆框架更高的相关性得分,但是两者都具有超过接受阈值的分数。在这种情况下,选择并实例化两个框架,然后将它们用于为人类用户生成问题,以更好地理解哪个可能是最佳选择。

信念生成组件402还可以包括常识性推理模块922,其在给定gsp已经在故事模型中的情况下,在实例化的gsp上产生新的概率分布,其表示文本的进一步语义解释。例如,这种推理可以包括数字推理(如计数和算术)、时间推理(如事件排序)、以及物理推理(关于物理对象的部分和大小)。常识性推理模块922中使用的算法可以专用于特定gsp(例如,用于计算各种类型的故事模型中的实体的数量的算法),或者可以是框架推断过程的通用应用,以检索和应用演绎规则。进一步注意到,随着故事变得更复杂,可以使用许多框架来表示故事。这类似于一起形成完整故事的场景或情节。

知识整合引擎136还包括约束组件404,其实现框架推断过程的评估阶段,其检查其中可能的框架和gsp表示故事的满意程度。在一个实施方式中,约束组件404产生该组框架对准与故事匹配程度的分数。当少量框架与从故事中提取的大量语言分析信念相匹配时,给出更高的分数。相反,当推断的信念与系统针对故事的其他信念相矛盾时,得分较低。

联合推断引擎406组合系统中所有组件的输出,以有效地组合不同级别的解释。联合推断引擎406获取来自置信生成组件402和约束组件404的输出,并计算关于信念的联合分布。联合推断引擎406计算每个信念的边际概率,其用于构建和进化故事模型。联合推断引擎406可以被配置为基于当时已知的所有信念产生可能信念的条件概率。

通过组合上述所有组件的结果,联合推断引擎406组合不同级别的解释。例如,考虑故事解析引擎134在谓词论元结构信念上产生概率分布的情况,其中,谓词论元结构信念中的一者具有低概率。如果语言到gsp映射器906确定使用谓词论元结构信念的gsp与情节框架很好地匹配,情节框架也适合于故事的其余部分,则联合推断引擎将给予高边际概率。

通过该过程创建的gsp结构实例916和框架实例920可以存储在当前世界模型138中的存储库924中,以继续构建计算系统的知识。这些实例可以进一步用于构建新的gsp结构和框架,以便将来用于构建对故事的理解。

图11示出了知识整合引擎136如何使用框架推断来改进对故事的理解。在该示例中,ben和ava的故事106与抽象餐馆脚本或情节1102一起示出,其可以由未实例化的餐馆框架结构1104表示,以描述统一主题或概念内的情节。这里,情节1102提供了关于餐馆中发生的事情的背景知识,如下:

餐馆是顾客去吃饭的地方。

在餐馆,顾客坐在桌旁,等待服务员来。

服务员给顾客菜单。

顾客阅读菜单。

顾客挑选其想吃的食物。

顾客告诉服务员他们的选择,服务员将食物带给顾客。

在顾客吃完食物后,服务员将账单带给顾客。

顾客支付账单,然后,顾客离开。

餐馆框架1104由与情节1102的句子相关的多个生成语义基元组成。在图11中,出于讨论目的,示出了三个未实例化的动作gsp结构1106、1108和1110。动作gsp结构1106、1108和1110体现为维持在当前世界模型138的存储单元中的数据结构,如存储单元1112所示。第一动作gsp结构1106表示情节1102中的开场句子的一部分,其中,写着“餐馆是顾客去吃饭的地方”。动作gsp结构1106包括在数据结构的根节点处的动作角色“去”(具体化:去),在第一从属节点处的代理人角色“顾客”(代理人:顾客),以及在第二个从属节点处的位置角色“餐馆”(位置:餐馆)。动作gsp结构1108表示情节1102的第六句的第二子句(clause),其中,写着“......并且服务员将食物带给顾客”。动作gsp结构1108包括在数据结构的根节点处的动作角色“带”(具体化:带),在第一从属节点处的代理人角色“服务员”(代理人:服务员),在第二个从属节点处的拥有角色“食物”(拥有:食物),在第三个从属节点处的拥有者角色“顾客”(拥有者:顾客)。第三个图示的gsp结构1110表示情节1102的第七句的第一子句,其中,写着“在顾客吃食物之后......”。动作gsp结构1110在数据结构的根节点处具有动作角色“吃”(具体化:吃),在第一从属节点处具有代理人角色“顾客”(代理人:顾客),以及在第二个从属节点处的对象角色“食物”(位置:食物)。注意,各种动作gsp结构1106、1108和1110以数据结构的各个节点(例如,顾客、服务员、食物等)中的通用标签开始。

知识整合引擎136将框架1104中的框架语义对准故事模型解释1114,以提高对故事106的理解。在该示例中,利用来自ben和ava故事106的细节对框架结构进行实例化,以形成实例化的gsp结构实例1116、1118和1120,其分别对应于未实例化的gsp结构1106、1108和1110。在实例化的gsp结构实例1116中,代理角色的论元是代替通用占位符“顾客”的故事实体“ava”。由于故事中没有关于餐馆类型或名称的更具体信息,因此位置角色维持通用标签“餐馆”。

对于实例化的gsp结构实例1118,通用占位符“服务员”的代理人角色被特定于故事的实体“ben”替换。拥有者角色假定故事特定实体“ava”代替通用标签“顾客”。故事实体“意大利面条”也取代了拥有角色中的通用标签“食物”。类似地,对于实例化的gsp结构实例1120,“服务员”的代理人角色被“ava”替换,并且“食物”的对象角色被替换为“意大利面条”。注意,知识整合引擎136可以考虑多个可能的对准。知识整合引擎136估计每个对准与故事相符的置信度分数。例如,对准ava作为顾客和ben作为服务员更符合故事,然后是ava作为服务员和ben作为顾客。更具体地,当少量框架匹配从故事中提取的大量信念时,给出更高的分数。而且,如果新预测的信念与关于故事的系统其他信念相矛盾,则一组框架对准将得分很低。估计置信度得分的方法是依赖于上下文和与任务相关的,因此可以根据情况而变化。实例化的gsp结构实例1116、1118和1120体现为在当前世界模型138的存储单元中维护的数据结构,如存储单元1122所表示的。

现在,虽然计算系统对故事的理解比基本的语法解析更丰富,但是关于故事仍然可以有要学习。知识整合引擎136可以访问由知识推导引擎140提供的推导知识资源,以继续学习关于故事中使用的单词和短语的更多信息。另外,知识整合引擎136可以进一步调用对话引擎142,以使人类用户参与以协助解决实例化数据结构中的任何差异或差距,或者最终在可能合理地解释故事的多个可能的语义结构中进行选择。知识整合引擎136可以进一步与构架144一起工作,以基于故事语言到语义映射练习已学习的内容和来自人类用户的任何反馈,构建在当前世界库138中维护的gsp结构和框架的修改的和更新版本。例如,系统还可以使用不同的分层机制来提取和构成新框架,探索结构化、半结构化或非结构化数据(例如文本语料库、图像或视频集合、语义数据库等)的大型语料库。这些机制包括但不限于:用于提取统计上有意义的框架的统计监督、半监督和无监督机器学习和数据挖掘技术;逻辑推理和概率推理,用于经由已经存储的来自框架中的演绎或推导过程生成新框架;通过对话引擎与用户交互,以获取新框架的直接知识。推导框架的效用可以通过其预测特定单个文本的能力来评估。

图12示出了由知识整合引擎136执行以推断语义信息以便更深入地理解故事的示例性过程1200。参考图1、4、5、和9的系统体系结构100和知识整合引擎136来描述过程1200。在1202,接收语言分析结果,包括具有语法和pas注释的语言结构。参考图4,可以从故事解析引擎134接收语言分析结果。

在1204,通过将语言结构转换为提供更高级别的解释的一个或多个语义结构来进行框架推断。在一种方法中,推断操作涉及由动作1204(1)-(2)表示的多个子操作。

在1204(1),形成生成语义基元结构的实例,以针对文本可能的含义是什么提供第一更高级解释。作为该形成的一部分,在1204(1)(a),可以从这样的结构的库中,识别一个或多个预先存在的、未实例化的gsp结构。未实例化的gsp结构可以存储在当前世界模型138中,并且基于结构与语言结构中的单词/短语相关的概率来识别。如果多个未实例化的gsp结构表现出基元表示文本的可能含义的足够概率,则可以选择这些未实例化的gsp结构。可以将这些概率与预定阈值进行比较,以辅助选择过程。在1204(1)(b),使用来自语言分析结果的数据来实例化所选择的一个或多个gsp结构。一旦实例化,这些gsp结构实例提供更强键(robust)的意义范围,提供事实和推断之间的逻辑连接。

在1204(2),框架推断操作还包括形成框架结构以提供对文本可能的含义的第二更高级解释。在1204(2)(a),可以从这样的结构的库中识别表达文本的主题或情节信念的一个或多个未实例化的框架结构。这些未实例化的框架结构也可以存储在当前世界模型138中,并且基于这样的结构表现出与语言结构中的单词/短语的相关性的概率来选择。如果多个未实例化的框架结构表现出:框架表示在其中理解文本的相关主题(例如,用于理解ben和ava故事的餐馆或旅馆框架)的足够概率,则可以识别这些多个未实例化的框架结构。

在一种方法中,框架选择动作1204(2)(a)可以涉及附加的框架推导过程,以协助确定哪些框架应用于给定的文本/故事。该子过程不仅包括先前关于图9和11描述的框架对准过程,还可以另外包括演绎过程,该演绎过程导出在先前情况下应用框架所产生的更多的和新的推断。可以针对兼容性/一致性来查看和分析先前情况中的应用的框架,在考虑先前背景知识的情况下,以评估对准和推断组合在一起的适合程度。

在1204(2)(b),用gsp结构实例的集合实例化或构造所选择的一个或多个框架结构。例如,如图9所示,餐馆框架结构被实例化,其中,gsp结构实例916(1)-(7)由ben和ava的故事106的七个句子形成。一旦构造好,该一个或多个框架结构提供对文本更完整的理解。

在1206,针对语义结构(即,gsp结构和框架结构)可能对准故事模型的当前表示,评估这些语义结构。该评估可以涉及计算分数,该分数指示框架和gsp结构与故事对准的接近程度。

在1208,计算关于信念的联合分布。在一个实施方式中,联合推断引擎406计算每个信念的边际概率,其用于故事模型的构建和进化。联合推断引擎406可以被配置为基于当时已知的所有信念,产生关于可能的信念的条件概率。

在1210,选择最合适的框架和gsp来表示故事并更新故事模型。还可以利用从框架推断过程中学习的任何信息来更新当前世界模型。

说明性的知识推导引擎

图13示出了知识推导引擎140的示例性实施方式,示出了在推断关于文本字符串或故事的语义信息时、协助知识整合引擎136和对话引擎142的选择组件。知识推导引擎140可以被实现为离线运行、或独立于学习和理解模块130中的其他组件,以生成可以存储在推导知识资源库412中的资源,以便于由其他组件访问。

叙事是缄默的。信息没有被说出来、被假定和含糊不清。计算机系统预测缄默的主体、动作、关系;否则在理解语言方面将会遇到麻烦。知识推导引擎140具有一组组件,它们协助从现有资源中识别或预测作者可能在故事中隐含和未说明的知识,并向其他系统组件提供服务,其他系统组件诸如知识整合引擎136和对话引擎142之类。知识推导引擎140试图填补这些差距,使得知识整合引擎136可以形成更好的知识模型,并且对话引擎142可以为人类学生或协作者发出更智能的问题。例如,当故事讲“学生得到了他来大学所要获得东西”时,知识推导引擎140找到替代意义,来预测句子是指学生获得学位,还是他获得了课程学分,或者学生接受了教育。这些替代意义中的每一个都可以伴随着这样的概率值:即,每个替代意义在故事的更广泛背景内的可能性的概率值。

在高级别,知识推导引擎包括知识累积组件1302和知识推导服务引擎1304。知识累积组件1302通过各种方式累积数据(标记的和未标记的),包括整合现有知识(例如,非结构化数据,如文本、图像、音频等,以及结构数据,如知识库、现有逻辑等),通过对话累积知识,使用张量分解等技术的自动知识库完成,以及使用知识推导服务引擎1304中的组件从数据中挖掘知识。知识累积组件1302处理数据并产生一组导出资源,即推导知识资源412,其捕获数据中暗示或潜在的信息。

如果所请求的知识可用,则来自知识整合引擎136和对话引擎142的请求由推导知识资源412和知识累积组件1302服务。否则,调用知识推导服务引擎1304,以在运行中生成期望的知识。这些服务包括许多模块,包括但不限于下面描述的模块1306-1330。

知识推导引擎140的一个组件是词义消歧器1306,其可被执行以消除词义的歧义。给定句子、子句或其他文本字符串,词义消歧器1306识别名词、动词、形容词、副词和介词的意义。例如,在名词的情况下,词义消歧器1306可以将单词“ball”区分为正式舞蹈或一件运动装备,或者将单词“bat”区分为飞行哺乳动物或另一件运动装备。消歧器1306可以使用以各种方式编译的意义注释资源,包括例如训练数据、大文本语料库410中的明确的词义、以及从大文本语料库410上的运行算法导出的样本词义。在其他实施方式中,词义消歧器1306可以进一步访问现有的第三方意义存储库,例如用于名词、动词、形容词和副词的wordnet,或公共可用的介词词义库。

在一个实施方案中,词义消歧器1306体现为包含向量计算器1308和含义计算器1310的程序化软件模块。向量计算器1308按含义定义为每一语法标记产生不同的向量表示,并对这些向量求和以产生含义向量。向量计算器1308还通过以下方式计算单词/短语的上下文向量:将没有该单词/短语的句子作为上下文来处理,解析缩短的句子,并从语法标记产生向量表示。在一个实施方式中,嵌入算法用于为每个语法标记创建向量,例如对标记(而不是单词)进行操作的词嵌入。

提供含义计算器1310,以根据诸如大型语言语料库410之类的训练数据中找到的频率信息来估计每个含义的优先性。含义计算器1310根据含义向量、上下文向量、和优先性,导出关于单词/短语的含义。在一个实施方式中,含义计算器1310可以对含义向量和上下文向量应用余弦相似度函数,并对这三个输入(含义向量、上下文向量和优先性)的每一个进行加权。

知识推导服务引擎1304还可以包括释义检测器1312,以查找和识别句子或文本字符串中的释义。单词或短语的释义是书写不同、但大致具有相同含义的另一个单词或短语。例如,短语“人群爆发”与另一个短语“看台上的喝彩”大致相同。释义检测器1308使用来自大型语言语料库410和其他资源的背景知识来识别类似的短语。

知识推导服务引擎1304的又一个组件是关系检测器1314,用于检测单词或短语之间的关系。关系检测器1314利用来自标记资源(如语料库410)的背景知识,来预测可能具有关系的单词/短语。在一个示例中,在短语“燃气价格继续下降”中,短语“继续下降”具有减少量的关系。

文本蕴涵检测器1316还可以被实现为知识推导服务引擎1304,以确定一条文本是否蕴含另一条文本。可以包括实体检测器1318以对单词的类型进行分类。缺失文本生成器1320识别并创建故事中隐含但未明确提及的文本。文本嵌入器1322是可用于将单词/句子/文章转换为向量的另一服务。规则挖掘工具1324是从文本学习推断规则的服务。在一个实施方式中,规则挖掘工具1324挖掘不同类型的推断规则,例如仅涉及文本提议的规则、仅涉及gsp的规则、混合两者的规则(即语言到知识映射规则)。示例性实施方式(基于频繁的子图挖掘方法)从大型语言语料库中获取一组频繁共同出现的语句,将实例概括为多种类型(例如,使用词义消歧),使用概括的文本提议创建潜在的推断规则候选者,并通过与人类用户对话进行验证。文本匹配器1326是可用于匹配两段文本的服务。

知识推导服务引擎1304还可以包括场景分析器1328,以预测可以从文本推断出什么类型的场景。场景分析器1328探索已知的语料库410和其他资源,以识别特定场景下的最流行的短语。举一个示例,假设文本写着:“我点了一些食物,然后喝了咖啡”。场景分析器1328可以探索背景知识源,以检测包含诸如“食物”、“咖啡”、“点单”、“点的食物”和“喝咖啡”之类的单词/短语的场景。在该示例中,场景分析器1328可以返回到可能场景的排序表,诸如“咖啡厅”、“小餐馆”、“小卖部”、“粮仓”、“阳台”、“咖啡馆”和“庭院”。

知识推导服务引擎1304还具有背景已知的、基于语料库的推断模块1330,其在语料库410和其他资源(例如,诸如维基百科这样的非约束资源)上进行训练,以根据背景知识预测未来的语义基元。作为用于讨论目的的一个示例,推断模块1330检查语料库410中的主语-动词-宾语(或pas)组合,并探索最接近相似目标组合的其他组合。可以以各种方式确定相似性,例如通过计算文本中的邻近的相关性或似然性的评分算法。例如,假设包含“dave吃食物”的主语-动词结构。其他结果可能包括:按排列顺序,“dave增重”(得分为4),“dave减肥”(得分为3),“dave接受批评”(得分为3),“dave减了磅”(得分为2.5),“dave喝酒”(得分2.5),和“dave克服紧张”(得分2.5)。作为另一个示例,假设主语-动词-结构包含“我买车”。其他结果可能包括:按排列顺序,“我给了美元”(得分为6),“再次买车”(得分为6),“我付定金”(得分为6),“我提供支付证明”(得分为5),和“我乘车”(得分4.5)。

在知识推导引擎140中,知识存储在知识张量1332中作为知识累积组件1302的一部分。张量(tensor)是多维立方体。维度(dimensions)包括(不限于)一个或多个实体维度、一个或多个关系维度、一个或多个框架维度、一个或多个时间维度、一个或多个空间维度、以及一个或多个场景维度。知识累积组件1302还包括知识获取和填充模块1334,其定义和填充知识张量1332。在图13中,示出了三维立方体张量1336,其具有沿两个轴表示的两个实体维度(例如,普通名词、语义类型等),以及沿着第三轴表示的一个关系维度(例如,普通动词)。立方体张量1336中的点包含给定关系在两个实体之间保持的可能性。在这个示例中,假设一个实体是狗,而另一个实体是松鼠。现在,假设表示由动词“追逐”表达的关系的张量应用于这两个实体。狗追逐松鼠的结果可能导致很高的概率。相反,假设张量表示由动词“跟随”所表达的关系,其结果是狗跟随松鼠。这仍然是可能的结果,但可能被评定为低于“追逐”的概率,因为当狗确实跟随松鼠时,狗实际上正在追逐松鼠并且具有抓住松鼠的意图。

在一个实施方式中,知识推导引擎140包含一个张量以包含所有可用知识,和一组面向应用的张量以覆盖每一个应用。

在一种方法中,张量可用于从大数据量的文本中检索可能的常识知识。在短语“学生获得......”中,张量查询工具可以从如“学分”、“学位”等文本中识别几个普通候选者。在短语“玩家赢得……”中,张量查询工具可以从如“积分”、“金钱”等等文本中识别其他普通候选者。一旦找到这些候选者,可以计算术语和术语对的相似性,其中,每个术语被表示为张量中的片段,并且每个术语对被表示为张量中的列。具有相关推断概率的候选者的排列表可以存储在推导知识资源库412中,以供知识整合引擎136查询,以协助将故事模型132对准当前世界模型138。

图14示出了由知识推导引擎140执行的过程1400,用以提供故事中的单词/短语的含义和关系的可能候选者,以协助由知识整合引擎136进行语义推断。参考图1、4、5和13的系统体系结构100和知识推导引擎140来描述过程1400。在1402,接收用于分析在故事(或文本字符串)中找到的单词/短语的查询。在体系结构100中,知识整合引擎136可以提交对已经或将要被语义处理的故事中提供的单词的查询。这些查询可以包括单词或短语、单词/短语的标记化版本,或单词/短语的其他表示。

在1404,可以对查询中接收的单词/短语执行若干分析,以推断单词/短语的可能解释。由于这些操作可以离线执行,因此可能已经执行了对特定单词短语的分析,并且存储了结果以便于访问。在其他情况下,分析可以立即进行或一旦实际情况许可就进行。各种形式的分析由说明性动作1406、1408和1410表示。

在1406,对单词/短语执行词义分析,以确定可能的含义。对于每个单词/短语,使用含义定义创建不同的向量表示,并且根据那些向量表示来计算可能的含义。更具体地,词义分析1406的一个实施方式被示为动作1406(1)-(4)。在1406(1),为每个单词/短语创建含义向量。通过首先解析对应于单词/短语的含义定义来计算含义向量,以产生每个含义定义的语法标记。这些含义定义可以保持在可以是语料库410或推导知识资源412的一部分的规则或定义数据库中。之后,对每个含义定义的标记进行算法处理,以产生相应的向量,并且将这些向量相加以产生含义向量。

在1406(2),估计每个含义的优先性。来自训练数据的频率信息(例如大型语言语料库410)可用于估计优先性。在1406(3),为每个单词/短语创建上下文向量(contextvector)。在一种方法中,通过从主语句中移除单词/短语,然后在语句构成上解析句子(没有该单词/短语)来形成上下文。然后,使用例如嵌入函数将语法解析转换为上下文向量。在1406(4),根据含义向量、上下文向量和优先性,导出单词/短语的含义。在一个实施方式中,可以将余弦相似度函数应用于含义向量和上下文向量。可以进一步将加权应用于这三个输入。可以使用监督学习算法(例如逻辑回归)来学习加权。

在1408,可以分析查询中的单词/短语,以检测释义、关系和/或实体类型。可以检查来自标记资源(例如大型语料库410)或其他来源的背景知识,以识别可能应用于分析中的单词/短语的一个或多个释义、关系和/或实体类型。在1410,可以执行一个或多个其他服务,如,文本蕴涵检测、丢失文本生成、场景分析、文本嵌入、文本匹配器等。

在1412,从诸如大型语言语料库的背景知识源预测语义基元。作为后台处理,推导引擎140可以分析语料库以检查各种主语-动词-宾语(或pas)组合,以确定哪些其他组合可能与它们相关。可以基于这些组合趋向于在大型语料库中的相关程度来计算相关性的值。在1414,若没有通过在1404处的分析而产生,计算概率以协助对通过分析发现的多个解释候选者进行排列。概率可以响应于查询而被传回,并且由知识整合引擎136使用以在推断语义和框架水平理解时选择适当的解释。

在1418,累积知识,以产生一组知识资源。其中,带有相关概率的这些资源中的一些资源是可以容易被系统中的其他模块使用的格式或结构。在一种方法中,使用三维张量结构。利用张量结构,可以使用不同的元素或值来评估三个参数(例如,两个实体和动作;一个实体、一个事物、一个位置等等),并且可以针对那些迭代中的每一个计算概率。如上例所示,具有两个实体和一个动作关系的张量可用于发现:涉及狗(第一实体)和松鼠(第二实体)的故事中将它们之间的关系表达为“狗追逐松鼠”的概率比可能表达为“狗跟着松鼠”的概率更高。

在1420,将资源存储在可访问的数据库中,例如推导知识资源库412。

说明性的构架

图15示出了信念表示和推理构架144的示例性实施方式,该构架144是在整个系统中使用的一组基础组件,诸如知识表现语言和用于上下文区分和语义基元的推断和学习机制。构架144允许系统随时间的推移进行存储、索引、检索、导航和操纵概率性提议(或“信念”)。

通常,构架144具有信念管理系统1502、知识数据库1504和知识表现(kr)语言定义模块1506。信念管理系统1502是基于软件的功能的集合,用于存储和查询根据kr语言定义模块1506表达的提议(或者“信念”)。知识数据库1504是特征存储库、图形数据库、知识库等,其将知识和推理作为数据来处理,并将其公开为本体上独立的、简单且快速的数据结构。在一个实施方式中,知识数据库1504被体现为基于快速java虚拟机的内存概念数据库。

kr语言定义模块1506维护用于表示实体和提议的定义语言的规则,包括公共语法、最小语义、提议之间的关联程度、以及常见类型的提议的公共语义模块。kr语言由两部分组成:核心表示语言1508和普通语义模块1510。核心表示语言1508定义了如何表示实体和提议的语法和最小语义,以及提议之间的关联程度。普通语义模块1510是用于频繁任务的提议类型。在一个实施方式中,普通语义模块1510可以包括以下内容:

·逻辑运算符:和、或、非、蕴涵、并且仅当(iff)。

·描述和角色:实体可以担任包含其他实体(实例)的描述(类)的角色。对于kr语言中的任何谓词,可以声明角色并提供有关填充角色的概念的预期类的信息。

·名称:任何概念都可以有名称。

·集合:实体可以表示其他实体的集合。这与描述有关,因为在任何事物的集合(扩展)和描述成员的描述(内涵)之间存在对应关系。

·不确定性:衡量提议为真的相关概率。

·时间:提议被评估为真的指标。

·信念:表示提议代理人相信什么和什么时间。

说明性的对话引擎

图16示出了对话引擎142的示例性实施方式,示出了选择组件,这些选择组件可以用于生成用户问题以质疑和/或确认系统对故事的当前理解并且接收用户响应,用户响应用于修改和扩展在语义结构和框架中实现的解释以修改系统的理解。对话系统142允许计算机系统102参与与个人用户的扩展对话会话。每个对话会话可以作为仅涉及一个用户的串行线性对话来执行,或者以分布式方式执行,以将问题并行地分配给多个人类用户。分布式对话应用灵活的对话管理来拆散对话会话的内容以向不同的用户提问题,并重新组合结果以获得与线性对话基本相同或相似的学习结果。分布式对话会话允许计算机系统102通过管理一群用户的很多认知问题负荷来扩展,从而通过与多个用户的并行化交互来减少学习过程的时延。

协作学习过程中的对话交互可以用于两个目的中的一者。第一个目的是支持系统学习,第二个目的是支持用户学习。在第一种情况下,系统可能无法充分地、具有足够置信度地将故事映射到gsp,或者无法进行必要的推断以完全理解故事。在这些情况下,系统向用户提出问题,以请求丢失的信息以完成任务。通过这种学习过程,系统可以问额外的探究式问题来一般化、特殊化或确认它所学到的知识,以确保在将来应用知识中的正确性。系统学习策略的示例包括请求、确认和一般化/特殊化。请求是一种策略,其中,对话引擎要求用户填空以完成系统理解。例如,系统可能会问:“故事说“ben将ava引导到餐桌旁”。你能解释一下“引导”在上下文中意思是什么?”。在这种情况下,有帮助的用户会用简单的术语对句子进行重新措辞,以协助系统理解,例如“这意味着‘ben将ava领到餐桌旁’”。

确认是用于确认或验证关于系统具有较低置信度的故事所做的解释/推断的策略。例如,系统可能会问“‘ben将ava领到餐桌旁’意味着‘ben和ava走着,然后他们都在餐桌旁’,对吗?”,或者,在ben和ava的故事中,系统可以确认推断的行为,例如“我认为ava支付了账单。对吗?”。一般化/特殊化是一种策略,其在系统学习了一些新信息之后,尝试提出额外的探究性问题以增强系统的理解。例如,系统可能会问“ava因为她是顾客而支付账单了吗?”(是),“顾客总是吃意大利面吗?”(不),“顾客总是吃饭吗?”(是,在餐馆中),“顾客总是支付账单吗?”(是)。从一般化和特殊化中获得的这些额外知识有助于系统在未来将该知识应用到适当的环境。

在支持用户学习的情况下,系统的作用是提出将有助于用户更好地理解故事或其原因的问题。请注意,系统在此处提出的一些问题可能类似于之前讨论过的问题,主要区别在于,系统现在知道这些问题的答案。用户学习的一些示例策略包括比较/区分、一般化/特殊化和推断。系统可以根据其相对于用户能力的阅读能力,自动在这两种操作模式之间切换。

在比较/区分中,对话引擎提问以协助用户区分类似情况。例如,系统可能会问“‘ben将ava引导到餐桌’意味着‘ben和ava走到餐桌’。你能告诉我‘ben将ava引导到餐桌’是什么意思吗?”。在一般化/特殊化中,系统提出问题以协助用户概括/特化他们的知识。例如,系统可能会问“顾客在餐馆中做了什么,而故事中没有提及?”或者“所有的餐馆都有服务员吗?”。对于推理策略,系统可以提出问题以协助用户推断故事中隐含的含义。例如,在阅读“ava支付账单并给ben留下优厚的小费”后,系统可能会问:“你认为ava对ben作为服务员的服务感到满意吗?为什么?”。

再次参考图16,对话引擎142从知识整合引擎136接收请求1602,以解决故事模型132与当前世界模型138之间的差距。这些请求可包括关于要解决的差距的信息、要确认的低置信度解释、或者可以协助系统更好地了解当前的故事的其他方面。例如,当存在关于特定词义的问题时,请求可以包括单词、包含单词的句子、单词可能具有的多个含义、那些含义是句子中的正确选项的概率、故事标识等等。在ben和ava故事106中考虑句子“ben将食物带给ava”的句子。假设知识整合引擎136想要更多地了解哪个词义可能是单词“带(brought)”或其词根形式“带(bring)”的最合适的含义。请求1602可以包括完整的句子、单词“带(bring)”、“带(bring)”的各种含义等等。

当从知识整合引擎136接收到请求时,对话引擎142与人类用户开始一个或多个对话会话1604,如学生110和他/她的装置118以及与他/她的装置114的协作者所表示的。在对话会话1604期间,对话引擎142生成问题,并将其发送给用户装置以供人类用户考虑和输入,并接收和处理由人类用户输入到用户装置的响应。

在图16所示的实施方式中,对话引擎142是一组可执行组件,其基于故事模型132与当前世界模型138的尝试对准来构想出问题,并且与一个或多个人类用户交互以获得对那些问题的答案。构想出用户问题,以填补或解决在系统对当前故事模型132没有足够置信度的情况下出现的差距,还不能确信地将故事模型132对准当前世界模型138,或者尝试一般化/特殊化新信息,以便于将来应用知识。对话引擎142可以进一步利用阅读理解问题和/或为故事产生新问题,因为这样的问题可以用于识别系统的当前故事模型加上当前世界模型不足以在其上下文中完全理解故事的差距。

对话引擎142具有用户问题生成器1606,用以在对话会话1604期间构想出要提交给人类用户的问题。用户问题生成器1606从知识整合引擎136接收请求(诸如请求1602),并且精心设计问题以发现与请求相关的信息。在一个实施方式中,用户问题生成器1606具有自然语言生成引擎1607和依赖性结构构建器1608。自然语言生成引擎1607用于以自然语言呈现来自故事模型和当前世界模型的信念。自然语言生成引擎1607利用来自知识整合引擎136的语法信息、与gsp相关联的自然语言模板、以及背景语料库信息,以生成非专家用户能够理解的自然语言。提供依赖性结构构建器1608以根据请求1602中的数据构造依赖性结构1610。依赖性结构1610可用于以以下方式表示对话:允许系统确定对话中相互独立并且可以并行继续进行的若干部分。依赖性结构还允许系统推断用于解释和回答问题的对话语境,这在分布式对话设置中至关重要。在此结构中,根节点表示父问题,并且从根节点分支的每个子节点表示基于父问题的答案的可能的后续问题。使用此表示,子节点依赖于其父节点,而兄弟节点彼此独立。

在所示的示例中,根节点是关于在请求1602中接收的单词“带”的词义(ws)的问题。从该根节点,示出了针对在请求中接收的三个含义的三个子节点,包括“取”(即含义选项1:“将某事或某人随身带到某处”),“引起”(即含义选项2:“引起进入特定状态或条件”,以及“合法的”(即,含义选项3:“合法的呈现或提出”)。因此,依赖性结构1610的根问题(rq)可能只是询问句子“ben带给ava食物”中的“带”这个词的含义最可能是哪个?根据答案,可能会根据人类用户最初选择的那个词义,可能会问如问题q1-q6表示的后续问题。如果用户选择了“取”选项,那么后续问题将是q1和q2,并且可能包括关于以下的问题:该行动之前的状态以及在该行动之后的状态。

图17更详细地示出了依赖性结构1700的另一示例(类似于图16中的结构1610),但这次使用例句“大雨滴落在克洛伊(chloe)的脸上(abigraindropfellonchloe'sface)”。在该示例中,依赖性结构1700被构造为询问关于句子本身的问题,例如句子中的“落(fell)”一词的含义。父节点1702包含作为句子中“fell”的根形式的动词“fall”。相关的词义形成来自父节点的可能分支。第一分支1704对应于单词“fall”的第一含义,其意味着“在重力的影响下自由落体下降”。表示例句的正确词义的第一分支1704通向第一子节点1706,其建议与自由下落的相应词义中隐含的可能事实或关系有关的问题。在这里,第一个子节点1706建议询问关于雨滴落下之前发生的事情(即,问:前状态--“雨在其滴落之前在哪里?”),以及关于雨滴落下后发生什么事情的问题(即,问:后状态--“雨在其滴落之后在哪里?”)。

第二分支1708对应于单词“落(fall)”的第二含义,其具有“遭受失败(sufferdefeat)”的含义。该分支1708通向第二子节点1710,该第二子节点1710提出关于与隐含在遭受失败的对应词义中的可能的事实或者关系的问题。第二个子节点1710可能会建议询问诸如“谁遭受失败?”之类的问题(即,问:谁)和“他们如何遭受失败”(即,问:如何)。第三分支1712对应于单词“落(fall)”的第三种含义,其意味着“被分类或包括”。第三子节点1714终止第三分支1712并建议询问与分类有关的后续问题,例如“什么对象被分类?”(即,问:对象)和“类别是什么?”(即,问:类别。第四分支1716对应于单词“落(fall)”的第四个含义,其意味着“在特定时间或者地点发生”。该第四分支1716通向第四子节点1718,其提出与在某个时间或地点出现的相应词义中隐含的可能事实或关系有关的问题。第四子节点1718可能建议询问以下问题,诸如“发生了什么事件?”(即,问:事件),或“它何时发生”(即,问:时间),或“它在何处发生”(即,问:地点)。

在不同的场景中,系统给用户的问题可能与应该如何解释单个句子没有直接关系,而是与如何将句子中传达的信息整合到系统对整个故事的理解中有关。例如,在这种情况下的父节点可能是“chloe的位置”,并且有相应的问题“chloe在室内还是室外?”,在用户选择“室内”后的后续问题可能是“在室内为什么下雨?”(结论是,在故事中,chloe在雨林中),而当用户选择“户外”时,问题可能是“我认为在故事中天正在下雨。对吗?”。对于系统试图确认、请求、一般化和特殊化其从故事中学到的信息的场景,可以类似地构建依赖性结构。

因此,针对从知识整合引擎136接收的各种请求中的每一个,可以构建依赖性结构1700。依赖性结构1700提供已知是所寻求的信息的一部分的各种元素之间的关系,从而允许对话引擎构想出使人类用户参与的适当问题。

再次参考图16所示,由依赖性结构构建器1608构建的依赖性结构1610被提供给问题排队引擎1612,其组织与用户进行对话会话1604的结构。问题排队引擎1612被示出具有存储在队列中的多个依赖性结构1610(1)-(q),其中每个依赖性结构在其中具有一个或多个问题,如结构1610(1)中的问题q1-qn和结构1610(q)中的问题ql-qm所表示的。每个依赖性结构表示系统尝试从用户索取信息,以完成诸如1602之类的全部或部分请求。可以将问题保存在有序列表1614中,该列表可以用于呈现给用户。

排队引擎1612将其有序列表1614中的问题提供给问题分配器1616,以在对话会话1604期间提交给人类用户。在会话1614期间,问题分配器1616将问题发送到用户装置114/118。问题分配器1616连续地将来自列表1614的问题以线性交换方式发送给单个用户、或者以并行方式发送给多个用户。问题分配器1616包括线性分配器1618,其便于与单个用户的会话。作为一个示例,线性分配器1618可以加入关于ben和ava的故事的内容的单个协作者。线性分配器1618可以构想出关于从依赖性结构1610的根节点导出的单词“带”的含义的第一个问题。可以将该问题分配和呈现在用户装置ui上,如下:

这是我试图理解的一句话:

ben将食物带给ava。

下面的哪个选项使用了最类似于上面的句子的“带”一词?

1.携取某个事物或某人随身带到某地。

2.引起进入特定状态或状况。

3.合法的呈现或提出。

例如,这在图1中示出为对话ui126。在该初始问题之后,假设用户返回选项1的答案。

由问题分配器1616从用户接收的响应被返回到排队引擎1612,以分析要询问的后续问题。当用户选择选项(例如,动词“带(bring)”的词义“携取(take)”)时,排队引擎1612沿着该选择选项的分支,遍历适当的依赖性结构以确定新问题。然后,将新问题添加到对话列表1614中,以便分配器1616发出给用户。继续ben和ava的故事,将被呈现回到同一个协作者的合适的后续问题可能如下:

将食物带给ava之前,食物在哪里?

将食物带给ava之后,食物在哪里?

如果可以推断出选择,则可以为这些问题中的每一个提供多选答案,或者可以为用户提供打开对话框以简单地添加答案。下面参考图19-21更详细地示出和描述一组示例性ui。

可替选地,问题分配器1616通过分布式分配器1620并行地向多个用户分配问题。分布式分配器1620分离这些问题并将它们并行地分配给多个用户。分布式分配器1620可以向多个人问相同的问题,或者向不同的人问不同的问题。下面参考图22-24更详细地提供分布式对话会话的示例。

使用图17中所示的句子“大雨滴落在chloe的脸上”的后续问题的另一示例可以包括,例如:

对话引擎:“大雨滴落在chloe的脸上”中“落(fall)”的含义是什么?(提供多种选择)。

用户:选项1-在重力作用下下降。

对话引擎:在“落”之前雨滴的状态是什么?

用户:它在天空中。

对话引擎:在“落”之后雨滴的状态是什么?

用户:它在chloe的脸上。

关于落之前和之后的雨滴状态的两个后续问题可以由线性对话分配器1618线性地分配给同一个人,或者由分布式对话分配器1620并行地分派给两个不同的人。

问题分配器1616还将来自用户的响应发送到答案聚合器1622,答案聚合器1622连续地聚合从对话会话1604返回的问题/响应对获得的信息。问题/响应对可以被存储为数据结构1624,数据结构1624关联所问的问题与给出的答案。在所示的示例中,数据结构1604可以将每个问题1626与响应1628相关联,以形成问题/响应对,问题/响应对进一步与故事标识1630相关联。还可以记录附加信息,例如用户参考标识、日期/时间戳、使用的形态等。当对话会话1604完成时,在问题/响应数据结构1624中体现的聚合信息对应于从与人交互学习的结果。问题/响应数据结构1624被返回到知识整合引擎136,以便整合到当前世界模型138中,并进一步对准故事模型132。

随着系统学习更多,对话系统142可以进一步构成跨多个句子或多个故事运作的问题。例如,在上面的chloe的示例中,对话系统142围绕句子“大雨滴落在chloe脸上”中使用的“落”一词的含义询问了一组问题。但是假设关于chloe的故事还有另外一句话,“chloe滑倒(slippedandfell)在泥浆中”。知识整合引擎136可能想要检查单词“倒(fell)”在该句子中的使用,并将其与第一句中单词“落(fell)”的使用进行对比。可以配置该第二chloe语句的依赖性结构,并且对话引擎可以问使得用户参与到连续线性对话会话中的问题,如下:

对话引擎:“chloe滑倒在泥浆中”中的“倒(fall)”的方式是与“大雨滴落在chloe脸上”的方式相同吗?

用户:不。

对话引擎:“chloe滑倒在泥浆中”的“倒(fall)”的含义是什么?(提供多项选择题)。

用户:突然失去直立位置。

对话引擎:chloe在“倒”之前的状态是什么?

用户:她是直立的。

对话引擎:chloe在“倒”之后的状态是什么?

用户:她在地上,在泥浆中。

随着系统学习并且知识整合引擎发现单词/短语、语义和框架之间的越来越多的关系时,对对话引擎的请求可能变得更加复杂。对话引擎142可以使用这些请求来精心设计越来越复杂的问题。除了词义和填充事实和关系之外,对话引擎142可以询问开始探索故事中框架的完整性的问题。

因此,在一个实施方式中,对话引擎142可以被实现为具有多种操作模式的系统主动对话系统,范围从获取单词和框架语义表现的基本学习模式,到与人类学生一起阅读故事并且在遇到故事的困难段落时询问问题的交互模式,以及与中间的复杂性相互作用的其它模式。在学习模式中,知识整合引擎136和对话引擎142使用户参与学习句子中的各个单词的基本含义和基本框架表示。这始于学习最常用的单词,例如6到7岁的文法学生通常知道的主要的动词和名词。这些单词是在样本句子的上下文中学习的,以确保学习到恰当的词义以及具有那些含义的单词通常如何在语法上表现。然后,对于那些目标词的学习的语义表现,通过一般化过程来产生目标词的一般语义表现,然后,该目标词成为解释未来句子的基础。

学习模式还可以用于发现基本框架表示。为此,对话引擎142使人类用户参与关于用户理解在故事中发生的事情的讨论,即使没有明确阐述这种理解。对话引擎142可以起草关于故事的一般问题,例如谁参与、故事发生的地点、故事元素如何展开或表现、故事何时展开等等。例如,在ben和ava的故事中,对话引擎142可能会提出问题,如“在读完这个故事之后,你能说出ben和ava在哪里吗?”用户可以回答在“餐馆”或“酒吧”中。对话框引擎可以使用此响应来构建另一个问题,例如“你怎么知道它是餐馆(或酒吧)?”。用户可以进一步回复,“因为ben将ava引导到餐桌旁,给她菜单,并带给她食物。”

根据这种人类交互,计算系统102可以学习到,如果第一人将第二人引导到餐桌旁,给第二人菜单,并带给第二人食物,那就意味着第一人和第二人可能是在餐馆。知识整合引擎136使用该学习的信息来修改和更新框架表示。在一些情况下,知识整合引擎136可以利用该用户反馈,通过构建可以被组织并分组成若干个情节的框架,来编写抽象脚本(abstractscript)或情节(例如,图11中的情节1102)。在一种方法中,可以为每个名词构建抽象框架,然后,可以在情节中使用多个框架。

作为精心制作被设计用以提取框架语义的更高级别信息的更一般问题的又一个示例,再次考虑图1中引入的、作为故事106(t)的enzo和zoe的故事。故事如下:

enzo和zoe正在进行跑步比赛。enzo跌倒了。他伤了膝盖。zoe回头看。她几乎快到终点线了。她想赢。如果她继续跑,她应该会赢。enzo是她的朋友。zoe停下来。她回头跑向enzo。她帮助enzo起来。enzo说“谢谢你”,zoe说“不客气”,“如果我摔倒了,我想你会帮助我。我很高兴我能帮助你”。

根据该故事,知识整合引擎136可以请求更多地了解“比赛”通常是什么含义。在请求中,知识整合引擎136可以提供其知道的尽可能多的信息,例如“比赛(race)”的词义,使用术语“比赛(race)”的任何语义结构和框架等等。由此,对话引擎142生成一组一个或多个问题以从用户提取知识。例如,示例性的一组问题可以包括以下问题q1、q2和q3,如下:

q1:我看到这个故事正在谈论一场比赛。这些事物中的哪一个通常与比赛相关呢?

a.参与者

b.比赛的赢者

c.标志着比赛结束的终点线

这些选择可以被提供在来自知识整合引擎136的请求中,如从其他故事、框架、团体等中的“比赛”一词的其他用法中已知的。

q2:故事中有谁做这些事情?

a.参与者

b.赢者

可以从知识推导引擎138的类型信息和推导过程生成这些选择。

q3:在比赛中通常会发生以下哪些动作?

a.参与者跑步比赛

b.参与者想赢

c.参与者摔倒

d.参与者通过越过终点线完成比赛。

这些选择可以通过以下方式来生成:在回答第二个问题q2时使用用户提供的信息,用概念/角色替换故事中的命名实体,或者通过从大型背景语料库挖掘统计关联。

在该交互之后,系统具有关于比赛框架的新知识,例如典型的代理人和与其相关联的动作。比赛框架可能不完整但仍然有用。当系统遇到恰好提及比赛的其他故事时,可以进一步构造比赛框架并使其变得丰满。

图18示出了用于生成问题以提交给人类用户来质疑计算系统当前对语义结构和框架中反映的故事的当前理解的过程1800。参考图1、4、5和16的系统体系结构100和对话引擎142描述过程1800。如上所述,过程1800以两列示出,以总体上描绘由系统102执行的操作,其与由用户装置114和118执行的操作分开。

在1802,从知识整合引擎136接收请求,以识别可以触发如上所述的问题构想的信息。这些因素可能包括可用于解决故事模型与当前世界模型之间差距、以及提高系统对其当前解释的置信度的缺失信息。该请求提供关于单词或语义结构的已知信息或当前假设,但是从用户寻求进一步的信息,以验证系统的当前解释。

在1804,生成一个或多个问题,以发现与请求相关的缺失或验证信息。在一个实施方式中,在1806,问题生成涉及构建依赖性结构,该依赖性结构允许系统推断用于解释和回答问题的对话上下文。依赖性结构可以被实现为具有根节点和到子节点的分支的树型数据结构,其允许对话引擎逻辑地遍历该结构以询问开始问题和后续问题。参考图17示出并描述了一种这样的依赖性结构。在1807,自然语言生成引擎1607使用语法信息、与gsp相关联的自然语言模板、以及从知识整合引擎传入的背景语料库信息,以呈现来自故事模型和当前世界模型的信念。这样,这些问题以非专家用户能够理解的自然语言形成。

在1808,依赖性结构支持的问题被排队以便稍后分配给用户。可以在列表中进一步把这些问题区分优先次序,以便以有序的方式问这些问题,并且当接收到回答时,可以从该列表中移除某些依赖性问题,因为不再需要询问。可以基于各种度量来对问题进行排列,例如获得对问题回答的效用。问题的回答也可以根据各种度量进行排列,例如系统对回答选项的置信度。

在1810,通过在网络上将问题从计算系统102发送到用户装置114/118,向用户提出一个或多个问题。在1812,将问题呈现给用户,例如在对话ui中。在1814,收集用户输入,并且响应从用户装置返回到计算系统102。

在1816,处理响应以确定接下来可能问什么问题。另外,在1818,这些响应被聚合并返回到知识整合引擎,以用于更新当前世界模型。

在另一实施方式中,对话方法可用于确定应将哪些实例化的gsp结构和框架结构添加到故事模型132或作为对当前世界模型138的更新。知识整合引擎136通过根据组合语法组合gsp结构库来搜索可能未实例化的gsp结构的空间,来确定哪些gsp结构和框架结构是故事中自然语言文本的真实解释。然后,使用来自故事的实体以及经由知识推导引擎访问的背景语料库中建议的实体,来实例化这些gsp结构。使用自然语言生成引擎1607以自然语言描绘这些实例化的gsp结构。使用各种资源来过滤实例化的gsp结构的自然语言描绘,这些资源包括例如来自知识推导引擎140的文本蕴涵或文法(n-gram)资源,诸如文本蕴涵检测器1316。

原始文本以及实例化的gsp结构的过滤的自然语言描绘经由对话引擎142呈现给一个或多个用户。知识整合引擎136分析用户响应、执行可靠性、概率和阈值分析,确定应该以什么置信度将哪些gsp实例化结构添加到故事模型132中。然后,可以将得到的信念概括并且整合到当前世界模型138中。以这种方式,知识整合引擎136实现了经由实例化gsp结构和框架结构,自动创建、评分和精炼用于将语言/文本映射到知识的通用规则的方法。知识整合引擎136还可以提供编码语言映射规则的机制,该语言映射规则是以gsp语言和/或作为框架的词汇-语法-语义。在对话会话期间引出的用户反馈可用于评估和修订语言映射规则。

除了文本解释和文本到gsp规则之外,系统102还采用一种用于提取常识推理规则的方法。在已被确认为对给定文本的真实解释的gsp结构之间假设了暗指和关联性。暗指和关联性以一般形式呈现给用户以供确认。如果确认了这些一般提议,则搜索其他示例并将其呈现给用户,以进一步确认和精炼。

说明性的对话用户界面

图19示出了便于计算系统和用户之间的交互的对话用户界面(ui)1900。图19中所示的ui和以下其他内容是为讨论目的而提供的示例。实际界面可以与图19中的外观不同,因为产生了各种类型的问题。例如,取决于问题、正在寻找的信息、用户屏幕的大小/类型等,一个或多个图形特征可以看起来不同或者可以完全省略。

在图19中,对话ui1900被示为第一屏幕渲染1902,其可以显示在用户装置上(例如协作者的装置114(1)),并且在计算系统102和人类用户之间的对话会话1604期间由用户看到。屏幕渲染1902被示为在浏览器内呈现的网页。然而,如上所述,这仅仅是一种可能的实施方式,并且可以采用其他技术来便于呈现问题且便于电子用户输入问题。

屏幕渲染1902包括主要区域1904,其包括沿左侧的图形对话界面1906。图形对话界面1906具有一系列对话框,例如框1908和1910。归因于通过图形指示的源来显示这些对话框,其中,顶框1908被归因为源自计算机系统(如由蝴蝶图标表示,尽管可以使用其他符号),并且下框1910被归因为源自用户(由用户图标表示)。在这个示例中,系统正试图从示例的ben和ava的故事中的句子“ben将食物带给ava”中理解“带”这个词。在顶部对话框1908中提供了关于“带”一词的含义的问题,如下:

所以,这是我试图理解的一句话:

ben将食物带给ava。

下面哪个选项使用最类似于上面的句子中“带”一词?

然后,将提供针对可能答案的多个选择的响应模板放入第二对话框1910中。在该示例中,选项包括:

1.将某物或者某人随身带到某地。

2.导致进入特定状态或状况。

3.合法地呈现或提出。

虽然归因于用户(由用户图标可视地表示),但是,对话框1910填充有从计算机系统接收的多选内容。用户归因(userattribution)传递的是,用户正在选择选项之一,以便将关于“带”一词词义的话题的响应提供回到计算机系统。响应对话框1910还包括若干个一般动作项:“其他”用于请求其他选项,“未指定”指示故事在该点上不清楚,以及“跳过”是当用户不确定问题的答案时。

同样,沿右手侧排列的可选图形框在主要区域1904中。这些图形框可以包括故事描述框1912,以识别正在讨论的故事,以及故事理解框1914以概述系统正在考虑的当前对故事的理解。

在该示例中,假设用户选择选项1,其提供在“ben将食物带给ava”中使用的词语“带”的含义,意思是“将某物或者某人随身带到某地”。当对话引擎接收到此答案时,它会遍历关联的依赖性结构以识别下一个问题。然后,将该下一个问题返回给用户装置以呈现给用户,如图20所示。

图20示出了在图19的屏幕渲染1902之后,在用户装置上呈现的对话ui1900的第二屏幕渲染2002,以示出对话会话中的下一个问题。在该示例中,对话界面1906已经在视觉上向上移动,使得最后一个对话框1910的边缘在主要区域1904的顶部部分可见。在该对话框1910下方是包含下一个问题的新对话框2004,新问题是基于用户对上一个问题的响应进行明确表达。由于用户回答了选项1,下一个问题是:

好的。这是我的下一个问题。

我认为“带来”告诉我一个动作:某种变化。也就是说,在动作发生后,有些事物有所不同。

对吗?

响应对话框2006还向用户呈现,其具有“是”和“否”的响应选项。假设用户同意该陈述,并在对话框2006中回答“是”。该响应被返回到对话引擎,该对话引擎再次遍历关联的依赖性结构以识别下一个问题。然后,将该下一个问题返回给用户装置以呈现给用户,如图21所示。

在图20中的主要区域1904中还示出故事理解框2008的更新版本,以反映部分由用户响应确认的信息。在这里,语法角色被添加到句子中,以便“ben”被识别为主语,“带”作为动词和“食物”作为宾语。

图21示出了在图20的第二屏幕渲染之后,在用户装置上呈现的对话用户界面1900的第三屏幕渲染2102,以示出对话会话中的又一个下一问题。由于用户在最后一个响应中确认系统对表示动作的单词“带”的理解,因此对话框2104中呈现的下一个问题调查用户可能理解故事的进一步的知识。在这个示例中,问题可以是:

好的,这是我们正在阅读的句子:

ben将食物带给ava。

在这一点上,我的理解是:

ben使得“带”这个动作发生。

这是我的下一个问题:

由于“带”这个动作,改变了什么事情?

还向用户呈现响应对话框2106,其具有针对可能答案的多个选择。在此示例中,呈现了五个选项:

1.食物位于某处。

2.ben位于某处。

3.ava有了食物。

4.食物的位置与ava有某种关系。

5.ben的位置与ava有某种关系。

用户可以选择这些选项中的一个或多个,或者选择框2106中的一般动作项中之一:“其他”用以请求其他选项,“未指定”指示故事在这一点上不清楚,以及“提交”用以将答案发回系统。

在主要区域1904中提供故事理解框2108的更新版本,以反映部分地由先前用户响应确认的信息。提供对“将某物或者某人随身带到某地”的确认含义,以显示出对故事中的句子增强的理解。

对话引擎继续询问更多问题,直到依赖性结构中表示的所有相关问题都已穷尽。对话引擎还可以询问开放性阅读理解问题。这个知识体(例如在故事理解框2108中表示的知识体)由答案聚合器1622聚合,并返回到知识整合引擎136以进行进一步处理。

说明性的分布式对话系统

如先前所介绍的,对话引擎142可以以线性方式构建与单个用户的对话会话,以讨论故事的自然语言文本。这些对话会话通常超出一次性交流,因为寻求多条信息,并且以后的交流可能取决于早期问题的答案。例如,当计算系统正在处理句子“青蛙通过它们的皮肤呼吸”时,对话引擎142可以由知识整合引擎136分派任务,去参与与用户的对话会话,以学习呼吸是吸入和呼出空气的循环的过程,其目的是获得青蛙身体所需的氧气,大多数动物通过它们的鼻子而不是通过皮肤来呼吸。在一些情况下,与单个用户的这种扩展交互可能将高认知负荷安排给用户,并且串行特性的对话会话执行起来耗费时间。

为了加速学习过程,可以扩展对话会话,以使多个用户并行参与。对话会话被分割为子对话,其中,用户可以独立于其他人回答关于故事的讨论中的某些个别问题。例如,在青蛙对话会话中,可以独立于所涉及的器官来探索呼吸的机制和目的。在多个用户之间分配问答会话,并且使得这些用户并行地参与,允许计算系统更快地学习。

因此,在某些实施方式中,对话引擎142采用分布式对话分配器1620将对话会话分解为子对话会话,并将那些子对话会话并行地分配给更广泛的用户受众。在一个实施方式中,分布式对话分配器1620利用与句子或文本字符串相关联的依赖性结构来分解对话会话,允许系统通过将其问题分配给多个用户,来灵活地管理安排给用户的认知负荷。以这种方式,系统在逻辑上具有单个对话会话,该对话会话的负荷实际上被分配给多个用户。

图22-24更详细地示出了分布式对话系统的一个示例性实施方式。图22示出了对话引擎142,其中,分布式对话分配器1620通过网络120将问题2202(1)、2202(2)、…、2202(p)分配给多个用户,例如协作者114(1)-(c)。可以向多个人提出相同的问题,或者可以将不同的问题分配给不同的用户组。协作者114(1)-(c)可以被视为一群用户,他们通过诸如亚马逊土耳其机器人(amazonmechanicalturktm)之类的服务,被非正式地聚集或被正式地组织。这些用户查看问题并返回他们的回答2204(1)、2204(2)……2204(p)到对话引擎142。

分布式对话分配器1620包括结构爬虫(crawler)2206,用以基于用户响应来迭代通过依赖性结构(例如依赖性结构1610或其在对话列表1614中的有序表示),以识别下一个问题。结构爬虫2206使用来自先前问题的用户响应,来选择适当的分支并发现还需要学习什么。在一些情况下,依赖性结构1610通向多个可能的后续问题,通常表示为数据结构中的兄弟节点。当发生这种情况时,可以将针对下面的问题的不同选项并行地呈现给不同的协作者。

然后,用户选择器2208可以选择一组或者多组人来发送后续问题。用户选择器2208可以选择将相同的问题发送给多个人,例如由协作者114(1)-(2)表示的组。可替选地,用户选择器2208可以决定向不同的用户或用户组发送不同的问题。例如,如图22所示,用户选择器2208可以选择将不同的问题2202(1)-(p)发送给不同的用户,例如协作者114(1)-(c)。以这种方式,许多用户可以并行地评估和回答问题。这允许计算系统更快地扩展和学习。计算系统可以并行读取任意数量的书籍,并且使任意数量的人并行地参与,从而允许系统更快地获得理解。

用户选择器2208可以使用启发式和简档信息来确定谁应该接收问题。在一个实施方式中,协作者可以具有提供关于他们的信息的简档,例如年龄、阅读水平、他们读取的示例性书籍等。类似地,故事或文本可以具有相关的简档信息,例如阅读或年级水平、词汇等级等等。用户选择器2208可以将用户的简档与故事进行比较,并尝试在两者之间映射适当的级别。例如,如果文本适合于高中阅读水平,则用户选择器2208可以识别具有高中阅读水平或更高水平的用户。

图23示出了涉及多个用户的一个示例性分布式对话会话。在这个示例中,对话引擎142正在处理句子“大雨滴落在chloe的脸上”。对话会话的目标信息是发现或确认该句子的适当语义解释,从动词“落(fall)”的词义开始。分布式对话分配器1620可以向第一组用户2302询问开始的问题(如对话框2304中所示)“‘大雨滴落在chloe的脸上’中的“落(fall)”的含义是什么”。假设响应来自第一组中的大多数或所有用户的响应是选项1“在重力的作用下下降”,如对话框2306所示。

基于该响应,结构爬虫2206从依赖性结构中发现存在关于雨滴的前后状态的两个可能的后续问题。而且,两个可能的后续问题由依赖性结构中的兄弟节点表示,因此这些问题可以并行地问不同的用户。相应地,用户选择器2208选择将由对话框2308表示的第一后续问题发送给相同的第一组用户2302。第一后续问题询问“在‘大雨滴落在chloe的脸上’之前,雨滴的状态是什么样?”并行地,用户选择器2208将第二后续问题(由对话框2310表示)发送给不同的用户组2312。第二后续问题询问“在‘大雨滴落在chloe的脸上’之后,雨滴的状态是什么样?”。

然后,每组用户可以同时回答这些问题。对于第一后续问题2308,假设第一组2302中的大多数或所有用户选择选项3,“它在天空中”作为雨滴的前状态,如对话框2314所示。类似地,对于第二后续问题2310,假设第二组2312中的大多数或所有用户选择选项2,“它在chloe的脸上”,作为雨滴的后状态,如对话框2316所示。如在该示例中所示,这些问题被分配给两个组,但系统实现了相同的结果,就好像它已经顺序地向同一个人问了两个问题一样。但是,在更短的时间内实现了相同的结果,并且安排给每个用户的负荷更少。

图24示出涉及多个用户的另一示例性分布式对话会话。在这个示例中,对话引擎142正在处理文本,“enzo和zoe正在比赛赛跑。enzo摔倒”。对话会话的目标信息是发现或确认两个句子的正确语义解释,从单词“摔倒(fall)”的词义开始。分布式对话分配器1620可以向第一组用户2302询问开始问题,例如“‘enzo摔倒’中的‘摔倒(fall)’与chloe滑倒在泥浆中的‘倒(fall)’的使用方式一样吗?”,如对话框2402所示。同时,分布式对话分配器1620可以向第二组用户2312询问不同的开始问题,例如“enzo摔倒’中的‘摔倒(fall)’是什么意思?”,如对话框2404所示。

在图24中,假设第二组用户2312通常以对话框2406所示的答案“突然失去直立位置”来响应第二开始问题2404。基于该响应(r1),生成两个其它的后续问题,如对话框2408和2410所示。分布式对话分配器1620将第一后续问题2408分配给第一组用户2302,询问“在‘chloe滑倒在泥浆中’之前,chloe是直立的。‘enzo摔倒’之前,enzo也是直立的吗?”,如对话框2408所示。并行地,分布式对话分配器1620将第二后续问题2410分配给第二组用户2312,询问“在‘chloe滑倒在泥浆中’之后,chloe在地面上并且沾满泥。在‘enzo摔倒’之后,enzo是在地上,在泥浆中?”,如对话框2410所示。请注意,这些问题可以彼此独立地来问,因此,不同的用户组可以提供对问题的响应,无需知道其他问题和正在回答这些问题的组。在所描述的实施方式中,这些后续问题在依赖性结构中的兄弟节点处找到,并且分布式对话分配器任意将它们分配给不同的用户。

假设对第二后续问题2410的响应通常是:enzo在地面上但不在泥浆中,如对话框2412所示。基于该响应(r2),还有两个后续问题可以生成并且并行地分配给若干组用户。对于第一组用户2302,分布式对话分配器1620分配后续问题,询问“在所有人跌倒后,他们都在地上,对吗?”,如对话框2414所示。对于第二组用户2312,分布式对话分配器1620分配另一个后续问题,询问“他们跌倒后,什么时候有人在泥浆里?”,如对话框2416所示。

用户可以响应这些后续问题,并且对话会话可以继续,直到对话引擎142在知识整合引擎136的指导下,已经询问了关于故事的所有问题。这些响应被聚合并返回到知识整合引擎136,以用于修订当前世界模型138,并将故事模型132对准修订的当前世界模型。在问题穷尽并且故事被更深入理解之后,故事模型被认为完成,以下将参考图26在下一部分中进行描述。

图25示出了用于在对话会话期间向多个用户分配问题的过程2500。参考图1、4、5、16和22的系统体系结构100和对话引擎142描述过程2500。过程2500可以由计算系统102执行,具体地,由对话引擎142执行。

在2502,接收目标文本字符串和关联的依赖性结构。例如,文本字符串可以是句子、或其他短语或子句。依赖性结构是树型数据结构,其中,子节点表示依赖于父节点的答案的可能的后续问题。出于讨论目的,在图17中示出了一种依赖性结构。

在2504,首先在依赖性结构内找到根节点或父节点,以识别在对话会话期间要询问的问题序列或一系列问题中的开始问题。例如,参考图23,对话引擎可以启动对话会话,以发现“落(fall)”的词义,并且相应的依赖性结构中的一个父节点可以表示开始问题“‘大雨滴落在chloe的脸上’中的‘落(fall)’的含义是什么?”。在2506,对话引擎确定是否将该问题发送给一个或多个用户。如果是一个用户(即来自2506的“否”分支),在2508,问题分配器将问题发送给单个用户。另一方面,如果是多个用户(即来自2506的“是”分支),在2510,问题分配器向多个用户发送相同的问题。在系统希望调查用户的情况下,例如当问题提供具有许多可能答案的多选答案时,可以选择多个用户。大多数的一个选择可以作为适当的答案。

在2512,从一个或多个用户接收并分析一个或多个响应。基于这些答案,在2514,对话引擎的结构爬虫遍历依赖性结构,以找到一个或多个后续问题。在某些情况下,这涉及将树型结构从父节点向下移动到一个或多个子节点。如果多个子节点位于同一分支,则可以认为相关的后续问题彼此独立。因此,在2516,确定在依赖性结构中表示的后续问题是否与兄弟节点相关联。如果它们是(即,来自2516的“否”分支),则可以在2518处将问题发送给一个或多个用户。相反,如果存在多个兄弟节点(即,来自2516的“是”分支),则在2520,可以将不同的后续问题按组分配给不同组的一个或多个用户。

在2522,从用户接收一个或多个响应并对其进一步分析。如果关于相同句子或文本字符串可以询问更多问题,则在2514,过程2500继续进一步遍历依赖性结构。如果依赖性结构内的所有问题都已经做过了,则在2502,过程2500可以针对新的文本字符串继续。

说明性的故事模型

在询问所有用户问题并处理响应之后,知识整合引擎136对故事模型与当前世界模型进行最终对准。知识整合引擎136已获得足够的置信度,并准备输出故事模型132,以进行存储和索引。故事模型132在整个过程中进化到其最终状态,如现在将参考图26进行说明的。

图26示出了故事模型132的示例性图示以及故事模型如何由于本文描述的过程、随着时间的推移而进化发展。对于每个故事,故事模型132最初填充有语言分析结果712,其包含从故事的语法解析导出的语言结构714、实体类型726和相互参照链730。出于解释的目的,这在图26中示出为“版本1”。通过语义处理、推断和人类对话会话,学习有关故事的附加信息。表示故事的语义结构和框架被迭代地修改,以填充更多节点并添加更多关系。这在图26中由通过fv-1的版本2表示(即,倒数第二的最终版本)。早期,例如,在版本2中,系统可能发现“走”的动作包括关于以下的信息:人从哪走来和他/她要走到哪里去。相应地,创建语义结构并且寻求信息以填充在节点中。随着时间的推移,系统可以进一步学习到人ava正在走向餐馆,并且该餐馆是一家意大利餐馆。

在填充大部分或全部的语义结构和框架之后,并且关于语义结构和框架的置信度上升到足够的阈值,并且用户已经确认了大部分或全部的假设,可以生成最终版本,如图26中的版本fv(最终版本)所表示的。最终版本fv包括被完整填充的完成的语义结构和框架。单词具有其正确的含义,它们之间的关系为真和正确的。而且,已经推断并添加了故事中未隐含的信息。在这一点上,故事模型被认为与当前世界模型令人满意地对准了。为了进一步置信度,系统可以进一步向用户提出阅读理解问题,以便他们可以确认系统的理解是否正确。故事的最终版本被存储和索引。它的所有知识都包含在当前世界模型中,随着更多的故事被使用,当前世界模型会继续进化。

计算系统的理解的成长

图27示出了通过迭代处理越来越困难的自然语言故事以及使人类参与评估、改进和验证系统的理解,从而使计算机理解随时间增长的过程2700。过程2700由学习和理解计算系统102执行。通常,使用上述推断过程推断语义结构(诸如gsp和框架结构),以生成故事的表示。推断过程使用当前世界模型138中维护的信息、以及整个系统的其他资源(gsp数据库408、推导知识资源412等)。对话会话与一个或多个人类用户进行,以评估语义结构作为对故事的理解。通过推断过程和人类对话学习到的任何知识都作为修订和扩展的语义结构存储在当前世界模型中。随着更多故事被摄取和处理,当前世界模型随着时间的推移而扩展,从而增加了系统的理解。随着知识的扩展,计算系统变得能够以更高的阅读理解水平处理更难的主题。

根据一个实施方式,在2702,计算系统102在第一时间段内接收初始阅读理解水平的多个故事。例如,计算系统102可以摄取容易的文本来开始,例如学前、幼儿园或早期年级的早期阅读水平。这些故事可能伴随着许多阅读理解问题。在2704,对于每个故事,开发故事模型以表示故事。故事模型的开发包括前面描述的过程。例如,在2706,解析故事以在语句构成上分析故事,并为每个句子产生语言分析结果(例如,语法解析、谓词-论元结构、实体类型分配、相互参照)。例如,这可以由故事解析引擎134执行。

在2708,通过语义处理解析的句子的语法表示,将一个或多个语义结构推断为每个解析的句子的表示。在一个实施方式中,使用语言分析结果,根据少量语义基元,知识整合引擎136、知识推导引擎140和信念表示和推理构架144支持该动作2708来执行各种任务,创建初始语义表现。这些模块利用系统资源,例如关于世界什么是真的当前世界模型138、gsp数据库408、以及从大型语言语料库410自动推导的推导知识资源412,如上面更详细地描述的。在2710,针对当前世界模型评估进化的故事模型,以部分地确定故事模型不包含与当前世界模型138中的已知框架良好匹配的高置信度语义表现。

在2712,与也已阅读了故事的一个或多个人类用户构建对话会话,以探究用户对故事的理解,和/或改进、测试或质疑系统对故事的理解。将问题提交给用户装置114/118并呈现给用户以供查看和考虑。在2714,从用户装置接收响应并将响应用于修改语义结构。可以应用用户的答案来更新系统对关于世界什么是真的当前世界模型138中表达的故事的理解。可以使用对话引擎142来促进对话会话,并且知识整合引擎136可以用于根据用户反馈修改语义结构。

在2716,利用从对话会话学习的任何新知识、和对语义结构的任何修订来更新当前世界模型138。该知识可用于进一步创建存储在gsp数据库408中的新的、未实例化的gsp结构。随着计算系统102阅读和处理更多故事,随着时间的推移创建更多gsp结构(未实例化和实例化),gsp数据库408中的资源、以及当前世界模型138中的知识随时间的推移而增加。当前世界模型138可以由一组框架组成,这些框架是提议(包括但不限于gsp)的概率分布。当计算系统102阅读并理解更多文本时,它创建用于解释故事的新框架。

在2718,当前故事的故事模型被存储在故事模型数据存储库132中,并由计算系统102维护。故事模型可以在将来用于推断或理解其他故事,其中一些具有更高的阅读理解水平。

在2720,计算系统102继续接收和处理复杂性增大的附加故事,例如升级到下一阅读理解水平。利用每个摄取的新故事,计算系统102再次开发故事模型(在2704处),其涉及从故事推断意义,并利用人测试其理解。随着故事模型的开发,系统102用新知识更新当前世界模型138(在2716),并存储故事模型以供将来使用(在2718)。这个过程一遍又一遍地重复,使得随着时间的推移,学习和理解计算系统102构建一个大型的且日益复杂的知识库,该知识库表达为实体和提议的知识数据结构,例如通过一组相关的实例化生成语义基元和框架结构。

图28是示意图2800,其示出了当阅读理解水平提高的更多故事经受语法处理、语义处理和通过对话的人类评估时,当前世界模型138中体现为语义结构的知识如何随着时间的推移而增长。在沿时间线2802的早期或初始实例中,学习和理解计算系统102阅读具有初始或入门阅读理解水平的相对容易的故事si-si(总体上参考为106)。例如,这些故事可能适合于幼儿园学生或早期小学生。当前世界模型138可以预先填充一些语义结构或者从头开始构建。在时间t1,示出了当前世界模型138(t1),其具有相对较小的一组实例化gsp结构2804(t1)和框架结构2806(t1)。

随着时间的推移,系统102阅读并处理更多故事sj-sm,这些故事比入门级故事si-si更复杂。例如,故事sj-sm可以被认为是中等阅读理解水平,例如高年级学校或者可能是初级中学和初级高中。在时间t2,当前世界模型138(t2)扩展有更多知识,如实质上更多组的实例化gsp结构2804(t2)和框架结构2806(t2)所示。

类似地,随着时间的推移而继续,系统102阅读并处理甚至更多的故事sn-sz,故事sn-sz比先前的故事s1-sm更复杂。这些故事sn-sz可以代表较高阅读理解水平的文本,例如在高中或大学水平中发现的那些。在时间t3,当前世界模型138(t3)被扩展,以容纳相当数量的更多组的实例化gsp结构2804(t3)和框架结构2806(t3)。

相应地,计算系统对语言的理解是通过这些语义结构表达的、依赖于时间的概率性的信念网络。随着计算系统阅读和理解更多故事,网络随着时间的推移而扩展。系统的理解可以通过许多不同的可视化形式来表示,这些可视化允许最终用户和开发人员探索系统的理解,并更多地学习系统如何工作和正在如何工作。

图29示出了一组示例性可视化2900,其示出了递增地构想概率信念网络和迭代地改进其全局逻辑一致性的动态过程。在一个实施方式中,学习和理解计算系统102包括可视化模块2902,其生成系统理解的可视化。这些可视化包括:第一或故事级可视化2904,其示出关于单个故事的信念网络,和故事星系可视化2906,其示出了许多故事星座之间的关系。可视化模块2902可以实现用户控制,例如缩放控制,其允许用户放大到单个故事视图2904(或甚至其中的节点),或从单故事视图2904缩小到星系可视化2906,以及中间的任何范围的视图。

在所示示例中,单个故事可视化2904由节点(node)2910和弧(arc)2912的层或环组成。每个节点2910表示关于哪个信念为真的逻辑假设。每个弧2912在一对节点之间延伸,并且传达指示一个信念以某种概率支持另一个信念的真实性的关系。节点以层或环2914排列,以表示不同类别的信念。例如,关于叙事中存在的特定句子的信念可能是一个环。关于单词或短语的可能含义的信念可能是下一个环。在图29中示出了内环(innerring)2914(1)和外环(outerring)2914(2),其被调用以显示这种环的存在。节点2910、弧2912和环2914可以进一步进行颜色编码,以在整个可视化中将它们区分。

在另一实施方式中,每个层或环具有一个或多个子环或子结构,以允许在该层或环中示出任意数量的信念(节点)和支持物(弧)。在一个实施方式中,层或环中的节点及其附接的弧以动画绘制,以示出当模块130中的一者中的潜在驱动器或算法考虑新数据时,新的假设信念被添加到网络环。例如,环可以旋转、分裂、折叠和/或改变它们的节点密度以允许更多假设。

例如,节点2910或弧2912的外观的变化可以表示其相信的置信度。例如,节点或边缘的不透明度可能是系统对相应信念为真的置信度的函数。被认为绝对为真的信念将完全不透明,而被认为绝对为假的信念将是完全不可见的。在这两个极端之间某处考虑的信念会有相应的透明度。

外观的改变可以进一步说明系统的推断过程。例如,节点周围的光晕突出显示(例如光晕节点(halonode)2910(h))可以指示其被认为为真的,以探索被暗指的其他信念,并且弧上的类似突出显示可以说明暗指本身。

在所示的示例中,星系可视化2906包含多个点(points)2920,其中,每个点表示针对特定语言问题的故事可视化2904的缩小视图。通过缩小到星系视图2906、然后返回放大到单故事视图2904的动画,可以看到并学习系统如何追求对许多语言问题的即时理解,并且可视化可以改变其焦点。

结论

尽管用特定于结构特征和/或方法动作的语言描述了本主题,但应理解,所附权利要求书中限定的主题不必限于所描述的特定特征或动作。而是将特定特征和动作公开为实现权利要求的示例性形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1