知识图谱总体构建思路(流程图)
1 知识图谱的总体构建思路
如图所⽰,从原始的数据到形成知识图谱,经历了知识抽取、知识融合(实体对齐)、数据模型构建、质量评估等步骤。
原始的数据,按照数据的结构化程度来分,可以分为结构化数据、半结构化数据和⾮结构化数据,根据数据的不同的结构化形式,采⽤不同的⽅法,将数据转换为三元组的形式,然后对三元组的数据进⾏知识融合,主要是实体对齐,以及和数据模型进⾏结合,经过融合之后,会形成标准的数据表⽰,为了发现新知识,可以依据⼀定的推理规则,产⽣隐含的知识,所有形成的知识经过⼀定的质量评估,最终进⼊知识图谱,依据知识图谱这个数据平台,可以实现语义搜索,智能问答,推荐系统等⼀些应⽤。
以下对知识图谱构建中的步骤进⾏详细的介绍。
2 知识抽取
我们将原始数据分为结构化数据、半结构化数据和⾮结构化数据,根据不同的数据类型,我们采⽤不同的⽅法进⾏处理。
2.1 结构化数据处理
针对结构化数据,通常是关系型数据库的数据,数据结构清晰,把关系型数据库中的数据转换为RDF数据(linked data),普遍采⽤的技术是D2R技术。D2R主要包括D2R Server,D2RQ Engine和D2RRQ Mapping语⾔。
D2R Server 是⼀个 HTTP Server,它的主要功能提供对RDF数据的查询访问接⼝,以供上层的RDF浏览器、SPARQL查询客户端以及传统的 HTML 浏览器调⽤。 D2RQ Engine的主要功能是使⽤⼀个可定制的 D2RQ Mapping ⽂件将关系型数据库中的数据换成 RDF 格式。D2RQ engine 并没有将关系型数据库发布成真实的 RDF 数据,⽽是使⽤ D2RQ Mapping ⽂件将其映射成虚拟的 RDF 格式。该⽂件的作⽤是在访问关系型数据时将 RDF 数据的查询语⾔ SPARQL 转换为 RDB 数据的查询语⾔ SQL,并将 SQL 查询结果转换为 RDF
三元组或者 SPARQL 查询结果。D2RQ Engine 是建⽴在 Jena(Jena 是⼀个创建 Semantic Web 应⽤的 Java 平台,它提供了基于RDF,SPARQL 等的编程环境)的接⼝之上。 D2RQ Mapping 语⾔的主要功能是定义将关系型数据转换成 RDF 格式的 Mapping 规则。流程图转换为ns图
2.2 半结构化数据处理
半结构化数据,主要是指那些具有⼀定的数据结构,但需要进⼀步提取整理的数据。⽐如百科的数据,⽹页中的数据等。对于这类数据,主要采⽤包装器的⽅式进⾏处理。
包装器是⼀个能够将数据从HTML⽹页中抽取出来,并且将它们还原为结构化的数据的软件程序。⽹页数据输⼊到包装器中,通过包装器的处理,输出为我们需要的信息。
对于⼀般的有规律的页⾯,我们可以使⽤正则表达式的⽅式写出XPath和CSS选择器表达式来提取⽹页中的元素。但这样的通⽤性很差,因此也可以通过包装器归纳这种基于有监督学习的⽅法,⾃动的从标注好的训练样例集合中学习数据抽取规则,⽤于从其他相同标记或相同⽹页模板抽取⽬标数据。
2.3 ⾮结构化数据处理
对于⾮结构化的⽂本数据,我们抽取的知识包括实体、关系、属性。对应的研究问题就有三个,⼀是实体抽取,也称为命名实体识别,此处的实体包括概念,⼈物,组织,地名,时间等等。⼆是关系抽
取,也就是实体和实体之间的关系,也是⽂本中的重要知识,需要采⽤⼀定的技术⼿段将关系信息提取出来。三是属性抽取,也就是实体的属性信息,和关系⽐较类似,关系反映实体的外部联系,属性体现实体的内部特征。
⾮结构化数据的抽取问题,研究的⼈⽐较多,对于具体的语料环境,采取的技术也不尽相同。举个例⼦,⽐如关系抽取,有的⼈采⽤深度学习的⽅法,将两个实体,他们的关系,以及出处的句⼦作为训练数据,训练出⼀个模型,然后对于测试数据进⾏关系抽取,测试数据需要提供两个实体和出处的句⼦,模型在训练得到的已知关系中查,得出测试数据中两个实体之间的关系。这是⼀种关系抽取的⽅法。还有⼈⽤句法依存特征,来获取关系,这种⽅法认为,实体和实体之间的关系可以组成主谓宾结构,在⼀个句⼦中,出主谓关系和动宾关系,其中的谓词和动词如果是⼀个词,那么这个词就是⼀个关系。⽐如说“⼩明吃了⼀个苹果”,主谓关系是“⼩明吃”,动宾关系是“吃苹果”,那么就认为“吃”是⼀个关系。
当然,还有其它很多⽅法,可以在⼀定程度上实现实体抽取,关系抽取和属性抽取,效果可能会有差异,这需要在实践中测试和完善。
3 知识融合
知识融合,简单理解,就是将多个知识库中的知识进⾏整合,形成⼀个知识库的过程,在这个过程中,
主要需要解决的问题就是实体对齐。不同的知识库,收集知识的侧重点不同,对于同⼀个实体,有知识库的可能侧重于其本⾝某个⽅⾯的描述,有的知识库可能侧重于描述实体与其它实体的关系,知识融合的⽬的就是将不同知识库对实体的描述进⾏整合,从⽽获得实体的完整描述。
⽐如,对于历史⼈物曹操的描述,在百度百科、互动百科、等不同的知识库中,描述有⼀些差别,曹操所属时代,百度百科为东汉,互动百科为东汉末年,为东汉末期;曹操的主要成就,百度百科为“实⾏屯⽥制,安抚流民消灭雄,统⼀北⽅,奠定曹魏政权的基础,开创建安⽂学,提倡薄葬”,互动百科为“统⼀北⽅”,为“统⼀了东汉帝国核⼼地区”。
由此可以看出,不同的知识库对于同⼀个实体的描述,还是有⼀些差异,所属时代的描述差别在于年代的具体程度,主要成就的差别在于成就的范围不同,等等,通过知识融合,可以将不同知识库中的知识进⾏互补融合,形成全⾯、准确、完整的实体描述。 知识融合过程中,主要涉及到的⼯作就是实体对齐,也包括关系对齐,属性对齐,可以通过相似度计算,聚合,聚类等技术来实现。
4 数据模型构建
上⼀篇⽂章,我们阐述过知识图谱的构建⽅法,提到知识图谱的数据整体上可以分为数据模型和具体数据,数据模型就是知识图谱的数据组织框架,不同的知识图谱,会采⽤不同的数据模型。对于⾏业知识图谱来说,⾏业术语、⾏业数据都相对⽐较清晰,可以采⽤⾃顶向下的⽅式来建设知识图谱,也
就是先确定知识图谱的数据模型,然后,根据数据模型约定的框架,再补充数据,完成知识图谱的建设。 数据模型的构建,⼀般都会⼀个基础的参考模型,这个参考模型,可以参照⾏业的相关数据标准,整合标准中对数据的要求,慢慢形成⼀个基础的数据模型,再根据实际收集的数据情况,来完善数据模型。也可以从公共知识图谱数据模型中抽取,将与⾏业有关的数据模型从公共知识图谱数据模型中提取出来,然后结合⾏业知识进⾏完善。
5 知识推理
知识推理,就是根据已有的数据模型和数据,依据推理规则,获取新的知识或者结论,新的知识或结论应该是满⾜语义的。知识推理,依据描述逻辑系统实现。描述逻辑(Description Logic)是基于对象的知识表⽰的形式化,也叫概念表⽰语⾔或术语逻辑,是⼀阶谓词逻辑的⼀个可判定⼦集。
⼀个描述逻辑系统由四个基本部分组成: 最基本的元素:概念、关系、个体;TBox术语集:概念术语的公理集合; Abox断⾔集:个体的断⾔集合;TBox 和 ABox上的推理机制。
描述逻辑涉及到的内容也⽐较多,此处举⼏个例⼦,⽐如实体的分类包含关系,⼀个电脑椅是椅⼦,椅⼦是家具,可以说,⼀个电脑椅是家具。常识规则的推理,⼀个男⼈的孩⼦是A,⼀个⼥⼈的孩⼦是A,可以知道,这个男⼈和⼥⼈是配偶。
通过推理发现新的知识,应⽤⽐较多,说明知识图谱的时候也经常不⾃觉的会应⽤推理,⽐如前两年⽐较受⼈关注的王宝强离婚案,为什么会聘⽤张起淮做律师,通过知识图谱可以很清楚知道,王宝强和冯⼩刚关系⽐较密切,冯⼩刚聘⽤张起淮作为律师顾问,所以王宝强很容易和张起淮建⽴关系,这也可以看作是知识推理的范畴。当然,更确切地说,应该是规则的范畴。推理更强调的是固有的逻辑,规则⼀般是和业务相关的⾃定义逻辑,但推理和规则都是通过逻辑准则,获取新的知识或发现,在这⾥先不做区分。
6 质量评估
质量评估,就是对最后的结果数据进⾏评估,将合格的数据放⼊知识图谱中。质量评估的⽅法,根据所构建的知识图谱的不同,对数据要求的差异⽽有所差别。总的⽬的是要获得合乎要求的知识图谱数据,要求的标准根据具体情况确定。 ⽐如对于公共领域的知识图谱,知识的获取采⽤了众包的⽅法,对于同⼀个知识点,可能会有很多⼈来完成,如果这个知识点只有⼀个答案,可以采⽤的⼀种策略是,将多⼈的标注结果进⾏⽐较,取投票多的结果作为最终的结果。当然,这是不严谨的,因为真理往往掌握在少数⼈的⼿⾥,特别是针对⼀些⾏业的知识图谱,表现尤为突出。⾏业内的⼀条知识,可能只有⾏业专家能够给出权威正确的答案,如果让⼤众投票来决定,可能会得到⼀条错误的知识。所以,针对⾏业知识图谱,可能会采⽤不同于公共知识图谱的策略,来进⾏知识的质量评估。
以上零零散散的将知识图谱的构建过程,⼤体做了⼀个描述,知识图谱的构建是⼀个复杂的系统⼯程,涉及到的知识和技术都很多,肯定会有很多知识或技术没有说到,或者是描述的⽐较浅显,没有把握住⼀些构建⽅法的本质,希望⼤家补充,我会在后⾯做项⽬的过程中,不断细化构建过程,将构建中碰到的具体问题,再进⾏详细的描述说明。