一.基础概念
1.定义
知识图谱是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过将数据粒度从document级别降到data级别,聚合大量知识,从而实现知识的快速响应和推理。
2.分类
主要有构建结构化的百科知识的通用知识图谱和基于行业数据构建和应用的领域知识图谱。
其中领域知识图谱更加符合行业的实际需要,在工业领域应用广泛。
二.知识图谱的构建(领域知识图谱的自底向上方法)
1.自底向上(Bottom-UP)的方法,即首先对实体进行归纳组织,形成底层概念,再逐步向上抽象,形成上层概念。该方法可基于行业现有标准转换成数据可模式,也可基于高质量行业数据源映射生成。
领域知识图谱的构建流程主要包括6个环节:知识建模、知识存储、知识抽取、知识融合、知识计算以及知识应用。
2.知识图谱的基本内容
知识图谱的基本单位,是“实体(Entity)-关系(Relationship)-实体(Entity)”构成的三元组,这也是知识图谱的核心。例如足球运动员是运动员的子类,即若两个节点之间存在关系,他们就会被一条无向边连接在一起,那么这个节点,我们就称为实体(Entity),它们之间的这条边,我们就称为关系(Relationship)。
在逻辑上,我们通常将知识图谱划分为两个层次:数据层和模式层。
数据层:存储真实的数据。例如詹姆斯-篮球运动员-湖人,库里-篮球运动员-勇士。
模式层:在数据层之上,是知识图谱的核心,存储经过提炼的知识,通常通过本体库(用于定义和描述知识图谱中实体、属性及其关系的结构化框架。本体库为知识图谱提供了语义基础,使得数据能够以一致且可理解的方式被组织和查询)来管理。即实体-关系-实体,实体-属性-性值。
3.知识图谱的整体架构
其中虚线框内的部分为知识图谱的构建过程,同时也是知识建立和更新的主要流程。
首先是原始数据处理,数据源可能是结构化的、非结构化(如文本、图像)的以及半结构化(如XML、JSON文件)的,然后通过一系列自动化或半自动化的技术手段,来从原始数据中提取出知识要素,也就是一堆实体关系,并将其存入我们的知识库的模式层和数据层。
构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含:知识储存、信息抽取、知识融合、知识计算。
三.构建过程
1.知识建模
知识图谱的知识建模是指将现实世界中的知识以结构化的形式表示出来,以便计算机能够理解和处理。
2.知识存储
知识图谱的原始数据类型一般来说有三类:
· 结构化数据(Structed Data),如关系数据库
· 非结构化数据,如图片、音频、视频
· 半结构化数据,如XML、JSON、百科
目前,主流的的知识存储解决方案包含单一式和混合式存储两种。主要有两种选择,一个是通过RDF(资源描述框架)这样的规范存储格式来进行存储,比较常用的有Jena等。
还有一种方法,就是使用图数据库来进行存储,常用的如Neo4j等。
基于图的存储在设计上会非常灵活,一般只需要局部的改动即可,对大数据量的情况非常友好。
3.信息提取
知识图谱中的信息提取(Information Extraction, IE)指的是从非结构化或半结构化数据中抽取出结构化的知识三元组(subject, predicate, object),用于构建知识图谱。关键技术包括:实体提取、关系提取和属性提取。
实体抽取,也称为命名实体识别,是指从文本数据集中自动识别出命名实体。
关系抽取,为了得到语义信息,从相关语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成网状的知识结构。
属性抽取,目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。
4.知识融合
知识融合(Knowledge Fusion),指的是将来自多个异构数据源或知识图谱中的冗余、冲突、模糊的知识统一整合成一致、准确、无歧义的三元组过程,是知识图谱构建中的核心环节之一。
其中:
(1)对非结构化/半结构化数据处理:实体链接(entity linking)的流程是通过给定的实体指称项,通过相似度计算进行实体消歧和共指消解,确认正确实体对象后,再将该实体指称项链接到知识库中对应实体。其中实体消歧解决同名实体产生歧义问题,共指消解解决多个指称对应同一实体对象的问题。
(2)对结构化数据处理:知识合并主要涉及“合并外部知识库”,处理数据层和模式层的冲突;以及用RDB2RDF等方法“合并关系数据库”
5.知识计算
“知识计算(Knowledge Computation)” 是知识图谱领域中的一个高级概念,指的是在知识图谱的基础上,利用计算方法进行推理、发现新知识或支持决策分析的过程,就是通过知识计算获得结构化,网络化的知识体系以及更新机制。
知识计算 ≈ 对知识图谱进行“运算”或“思考”
它不是简单地存储和查询,而是:
-
自动推理:根据已有三元组推出新的知识
-
相似度计算:判断两个漏洞是否相似、两个函数是否等价
-
路径推理:找到某种攻击发生的逻辑路径
-
图嵌入与预测:用神经网络预测图谱中可能存在但缺失的三元组