知识图谱生命周期及工具

1. 知识图谱生命周期

  从行业知识图谱的全生命周期来看,可以分为知识建模,知识获取,知识融合,知识存储,知识计算和知识应用6个部分。
在这里插入图片描述

1.1 知识建模

  知识建模即建立知识图谱的模式层(也称本体层、动态本体层),行业知识图谱依托于模式层对整个知识图谱的结构进行定义,因此需要保证可靠性。
  通常采用两种方法:一种是自顶向下的方法,专家手工编辑形成数据模式;另一种是自底向上的方法,基于行业现有的标准进行转换或者从现有的高质量行业数据源(如业务系统数据库表)中进行映射。
  其中的关键技术与难点包括:

  • 能够支持导入集成使用现有的知识(模式层融合的全局本体-局部本体模式),实现最大程度的复用
  • 能够支持便捷更新,包括上拢、下沉、复写等
  • 能够兼容继承、定义等直观知识表达与支撑时间、时序等复杂知识表达
  • 能够与OWL体系兼容,方便进行演绎推理扩展
  • 能够实现本体与图schema的桥接转换
  • 能够实现与外部知识库的便捷链接
  • 能够支持模式层的时空特性
  • 能够自下而上模式,避免全人工操作
  • 能够支持在线协同编辑
    如何解决上述问题,实施知识建模?笔者计划在后续知识建模专栏,系统介绍知识建模相关思考和经验

1.2 知识抽取

  从不同来源、不同结构的数据中进行知识提取,形成知识存入到知识图谱,这一过程我们称为知识获取。
  下图中的三类数据基本涵盖了主流数据类型(当然,近期包括视频、图片等更多有逐渐作为知识提取的源数据,潘云鹤院士也提出了视觉词典的概念),针对不同种类的数据,我们利用不同的技术进行提取。

  • 从结构化数据库中获取知识:D2R
    如何统一复杂表数据的处理,如何统一数据处理、实体抽取、关系计算、属性处理等
  • 从链接数据中获取知识:知识映射
    如何进行知识合并(数据对齐)
  • 从半结构化(网站)数据中获取知识:使用包装器
    如何实现方便的包装器定义方法,包装器自动生成、更新与维护
  • 从文本中获取知识:信息抽取
    算法层面结果的准确率与覆盖率如何提升
    工程层面如何统一数据处理、传统nlp、深度学习
    相关解决方案计划在后续知识抽取专栏进行系统介绍
    在这里插入图片描述

1.3 知识融合

  已经从不同的数据源把不同结构的数据提取知识之后,接下来要做的是把它们融合成一个统一的知识图谱,这时候需要用到知识融合的技术。
  知识融合主要分为模式层融合和数据层融合,分别用的技术如下:
a) 数据模式层融合

  • 概念合并
  • 概念上下位关系合并
  • 概念的属性定义合并

b) 数据层融合

  • 实体合并
  • 实体属性融合
  • 冲突检测与解决

  实体对齐是知识融合的核心,计算实体相似度主要可以分为以下几类方法:

  • 聚合
    加权平均,手动制定规则,分类器
  • 聚类
    层次聚类,相关性聚类
  • 知识嵌入

  由于行业知识图谱根据不同行业和不同阶段会出现自定向下、自底向上、自顶向下和自底向上结合等多种方式,需要注意的是,根据笔者经验,现阶段主流的模式层不论在哪种方式里基本都经过人工的校验,保证可靠性
  笔者现阶段接触到的数据层的知识融合还是以规则为主,也计划通过专栏形式介绍相关实践经验和了解的算法理论研究

1.4 知识存储

  图谱的数据存储既需要完成基本的数据存储,同时也要能支持上层的知识推理、知识快速查询、图实时计算等应用,因此需要存储以下信息:

  • 三元组知识的存储
  • 事件信息的存储
  • 时空信息的存储
  • 使用知识图谱组织的数据的存储(多模态图)

  同样,根据笔者经验,知识图谱不等同于图,知识图谱的存储不等同于图的存储,存储介质不仅仅是图数据库,笔者会在后续知识存储专题中系统阐述

1.5 知识计算

  知识计算主要是在知识图谱中知识和数据的基础上,通过各种算法,发现其中显式的或隐含的知识、模式或规则等,知识计算的范畴非常大,这里主要讲三个方面:

  • 图论挖掘计算:基于图论的相关算法,实现对图谱的探索和挖掘。
  • 图表征学习 : 基于深度学的图表征学习
  • 本体推理:演绎推理,使用本体推理进行新知识发现或冲突检测。
  • 数据推理:数据层推理包括基于基于图的推理、基于规则学习的推理、基于深度学习的推理等等

  知识计算涉及到的技术非常多,每一项都需要专门去研究,而且已经有很多研究成果,后续计划在知识计算专题进行相应专题进行系统介绍

1.6 知识应用

  基于知识图谱融合的海量知识和数据,结合上一步的知识计算相关技术,知识图谱可以产生大量的智能应用,比如我们之前提到的企业画像,反欺诈不一致性检测,用户通过自然语言进行搜索等。知识图谱目前的应用很多,例如:

  • 语义搜索:基于知识图谱中的知识,解决传统搜索中遇到的关键字语义多样性及语义消歧的难题;通过实体链接实现知识与文档的混合检索。
  • 智能问答:针对用户输入的自然语言进行理解,从知识图谱中或目标数据中给出用户问题的答案。
  • 可视化决策支持:通过提供统一的图形接口,结合可视化、推理、检索等,为用户提供信息获取的入口。

  当然还有像深度搜索、关系碰撞等诸多应用,也在规划进行一个应用侧的系统梳理

2. 知识图谱生命周期工具

  知识图谱生命周期工具主要介绍套件、知识建模工具、知识抽取工具、知识融合工具、知识计算工具(主要知识推理)等,相关生命周期实践后续有机会在专栏中与大家分享

2.1 生命周期套件

2.1.1 LOD2

  欧盟的LOD2项目,它主要目标是构建结构化链接数据的企业级管理工具和方法学,提供一个搜索、浏览和生成链接数据的平台。
  不过LOD2 侧重于链接数据的生命周期管理,其它类型的数据需要首先转换成链接数据,并且LOD2 没有对中文处理的支持。
在这里插入图片描述

2.1.2 Stardog

  Stardog,它是一个企业级知识图谱平台,通过把数据转换成知识,使用知识图谱进行组织,对外提供查询、检索、分析服务。其主要特点为:

  • 把关系数据库映射成虚拟图
  • 支持OWL2的推理
  • 支持Gremlin

  但 Stardog 的不足之处在于仅包含对结构化数据(RDBMS、Excel等)的处理,没有针对非结构化数据的知识抽取,也没有包含知识融合功能。
在这里插入图片描述

2.2 知识建模工具

  了解语义网或知识工程的筒子应该都使用过或者听过Protégé,它是由斯坦福大学开发的一个本体编辑器软件,基于RDF(S),OWL等语义网规范,并且还提供图形化界面以及在线版本(WebProtégé)。
在这里插入图片描述

2.3 知识抽取工具

2.3.1 D2R

  D2RQ是一个将关系数据库转换为虚拟的RDF数据库的平台(许久没有更新了),主要包括三个模块

  • D2R Server,HTTP Server,提供对 RDF数据的查询访问接口,以供上层的 RDF 浏览器、SPARQL查询客户端以及传统的 HTML 浏览器调用;
  • D2RQ Engine:利用一个可定制的 D2RQ Mapping 文件将关系型数据库中的数据换成 RDF 格式;
  • D2RQ Mapping Language:定义将关系型数据转换成 RDF 格式的 Mapping 规则。

  D2RQ的主体架构如下:

在这里插入图片描述
  D2RQ是直接将关系型数据库转换成RDF的,因此难以与知识建模结果对应,同样也难以同其他知识进行融合,在新数据的增量映射以及海量数据映射时会出现问题.

2.3.2 包装器

  半结构化行业数据源解析一般采用包装器的方式,由于这些行业的数据源网站大多通过模板生成。包装器可以自动进行学习,但为了保证准确度,我们通常会使用人机结合的方法。
  在行业数据源解析实践中,由于网站的高度可变性,因此目前尚没有统一的包装器工具,所以在实际应用中,通常针对不同结构的数据配置相应的包装器,完成数据的解析。
  包装器这一块内容,笔者也了解不多,有需要的筒子请自行google

2.3.3 文本信息抽取

  行业知识图谱构建过程中文本信息抽取的任务非常多,这里主要讨论实体识别、概念抽取、关系抽取以及事件抽取。
  信息抽取的方法主要有CloseIE和OpenIE两类
  (1) OpenIE

  • 面向开放领域抽取信息
  • 关系类型实现未知
  • 基于语言学模式进行抽取
  • 规模大
  • 精度低

  (2) CloseIE

  • 面向特定领域抽取信息
  • 预先定义关系类型
  • 基于领域专业知识抽取
  • 规模相对小
  • 精度相对高
      OpenIE 的典型代表工具有 ReVerb、TextRunner。由于OpenIE 工具准确率比较低,会增加知识融合的难度,因此在行业知识图谱构建中实用性不高。通常被用于做第一轮的信息抽取探索,从它的结果中发现新的关系,然后在此基础上应用其它的信息抽取方法。
      CloseIE的典型工具为DeepDive(因子图关系抽取)。
      Deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统。它通过弱监督学习,从非结构化的文本中抽取结构化的关系数据,核心关键点是能够在更短的时间内提供更高质量的数据。
    其基于联合推理的算法,让用户只需要关心特征本身,要求用户思考特征而不是算法,而其他机器学习系统则要求开发者思考聚类算法、分类算法的使用等;同时DeepDive允许用户使用简单的规则来影响学习过程以提升结果的质量,也会根据用户反馈来提高预测的准确度;DeepDive使用机器学习算法训练系统来减少各种形式的噪音和不确定性,并为每一个决断进行复杂的可能性计算。
      下图为Deep Dive进行关系抽取的基本过程,首先指定抽取任务;其次进行中文分词、命名实体识别;再进行实体定位;生成候选实体关系对;接着使用DDlib为候选词和候选关系自动生成特征;加载标注的数据源;然后基于规则的远程监督自动标注;模型训练;最终输出结果。
    在这里插入图片描述

2.3.4 知识融合工具

2.3.4.1 Falcon-AO

  Falcon-AO主要应用于本体对于,是一个自动的本体匹配系统,是RDF(S)和OWL表达的Web本体匹配的一种选择
在这里插入图片描述
  [此处使用了四种匹配算法,V-Doc算法基于虚拟文档的语言学匹配,将实体及其周围的实体、文本等信息作为一个集合形成虚拟文档,然后可以使用如TF-IDF等算法进行操作。I-Sub算法是基于编辑距离的字符串匹配。GMO算法是基于本体RDF图结构的匹配。PMO算法是基于分而治之的大本体匹配。

2.3.4.2 Dedupe

A python library for accurate and scaleable fuzzy matching, record
deduplication and entity-resolution

  Dedupe是一个用于模糊匹配,记录去重和实体链接的python库
  具体来说,dedupe是一个用于fuzzy matching, record deduplication 和 entity-resolution的python库。它基于active learing的方法,只需用户标注它在计算过程选择的少量数据,即可有效地训练出复合的blocking方法和record间相似性的计算方法,并通过聚类完成匹配。dedupe支持多种灵活的数据类型和自定义类型。

  • dedupe 论文:http://www.cs.utexas.edu/~ml/papers/marlin-dissertation-06.pdf
  • dedupe 源码:https://github.com/dedupeio/dedupe
  • dedupe demo: https://github.com/dedupeio/dedupe-examples
  • dedupe 中文网站:http://www.openkg.cn/tool/dedupe
  • dedupe 官方网站:https://docs.dedupe.io/en/latest/
  • dedupe API说明:https://dedupe.readthedocs.io/en/latest/API-documentation.html
2.3.4.3 Limes

  Limes是一个基于度量空间的实体匹配发现框架,适合于大规模数据链接,编程语言是Java。其整体框架如下
在这里插入图片描述
  整体流程如下
  给定源数据集S,目标数据集T,阈值θ

  1. 样本选取:从T中选取样本点E来代表T中的数据
  2. 过滤:计算s ∈ S与e∈E之间的距离m(s,e),利用三角不等式进行过滤
  3. 相似度计算:同上
  4. 序列化:存储为用户指定的格式
2.3.4.3 Silk

  Silk是一个集成异构数据源的开源框架。编程语言为python
在这里插入图片描述

  • 预处理: 会将索引的结果排名前N的记录下来进行作为候选对,进行下一步更精准的匹配 (损失精度)。
  • 相似度计算: 里面包含了很多相似度计算的方法。
  • 过滤: 过滤掉相似度小于给定阈值的记录对

在这里插入图片描述

2.3.5 知识计算(本体推理)工具

2.3.5.1 基于Tableau运算方法的工具

  (1) FaCT++
  曼彻斯特大学开发的描述逻辑推理机,使用C++实现,并且能与Protege集,Java版名称为Jfact,基于OWL API实现。
在这里插入图片描述
  (2) Racer
  美国Franz Inc. 公司开发的以描述逻辑为基础的本体推理,也可以用作语义知识库,支持OWL DL,支持部分OWL 2 DL,支持单机和客户端/服务器两种模式,用Allegro Common Lisp实现

在这里插入图片描述
  (3)Pellet
  马里兰大学开发的本体推理机,支持OWL DL的所有题型,包括枚举类和XML数据类型的推理
支持OWL API及Jena的接口
在这里插入图片描述
  (4)Hermit
  牛津大学开发的本体推理机,基于hypertableau运算,更加高效,支持OWL 2规则
在这里插入图片描述
对四个工具进行一个总结对比,如下表所示

工具名称支持本体语言编程语言算法
FaCT++OWL DLC++tableau-based
RacerOWL DLCommon Lisptableau-based
PelletOWL DLJavatableau-based
HermitOWL 2 ProfilesJavahypertableau
2.3.5.2 基于逻辑编程改写(Datalog语言)方法的工具

  (1) KAON2
   OWL推理机、本体管理API,基于一阶消解原理,针对大规模ABox进行优化

在这里插入图片描述
  (2) RDFox
  由牛津大学开发的可扩展、跨平台、基于内存的RDF三元组存储系统,基于Datalog推理,SPARQL查询
在这里插入图片描述
  两个工具的对比总结如下:

工具名称支持本体语言编程语言支持编程语言
KAON2OWL DLJavaJava
RDFoxOWL 2 RLC++Java/C++/Python
2.3.5.3 基于产生式规则方法的工具

  (1) Drools
  商用规则管理系统,其中提供了一个规则推理引擎,核心算法基于RETE算法改进,提供规则定于语言,支持嵌入Java代码
在这里插入图片描述
  (2) Jena
  用于构建语义网应用的Java框架,提供了处理RDF、RDFS、OWL数据的接口,还提供了一个规则引擎,提供三元组的内存存储查询
在这里插入图片描述
  (3) RDF4J
  一个处理RDF数据的开源框架,支持语义数据的解析、存储、推理和查询,能够关联几乎所有的RDF系统,能够用于访问远程RDF存储
在这里插入图片描述

3. 参考文献

[1] CCKS-2017行业知识图谱构建与应用
[2] 知识图谱方法、实践与应用

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值