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

知识图谱读书笔记

文章目录

  • 知识图谱读书笔记
    • 一、 概述
      • 1.1 什么是知识图谱
      • 1.2 知识图谱发展历程
      • 1.3 知识图谱类型
      • 1.4 知识图谱生命周期
        • 知识体系构建
        • 知识获取
        • 知识融合
        • 知识存储
        • 知识推理
        • 知识应用
      • 1.5 知识图谱与深度学习
    • 二、知识表示
      • 2.1 经典知识表示理论
        • 逻辑
        • 语义网络
        • 框架
        • 脚本
      • 2.2 语义网中的知识表示方法
        • 语义网表示方法
        • 语义网知识描述体系
          • XML
          • RDF
          • OWL
      • 2.3 知识图谱中的知识表示方法
        • 表示框架
        • Freebase中的知识框架
      • 2.4 知识图谱的数值化表示方法
        • 符号的数值化表示
        • 文本的数值化表示
        • 知识图谱的数值化表示
          • 基于张量分解的表示学习方法
          • 基于能量函数的表示学习方法
    • 三、知识体系构建和知识融合
      • 3.1 知识体系构建
        • 人工构建方法
        • 自动构建方法
        • 典型知识体系
      • 3.2 知识融合
        • 框架匹配
        • 实体对齐
        • 冲突检测与消解
        • 典型知识融合系统
    • 四、实体识别和扩展
      • 4.1 实体识别
        • 任务概述
        • 基于规则的实体识别方法
        • 基于机器学习的实体识别方法——基于特征的方法
        • 基于机器学习的实体识别——基于神经网络的方法
      • 4.2 细粒度实体识别
        • 任务概述
        • 细粒度实体识别的方法
      • 4.3 实体扩展
        • 任务概述
        • 实体扩展方法
    • 五、实体消歧
      • 5.1 任务概述
        • 任务定义
        • 任务分类
      • 5.2 基于聚类的实体消歧方法
        • 基于表层特征的实体指称项相似度计算
        • 基于扩展特征的实体指称项相似度计算
        • 基于社会化网络的实体指称项相似度计算
      • 5.3 基于实体链接的实体消歧方法
        • 链接候选过滤方法
        • 实体链接方法
      • 5.4 面向结构化文本的实体消歧方法
    • 六、关系抽取
      • 6.1 任务概述
        • 任务定义
        • 任务分类
        • 任务难点
      • 6.2 限定域关系抽取
        • 基于模板的关系抽取方法
        • 基于机器学习的关系抽取方法
          • 有监督的关系抽取方法
          • 弱监督的关系抽取方法
      • 6.3 开放域关系抽取
    • 七、事件抽取
      • 7.1 任务概述
      • 7.2 限定域事件抽取
        • 基于模式匹配的事件抽取方法
          • 有监督的事件模式匹配
          • 弱监督的事件模式匹配
        • 基于机器学习的事件抽取方法
          • 有监督事件抽取方法
          • 弱监督事件抽取方法
      • 7.3 开放域事件抽取
        • 基于内容特征的事件抽取方法
        • 基于异常检测的事件抽取方法
      • 7.4 事件关系抽取
        • 事件共指关系抽取
        • 事件因果关系抽取
        • 子事件关系抽取
        • 事件时序关系抽取
    • 八、知识存储和检索
      • 8.1 知识图谱的存储
        • 基于表结构的存储
          • 三元组表
          • 类型表
          • 关系数据库
        • 基于图结构的存储
          • 基于图结构的存储模型
          • 常用图数据库介绍
      • 8.2 知识图谱的检索
        • 常见形式化查询语言
          • SQL语言
          • SPARQL语言
        • 图检索技术
          • 子图筛选
          • 子图同构判定
    • 九、知识推理
      • 9.1 知识图谱中的典型推理任务
        • 知识补全
        • 知识问答
      • 9.2 知识推理分类
        • 归纳推理和演绎推理
          • 归纳推理
          • 演绎推理
        • 确定性推理与不确定性推理
          • 确定性逻辑推理
          • 不确定性推理
        • 符号推理和数值推理
      • 9.3 基于符号演算的推理
        • 归纳推理:学习推理规则
          • 频繁子图挖掘
          • 归纳逻辑编程
          • 结构学习方法
        • 演绎推理:推理具体事实
          • 确定性推理: λ \lambda λ演算
          • 不确定性推理:马尔可夫逻辑网和概率软逻辑
      • 9.4 基于数值计算的推理
        • 基于张量分解的方法
        • 基于能量函数的方法
      • 9.5 符号演算和数值计算的融合推理
      • 9.6 常识知识推理
    • 十、知识问答与对话
      • 10.1 自动问答概述
      • 10.2 知识问答
        • 知识问答技术概述
        • 基于语义解析的方法
          • 有监督方法
          • 无监督方法
        • 基于搜素排序的方法
          • 基于特征工程的方法
          • 基于表示学习的神经网络方法
        • 常用评测数据及各方法性能比较
      • 10.3 知识对话
        • 知识对话技术概述
        • 任务导向型对话模型
          • 自然语言理解
          • 对话管理
          • 自然语言生成
        • 通用对话模型
          • 基于模板的方法
          • 端到端的方法
        • 评价方法

一、 概述

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

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

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

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

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

  知识图谱的几个特点:

  1. 知识图谱是人工智能应用不可或缺的基础资源。
  2. 语义表达能力丰富,能够支持很多知识服务应用任务。知识图谱源于语义网络,是一阶谓词逻辑的简化形式,并在实际应用中通过大量的概念和关系类型丰富了语义网络的内涵。一方面,它能够描述概念、事实、规则等各个层次的认知知识;另一方面,它也能够有效组织和描述人类在自然环境和社会活动中形成的海量数据。
  3. 描述形式统一,便于不同类型知识的集成和融合。本体(Ontology)和分类系统(Taxonomy)是典型的知识体系载体,数据库是典型的实例数据载体。知识图谱以资源描述框架(RDF)的形式对知识体系和实例数据进行统一表示,并可以通过对其、匹配等操作对异构知识进行集成和融合。
  4. 表示方法对人类友好,给以众包等方式编辑和构建知识图谱提供了便利。知识图谱以实体和实体关系为基础的简洁表示形式,无论是专家还是普通民众都很容易接受,这给以众包等方式编辑和构建知识提供了便利,为大众参与大规模知识构建提供了低认知成本的保证。
  5. 二元关系为基础的描述形式,便于知识的自动获取。
  6. 表示方式对计算机友好,支持高效推理。知识图谱的表示形式以图结构为基础,结合图论相关算法的前言技术,利用对节点和路径的遍历搜索,可以有效提高推理效率,极大降低了计算机处理的成本。
  7. 基于图结构的数据格式,便于计算机系统的存储与检索。知识图谱以三元组为基础,使得在数据的标准化方面更容易推广,相应的工具更便于统一。

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

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

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

  知识图谱本身是一种语义网络,但是相较于传统的知识表示,现有的知识图谱以三元组为统一表示形式,不仅形式上更加开放,更容易被人们接受,其存储、搜索和推理也更加高效。

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

1.1 什么是知识图谱

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

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

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

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

  按照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={e1,e2,,eE}表示实体集合, R = { r 1 , r 2 , … , r ∣ R ∣ } \mathcal{R}=\{r_1,r_2,\ldots,r_{|\mathcal{R}|}\} R={r1,r2,,rR}表示关系集合, S ⊆ R × E × E \mathcal{S}\subseteq\mathcal{R}\times\mathcal{E}\times\mathcal{E} SR×E×E表示知识图谱中三元组的集合。

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

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

  1. 概念知识:给出了知识的最基本内容;
  2. 事实知识:建立了概念之间的联系;
  3. 规则知识:建立了事物之间的联系。

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

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

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

1.2 知识图谱发展历程

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

  • 人工智能的研究目标是使计算机更加智能,让计算机能够完成一些人脑才能完成的任务,例如推理、分析、预测、思考等高级思维活动。人们希望借助知识库完成该目标,即把人类的知识用计算机进行表示和组织,并设计相应的算法完成推理、预测等任务。
  • 人们希望通过引入知识,使得原始数据能够支撑推理、问题求解等复杂任务(如多维数据分析),这个目标就是语义网(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试图通过知识图谱,对网页内容进行刻画,从这些非结构化的文本内容中提取实体以及实体关系,将其事实性的文本内容转化为相互连接的图谱结构,从而让计算机真正做到内容理解。

1.3 知识图谱类型

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

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

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

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

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

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

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

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

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

  1. Cyc: 一个通用的常识知识库,始建于1984年,其目的是将上百万条知识编码为机器可处理的形式,并在此基础上实现知识推理等智能信息处理任务。
  2. WordNet:1985年由Princeton大学公布的一个英文电子词典和本体,采用人工标注的方法,将英文单词按照单词的语义组成一个大的概念网络。
  3. HowNet:一个语言认知知识库/常识知识库,以概念为中心,基于义原描述了概念与概念之间以及概念所具有的属性之间的关系,每一个概念可以由多种语言的词汇进行描述(主要是中文和英语)。
  4. ConceptNet:一个开放的、多语言的知识图谱,致力于帮助计算机理解人们日常使用的单词的意义。
  5. YAGO:基于WordNet知识体系,将Wikipedia中的类别与WordNet中的同义词集进行关联,同时将Wikipedia中的条目挂在到WordNet的体系下,这样的优势在于既自动扩充了知识库,同时又对海量的知识进行了组织和整理。
  6. BabelNet:主要特点是将Wikipedia链接到最常用的英语类义词典WordNet上,这一点类似于YAGO,但是BabelNet加入了多语言支持。BabelNet提供了多语言的概念和命名实体,并包含了它们之间丰富的语义关系。
  7. DBpedia:从Wikipedia中的结构化数据(Infobox)中抽取知识。
  8. Freebase:基于Wikipedia、使用群体智能方法建立的包含5813万实体、32亿个实体关系三元组的结构化知识资源,是公开可获取的规模最大的知识图谱之一。不过可惜的是,目前Freebase已经停止更新,已有的Freebase数据可以下载得到。Freebase是第一个尝试利用协同智慧构建完全结构化知识图谱的系统。
  9. KnowItAll、TextRunner和ReVerb:自动从网络数据中抽取信息进而构建知识库,是实现语义搜索的重要支撑技术。KnowItAll项目目标是让机器自动阅读互联网上的文本内容,从大量非结构化的文本中抽取结构化的实体关系三元组信息。这里要抽取的关系不再是预定义的,也就是说知识抽取的范围是开放域文本。TextRunner和ReVerb(ReVerb是TextRunner的升级版)都致力于从文本中通过识别句子的谓词抽取所有的二元关系。这两个系统都利用了网络数据的冗余信息,对初步认定可信的信息尽心评估。
  10. NELL:本身是一套语言学习系统,每天不间断地执行两项任务:阅读和学习。阅读任务是从Web文本中获取知识,并添加到内部知识库;学习任务是使用机器学习算法获取新知识,巩固和扩展对知识的理解。NELL目前还需要进一步完善学习算法来消除错误信息,使其能够更加有效地完成对知识的学习、总结和归纳
  11. Knowledge Vault:不再采用众包的方式进行图谱构建,而是试图通过算法自动搜集网上信息,通过机器学习方法对已有的结构化数据进行集成和融合,将其变为可用知识。

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

  1. 影视领域知识图谱IMDB。
  2. 音乐领域知识图谱MusicBrainZ。
  3. 医疗卫生领域知识图谱SIDER。

1.4 知识图谱生命周期

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

知识体系构建

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

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

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

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

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

知识获取

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

  1. 结构化数据:结构化数据可以是来自于各个企业内部数据库的私有数据,也可以是网页中看到的表格数据。结构化数据的优点是置信度高,数据质量可靠;缺点是数据规模小,不容易获得。网络百科中的信息框是典型的结构化数据,其数据结构化程度很高,而且整个网站中的信息狂的结构样式统一,可以直接采用模板的方式提取实体相关的属性和属性值。可以通过整合提升知识图谱的知识覆盖率。Web上也存在大量高质量的垂直领域站点,它们中的数据也保存了大量领域相关结构化数据并以HTML表格的形式呈现给用户,对这些数据的充分利用也可以进一步扩大特定领域知识图谱的知识覆盖率。
  2. 半结构化数据:是指那些不能通过固定的模板直接获得的结构化数据。半结构化数据的结构相对于结构化数据较为松散,具有结构多变、模式不统一的特点。相关的结构化知识隐藏在一些隐式的列表和表格中。半结构化数据的优点是置信度高,规模比较大,个性化信息丰富而且形式多样;缺点是样式多变且含有噪声,很难通过人工编写模板的方式进行抽取
  3. 非结构化文本数据:指的就是纯文本,即自然语言文本数据。当前互联网上大多数的信息都以非结构化文本的形式存储,相比结构化数据和半结构化数据,非结构化文本数据要丰富很多。因此,如何从纯文本数据中进行知识获取受到工业界和学术界的广泛关注,这一任务被称为文本信息抽取

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

  1. 实体识别:目标是从文本中识别实体信息。在这一过程中,不仅需要确定实体的前后边界,还需要确定实体的类别。早起有关实体识别的研究主要是针对命名实体的识别。命名实体(Named Entity)指的是文本中具有特定意义的实体,一般包括三大类(实体类、时间类和数字类)、七小类(人名、地名、机构名、时间、日期、货币和百分比)。但是,在知识图谱领域,从文本中识别实体不仅仅局限于命名实体,还包括其他类别的实体,特别是领域实体。与实体识别相关的任务是实体抽取,其区别在于实体抽取的目标是在给定语料的情况下构建一个实体列表,并不需要确定每个句子中实体的边界
  2. 实体消歧:目标是消除指定实体的歧义。实体消歧对于知识图谱构建和应用有着重要作用,也是建立语言表达和知识图谱联系的关键环节。从技术路线上分,实体消歧任务可以分为实体链接和实体聚类两种类型。
    • 实体链接是将给定文本中的某一个实体指称项(Entity Mention)链接到已有知识图谱的某一个实体上,因为在知识图谱中,每一个实体具有唯一的编号,链接的结果就是消除了文本指称项的歧义。
    • 实体聚类的假设是已有知识图谱中并没有已经确定的实体,在给定一个语料库的前提下,通过聚类的方法消除语料中所有实体指称项的歧义,具有相同所指的实体指称项应该被聚为同一类别。
  3. 关系抽取:目标是获得两个实体之间的语义关系。语义关系可以是一元关系(例如实体的类型),也可以是二元关系(例如实体的属性)甚至是更高阶的关系。在现有的知识图谱中,所处理的语义关系通常指的是一元关系和二元关系。根据抽取目标的不同,已有关系抽取任务可以分为:关系分类、属性抽取、关系实例抽取等。
    • 关系分类任务是判别给定的一句话中两个指定实体之间的语义关系。
    • 属性抽取任务是在一个给定实体和一个预定义关系的条件下,抽取另外一个实体。
    • 关系实例抽取的任务包括实体间关系和抽取满足该关系的知识实例数据。
      在知识图谱中,包含多种类型的语义关系,例如:上下位关系、部分整体关系、属性关系等。关系抽取对于构建知识图谱非常重要,是图谱中确定两个节点之间边上语义信息的关键环节。然而,关系抽取也十分困难,因为对于同一语义关系的自然语言表达多种多样、十分丰富。另外,根据标注数据以及应用场景的不同,已有关系抽取方法可以分为有监督关系抽取、无监督关系抽取、弱监督挂你抽取以及开放关系抽取等。
  4. 事件抽取:目标是从描述事件信息的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来。事件是发生在某个特定事件的时间点或时间段、某个特定的地域范围内,由一个或者多个角色参与的,一个或多个动作组成的事情或者状态的改变。现有知识图谱中大多以实体和实体之间的关系为核心,缺乏事件知识。然而,很多科学家认为人们是以事件为单位来认识世界的,事件符合人们的正常认知规律。事件知识能够弥补现有以实体和实体关系为核心的知识图谱知识表达能力不足的问题,是构建知识图谱不可或缺的技术。事件结构本身的复杂性和自然语言表达的歧义性和灵活性,对事件抽取提出了很大的挑战。根据抽取方法的不同,已有的事件抽取方法可以分为基于模式匹配的事件抽取基于机器学习的事件抽取

知识融合

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

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

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

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

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

知识存储

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

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

知识推理

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

  1. 基于传统逻辑规则方法的推理,其研究热点在于如何自动学习推理规则,以及如何解决推理过程中的规则冲突问题
  2. 基于表示学习的推理,即采用学习的方式,将传统推理过程转化为基于分布式表示的语义向量相似度计算任务。这类方法的优点是容错率高、可学习,缺点是不可解释、缺乏语义约束

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

知识应用

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

  1. 智能搜索:基于知识图谱的搜索引擎,内部存储了大量的实体以及实体之间的关系,可以根据用户查询准确地返回答案。用户意图理解是知识搜索的核心步骤,它也广泛使用知识图谱。
  2. 自动问答:可以利用知识图谱中实体及其关系进行推理得到答案。
  3. 推荐:可以利用知识图谱中实体(商品)的关系(类别)向用户推荐相关的产品。
  4. 决策支持:知识图谱能够把领域内的复杂知识通过信息抽取、数据挖掘、语义匹配、语义计算、知识推理等过程精确地描述出来,并且可以描述知识的演化过程和发展规律,从而为研究和决策提供准确、可追踪、可解释、可推理的知识数据。

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

1.5 知识图谱与深度学习

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

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

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

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

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

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

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

  1. 词表示学习方法:基于深度学习的自然语言处理方法的基本步骤,其主要目的是把每个词符号表示为分布向量的形式(Distributional Representation),基于词的向量表示,句子、段落、篇章、对话等更大语言单元就可以通过语义组合模型(如卷积神经网络、循环神经网络等深度学习模型)得到,进而进行文本分类、问答匹配、机器翻译、对话生成等任务。词表示学习的理论基础是Firth在1954年提出的分布假说(Distributional Hypothesis):上下文相似的词,其语义也相似。Firth在1957年进一步阐述:词的语义由其上下文决定(A word is characterized by the company it keeps)。为了让词的分布表示能蕴含更多语义信息,特别是人类认知一致的语义知识,有不少研究把句法分析结果、语言知识图谱、常识知识图谱融入到词的表示学习过程中,以此提升词表示在深层语义理解任务中的效果。
  2. 知识图谱表示学习:将知识图谱中用符号表示的实体和关系投影到低微向量空间中,这种表示能够体现实体和关系的语义信息,可以高效地计算实体、关系及其之间的复杂语义关联。这种方法在知识图谱的构建、推理和应用中具有重要作用。学习到的实体和关系向量表示反映了知识图谱中各个元素之间的关联,能够用于推断知识图谱中缺失的关系,补全知识图谱。知识图谱表示学习在学习实体和关系的向量时,可以考虑到整个知识图谱的信息,因此,当用其推断知识图谱中缺失的关系时,可以考虑更加全面的信息,从而提升预测性能,并且计算效率高,能够满足当前大规模知识图谱的需求。但是,这种推理过程使用数值计算的方式表达,是一种隐含的表达方式,不易被理解,人工也很难干预推理过程和增加先验知识。
  3. 神经符号机:一种将神经网络与符号推理相结合的技术,近年来开始被用于自然语言处理领域。神经符号机是利用神经网络对函数演算和图灵机等传统计算模型进行建模。可以将其分为两类:
  • 一类抽象层次较高,每个推理步骤都是从设计好的操作集合里选择,再选择合适的操作数。通过依次执行多个操作,得到针对用户问题的最终答案。
  • 另一类做法抽象层次较低,它们从模拟计算机底层操作方式的角度抽象模型,设计出内存、CPU控制器等结构,并借鉴传统计算机操作系统的思路,从随机访存、空间内存分配、访存时序等不同侧面进行建模,完善模型的性能。

二、知识表示

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

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

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

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

2.1 经典知识表示理论

逻辑

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

  • 命题逻辑(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 xP表示对于每一个对象 x x x P P P为真。
  • 存在量词( ∃ \exist )用来表示在论域中存在至少一个对象,这一对象无需显式表示出来。形式化地,对于任意的含有 x x x的逻辑表达式 P P P,语句 ∃ x P \exist xP xP表示至少存在一个对象 x x x,使 P P P为真。

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

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

语义网络

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

  1. 人脑记忆的一个重要特征是人脑中的不同信息片段之间的高度连接;
  2. 高度相关的概念比不太相关的概念更快地回忆起来。

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

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

  1. 实例关系(ISA):体现的是“具体和抽象”的概念,含义为“是一个”,表示一个事物是另一个事物的一个实例。
  2. 分类关系(AKO,a kind of的缩写):亦称泛化关系,体现的是“子类与超类”的概念,含义为“是一种”,表示一个事物是另一个事物的一种类型。
  3. 成员关系(a-member-of):体现的是“个体与集合”的关系,含义为“是一员”,表示一个事物是另一个事物的一个成员。
  4. 属性关系:指事物和其属性之间的关系。
  5. 聚合关系:亦称包含关系,指具有组织或结构特征的“部分和整体”之间的关系。
  6. 时间关系:指不同事件在其发生时间方面的先后次序关系。
  7. 位置关系:指不同事物在位置方面的关系。
  8. 相近关系:指不同事物在形状、内容等方面相似或相近。

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

  • 一元关系可以用一元谓词 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被证明对一系列自然语言处理任务有明显的效果,包括信息抽取、文本蕴含、语义解析和角色标注等任务。

脚本

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

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

  1. 进入条件:指出脚本所描述的事件可能发生的先决条件,即事物发生的前提条件。
  2. 角色:描述事物中可能出现的人物。
  3. 道具:描述事物中可能出现的相关物体,主要指人物角色在完成动作时使用的工具。
  4. 舞台:脚本中事件发生的空间。
  5. 场景:时间发生的序列。场景并不是单一的动作序列,而是可以存在多个可能的分支,对所有可能发生动作序列的枚举是一个庞大的工程,因此这也是脚本表示法的一个缺陷
  6. 结局:给出在剧本所描述的事件发生以后通常所产生的结果,对应着进入后续脚本的先决条件。

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

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

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

2.2 语义网中的知识表示方法

语义网表示方法

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

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

语义网知识描述体系

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

  1. XML: 全称可扩展标记语言(eXtensible Markup Language)。XML以文档为单位进行表示,不能显式地定义标签的语义约束,它的扩展版本以XML Schema定义了XML文档的结构,指出了XML文档元素的描述形式。
  2. RDF:全称资源描述框架(Resource Description Framework)。RDF资源的属性、类的描述,以及类别间一般到特殊的层次结构语义,一起由RDF Schema进行定义。
  3. OWL:全称网络本体语言(Web Ontology Language)。OWL是本体的语义表示语言,它建立在RDF和RDF Schema的基础之上。OWL能够表达本体知识和刻画属性之间的关系。为了更好地对逻辑和推理知识进行描述,OWL吸收了描述逻辑等逻辑语言。
XML

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

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

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

RDF

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

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

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

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

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

OWL

  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),让每一个概念(实体、类别、关系、事件等)都有一个唯一的标识符,这种唯一性使得知识共享在更大领域更大范围成为可能。

2.3 知识图谱中的知识表示方法

表示框架

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

  1. 事物:客观世界中的实体或对象。
  2. 概念:具有相似本体特征的一类事物,也称类型。
  3. 属性:事物或概念具有的特征和特性等。
  4. 关系:概念和实体之间的关联方式。
  5. 函数:事物或概念之间进行转化的形式表达。
  6. 约束:某项断言成立的限制条件的形式化描述。
  7. 规则:依据某项断言得到逻辑推论的因果关系知识的形式化描述,通常具有“如果…那么…”的形式。
  8. 公理:永远为真的断言。

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

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

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

Freebase中的知识框架

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

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

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

2.4 知识图谱的数值化表示方法

符号的数值化表示

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

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

文本的数值化表示

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

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

知识图谱的数值化表示

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

基于张量分解的表示学习方法

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

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

基于能量函数的表示学习方法

  这类方法可以克服上述张量分解方法在大规模知识图谱表示学习的过程中学习效率低的问题。对于三元组 r ( e 1 , e 2 ) r(e_1, e_2) r(e1,e2),定义基于三元组的能量函数 f r ( e 1 , e 2 ) f_r(e_1, e_2) fr(e1,e2)。以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}} fr(e1,e2)=e1+re2L1/2 e i e_i ei r r r分别表示实体 e i e_i ei和关系 r r r的向量表示。记知识图谱中三元组的集合为 Δ \Delta Δ Δ r ( e 1 , e 2 ) ′ \Delta'_{r(e_1, e_2)} Δr(e1,e2)表示由 r ( e 1 , e 2 ) r(e_1, e_2) r(e1,e2)生成的负样本的集合(比如,随机替换 e 1 e_1 e1 e 2 e_2 e2),学习的目标函数定义为
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(e1,e2)Δr(e1,e2)Δr(e1,e2)[γ+fr(e1,e2)fr(e1,e2)]+

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

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

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

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


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

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

3.1 知识体系构建

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

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

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

人工构建方法

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

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

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

  1. 确定领域及任务:知识体系与具体领域密切相关,因此在创建知识体系之前,首先应该确定知识图谱面向的领域。想要构建更合适的体系,还需要回答如下问题:我们为什么要使用这个知识体系?这种知识体系能够帮助回答哪些类型的问题?谁会使用并维护这个知识体系?这些问题应该贯穿于知识体系构建的各个阶段,并随着体系构建的推进,重新思考并根据新的想法修正已经构建的知识体系。
  2. 体系复用:从零开始构建不仅成本高昂,而且质量难以保证。实际上可以先构建一个轻量级的知识体系,然后尽可能基于它们进行扩展。因此应该广泛调研现有的第三方知识体系或与之相关的资源,尽可能多地参考前任的已有成果。主要包括:
    • 领域词典:一些领域内的专家会编撰领域内的词典,这些词典在构建限定领域的知识体系时具有重要的参考价值。
    • 语言学资源:在自然语言处理领域,有很多语言学资源可以用于帮助知识体系的构建。
    • 开源知识图谱:这些知识图谱的知识体系都是由专家人工制定的,具有较高的质量,并且涵盖的领域非常广泛,对于制定新的知识体系具有很高的参考价值。
    • 网络百科:是由成千上万的用户共同编辑得到的,其包含的知识范围非常广泛,知识的更新和新知识的添加都比较及时。
  3. 罗列要素:罗列期望在知识图谱中期望出现的要素列表,主要包括概念、属性以及关系。不需要对上述的概念进行清晰的分类,只需要尽可能多地罗列出期望的元素即可。
  4. 确定分类体系:有两种方式可供选择,分别是自顶向下的方法和自底向上的方法。必须保证上层类别所表示的概念完全包含于下层类别多表示的概念,也就是说所有下层类别的实例也必须是上层类别的实例。
    • 自顶向下的方法从最抽象的概念开始,逐层添加更为具体的概念;
    • 自底向上的方法则先从最具体的概念开始,逐层进行抽象。
  5. 定义属性及关系:属性用于描述概念的内在特征,关系则用于刻画不同概念之间的关系。属性的定义需要受分类体系的约束,下层类别必须继承所有上层类别的属性。这一步经常和上一步交叉进行,因为在定义属性的过程中可能会发现原有分类体系的不足,需要对其进行修正。
  6. 定义约束:不同属性和关系具有不同的定义域和值域,这些约束可以保证数据的一致性,避免异常值的出现。

自动构建方法

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

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

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

  1. 基于非结构化数据的知识体系学习:基于文本数据构建知识体系也称为基于文本的本体学习(ontology learning from text),其基本思想是:首先利用自然语言处理工具对文本进行分词、句法分析、命名实体识别等预处理操作,然后利用模板匹配、统计学习等手段从文本中抽取重要信息,主要包括领域概念、实例以及概念之间的关系。基于非结构化文本的知识体系学习方法主要包括以下三个主要步骤:领域概念抽取、分类体系构建、概念属性及关系抽取。
    1. 领域概念抽取:目标是从文本数据中抽取出构建知识体系所需的关键元素,这些关键元素称为该领域的术语。主要分为如下三步:
    • 抽取候选术语:利用自然语言处理工具对文本进行词法、句法分析,然后利用语言学规则或者模板在文本中抽取特定字符串,并将这些字符串当做领域术语的候选。这一步的目的是尽可能多地将真正的术语包括进来,因此对抽取术语的质量没有严格的要求,但要尽量保证抽取术语的高覆盖率
    • 术语过滤:候选术语噪声太大,准确率不高,因此需要进一步过滤掉其中低质量的术语。领域术语和普通词汇在语料中往往具有不同的统计特征。可以利用互信息(MI)、词频逆文档频率(TF-IDF)、术语相关频率(RTF)等方法来定量刻画候选术语的统计特性,并基于这些量化数值过滤掉低质量的候选术语。
    • 术语合并:概念是认知层面的处理单元,而术语是语言层面的处理单元。知识体系是对概念及其关系的描述,因此需要将上一步获得的术语转化为概念。具体做法是将候选术语中表达相同概念的术语聚合到一起,转换的过程就是识别同义词的过程。最具代表性的方法有基于词典的方法和基于统计的方法。
      • 基于词典的方法:利用现有的词典资源获取词汇的同义情况,典型的资源有WordNet、HowNet、同义词词林等。
      • 基于统计的方法则假设相同词义的词汇具有相似的上下文,基于该假设在大规模语料上进行词汇表示学习,并基于词汇的表示对词汇进行聚类,聚类的结果就是同义词识别的结果
    1. 分类体系的构建:实际上是要获取不同概念之间的继承关系,语言学上称之为上下位关系。下位词是上位词关系的具体化。基于词典的方法和基于统计的方法同样是解决上下位关系识别的主要方法。
    • 基于词典的方法:通过查询现有的词典资源获取不同词汇的上下位关系,典型的资源有WordNet等。
    • 基于统计的方法通过词的上下文对当前词进行表示,并基于该表示对得到的领域术语进行层次聚类。聚类结果中,不同层次类别内的术语就构成了上下位关系
    1. 概念属性及关系抽取:一般将关系也视作概念的属性,采用统一的过程对它们进行抽取。属性和关系也可以看做是一种概念,因此属性及关系的抽取过程和概念的抽取过程类似。首先利用词法、句法分析等工具对文本进行预处理,并通过规则或模板的方法为给定的概念获取候选的属性集合。然后利用统计方法定量地评估每个候选属性的置信度,过滤掉低质量的属性。获得的属性集合中同样存在同义词的情况,需要在候选属性集中进行同义词识别。
  2. 基于结构化数据的知识体系学习:关系数据库采用关系模型对现实世界中的信息进行建模,具有两个明显的优点:(1)首先是关系模型结构简单,便于理解。所有的对象在关系型数据库中都通过二维表格进行表示和存储。(2)关系模型具有很强的理论基础,关系代数强有力地支持了关系模型。基于结构化数据的知识体系学习的主要任务是分析关系模型中蕴含的语义信息,并将其映射到知识体系的相应部分。无论是概念抽取还是概念建关系的抽取,首选需要识别出数据库中哪些项描述实体,哪些项描述实体间关系。在进行关键信息抽取时,可以从描述实体的表中抽取出实体的概念(即本体类型)及实体的属性,从描述关系的表中抽取出概念间的关系。还需要进一步对该知识体系进行评估和修正,生成最终的知识体系。
  3. 基于半结构化数据的知识体系学习:这类数据是介于结构化数据和非结构化数据之间的一类数据,因此上述两类方法也能够应用于该类数据。机器可读的知识词典也是一种特殊的半结构化数据。基于模板的方法是一种从词典中获取知识体系的有效方法。这种方法首先需要根据词典的特点设计一组词典语法模板,然后利用模板从词典中获取所需信息。

典型知识体系

  1. SUMO:SUMO与WordNet词典进行了映射,它由IEEE拥有,但是可以免费下载和使用。高层的知识本体定义了概念,它们可以在各个领域进行共享,因此,SUMO可以作为其他知识体系的基础本体。
  2. Schema.org:一个完全由企业推动的共享本体项目。使用Schema.org的词汇表和一些方便人们编辑的微格式来标记网页内容的数据元,可以更方便地让搜索引擎对这些站点进行爬取和分析,从而获得站点更丰富的语义。Schema.org的知识体系就是具有层次结构的类别系统,每个类型有若干属性。
  3. Freebase:一种由大众编辑的协同知识图谱,用领域(domain)组织概念,每个概念有其特有的一些属性。Freebase的一大特色就是使用组合数据类型(Compound Value Types,CVT)的方式表示事件等N-Tripple事实。
  4. Protege:作为一个目前使用最广泛的跨平台开源本体编辑器,Protege常被用来构建、编辑和管理知识框架。主要采用基于框架的知识表示模型,一般是先定义类,再定义类中的属性,最后定义关于类和属性的约束。此外,Protege也可以对知识框架提供可视化展示。

3.2 知识融合

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

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

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

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

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

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

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

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

框架匹配

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

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

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

  • 元素级匹配独立判断两个知识图谱中的元素是否应该匹配,不考虑其他元素的匹配情况。
  • 结构级匹配不把各个元素作为独立的资源,而利用知识图谱的结构,在元素匹配过程中考虑其他相关元素匹配情况的影响。
  1. 元素级匹配:符号是对元素的描述,有非常强的语义指示作用。所以,最基本的方法可以基于字符串匹配的技术实现本体元素的匹配。字符串越相似,它们越有可能表示相同的概念。常用的匹配方法有:前缀距离、后缀距离、编辑距离和 n n n元语法距离等。这种方式忽略了语言符号的多义性(一词多义或一义多词)。基于语言学的技术将名称看作是自然语言中的词汇可以更好地计算元素之间的关联性。元素相似度的判断可以充分利用元素描述文字之间的语言关系。为了计算框架元素的匹配程度还可以利用元素的约束信息,这种匹配方法称为基于约束的匹配技术。这种技术通常与其他元素级技术同时使用,目的是减少候选映射对的数量,同时也可以作为其他方法的预处理步骤,以消除冲突的属性。WordNet是元素级匹配经常用到的语言学资源,为了突破其覆盖度的限制,可以引入词的表示学习技术,获得词向量。词向量的优点是可以将词表示为低维语义向量空间中的一个点,这样,词与词之间的语义相似度就可以用点之间的距离来衡量。可以把词向量相似度和基于实体间编辑距离相似度结合在一起,用以对齐异构知识库。
  2. 结构级匹配:不同元素的匹配之间会相互影响,可以利用概念元素之间的关系进行匹配,这类方法的基本思想是相似的概念具有相似的概念结构。基于结构匹配的技术主要有三种:基于图的技术,基于分类体系的技术以及基于统计分析的技术。
  • 基于图的技术将要匹配的本体看做一个已经标记的图结构。基本思想是:对于两个本体中的节点,如果他们的邻居节点是相似的,那么它们也是相似的,反之亦然。 这种技术将本体看成一个多元关系图,图中相似元素的发现与解决图的同态问题是相似的,因此可以将本体匹配问题转化为发现最大公共子图的问题。完整的图匹配是一个复杂度很高的问题,计算量很大,在实际操作中,一般会用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,也可称为指称项)可以有三种形式:命名性指称、名词性指称和代词性指称。

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

4.1 实体识别

任务概述

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

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

  1. 命名实体形式多变。命名实体的内部结构很复杂,对中文命名实体来说,情况尤其如此。
  • 人名:汉语人名一般包括姓氏(由一到两个字组成)和名(由若干个字组成)两部分,其中姓氏的用字是有限的,而名的用字很灵活。人名还有很多其他形式。
  • 地名:通常的形式是若干个字组成地名,可能包括作为后缀的关键字。也存在一些简称来指称地理位置。
  • 机构名:可以包含命名性成分、修饰性成分、表示地名的成分以及关键词成分等。
  1. 命名实体的语言环境复杂。命名实体是语言中非常普遍的现象,因此可以出现在各种语言环境中。同样的汉字序列在不同环境下,可能具有不同的实体类型,或者在某些条件下是实体,在另外的条件下就不是实体。*英文中的命名实体具有比较明显的形式标志(即实体中每个词的第一个字母要大写),所以实体边界识别相对容易,重点是确定实体类别。*相比之下,汉语命名实体识别任务要复杂得多,主要表现为:
  • 汉语文本没有类似英语文本中空格之类的显式表示词边界的标示符,分词和命名实体识别会相互影响。
  • 英语的命名实体往往是首字母大写的,而中文文本中没有这样的标示。

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

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

基于规则的实体识别方法

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

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

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

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

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

基于机器学习的实体识别方法——基于特征的方法

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

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

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

  条件随机场(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(YvX,Yw,w=v)=P(YvX,Yw,wv)

  在上述公式中, w ∼ v w \sim v wv表示两个顶点之间有直接连接的边,在命名实体识别任务中一般可看做线性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(YX,λ,μ)exp(i=1njλjtj(yy1,yi,x,i)+i=1nkμksk(yi,x,i))

  在上述公式中, t j ( y i − 1 , y i , x , i ) t_j(y_{i-1},y_i,x,i) tj(yi1,yi,x,i) s k ( y i , x , i ) s_k(y_i,x,i) sk(yi,x,i)都表示特征函数, t j ( y i − 1 , y i , x , i ) t_j(y_{i-1},y_i,x,i) tj(yi1,yi,x,i)表示观察序列的标记序列位置 i − 1 i-1 i1 i i i之间的转移特征函数, λ j \lambda_j λj为这个转移函数的权重, s k ( y i , x , i ) s_k(y_i,x,i) sk(yi,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(ND2)

基于机器学习的实体识别——基于神经网络的方法

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

  1. 特征表示:主要是设计和搭建神经网络模型并利用其将文字符号特征表示为分布式特征信息;
  2. 模型训练:利用标注数据,优化网络参数,训练网络模型;
  3. 模型分类:利用训练的模型对新样本进行分类,进而完成实体识别。

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

  1. 特征表示:主要利用双向LSTM对文本中的字和词进行特征表示,正向LSTM只能表示 x t x_t xt左边的所有信息,逆向的LSTM可以建模右边的信息,最终采用 h t → \overrightarrow{h_t} ht h t → \overrightarrow{h_t} ht 的拼接 h t h_t ht作为 x t x_t xt的最终表示。
  2. 模型训练:可以将每个字的表示获得的 K K K维向量( K K K为标签的数量)进行拼接得到输入 P P P P P P是一个 n × n n \times n n×n维矩阵,统一作为特征输入到CRF模型中。每个句子的得分可以如下建模:
    s ( X , Y ) = ∑ i = 0 n A y i , y j + ∑ i = 1 n P i , y i s(X,Y)=\sum_{i=0}^{n} A_{y_i,y_j}+\sum_{i=1}^{n} P_{i,y_i} s(X,Y)=i=0nAyi,yj+i=1nPi,yi
    其中, A A A是一个转移矩阵, A y i , y j A_{y_i,y_j} Ayi,yj代表了标注序列上一个 y i y_i yi标签转移到下一个 y i y_i yi标签的概率。模型训练时,根据上述每个句子的得分定义目标函数,然后利用随机梯度下降等训练方法优化模型参数,进而训练整个网络的参数。为防止过拟合,可以使用Adadelta等更新规则。
  3. 模型分类:分类阶段主要是利用训练好的神经网络模型,对待分类文本进行分类。首先利用双向LSTM对输入文本进行特征表示,然后将其输入到CRF中,对句子中每个词进行分类,整体打分(分类标签为实体类型和BIO三种标签的组合),最终输出分类结果,完成实体识别。

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

4.2 细粒度实体识别

任务概述

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

  1. 细粒度实体类别的特点:
    1. 类别更多:随着时间的推移和社会的发展,经常会出现一些新类别。
    2. 类别具有层次结构。
  2. 细粒度实体识别的难点:
    1. 类别的制定:如何能构建一个覆盖类别多而且具有层次结构的类别体系是类别制定时应当考虑的首要问题。
    2. 语料的标注:传统的实体识别大多数是基于有监督学习的方法,随着实体类别的增多,标注语料的难度和成本呈指数级增长。
    3. 实体识别的方法:更多的类别对实体识别方法也带来了极大的挑战。而且,如何在无标注语料或者标注语料较少的情况下完成细粒度实体识别也是一个严峻的挑战。
  3. 细粒度实体类别的制定:最直接的办法是人工制定,除此之外最具代表的工作是利用人工构建的词典知识资源作为类别的来源。

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

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

细粒度实体识别的方法

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

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

4.3 实体扩展

任务概述

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

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

  1. 知识图谱的实体扩展;
  2. 提高问答系统性能,尤其是处理List型问题;
  3. 提高垂直领域信息抽取的效果。

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

  1. 知识图谱中同类实体的检索与推荐;
  2. 提高查询分析的准确率;
  3. 辅助文档分类;
  4. 辅助用户行为分析与广告精确投放。

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

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

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

  1. 目标实体类别开放:面向更多的开放类别,且目标类别未知。
  2. 目标数据领域开放:不限定领域的、海量、冗余、不规范、有噪声的多源异构数据。
  3. 以“抽取”替代“识别”:充分利用网络数据海量、冗余的特性,以抽取的方式构建目标累呗实体列表。

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

实体扩展方法

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

  • 种子处理模块:负责选取或生成高质量的种子。模块的输入是若干种子组成的初始种子集合,输出是高质量种子组成的集合。
  • 实体抽取模块:负责从语料中抽取术语目标类别的实体。通常该模块包含“候选排序”以及“打分排序”两个子模块。前者抽取候选实体,后者计算候选实体的置信度并对其排序。该模块的输入是种子集合,输出是排序后的候选实体列表。
  • 结果过滤模块:对抽取后的实体集合进行过滤。该模块的目标是提高候选实体列表的准确率。
  1. 基于模板的实体抽取:基本思路是:如果目标实体与种子实体同属于某个语义类,则它们的上下文应该符合特定的模板。这里的模板可以是预先定义好的指示上下位关系的语义模板,也可以是通过分析种子实体所处的上下文得到模板。后者的基本思路是:如果目标实体与种子实体同属于某个语义类别,则它们的上下文分布应该是相似的。在预定义的模板中,主要假设是:(1)好的模板在语料中出现次数频繁;(2)好的模板总是指示目标类别的实体;(3)好的模板可以在不需要其他知识的前提下在文本中被识别出来。使用预定义模板能找到的新实体数量有限,一种最具代表性的改进方法是基于Bootstrapping策略,反复迭代,得到更多的模板。在基于模板的方法中,如何衡量模板质量是一个重要的问题,可以通过考察<候选实体-模板>之间的抽取关系评估模板质量,进而更准确地度量候选实体与目标实体类别之间的语义相关度。
  2. 基于统计的实体抽取:这种方法通常使用相对粗糙的方式获取候选,之后通过分析整个语料的统计信息来得到候选的分布信息,最后计算候选实体与种子实体的分布相似度作为置信度并对候选实体进行排序。可以分为基于上下文相似度的方法和融合模板与上下文相似度的方法。
  • 基于上下文相似度的方法:由于绝大多数实体表现为名词或名词短语的形式,所以一个很自然的想法是找出语料中全部名词或名词短语,然后分别计算它们与种子实体的相似度并找出相似的实体。该方法具有两个重要特点:(1)语料规模非常重要,同等质量的语料,规模越大则抽取效果越好。(2)语料质量非常重要,同等规模的语料,质量越高则抽取效果越好。
  • 融合模板与上下文相似度的方法:在使用上下文统计信息的基础上,加入基于模板的限制,以提高准确率。这种方法在处理不同来源数据时效果更为明显。基本思想是:对不同类型的数据使用不同的抽取方法,再把不同方法得到的结果融合起来。这类方法引入了模板抽取的结果作为已知知识,并且通过Bootstrapping策略不断更新已有知识,抽取结果的准确率有很大提高。但是这类方法仍然没有克服基于统计的方法所具有的需要大量计算的缺点,而且所选特征仍然局限于上下文特征。
  1. 种子处理与结果过滤:
    1. 种子处理:不同种子对抽取结果有非常大的影响,然而,人工输入的种子质量并不高。因此,研究如何衡量种子实体的质量以及如何选取高质量的种子具有重要的实际意义。Vyas等人提出了一种衡量种子质量的方法,从以下三方面衡量种子实体的质量:
    • 典型度:考虑种子实体能在多大程度上代表目标语义类别。
    • 歧义度:考量种子实体是否有不同语义。
    • 覆盖度:考量一个种子集合含有的语义信息能在多大程度上覆盖目标语义类别的语义信息。
      这种方法首先计算以上三方面的得分,然后从初始种子中选取高质量的种子提供给实体抽取模板,但这样做的前提是初始种子个数比较多,有一定的选择余地。很多时候初始种子数量是很少的,这种情况就需要一种能够根据初始种子生成高质量新种子的方法。
    1. 结果过滤:对现有实体扩展方法而言,最终返回的结果是一个根据置信度从高到低排序后的候选实体列表,评估的效果一般采用P@N、AP(average precision)等指标。没有一种方法可以保证抽取结果的绝对正确,但实际应用中需要维护的是一个全部由正确实体组成的列表,所以需要对抽取结果进行纠错。目前这一工作主要由人工进行,需要大量的人力物力,所以,研究如何从最终结果中找出并排除错误候选实体也具有一定的实际意义
      很多实体扩展方法使用Bootstrapping策略,会使抽取结果中的错误不断传播扩大,影响系统的最终结果。如果能在每轮迭代过程中找出并排除错误候选实体就可以提升方法的最终效果。

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

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

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

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

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


五、实体消歧

5.1 任务概述

  实体具有歧义性,因此实体识别的结果很难之间存放到知识图谱中。同一实体在不同的文本中会有不同的指称,这是指称的多样性(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=n1,n2,,nl是待消歧的实体名集合。 E = e 1 , e 2 , … , e k E = e_1, e_2, \ldots, e_k E=e1,e2,,ek是待消歧实体名的目标实体列表。在实际应用中,目标实体列表通常以知识库的形式给出 D = d 1 , d 2 , … , d n D = d_1, d_2, \ldots, d_n D=d1,d2,,dn是一个包含了待消歧实体名的文档集。 O = o 1 , o 2 , … , o m O = o_1, o_2, \ldots, o_m O=o1,o2,,om D D D中所有待消歧的实体指称项集合。实体指称项表示实体消歧任务的基本单元:一个实体指称项是一个在具体上下文中出现的待消歧实体名。实体指称项的上下文可以通过多种方式自由定义 K K K是命名实体消歧任务所使用的背景知识。由于实体名本身所携带的信息不足以指称实体消歧任务,消歧系统需要大量背景知识,其中最常用的北京知识是关于目标实体的文本描述 δ : O × K → E \delta: O \times K \rightarrow E δ:O×KE是命名实体消歧函数,用于将待消歧的实体指称项映射到目标实体列表(如果 E E E是显式给定的)或者按照其指向的目标实体进行聚类(如果 E E E没有显式给定,是隐藏变量)。命名实体消歧函数是命名实体消歧任务的核心部分

任务分类

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

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

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

5.2 基于聚类的实体消歧方法

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

  1. 对于每一个实体指称项 o o o,抽取其特征(如上下文中的词、实体、概念),并将其表示成特征向量 o = w 1 , w 2 , … , w n o = w_1, w_2, \ldots, w_n o=w1,w2,,wn
  2. 计算实体指称项之间的相似度。
  3. 采用某种聚类算法对实体指称项聚类,使得聚类结果中每一个类别都对应到一个目标实体上。

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

基于表层特征的实体指称项相似度计算

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

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

基于扩展特征的实体指称项相似度计算

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

基于社会化网络的实体指称项相似度计算

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

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

5.3 基于实体链接的实体消歧方法

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

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

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

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

  1. 链接候选过滤(Blocking):实体链接需要首先根据规则或知识过滤掉大部分该指称项不可能指向的实体,仅仅保留少量链接实体候选。
  2. 实体链接(Linking):确定该实体指称项最终指向的目标实体。

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

链接候选过滤方法

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

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

实体链接方法

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

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

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

  1. 向量空间模型:实体指称项与目标实体的一致性打分主要基于实体指称项上下文与目标实体上下文中特征的共现信息来确定。实体概念和实体指称项都被表示为上下文中Term组成的向量。向量空间模型可以计算两个向量之间的相似度对实体概念和指称项之间的一致性进行打分。目前,针对向量空间模型的研究主要集中在两个方面:

    • 如何抽取有效的特征表示:传统的向量空间模型仅仅使用上下文中的词作为实体指称项的特征,通常难于准确表示实体指称项的信息。从文本中抽取概念和实体作为特征,或从知识源中获取实体指称项的额外信息作为特征成为一个研究热点。
    • 如何更为有效地计算向量之间的相似度:打分方法包括:Cosine相似度、上下文词重合度以及利用分词器等学习算法进行打分。
  2. 主体一致性模型:决定一致性打分的是实体指称项的候选实体概念与指称项上下文中的其他实体概念的一致性程度。选择一个与指称项上下文中的实体具有高度一致性打分的实体作为指称项的目标实体。需要考虑以下两个因素:

    • 上下文实体的重要程度:在实体指称项的上下文实体中,有些实体提供了很少的上下文信息,另外一些实体只在与其主体相关的文档中出现,也就提供了更多的关于文档主题的信息。传统方法使用实体与文本中其他实体的语义关联的平均值作为其重要程度的打分:
      w ( e , o ) = ∑ e i ∈ O s r ( e , e i ) ∣ O ∣ w(e, o) = \frac{\sum\limits_{e_i \in O} sr(e, e_i)}{|O|} w(e,o)=OeiOsr(e,ei)
      其中, O O O是实体指称项上下文中所有实体的集合, s r ( e , e i ) sr(e, e_i) sr(e,ei)是实体 e e e和实体 e i e_i ei之间的语义关联值,通常用于知识资源计算。
    • 如何计算一致性:大部分计算方法使用目标实体与上下文中其他实体的加权语义平均关联平均作为其一致性打分,即:
      C o h e r e n c e ( e , o ) = ∑ e i ∈ O w ( e , o ) s r ( e , e i ) ∑ e i ∈ O w ( e , o ) Coherence(e, o) = \frac{\sum\limits_{e_i \in O} w(e, o)sr(e, e_i)}{\sum\limits_{e_i \in O} w(e, o)} Coherence(e,o)=eiOw(e,o)eiOw(e,o)sr(e,ei)

    其中, o o o是实体指称项, w ( e , o ) w(e, o) w(e,o)是实体 e e e的权重,而 s r ( e , e i ) sr(e, e_i) sr(e,ei)是实体之间的语义关联度。

  3. 协同实体链接:一篇文章内的所有实体指称项的目标实体也应该是相互关联的。**协同实体链接方法的最大问题在于算法的复杂度。**如何在高性能和高准确率之间寻找一个平衡的优化算法,也是一个值得研究的问题。

  4. 基于神经网络的实体消歧方法:计算实体与实体、实体与文本、文本与文本之间的相似度是核心问题。基于神经网络的方法不需要人工设计复杂的特征,易于补货深层语义,取得了比较好的性能并具有良好的扩展性,占据了实体消歧的主导地位。

5.4 面向结构化文本的实体消歧方法

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

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

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


六、关系抽取

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

6.1 任务概述

任务定义

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

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

任务分类

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

  1. 面向结构化文本的关系抽取:这类数据具有良好的布局结构,因此抽取比较容易,可针对特定网站编写特定模板进行抽取,抽取准确率也比较高。
  2. 面向非结构化文本的关系抽取:由于自然语言表达的多样性、灵活性,实际关系在文本中一般找不到明确的标识,这使得从中抽取、识别语义关系非常困难,需要自然语言处理技术的指称。从非结构化文本中抽取关系的准确率较低。
  3. 面向半结构化文本的关系抽取:数据的分布和布局具有一定的规律,但通常这种规律的类型是多样的,也是隐含的、或者说没有显式的标识,难以用人工的方法穷举各种类型的模板,需要对模板进行自动学习。针对模板相对连续的半结构文本,现有的技术也能达到较高的抽取准确率。

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

  1. 句子级关系抽取:也称为句子级关系分类,即从一个句子中判断两个实体间是何种关系。
  2. 预料(篇章)级关系抽取:旨在判断两个实体之间是否具有某种语义关系,而不必限定两个目标实体所出现的上下文。在知识图谱构建过程中,我们需要分析图谱中两个节点(实体)之间边上的语义标签(关系),而并不用特别关注它们所出现的具体文本。

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

  1. 限定域关系抽取:指在一个或多个限定的领域内对实体间的语义关系进行抽取。由于是限定域,语义关系也是预设好的有限个类别。可以采用基于监督学习的方式来处理,即针对每个关系类别标注充足的训练数据,然后设计关系抽取模型,进行模型训练,最后利用训练好的模型抽取关系。但是面对大规模知识图谱构建时,人工标注的训练语料远远不够,所以有很多工作利用弱监督学习解决训练语料的标注问题。
  2. 开放域关系抽取:依据模型对于自然语言句子理解的结果从中开放式抽取实体关系三元组。

任务难点

  1. 同一个关系可以有多种不同的词汇表示方法。
  2. 同一个短语或词可能表达不同的关系。
  3. 同一对实体之间可能存在不止一种关系。
  4. 关系抽取不仅涉及到两个或两个以上的实体单元,还可能涉及周围的上下文,需要利用文本中的一些结构化信息,使得问题的复杂度成指数级增长。
  5. 关系有时候在文本中找不到任何明确的标识,关系隐含在文本中。
  6. 许多针对这些工作的自然语言处理工具性能并不高,低性能工具引入的错误反而会降低关系抽取系统的性能。

6.2 限定域关系抽取

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

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

基于模板的关系抽取方法

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

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

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

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

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

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

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

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

基于机器学习的关系抽取方法

有监督的关系抽取方法

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

  1. 基于特征工程的方法:特点是需要显式地将关系实例转换成分类器可以接受的特征向量,其研究重点在于怎样提炼具有区分性的特征。共有三个步骤:
    • 特征提取:提取词汇、句法和语义等特征,然后有效地集成起来,从而产生描述关系实例的各种局部和全局特征。
    • 模型训练:利用提取的特征训练分类模型。
    • 关系抽取:主要利用训练好的模型对非结构化文本进行分类,进而完成关系抽取。
      常见的关系抽取特征包括:
    • 词汇特征:这些特征包含实体本省的词语或者名词性词组块、两个实体(词组块)之间的词语和两个实体(词组块)两端的词语。
    • 实体属性特征:这些特征包含实体或者名词性词组块的类型特征。
    • 重叠特征:这些特征包含实体或名词性词组块之间词语的个数、它们之间部分包含其他实体或者词组块的个数、两个实体或词组块是否在同一个名词短语、动词短语或者介词短语之中。
    • 依存句法特征:这些特征包含两个实体(名词性词组块)的依存句法分析树中的依存标签和依存路径。
    • 句法树特征:这些特征包含连接两个实体(名词性词组块)的句法路径,不包含重复的节点,并且将路径使用头词(head words)标注。
      在提取包含两个给定实体的文本特征后,将它们传递给分类器进行关系分类即可。然而,这类特征的特征空间特别巨大,从而容易产生特征稀疏的问题
  2. 基于核函数的方法:直接以结构树为处理对象,在计算关系之间距离的时候不再使用特征向量的内积而是用核函数。核函数可以在高维的特征空间中隐式地计算对象之间的距离,不用枚举所有特征也可以计算向量的点积,表示实体关系很灵活,可以方便地利用多种不同的特征,使用支持核函数的分类器进行关系抽取。
  3. 基于神经网络的方法:上述方法的缺陷:
    • 人工设计的特征的提取均依赖于自然语言处理工具,同时特征抽取的过程也是一个串联(Pipeline)的过程,前一步自然语言处理的结果作为后一步的输入。目前已有的自然语言抽取工具的性能并不是百分百准确,这些自然语言处理工具容易造成错误累积和传递,使得抽取到的特征不精确。
    • 面对一些小语种,特别是那种资源贫瘠的语种,当没有可用的自然语言处理工具时,就不能运用上述基于特征工程的关系抽取方法。
      基于神经网络的方法主要包括如下步骤:
    • 特征表示:主要将纯文本的特征表示为分布式特征信息。
    • 神经网络的构建与高层特征学习:主要是设计搭建神经网络模型并利用其上一步得到的基本特征自动表示为高层特征。
    • 模型训练:利用标注数据,优化模型参数,迅联网络模型。
    • 模型分类:利用训练的模型对新样本进行分类,进而完成关系抽取。

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

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

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

  1. 词向量输入:需要在网络输入端,通过查询词向量(Word Embeddings)表,将句子中的每个词都使用词向量进行表示。词的向量化表示既能以连续的方式表达离散的变量,又能够保持原词的语言属性,可以使用机器学习算法在海量自然语言标注文本数据中自动学习。
  2. 词汇级别特征:直接使用词向量作为词汇级别特征,选择给定两个词及其上下文词语所对应的词向量作为词汇级别特征。主要包括5种类型,如下表所示。其中,L5表示待分类的两个词在WordNet中的一般语义分类(general semantic taxonomy)。
  3. 句子级别特征:使用卷积神经网络通过语义组合的方式自动学习句子级别的特征。在输入的词被表示为向量后,系统首先通过开窗处理得到局部特征,然后再通过卷积滤波捕获不同的特征,最后对卷积的结果进行非线性变换得到句子级别特征。为了让网络知道句子中哪两个词需要给定语义关系,可以使用位置特征对句子中需要给定语义关系的两个词进行建模。位置特征表示当前词到待分类的两个词之间的相对距离。
  4. 网络输出:将词汇级别和句子级别特征拼接起来,可以得到最终的特征向量,为了得到网络的输出,将特征向量输入Softmax分类器,模型训练时为了得到最优的模型参数,使用随机梯度下降最大化对数似然函数。
特征 备注
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)的算法缓数据噪音问题。多示例学习的最终目标是预测未知包而非示例的标签,传统的误差反向传播的目标函数定义在示例上,而多示例训练中把目标函数定义在包上。

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

6.3 开放域关系抽取

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

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

  1. 语料自动生成与分类器训练:
    • 语料自动生成:主要是通过依存句法分析结合启发式规则自动生成语料。
    • 分类器的训练:利用朴素贝叶斯分类器进行训练。
  2. 大规模关系三元组的抽取:利用上一步训练好的关系抽取器,在大规模的web文本上进行关系三元组的抽取,并将抽取的大量三元组存储起来。
  3. 关系三元组可信度计算:首先将存储起来的相似三元组进行合并,然后根据网络数据的冗余性,计算合并后关系三元组在网络文本中出现的次数,进而计算相应关系三元组的可信度。

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


七、事件抽取

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

7.1 任务概述

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

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

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

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

  1. 事件指称(event mention):是指对一个客观发生的具体事件进行的自然语言形式的描述,通常是一个句子或者句群。同一个事件可以有不同的事件指称,可能分布在文档的不同位置,或分布在不同的文档中。
  2. 事件触发词(event trigger):是指在一个事件指称中最能代表事件发生的词,是决定事件类别的重要特征。
  3. 事件元素(event argument):是指事件中的参与者,是组成事件的核心部分,它与事件触发词构成了事件的整个框架。事件元素主要由实体、时间和属性值组成,这些短语可以作为表达完整语义的细粒度单位,因此可以较为恰当地表示事件参与者。但是,并不是所有的实体、时间和属性值都是事件元素,要视具体上下文语义环境而定。
  4. 元素角色(argument role):是指事件元素与事件之间的语义关系,也就是事件元素在相应的事件中扮演什么角色。某类事件的所有角色共同构成这类事件的框架。
  5. 事件类别(event type):事件元素和触发词决定了事件的类别。

7.2 限定域事件抽取

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

基于模式匹配的事件抽取方法

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

有监督的事件模式匹配

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

  1. 语料的人工标注:需要人工预先标注大量的语料。
  2. 模式的学习:通过各种学习模型学习得到相应的抽取模式。
  3. 模式的匹配:利用学习得到的模式与待抽取文档进行匹配,进而完成事件的抽取。
弱监督的事件模式匹配

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

  1. 语料的人工预分类或者种子模式的制定。
  2. 模式的学习,主要是利用机器根据预分类语料或者种子模式自动地学习模式。

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

基于机器学习的事件抽取方法

有监督事件抽取方法

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

  1. 基于特征工程的方法:特点是需要显式地将事件实例转换成分类器可以接受的特征向量,其研究重点在于怎样提取具有区分性的特征。共三个步骤:
    1. 特征提取:提取词汇、句法和语义等特征,然后有效地集成起来,从而产生描述事件实例的各种局部和全局特征。
    2. 模型训练:利用提取的特征训练分类模型。
    3. 事件抽取:主要是利用训练好的模型对非结构化文本进行分类,进而完成事件抽取。
  2. 基于神经网络的方法:基于特征工程的方法在特征提取过程中过分依赖词性标注器、句法分析器等传统的自然语言处理工具,会造成误差累积的问题,而且有很多语言没有自然语言处理工具。基于神经网路的方法主要包括如下几个步骤:
    1. 特征表示:主要是将纯文本表示为分布式特征信息,如将词表示为词向量。
    2. 神经网络的构建与高层特征学习:主要是设计搭建神经网络模型并基于基本特征自动捕获高层特征。
    3. 模型训练:利用标注数据,优化网络参数,训练网络模型。
    4. 模型分类:利用训练的模型对新样本进行分类,进而完成事件抽取。
      以Chen等2015年提出的动态多池化卷积神经模型为例:
      1. 特征表示:该方法采用无监督预训练方式获得的词向量作为基本特征,并且把候选词的词向量和候选词上下文的词向量拼接起来作为事件元素抽取阶段的词汇级表示。
      2. 神经网络的构建与高层特诊学习:该方法利用动态多池化卷积神经网络来完成高级特征(句子级特征)的表示。为了更好地理解一句话有多个事件的情况,提出动态多池化技术,根据触发词和候选元素动态地捕获一个句子中的事件信息。
      3. 模型训练:利用随机梯度下降等训练算法优化模型参数,进而训练整个网络的参数。为防止过拟合的情况,可以使用Adadelta等更新规则。
      4. 模型分类:利用训练好的神经网络模型,直接对非结构文本进行抽取,首先自动完成特征的表示和抽取,然后利用训练好的网络模型进行分类。
弱监督事件抽取方法

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

  1. 基于Bootstrapping的事件抽取:利用部分人工标注的数据自动生成大规模标注数据,进而完成事件抽取。核心思想是:首先利用小部分标注好的数据训练抽取模型,然后利用训练好的模型对未标注数据进行分类,从中选取高置信度的结果加入到训练数据中,再次训练分类器,上述过程反复迭代进而完成标注数据的自动扩充和事件的自动抽取。基于弱监督的事件抽取方法还处于起步阶段,迫切需要能自动生成大规模的、高质量的标注数据的方法来提升事件抽取的性能。
  2. 基于Distant Supervision的事件抽取:利用结构化的事件知识库直接在非结构化文本中回标训练样本,进而完成事件抽取。核心思想是:首先提出回标的假设规则(即Distant Supervision),然后利用结构化事件知识去非结构化文本中进行回标,将回标的文本当做标注样本,然后利用标注的样本训练模型,进而完成事件的抽取。

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

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

7.3 开放域事件抽取

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

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

基于内容特征的事件抽取方法

  一般包含如下步骤:

  1. 文本表示:对表示事件的句子、段落或者文档进行预处理,并表示为统一的特征形式,为后面的模块做准备。
  2. 事件聚类与新事件发现:基于文本表示,利用无监督方法将同类事件表示聚类,并且发现新事件。

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

基于异常检测的事件抽取方法

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

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

7.4 事件关系抽取

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

事件共指关系抽取

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

事件因果关系抽取

  事件因果关系反映了事件间前后相继、由因及果的一种关系。因果关系的抽取对文本的深层语义理解有着重要意义,有助于掌握事件演变的过程,从而为决策者提供重要的决策信息。

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

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

子事件关系抽取

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

事件时序关系抽取

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

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


八、知识存储和检索

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

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

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

8.1 知识图谱的存储

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

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

基于表结构的存储

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

三元组表

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

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

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

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

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

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

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

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

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

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

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

基于图结构的存储

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

基于图结构的存储模型

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

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

常用图数据库介绍

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

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

8.2 知识图谱的检索

常见形式化查询语言

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

SQL语言

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

  1. 数据插入:指向数据表中添加新的数据记录,SQL通过INSERT语句完成该功能。基本语法为:
INSERT INTO 表名 VALUES (值1, 值2, ...)[, (值1, 值2, ...), ...]

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

INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)[, (值1, 值2, ...), ...]
  1. 数据修改:通过UPDATE语句完成该功能。语法为:
UPDATE 表名 SET 列1=值1, 列2=值2, ... WHERE 条件

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

DELETE FROM 表名 WHERE 条件

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

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

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

SELECT * FROM 表名 WHERE 条件
SPARQL语言

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

  1. 数据插入:指将新的三元组插入到已有的RDF图中,基本语法为:
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=Gi的条件下,在 D D D中找出所有与 Q Q Q同构的子图。

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

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

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

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

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

子图筛选

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

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

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

  设矩阵 M A M_A MA M B M_B MB分别是图 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)MA(i,j)=1MF(i,j)=1

  其中, M F = F ( F ⋅ M B ) T M_F=F(F\cdot M_B)^T MF=F(FMB)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都是一个候选的映射矩阵;最后在得到的候选矩阵集中筛选满足上述条件的矩阵作为最终的映射矩阵。

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


九、知识推理

9.1 知识图谱中的典型推理任务

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

知识补全

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

  1. 三元组分类:是判断给定三元组 r ( e 1 , e 2 ) r(e_1, e_2) r(e1,e2)正确与否(与事实是否相符),是一个二分类问题。过程如下:在补全知识图谱缺失关系时,可以选一条边(“边”表示“关系”)连接任意两个实体,构成新的三元组,再判断该三元组是否正确。如果正确,则说明新增加的关系是合理的,意味着发现了一个缺失的关系,可以将其添加到知识图谱中;否则丢弃该边。
  2. 链接预测:指的是预测一个三元组的头实体或者尾实体。对一个正确的三元组,移除它的头实体或者尾实体,检验模型能否预测出正确的头实体或者尾实体。过程如下:在知识图谱中选择一个实体和一个关系,该实体可以作为头实体也可以作为尾实体。当作为头实体时,对尾实体作为预测;当作为尾实体时,对头实体进行预测。如果模型能够准确预测头或者尾实体,则说明可以在选择的实体和预测的实体之间添加关系,否则丢弃该关系。

知识问答

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

  1. 简单推理问题:如何将问题转化成知识图谱上的一个查询三元组 r ( h , ? ) r(h, ?) r(h,?)或查询三元组序列 r 1 ( h , m 1 ) , r 2 ( m 1 , m 2 ) , … , r n ( m n − 1 , ? ) r_1(h, m_1), r_2(m_1, m_2), \ldots, r_n(m_{n-1}, ?) r1(h,m1),r2(m1,m2),,rn(mn1,?),并且存在知识图谱中缺失其中某个或者某几个三元组的情况,需要使用推理方法将缺失的知识预测出来。
  2. 复杂推理问题:如果问题不能转化成一个知识图谱上的链接查询 r ( h , t ) r(h, t) r(h,t),而是表示成由多个链接组成的非链式或者有嵌套的复杂结构时,我们所查询的不再是一个原子的三元组事实,并且在知识图谱中缺乏这种结构的显式定义,这时需要使用推理的方法将结构预测出来。这种情况可能是由于缺失知识图谱中某种关系的明确定义,还可能是由于问题的答案本身就是个复杂的结构。

9.2 知识推理分类

归纳推理和演绎推理

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

归纳推理

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

  1. 对部分资料进行观察、分析和归纳整理;
  2. 得出规律性的结论,即猜想;
  3. 检验猜想。
演绎推理

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

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

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

确定性推理与不确定性推理

确定性逻辑推理

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

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

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

  1. 现有的自然语言理解技术还很难准确地将自然语言表达成确定性的逻辑推理需求;
  2. 知识问答等自然语言处理任务中的各种“规则”很难由专家人工给出,而基于统计方法挖掘出来的规则带有一定的不确定性和概率性;
  3. 现实世界本身的不确定性,也从本质上决定了一些问题是无法使用确定性推理技术进行回答的。
不确定性推理

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

  1. 概率图模型:概率推理和概率图模型有着密切的关系,而概率图模型则可根据图结构的不同,分为基于有向图的贝叶斯网络(Bayesian Network)以及基于无向图的马尔可夫网络(Markov Network)。其中,贝叶斯网络被广泛应用于专家系统中,最主要的推理目标是条件下的概率查询 P ( Y ∣ E = e ) P(Y|E=e) P(YE=e),其中 Y Y Y的值 y y y上的后验概率分布取决于获得的证据 E = e E=e E=e,并通过最大后验概率(MAP)的方式进行求解。但这种基于概率图模型的无约束推理一般都是NP-hard问题,因此在最坏情况下需要指数级的推理时间,更严重的是对于这种推理的近似求解依然是一个NP-hard问题。目前在这方面的主要工作有:
    1. 基于和积变量消除的方法:通过对一个变量求和,并与其他相关因子相乘以消除这一变量,从而令复杂的概率图结构尽量地简单化;
    2. 基于概率图结构的置信传播或期望传播的方法:将原有的推理问题转化为图上的优化问题,并以优化的方式对设计好的能量函数或势函数求概率最大以达到近似推理的目的;
    3. 从所有或部分变量的实例出发,通过对这些原子实例进行统计或采样以估计推理目标概率。

  单纯的概率图模型只是针对具有直接概率依赖的实例级元素,并没有对更高层次的语义框架进行抽象,缺失了真实世界中存在的规律和规则,导致这一类模型需要大量重复的概率评估,会因为海量知识之间存在的复杂的概率依赖关系而需要大量的计算。因此,单纯的概率图模型并不能很好地处理大规模知识推理任务
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} Pw(X=x)=Z1expfiFwigGfig(x)=Z1expfiFwini(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} Gfi是利用所有原子事实去实例化规则 f i f_i fi后的集合。 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=xXexp[fiFwini(x)]是集合了所有可能世界的归一化参数。马尔可夫逻辑网等概率推理模型的研究围绕结构学习、参数学习和推理三个重要任务展开。

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

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

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

  1. 关系规则挖掘:将逻辑规则作为具有结构的特征,利用数理统计的方式评估特征的支持度、置信度或其他预定义的统计量,再将统计数据作为特征值加入到最终的统计模型中进行推理。由于这一类方法完全是数据驱动的,运行速度快、易于实现、可并行化是它们的先天优势,因此可以应用到大规模知识图谱中。但这一类方法不区分任何关系类型而全部简化成共现处理,也没有建立在某一逻辑框架下,对现实世界中的推理任务而言,这种技术过于粗糙,其效果也受到很大程度的限制。

符号推理和数值推理

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

9.3 基于符号演算的推理

归纳推理:学习推理规则

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

频繁子图挖掘

  假设一般逻辑规则的形式为 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}) r1(x1,x2)r2(x2,x3)rn(xn,xn+1)rn+1(x1,xn+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(XY)c(XY)=Nσ(XY)=σ(X)σ(XY)

  其中, X X X可以看成是逻辑规则的身体部分,而 Y Y Y则是逻辑规则的头部,也就是要推理的假设 r n + 1 ( x 1 , x n + 1 ) r_{n+1}(x_1, x_{n+1}) rn+1(x1,xn+1) σ \sigma σ为计数函数, σ ( X ∪ Y ) \sigma(X \cup Y) σ(XY)代表 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(XY)=σ(XY)

  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} BE+BhE+BhfalseBhEfalse

  其中,必要性是指在没有引入假设 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 λ表达式由变量名,抽象符号 λ \lambda λ,“.”,“(”和“)”组成,并且具有以下语法:

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

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

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

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

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

  1. α − \alpha- α置换( α − c o n v e r s i o n \alpha-conversion αconversion):在 λ \lambda λ表达式中,变量的名称是不重要的,所有具有约束的变量都是可以进行置换的。
  2. β − \beta- β规约( β − c o n v e r s i o n \beta-conversion βconversion): β − \beta- β规约类似于哈数中变量代入的概念,是将实参代入到前面的 λ \lambda λ项中,替换掉里面的变量。
  3. η − \eta- η变换( η − c o n v e r s i o n \eta-conversion ηconversion): η − \eta- η变换表达了“外延性”(extensionality)概念,“当且仅当”对于所有的参数它们都给出同样的结果,那么这两个函数是相等的。
不确定性推理:马尔可夫逻辑网和概率软逻辑

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

  为了表示元组之间的关系,马尔可夫逻辑网为共享一个实体的两个三元组连上一条无向边,并且假设在网络中,不存在超边。在多于两个元组共享一个实体时,应该为每两个元组都连接一条边,并利用团(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(l1l2)I(l1l2)I(¬l1)=max0,I(l1)+I(l2)1.0=minI(l1)+I(l2),1.0=1.0I(l1)

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

  给定一阶谓词实例和公式,PSL计算所有可能的谓词取值 I I I的概率分布。用 R R R表示实例化的谓词公式集合,那么其概率密度函数 p ( I ) p(I) p(I)

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=Z1exp{rRλr[d(r)]p}=Iexp{rRλr[d(r)]p}

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

9.4 基于数值计算的推理

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

  1. 减少了维度灾难问题:一些统计模型往往需要捕获多个原子特征之间的联合分布,会令特征空间呈指数型增长,而特征经过分布式空间映射后,对特征之间的复杂关系进行了解耦;
  2. 减少了数据稀疏性问题:在知识图谱、社交网络和推荐系统等稀疏图或稀疏矩阵数据中,稀疏性问题十分严重,而表示学习通过数值计算填充了稀疏矩阵,在一定程度上解决了数据稀疏性问题;
  3. 使符号数据可直接参与运算且计算速度非常快:建立在分布式空间上的相似度函数或其他计算函数可以直接运用符号元素之间的分布式表示,而不必借用其计数、分布等统计量。

基于张量分解的方法

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

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

基于能量函数的方法

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

9.5 符号演算和数值计算的融合推理

  优势:

  1. 基于数值计算的推理速度非常快而且与知识图谱的规模无关(知识图谱的规模只影响其学习效率);
  2. 可以缓解由于数据稀疏带来的“冷启动”问题,表示学习方法通过反复的迭代可以令这些长尾实体获得一些隐式的语义,在一定程度上缓解数据稀疏的问题。

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

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

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

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

9.6 常识知识推理

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

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

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


十、知识问答与对话

  作为一种描述自然知识与社会知识的重要载体,知识图谱最直接和最重要的任务是满足用户的精确信息需求,提供个性化知识服务。目前的问答和回答系统大多只能回答事实型问题,不能很好地处理复杂问题。

10.1 自动问答概述

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

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

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

  1. 单文本问答系统:也称为阅读理解式问答系统。
  2. 固定语料非结构化文本问答系统:系统从预先给定的语料库中检索和抽取答案。
  3. 网络问答系统:从互联网中查找问题的答案,但是因为互联网数据动态变化,所以难以评测。
  4. 知识库问答系统:也称为知识问答和基于知识图谱的问答系统,它是从预先建立好的结构化知识库中查找问题的答案。

  问答和对话任务中的结构化知识常常被称为知识库(而不是知识图谱)。

10.2 知识问答

知识问答技术概述

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

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

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

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

  1. 语义解析类型(基于语义解析的的方法):把自然语言问句自动转化为结构化查询语句,就可以直接通过检索知识图谱得到精确答案。
  2. 搜索排序类型(基于搜索排序的方法):首先通过搜索与相关实体有路径联系的实体作为候选答案,然后利用从问句和候选答案提取出来的特征进行对比,进而对候选答案进行排序得到最优答案。

基于语义解析的方法

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

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

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

有监督方法

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

  生成问句对应的逻辑表达式形式的主要方法是根据语义组合原则构造完整的语义表示结构。语义组合原则是:一条复杂语句的含义由其子句的含义和它们的语义组合原则确定。

  1. 语义组合模型:组合范畴语法(Combinatory Categorial Grammars,CCG)是一种有效的、表达能力强的语义组合语法形式,它能处理长距离依赖等多种自然语言现象。CCG的主要思想是把词的句法和语义信息组合在一起形成分析的基础辞典,依据组合语法规则自底向上对自然语言句子进行解析。CCG的核心是辞典 Λ \Lambda Λ,它包括了语义组合过程中所需的全部语法和语义信息。辞典中的每个项由词/短语、句法类型/范畴和逻辑表达式组成。辞典项的类型和语义表达式定义了该项如何与周围项进行组合以及组合之后得到的结果是什么。CCG中还包括了一组组合规则,规定了相邻辞典项如何组合(包括句法类型的组合和逻辑表达式的组合),该过程可以循环迭代地进行。
      语义解析的分析过程依次使用这些组合规则,得到句法树,生成相应的逻辑表达式。通过自底向上的解析过程,根据句子的句法结构组合成最终的逻辑表达形式。
      在DCS(Dependency-Based Compositional Semantics)中,逻辑形式以树结构表示,被称为DCS树,这种树结构与句子的句法结构平行。因此,DCS树更容易解析和学习。DCS树中的每个节点都表示了一个限制性满足问题(CSP),它通过有效的方式获取各种节点的目标值(根节点的目标值即为该逻辑形式的结果)。

  2. 语义词典构造:辞典构建过程中是允许出现错误辞典的,这种错误辞典可以通过后期剪枝等操作进行过滤。
      为了从训练集中的<句子,逻辑表达式>对获得<短语,子逻辑表达式>的匹配关系,可以通过模板和规则从整个问句的逻辑表达式中提取子逻辑表达式,然后与问句中提取的短语进行匹配形成候选辞典项。每个规则包含一个能识别逻辑表达式子结构的触发词。对于每个能匹配触发词的逻辑表达式子结构,CCG都需要为其创建一个对应的范畴。通过使用这些辞典项对训练集中的句子进行解析,可能产生一个或多个高得分的分析结果。从这些分析结果中抽取出产生高得分的辞典项加入原始辞典,一直重复该过程直到无法添加新辞典为止。
      大规模知识库的问句解析中的一个重要任务就是扩展限定领域中的辞典。近年来的工作主要思想是通过文本与知识库间的对齐关系,学习到文本与知识库中不同符号的关联程度。

  3. 组合消歧模型:PCCG定义概率模型,计算句子 S S S最有可能转换成的逻辑表达式 L L L
    a r g m a x L P ( L ∣ S ; θ ) = a r g m a x L ∑ T P ( L , T ∣ S , θ ) arg \mathop{max}\limits_L P(L|S; \theta) = arg \mathop{max}\limits_L \sum_T P(L, T|S, \theta) argLmaxP(LS;θ)=argLmaxTP(L,TS,θ)
      其中,一个逻辑表达式 L L L可能由多个解析树 T T T产生,生成逻辑表达式 L L L的概率由累加所有可以生成该结果的分析树产生, θ ∈ R d \theta \in R^d θRd是概率模型的参数,其参数值(权重)需要通过学习得到。

  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,TS,θ)=(L,T)ef(L,T,S)θef(L,T,S)θ

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

无监督方法

  典型的转换过程包括:

  1. 问句分析:该步骤把自然语言问句转化为查询语义三元组的形式(query triplets);
  2. 资源映射:对Query Triplet中的每个短语,确定其在知识库中的对应资源;
  3. 形式化查询语句的生成:对不同类型的问题依据不同的模板生成SPARQL语句。

基于搜素排序的方法

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

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

基于特征工程的方法

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

  1. 问句特征抽取:首先对问句进行句法分析,得到其依存句法树,进一步提取抽象特征,主要包括:(1)问题词(question word,qword);(2)问句焦点词(question focus word,qfocus):这个词暗示了答案的类型;(3)主题词(question topic word,qtopic):这个词能够帮助我们找到知识图谱中相关的知识点,需要注意的是,一个问题中可能存在多个主题词(可以随机选取一个作为主题实体);(4)中心动词(question verb,qverb):有时候,动词能够给我们提供很多和答案相关的信息。
  2. 候选答案特征抽取:对于知识图谱中的每一个节点,我们都可以抽取出以下特征:该节点的所有关系(relation,记作rel),该节点的所有属性(property,记作prop),以及它们对应的值。对于知识问答,另一类特征非常重要,就是该节点与主题实体节点的关系/路径。
  3. 问句-候选答案匹配:我们可以把问句中的特征和候选答案中的特征进行组合,希望一个关联度较高的问题-候选答案特征具有较高的权重。该权重的学习可以利用机器学习模型。当学习数据充分的时候,基于机器学习模型可以学习这种对齐关系。实际上,比较好的线下资源(如短语与关系的对齐数据)能够辅助问题-候选答案的匹配判断。
基于表示学习的神经网络方法

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

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

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

常用评测数据及各方法性能比较

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

10.3 知识对话

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

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

  对话系统有几个特征:

  1. 多角色切换:对话中通常有两个甚至多个角色,并且在对话过程中,各角色之间常常交替变化;
  2. 连贯性:对话的前后内容是有关联、有逻辑的;
  3. 多模态:真正的(人与人)对话中,常常涉及语音、文字、图片等多种模态的数据,这些数据都可以成为对话中传递信息的方式。

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

知识对话技术概述

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

  1. 语音识别:该模块主要负责接收用户的输入信息,把输入的语音数据转化为计算机方便表示和处理的文字形式;
  2. 对话理解:该模块主要负责对用户的输入信息进行分析处理,获得对话的意图;
  3. 对话管理:该模块根据对话的意图做出合适的相应,控制整个对话过程,使用户与对话系统顺利交互,解决用户问题,它是对话系统的核心步骤
  4. 任务管理:该模块根据具体任务管理对话过程所涉及的实例型知识数据和领域知识(可能难以形式化描述)。
  5. 对话生成:该模块主要负责将对话管理系统的决策信息转换为文本结构的自然语言。
  6. 语音合成:该模块主要负责将文本结构的信息转换为语音数据发送给用户。

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

任务导向型对话模型

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

自然语言理解

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

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

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

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

  这种方法的好处是非常灵活,也容易实现,人们可以根据任务定义各种各样的模板。缺点是复杂场景下需要很多模板,而这些模板几乎无法穷举。因此,基于模板的自然语言理解只适合相对简单的场景。

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

对话管理

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

  • 基于有限状态自动机的方法:这是一种简单的对话管理架构,它把任务完成过程中系统向用户询问的各个问题表示为状态,而整个对话可以表示为状态的转移。状态转移图可以用有限状态自动机进行描述,状态图中的节点表示系统询问用户各个“槽”值的提示语句,节点间的边表示用户状态的改变,节点间的转移控制着对话的进行。对话过程中,用户的输入对应着特定“槽”的信息,系统根据用户输入的信息从当前状态转移到下一个状态,当任务完成时,即完成了一次对话的交互。
  • 基于框架的方法:就是确定这些所需全部“槽”值的过程,并在对话过程中不断填充和修改对话状态(如用向量表示框架各个“槽”的填充情况)。对话管理系统根据各个“槽”的填充情况控制对话的过程。由于可以一次获取框架中的多个“槽”值,因此,不需要重新询问用户已经提供过的信息。另外,填写各个“槽”值的时候也不需要按照固定顺序进行。这类系统更灵活,它能够适应更多的对话类型。由于它不需要预先确定所有对话流程,因此可以根据当前用户的意图和对话的上下文信息来决定下一步对话操作。
  • 基于概率模型的方法:前两种方法需要人工定义规则,非常耗费人力和时间,而且人工定义的规则集合难以保证列出所有规则,覆盖率不够。对话过程是一个连续决策任务,一个好的决策应该是选择各种动作,这些动作集合的目标是最大化完成最终任务的回报(reward)和最小化损失(cost)。因此,可以利用马尔可夫决策过程(Markov Decision Process,MDP)进行建模。MDP是一种可以应用在对话管理系统上的概率模型,通过分析对话数据学习到决策规则,在一定程度上克服了人工定义规则规则覆盖率不足的问题。使用该模型对对话系统建模,能够利用强化学习(Reinforcement Learning)技术基于特定回报/损失求解最优对话策略,学习对话管理模型。
自然语言生成

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

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

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

  1. 普通用户更乐于接受能自成一体的答案形式,而不是局部的信息片段。
  2. 自然答案能够对回答问句的过程提供某种形式的解释,可以无形中增加用户对系统的接受程度。
  3. 自然答案能够提供与答案相关联的背景信息。
  4. 完整的自然语言句子可以更好地支撑答案验证、语言合成等后续任务。

通用对话模型

  以通过图灵测试为目标。

基于模板的方法

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

端到端的方法

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

评价方法

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

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

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

你可能感兴趣的:(知识图谱,知识图谱,人工智能,自然语言处理)