知识图谱:架构

# 架构

    知识图谱的架构,包括知识图谱自身的逻辑结构以及构建知识图谱所采用的技术(体系)结构

# 逻辑结构

    知识图谱的逻辑结构分为两个层次:数据层(data)模式层(schema)

    在知识图谱的数据层,知识以事实(fact)为单位存储在图数据库。如果以『实体-关系-实体』或者『实体-属性-值』三元组作为事实的基本表达方式,则存储在图数据库中的所有数据将构成庞大的实体关系网络,形成知识的图谱。

    模式层在数据层之上,是知识图谱的核心,在模式层存储的是经过提炼的知识,通常采用本体库来管理知识图谱的模式层,借助本体库对公理、规则和约束条件的支持能力来规范实体、关系以及实体的类型和属性等对象之间的联系。本体库在知识图谱中的地位相当于知识库的模具,拥有本体库的知识库冗余知识较少

知识图谱:架构_第1张图片

# 技术架构

    知识图谱的技术架构也被称为体系架构,是指其在构建知识图谱时选择的模式结构。

  • 数据采集信息抽取知识融合(知识合并) 知识加工知识更新

在这里插入图片描述

    知识图谱有自顶向下自底向上2 种构建方式。所谓自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库中;所谓自底向上构建,则是借助一定的技术手段,从公开采集的数据中提取出资源模式,选择其中置信度较高的新模式,经人工审核之后,加入到知识库中。

    在知识图谱技术发展初期,多数参与企业和科研机构都是采用自顶向下的方式构建基础知识库, 例如,Freebase项目就是采用维基百科作为主要数据来源。随着自动知识抽取与加工技术的不断成熟,目前的知识图谱大多采用自底向上的方式构建,其中最具影响力的例子包括谷歌的Knowledge Vault和微软的Satori知识库,都是以公开采集的海量网页数据为数据源, 通过自动抽取资源的方式来构建、丰富和完善现有的知识库。


1️⃣ 数据采集

    (1)结构化数据

​        结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。

    (2)半结构化数据

​        半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。常见的半结构数据有XML和JSON。

    (3)非结构化数据

​        数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、各类报表、图像和音频/视频信息等等。

        如何存储上面这三类数据类型呢?一般有两种选择,一个是通过RDF(资源描述框架)这样的规范存储格式来进行存储,比较常用的有Jena等。

知识图谱:架构_第2张图片

        还有一种方法,就是使用图数据库来进行存储,常用的有Neo4j等。

知识图谱:架构_第3张图片

        知识图谱的存储和查询语言也经历了历史的洗涤,从RDF到OWL以及SPARQL查询,都逐渐因为使用上的不便及高昂的成本,而被工业界主流所遗弃。图数据库逐步成为目前主要的知识图谱存储方式。[链接]

知识图谱:架构_第4张图片 RDF V.S. 图数据库


2️⃣ 信息抽取

    ​信息抽取的关键问题是如何从异构数据源中自动抽取信息得到候选知识单元,是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术(有的书上包括了结构化数据,但结构化的数据实际上实体、关系等都较为明确,所以在信息抽取时一般不考虑)。关键技术包括:实体抽取、关系抽取和属性抽取+事件抽取

    (1)实体抽取在这里插入图片描述

    (2)关系抽取

在这里插入图片描述

    (3)属性抽取

        属性抽取的目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。与(2)关系抽取比较相近,(2)强调对象属性,(3)强调数据属性。

    (4)事件抽取


3️⃣ 知识融合

    通过信息抽取,我们就从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。如果我们将接下来的过程比喻成拼图的话,那么这些信息就是拼图碎片,散乱无章,甚至还有从其他拼图里跑来的碎片、本身就是用来干扰我们拼图的错误碎片。知识融合包括两部分内容:实体链接和知识合并

    (1)实体链接

        指从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。

​        基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。

     ​  基本流程

      (1)从文本中通过实体抽取得到实体指称项

      (2)进行实体消岐共指消解

      (3)在确认知识库中对应的正确实体对象后,将该实体指称项链接到知识库中对应实体

          实体消岐(entity disambiguation)专门用于解决同名实体产生歧义问题的技术。例如“苹果”可以指水果,也可以指手机。通过实体消岐,就可以根据当前的语境,准确建立实体链接。实体消岐主要采用聚类法。聚类法消岐的常用方法有4种:1.空间向量模型(词袋模型);2.语义模型;3.社会网络模型;4.百科知识模型

          共指消解(entity resolution)主要用于解决多个指称项对应于同一实体对象的问题。例如“eason”,“陈胖子”,“陈奕迅”等指称项可能指向的是同一个实体对象。代表性的解决方法是Hobbs算法和向心理论(centering theory)

    (2)知识合并

​        在前面的实体链接中,我们已经将实体链接到知识库中对应的正确实体对象那里去了,但需要注意的是,实体链接链接的是我们从半结构化数据和非结构化数据那里通过信息抽取提取出来的数据。那么除了半结构化数据和非结构化数据以外,我们还有个更方便的数据来源——结构化数据,如外部知识库和关系数据库。

     对于这部分结构化数据的处理,就是我们知识合并的内容。

     1、合并外部知识库:例如从百度百科,维基百科等进行知识合并。该过程主要处理2个层面的问题。一是数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要问题是如何避免实例以及关系的冲突问题,造成冗余;二是通过模式层的融合,将新得到的本体融入已有的本体库中。

    2、合并关系数据库:知识图谱构建过程中,一个重要的高质量知识来源是企业或者机构自己的关系数据库。为了将这些结构化的历史数据融入到知识图谱中,可以采用资源描述框架(RDF)作为数据模型。这一过程被称为RDB2RDF,实质就是将关系数据库的数据转换成RDF的三元组数据。


4️⃣ 知识加工

​    在前面,我们已经通过信息抽取,从原始语料中提取出了实体、关系与属性等知识要素,并且经过知识融合,消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。然而事实本身并不等于知识信息是指外部的客观事实。举例:这里有一瓶水,它现在是7°。知识是对外部客观规律的归纳和总结。举例:水在零度的时候会结冰)。要想最终获得结构化,网络化的知识体系,还需要经历知识加工的过程。

​    知识加工主要包括3方面内容:本体构建、知识推理和质量评估

    1.本体(ontology)

        指工人的概念集合、概念框架,如“人”、“事”、“物”等。

​        本体可以采用人工编辑的方式手动构建(借助本体编辑软件),也可以采用计算机辅助,以数据驱动的方式自动构建, 然后采用算法评估和人工审核相结合的方式加以修正和确认。对于特定领域而言,可以采用领域专家和众包的方式人工构建本体 。然而对于跨领域的全局本体库而言,采用人工方式工作量巨大,而且很难找符合要求的专家。因此当前主流的全局本体库产品,都是从一些特定领域的现有本体库出发,采用自动构建技术逐步扩展得到的

        自动化本体构建过程包含三个阶段:实体并列关系相似度计算 → 实体上下位关系抽取 → 本体的生成

在这里插入图片描述

    2.知识推理

​        在完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,就可以使用知识推理技术,去完成进一步的知识发现。

        知识的推理方法可以分为三大类:基于逻辑的推理、基于图的推理和基于深度学习的推理。基于逻辑的推理主要包括一阶谓词逻辑、描述逻辑以及基于规则的推理。 基于图的推理方法主要是基于神经网络模型或Path Ranking算法。

知识图谱:架构_第5张图片

    3.质量评估

​        知识库构建技术的重要组成部分。受现有技术水平限制,采用开放域信息抽取技术得到的元素有可能存在错误(如实体识别错误、关系抽取错误等),需要有一个质量评估的过程。可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量


5️⃣ 知识更新

        人类所拥有的信息和知识量都是时间的单调递增函数,因此知识图谱的内容也需要与时俱进,其构建过程是一个不断迭代更新的过程。

        从逻辑上看,知识库的更新包括概念层的更新和数据层的更新

     (1)概念层的更新是指新增数据后获得了新的概念,需要自动将新的概念添加到知识库的概念层中。

     (2)数据层的更新主要是新增或更新实体、关系、属性值,对数据层进行更新需要考虑数据源的可靠性、数据的一致性(是否存在矛盾或冗杂等问题)等可靠数据源,并选择在各数据源中出现频率高的事实和属性加入知识库。

        知识图谱的内容更新有两种方式

     (1)全面更新:指以更新后的全部数据为输入,从零开始构建知识图谱。这种方法比较简单,但资源消耗大,而且需要耗费大量人力资源进行系统维护;

     (2)增量更新:以当前新增数据为输入,向现有知识图谱中添加新增知识。这种方式资源消耗小,但目前仍需要大量人工干预(定义规则等),因此实施起来十分困难。


# Thinking

  • 知识表示与知识存储

    除了上述提到的信息提取、知识融合、知识加工等,在其他资料会看到另一些概念,如知识表示、知识存储等。个人的看法是:知识表示是定义一些规则来表达知识,基于符号表示的方法通常使用的是RDF、OWL等,还有用向量表示的方法(Knowledge Graph Embedding),则知识表示应该是从数据本身出发,不视作技术架构的一部分,而是其基础。知识存储也是同样一个道理,它决定了知识运行的可行性,是后续图谱应用的基石。

    其他链接:构建知识图谱 | 小天地

知识图谱:架构_第6张图片

  • 知识挖掘

    知识挖掘是从数据集中识别出有效的、新颖的、潜在有用的以及最终可理解的模式的非平凡过程。知识挖掘的基本任务是洞察真相、因果推理和规律探寻,其本质是对目标或事件的来龙去脉、前因后果、特点规律进行建模和表现。比如:目标画像,即对目标人物和组织的真实情况、行为模式、社会关系等进行“全景成像”;事件拼图,即通过证据链拟合,按时间轴将事件发生、发展与演变的真实过程进行反演;因果推理,即揭示事件间的因果关系,包括概率因果推理、基于统计相关的预测型因果推理、从海量文本中自动获取因果规则进行因果推理、事件之间发展脉络因果链生成等;规律探寻,即通过模式识别、可视化分析等揭示潜在规律或行为模式。

# 参考

    自底向上构建知识图谱全过程

    知识图谱技术架构

    什么是知识图谱?

    知识图谱入门 (一) 知识图谱与语义技术概览


你可能感兴趣的:(知识图谱,知识图谱)