《知识图谱》赵军 学习笔记

一、 概述

狭义地讲,知识图谱是由谷歌公司首先提出,被互联网公司用来从语义角度组织网络数据,从而提供智能搜索服务的大型知识库。

形式上,知识图谱是一个用图数据结构表示的知识载体,描述客观世界的事物及其关系,其中,节点代表客观世界的事物,边代表事物之间的关系。在具体实现上,知识图谱用语义网(Semantic Web)中的资源描述框架(Resource Description Framework, RDF)对知识体系的实例和数据两个层面的内容进行统一表示,共同构成一个完整的知识系统。

扩展开来,知识描述、实例数据及其相关的配套标准、技术、工具及其应用系统构成了广义的知识图谱。

如何让计算机自动阅读、分析、理解海量繁杂的 数据,从中挖掘有价值的 信息,为用户提供精准的 信息服务,是构建下一代信息服务的核心目标之一。

语义网的定义: 定义一种对客观世界进行描述的概念化规范(即本体),基于本体并通过一套统一的元数据规范对网络内容进行详细的语义标记,从而赋予万维网信息以含义,将网页互联的万维网转化为内容互联的语义网。

知识图谱的几个特点:

目前所定义的知识图谱只能表示事实性的知识,或者称为以实体为核心的结构化知识。知识类型还有很多:常识知识、场景知识、事务知识、情感知识等。

知识图谱丰富的语义表达能力和开放互联能力,为计算机理解万联网的内容以及万联网知识互联打下了坚实的基础。

知识图谱的发展经历了从人工标注到群体智能,到基于统计机器学习的自动构建过程,也体现了从单一语言、单一领域到多语言、多领域的发展趋势。

以符号表示为基础的知识图谱和以数值计算为基础的深度学习在不同应用中各有优势,目前的趋势包括在 深度学习方法中融合知识图谱在知识图谱中应用深度学习技术

知识总体上可以分为陈述性知识(或称描述性知识)和过程性知识(或称程序性知识)两大类。

  • 陈述性知识描述客观事物的形状等静态信息,主要分为事物、概念、命题三个层次。
  • 事物指特定的事或物;
  • 概念是对一类事物本质特性的反映;
  • 命题是对事物之间关系的陈述。命题又可以分为非概括性命题和概括性命题。
    • 非概括性命题表示特定事物之间的关系;
    • 概括性命题描述概念之间的普遍关系。
  • 过程性知识描述问题如何求解等动态信息,分为规则和控制结构两种类型。
  • 规则描述事物的因果关系;
  • 控制结构描述问题的求解步骤。

在对各种知识进行收集和整理的基础上,进行形式化表示,按照一定的方式进行存储,并提供相应的知识查询手段,从而使知识有序化,这是知识共享和应用的基础。 知识编码和数字化形成了知识库

计算机擅长处理结构化数据。然而,互联网中大量的信息以非结构化的形式存储和传播,为了让计算机能够处理这些信息,就需要理解这些非结构化形式数据蕴含的语义,分析其中的语义单元之间的关系,从而将其转化为结构化形式。 数据的结构化并和已有的结构化数据进行关联,就构成了知识图谱。知识图谱对于知识服务有重要的支撑作用,能够将传统基于浅层语义分析的信息服务范式提升到基于深层语义的知识服务。

按照Wikipedia的描述:

知识图谱是谷歌公司用来支持从语义角度组织网络数据,从而提供智能搜索服务的大型知识库。

从这个意义上讲,知识图谱是一种比较通用的语义知识的形式化描述框架,它用节点表示语义符号,用边表示符号之间的语义关系。在计算机世界中,节点和边的符号通过”符号具化(symbol grounding)”表征物理世界和认知世界中的对象,并作为不同个体对认知世界中信息和知识进行描述和交换的桥梁。

在计算机科学技术领域,对知识和结构化数据的表示和存储具有不同的技术路线,最典型的包括 本体(Ontology)数据库(Database) 两类。

  • 本体是通过对象类型、属性类型以及关系类型对领域知识进行形式化描述的模型,强调的是概念表示。本体只对数据进行描述,而没有描述具体的实例数据。
  • 数据库是计算机科学家为了用电脑表示和存储计算机应用中需要的数据而设计开发的产品。一般主要用于存储数据,这些数据可以进行传递和交换,但是会假定参与方都已经明白和理解数据在传递和交换的过程中的描述和定义。文中认为 数据库系统对数据描述和数据记录的表示和存储采用了不同的机制

人工智能应用中不仅需要具体的知识实例数据, 数据的描述和定义也非常关键。 知识图谱用统一的形式对知识实例数据的定义和具体知识数据进行描述,即用三元组形式(二元关系)对知识系统进行资源描述和存储。

各个具体实例数据只有在满足系统约定的”框架”约束下运用才能体现为”知识”,其中框架(Schema,或称”元知识”)就是对知识的描述和定义, 知识框架和实例数据共同构成了一个完整的知识系统。

在约定的框架下,对数据进行结构化,并和已有结构化数据进行关联,就形成了知识图谱。

知识图谱往往需要将自身的框架结构映射到某种数据库系统所支持的框架定义上,必要时可以对数据库进行专门的扩展。所以, 知识是认知,图谱是载体,数据库是实现,知识图谱就是在数据库系统上利用图谱这种抽象载体表示知识这种认知内容

知识图谱以结构化三元组的形式存储现实世界中的实体以及实体之间的关系,表示为G = ( E , R , S ) \mathcal{G}=(\mathcal{E},\mathcal{R},\mathcal{S})G =(E ,R ,S ),其中,E = { e 1 , e 2 , … , e ∣ E ∣ } \mathcal{E}={e_1,e_2,\ldots,e_{|\mathcal{E}|}}E ={e 1 ​,e 2 ​,…,e ∣E ∣​}表示实体集合,R = { r 1 , r 2 , … , r ∣ R ∣ } \mathcal{R}={r_1,r_2,\ldots,r_{|\mathcal{R}|}}R ={r 1 ​,r 2 ​,…,r ∣R ∣​}表示关系集合,S ⊆ R × E × E \mathcal{S}\subseteq\mathcal{R}\times\mathcal{E}\times\mathcal{E}S ⊆R ×E ×E表示知识图谱中三元组的集合。

尽管目前大多数知识图谱都以三元组的形式表示各种类型的知识,但是实际上知识图谱的知识表示绝不仅仅在以二元关系为基础的三元组上,还体现在实体、类别、属性、关系等多颗粒度、多层次语义单元的关联之中,它以一种统一的方式体现知识定义(Schema)和知识实例(nstance)两个层次共同构成的知识系统。

从工程角度,知识框架一般包含三个层次的知识:

知识图谱应不应该包含推理规则型知识?

  • 一种观点认为:知识图谱仅仅是人工智能任务的重要基础设施,不应该包含推理等知识图谱的应用部分。他们认为,推理不是知识利用的必要条件。而且,目前众多流行的知识图谱都在去规则化,仅保留对知识数据的基本描述,因为推理规则确定性更弱,更难以管理。
  • 另一种观点认为,人类文明发展过程中,有意无意间传承了很多规则,这些抽象的知识给人们带来了很大的便利,不仅可以节省知识存储和搜索空间,也让人类能够发展出联想、推理、决策等更高层的认知能力。因此,在模拟高层认知能力的人工智能系统中应该建模这类知识,而知识图谱作为知识表示的基石,应该涵盖推理规则。

知识图谱以丰富的语义表示能力和灵活的结构构建了在计算机世界中表示认知世界的物理世界中信息和知识的有效载体,成为人工智能应用的重要基础设施。

可以从人工智能和语义网两个领域进行追溯:

  • 人工智能的研究目标是使计算机更加智能,让计算机能够完成一些人脑才能完成的任务,例如推理、分析、预测、思考等高级思维活动。人们希望借助知识库完成该目标,即把人类的知识用计算机进行表示和组织,并设计相应的算法完成推理、预测等任务。
  • 人们希望通过引入知识,使得原始数据能够支撑推理、问题求解等复杂任务(如多维数据分析),这个目标就是语义网(Sematic Web)。

因此,知识库在人工智能和语义网领域的目标可以分别总结为 知识的数据化 (让计算机表示、组织和存储人类的知识)和 数据的知识化 (让数据支持推理、预测等智能任务)。

1977年,图灵奖得主斯坦福大学教授费根鲍姆(Edward Feigenbaum)最早提出了”知识工程”的概念,他认为:”知识中蕴藏着力量(In the knowledge lies the power)”,并通过实验和研究证明了实现智能行为的主要手段在于知识,在多数实际应用中是特定领域的知识。

语义网使用能够被计算机理解的方式描述事物之间的联系,它的基本出发点是计算机能够自动识别并理解互联网上的内容,并对不同来源的内容进行融合,从而为人们更加快速地获取信息提供了技术支撑。

语义网的目标是以Web数据的内容和语义为核心,以计算机能够理解和处理的方式链接起来的海量分布式数据库,其理想是将整个万维网上的在线文档所构成的数据编辑成一个巨大可用的数据库。但是,在数据处理和智能应用上仍然存在缺陷,限制了语义网在实际中大规模使用的可能性。

  • 一方面,为了计算机能够方便地处理数据,需要对这些数据标注语义信息,但是Web数据量十分巨大,且涉及的领域范围非常广泛,这就要求标记方法必须具备很强的扩展性。因此, 如何自动地给Web上的网页内容添加合适的标签就成为关键问题之一
  • 另一方面,要让计算机能够处理Web上人类生成的数据,就需要机器具有”推理”和”思考”的能力。目前,在这个问题上语义网还存在很多不足,在很多应用场景下需要研究表达能力更强的知识表示形式。

由于以上问题的存在,语义网刚推出的十年间,并没有被大规模应用,但是在这方面的成果,大力推动了使用本体模型和形式化手段表达数据语义的方法的研究,为后续知识图谱的研究热潮奠定了基础。

语义网得到真正的发展,以维基百科(Wikipedia)为核心的协同知识资源起到了功不可没的作用(甚至可以说是决定性作用)。

最典型的两个大规模同一领域知识图谱Freebase和DBpedia都是以Wikipedia的Infobox数据为基础构建而成的。Freebase更偏向于知识工程的技术路线,而DBpedia更偏向于语义网的技术路线。

知识图谱这一领域的蓬勃发展是在Google于2012年正式提出知识图谱(Knowledge Graph)这个概念后。Google试图通过知识图谱,对网页内容进行刻画,从这些非结构化的文本内容中提取实体以及实体关系,将其事实性的文本内容转化为相互连接的图谱结构,从而让计算机真正做到理解内容。

根据知识的 客观性,可以把知识分为事实性(或者客观性)知识和主观性知识。

  • 事实性知识通常指那些确定性的、不随状态变化而改变的知识。 文中讨论的都是事实性知识
  • 主观性知识通常指某个人或群体的情感信息。

根据知识的 变化性质,已有的知识可以分为静态知识和动态知识。

  • 静态知识不随时间、空间的变化而变化。
  • 动态知识指那些随时间、空间的变化而变化的知识。 事件是动态知识的重要组成部分

另外,也可以把知识分为领域知识、百科知识、场景知识、语言知识、常识知识等。

  • 领域知识通常指的是某个领域内特有的知识。
  • 百科知识指的是那些涵盖各个行业、领域的通用知识。
  • 场景知识是指在某个特定场景下或者需要完成某项任务时所需要的知识。
  • 常识知识指的是那些大家都认可的知识。 常识也是人工智能领域的一大难题,目前对于常识的边界、常识如何表示等问题在研究界还存在很大的争论,常识的存储和利用也仍然是一个难点问题。

文中将已有的知识图谱根据领域和用途大致分为语言知识图谱、语言认知知识图谱、常识知识图谱、领域知识图谱以及百科知识图谱等几个类别。

传统构建知识图谱的方法主要基于专家知识,如:Cyc、WordNet、HowNet等。这些知识图谱无论是覆盖领域还是知识规模都难以达到实用的程度。

随着机器学习技术的发展,许多自动构建知识图谱的技术也发展起来,极大地提升了知识图谱的规模并拓宽了覆盖的知识领域,代表性的知识图谱有WOE、ReWeb、NELL和Knowledge Vault等。 整个知识图谱的构建经历了从人工和群体智慧构建到面向互联网利用机器学习和信息抽取技术自动获取的过程。几个有代表性的知识图谱简介如下:

除了上述通用领域知识图谱之外,针对特定领域的知识和应用需求,人们也构建了垂直领域知识图谱:

在构建和应用知识图谱的过程中有几个重要环节,主要包括知识体系构建、知识获取、知识融合、知识存储、知识推理和知识应用等。

知识体系构建也称为知识建模,是指采用什么样的方式表达知识,其核心是构建一个本体对目标知识进行描述。在这个本体中需要定义出知识的类别体系、实体之间的语义关系,同时也包括定义在这个本体上的一些推理规则。

语义网的核心是让计算机能够理解文档中的数据,以及数据与数据之间的语义关联关系,从而使得计算机可以更加自动化、智能化地处理这些信息。其中与知识图谱数据建模紧密关联的核心概念是 资源描述框架(RDF)

RDF的基本数据模型包括了三个对象类型:资源(resource)、谓词(predicate)及陈述(statement)。

  • 资源:能够使用RDF表示的对象称之为资源,包括互联网上的实体、事件和概念等。
  • 谓词:主要描述事件本身的特征和资源之间的关系。每一个谓词可以定义元知识,例如,谓词的头尾部数据值的类型(如定义域和值域)、谓词与其他谓词的关系(如逆关系)。
  • 陈述:一条陈述包含三个部分,通常称之为RDF三元组

目前知识图谱中的数据也是采用RDF数据模型进行描述。在知识图谱中,上述的”资源”称为实体或者实体的属性值,”谓词”称为关系或者属性,”陈述”指的是RDF三元组,一个三元组描述的是两个实体之间的关系或者一个实体的属性。。

知识获取的目标是从海量的文本数据中通过 信息抽取的方式获取知识,其方法根据所处理的数据源的不同而不同。知识图谱中的数据主要来源有各种形式的结构化数据、半结构化数据和非结构化文本数据(纯文本)。从结构化和半结构化数据源中抽取知识是工业界常用的技术手段,这类数据源的信息抽取方法相对简单,而且数据噪声少,经过人工过滤后可以得到高质量的结构化三元组。 学术界主要集中在非结构化文本中实体的识别和实体之间关系的抽取,它涉及自然语言分析和处理技术,难度较大。因为互联网上更多的信息都是以非结构化文本的形式存在,而非结构化文本的信息抽取能够为知识图谱提供大量较高质量的三元组事实,因此它是知识图谱的 核心技术

目前知识表示大多以实体关系三元组为主,因此信息抽取包括如下基本任务: _实体识别、实体消歧、关系抽取以及事件抽取_等。这一过程需要自然语言处理技术的支撑,由于自然语言表达方式变化多样,给信息抽取带来巨大挑战。目前主流的方法是基于统计机器学习的方法。

在知识图谱中,包含多种类型的语义关系,例如:上下位关系、部分整体关系、属性关系等。 关系抽取对于构建知识图谱非常重要,是图谱中确定两个节点之间边上语义信息的关键环节。然而,关系抽取也十分困难,因为对于同一语义关系的自然语言表达多种多样、十分丰富。另外,根据标注数据以及应用场景的不同,已有关系抽取方法可以分为有监督关系抽取、无监督关系抽取、弱监督关系抽取以及开放域关系抽取等。

知识融合是对不同来源、不同语言或不同结构的知识进行融合,从而对已有知识图谱进行补充、更新和去重。从融合的对象上来看,知识融合包括:知识体系的融合和实例的融合。

  • 知识体系的融合就是两个或多个异构知识体系进行融合,相同的类别、属性、关系进行映射。
  • 实体级别的融合是对于两个不同知识体系中的实例(实例关系、关系实例)进行融合,包括不同知识体系下的实例、不同语言的实例。

知识融合的核心是 计算两个知识图谱中两个节点或边之间的语义映射关系

从融合的知识图谱类型来看,知识融合可以分为:竖直方向的融合和水平方向的融合。

  • 竖直方向的融合是指融合(较)高层通用本体与(较)底层领域本体或实例数据。
  • 水平方向的融合是指融合同层次的知识图谱,实现实例数据的互补。

知识存储是研究采用何种方式将已有的知识图谱进行存储。因为目前的知识图谱大多采用基于图的数据结构,它的存储方式主要有两种形式:RDF格式存储和图数据库(Graph Database)。

  • RDF格式存储就是以三元组的形式存储数据,这种存储方式使得三元组的搜索效率低下,为了提升三元组的搜索效率,通常采用六重索引的方法。
  • 图数据库的方法比RDF数据库更加通用,优点是具有完善的图查询语言,支持大多数的图挖掘算法;缺点是数据更新慢,大节点的处理开销大。为了解决上述问题, 子图筛选、子图同构判定等技术是目前图数据库的研究热点

由于处理数据的不完备性、所构建的知识图谱中肯定存在知识缺失现象(包括实体缺失、关系缺失)。由于数据的稀疏性,我们很难利用抽取或融合的方法对缺失的知识进行补充。因此, 需要采用推理的手段发现已有知识中的隐含知识。目前知识推理的研究主要集中在针对知识图谱中缺失关系的补足,即挖掘两个实体之间隐含的语义关系。所采用的方法可以分为两种:

知识推理也可以直接应用于相关的应用任务。关键问题在于 如何将问题映射到知识图谱所支撑的结构表示中,在此基础上才能利用知识图谱中的上下文语义约束以及已有的推理规则,并结合常识等相关知识,得到正确的答案

知识图谱已经在智能搜索、自动问答、推荐、决策支持等各个相关任务上得到了广泛应用。

在未来的研究当中,知识图谱作为一种知识管理与应用的新思路,它的应用将不仅局限于搜索引擎,在各种智能系统中它都将具有更加广泛的应用。

知识图谱中的各个任务都需要对文本和符号进行表示和处理,在此基础上进行语义理解、知识推理进而支撑问答、对话、决策等上层人工智能应用。

虽然深度学习在特定任务上表现良好,但也存在不少局限性,并且很多是根本性问题。

  • 当前的深度学习模型需要依赖大量的标注数据。
  • 这种纯粹的数据驱动方式不仅结果不可解释,而且学习过程也不可调控。
  • 端到端的学习过程很难加入先验知识,而大量应用任务中人的先验知识非常重要。

为了模拟人类的认知过程,进行更好的知识抽象和推理,人们定义了符号逻辑对知识进行表示和推理,其中知识图谱就是典型代表之一。但是,符号逻辑难以从历史数据中习得,目前大多还是采用人工编撰和校验的方式获得符号逻辑推理规则;而且,尽管可以利用概率图模型等方法学习有限的知识推理规则,但是受限于模型复杂度还是难以扩展到大规模数据上。

为了利用有限标注数据进行有效的预测,应融合可学习的表示学习模型和可表达、可解释的符号逻辑方法。利用表示学习模型从历史数据中学习知识,结合使用符号逻辑表示的领域专家知识,不仅能够有效提升预测性能,还能够得到可解释的预测结果。因此,人们逐渐形成共识:

基于数值计算的深度学习方法与基于符号表示和匹配的方法需要融合。

只有这样才能把现有基于浅层语义分析方法提升到能解决更深层、更高级人类认知任务的深层语义分析方法。

  • 一类抽象层次较高,每个推理步骤都是从设计好的操作集合里选择,再选择合适的操作数。通过依次执行多个操作,得到针对用户问题的最终答案。
  • 另一类做法抽象层次较低,它们从模拟计算机底层操作方式的角度抽象模型,设计出内存、CPU控制器等结构,并借鉴传统计算机操作系统的思路,从随机访存、空间内存分配、访存时序等不同侧面进行建模,完善模型的性能。

二、知识表示

知识应用的难点在于知识推理,知识推理的难点在于知识表示。因此,知识表示是基于知识的人工智能应用中的核心部分。

在1993年的AI Magazine上发表的文章”What is a Knowledge Representation?”中指出:

知识表示的五个主要角色是:

  1. 知识表示是一种代理,基于对知识的表示,我们无需实践而是通过思考和推理就可以得到有关外部世界的结论;
  2. 知识表示是一组本体论约定的集合,说明我们以什么样的方式来思考世界;
  3. 知识表示是智能推理的组成部分:推理需要对知识进行表示,但知识表示不是推理的全部;
  4. 知识表示是高效计算的媒介:通过对知识进行有效组织,支持高效推理;
  5. 知识表示是人类表达的媒介:基于通用表示框架,方便人们表达和分享对世界的认知。

逻辑本身根据复杂性从简单到复杂分为:命题逻辑、一阶谓词逻辑、高阶逻辑。

  • 命题逻辑(Propositional Logic)具有最简单的语法,它定义了具有真假值的原子命题,并可以通过与(∨ \lor ∨)、或(∧ \land ∧)、非(¬ \neg ¬)、蕴含(⇒ \Rightarrow ⇒)、当且仅当(⇔ \Leftrightarrow ⇔)等逻辑连接符将多个原子命题组合成复合命题,而推理过程则根据逻辑连接词的真值表进行自动推导。
  • 一阶逻辑谓词又简称为一阶逻辑(first-order logic),它在命题逻辑的基础上引入了全程量词(∀ \forall ∀)和存在量词(∃ \exist ∃),这使得一阶逻辑可以量化实体和概念。但是一阶逻辑不能量化谓词或集合,这些可以在高阶逻辑(higher-order logic)中得以实现。二阶逻辑可以量化集合,三阶逻辑可以量化集合的集合,以此类推。

命题逻辑的基础就是上述五种逻辑连接词,它们可以将一些原子命题组合成现实中的复杂知识。为了避免运算的歧义,命题逻辑还定义了不同连接词和操作符的优先级关系。

在经典逻辑学中,一个命题要么是真要么是假,不会存在中间状态,但在概率逻辑中,会对这种假设进行松弛,使命题可以以不同的概率处于真和假之间的状态。

谓词逻辑可以分为一阶谓词逻辑和高阶谓词逻辑,它们的主要区别在于是否可以量化谓词或者集合。由于高阶谓词逻辑过于复杂,实践中应用很少。

一阶谓词逻辑又简称一阶逻辑,他在命题逻辑的基础上增加了量词的概念。一阶逻辑的基本语法元素是表示对象、关系和函数的符号,其中对象对应常量符号,关系对应谓词符号,函数对应函数符号。对象是指一些事物的个体或类别,关系或谓词是指一种映射,函词是代表全函数的一种特殊的谓词形式,它要求每一个定义域中的对象具有一个映射值。

谓词逻辑的优势是可以表达对象集合的属性,而不用逐一列举所有对象,通过量词就能够实现对对象集合的描述,一阶谓词逻辑中有两种量词:全称量词(∀ \forall ∀)和存在量词(∃ \exist ∃)。

  • 全称量词(∀ \forall ∀)表示集合的全部,形式化地,对于任意的含有x x x的逻辑表达式P P P,语句∀ x P \forall xP ∀x P表示对于每一个对象x x x,P P P为真。
  • 存在量词(∃ \exist ∃)用来表示在论域中存在至少一个对象,这一对象无需显式表示出来。形式化地,对于任意的含有x x x的逻辑表达式P P P,语句∃ x P \exist xP ∃x P表示至少存在一个对象x x x,使P P P为真。

命题逻辑和谓词逻辑是陈述性的,它利用简单统一的方式描述知识,让知识表示和知识推理分离,使得推理方法完全不依赖于具体领域。

这种产生式表示方法难以表示过程性知识和不确定性知识,而且当表示知识中的属性时、谓词和命题数量增大时,其推理过程因为符号的组合爆炸问题,计算复杂性呈指数级增长态势。因此, 基于谓词逻辑的推理过程比较耗时,工作效率低

语义网络(Semantic Network)模型认为人类的记忆是由概念间的联系实现的,该思想受到两点启发:

语义网络是一个通过语义关系连接起来的概念网络,它将知识表示为相互连接的点和边的模式,其中,节点表示实体、事件、值等,边表示对象之间的语义关系。 语义网络其实是一种有向图表示的知识系统,节点代表的是概念,而边则表示这些概念之间的语义关系。最基本的语义单元称为语义基元,可以用三元组表示:

语义网络中有很多种类型,包括:

可以按照论元个数把关系分为一元关系、二元关系和多元关系。

  • 一元关系可以用一元谓词P ( x ) P(x)P (x )表示,P P P可以表示实体/概念的性质、属性等。
  • 二元关系可以用二元谓词P ( x , y ) P(x, y)P (x ,y )表示。其中,x , y x,y x ,y为实体,P P P为实体之间的关系。
  • 多元关系在语义网中被转化为多个二元关系的组合,然后利用合取把这种多元关系表示出来。

语义网络利用最简单的一种统一形式描述所有知识,非常有利于计算机的存储和检索。但缺点是,它仅用节点及其关系描述知识,推理过程不像谓词逻辑表示方法那样明了,需要针对不同关系做不同处理,推理方法还不完善。

从认知学的角度,框架理论继承了人类认知世界的方式,对现实世界中各种事物,人类都是以一种类似于框架的结构存储在记忆中的。

当面对一个新事物时,人们就从记忆中找出一个合适的框架,并根据实际情况对框架中的具体值进行填充,填充的部分被称为槽(Slot),而框架以及槽的粒度则根据人类对事物的认知程度而定。

理论上,框架表示法是对世界知识的一种有效建模。

在原始的框架定义中,槽可以是任何形式的信息,包括原子值或值的集合;对于非原子的槽,还可以由多个侧面(facet)对槽的描述进行补充。这样做的目的是更立体更准确地描述事物的属性和关系。

人类对事物的认知存在层级的特性,框架的设计就引入了层级结构,并且根据类别之间的所属和细化,框架中的属性集合存在着继承性质。

框架表示法也有不可避免的缺陷:由于真实世界的多样性和复杂性,许多实际情况与框架原型存在较大差异,在框架设计中难免引入错误或冲突。另外,因为框架结构的复杂性,一方面,不同系统之间的框架很难对齐,另一方面,也给从非结构文本中抽取信息填充框架增加难度。

FrameNet是一个经典的基于框架表示的知识库,针对词汇级的概念进行框架的建模,它认为大部分词汇的语义能够通过语义框架的形式进行表示。最能指示框架发生的词叫做该框架的词法单元(lexical,LU),其它名词称为框架元素(frame element,FE)。FrameNet中的数据是以层级结构进行表示和存储的。位于最上层的节点表示框架,框架之间的边表示框架间的关系。框架之间有两种边:无向边和有向边,它们分别对应FrameNet中的无向关系和有向关系。每个框架下跟随的节点表示该框架的词法单元,它们由带词性限制的词元(lemma)组成。FrameNet还为每个词法单元标注了一组样例(examples),每个样例中详细标注了当前框架的词法单元和框架元素的信息。FrameNet还定义了8中关系,分别是:继承关系(inheritance)、视角关系(perspective_on)、子框架关系(subframe)、前置关系(precede)、使动关系(inchoative of)、因果关系(causative_of)、使用关系(using)和参考关系(see_also)。FrameNet被证明对一系列自然语言处理任务有明显的效果,包括信息抽取、文本蕴含、语义解析和角色标注等任务。

脚本通过一系列的原子动作来表示事物的基本行为,按照时间顺序描述事物的发生。脚本表示的知识有确定的时间或因果顺序,必须是前一个动作完成后才会触发下一个动作的开始。 脚本是一个描述动态的过程而非静态知识的表示方法

根据脚本表示法的定义,一个完整的脚本应该包括以下几个重要的组成部分:

脚本表示法能力有限,不具备对元素基本属性的描述能力,也难以描述多变的事件发展的可能方向。但在非常狭小的领域内,脚本表示方法却可以比其他方法更细致地刻画步骤和时序关系。

经典知识表示理论中的语义网络、框架和脚本都属于基于槽的表示方法,有所区别的是槽是否具有层次、时序、控制关系。

  • 语义网络是最简单的一种,它的每个三元组都可以看成是一个槽结构。
  • 框架系统由一组相关的框架联结而成,其中每个框架是由若干节点和关系构成的网络,因此,框架可以看成是层次化的语义网络,是语义网络的一般化形式。
  • 脚本是按照一定的时间流程对事件的发展和变换控制进行的建模,因此,可以认为是定义了时间和控制条件的槽结构,与语义网络也没有本质的区别。

此处的语义网(Sematic Web)与人工智能中提出的语义网络(Semantic Network)的概念有所不同。

语义网的概念来自于万维网(World Wide Web),最初的目的是为了对万维网的功能进行扩展以提高其智能程度,因此人们也将语义网称为Web 3.0。

目前主要包括如下三个层次:

XML的最初版本是二十世纪八十年代初被提出来用来处理动态信息的显示问题,以及为了解决HTML在数据表示和描述方面混乱的问题而提出的技术标准。XML作为标记语言,可以由相关人士自由决定标记集合,这样极大地提升了语言的可扩展性。

一个标准的XML文档需包含一个序言和若干具体的内容,也可以包含一个尾注。序言是对XML的声明以及对外部文档的引用。XML的内容通过元素来记录,元素都带有标签。元素可以有嵌套结构,嵌套深度不受限制。

XML具有树状结构从根节点出发,总会找到一条路径可以到达某一元素或属性,这被称为XML路径语言(XML path language, XPath),其作用是辅助XML解析器解析或者方便编程者处理。

XML的通用性其灵活性的严重限制,因此,迫切需要统一且无歧义的语义定义方式,以促进语义网不同知识的相互链接。

RDF假定任何复杂的语义都可以通过若干个三元组的组合来表达,并定义这种三元组的形式为”对象-属性-值”或”主语-谓词-宾语”。其中,需要公开或通用的资源都会绑定一个可识别的通用资源表示符(Uniform Resource Identifier,URI)。

有时候需要表示的参数超过两个,三元组不便直接表示这种情况,可以通过RDF定义的一组二元谓词(指该谓词有两个论文)来表示。 如何更好地扩展RDF的表达形式依然是一个开放的问题

知识表示后,需要存取相关的知识。研究者为RDF开发了一套类似于SQL语句中select-from-where的查询方式。

标准的RDF同样是领域无关的,使得同一领域中不同知识内容难以交互和融合。RDFs是一种用户描述RDF的轻量级语言,主要关注类别和属性的层次结构以及继承关系等。RDFs用词汇rdf: Property定义属性,即RDF的”边”,RDF不区分对象属性和数据属性。

RDF局限于二元谓词,RDFs则限制于子类和属性层次及其属性的定义域、值域。因此,W3C又提出网络本体语言(Web Ontology Language,OWL)作为语义网的领域本体表示工具。OWL主要包括头部和主体两个部分:

  • 头部:OWL描述一个本体时,会预先制定一系列的命名空间,并使用命名空间中预定义的标签来形成本体的头部。
  • 主体:OWL的主体是用来描述本体的类别、实例、属性之间相互关联的部分,它是OWL的核心。

OWL还有功能性标签,如传递性owl:TransitiveProperty,对称性owl:SymmetricProperty,函数性owl:FunctionalProperty,可逆性owl:inverseOf,约束性owl:Restriction。其中,属性约束标签owl:Restriction用来对一些类别进行约束。

在语义网络中,对节点和边的描述没有标准,用户可以自行定义,这就导致:

  1. 不同用户定义方式不同,不便于知识的分享;
  2. 无法区分知识描述和知识实例。

语义网基于W3C制定的标准,利用统一的形式对知识进行描述和关联,这种表示方法更便于知识的共享和利用。语义网通过语义具化(Semantic Grounding),让每一个概念(实体、类别、关系、事件等)都有一个唯一的标识符,这种唯一性使得知识共享在更大领域更大范围成为可能。

一个知识本体主要涵盖以下几个方面的内容:

目前大多数知识图谱主要是对前四部分内容(即事物、概念、属性和关系)进行建模,只有很少的知识图谱建模了简单的规则结构, 这也反映了不同层次知识在表示上的复杂程度不同。

知识图谱用节点对应事物或概念,用边对应它们之间的关系。并且,知识图谱用统一的形式对知识定义和具体实例数据进行描述,各个具体实例数据只有在满足系统约定的”框架”约束下运用才能体现”知识”。

知识图谱是一个知识系统,以一种统一的方式表示了知识定义(Schema)和知识实例(Instance)两个层次的知识。知识图谱也可以看成是语义网的工程实现,知识图谱不太专注于对知识框架的定义,而专注于如何以工程的方式从文本中自动抽取,或依靠众包的方式获取并组建广泛的具有平铺结构的知识实例,最后再要求使用它的方式具有容错、模糊匹配等机制。知识图谱放宽了对三元组中个项值的要求,并不局限于实体,也可以是数值、文字等其他类型的数据。

整个Freebase数据库是一张大图,每个节点都使用type/object定义,边使用type/link定义。每个条目称之为一个Topic,一个Topic往往有很多属性。

Freebase创造了一个虚拟的节点结构,被称为组合值类型(compound value type,CVT),试图对多元关系进行表示,CVT对更准确地表达知识是必需的。除此之外,CVT也是事件知识表示的基础,事件的角色和事件间的关系可以通过定义属性和关系进行描述。

知识图谱的真正魅力在于它的图结构,使得知识图谱与图论、概率图等碰撞出火花。

很多知识表示方法用符号显式表示概念及其关系,概念的种类和关系的类型都是人们总结的结果,其中难免存在有遗漏的情况,因此在语义计算过程中,仅仅依赖这些显式表示的知识,难以获取更全面的知识特征。

目前大多数语义计算任务都采用数值计算的统计机器学习方法,而作为知识载体的数据表示是机器学习中的基础工作,数据表示的好坏直接影响到整个机器学习系统的性能。因此, 人们致力于研究如何针对具体任务,设计一种合适的数据表示方法,以提升机器学习系统的性能,这一环节也被称为特征工程。特征工程在传统机器学习算法中有着不可替代的作用,但由于需要大量的人力和专业知识,也成为了机器学习系统性能提升的瓶颈。 为了让机器学习算法有更好的扩展性,研究人员希望可以减少对特征工程的依赖从人工智能的角度看,算法直接从原始的感知数据中自动分辨出有效的信息,是机器走向智能的重要一步。用特征、逻辑、框架等符号表示的知识便于人们理解,可解释性也更好,但是,大部分语义计算任务都是目标导向的。对于这类任务,我们不需要知道计算过程,只需要知道计算结果。

文本是符号数据,两个词只要字面不同,就难以刻画它们之间的联系。(语义鸿沟现象)我们希望 计算机能够从大规模、无标注的文本数据中自动学习得到文本表示,这种表示需要包含对应语言单元(词或文档)的语义信息,同时可以直接通过这种表示度量语言单元之间的语义相似度

词是知识表示的基本单元,而传统用不同符号表示各个词的方式不包含任何语义信息。使用神经网络构造词表示的方法可以更灵活地对上下文进行建模,这类方法开始逐渐成为了词分布表示的主流方法。

知识图谱表示学习的主要方法有张量分解模型和基于能量函数的模型等。

核心思想是将整个知识图谱编码为一个三维张量X ^ \hat X X ^,如果三元组r ( e 1 , e 2 ) r(e_1, e_2)r (e 1 ​,e 2 ​)存在于知识图谱中,则对应张量中的值X ^ e 1 , r , e 2 \hat X_{e_1, r, e_2}X ^e 1 ​,r ,e 2 ​​为1,否则为0。将张量X ^ \hat X X ^分解为核心张量R ^ \hat R R ^和因子矩阵A A A的乘积形式X ^ ≈ A T R ^ A \hat X \approx A^T \hat R A X ^≈A T R ^A,其中核心张量R ^ \hat R R ^中每个二维矩阵切片代表一种关系的语义,因子矩阵A A A中每一列代表一个实体的向量。 模型重构的结果A T R ^ A A^T \hat R A A T R ^A 中的每一个元素都被看做对应三元组成立的概率,如果概率大于某个阈值,则对应三元组正确,否则不正确这里重构的过程即是推理的过程。

张量分解在编码实体和关系的过程中综合了整个知识图谱的信息,它的主要缺点是需要优化张量中所有位置的值,包括0在内。因此,当关系数目较多时,张量的维度很高,分解过程计算量较大。

这类方法可以克服上述张量分解方法在大规模知识图谱表示学习的过程中学习效率低的问题。对于三元组r ( e 1 , e 2 ) r(e_1, e_2)r (e 1 ​,e 2 ​),定义基于三元组的能量函数f r ( e 1 , e 2 ) f_r(e_1, e_2)f r ​(e 1 ​,e 2 ​)。以TransE模型为例:

TransE模型中能量函数定义为f r ( e 1 , e 2 ) = ∣ ∣ e 1 + r − e 2 ∣ ∣ L 1 / 2 f_r(e_1, e_2)=||e_1+r-e_2||{L{1/2}}f r ​(e 1 ​,e 2 ​)=∣∣e 1 ​+r −e 2 ​∣∣L 1/2 ​​,e i e_i e i ​和r r r分别表示实体e i e_i e i ​和关系r r r的向量表示。记知识图谱中三元组的集合为Δ \Delta Δ,Δ r ( e 1 , e 2 ) ′ \Delta’{r(e_1, e_2)}Δr (e 1 ​,e 2 ​)′​表示由r ( e 1 , e 2 ) r(e_1, e_2)r (e 1 ​,e 2 ​)生成的负样本的集合(比如,随机替换e 1 e_1 e 1 ​或e 2 e_2 e 2 ​),学习的目标函数定义为
L = ∑ r ( e 1 , e 2 ) ∈ Δ ∑ r ( e 1 ′ , e 2 ′ ) ∈ Δ r ( e 1 , e 2 ) ′ [ γ + f r ( e 1 , e 2 ) − f r ( e 1 ′ , e 2 ′ ) ] + \mathcal{L}=\sum
{r(e_1, e_2)\in\Delta}\sum_{r(e_1′,e_2′)\in\Delta_{r(e_1, e_2)}’}[\gamma+f_r(e_1, e_2)-f_r(e_1′, e_2′)]_+L =r (e 1 ​,e 2 ​)∈Δ∑​r (e 1 ′​,e 2 ′​)∈Δr (e 1 ​,e 2 ​)′​∑​[γ+f r ​(e 1 ​,e 2 ​)−f r ​(e 1 ′​,e 2 ′​)]+​

其中,[ x ] + ≜ m a x ( 0 , x ) [x]_+ \triangleq max(0, x)[x ]+​≜ma x (0 ,x ),γ > 0 \gamma>0 γ>0是分离正样本和负样本的边界值。该目标函数的原理是使正样本的能量比负样本的能量低,通过惩罚负样本的能量值来完成学习过程。因此,推理过程即是计算三元组能量的过程,当三元组的能量值小于阈值时,该三元组为推断出的新三元组。 不同能量模型的区别在于能量函数的构造不同*。

知识图谱的表示学习是一个前沿学术热点方向,并且,表示学习和知识推理是两个相互关联的任务。

知识图谱是传统知识表示方法和语义网技术在互联网应用中的体现,它广泛利用了上述两类知识表示方法的技术和结果。

在知识图谱及其应用中,符号化和数值化表示的融合和统一是一个值得期待的发展方向。

三、知识体系构建和知识融合

知识图谱存储了结构化的知识,其中的实体、属性、关系等数据都具有明确的语义。实际上,知识图谱不仅包含了具体的实例知识数据,还包括了对知识数据的描述和定义,这部分对数据进行描述和定义的”元”数据被称为知识体系(Schema)或者本体(Ontology)。 能够以一种统一的形式(三元组格式)表述实例型数据和描述型数据是知识图谱得以广泛应用的重要特点。不同知识图谱关注的领域和侧面不同,如何对它们进行综合利用是一个重要问题。知识融合通过框架匹配和实例对齐,把分散的知识资源联合起来,可以极大地增加知识图谱的覆盖领域和共享程度,是知识构建的重要组成部分。

知识体系主要包括三个方面的核心内容:对概念的分类、概念属性的描述以及概念之间相互关系的定义。

知识体系的基本形态包括词汇(Terms)、概念(Concepts)、分类关系(Taxonomic Relations)、非分类关系(Non-Taxonomic Relations)和公理(Axioms)这五个不同层次。

完全自动地构建知识体系虽然是人们的终极目标,但是实践证明目前还很难做到,特别是最后两个层次的知识体系。

知识体系具有较高的抽象性及概括性,目前高质量的知识体系只能通过人工构建。早期,人们比较直接地构建了关于概念(类型)、概念属性和概念之间关系的知识体系。但是随着知识需求在不同领域和不同行业的增长,人们逐步构建出能够描述时空、事件等信息的知识框架。

人工构建知识体系的过程主要分为如下六个阶段:确定领域及任务、体系复用、罗列要素、确定分类体系、定义属性及关系、定义约束。

上述阶段在实践中并非严格的线性关系,有时需要回退到更早的阶段。

人工智能知识体系是一个耗时、昂贵、高度技巧化、程序繁琐而枯燥、很容易出错的任务。

知识体系的学习技术可以分为三大类:基于非结构化数据的知识体系学习、基于结构化数据的知识体系学习和基于半结构化数据的知识体系学习。

后两者的研究工作较少,大部分采用与人工构建结合的方式工作。

多个垂直领域都形成了专业的领域知识库,在这些知识库中,包含很多知识库没有的专业知识。只有将这些专业知识库联合起来应用,才能够满足用户跨领域的信息需求。

知识融合包括:竖直方向的融合和水平方向的融合。

  • 竖直方向的融合是指融合(较)高层通用本体与(较)低层领域本体或实例数据。
  • 水平方向的融合是指融合相同层次的知识图谱,实现实例数据的互补。

各个知识图谱的数据来源非常广泛、质量也会参差不齐、关注领域也不尽相同。 导致知识图谱之间存在多样性,不同知识图谱存在异构性。 知识表示的异构性导致不同的知识图谱难以被联合利用,因此融合不同知识图谱成为解决知识集成和共享的核心问题。

知识融合通过对多个相关知识图谱的对齐、关联和合并,使其称为一个有机的整体,是一种提供跟全面知识共享的重要方法。

按照融合的对象不同可以分为框架匹配和对象对齐。

  • 框架匹配是指对概念、属性、关系等知识描述体系进行匹配和融合。
  • 实体对齐指通过对齐合并相同的实体完成融合。

多个知识图谱中的实例知识常常有冲突, 如何检测多个知识图谱之间的冲突并进行消解也是知识融合的重要步骤。

知识体系的不同导致不同知识图谱难以联合利用,框架匹配可以解决知识体系之间的异构性,是知识融合的重要组成部分。 框架匹配也称为本体对齐。

知识框架主要包括概念(类型)、属性、关系和它们之间的约束。由于异构性,同样的知识在知识图谱中的描述可能差异很大。目前最常用的框架匹配方法还停留在匹配不同知识库中的元素。

框架匹配可以分为元素级匹配和结构级匹配。

  • 元素级匹配独立判断两个知识图谱中的元素是否应该匹配,不考虑其他元素的匹配情况。
  • 结构级匹配不把各个元素作为独立的资源,而利用知识图谱的结构,在元素匹配过程中考虑其他相关元素匹配情况的影响。

  • 基于图的技术将要匹配的本体看做一个已经标记的图结构。基本思想是: 对于两个本体中的节点,如果他们的邻居节点是相似的,那么它们也是相似的,反之亦然。 这种技术将本体看成一个多元关系图,图中相似元素的发现与解决图的同态问题是相似的,因此可以将本体匹配问题转化为发现最大公共子图的问题。完整的图匹配是一个复杂度很高的问题,计算量很大,在实际操作中,一般会用EM算法、Label Propagation等迭代算法近似求解。

  • 基于分类体系的技术可看成图技术的一种扩展,这种技术只关注于匹配一些特殊关系。基本思想是: 如果两个术语连接的是”实例-类型”(is-a)或”子类-父类”(SubClassOf)关系,那么它们是相似的,其邻居节点也存在一定程度的相似关系。 本体的结构信息描述了元素的整体信息。框架匹配应用最普遍的领域就是对不同知识图谱的分类体系进行对齐和匹配。
  • 基于统计分析的技术基于已有部分样本挖掘其中蕴含的规律,并根据这些规律对概念、属性、实例、关系等对象进行分组,进而计算它们之间的距离。典型技术有:形式概念分析、基于距离的分类、相关性分析以及频度分布。

目标是能够链接多个异构知识库,并从顶层创建一个大规模的统一的知识库,从而帮助机器理解底层数据。实体对齐也称为实体匹配,是判断相同或不同知识库中两个实体是否表示同一物理对象的过程。

实体对齐可以分为成对实体对齐和协同实体对齐两类不同算法。

  • 成对实体对齐表示独立地判断两实体是否对应同一物理对象,通过匹配实体属性等特征判断它们之间的对齐程度。
  • 协同实体对齐认为不同实体间的对齐是相互影响的,通过协调不同对象间的匹配情况得以达到一个全局最优的对齐结果。

最近,基于表示的方法被用于知识对齐,将多个知识库表示在同一个语义向量空间中,把知识库对齐实体的过程转化为两个知识库实体相似度计算问题。知识库向量化模型通常是针对单一知识库的,如果简单地将这种方法用到两个知识库上,这两个知识库的资源就会被表示在两个独立的空间上,无法直接计算。为了将这两个知识库表示在同一向量空间中,需要利用种子对齐,训练时在目标函数中加入约束,让这些种子对齐中的资源尽可能有相同的向量表示。利用这种方法学习得到的向量就不再是独立的两个空间上的表示,而是在一个向量空间中的统一表示。

将两个知识库在统一向量空间中相近的实体视为相同实体,成为一个对齐,这种对齐方法被称为基于知识库向量联合学习的对齐方法。优点是: 不需要依赖任何人工设定的规则和特征,也不需要了解知识库的命名习惯。这种方法适应性更强,更容易迁移到不同的领域。

模型联合学习两个知识库的向量表示步骤为:首先利用简单的对齐方法,例如字符串匹配,来产生初始的种子对齐,这些种子对齐要准确率很高。然后采用TransE方法,学习两个知识库的对齐。该模型的核心思想是: 种子对齐中的两个实体的向量要在训练过程中尽可能相似。

如何检测冲突并消解是知识融合任务的主要研究问题,最简单的方法就是发现对于同样的属性和关系有不同的实例,但对于某些属性,这种策略不一定有效。

目前常见的策略有以下三类:冲突忽略、冲突避免和冲突消解。

  • 冲突忽略不进行处理,而是把检测出来的冲突交给用户解决,舍弃某些实例或者进行修改。
  • 冲突避免不解决冲突,而是使用规则或约束来对数据源进行过滤。
  • 冲突消解关注于如何利用知识图谱本身(框架和实例)的特征来消解冲突,这是目前的主要研究方向。

冲突消解按照使用技术主要分为以下两类:基于投票的方法和基于质量估计的方法。

  • 基于投票的方法比较直接,例如,根据不同事实出现频率进行多数投票。
  • 基于质量的方法考虑不同知识来源的可信度,最终选择较高质量的结果。

一些复杂的结构级匹配方法多用在本体匹配上,而实体对齐多使用一些简单的局部方法来保证对齐的运行时间在一个可接受的范围内。

  • PROMPT:一个较早关于本体合并(Ontology Merging)和本体对齐(Ontology Alignment)的方法和工具。结合人工和机器对齐两种方式,通过有效利用知识体系的结构信息和人类的辅助行为,构建一个实用的框架合并和对齐工作。
  • AgreementMarker:一个集成系统,包括了很多自动对齐方法,是一个可扩展的对齐框架。能够处理大规模的多领域知识库,也能处理各种表达格式的知识库。对齐系统可以分为两个模块:相似度计算模块和对齐选择模块。结合三个层面的对齐方法:(1)第一层比较概念特征;(2)第二层利用知识库结构特征;(3)第三层是对前两层结果的线性加权求和,并根据需要进一步剪枝。
  • Falcon:一个采用分治法设计的对齐系统,可以处理RDFs和OWL格式的大规模知识库。该方法主要分为三个阶段:(1)分割知识库:基于结构的分割方法将每个知识库中的资源分成数个小集合,基于资源之间的相似程度分割。(2)块匹配:通过这些小集合根据预先对其的资源进行对齐,然后根据块相似度阈值进行选择。(3)挖掘对齐:利用V-DOC和GMO匹配器,对匹配块中的资源做进一步精细对齐,最终对齐根据贪婪算法获得。
  • RiMOM:一个动态多策略的对齐框架,通过最小化风险贝叶斯决策进行对齐。使用了两种相似度度量:(1)语言学相似度:如标签之间的编辑距离、向量距离等;(2)结构相似度:采用三种相似度传播策略,即概念到概念、关系到关系和概念到关系。然后,策略选择模块使用知识库预处理得到的标签和结构相似度因子来决定偏重哪种相似度来进行对齐。然后,系统会进行对齐精细调整来获得最终的对齐结果。
  • ASMOV:面向生物信息学知识库的自动对齐系统,该系统的输入是两个OWL格式表示的知识库和一个可选的已有对齐,最终返回多对多的资源对齐。该系统可以分为两个步骤:(1)相似度计算;(2)语义验证。 语义验证过程一共检查五种一致性模板。
  • Anchor-Flood:能够高效率解决知识库的对齐问题,系统的输入是RDFs和OWL格式的知识库,输出为一对一的对齐。系统首先将两个知识库中一对相似的概念叫做一个锚(Anchor),然后分析锚周边的资源,就可以构建一些知识库的片段进行对齐。 由于系统是针对片段和片段的比较,所以没有对整个知识库进行考虑。系统在连接片段中输出对齐的资源。已经对齐的资源被当作新的锚,继续新一轮发现对齐的过程。这种机制不断重复,直到没有新的对齐产生。
  • PARIS:一种新型的基于概率的全局知识库对齐算法,这种方法不需要任何参数调节,可以高效进行知识库之间资源的对齐。PARIS是第一个基于全局概率的大规模对齐方法,可以在没有先验知识和参数调节的情况下完成对齐过程。
  • SiGMa:大规模知识库实体对齐算法。共分为两个步骤:(1)获取高质量的初始对齐;(2)使用结构信息和实体的属性信息来定义打分函数,实现对齐。算法可以视为对于一个全局目标函数的贪婪优化。目标函数考虑了两方面信息:基于属性定义的两个实体间的相似度,以及实体的周围节点信息。该方法有几个特点:(1)使用已有的对齐来获取结构信息,可以合理利用已有的信息;(2)利用知识库的结构信息来产生新的候选对齐;(3)最后,利用简单的贪婪策略,使得该方法可以适用于大规模知识库对齐。

四、实体识别和扩展

实体(Entity)是知识图谱的基本单元,也是文本中承载重要信息的重要语言单位。实体识别和分析是支持知识图谱构建和应用的重要技术。

根据Automatic Content Extraction(ACE)定义,在文本中对实体的引用(Entity Mention,也可称为 指称项)可以有三种形式:命名性指称、名词性指称和代词性指称。

狭义地讲,命名实体指现实世界中具体或抽象的实体,通常用唯一的标识符(专有名称)表示。广义地讲,命名实体还可以包括时间、日期、数量表达式、金钱等。 命名实体的确切含义只能根据具体应用来定。

命名实体识别任务是识别出文本中实体的命名性指称项,并标明其类别。一般就是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。 不同任务对不同实体类别颗粒度的需求不同。细粒度实体识别的难点主要是类别多、类别具有层次结构、标注成本高。

实体识别的难点: 七类实例中时间、日期、货币和百分比的构成有比较明显的规律,识别起来相对容易,而人名、地名、机构名的用字灵活,识别难度很大。命名实体是别的过程主要包括两部分:(1)识别实体边界;(2)确定实体类别(人名、地名、机构名等)。识别的主要难点在于:

  • 人名:汉语人名一般包括姓氏(由一到两个字组成)和名(由若干个字组成)两部分,其中姓氏的用字是有限的,而名的用字很灵活。人名还有很多其他形式。
  • 地名:通常的形式是若干个字组成地名,可能包括作为后缀的关键字。也存在一些简称来指称地理位置。
  • 机构名:可以包含命名性成分、修饰性成分、表示地名的成分以及关键词成分等。

  • 汉语文本没有类似英语文本中空格之类的显式表示词边界的标示符,分词和命名实体识别会相互影响。

  • 英语的命名实体往往是首字母大写的,而中文文本中没有这样的标示。

命名实体识别大致有两种方法,第一种是基于规则的方法,第二种是基于机器学习的方法,也可以将两种方法结合起来使用。

  • 基于规则的方法准确率较高,接近人类的思维方式,表示直观,而且便于推理。但是这种方法成本昂贵,规则的制定依赖于语言学家和领域专家,很难移植到新领域。
  • 基于机器学习的方法更加健壮和灵活,而且比较客观,不需要太多的人工干预和领域知识,但是需要人工标注数据,数据稀疏问题比较严重。

基于规则的方法,首先可以制定一些简单的基本规则,然后在各种语料库中,通过对基于规则方法的实验结果进行错误分析,不断改进规则,最后直到识别出更多更准的命名实体为止。 在大规模标注语料库缺少的情况下,基于规则的方法能够取得较好的效果

最具代表性的方法是基于命名实体词典的方法,采用字符串完全匹配和部分匹配的方式,从文本中找到与词典中最相似的单词或短语完成实体识别。主要优势在于规则简单。比较经典的方法有基于正向最大匹配的方法、基于逆向最大匹配的方法和基于最短路径的方法。这类方法的性能往往受命名实体词典规模和质量的影响。 然而,命名实体是一个动态变化的集合,新的实体不断涌现,再加上实体命名的不规则性,导致实体名称纷繁多样,难以构建出一个完备的词典。

基于规则的命名实体识别方法在特定领域的小规模语料上测试效果较好,速度快。但是,其对语言知识要求较高,需要大量的人力物力。当激活规则不止一个时,解决办法之一即是对这些规则按优先级进行排序,而排序过程耗费大量的人力物力,且不具有普适性。基于规则的方法语言受限,通用性不强。

基于机器学习的方法主要是利用预先标注好的语料训练模型,使模型学习到某个字或词作为命名实体组成部分的概率,进而计算一个候选字段作为一个命名实体的概率值。如果大于某个阈值,则识别为命名实体。 这种方法鲁棒性更好,而且模型的构建代价较小。可以分为基于特征的方法和基于神经网络的方法。

  • 基于特征的方法主要是利用传统的机器学习模型结合人工设计的大量特征进行实体识别。
  • 基于神经网络的方法可以利用各种结构的神经网络自动捕获特征,进而完成实体识别。

命名实体的内部构成和外部语言环境具有一定的特征,都在试图充分发现和利用实体所在的上下文特征和实体的内部特征。基本步骤包括:

  • 特征提取:与一般机器学习任务一样,特征的选取有着重要的作用。
  • 模型学习:不同的机器学习模型有着不同的优缺点,要根据具体的任务和需求选择适合的模型。将多种机器学习模型联合使用也是一个不错的策略。
  • 样本预测:对输入样本进行标注预测,得到输入序列相对应的标注序列。
  • 后处理:将上面的标注结构进行后处理以得到最终的命名实体识别结果。

优点在于对语言的依赖性小,可移植性好。目前应用最广泛的方法是基于字标注的模型,该类模型将命名实体识别看做一个序列标注的任务,最具代表性的方法是基于条件随机场的模型。

条件随机场(Conditional Random Field,CRF)是一种有效的计算联合概率分布的概率图模型,从本质上说CRF模型可以预估给定输入序列后所得到标注序列的条件概率。具体做法为:

首先将系统每个输入的观测值(中文文本以字为基本单位)可能对应的标注标签集合定义为F = B , I , O F=B,I,O F =B ,I ,O。B B B(Begin)表示一个命名实体的开始位置,I I I(Internal)表示一个命名实体的中间部分,O O O(Other)表示句子中的非命名实体部分。

条件随机场也被称为马尔可夫随机场,定义如下:假设无向图G ( V , E ) G(V,E)G (V ,E ),其中,V V V是图上的顶点,E E E是图上的边;X X X是输入观察序列,Y Y Y是输出标记序列,Y Y Y上的某个元素对应图中的一个节点,则条件随机场满足如下公式:

P ( Y v ∣ X , Y w , w ≠ v ) = P ( Y v ∣ X , Y w , w ∼ v ) P(Y_v|X,Y_w,w \neq v)=P(Y_v|X,Y_w, w \sim v)P (Y v ​∣X ,Y w ​,w =v )=P (Y v ​∣X ,Y w ​,w ∼v )

在上述公式中,w ∼ v w \sim v w ∼v表示两个顶点之间有直接连接的边,在命名实体识别任务中一般可看做线性CRF,因为输入和输出都是线性的。

CRF模型的数学表示:在条件随机场的输出序列上,线性链结构的条件随机场服从一阶马尔科夫独立性假设。这是给定的待标注序列X X X,标注序列Y Y Y的分布满足如下公式:

P ( Y ∣ X , λ , μ ) ∝ e x p ( ∑ i = 1 n ∑ j λ j t j ( y y − 1 , y i , x , i ) + ∑ i = 1 n ∑ k μ k s k ( y i , x , i ) ) P(Y|X,\lambda,\mu) \propto exp(\sum_{i=1}^{n} \sum_j \lambda_j t_j(y_{y-1},y_i,x,i)+\sum_{i=1}{n} \sum_k \mu_k s_k(y_i,x,i))P (Y ∣X ,λ,μ)∝e x p (i =1 ∑n ​j ∑​λj ​t j ​(y y −1 ​,y i ​,x ,i )+i =1 ∑​n k ∑​μk ​s k ​(y i ​,x ,i ))

在上述公式中,t j ( y i − 1 , y i , x , i ) t_j(y_{i-1},y_i,x,i)t j ​(y i −1 ​,y i ​,x ,i )和s k ( y i , x , i ) s_k(y_i,x,i)s k ​(y i ​,x ,i )都表示特征函数,t j ( y i − 1 , y i , x , i ) t_j(y_{i-1},y_i,x,i)t j ​(y i −1 ​,y i ​,x ,i )表示观察序列的标记序列位置i − 1 i-1 i −1和i i i之间的转移特征函数,λ j \lambda_j λj ​为这个转移函数的权重,s k ( y i , x , i ) s_k(y_i,x,i)s k ​(y i ​,x ,i )为i i i位置的状态特征函数,μ k \mu_k μk ​为这个状态函数的权重。

为训练CRF模型,首先需要定义特征函数集合。特征函数集的质量直接影响后续模型训练的质量。特征函数在CRF模型中分为状态特征函数和转移特征函数,两类函数都是二值函数,函数值取0或1.对于特征函数的定义,我们可以考虑上下文词汇和词性特征。如果训练规模比较大,那么只使用上下文特征便可以得到比较好的结果。

模型参数估计:根据训练集数据估计每个特征函数的权重λ \lambda λ,这里可以采用经典的模型参数估计方法,如极大似然估计(Maximum Likelihood Estimation,MLE)。

训练好的CRF模型是一个庞大的篱笆网络,网络中每一个节点是每个预测值的不同取值,通过寻找网络中具有最大概率的路径来确定输出的命名实体标记。可以采用遍历的方法,但复杂度较高,耗时长,效率低。因此,可以采用 维特比算法,这是一种特殊的但应用极为广泛的动态规划算法,如果模型的网络有D D D个节点,长度为N N N,那么维特比算法的复杂度只有O ( N ⋅ D 2 ) O(N \cdot D^2)O (N ⋅D 2 )。

基于传统特征的命名实体识别方法容易受到现有自然语言处理工具的性能的影响,而且扩展性差,需要大量的人工设计、挖掘的有效特征。随着深度学习的发展,很多工作提出利用神经网络自动地从文本中捕获有效特征,进而完成命名实体识别。这类方法主要有如下几个步骤:

以Lample等在2016年提出的神经网络模型(长短期记忆网络和条件随机场相结合的方法(LSTM+CRF))为例进行介绍。

由于不需要人工设计复杂的特征而且在性能和普适性上的优势,基于神经网络的命名实体识别方法目前占据了主导地位。

细粒度的实体类别包含了更多的知识,有助于相应任务性能的提升。

对于语料的标注,主要有两种方法:

  • 人工标注:标注质量高,但成本也高。
  • 利用回标的方法自动标注:标注速度快,可以自动获得标注数据,但标注的数据中会有噪音。

  • 当人工制定了实体类别并人工标注语料后,前面章节介绍的实体识别方法都可以直接使用。

  • 在没有语料标注的情况下,可以利用聚类得到方法自动获得实体的集合,但是无法自动获得实体的类别标签。
  • 当提供了相应类别的实体的种子时,可以采用实体扩展的方法获得对应类别的更多实体。
  • 当采用回标的方法获得语料时,可以直接应用前面章节的实体识别方法,但是噪音数据要进行特别的处理。

KnowItAll系统是一个比较有代表性的无监督的细粒度实体抽取系统,主要由三部分组成:规则抽取、实体名的抽取和实体名的验证。首先人工制定一些通用的规则模板,然后根据通用模板和指定类别去细化模板,得到初始种子后,使用搜索引擎对模板进行扩展,进而从互联网上抽取大规模的实体名,最后使用验证规则并结合搜索引擎对实体名进行验证,将高置信度的实体名加入到知识库中。

实体扩展是一种开放域实体抽取方法。互联网信息呈现出多源、异构、海量的特点。但很多情况下,用户更需要的是提供一些实体种子,然后获得同类实体的工具。 _实体扩展技术_的目标是从海量、冗余、异构、不规范的网络数据中大规模地抽取开放类别的命名实体,进而构建开放类别命名实体列表。

实体扩展在学术领域的主要应用包括:

实体扩展在工业领域的典型应用包括:

实体扩展的任务定义如下:对于某实体类别C C C,给定该类别的M M M个实体(称为”种子实体”),一个实体扩展系统需要找出同样属于类别C C C的其他实体。

实体类别本身是未知的,需要抽取系统分析实体种子,寻找其共性得到关于目标实体类别的知识,进而抽取出属于该类别的实体。

实体扩展任务有以下三个特点:

实体扩展系统的评价指标主要包括Precision值(准确率),Recall值(召回率),MAP(mean average precision)值,P@N值和R-PREC值等五种。

实体扩展系统主要由以下三个模块组成:

  • 种子处理模块:负责选取或生成高质量的种子。模块的输入是若干种子组成的初始种子集合,输出是高质量种子组成的集合。
  • 实体抽取模块:负责从语料中抽取术语目标类别的实体。通常该模块包含”候选排序”以及”打分排序”两个子模块。前者抽取候选实体,后者计算候选实体的置信度并对其排序。该模块的输入是种子集合,输出是排序后的候选实体列表。
  • 结果过滤模块:对抽取后的实体集合进行过滤。该模块的目标是提高候选实体列表的准确率。

  • 基于上下文相似度的方法:由于绝大多数实体表现为名词或名词短语的形式,所以一个很自然的想法是找出语料中全部名词或名词短语,然后分别计算它们与种子实体的相似度并找出相似的实体。该方法具有两个重要特点:(1)语料规模非常重要,同等质量的语料,规模越大则抽取效果越好。(2)语料质量非常重要,同等规模的语料,质量越高则抽取效果越好。

  • 融合模板与上下文相似度的方法:在使用上下文统计信息的基础上,加入基于模板的限制,以提高准确率。这种方法在处理不同来源数据时效果更为明显。基本思想是:对不同类型的数据使用不同的抽取方法,再把不同方法得到的结果融合起来。这类方法引入了模板抽取的结果作为已知知识,并且通过Bootstrapping策略不断更新已有知识,抽取结果的准确率有很大提高。但是这类方法仍然没有克服基于统计的方法所具有的需要大量计算的缺点,而且所选特征仍然局限于上下文特征。

针对错误候选实体是如何产生这一问题,Vyas等人研究发现:

  • 错误候选主要是来自于种子的歧义性。
  • 实体在某种语义上可能比较相似,但不会在其他语义上相似。

针对以上现象,Vyas等人设计了一种结果过滤方法:在每轮迭代的过程中由人工找出一个错误候选,然后通过以下两种方法找出候选实体集合中与错误候选实体语义相似的候选实体并将其剔除:

  • 计算所有候选实体与错误实体的相似度,并排除相似度超过某个人工指定阈值的候选实体。
  • 找出错误候选实体的特征向量(由该候选的上下文组成),并将其对应的特征从种子集特征向量中剔除。

实体识别和扩展技术是构建知识图谱的基础技术和关键技术,由于实体的种类繁多,而且新实体不断出现,所以在真实的互联网文本中实体识别和抽取的性能还需要进一步提高,如何高效地获取高质量的标注语料,如何提高模型的可移植性和可扩展性都是实体识别的扩展技术中的关键研究点。

五、实体消歧

实体具有歧义性,因此实体识别的结果很难之间存放到知识图谱中。 同一实体在不同的文本中会有不同的指称,这是指称的多样性(Name Variation);形同的实体指称在不同的上下文中可以指不同的实体,这是指称的歧义性(Name Ambiguation)。因此,必须对实体识别的结果进行消歧才能得到无歧义的实体信息。

实体消歧旨在解决文本信息中广泛存在的名字歧义问题,在知识图谱构建、信息检索和问答系统等领域具有广泛的应用价值。

实体消歧所处理的对象都是命名实体,可以通过如下六元组进行定义:

M = N , E , D , O , K , δ M = N, E, D, O, K, \delta M =N ,E ,D ,O ,K ,δ

其中,N = n 1 , n 2 , … , n l N = n_1, n_2, \ldots, n_l N =n 1 ​,n 2 ​,…,n l ​是待消歧的实体名集合。E = e 1 , e 2 , … , e k E = e_1, e_2, \ldots, e_k E =e 1 ​,e 2 ​,…,e k ​是待消歧实体名的目标实体列表。 在实际应用中,目标实体列表通常以知识库的形式给出。D = d 1 , d 2 , … , d n D = d_1, d_2, \ldots, d_n D =d 1 ​,d 2 ​,…,d n ​是一个包含了待消歧实体名的文档集。O = o 1 , o 2 , … , o m O = o_1, o_2, \ldots, o_m O =o 1 ​,o 2 ​,…,o m ​是D D D中所有待消歧的实体指称项集合。 实体指称项表示实体消歧任务的基本单元:一个实体指称项是一个在具体上下文中出现的待消歧实体名。 实体指称项的上下文可以通过多种方式自由定义。K K K是命名实体消歧任务所使用的背景知识。 由于实体名本身所携带的信息不足以指称实体消歧任务,消歧系统需要大量背景知识,其中最常用的北京知识是关于目标实体的文本描述。δ : O × K → E \delta: O \times K \rightarrow E δ:O ×K →E是命名实体消歧函数,用于将待消歧的实体指称项映射到目标实体列表(如果E E E是显式给定的)或者按照其指向的目标实体进行聚类(如果E E E没有显式给定,是隐藏变量)。 命名实体消歧函数是命名实体消歧任务的核心部分

按照目标实体列表是否给定,实体消歧系统可以分为 基于聚类的消歧系统_和 _基于实体链接的消歧系统;按照实体消歧任务的领域不同,实体消歧系统可以分为 结构化文本实体消歧系统_和 _非结构化文本实体消歧系统

  • 基于聚类的实体消歧系统:所有指向同一目标实体的指称项被消歧系统聚在同一类别下,聚类结果中每一个类别对应一个目标实体。
  • 基于实体链接的实体消歧系统:由于目标实体列表中的实体是无歧义的,链接之后的指称项也就能自动消除歧义。

结构化文本实体消歧系统和非结构化文本实体消歧系统的主要差别在于实体指称项的文本表示:在结构化文本命名实体消歧系统中,每一个实体指称项被表示为一个结构化的文本记录;而在非结构化文本实体消歧系统中,每一个实体指称项被表示为一段非结构化文本。由于实体指称项的表示不同,两种消歧系统的技术路线也不一样:结构化文本的命名实体消歧由于缺少上下文,主要依赖于字符串比较和实体关系信息完成消歧;而非结构化文本实体消歧系统有大量上下文辅助消歧,因此主要利用指称项上下文和背景知识完成消歧。

给定待消歧的实体指称项集合O = o 1 , o 2 , … , o k O = o_1, o_2, \ldots, o_k O =o 1 ​,o 2 ​,…,o k ​,消歧步骤如下:

以聚类方式实现实体消歧的关键问题是计算指称项之间的相似度。按照计算相似度的方法不同,基于聚类的实体消歧系统又可以分为三类:(1)基于表层特征的实体指称项相似度计算;(2)基于扩展特征的实体指称项相似度计算;(3)基于社会化网络的实体指称项相似度计算。

给定一个实体指称项,基于词袋子(Bag of Words,BoW)模型的实体消歧系统首先将其表示为Term向量的形式,其中每个Term的权重通常采用经典的TF-IDF算法进行计算。实体消歧系统通常使用向量的Cosine相似度来计算实体指称项之间的相似度。

这些方法没有考虑到上下文特征之间的内在关联,因此影响了聚类效果。

为了克服基于表层特征指称项相似度的缺陷,一些研究工作开始使用知识资源来提升实体消歧的性能。最直接的方法就是使用知识资源来扩展实体指称项的特征表示。

实体的社会化关系也提供了相当多的重要信息,基于社会化网络的实体指称项相似度通常使用基于图的算法,能够充分利用社会化关系的传递性,从而考虑隐藏的关系知识。缺点在于它只利用到了上下文的实体信息,不能完全利用实体指称项的其他上下文信息。

所有信息都被表示成一个社会化关系图G = ( V , E ) G = (V, E)G =(V ,E ),其中,实体指称项和实体都被表示为社会化关系图中的节点,而节点之间的边则表示它们之间的社会化关系。在实体指称项表示中可以方便地加入从其他知识库中抽取出来的社会化关系。在社会化关系图表示框架下,实体指称项之间的相似度通常使用图算法中的随机游走算法来计算。

实体链接(通常称为Entity Linking,与Entity Grounding, Entity Resolution,Record Linkage和Entity Disambiguation意义相近)指的是将一个命名实体的文本指称项(Textual Mention)链接到知识库中相应实体的过程。(知识库中可能不包含待消歧指称项的对应实体,这是就链接到空实体NIL)。

实体链接的输出通常包括两个部分:

  • 目标实体知识库:目前最常用的知识库为Wikipedia,在其他一些任务中也可能是特定领域的知识库。知识库通常包含如下信息:实体表、实体的文本描述、实体的结构化信息(如属性/属性值对)、实体的辅助性信息(如实体类别);同时知识库也经经常提供一些额外的结构化语义信息,如实体之间的关联。
  • 待消歧实体指称项及其上下文信息。

实体链接任务通常需要两个步骤。

大部分实体链接研究的重点在于第二步,即如何根据实体指称项的上下文信息和知识库中实体的信息从候选链接中确定目标实体。

大部分工作都是基于实体指称项词典:通过在词典中记录一个指称项所有可能指向的目标实体来进行链接候选过滤。

传统实体链接方法通常使用Wikipedia等知识资源来构建指称项词典,为了匹配模糊的或拼错的指称项,一些基于词典的模糊匹配方法也在TAC评测中被使用。

给定一个指称项m m m及其链接候选E = e 1 , e 2 , … , e n E = e_1, e_2, \ldots, e_n E =e 1 ​,e 2 ​,…,e n ​,实体链接方法选择与指称项具有最高一致性打分的实体作为其目标实体:

e = a r g m a x e S c o r e ( e , m ) e = \mathop{argmax}\limits_e \ Score(e, m)e =e a r g ma x ​S core (e ,m )

实体链接的关键在于如何计算实体指称项与目标实体之间的一致性打分S c o r e ( e , m ) Score(e, m)S core (e ,m )。现有方法可分为四种:

很多结构化数据中存在大量的非结构化描述文本,这类结构化数据的消歧方法可以参照上文介绍过的方法。

列表型数据没有上下文描述信息,因此对消歧带来了很大的挑战。 在结构化文本的实体消歧方法中主要是利用实体的类别信息、实体的流行度和列表中的其他信息进行消歧

面向非结构化文本的实体消歧应用最为广泛,主流方法有基于聚类的实体消歧和基于链接的实体消歧,两类方法中的核心问题都是计算待消歧实体与候选实体的语义相似度。

六、关系抽取

实体之间的关系是知识图谱中不可或缺的部分,不同的关系将独立的实体连接在一起编织成知识图谱。 如何从结构化或者非结构化文本中识别出实体之间的关系是知识图谱构建的核心任务之一

关系定义为两个或多个实体之间的某种联系,关系抽取就是自动识别实体之间具有某种语义关系。

二元关系抽取,关注两个实体间的语义关系,得到( a r g 1 , r e l a t i o n , a r g 2 ) (arg_1, relation, arg_2)(a r g 1 ​,re l a t i o n ,a r g 2 ​)三元组,其中a r g 1 arg_1 a r g 1 ​和a r g 2 arg_2 a r g 2 ​表示两个实体,r e l a t i o n relation re l a t i o n表示实体之间的语义关系。

根据处理的数据源不同,关系抽取可以分为以下三种:

根据抽取的文本范围不同,可以分为:

根据所抽取领域来划分,可以分为:

限定域关系抽取指在一个或多个限定的领域内判断文本中所出现的实体指称之间是何种语义关系,且待判别的语义关系是预定义的。 因此常把这项任务看成是文本分类任务,即在输入一个句子以及标识句子中所出现的实体指称的条件下,系统将其分类到所属的语义类别上。

越来越多的研究者采用有监督学习的方法,即针对每个关系类别标注充足的训练数据,然后设计关系抽取模型,其研究多关注于如何抽取有效的特征。 人工标注语料耗时费力,成本高,因此很多情况下很难获得足够的训练数据,因此有很多研究利用弱监督学习的方法抽取关系。

基于模板的关系抽取方法通过人工编辑或者学习到的模板对文本中的实体关系进行抽取和判别。但人工不可能针对多类关系穷举所有的模板,那么就需要采用自动的方法学习抽取模板。 面临的问题是:(1)如何学习用于抽取关系的模板?(2)如何将学习到的模板进行聚类?

已有的方法多采用自提升(Bootstrapping)策略,对于实体和模板进行联合迭代式地交替抽取和学习。基本出发点是:一种语义关系可以采用对偶的方式进行表示,包括两种表示方式:

  • 外延性表示:指为表示某种语义关系,可以使用所有包含这种关系的实体对来表示。
  • 内涵性表示:指为表示某种关系,可以使用所有能抽取这种关系的模板来表示。

因此,我们可以利用实体对在文本中获取模板信息,再利用获取到的模板抽取更多的实体对。这是一个自提升过程。

其中关键步骤是 抽取句子中的实体对之间表达关系的模板。模板可以是基于词汇的,也可以是基于句法或语义的。这一过程需要自然语言处理技术。

我们可以首先使用 句子边界探测工具_将给定的文本预料分割为句子,然后运行 _词性标注工具_获得单词的词性。为了探测句子中的实体,可以使用 _名词短语块识别工具_或 _命名实体识别工具_提取合适的名词词组块和实体。然后分别抽取 _词汇级关系模板_和 _句法级关系模板

模板学习的另一个关键问题是 不同的模板可能表示同一语义关系。在抽取模板之后,需要对习得的模板进行聚类,将表示同一语义关系的模板聚在一起。

最大问题在于其受限于模板的质量和覆盖度,可扩展性不强。

有监督关系抽取的主要工作在于 如何抽取出表征实体指称间语义关系的有效特征。特征抽取主要使用自然语言处理工具包,从句子中抽取出如词汇、句法和语义等特征,作为关系分类的证据。为了缓解句法特征的稀疏性,有很多研究集中于利用核函数的方法进行关系抽取。

以Zeng等在2014年提出的基于卷积神经网络的关系抽取为例:

模型主要包括三个部分:词表示(Word Representation)、特征抽取(Feature Extraction)和输出(Output)。整个模型的输入是一个句子以及给定的两个词(通常为名词、名词短语或实体),输出是这两个词在该句子中所属的预定义的语义关系类别。

首先,输入的句子通过词向量表示,转化为向量的形式输入网络。然后,待抽取部分进一步提取词汇级别特征和句子级别特征,接下来将这两种特征拼接起来作为最终的特征进行关系分类。词汇级别特征的抽取是将句子中某些词向量挑选出来,并将挑选出的向量拼接起来作为这部分特征抽取的结果。然后,使用卷积神经网络学习句子语义的组合规律和方式,在以词向量作为输入的基础上,将句子中包含的词向量组合起来,进而得到句子级别特征表示。优点在于 不再依赖于传统的自然语言处理工具,完全通过卷积网络直接从具有冗余信息的词向量中自动学习、挑选出有用的特征信息,进而学习得到高质量的特征

特征备注L1词1对应的词向量L2词2对应的词向量L3词1左右各一个词对应的词向量L4词2左右各一个词对应的词向量L5词1和词2在WordNet中的一般语义分类

带标注的文本通常是稀缺的资源。在学术界和企业界的共同努力下,已经构建了许多开放可用的知识图谱,这些知识图谱以结构化三元组和形式存储实体和实体之间的关系,距离监督(Distant Supervision)正是利用了这种结构化的数据,让知识图谱自动标注训练样本,由于标注过程不需要人工逐一标注,因此距离监督关系抽取也是弱监督关系抽取的一种。该方法启发式地对齐知识图谱和文本中的实体,然后根据这个对齐学习关系抽取器。该类方法主要基于如下的距离监督假设: 如果两个实体之间存在某种关系,则所有包含这两个实体的句子都表达了这种关系,这些句子的集合被称为一个”包”。

一个例子是Zeng等使用分段卷积网络(Piecewise Convolution Neural Networks,PCNNs)抽取文本的特征,他们认为传统的最大池化(max-pooling)难以捕捉句子的结构信息,因为两个实体将示例分割为三段,中间是实体对之间的内部特征,而两端是外部特征,这种结构信息是示例的重要特征,因此需要分别对它们进行最大池化操作。在模型的训练过程中,还利用了多示例学习(Multi Instance Learning, MIL)的算法缓数据噪音问题。 多示例学习的最终目标是预测未知包而非示例的标签,传统的误差反向传播的目标函数定义在示例上,而多示例训练中把目标函数定义在包上。

由于弱监督学习的关系抽取系统不需要人工标注数据,因此目前基于弱监督学习的关系抽取系统抽取的关系实例规模比较大。

开放域关系抽取不需要预先定义关系,而是使用实体对上下文中的一些词语来描述实体之间的关系。

TextRunner是第一个开放域实体关系抽取系统,使用启发式规则自动标注预料,不需要人工预先定义关系类别体系,主要分为三个模块:

由于开放域关系抽取得到的关系无法直接映射到知识图谱中,限定域的关系抽取是目前研究的主流方法。传统的基于模板的关系抽取方法可扩展性差,基于机器学习的关系抽取方法是目前研究的热点。基于有监督学习的关系抽取需要人工标注大量训练数据,耗时费力,目前基于弱监督的关系抽取方法得到了越来越多的关注。

七、事件抽取

事件抽取以命名实体为基础,命名实体抽取效果的好坏将直接影响事件抽取的结果。而对事件抽取而言,首先要识别出文本中是否存在关心的事件,其次要识别出事件所涉及的元素(一般是实体),最后需要确定每个元素在事件中所扮演的角色。

事件是发生在某个特定的时间点或时间段、某个特定的地域范围内,由一个或者多个角色参与的一个或者多个动作组成的事情或者状态的改变。

事件中最重要的几个要素是事件发生的事件、地点、参与事件的角色以及与之相关的动作或者状态的改变。不同的动作或者状态的改变代表不同类型的事件。同一个类型的事件中不同的时间、地点和角色代表了不同的事件实例。在某些同一个类型的事件中不同粒度的时间、地点、角色代表了不同粒度的事件实例。不同的应用场景会定义不同类型、不同粒度的事件。

事件抽取主要研究如何从描述事件信息的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来。该任务首先从非结构化文本中识别出事件及其类型,然后抽取出该事件所涉及的事件元素。

几个事件抽取有关的概念如下:

限定域事件抽取是指,在进行抽取之前,预先定义好目标事件的类型及每种类型的具体结构(包含那些具体的事件元素)。除了事件类型和事件的结构,限定域事件抽取任务通常还会给出一定数量的标注数据。由于事件结构的复杂性,标注数据的规模普遍较小,但是可以保证每个预定义的事件类型都有若干标注样本与之对应。

指对某种类型事件的识别和抽取是在一些模式的指导下进行的,模式匹配的过程就是事件识别和抽取的过程。一般分为两个步骤:模式获取和模式匹配。 模式的加入是为了提高事件抽取的准确率,因此,模式准确性是影响整个方法性能的重要因素。按所需训练数据的来源,可以分为有监督的事件模式匹配和弱监督的事件模式匹配。

模式的获取完全基于人工标注的语料,这类方法需要人工预先对语料进行完全标注,模式的学习效果高度依赖于人工标注效果。一般包括如下步骤:

只需要人工对语料进行一定的预分类或者制定少量种子模式,由机器根据预分类语料或者种子模式自动学习事件模式。主要有两个步骤:

基于模式匹配的事件抽取方法在特定领域中性能较好,但该类方法依赖于文本的具体形式(语言、领域和文档格式等),获取模板的过程费事费力,具有很强的专业性。而且,制定的模式很难覆盖所有的事件类型,当语料发生变化时,需要重新获取模式。 可以执行差,召回率低。

一般包括三个步骤:(1)训练样本的表示;(2)训练分类器并训练模型,优化模型参数;(3)利用训练好的模型从未标注数据中抽取事件实例。 重点在于挑选合适的特征和分类器使得分类结果更加准确。可以分为两类:一类是基于特征工程的方法,主要是在不同的分类器模型上尝试不同类别的特征;另一类是基于神经网络的方法,自动从纯文本中提取特征,避免使用传统自然语言处理工具带来的误差积累问题。

有监督事件抽取需要大量的标注样本,而人工标注数据耗时费力、一致性差,尤其是面向海量异构的网络数据时,问题更加明显。在弱监督事件抽取中,为了得到规范的语义标签,需要给出具有规范语义标签的标注训练数据。语料的获取有两种途径:(1)利用Bootstrapping的方法扩展语料,首先人工标注部分数据,然后自动扩展数据规模。(2)利用Distant Supervision的方法自动生成大规模语料,主要利用结构化的事件知识回标非结构化文本,获取大规模训练样本后完成事件的抽取。 基于弱监督的事件抽取,关键在于如何获得大规模的标注样本

金融事件可以帮助用户快速获取公司交易盈亏、人事变动、股权变动等信息,进而辅助用户做出正确的决策。公司通常通过公告的形式发布公司的重大事件,但公告内容一般是一篇文章而不仅仅是一个独立的句子,因此,如何从篇章级的公告信息中抽取出重要的结构化金融事件信息具有重要价值和现实意义。

基于机器学习的方法是目前主流的研究方法,这类方法将事件抽取建模为分类问题。弱监督学习方法被逐渐应用到事件抽取任务中,旨在自动生成部分标注数据,缓解数据稀疏带来的性能影响。然而, 限定领域的事件远远不能满足大规模事件知识图谱的构建和其他大规模应用的需求

开放域事件抽取的目标类型不受限制,在进行事件识别之前,可能的事件类型以及事件的结构都是未知的,因此该任务通常没有标注数据。

开放域事件抽取主要是基于无监督的方法,该方法主要基于分布假设: 如果两个词出现在相同的上下文中且用法相似,那么这两个词就意思相近。在事件抽取中,如果候选事件触发词或者候选事件元素具有相似的语境,那么这些候选事件触发词倾向于出发相同类型的事件,相应的候选事件元素倾向于扮演相同的事件元素。 无监督事件抽取将候选词的上下文作为表征事件语义的特征

一般包含如下步骤:

无监督关系抽取中,关键在于 如何寻找更好的文本表示方法、文本相似度衡量指标以及事件聚类模型。发现的新事件往往是相似模板的聚类,难以规则化,很难被用来构建知识库,需要将其同现有知识库的事件框架进行对齐,或者通过人工方式来给每个聚类事件簇赋予语义信息。

通过检测文本的异常发布情况进行事件识别。这类方法的基本假设是: 某个重大事件的发生会导致新闻媒体或社交网络上涌现大量的相关报道或讨论;反之,关于某一主题的报道或讨论突然增多则暗示着某一重大事件的发生。

开放域事件识别虽然可以自动发现新的事件,但其发现的事件往往缺乏语义信息,并且难以进行结构化。如果想要获得准确的语义信息,则需要通过人工标注的方式为每个类别簇赋予特定的语义标签。上述缺点导致开放域事件识别的结果很难被应用到其他自然语言处理任务中。

从历史事件中发现规律,厘清事件间的关系有助于人们从全局了解世界,进而构建事件知识图谱,支撑各种事件相关的应用。 核心任务是以事件为基本语义单元,实现事件逻辑关系的深层检测和抽取

当两个事件指称指向真实世界的同一个目标事件时,则认为这两个目标事件具有共指关系。事件共指关系的发现,有助于在多源数据中发现相同事件,对事件信息的补全和验证有积极作用。 核心问题是计算两个事件指称之间的相似度。一般会利用两类特征:(1)事件指称的文本语义相似度;(2)事件类型和事件元素之间的相似度。

因果事件的抽取极其困难:

  • 因果关系错综复杂,一个事件的发生可能有多个原因,一个事件也可能导致多个事件的发生。
  • 事件具有隐含因果关系,很难单独判断两个事件的因果关系,必须同时考虑多个因果事件间的传递作用。
  • 在某些情况下,单独从文本中很难抽取出因果关系,需要背景知识的辅助推断。

子事件关系反映了事件之间的粒度和包含关系。

事件时序关系是指事件在时序上的先后顺序。事件时序关系不仅有助于厘清事件发生的先后顺序,还能辅助其他事件关系的发现。目前主流的是基于机器学习方法的事件时序关系抽取,该类方法一般将事件时序关系识别转化为一个多分类问题。

目前大部分知识图谱只包含实体和实体关系知识,缺乏事件知识,事件知识的加入会进一步提升知识图谱的表达知识的能力。如何组织和构建同时包含实体、实体关系、事件和事件关系的事件知识图谱得到了越来越多的关注。

八、知识存储和检索

如何有效地存储和检索上述大规模的知识图谱数据集是一个重要的研究内容。

知识图谱是一种有向图结构,描述了现实世界中存在的实体、事件或者概念以及它们之间的关系。其中,图中的节点表示实体、事件或者概念,边表示相邻节点之间的关系。

知识图谱的目标是构建一个能够刻画现实世界的知识库,对知识的持久化存储并提供对知识数据的高效检索是一个知识图谱系统必须具备的基本功能。

知识图谱的知识是通过RDF结构进行表示的,其基本构成单元是事实。

每个事实是一个三元组(S,P,O),其中S是主语Subject的简写,其取值可以是实体、事件或者概念中的任何一个;P是谓词Predicate的简写,取值可以是关系或者属性;O是宾语Object的简写,取值可以是实体、事件、概念或者普通的值(例如数字、字符串等)。

根据不同的设计原则,知识图谱可以具有不同的表结构。

优点是简单直接,易于理解;缺点有:

  • 整个知识图谱都存储在一张表中,导致单表的规模太大。对大表进行查询、插入、删除、修改等操作的开销很大,这将导致知识图谱的实用性大打折扣。
  • 复杂查询在这种存储结构上的开销巨大。数据表只包含三个字段,因此复杂的查询只能拆分成若干简单查询的复合操作,大大降低了查询的效率。

为每种类型构建一张表,同一类型的实例存放在相同的表中。表的每一列表示该类实体的一个属性,每一行存储该类实体的一个实例。这样虽然克服了三元组表的不足,但也有新的问题:

  • 大量数据字段的冗余存储。
  • 大量数据列为空值。

一种有效的解决方法是,在构建数据表时,将知识图谱的类别体系考虑进来,即每个类型的数据表只记录属于该类型的特有属性,不同类别的公共属性保存在上一级类型对应的数据表中,下级表继承上级表的所有属性。

基于类型表的存储方式也有明显的不足之处:

  • 由于类型表的不同字段表示了不同的属性或者关系,无法做不确定性属性或者关系的查询。
  • 不同类型的数据表具有不同的结构,因此在查询之前必须知道目标对象的类型才能确定查找的数据表。为此, 系统需要维护一个”属性-类型”映射表,以便在进行属性查询时可以根据目标属性确定类型
  • 当查询涉及不同类型的实体时,需要进行多表的链接,这一操作开销巨大,限制了知识图谱对复杂查询的处理能力。
  • 知识图谱通常包含丰富的实体类型,因此需要创建大量的数据表,并且这些数据表之间又具有复杂的关系,这为数据的管理增加了很大的难度。

关系数据库通过属性对现实世界中的事物进行描述,每个属性的取值范围构成一个集合,称为对应属性的域。属性的取值只能是原子数据。 原子数据是指不能进一步拆分的数据,如整数、字符串等;相反,非原子数据则由多个原子数据构成,可以进一步拆分,如集合、列表、元组等

关系数据库以二维表对数据进行组织和存储,表的每一列表示一个属性,每一行表示一条记录。这些属性可以分为以下几类:

  • 候选键:能够唯一表示一条记录的最少的属性集合称为其所在表的候选键。候选键有如下两个特点:(1)唯一性:候选键在整个表的范围内必须具有唯一的值;(2)最小性:候选键所包含的属性必须都是必不可少的,缺少其中的任何一个都不再具备唯一性。
  • 主键:一个数据表可以包含多个候选键,从中任意选取一个作为主键。实际操作时一般选择单属性组成的候选键作为主键。
  • 外键:如果数据表中的某个属性或属性组是其他表的候选键,那么称该属性或属性组是当前表的外键。外键能够保证不同数据表之间数据的一致性。
  • 主属性与非主属性:包含在任何候选键中的属性称为主属性;相反地,不包含在任何候选键中的属性称为非主属性。

关系数据库通过SQL语言为用户提供一系列的操作接口,其核心功能包括插入、修改、删除、查询四种操作。如果选择关系数据库作为知识图谱的存储引擎,那么对知识图谱的所有操作都需要转换为SQL语句才能执行。

基于图结构的存储方式能够直接准确地反映知识图谱的内部结构,有利于知识的查询。以图的方式对知识进行存储,还可以借鉴图论的相关算法,有利于对知识的深度挖掘及推理。

基于图结构的存储模型用节点表示实体,用边表示实体之间的关系。基于图结构的存储从实体出发,不同实体对应的节点可以定义不同的属性。

基于图结构的存储方法利用有向图对知识图谱的数据进行建模,因此无向关系需要转化为对称的有向关系。优点是 不仅可以为节点定义属性,还可以为边定义属性

图数据库的理论基础是图论,通过节点、边和属性对数据进行表示和存储。图数据库基于有向图。

  • 节点:节点用于表示实体、事件等对象。
  • 边:指图中连接节点的有向线条,用于表示不同节点之间的关系。
  • 属性:属性用于描述节点或者边的特性。

大部分数据库系统通过形式化的查询语言为用户提供访问数据的接口。关系型数据库的标准查询语言是SQL,图数据库的是SPARQL。

用于管理关系数据库,主要功能包括对数据的插入、修改、删除、查询四种操作。

INSERT INTO 表名 VALUES (值1, 值2, ...)[, (值1, 值2, ...), ...]

VALUES对应的值的顺序和数量有着严格的要求。可以加入多个值对,相当于一次插入多行数据到表中。插入数据也可以指明插入数据的列,语法为:

INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)[, (值1, 值2, ...), ...]
UPDATE 表名 SET 列1=值1, 列2=值2, ... WHERE 条件

如果不指定条件,会导致整个表的数据都被修改。
3. 数据删除:通过 DELETE语句完成该功能,基本语法为:

DELETE FROM 表名 WHERE 条件

如果不指定条件,将会清空整张表。
4. 数据查询:通过 SELECT语句完成该功能,查询的结果存储在一个临时的结果表中,基本语法为:

SELECT 列1, 列2, ..., FROM 表名 WHERE 条件

如果想要查询指定表中所有列的数据,可以使用

SELECT * FROM 表名 WHERE 条件

SPARQL也是一种结构化的查询语言,用于对数据的获取与管理,主要包括对数据的 插入、删除和查询操作。

INSERT DATA 三元组数据

三元组数据可以是多条三元组,不同的三元组通过”.”(英文句号)分隔,用”;”(英文分号)可以连续插入与前一个三元组的头实体相同的三元组。
2. 数据删除:从RDF图中删除一些三元组,基本语法为:

DELETE DATA 三元组数据

对于给定的每个三元组,如果其在RDF图中,则将其从图中删除,否则忽略该三元组。
3. 数据更新:更新RDF图中指定的三元组的值。 可以通过组合 INSERT DATA 语句和 DELETE DATA 语句来实现该功能
4. 数据查询:

  • SELECT是最为常用的查询语句,可以从知识图谱中获取满足条件的数据,基本语法为:
SELECT 变量1 变量2 ... WHERE 图模式 [修饰符]
  • ASK用于测试知识图谱中是否存在满足给定条件的数据,如果存在则返回”yes”,否则返回”no”,该查询不会返回具体的匹配数据,基本语法为
ASK 图模式
  • DESCRIBE用于查询和指定资源相关的RDF数据,这些数据形成了对给定资源的详细描述,基本语法为:
DESCRIBE 资源或变量 [WHERE 图模式]
  • CONSTRUCT则根据查询图的结果生成RDF, 该语句的产生流程为:首先执行 WHERE 子句,从知识图谱中获取所有满足图模式的变量取值;然后针对每一个变量取值,替换RDF图模板中的变量,生成一组三元组。基本语法为:
CONSTRUCT 图模板 WHERE 图模式

标准的图查询算法复杂度很高,如何提高图查询的效率成为知识图谱研究的重要问题。

图查询的任务是在给定的图数据集中查找给定的查询图,其核心问题是 判断查询图是否是图数据集的子图,因此也称为子图匹配问题。该问题的形式化定义为:

子图匹配问题是指在给定查询图Q Q Q和目标图集D = G i D={G_i}D =G i ​的条件下,在D D D中找出所有与Q Q Q同构的子图。

子图同构问题已经被证明是一个NP完全问题。但是,知识图谱中的图结构具有丰富的标签信息:

  • 图中的节点有标签信息。
  • 图中的边同样包含标签信息。

虽然子图同构判定问题的算法复杂度很高,但是在实际应用中匹配算法的运行时间通常都在可承受范围内,主要有两方面的原因:

  • 知识图谱的图结构通常不会复杂,只有少数节点之间有边相连,因此并不会触发子图匹配算法的最坏情况;
  • 利用知识图谱中丰富的标签信息可以有效降低算法的搜索空间。

为减少匹配的次数,图数据库在进行子图匹配时会先按照一定条件对数据进行筛选,减小候选子图的个数。

图索引技术是实现子图筛选的有效方法。基本原理是:首先根据图上的特征信息建立索引,在进行子图匹配时,根据查询图上的特征能够快速地从图数据库中检索得到满足条件的候选子图,避免在全部子图上进行匹配操作。

  • 基于路径的索引方法将知识图谱中所有长度小于某特定值的路径收集起来,并根据这些路径为图数据库中的子图建立倒排索引。 首先,从匹配图中抽取具有代表性的路径,然后利用索引检索获得所有包含这些路径的候选子图,最后在候选子图上进行同构测试获得最终的结果。优点是图的路径获取简单直接,因此构建索引比较方便,但缺点是:随着路径长度的增加,路径数目呈指数级增长,对于大规模知识图谱来说,需要索引的路径数目过于庞大,不仅耗费巨大的存储空间,也增加了检索的时间;不同路径对子图的区分性差异很大,区分性低的路径对于降低搜索空间的效果有限。
  • 基于子图的索引方法则将子图作为索引的特征,关键问题是 如何在保证区分性的条件下减少索引的规模。常用方法是在构建索引时,通过在知识图谱上挖掘出频繁子图作为建立索引的依据。 频繁度是衡量一个子图频繁程度的指标,通俗地讲,频繁度就是子图出现的次数。实践中,需要设置一个频繁度来控制需要被索引的子图规模。 频繁度设置得过高,那么每个索引项都指向过多的子图,导致过滤效果不佳;频繁度过低则导致索引项太多,不仅导致索引的空间开销过大,也影响索引的检索效率

Ullmann算法是实践中常用的一种判定子图同构的算法,它能够枚举出所有的同构子图,因此也叫做枚举算法。

设矩阵M A M_A M A ​、M B M_B M B ​分别是图A A A和图B B B的邻接矩阵表示;邻接矩阵的第i i i行第j j j列的值M ( i , j ) M_{(i, j)}M (i ,j )​指示了图中顶点i i i和顶点j j j之间是否有边相连,如果有边相连,其值为1,否则为0;Ullmann算法的目标是 找到一个映射矩阵F F F ,使得其满足如下条件:

∀ ( i , j ) M A ( i , j ) = 1 ⇒ M F ( i , j ) = 1 \forall(i, j) M_{A(i, j)} = 1 \Rightarrow M_{F(i, j)} = 1 ∀(i ,j )M A (i ,j )​=1 ⇒M F (i ,j )​=1

其中,M F = F ( F ⋅ M B ) T M_F=F(F\cdot M_B)^T M F ​=F (F ⋅M B ​)T。该算法包括三个基本步骤:

  • 首先,初始化矩阵F F F,若图A A A的顶点i i i和图B B B的顶点j j j具有相同的标签,并且图A A A的顶点i i i的度不大于图B B B的顶点j j j的度,那么在F F F中记录i i i映射到j j j;
  • 然后,修改F F F中值为1的项,保证F F F的每行每列最多只有一个1,每一个满足条件的F F F都是一个候选的映射矩阵;最后在得到的候选矩阵集中筛选满足上述条件的矩阵作为最终的映射矩阵。

图的查询算法复杂度较高,为了提高效率,实践中一般将图的查询问题拆分为子图筛选和子图同构判定两个步骤。

九、知识推理

结构化知识图谱的一大优势是能够支撑高效的推理,知识推理是人工智能应用迈向更高级认知智能的重要技术。

虽然知识图谱中包含大量有价值的结构化数据,但是它是非常不完备的。对于具有r ( h , t ) r(h, t)r (h ,t )形式的三元组知识图谱,弱h , r h, r h ,r或t t t是未知的,需要使用推理方法将缺失的实体或关系预测出来的,这样的任务称为 链接预测

基于知识的问答主要是通过对自然语言问句的分析,在语义理解的基础上从知识图谱中寻找答案的过程。问答中需要推理的本质原因 同样是知识的缺失,问答过程中需要的知识可能在知识图谱中没有显式表达,需要通过推理才能获得隐含知识。

按照推理任务,推理可以被分为三类,即 归纳推理(induction)、演绎推理(deduction)、设证推理(abduction)设证推理具有一定的特殊性,且不经常使用。

归纳是从特殊到一般的过程,所谓归纳推理,就是根据部分对象所具有的性质,推出一类事物中所有对象都具有这类性质的推理方式。一般具有三个步骤:

从一般到特殊的推导过程,就是从一般性的前提出发,通过推导即”演绎”,得出具体陈述或个别结论的过程。重在通过利用每一个证据,逐步地推导到目标或者意外的结论。

演绎推理中的矛盾关系是指在同一世界中描述同一个问题,两个矛盾的语句或命题不能同时为真,也不能同时为假。

除了矛盾关系外,演绎推理还关注充分条件和必要条件。

具备完备的推理过程和充分的表达能力,可以严格地按照专家预先定义好的规则准确地推导出最终的结论,也就是说在推理的起始点和规则集合固定的情况下,结论也是固定的。 确定性逻辑推理没有准确性的评价,如何快速自动地推导出结论是确定性逻辑推理主要研究的目标

确定性逻辑推理有准确性高、推理速度快等特点。但在真实世界中,尤其是存在于大规模知识图谱中的不确定甚至不正确的事实和知识,确定性逻辑推理很难对其进行处理。

确定性逻辑推理很难应用于充满不确定性的自然语言处理任务中,主要有以下三个原因:

根据以往的经验和分析,结合专家先验知识构建概率模型,并利用统计计数、最大化后验概率等统计学习的手段对推理假设进行验证或推测。

单纯的概率图模型只是针对具有直接概率依赖的实例级元素,并没有对更高层次的语义框架进行抽象,缺失了真实世界中存在的规律和规则,导致这一类模型需要大量重复的概率评估,会因为海量知识之间存在的复杂的概率依赖关系而需要大量的计算。因此, 单纯的概率图模型并不能很好地处理大规模知识推理任务
2. 概率逻辑推理:通过概率图模型对逻辑进行建模的一类方法,弥补了概率图模型中缺乏可复用规则的缺点。马尔可夫逻辑网模型(Markov Logic Network,MLN)在每个规则上绑定一个权重,并将不同逻辑规则对推理目标的贡献合并到统一的概率模型下,如下所示:
P w ( X = x ) = 1 Z e x p [ ∑ f i ∈ F w i ∑ g ∈ G f i g ( x ) ] = 1 Z e x p [ ∑ f i ∈ F w i n i ( x ) ] \begin{aligned} P_w(X=x) &= \frac{1}{Z}exp \left[\sum_{f_i \in \mathcal{F}} w_i \sum_{g \in G_{f_i}} g(x) \right] \ &= \frac{1}{Z} exp \left[\sum_{f_i \in \mathcal{F}} w_i n_i(x) \right] \end{aligned}P w ​(X =x )​=Z 1 ​e x p ​f i ​∈F ∑​w i ​g ∈G f i ​​∑​g (x )​=Z 1 ​e x p ​f i ​∈F ∑​w i ​n i ​(x )​​

其中,g ( x ) = 1 g(x)=1 g (x )=1时表示这一条实例化的规则是真的,反之是假的,而第二行中的n ( x ) n(x)n (x )则是g ( x ) g(x)g (x )为1的计数。F \mathcal{F}F为Markov网中所有谓词规则的集合,G f i G_{f_i}G f i ​​是利用所有原子事实去实例化规则f i f_i f i ​后的集合。Z = ∑ x ′ ∈ X e x p [ ∑ f i ∈ F w i n i ( x ) ] Z=\sum_{x’ \in X} exp \left[ \sum_{f_i \in \mathcal{F}} w_i n_i(x) \right]Z =∑x ′∈X ​e x p [∑f i ​∈F ​w i ​n i ​(x )]是集合了所有可能世界的归一化参数。 马尔可夫逻辑网等概率推理模型的研究围绕结构学习、参数学习和推理三个重要任务展开。

结构学习又可以称为概率逻辑推理模型下的规则自动挖掘,其目的不仅仅是从实例级的数据中获得逻辑规则的样式,也需要在获得的逻辑规则集合的作用下确保目标世界概率最大。

对于参数学习,学习MLN参数的目的是为逻辑规则赋值合适的权重,权重越大,意味着满足该规则的世界越有可能发生。

在获得带有权重的规则集合后,对于使用规则进行推理的过程,一般会规约到概率图模型的推理问题上,再通过最大后验概率或基于可满足性的方法进行推理。

也可以看成是传统的逻辑推理,特点是在知识图谱中的实体和关系符号上直接进行推理操作。

使用归纳推理的思想,从现实的大规模网络知识图谱中自动地总结出逻辑规则,这一任务也被称为逻辑规则挖掘。

假设一般逻辑规则的形式为r 1 ( x 1 , x 2 ) ∧ r 2 ( x 2 , x 3 ) ∧ … ∧ r n ( x n , x n + 1 ) ⇒ r n + 1 ( x 1 , x n + 1 ) r_1(x_1, x_2) \wedge r_2(x_2, x_3) \wedge \ldots \wedge r_n(x_n, x_{n+1}) \Rightarrow r_{n+1}(x_1, x_{n+1})r 1 ​(x 1 ​,x 2 ​)∧r 2 ​(x 2 ​,x 3 ​)∧…∧r n ​(x n ​,x n +1 ​)⇒r n +1 ​(x 1 ​,x n +1 ​),这是一个含环的子图结构,并且可能存在反向边。 具有这种形式的逻辑规则被称为Horn子句。

频繁子图挖掘先搜集知识图谱的规则实例,再将规则实例中的实体替换成变量,同时设定一些约束,以快速地确定规则的实用性,并根据知识图谱中规则实例的支撑来快速评价挖掘到的规则。但其朴素的搜索算法具有指数的计算复杂度。一般会有两个指标来评价一条逻辑规则的质量:支持度s s s和置信度c c c,两个指标的计算方法如下:
s ( X → Y ) = σ ( X ∪ Y ) N c ( X → Y ) = σ ( X ∪ Y ) σ ( X ) \begin{aligned} s(X \rightarrow Y) &= \frac{\sigma(X \cup Y)}{N} \ c(X \rightarrow Y) &= \frac{\sigma(X \cup Y)}{\sigma(X)} \end{aligned}s (X →Y )c (X →Y )​=N σ(X ∪Y )​=σ(X )σ(X ∪Y )​​

其中,X X X可以看成是逻辑规则的身体部分,而Y Y Y则是逻辑规则的头部,也就是要推理的假设r n + 1 ( x 1 , x n + 1 ) r_{n+1}(x_1, x_{n+1})r n +1 ​(x 1 ​,x n +1 ​),σ \sigma σ为计数函数,σ ( X ∪ Y ) \sigma(X \cup Y)σ(X ∪Y )代表X X X和Y Y Y同时出现的次数,N N N是记录的条数,但由于子图挖掘中这一基数非常大,因此一般直接以支持计数(即X X X、Y Y Y同时存在的记录条数)作为支持度的度量,即s ( X → Y ) = σ ( X ∪ Y ) s(X \rightarrow Y) = \sigma(X \cup Y)s (X →Y )=σ(X ∪Y )。

AMIE(Association Rule Mining Under Incomplete Evidence)算法是一个典型的规则挖掘算法。

归纳逻辑编程(ILP)更重视没有出现在知识图谱中的负三元组,它认为 正例(E + E_+E +​ )+负例(E − E_-E −​ )+背景知识(B B B )⇒ \Rightarrow ⇒ 假设(h h h )。一个正确的假设h h h是满足以下要求的命题:

必要性: B ⊭ E + 充分性: B ∧ h ⊨ E + 弱一致性: B ∧ h ⊭ f a l s e 强一致性: B ∧ h ∧ E − ⊭ f a l s e \begin{aligned} 必要性:&B \nvDash E_+ \ 充分性:&B \wedge h \vDash E_+ \ 弱一致性:&B \wedge h \nvDash false \ 强一致性:&B \wedge h \wedge E_- \nvDash false \end{aligned}必要性:充分性:弱一致性:强一致性:​B ⊭E +​B ∧h ⊨E +​B ∧h ⊭f a l se B ∧h ∧E −​⊭f a l se ​

其中,必要性是指在没有引入假设h h h作为约束时,仅使用背景知识B B B不能蕴含出正例E + E_+E +​;充分性指背景知识B B B以及假设h h h可以蕴含出正例E + E_+E +​,这个性质也就是被频繁子图挖掘方法所使用的;弱一致性是指假设h h h不能与背景知识B B B冲突;而强一致性是指在弱一致性的基础上不能与已出现的负例有冲突,因此没有负例引入时与强一致性是相同的。

基于ILP的方法比仅利用图结构信息的频繁子图挖掘更具有逻辑性,但由于需要引入大量的负例而在计算规模上受到了约束。

指在一个整体的目标下,通过挑选使整体概率最大的逻辑规则加入到推理模型中,这一过程一般分为四个部分:(1) 定义目标函数;(2)创建逻辑规则结构;(3)搜索逻辑规则的策略;(4)提速方法。

目标函数的定义取决于使用不同的概率逻辑推理模型。

所有多规则空间中选择一个子集使目标函数最大是结构学习方法的核心,而寻找策略大多是将逻辑规则一条接一条地加入到规则集合中,可视为一种在线的增量学习方法,但这种方法的缺陷是在每增加一条规则后都要通过实例化逻辑规则的方法评估概率,这是一个非常耗时的操作。

λ \lambda λ演算是一个形式系统,它本身是一种程序设计语言的模型,主要是被用来研究函数定义、函数应用和递归,后来发展为通用的表达式语言。λ \lambda λ演算的核心是λ \lambda λ表达式,而λ \lambda λ表达式的本质则是一个匿名函数。

一个λ \lambda λ表达式由变量名,抽象符号λ \lambda λ,”.”,”(”和”)”组成,并且具有以下语法:

< λ 表达式 > : : = < 变量名 > ∣ ∣ < λ 表达式 > < λ 表达式 > ∣ ∣ λ < 变量名 > . < λ 表达式 > ∣ ∣ ( < λ 表达式 > ) \begin{aligned} <λ表达式>::=​<变量名>∣∣<λ表达式><λ表达式>∣∣λ<变量名>.<λ表达式>∣∣(<λ表达式>)​

λ \lambda λ表达式具有两种形式:应用型和抽象型。没有显式λ \lambda λ符号的表达式是应用型函数,标准形式为E 1 E 2 E_1 E_2 E 1 ​E 2 ​,其中E 1 E_1 E 1 ​是函数定义,E 2 E_2 E 2 ​是函数E 1 E_1 E 1 ​的实参。

对于λ \lambda λ表达式的运算规律,应用型是从左到右运算,而抽象型是从右到左运算。

λ \lambda λ表达式中含有自由变量(free variable)和绑定变量(bound variable)。被绑定的变量表示某个函数形参的变量,而自由变量不表示任何函数形参的变量。

λ \lambda λ演算的三种操作:

马尔可夫逻辑可以被看成一种通过为逻辑规则绑定权重的方式将一阶逻辑向概率逻辑进行扩展的方法。每个权重的大小反映了对应规则的相对强度或对于推理假设的重要性。当将马尔可夫逻辑规则的权重调到无限大时,其退化为标准的一阶逻辑。

为了表示元组之间的关系,马尔可夫逻辑网为共享一个实体的两个三元组连上一条无向边,并且假设在网络中,不存在超边。在多于两个元组共享一个实体时,应该为每两个元组都连接一条边,并利用团(cliques)捕获元组的依赖性。在确定了推理假设的关系类型后,这样的团结构可以被分割为逻辑表达式。

在规则学习的过程中,通过动态地向规则集合中加入和去除逻辑规则或调节规则的权重,就可以令所有事实的概率趋向于最大化,这是获得的带有权重的规则集合就是一个好的规则集合。

概率软逻辑模型(Probabilistic Soft Logic,PSL)是一种基于一阶逻辑词和马尔可夫逻辑网络的统计关系学习(Statistical Relational Learning)框架。PSL使用加权的一阶谓词公式对无向概率图模型进行紧凑的表示。PSL最大的优点是谓词可以在连续的[0, 1]区间内任意取值。因此,PSL可以方便地对具有连续值的特征(如相似度)进行建模。

PSL模型由一组带有权重的一阶逻辑谓词公式组成,其中每个公式编码了马尔可夫网络中一组共享同一权重的特征集合。书中用I ( a ) I(a)I (a )表示谓词实例a a a的取值。PSL使用松弛版本的合取(∧ \wedge ∧)、析取(∨ \vee ∨)和取反(¬ \neg ¬)操作进行逻辑推理,它们的规则如下:

I ( l 1 ∧ l 2 ) = m a x 0 , I ( l 1 ) + I ( l 2 ) − 1.0 I ( l 1 ∧ l 2 ) = m i n I ( l 1 ) + I ( l 2 ) , 1.0 I ( ¬ l 1 ) = 1.0 − I ( l 1 ) \begin{aligned} I(l_1 \wedge l_2) &= max{0, I(l_1)+I(l_2)-1.0}\ I(l_1 \wedge l_2) &= min{I(l_1)+I(l_2), 1.0}\ I(\neg l_1) &= 1.0-I(l_1) \end{aligned}I (l 1 ​∧l 2 ​)I (l 1 ​∧l 2 ​)I (¬l 1 ​)​=ma x 0 ,I (l 1 ​)+I (l 2 ​)−1.0 =min I (l 1 ​)+I (l 2 ​),1.0 =1.0 −I (l 1 ​)​

对于一个给定的实例化谓词公式r ≡ r b o d y → r h e a d r \equiv r_{body} \rightarrow r_{head}r ≡r b o d y ​→r h e a d ​,其成立的充要条件是$I(r_{body}) \leqslant I(r_{head}) $,也就是说公式头部的取值至少要和主体部分相同。

p ( I ) = 1 Z e x p { − ∑ r ∈ R λ r [ d ( r ) ] p } Z = ∫ I e x p { − ∑ r ∈ R λ r [ d ( r ) ] p } \begin{aligned} p(I) &= \frac{1}{Z} exp \left { -\sum_{r \in R} \lambda_r [d(r)]^p \right } \ Z &= \int_I exp \left { -\sum_{r \in R} \lambda_r [d(r)]^p \right } \end{aligned}p (I )Z ​=Z 1 ​e x p {−r ∈R ∑​λr ​[d (r )]p }=∫I ​e x p {−r ∈R ∑​λr ​[d (r )]p }​

其中,Z Z Z是正则化因子,λ r \lambda_r λr ​是公式r r r的权重,p ∈ 1 , 2 p \in {1, 2}p ∈1 ,2提供了两种不同的损失函数。

表示学习指将离散的符号表示成低维实数向量或矩阵以捕获元素之间的隐式关联的一种技术手段,而这些被量化的关联也很容易加入到后续任务的计算模型中。表示学习也相当于将原始的特征空间向分布式空间做一次映射,可以带来如下好处:

矩阵(张量)分解的基本思想是用多个低维的矩阵或张量的积代替原始的关系矩阵,从而用少量的参数替代稀疏而大量的原始数据。

RESCAL模型的核心思想是:将知识图谱看成一个三维张量X X X,其中每个二维矩阵切片代表一种关系,如果两个实体存在某种关系,则将矩阵中对应的值标为1,否则为0;之后将张量X X X分解为实体矩阵A A A和一个低阶三维张量R R R的乘积X ≈ A R A T X \approx ARA^T X ≈A R A T,其中,矩阵A A A的每一行代表一个实体的向量,张量R R R的每个切片R i R_i R i ​表示第i i i种关系。

根据任务的不同,自定义能量函数(或称为目标函数、损失函数),使得成立的事实三元组能量低,不成立的能量高,并通过能量函数的计算结果对事实是否成立进行推理。在学习中,最常见的方法是基于间隔的排序损失(margin-based pairwise ranking loss)。

优势:

但这种方法推理的精度较低。以PTransE和Gu方法为例:

这类方法将普通的原子关系扩展到一个关系序列上,认为知识图谱中的一个关系序列的向量表示可以用来预测两个实体间是否存在这个关系序列下的路径。若一个三元组中的两个实体之间存在一条路径,那么这条路径的向量表示应该接近于三元组关系的向量表示。

两个对符号运算和数值计算进行了融合的具体工作为:

  • 通过串行合并知识图谱嵌入式表示和概率逻辑推理的方式,首先利用表示学习运算速度快的特点,过滤掉低概率的答案,并把答案缩小在一个较小的候选集内。具体方法是:通过改变随机游走过程中状态转移概率的计算方法,将前一步骤表示学习计算出的相似度得分进行某种转换,作为与状态转移概率正相关的一个组件,并在随机游走算法框架下,依然确保它的稳定性。
  • 直接将知识图谱中的分布式表示加入到逻辑规则挖掘的过程中,以动态地指导随机游走的方向,令其挖掘出更多更好的能够推理出目标的逻辑规则,因此这一方法也被称为目标导向的随机游走。推理目标是所要挖掘的规则要用于推理的内容。

由于常识目前没有统一的表示方法,因此,常识的推理形式也取决于常识的表示方法。

ConceptNet是一个著名的常识知识库,它以三元组的形式来表示一部分常识,并且给出了这类常识在自然语言中的表达方式。因此,其中常识的推理与正常的知识图谱推理没有什么不同。

另一个著名的常识库是Cyc,Cyc是一个致力于将各个领域本体及常识知识进行继承,并在此基础上实现知识推理的人工智能项目。

十、知识问答与对话

作为一种描述自然知识与社会知识的重要载体,知识图谱最直接和最重要的任务是满足用户的精确信息需求,提供个性化知识服务。 &#x76EE;&#x524D;&#x7684;&#x95EE;&#x7B54;&#x548C;&#x56DE;&#x7B54;&#x7CFB;&#x7EDF;&#x5927;&#x591A;&#x53EA;&#x80FD;&#x56DE;&#x7B54;&#x4E8B;&#x5B9E;&#x578B;&#x95EE;&#x9898;&#xFF0C;&#x4E0D;&#x80FD;&#x5F88;&#x597D;&#x5730;&#x5904;&#x7406;&#x590D;&#x6742;&#x95EE;&#x9898;&#x3002;

问答技术发展的两大困难是缺乏高质量的知识资源和高效的自然语言分析技术。

Watson和Wolfram Alpha成功的关键因素包括:(1)丰富的知识资源;(2)强大的语义分析技术。

问答系统按照依赖的数据源可以分为:

&#x95EE;&#x7B54;&#x548C;&#x5BF9;&#x8BDD;&#x4EFB;&#x52A1;&#x4E2D;&#x7684;&#x7ED3;&#x6784;&#x5316;&#x77E5;&#x8BC6;&#x5E38;&#x5E38;&#x88AB;&#x79F0;&#x4E3A;&#x77E5;&#x8BC6;&#x5E93;&#xFF08;&#x800C;&#x4E0D;&#x662F;&#x77E5;&#x8BC6;&#x56FE;&#x8C31;&#xFF09;&#x3002;

知识库的描述语言不仅可以为用户提供统一的交互接口,还能更方便地描述抽象知识(如逻辑规则)和执行复杂查询。

使用结构化查询语言的优点是表达能力强,可以满足用户精细的信息需求。但缺点是 用户不但需要掌握结构化查询语言的语法,而且还要充分了解知识库中的资源表示形式。如果不经过训练,普通用户很难利用此类接口找到需要的知识内容

知识问答系统使用自然语言作为交互语言,为用户提供了一种更加友好的知识图谱查询方式。一方面,自然语言的表达能力非常强,可以满足用户精细而复杂的信息需求;另一方面,这种方式不需要用户接受任何的专业训练。

知识图谱一般表示为相互关联的事实三元组集合。 针对用户使用自然语言提出的问题,问答系统通过与知识图谱进行交互,检索相关知识点(事实集),进而进行知识推理得出最终准确的答案。按照技术方法可以分为两类:

语义解析是指把一个自然语言句子映射为某种形式化的语义表示,语义表示形式会根据应用领域的不同而不同。

面向知识图谱的问句解析是指利用知识图谱中的资源项(实体、关系、类别等)表示自然语言问句的语义,并以逻辑公式等形式化语句进行语义表示的任务。

首先需要对问句中的词/短语与知识图谱中的资源项(词汇表)进行映射;然后对匹配到的资源项进行组合;最后还需要对匹配和组合过程中存在的歧义进行消解,选择最正确的组合结果。

语义解析的任务是把一种结构的数据(串行结构的自然语言句子或树形结构的句法树)转换成另一种结构的数据(逻辑表达式)。统计语义解析方法正是利用机器学习模型从已有的数据中学习解析模型,不同的学习方法依赖于不同的学习数据。

生成问句对应的逻辑表达式形式的主要方法是根据 语义组合原则构造完整的语义表示结构。 &#x8BED;&#x4E49;&#x7EC4;&#x5408;&#x539F;&#x5219;&#x662F;&#xFF1A;&#x4E00;&#x6761;&#x590D;&#x6742;&#x8BED;&#x53E5;&#x7684;&#x542B;&#x4E49;&#x7531;&#x5176;&#x5B50;&#x53E5;&#x7684;&#x542B;&#x4E49;&#x548C;&#x5B83;&#x4EEC;&#x7684;&#x8BED;&#x4E49;&#x7EC4;&#x5408;&#x539F;&#x5219;&#x786E;&#x5B9A;&#x3002;

PCCG对分析结果定义了如下的概率模型:
P ( L , T ∣ S , θ ) = e f ( L , T , S ) ⋅ θ ∑ ( L , T ) e f ( L , T , S ) ⋅ θ P(L, T|S, \theta) = \frac{e^{f(L, T, S) \cdot \theta }}{\sum_{(L, T)} e^{f(L, T, S) \cdot \theta }}P (L ,T ∣S ,θ)=∑(L ,T )​e f (L ,T ,S )⋅θe f (L ,T ,S )⋅θ​

其中,函数f f f用于从( L , T , S ) (L, T, S)(L ,T ,S )中抽取属于R d R^d R d的特征向量,每个特征表示了( L , T , S ) (L, T, S)(L ,T ,S )中的某个子结构,分母对满足语法的所有有效分析结果的得分进行求和。

典型的转换过程包括:

类似于人工回答的过程。检验匹配的方法直接在知识图谱中搜索候选答案并按照匹配程序排序,选择排在前面的若干答案作为最终结果。

首先,问答系统需要识别句子中的主题实体(对应知识图谱中的实体);然后,根据该实体在知识图谱中遍历得到候选答案(一般为与它有一条关系路径连接的实体);最后,分别从问句和候选答案中抽取特征表示,训练过程需要根据(问题,答案)数据学习匹配打分模型,测试过程则直接根据训练得到的模型计算它们之间的匹配得分。

一种直接的做法是对问句和候选答案定义特征,并使用特征工程的方法抽取它们,最后基于特征匹配的分类模型对问题-答案匹配程度进行建模。主要步骤包括从问句中提取特征,从候选答案中提取特征,并利用它们进行匹配程度的计算。

基于特征工程的方法可能使特征维度扩大到难以处理。

通过表示学习方法,模型将用户用自然语言表示的问题转换为一个低维空间中的数值向量,同时把知识库中的实体、概念、类别以及它们之间的关系表示为同一语义空间中的数值向量。于是,知识问答任务(判断候选答案集合中哪些实体是正确答案)可以看成是问句的表示向量与候选答案的表示向量匹配程度计算的过程。

这种方法有更好的迁移性,更适用于互联网大规模的知识库问答应用。

WebQuesitons是目前使用最广泛的评测数据集,对于知识问答这类复杂信息需求,完全数据驱动的模型还难以达到理想的性能,对于需要聚合函数、时间推理等的复杂问题,还需要结合规则进行处理。

知识问答系统中假设问题包含了提问者的所有信息需求,实际上对于包含多个信息需求的问题,人们常常会以多个问题的方式表达出来;而且假设问题之间没有任何关系,实际上,多个问题之间常常共享信息。

对话系统是更自然友好的知识服务模式,它可以通过多轮人机交互满足用户的需求、完成具体任务等。

对话系统有几个特征:

本质上讲,对话系统就是能与人进行连贯对话的计算机系统。

对话系统的典型架构包括如下六个组成部分:

根据系统目标的差别,可以分为:(1)任务导向型系统:用户在使用系统时有确定的目标,一般为完成确定任务;(2)通用对话系统:用户没有具体目标,可能在多个任务之间切换。

首先是系统引导对话,然后是用户输入意图,通过用户输入和系统引导的方式交互式地完善用户意图信息,最终完成具体任务。

目标是将文本数据表示的信息转换为可被机器处理的语义表示。机器可处理的语义表示都与具体的任务有关,它需要与特定任务维护的内容数据(知识图谱)进行交互。

如何把输入的文本数据转换为语义信息,有多种难点:

  • 因为同样的意思有很多种不同的表达方式,对机器而言,理解每句话表达的意思不是简单的任务。
  • 自然语言的表示往往存在不确定性,相同语言表达在不同语境下的语义可能完全不同。
  • 在自然语言中往往存在不规范、不流畅、重复、指代甚至错误等情况。

目前,对话系统还难以解决上述所有问题。

这种方法的好处是非常灵活,也容易实现,人们可以根据任务定义各种各样的模板。缺点是复杂场景下需要很多模板,而这些模板几乎无法穷举。因此, &#x57FA;&#x4E8E;&#x6A21;&#x677F;&#x7684;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x7406;&#x89E3;&#x53EA;&#x9002;&#x5408;&#x76F8;&#x5BF9;&#x7B80;&#x5355;&#x7684;&#x573A;&#x666F;&#x3002;

目前很多方法都是使用数据驱动的统计模型识别对话中的意图和抽取对话中的意图项(槽值抽取和填充)。对话意图识别可以描述为一个分类问题,通过从输入查询中提取的文本特征进行意图分类。槽值抽取可以描述为一个序列标注问题,通过对每个输入词的标注和分类找出各个槽对应的值。

对话管理是对话系统中最重要的组成部分。对话管理用于控制对话的框架和结构,维护对话状态,通过与任务管理器的交互生成相应的动作。

  • 基于有限状态自动机的方法:这是一种简单的对话管理架构,它把任务完成过程中系统向用户询问的各个问题表示为状态,而整个对话可以表示为状态的转移。 &#x72B6;&#x6001;&#x8F6C;&#x79FB;&#x56FE;&#x53EF;&#x4EE5;&#x7528;&#x6709;&#x9650;&#x72B6;&#x6001;&#x81EA;&#x52A8;&#x673A;&#x8FDB;&#x884C;&#x63CF;&#x8FF0;&#xFF0C;&#x72B6;&#x6001;&#x56FE;&#x4E2D;&#x7684;&#x8282;&#x70B9;&#x8868;&#x793A;&#x7CFB;&#x7EDF;&#x8BE2;&#x95EE;&#x7528;&#x6237;&#x5404;&#x4E2A;&#x201C;&#x69FD;&#x201D;&#x503C;&#x7684;&#x63D0;&#x793A;&#x8BED;&#x53E5;&#xFF0C;&#x8282;&#x70B9;&#x95F4;&#x7684;&#x8FB9;&#x8868;&#x793A;&#x7528;&#x6237;&#x72B6;&#x6001;&#x7684;&#x6539;&#x53D8;&#xFF0C;&#x8282;&#x70B9;&#x95F4;&#x7684;&#x8F6C;&#x79FB;&#x63A7;&#x5236;&#x7740;&#x5BF9;&#x8BDD;&#x7684;&#x8FDB;&#x884C;&#x3002;&#x5BF9;&#x8BDD;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x7528;&#x6237;&#x7684;&#x8F93;&#x5165;&#x5BF9;&#x5E94;&#x7740;&#x7279;&#x5B9A;&#x201C;&#x69FD;&#x201D;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x7CFB;&#x7EDF;&#x6839;&#x636E;&#x7528;&#x6237;&#x8F93;&#x5165;&#x7684;&#x4FE1;&#x606F;&#x4ECE;&#x5F53;&#x524D;&#x72B6;&#x6001;&#x8F6C;&#x79FB;&#x5230;&#x4E0B;&#x4E00;&#x4E2A;&#x72B6;&#x6001;&#xFF0C;&#x5F53;&#x4EFB;&#x52A1;&#x5B8C;&#x6210;&#x65F6;&#xFF0C;&#x5373;&#x5B8C;&#x6210;&#x4E86;&#x4E00;&#x6B21;&#x5BF9;&#x8BDD;&#x7684;&#x4EA4;&#x4E92;&#x3002;
  • 基于框架的方法:就是确定这些所需全部”槽”值的过程,并在对话过程中不断填充和修改对话状态(如用向量表示框架各个”槽”的填充情况)。 &#x5BF9;&#x8BDD;&#x7BA1;&#x7406;&#x7CFB;&#x7EDF;&#x6839;&#x636E;&#x5404;&#x4E2A;&#x201C;&#x69FD;&#x201D;&#x7684;&#x586B;&#x5145;&#x60C5;&#x51B5;&#x63A7;&#x5236;&#x5BF9;&#x8BDD;&#x7684;&#x8FC7;&#x7A0B;&#x3002;&#x7531;&#x4E8E;&#x53EF;&#x4EE5;&#x4E00;&#x6B21;&#x83B7;&#x53D6;&#x6846;&#x67B6;&#x4E2D;&#x7684;&#x591A;&#x4E2A;&#x201C;&#x69FD;&#x201D;&#x503C;&#xFF0C;&#x56E0;&#x6B64;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x91CD;&#x65B0;&#x8BE2;&#x95EE;&#x7528;&#x6237;&#x5DF2;&#x7ECF;&#x63D0;&#x4F9B;&#x8FC7;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x53E6;&#x5916;&#xFF0C;&#x586B;&#x5199;&#x5404;&#x4E2A;&#x201C;&#x69FD;&#x201D;&#x503C;&#x7684;&#x65F6;&#x5019;&#x4E5F;&#x4E0D;&#x9700;&#x8981;&#x6309;&#x7167;&#x56FA;&#x5B9A;&#x987A;&#x5E8F;&#x8FDB;&#x884C;&#x3002;这类系统更灵活,它能够适应更多的对话类型。由于它不需要预先确定所有对话流程,因此可以根据当前用户的意图和对话的上下文信息来决定下一步对话操作。
  • 基于概率模型的方法: &#x524D;&#x4E24;&#x79CD;&#x65B9;&#x6CD5;&#x9700;&#x8981;&#x4EBA;&#x5DE5;&#x5B9A;&#x4E49;&#x89C4;&#x5219;&#xFF0C;&#x975E;&#x5E38;&#x8017;&#x8D39;&#x4EBA;&#x529B;&#x548C;&#x65F6;&#x95F4;&#xFF0C;&#x800C;&#x4E14;&#x4EBA;&#x5DE5;&#x5B9A;&#x4E49;&#x7684;&#x89C4;&#x5219;&#x96C6;&#x5408;&#x96BE;&#x4EE5;&#x4FDD;&#x8BC1;&#x5217;&#x51FA;&#x6240;&#x6709;&#x89C4;&#x5219;&#xFF0C;&#x8986;&#x76D6;&#x7387;&#x4E0D;&#x591F;&#x3002;对话过程是一个连续决策任务,一个好的决策应该是选择各种动作,这些动作集合的目标是最大化完成最终任务的回报(reward)和最小化损失(cost)。因此,可以利用马尔可夫决策过程(Markov Decision Process,MDP)进行建模。 MDP&#x662F;&#x4E00;&#x79CD;&#x53EF;&#x4EE5;&#x5E94;&#x7528;&#x5728;&#x5BF9;&#x8BDD;&#x7BA1;&#x7406;&#x7CFB;&#x7EDF;&#x4E0A;&#x7684;&#x6982;&#x7387;&#x6A21;&#x578B;&#xFF0C;&#x901A;&#x8FC7;&#x5206;&#x6790;&#x5BF9;&#x8BDD;&#x6570;&#x636E;&#x5B66;&#x4E60;&#x5230;&#x51B3;&#x7B56;&#x89C4;&#x5219;&#xFF0C;&#x5728;&#x4E00;&#x5B9A;&#x7A0B;&#x5EA6;&#x4E0A;&#x514B;&#x670D;&#x4E86;&#x4EBA;&#x5DE5;&#x5B9A;&#x4E49;&#x89C4;&#x5219;&#x89C4;&#x5219;&#x8986;&#x76D6;&#x7387;&#x4E0D;&#x8DB3;&#x7684;&#x95EE;&#x9898;&#x3002;&#x4F7F;&#x7528;&#x8BE5;&#x6A21;&#x578B;&#x5BF9;&#x5BF9;&#x8BDD;&#x7CFB;&#x7EDF;&#x5EFA;&#x6A21;&#xFF0C;&#x80FD;&#x591F;&#x5229;&#x7528;&#x5F3A;&#x5316;&#x5B66;&#x4E60;&#xFF08;Reinforcement Learning&#xFF09;&#x6280;&#x672F;&#x57FA;&#x4E8E;&#x7279;&#x5B9A;&#x56DE;&#x62A5;/&#x635F;&#x5931;&#x6C42;&#x89E3;&#x6700;&#x4F18;&#x5BF9;&#x8BDD;&#x7B56;&#x7565;&#xFF0C;&#x5B66;&#x4E60;&#x5BF9;&#x8BDD;&#x7BA1;&#x7406;&#x6A21;&#x578B;&#x3002;

基于对话状态,自然语言生成模块需要得到具体的回复内容。自然语言生成技术包括两个部分:内容选择和内容描述,其中,内容选择是由对话管理模型决定,用户接收的描述内容则取决于自然语言生成模块。

最简便直接的自然语言生成方法通过预先设定的模板,对系统状态(内容)进行一定的组织、选择和变换,将模板填充完整后输出。该方法效率高,实现简单,但是生成的句子质量不高。模板难以维护或扩充,也难以创造新的语言表达。

端到端的自然语言生成模型,采用数据驱动的统计模型学习如何自动生成完整自然语言回复句子。知识问答中自然答案的生成具有非常明确的现实意义和巨大的应用背景,具有如下优势:

以通过图灵测试为目标。

主要是使用关键字和模板匹配的方法,处理和生成的局句式都比较简单,也比较固定,能处理的领域有限,不能处理较复杂的对话,对话的自然度较差。

基于端到端的对话模型希望从原始历史对话数据中学习对话过程中所需的全部知识,自动生成流利、完整的对话内容。

最理想的评价方式就是让人使用对话系统,然后从各个方面对满意度进行打分。

每改变一次系统都需要人工评价,在实践中显然不可行。因此,常常需要有些启发式的自动评价方法,它们能从不同方面对对话系统的性能进行评估比较。

所有评价指标都是基于如下两个准则:(1)最大化任务完成度;(2)最小化成本开销。

Original: https://blog.csdn.net/renhengzhi2019/article/details/121735420
Author: renhengzhi2019
Title: 《知识图谱》赵军 学习笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/557767/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球