知识图谱综合

目录

  • 前言
  • 1 介绍
    • 1.1 基本概念
    • 1.2 应用场景
    • 1.3 公共领域
    • 1.4 生命周期
  • 2 知识表示
    • 2.1 经典知识表示体系
    • 2.2 资源描述框架(RDF)
    • 2.3 知识表示学习
  • 3 知识体系
    • 3.1 人工构建知识体系
    • 3.2 自动构建知识体系
  • 4 实体识别
    • 4.1 基于机器学习
    • 4.2 细粒度实体识别
    • 4.3 距离监督
  • 5 实体消歧
    • 5.1 实体聚类
    • 5.2 实体链接
  • 6 关系抽取
    • 6.1 限定域关系抽取
    • 6.2 开放域关系抽取
  • 7 知识融合
    • 7.1 框架匹配
    • 7.2 实体对齐
    • 7.3 冲突检测与消解
  • 8 知识存储
    • 8.1 存储形式
    • 8.2 图数据库
  • 9 知识推理
  • 10 知识问答与对话

前言

本文为读书笔记,整理自高等教育出版社出版,赵军主编的人工智能丛书《知识图谱》及部分公开网络资料。如有侵权,请立马告之。

1 介绍

1.1 基本概念

目前主流的知识图谱采用 资源描述框架 (RDF) 进行知识表示,以 RDF 三元组的形式存储现实世界中的实体以及实体之间的关系,表示为 G = ( E , R , S ) \mathcal{G}=(\mathcal{E},\mathcal{R},\mathcal{S}) G=(E,R,S),承载了实体集、关系集和三元组集 (头实体、尾实体和关系)。例如,Freebase 中,三元组 “/people/person/nationality (Jorge Amado, Brazil)”,表示 “Jorge Amado” 的国籍为 “Brazil”;其中,“Jorge Amado” 为头实体,“Brazil” 为尾实体,“/people/person/nationality” 为关系。实际应用中,尾实体除独立的实体外,也可以为头实体的属性,例如数字、日期、字符串等。

1.2 应用场景

知识图谱由谷歌于 2012 年在论文中首次提出,初衷是优化搜索结果和广告推荐。如今,除 推荐系统智能问答 外,也广泛应用于 挖掘实体的潜在联系。例如在自然语言推理任务中,我们希望知识图谱能帮助完成诸如 “A 的出生地在某地,同时他来自于中国;那么仅仅通过 B 的出生地也在某地,我们可以推断出 B 来自中国” 等一系列任务。

1.3 公共领域

目前已知且公开的大规模知识图谱包括 Freebase、Wikidata、DBpedia、YAGO、NELL 以及 Knowledge Vault 等,加之传统的知识库,有以下所示:

  • Cyc:通用的常识知识库,目的是将上百万条知识编码为机器可处理的形式,并在此基础上实现知识推理等智能信息处理任务;目前包含 50 万实体,3 万个关系以及 500 万事实;
  • WordNet:普林斯顿大学公布的英文电子词典和本体,采用人工标注的方法,将英文单词按照单词的词义组成一个大的概念网络;词语被聚类成同义词集 (Synset),每个同义词集表示一个基本的词汇语义概念,词集之间的语法关系包括同义关系、反义关系、上位关系、下位关系、整体关系、部分关系、蕴含关系、因果关系、近似关系等;包含 155,287 个单词,117,659 个同义词集;
  • Hownet:即知网,由董振东教授主持开发的一个语言认知知识库/常识知识库,以概念为中心,基于义原描述了概念与概念之间以及概念所具有的属性之间的关系,每一个概念可以由多种语言的词汇进行描述 (主要是中文和英语);包含 800 多个义原,11,000 个词语;
  • ConceptNet:开放的、多语言的知识图谱,最早起源于 MIT Media Lab 的一个众包项目 Open Mind Common Sense,致力于帮助计算机理解人们日常使用的单词的意义;
  • YAGO:由德国马克斯·普朗克研究院主持研究的大型语义知识库;基于 WordNet 的知识体系,将 Wikipedia 中的类别与 WordNet 中的同义词集进行关联,同时将 Wikipedia 中的条目挂载到 WordNet 的体系下,既自动扩充了知识库,又对海量的知识进行了组织和整理;拥有一百万个实体以及超过五百万条关系事实数据;
  • BabelNet:多语言词汇级的语义网络和本体;主要特点是将 Wikipedia 链接到最常用的英语类义词典 WordNet 上,这一点类似于 YAGO,但 BabelNet 加入了多语言支持;覆盖了 284 种语言,包括全部的欧洲语言、大多数亚洲语言等;
  • DBpedia:从 Wikipedia 中的结构化数据 (Infobox) 中抽取知识;实体包含人物、地点、作品、机构、物种和疾病;支持 127 种语言,描述了 1,731 万个实体,总共包含 95 亿事实三元组;
  • Freebase:基于 Wikipedia、使用群体智能方法建立的包含 5,813 万实体、32 亿个实体关系三元组的结构化知识资源,是公开可获取的规模最大的知识图谱之一;是第一个尝试利用协同智慧构建完全结构化知识图谱的系统,不过可惜的是,目前已停止更新;
  • KnowItAllTextRunnerReVerb:自动从网络数据中抽取信息进而构建知识库,是实现语义搜索的重要支撑技术;区别于传统的文本信息抽取系统,这里要抽取的关系不再是预定义的,抽取的范围是开放域文本;
  • NELL:卡内基梅隆大学基于 “Read the Web” 项目开发的一套永不停歇的语言系统 (Never-Ending Language Learning);本身是一套语言学习系统,每天不间断地执行两项任务:阅读和学习;阅读是从 Web 文本中获取知识,并添加到内部知识库,学习任务是使用机器学习算法获取新知识,巩固和扩展对知识的理解;
  • Kowledge Vault:Google 于 2014 年创建的一个大规模知识图谱;相较于 Google 之前基于 Freebase 的知识图谱版本,Knowledge Vault 不再采用众包的方式进行图谱构建,而是试图通过算法自动搜集网上信息,通过机器学习方法对已有的结构化数据 (例如 YAGO、Freebase、网页中的表格数据等) 进行集成和融合,将其变为可用知识;目前,Knowledge Vault 已经收集了 16 亿个事实,其中 2.71 亿具有高度置信度,准确率在 90% 左右。

除了以上通用领域知识图谱以外,存在众多特定领域的垂直领域知识图谱,包括影视领域的 IMDB、音乐领域的 MusicBrainZ、医疗卫生领域的 SIDER 等。

针对知识图谱构建过程中的不同困难,学术界著有一定量的论文提供解决方案,近年来在发表数量上也呈现加速上升的趋势。由知乎用户育心总结的,2005 年至 2019 年 80 篇知识图谱领域经典论文集,呈现如下分布:
知识图谱综合_第1张图片

1.4 生命周期

知识图谱的生命周期,第一个阶段为 知识获取;从非结构化文本中获取知识主要包含以下基本任务:

  • 实体识别 (entity recognition):命名实体 (named entity) 通常包含三大类 (实体类、时间类和数字类)、七小类 (人名、地名、机构名、时间、日期、货币和百分比);在知识图谱领域,实体识别不仅仅局限于命名实体,也包括其他类别的实体,特别是领域实体,例如股票名、汽车品牌、餐馆名等;与实体识别相关的任务是 实体抽取 (entity extraction),其区别在于实体抽取的目标是在给定语料的情况下,构建一个实体列表,并不需要在每个句子中确定实体的边界,例如,构建一个歌曲名列表;
  • 实体消歧 (entity disambiguation):目的在于消除实体的歧义,解决一词多义的问题,例如将打网球的李娜与歌手李娜、跳水运动员李娜等区分开来;从技术路线上划分,实体消歧任务可以分为 实体链接 (entity linking) 和 实体聚类 (entity clustering) 两种类型;实体链接是将给定文本中的某一个实体指称项链接到已有知识图谱中的某个实体上,因为在知识图谱中,每个实体具有唯一的编号,链接的结果就是消除了文本指称项的歧义;实体聚类的假设是已有知识图谱中并没有已经确定的实体,在给定一个语料库的前提下,通过聚类的方法消除语料中所有同一实体指称项的歧义,具有相同所指的实体指称项应该被聚为同一类别;
  • 关系抽取 (relation extraction):关系抽取的目标在于获取两个实体之间的语义关系;语义关系可以是 一元关系 (unary relation) (例如实体的类型),也可以是 二元关系 (binary relation) (例如实体的属性),或是更高阶的关系;根据抽取对象的不同,已有关系抽取任务可分为:关系分类、属性抽取、关系实例抽取;关系分类用于判别两个实体间的关系;属性抽取在于给定一个实体及一个预定义关系,抽取另一个实体;关系实例抽取则同时包含判断实体间关系及把满足该关系的实体抽取出来;
  • 事件抽取 (event extraction):事件抽取任务的目标是从描述事件信息的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来;与关系抽取的不同在于,一个事件通常包含多个关系三元组,涉及更多的实体和关系,因而更为困难;但事件抽取才更符合人们的正常认知规律,因此突破三元组的认知限制,以事件为主体构建知识图谱不可或缺。

第二个阶段,知识融合 (knowledge fusion) 则是对不同来源、不同语言或不同结构的知识进行融合,从而对现有知识图谱进行补充、更新和去重。

第三个阶段,知识存储 (knowledge storage) 方面, 涉及到数据库索引的效率,六重索引取代三元组称为更受欢迎的 RDF 格式存储方式;此外,另一种流行的存储基于图数据库的形式,例如开源图数据库 Neo4j,优点是具有完善的图查询语言,支持大多数的图挖掘算法,缺点是数据更新慢,大节点的处理开销大;目前来看,图数据库的方法比 RDF 数据库更为广泛;关于子图筛选、子图同构判定等技术是目前图数据库的研究热点。

第四个阶段,知识推理 (knowledge reasoning) 指导我们如何在数据稀疏的情况下,完成隐含知识的挖掘;目前主流的方法分为两种:1) 基于传统逻辑规则进行推理,其研究热点在于如何自动学习推理规则,以及如何解决推理过程中的规则冲突问题,2) 基于表示学习的推理,即采用学习的方式,将传统推理过程转化为基于分布式表示的语义向量相似度计算任务,这类方法优点是容错率高、可学习,缺点也显而易见,即不可解释,缺乏语义约束。 除了对已有的知识图谱进行补全外,知识推理也可直接应用于相关任务,例如自动问答系统。

第五个阶段,知识应用 (knowledge application) 在四个方向上使得知识图谱得以发挥重要价值,分别为 智能搜索自动问答推荐决策支持;智能搜索和自动问答应用图信息检索及知识推理,将适配的结果返回给用户,如谷歌搜索的即时结果;推荐方面,利用知识图谱中实体 (商品) 的关系向用户推荐相关产品,如百度搜索右侧的相关推荐;决策支持上,通过将知识图谱可视化提供给决策者,便于其进行知识管理与决策思考,如天眼查的股权结构图。

2 知识表示

知识应用的难点在于知识推理,而知识推理的难点在于 知识表示 (knowledge representation)。

2.1 经典知识表示体系

经典的知识表示方法包括逻辑 (Logic)、语义网络 (Semantic Network)、框架 (Framework)、脚本 (Script) 以及 语义网 (Semantic Web):

简介 示例 优点 缺点
逻辑 包含命题逻辑、一阶逻辑以及高阶逻辑;命题逻辑通过与( ∧ \land )、或( ∨ \lor )、非( ¬ \lnot ¬)、蕴含( ⇒ \Rightarrow )、当且仅当( ⇔ \Leftrightarrow )等逻辑符将多个子命题组合成复合命题实现知识推理;一阶逻辑引入全称量词( ∀ ) \forall) )以及存在量词( ∃ \exists ),得以量化实体和概念;更高阶的,二阶逻辑可以量化集合,三阶逻辑可以量化集合的集合,以此类推 Z = Z = Z= 如果鲸目中的一类北部有背鳍,那么它是海豚科; X 1 = X_1 = X1= 鲸鱼有背鳍; X 2 = X_2 = X2= 这种鲸鱼属于海豚科; Z = ( X 1 ⇒ X 2 Z = (X_1 \Rightarrow X_2 Z=(X1X2) 利用简单统一的方式描述知识,让知识表示和知识推理分离,使得推理方法可以不依赖于具体领域 难以表示过程性知识和不确定性知识;当知识中的属性、谓词和命题数量增大时,推理过程因为符号的组合爆炸问题,计算复杂度呈指数级增长趋势
语义网络 构建通过语义关系连接的有向图知识网络,将知识表示为相互连接的点和边的模式,节点表示实体、事件、值等,边表示对象之间的语义关系;语义网络中最基本的语义单元称为语义基元,用三元组形式表示,如<节点1,关系,节点2>;关系包括实例关系、分类关系、成员关系、包含关系、位置关系等 珊瑚是一种动物,记为 < E 1 , R , E 2 > <E1,R,E2> E 1 = E_1 = E1= 珊瑚; E 2 = E_2 = E2= 动物; R = R= R= 是一种 方便计算机的存储和检索 推理过程不如一阶逻辑简单明了,需要针对不同的关系做不同处理
框架 继承人类认识世界的方式,以框架的结构存储知识;每一个框架包含多个槽;例如<教师实例>{<姓名>{张三}, <年龄>{30}} 框架1:<教师>;槽1:<姓名>;槽2:<年龄>;槽3:<学校>;槽4:<院系> - 无法适应真实世界的多样性和复杂性;不同系统之间的框架难以对齐
脚本 按时间顺序描述事物的发生,表示的知识有确定的时间或因果顺序 顾客去餐厅吃饭;第一场,进入餐厅;第二场,点餐;第三场,上菜进餐 能处理有一定时序关系的槽信息 对元素基本属性的表述能力有限,也难以描述多变的事件可能的发展方向

2.2 资源描述框架(RDF)

资源描述框架 (Resource Description Framework) 是近年来绝大多数知识图谱和知识库遵从的知识表示方法,因其表达清晰、便于计算机检索和存储,1999 年由 W3C 发布后逐渐成为主流。RDF 归属于 语义网 体系中的第二个层次,在 XML 的基础上进行扩展而成。其吸收了语义网络基于三元组表示知识的特性,对关系进行一定约束,以保证框架下不同的知识库能够有效融合。RDF 下,对于二元知识 “马克思·普朗克出生于丹麦基尔”表示为:

             ~~~~~~~~~~~~              <马克思·普朗克,出生于,丹麦基尔>

在应对二元以上的多元知识,例如 “马克思·普朗克于 1858 年出生于丹麦基尔” 表示为:

             ~~~~~~~~~~~~              <出生信息 135,人物,马克思·普朗克>
             ~~~~~~~~~~~~              <出生信息 135,时间,1858 年>
             ~~~~~~~~~~~~              <出生信息 135,地点,丹麦基尔>

单单如此,RDF 很难对同一领域中的不同知识进行交互和融合,因此 RDF Schema (RDFs) 被提出用来定义领域相关的知识,关注类别和属性的层次结构以及继承关系,例如:

             ~~~~~~~~~~~~              <人物,rdf:type,rdf:Class>
             ~~~~~~~~~~~~              <国籍,rdf:type,rdf:Property>
             ~~~~~~~~~~~~              <国籍,rdfs:domain,人物>
             ~~~~~~~~~~~~              <国籍,rdfs:range,xsd:string>

除以上示例之外,还存在 rdfs:subClassOf 等其他表示层次结构的 schema 关系,详细介绍可参见 RDFs 官网。为更好地表示知识,许多研究人员将三元组扩充为包含时间和空间信息的五元组、六元组或更高元的组合表示。

2.3 知识表示学习

知识图谱综合_第2张图片

深度学习成为潮流后,各类表示学习模型层出不穷,针对知识图谱中的三元组同样衍生出众多优秀的表示学习模型,该领域称为 知识图谱嵌入 (Knowledge Graph Embedding) 或 知识表示学习 (Knowledge Representation Learning)。其目的在于通过特定的语义结构,将实体和关系嵌入到等维度的向量空间中 (关系有时候表示为矩阵)。以 Trans 系列的 TransE 为例,模型的学习目标是使得任意一个三元组 < E 1 , R , E 2 > <E1,R,E2>,最终的向量表示满足 Z E 1 + Z R ≈ Z E 2 Z_{E_1}+Z_{R}\approx Z_{E_2} ZE1+ZRZE2。知识表示学习能够在知识图谱内部发挥显著作用,常用于知识融合和知识推理。刘知远在《知识表示学习的研究与进展》中对该领域进行了深刻而细致的总结。

3 知识体系

知识体系主要包括三个方面的核心内容:对概念的分类、概念属性的描述以及概念之间相互关系的定义。知识体系的基本形态包括 词汇 (Terms)、概念 (Concepts)、分类关系 (Taxonomic Relations)、非分类关系 (Non-Taxonomic Relations) 和 公理 (Axioms) 这五个不同层次。

3.1 人工构建知识体系

完全自动地构建知识体系,虽然是人们的终极目标,但是实践证明目前还难以达到,特别是最后两个层次的知识体系。人工构建知识体系主要分为以下六个主要阶段:

  1. 确定领域及任务:知识体系与具体的领域密切相关,例如金融领域和医学领域涉及的概念完全不同。因此在创建知识体系之前,首先应该确定知识图谱面向的领域。
  2. 体系复用:知识体系具有很强的抽象性和概括性,从零构建不仅成本高昂,而且质量难以保证。实际上可以先构建一个轻量级的知识体系,然后尽可能基于它们进行扩展。因此,真正进行构建之前,应当广泛调研现有的第三方知识体系或与之相关的资源。
  3. 罗列元素:根据确定的领域,罗列期望在知识图谱中出现的要素列表,主要包括概念、属性以及关系。
  4. 确定分类体系:确定了相关要素之后,需要将其中表示概念的要素组织成层级结构的分类体系。例如,歌手是娱乐人物的下层类别,所有歌手都是娱乐人物。
  5. 定义属性及关系:为每个类别定义属性及关系,用于描述概念的内在特征。例如,人的出生日期。
  6. 定义约束:不同的属性和关系具有不同的定义域和值域,利用此类数据对抽取的信息进行约束。例如,“年龄” 的值应该是正整数并小于 150 岁。

3.2 自动构建知识体系

上文中提到,目前无法做到完全自动地构建知识体系,因此目前主流的方式是通过自动和人工相结合的方法。

(1)   ~   领域概念抽取

  • 抽取候选术语:利用自然语言处理工具对文本进行 词法句法分析,然后利用语言学规则或模板在文本中抽取特定的字符串,并将字符串当作领域属于的候选。该步骤的目的是尽可能多地将真正的术语包括进来,因此对抽取术语的质量没有严格要求。

  • 术语过滤:对上一步抽取的候选术语进行过滤。领域术语与普通词汇在语料中往往具有不同的统计特征,例如普通词汇无论在领域内还是领域外一般具有相似的分布,而领域术语在领域内外的分布会有明显的区别。在实际操作中,可以利用 互信息 (Mutual Information)、TF-IDFRTF 等方法刻量候选术语的统计特征,并给予这些值过滤低质量的候选术语。

  • 术语合并:术语中常常出现同义词,例如电脑和计算机其实是同一种概念。代表性的术语合并策略分为两种,一种基于现有的词典资源,例如 WordNetHowNet同义词词林 等;另一种基于机器学习,认为同义词应当具有相似的上下文语境,将大量语料投入 Word2Vec、ELMo、BERT 等预训练模型进行训练,获取词汇的向量表示并进行聚类,聚类结果即为同义词的识别结果。

(2)   ~   分类体系的构建

与人工相同,分类体系的构建在于确认不同概念之间的继承关系,语言学上称为 上下位关系。与术语合并类似,上下位关系的识别分为基于词典的方法和基于机器学习的方法,方式与前者基本一致。

(3)   ~   概念属性及关系抽取

以上步骤获取了知识体系涉及的概念及概念间的分类关系,还需要为概念定义属性及关系。在实践中,一般将关系也视作概念的属性,采用统一的过程对它们进行抽取。方法与抽取概念的过程类似,首先利用词法、句法分析等工具对文本进行预处理,并通过规则或模板的方法为给定的概念获取候选的属性集合。

4 实体识别

命名实体识别 (Named Entity Recognition, NER) 旨在从非结构化的文本中抽取命名实体。命名实体大致可分为三大类 (实体类、时间类、数字类) 及七小类 (人名、结构名、地名、时间、日期、货币和百分比)。不同领域的任务对命名实体类别粒度的需求不同,例如有些任务中只需要识别出一个实体是人,有的任务中需要识别出一个实体是教师、学生或者医生。

有关命名实体识别已经大量研究,大致有两种方法:基于规则基于机器学习,两者可同时结合使用。前者准确率较高,接近人类的思考方式,但成本昂贵,规则的制定依赖领域专家,可移植性差。后者依赖大量人工标注数据,且对算力和存储空间提出一定要求。在这里我们主要介绍后者。

4.1 基于机器学习

研究历史上出现过许多用于命名实体识别的机器学习模型,最终经受历史考验,至今仍然广泛使用的代表是 条件随机场 (Conditional Random Field, CRF)。CRF 是知名的图概率模型之一,可以接受任何 1/0 取值形式的特征,同时考虑节点的自身特征以及节点与节点间的转移特征,对节点的标签进行预测。应用在命名实体识别任务上的 CRF 通常指的是线性 CRF,应用于一阶马尔可夫链。条件随机场下的概率分布:
P ( Y ∣ X ; λ , μ ) = exp ⁡ ( ∑ i = 1 n ∑ j λ j t j ( y i − 1 , y i , x , i ) + ∑ i = 1 n ∑ k μ k s k ( y i , x , i ) ) P(Y|X;\lambda,\mu)=\exp \Big( \sum_{i=1}^n\sum_j \lambda_j t_j(y_{i-1},y_i,x,i) +\sum_{i=1}^n\sum_k \mu_ks_k(y_i,x,i) \Big) P(YX;λ,μ)=exp(i=1njλjtj(yi1,yi,x,i)+i=1nkμksk(yi,x,i))

括号内前半部分对应节点的转移特征,后半部分对应状态特征, λ \lambda λ μ \mu μ 为各个特征函数对应的参数,转移特征函数 t t t 及状态特征函数 s s s 取值皆为 { 1 , 0 } \{1,0\} {1,0}。训练时采用 SGDL-BFGS 等优化算法最大化 P P P,通过全局归一化避免标记偏置问题;推理时采用 维特比算法 (Viterbi) 或 束优化 (Beam Search) 寻求最优转移路径。

出于条件随机场优秀的特征描述能力,使用者可以自由地定义各类二元特征加入到模型的训练中。因此命名实体任务多采用各类自然语言处理工具预先提取丰富的语法和句法信息作为状态特征,例如 词性标注句法分析语义角色标注 等,通过节点之间的特征共现对既有的状态特征进行补充。

深度学习进入该领域后,提出另一种解决思路,使用编码器编码过后的语义向量代替原有的特征函数和特征参数,形成端到端的网络进行训练。这样做的好处在于避免了大量人工设计特征的环节,同时可以使用迁移学习将应用迅速落地。常见的一种架构在于使用 Word2Vec+biLSTM+CRF 的搭配。ELMoBERT 等大型预训练模型问世后,预训练语言模型逐渐代替 Word2Vec,成为优质的语义向量提取器。BERT 甚至可以直接摒弃 CRF,通过预训练加微调的方式包揽上下游任务,直接输出序列标签。

4.2 细粒度实体识别

在特定领域的命名实体任务中,传统的三大类和七小类已无法满足信息抽取的需要,因此有了 细粒度实体识别。例如人可以细分为艺人、运动员、教师、工程师等。NELL 中包含了数百个人工预先定义的实体类别,Freebase 中更是高达上千种,两个系统中的实体类别都在动态增加。

细粒度实体识别的难点在于标注数据的构建,基于人工的方式显然很难满足大规模语料的需求,一种常见的方式在于自动识别细粒度实体类别,利用 回标 的方法进行自动标注。常见的方法包括利用上下文 聚类 对提取的同类别实体进行无监督分类。这种方法标注速度快,但容易带来噪音。

4.3 距离监督

英文名为 Distant Supervision,自 2006 年首次提出后便广泛应用于知识图谱项目中,主要在于实体识别和关系抽取任务中。其目的在于充分利用既有知识库的先验知识,来为本项目的各类任务提供信息支持。具体的应用体现在使用既有知识库的模板对数据进行快速标注,如同 Open IE;另一方面,也可以通过在该知识库下进行知识检索,验证抽取实体的可信度,常见的做法在于使用搜索引擎反馈的信息确认实体。

5 实体消歧

旨在于解决一词多义的问题,实体消歧的方法分为 实体链接 (Entity Linking) 和 实体聚类 (Entity Clustering) 两种。

5.1 实体聚类

以聚类方式实现消歧的系统首先对每一个实体指称项,抽取其特征 (如上下文中的词、实体、概念),并将其表示为特征向量,而后采用某种聚类算法对特征向量进行聚类,使得聚类结果中每一个类别都对应到一个目标实体上。特征向量的构建包括以下三种方式:

  • 基于表层特征:最为直接和简单的方式是使用上下文构建 词袋,在此基础上延伸可使用 TF-IDF句法语义 特征也可作为向量的构建考量;有研究者预先训练一个 最大熵模型 判断两个指称项表示的是否是同一个实体,利用模型推理得出的概率值作为相似度传入 凝聚式合并算法 (Agglomerative Clustering Algorithm) 对指称项进行聚类。
  • 基于扩展特征:在表层特征的基础上,抽取人物的传记属性来扩展特征,例如出生日期、出生地等。
  • 基于社会化网络:完全依赖于抽取的上下文关系,而非表层特征。依据上下文社会化关系为每一个实体建立图网络,采用随机游走的算法计算实体之间的相似度;计算实体共现的方法也能达成识别的目的。

后两种方式需要在关系抽取完成后进行。

5.2 实体链接

实体链接在于将实体指称项链接到知识库中的特定实体 (如果知识库中不包含待消歧项,则将实体指称项链接到空实体 NIL)。这里也常常使用 距离监督 构建待链接实体列表,列表中同时包含了实体的描述、结构化信息、辅助性信息。由于待链接实体列表的长度可能高达上百万,将实体指称项与每一个实体一对一地匹配是不可能的,因此在链接前需要根据规则或知识先过滤掉大部分候选项。最行之有效的方法是使用现有的词典,此外可以使用基于构词法的模糊匹配算法,例如 Metaphone AlgorithmSoft TF-IDF。候选过后,通过为每一位候选实体进行打分,将得分最高的实体作为链接目标。打分的方法目前分为四种:

  • 向量空间模型:主要基于实体指称项上下文与目标实体上下文中特征的共现信息来确定相似度,共现信息指的是基于 Term (通常为词,还可能包括概念、类别等) 组成的向量。

  • 主题一致性模型:使用上下文抽取的其他实体指称项,组成实体指称项集合,与目标实体进行一致性评断。一致性的计算目前大部分采用目标实体与上下文中其他实体的加权语义关联平均:
    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_{e_i\in O}w(e,o)sr(e,e_i)}{\sum_{e_i\in O}w(e,o)} Coherence(e,o)=eiOw(e,o)eiOw(e,o)sr(e,ei) w ( e , o ) = ∑ e i ∈ O s r ( e , e i ) ∣ O ∣ w(e,o)=\frac{\sum_{e_i\in O}sr(e,e_i)}{|O|} w(e,o)=OeiOsr(e,ei)其中, o o o 是实体指称项, O O O 是实体指称项上下文实体集合, s r ( e , e i ) sr(e,e_i) sr(e,ei) 是实体 e e e 和实体 e i e_i ei 之间的语义关联值。

  • 协同实体链接模型:考虑全文中所有实体指称项的关联性。Kulkarni 等人提出的协同实体链接办法将单篇文档的协同实体链接看成是优化任务,目标函数如下:
    max ⁡ 1 ( ∣ S o ∣ 2 ) ∑ s ≠ s ′ ∈ S o r ( y s , y s ′ ) + 1 ∣ S o ∣ w T f s ( y s ) \max\frac{1}{\dbinom{|S_o|}{2}}\sum_{s\ne s' \in S_o}r(y_s,y_{s'})+\frac{1}{|S_o|}w^Tf_s(y_s) max(2So)1s=sSor(ys,ys)+So1wTfs(ys)其中, y s y_s ys 指的是实体指称项 s s s 的目标实体, S o S_o So 是单篇文档内所有实体指称项的集合, r ( y s , y s ′ ) r(y_s,y_{s'}) r(ys,ys) 是目标实体之间的语义关联, f s ( y s ) f_s(y_s) fs(ys) 是实体指称项 s s s 与其目标实体 y s y_s ys 的一致性打分。从公式可以看出,第一部分对单篇文档内所有实体指称项的目标实体之间的关系进行建模,第二部分对单篇文档内实体指称项与目标实体之间的一致性进行建模。突出的建模方法包括图算法、动态规划。

  • 基于神经网络的模型:传统方法的核心,在于实体与实体、实体与文本、文本与文本相似度的计算,特征的抽取往往可扩展性较差,表示能力不足,从而造成误差传递。基于深度学习的方法缓解了上述问题,做法在于通过预训练获得文档和实体的语义表达,在该表达的基础上计算点积或余弦相似度完成匹配。多层自编码器卷积神经网络多粒度的卷积神经网络 是常用的几个模型。由于基于神经网络的方法不需要人工设计复杂的特征,易于捕获深层语义,取得了比较好的性能,占据了实体消歧的主导地位。

6 关系抽取

对于非结构化的文本,关系抽取可分为 开放域 (open domain) 和 限定域 (domain-specific)。限定域关系抽取预先定义提取的关系类别,通常需要大量的训练语料或语法规则;开放域则不限关系种类。本质上,关系抽取和实体抽取的过程相对类似,皆为从非结构化文本中抽取词组,因此本节将以相对简略的方式进行概述。

6.1 限定域关系抽取

限定域关系抽取分为以下几种方法:

  • 基于模板:模板的获取可通过人工定义或自动学习完成。自动学习的方法衍生出两个问题:如何学习用于抽取关系的模板,以及如何将学习到的模板进行聚类。针对以上问题,已有的方法多采样 自提升 (Bootstrapping) 策略,利用实体对在文本中获取模板信息,再利用获取到的模板抽取更多的实体对,进行联合迭代式地交替抽取和学习。模板可以是基于词汇的,也可以是基于句法或语义的。
  • 基于特征工程:提取词汇、句法、语义特征后使用 SVM 等分类模型或 CRF 等序列标注模型进行训练,通过在非结构化文本上进行分类推理提取关系。
  • 基于神经网络:通过 Word2VecBERT 等大型预训练模型获取词汇的分布式表达,输送给基于 RNN 或 Transformer 的神经网络进行序列标注,抽取关系词组。

为应对以上方法对语料的大量需求,一些 弱监督学习方法 被应用于关系抽取,上文中提到的 距离监督 是其中的典型代表。

6.2 开放域关系抽取

开放域关系抽取同样需要应用自然语言处理工具,从文本中提取词汇、句法和语义特征,通过序列标注模型实现关系抽取。但在此基础上,需要引入 可信度 (confidence) 对抽取的三元组进行事实判定。可信度的计算可基于 距离监督,也可基于初始的 种子模板。由于开放域关系抽取抽取到的关系难以自动形成知识体系,映射至知识图谱中,因而基于限定域的关系抽取是目前的主流方向。

7 知识融合

融合异构的知识图谱,使其提供更全面的知识信息,重要性是毋庸置疑的。

7.1 框架匹配

依据使用技术的不同,框架匹配可以分为 元素级匹配结构级匹配。元素级匹配独立判断两个知识图谱中的元素是否应该匹配,不考虑其他元素的匹配情况。结构级匹配利用知识图谱的结构,在元素匹配过程中考虑其他相关元素匹配情况。

(1)   ~   元素级匹配

最基本的方法基于字符串匹配,将字符串看作字母的精确序列、字母的集合、单词集等。字符串越相似,则它们越有可能表示相同的概念。实际应用中,广泛采用的匹配方法包括 前缀距离后缀距离编辑距离 以及 n元语法距离 等。为解决以上方法匹配过程中的一词多义和一义多词问题,引入基于语言学的技术可以更好地计算元素之间的关联性,例如 同义词反义词形态变体语法变体同一词根上词汇形式和功能的变化语法结构的变化 等。同时,还能使用元素的取值范围、关系的对称性加强匹配程度,称为 基于约束 的匹配。上文中反复提到的 词典,也可以用于元素之间的匹配。

(2)   ~   结构级匹配

结构级匹配的假设是,相似的概念具有相似的概念结构。基于结构的匹配技术主要有三种:基于图的技术基于分类体系的技术基于统计分析的技术。基于图的技术通过寻求最大公共子图实现匹配,通常计算量很大,一般采用 EMLabel Propagation 等迭代算法近似求解。基于分类体系的技术是基于图的技术的扩展,只关注诸如类型和子父类的特殊关系。基于统计分析的技术在已有样本的基础上对概念、属性、实例、关系等对象进行分组,从而计算它们之间的距离,典型的技术包括 形式概念分析基于距离的分类相关性分析 以及 频度分布

7.2 实体对齐

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

知识表示学习 同样可应用于实体对齐,通过知识库联合表示学习,将知识映射至同一个向量空间里,通过计算向量相似度实现实体对齐。这种方法不依赖于人工设定的规则和特征,可以非常容易地迁移到不同语言、不同领域地知识库对齐任务中。例如,给定两个知识库,通过简单的字符串匹配方法产生种子对,使用 TransE 对实体和关系进行表征训练,训练目的是使得种子对中的两个实体的向量尽量相似。

7.3 冲突检测与消解

不同知识库对同一知识的表达可能会冲突,例如明星的身高,对冲突的检测和消解是知识融合的重要步骤。冲突消解技术上可分为两类:基于投票基于质量估计。基于投票的方法如其名,基于质量估计的方法考虑不同知识来源的可信度,最终选择较高质量的结果,例如根据 HITSPageRank 算法计算不同数据来源的可信度。

8 知识存储

8.1 存储形式

知识图谱的存储形式通常为以下三种:

  • 三元组表:直接对 RDF 事实三元组进行存储,简单直接,易于理解。但整个知识图谱存储在一张大表里无疑十分低效,查询、插入、删除和修改等操作的开销过大。代表产品包括 JenaOracleSesame3storeSORRstarVirtuoso
  • 类型表:为每种类型构建一张表,同一类型的实例存放在相同的表中,表中每一列代表一种属性,每一行代表一个实例,表与表之间的指针代表了继承关系。这样的类型表通常由关系型数据库进行存储,虽弥补了三元组表的不足,但容易造成大量空值。知名的关系型数据库包括 MySQLDB2OracleMicrosoft SQL ServerPostgreSQL 等。
  • :将每一个实体认作节点,关系认作节点的属性指向另一个实体,以图结构的形式将知识图谱存储在数据库中。这样的结构有利于知识的查询和推理,也有利于实施图相关的算法。常用的图数据库包括 Neo4jOrientDBInfoGridHyperGraphDBInfiniteGraph 等。

8.2 图数据库

基于图结构的存储存在诸多优势,因而成为目前的主流,下面对各类图数据库进行详细介绍:

  • Neo4j:开源的图数据库系统,基于 Java 实现,是一个具备完全事务特性的高性能数据库,具有成熟数据库的所有特性。Neo4j 是一个本地数据库 (又称基于文件的数据库),这意味着不需要启动数据库服务器,应用程序不用通过网络访问数据库服务,而是直接在本地对其进行操作,因此访问速度快。因其开源、高性能、轻量级等优势,Neo4j 受到越来越多的关注。
  • OrientDB:开源文档 - 图数据库系统,兼具图数据库对数据强大的表示及组织能力以及文档数据库的灵活性和很好的可扩展性。OrientDB 具有多种模式可选,包括全模式、无模式和混合模式。全模式要求数据库中的所有类别都必须有严格的模式,所有字段都强制约束;无模式则相反,不需要为类别定义模式,存储的数据记录可以有任何字段;混合模式则允许为类别定义若干字段,同时支持自定义字段。该数据库同样是本地的,支持许多数据库的高级特性,如事务、快速索引、SQL 查询等。
  • InfoGrid:开源的互联网图数据库,提供了很多额外的组件,可以很方便地构建基于图结构的网络应用。InfoGrid 实际上是一个 Java 语言的开源项目集,其中 InfoGrid 图数据库项目是其核心,其他的项目包括 InfoGrid 存储项目、InfoGrid 用户接口项目等。
  • HyperGraphDB:同样是开源的存储系统,依托于 BerkeleyDB 数据库。和上述图数据库相比,HyperGraphDB 最大的特点在于 “超图”,一条边可以指向多个节点。实际上,HyperGraphDB 的边还可以指向其他边。如此以来具有更强大的表示能力。
  • InfiniteGraph:基于 Java 语言开发的图数据库系统,是一个分布式数据库系统。和 MySQL 等传统关系数据库类似,InfiniteGraph 需要作为服务项目进行安装,应用程序只能通过访问数据库服务对数据库进行操作。InfiniteGraph 借鉴了面向对象的概念,将图中的每个节点及边看作一个对象。具体地说,所有的节点都继承自基类 BaseVertex,所有的边都继承自基类 BaseEdge。

9 知识推理

作为知识图谱生态链中的重要环节,知识推理既可用于 知识补全,也可服务于 知识问答。例如我们希望在知道 “廊坊在河北省”、“河北省在中国华北” 的同时,能够推理出 “廊坊位于中国华北”。当前主流的知识推理方法主要分为以下三种:

  • 基于概率或逻辑:尽管人为构造的推理规则能获得极高的准确度,但这样的方法可移植性较差,且在应对大型知识图谱时无能为力,因而如何从既有的知识体系中自动地挖掘出可信度较高的关系路径是当下的主要难题。传统的推理策略采用 计数最大化后验概率 等统计学习的方法生成规则路径。按照推理中特征的模式和来源,可分为 概率图模型概率逻辑推理关联规则挖掘。概率图模型的代表有基于有向图的 贝叶斯网络 (Bayesian Network) 和基于无向图的 马尔可夫网络 (Markov Network),以及在此基础上衍生出的一派优秀的推理模型,例如 基于马尔可夫性的蒙特卡洛采样 (MCMC) 和 Metropolis Hasting 算法,可参考《概率图模型:原理与技术》。概率逻辑推理将概率图模型与一阶逻辑相结合,如 马尔可夫逻辑网 (Markov Logic Network),为每一条逻辑规则附加权重,通过训练调整权重大小。关联规则挖掘则不同于前两者,没有严格的逻辑定义,将逻辑规则作为具有结构的特征,利用数理统计的方式评估特征的支持度、置信度或其他预定义的统计量,通过将统计数据作为特征值加入到最终的统计模型中进行推理。

  • 基于知识表示学习:在将知识图谱中的实体和关系表示为等维度的向量后,可通过相加相减和矩阵相乘等数值运算的方式获得推理后的隐性语义表示,将其与目标实体或目标关系向量进行距离运算后判断推理关系。基于知识表示学习的推理方法解决了维度灾难和数据稀疏的问题,神经网络弹性的超参数设定使得该方法能同时应用于大型和小型知识图谱,是目前表现最为稳定的方法。ConvEDistMul 是其中的优秀代表。

近年来一种基于强化学习的新思路被应用于知识推理,但由于强化学习本身表现不稳定,状态和奖励函数难以设定,未能大规模胜过当下的主流方法。

10 知识问答与对话

广义而言,问答可依据底层支持的数据库分为四种:知识图谱问答文本问答表格问答 以及 社区问答。其中文本问答通常又称为 阅读理解 (Reading Comprehension),旨在从非结构化文本中直接获取答案。而我们在此讨论的即为知识图谱问答,常作为搜索引擎和对话机器人的后台程序作为技术支撑。知识图谱问答在流程上通常分为以下几步:

  1. 语义解析:将 query 转换为逻辑表示式。知名的语义表示模型包括 组合范畴语法 (Combinatory Categorial Grammers, CCG)、一阶谓词逻辑 (First-Order Predicate Logic) 和 lambda 演算 等。
  2. 实体链接:将逻辑表达式中的实体和关系与知识图谱进行对齐。
  3. 知识推理:当既有知识库无法满足逻辑表达式下的答案抽取需求时,通过知识推理获取目标答案。

你可能感兴趣的:(自然语言处理,算法)