一、知识图谱简介
知识图谱,是结构化的语义知识库,主要用于描述现实世界中的实体及其相互关系,由节点和边组成。节点可以是实体,如汽车、街道等,或是抽象的概念,如AI、疾病等。边可以是实体的属性,如颜色、名字或是实体之间的关系,如朋友、配偶。如下图所示:
1.1 知识图谱的几个关键概念
本体(ontology):领域术语集合,用于定义和描述特定领域的知识,包括该领域中的实体、属性、关系及其约束。本体提供了一个结构化框架,使得知识能够以一种一致且明确的方式进行表示和处理。
类型( type):具有相同特点或属性的实体集合的抽象,如足球球员、足球联赛、足球教练。
实体(Entities):实体就是type的实例,如足球球员–梅西,足球联赛–西甲等。
类层次结构(Class Hierarchy):定义概念之间的继承关系。例如,“鸟类”是“动物”的子类,“麻雀”是“鸟类”的子类。
关系(Relations):实体与实体之间通过关系关联起来,如梅西是巴塞罗那的球员。
属性(Attributes):实体自带信息是属性,如梅西 出生日期 1987年6月24日, 身高 1.7米等。
知识图谱(Knowledge graph):图状具有关联性的知识集合。可以由三元组(实体——关系——实体)表示。
知识库(Knowledge Base):一个知识数据库,包含了知识的本体和知识,可以看成是由图数据库存储的知识库。
1.2 知识图谱的分层架构
知识图谱由数据层(data layer)和模式层(schema layer)构成。
数据层:数据层是知识图谱的基础层,负责存储和管理知识图谱中的所有原始数据。这些数据以结构化的形式存在,知识以事实(fact)为单位存储在图数据库中,通常表示为三元组,包括“实体—关系—实体”和“实体—属性—属性值”等形式。
模式层:知识图谱的核心,是知识图谱的概念模型和逻辑基础。模式层通常包括本体、类层次结构、关系类型和数据模式等元素。通过定义本体、类层次结构、关系类型和属性,模式层构建了一个系统的、结构化的知识框架,确保了数据的一致性和完整性,并支持高级应用和语义推理。
1.3 知识图谱数据类型和存储方式
知识图谱的原始数据类型一般来说有三类:
结构化数据(Structed Data),如:关系数据库、链接数据
半结构化数据(Semi-Structured Data),如:XML、JSON、百科
非结构化数据(Unstructured Data),如:文本、图片、音频、视频
知识图谱的存储方式主要分为两种:
资源描述框架(RDF):RDF是一种用于描述网络上资源及其关系的标准格式。RDF使用三元组来表示实体及其关系,比较常用的有 Jena ,Virtuoso等。RDF存储的优点在于其标准化和互操作性,可以方便地与其他语义数据进行集成。然而,对于非常复杂或大规模的数据集,查询性能可能会成为一个瓶颈。
图数据库(Graph Databases):图数据库专门为处理图结构数据而设计,使用节点和边来表示实体及其关系,具有很高的查询性能和灵活性,常用的有 Neo4j,JanusGraph等,适用于大规模和关系复杂的数据场景,具有高效的查询性能和灵活性。
1.4知识图谱构建流程
知识图谱的构建方法主要有两种:自底向上(data layer)和自顶而下(data layer)。
自底向上是从数据开始构建知识图谱的。数据驱动,能充分利用现有数据资源;可以自动地从知识图谱中抽取概念、概念层次和概念之间的关系,实体和关系的识别可以更加细致和全面。其缺点是需要大量的预处理和数据清洗工作,以及难以保证图谱的全局一致性。
构建流程:数据收集 → 数据清洗 → 实体抽取 → 关系抽取 → 模式构建 → 图谱融合。
自顶而下是从设计模式和本体开始构建知识图谱的。
构建流程:需求分析 → 本体设计 → 数据对齐 → 实例填充 → 验证和优化。
本次学习主要是自底向上的构建技术。构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含三个阶段:信息抽取、知识融合、知识加工
信息抽取:从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达。
知识融合:在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等。
知识加工:对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量。
知识抽取(infromation extraction)
知识抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术,其关键问题是:如何从异构数据源中自动抽取信息得到候选指示单元。涉及的关键技术包括:实体抽取、关系抽取和属性抽取
实体抽取:也称为命名实体识别,是指从文本数据集中自动识别出命名实体。
例如:非洲某国发生叛乱,中国海军执行撤侨任务,冷锋奉命只身闯入硝烟四起的战场。不屈不挠的战狼,与冷酷无情的敌人展开了悬殊之战。
通过实体抽取,从中抽取出四个实体:“非洲”、“中国海军”、“冷锋”、“战狼”。
关系抽取:文本语料经过实体抽取之后,得到的是一系列离散的命名实体。为了得到语义信息,还需要从相关语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成网状的知识结构。
属性抽取:从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。
知识融合(Knowledge Fusion)
通过信息抽取,从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。因此,在获得新知识之后,需要对其进行整合,以消除矛盾和歧义。知识融合包括2部分内容:实体链接、知识合并。
实体链接(entity linking):将文本中抽取得到的实体对象链接到知识库中对应的正确实体对象。其基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。
知识合并:数据来源除了半结构化数据和非结构化数据以外,还有结构化数据。对于结构化数据,知识融合主要分为两种:合并外部知识库、合并关系数据库。
知识加工(Knowledge Processing)
通过信息抽取,从原始语料中提取出了实体、关系与属性等知识要素,并且经过知识融合,消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。然而事实本身并不等于知识。要想最终获得结构化、网络化的知识体系,还需要经历知识加工的过程。知识加工主要包括3方面内容:本体抽取、知识推理和质量评估。
本体抽取:本体可以采用人工编辑的方式手动构建(借助本体编辑软件),也可以以数据驱动的自动化方式构建本体。
自动化本体构建过程包含三个阶段: 实体并列关系相似度计算 → 实体上下位关系抽取 → 本体的生成。
知识推理:经过以上步骤,知识图谱之间大多数关系仍缺失严重,则需要使用知识推理技术,去完成进一步的知识发现。
知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。
推理属性值:已知某实体的生日属性,可以通过推理得到该实体的年龄属性;
推理概念:已知(老虎,科,猫科)和(猫科,目,食肉目)可以推出(老虎,目,食肉目)
这一块的算法主要可以分为3大类:基于知识表达的关系推理技术;基于概率图模型的关系推理技术路线示意图;基于深度学习的关系推理技术路线示意图。
质量评估:对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量。
参考文章:知识图谱构建全流程