知识图谱简介

news/2024/5/20 20:39:24/文章来源:https://blog.csdn.net/kuxingseng123/article/details/128942069

知识图谱简介

知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过知识图谱能够将Web上的信息**、数据以及链接关系聚集为知识,使信息资源更易于计算、理解以及评价,并能实现知识的快速响应和推理**。

广泛应用于各个领域

当下知识图谱已在工业领域得到了广泛应用,如搜索领域的Google搜索、百度搜索,社交领域的领英经济图谱,企业信息领域的天眼查企业图谱,电商领域的淘宝商品图谱,O2O领域的美团知识大脑,医疗领域的丁香园知识图谱,以及工业制造业知识图谱等。
在这里插入图片描述
在知识图谱技术发展初期,很多企业和科研机构会采用自顶向下的方式构建基础知识库,如 Freebase。随着自动知识抽取与加工技术的不断成熟,当前的知识图谱大多采用自底向上的方式构建,如 Google 的 Knowledge Vault 和微软的 Satori 知识库。

构建技术分类

知识图谱的构建技术主要有自顶向下和自底向上两种。

自顶向下构建:借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里。

自底向上构建:借助一定的技术手段,从公开采集的数据中提取出资源模式,选择其中置信度较高的信息,加入到知识库中。

在这里插入图片描述

实体-关系-实体三元组

下图是典型的知识图谱样例示意图。可以看到,“图谱”中有很多节点,如果两个节点之间存在关系,他们就会被一条无向边连接在一起,这个节点我们称为实体(Entity),节点之间的这条边,我们称为关系(Relationship)。
在这里插入图片描述
知识图谱的基本单位,就是“实体(Entity)-关系(Relationship)-实体(Entity)” 构成的三元组,这也是知识图谱的核心。

数据类型和存储方式

知识图谱的原始数据类型一般来说有三类(也是互联网上的三类原始数据):
在这里插入图片描述
在这里插入图片描述

典型的半结构数据库样例如下:

在这里插入图片描述

如何存储上面这三类数据库

一般有两种选择:可以通过 RDF(资源描述框架)这样的规范存储格式来进行存储,比较常用的有 Jena等。

<RDF><Description about="https://www.w3.org/RDF/"><author>HanXinzi</author><homepage> http://www.showmeai.tech </homepage></Description>
</RDF>

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

在这里插入图片描述
截止目前为止,看起来知识图谱主要是一堆三元组,那用关系数据库来存储可以吗?

对,从技术上来说,用关系数据库来存储知识图谱(尤其是简单结构的知识图谱),是完全没问题的。但一旦知识图谱变复杂,用传统的「关系数据存储」,查询效率会显著低于「图数据库」。在一些涉及到2,3度的关联查询场景,图数据库能把查询效率提升几千倍甚至几百万倍。

而且基于图的存储在设计上会非常灵活,一般只需要局部的改动即可。当你的场景数据规模较大的时候,建议直接用图数据库来进行存储。

知识图谱的架构

逻辑架构

技术架构

在这里插入图片描述

逻辑架构

在逻辑上,我们通常将知识图谱划分为两个层次**:数据层和模式层**。

模式层:在数据层之上,是知识图谱的核心,存储经过提炼的知识,通常通过本体库来管理这一层(本体库可以理解为面向对象里的“类”这样一个概念,本体库就储存着知识图谱的类)。
数据层:存储真实的数据
在这里插入图片描述

技术架构

在这里插入图片描述

构建技术

前面的内容说到了,知识图谱有自顶向下和自底向上两种构建方式,这里提到的构建技术主要是自底向上的构建技术

如前所述,构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含三个阶段:

信息抽取:从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达。
知识融合:在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等。
知识加工:对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量。
在这里插入图片描述

知识抽取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关系抽取

在这里插入图片描述
在这里插入图片描述
研究历史:
人工构造语法和语义规则(模式匹配)。
◉ 统计机器学习方法。
◉ 基于特征向量或核函数的有监督学习方法。
◉ 研究重点转向半监督和无监督。
◉ 开始研究面向开放域的信息抽取方法。
◉ 将面向开放域的信息抽取方法和面向封闭领域的传统方法结合。

属性抽取

属性抽取的目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息
在这里插入图片描述
研究历史:
◉ 将实体的属性视作实体与属性值之间的一种名词性关系,将属性抽取任务转化为关系抽取任务。
◉ 基于规则和启发式算法,抽取结构化数据。
◉ 基于百科类网站的半结构化数据,通过自动抽取生成训练语料,用于训练实体属性标注模型,然后将其应用于对非结构化数据的实体属性抽取。
◉ 采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。

知识融合

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

也就是说**,拼图碎片(信息)之间的关系是扁平化的,缺乏层次性和逻辑性;拼图(知识)中还存在大量冗杂和错误的拼图碎片(信息)。那么如何解决这一问题,就是在知识融合这一步里我们需要做的了。
在这里插入图片描述
知识融合包括2部分内容
:实体链接、知识合并**。

实体连接

实体链接(entity linking)是指对于从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。其基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象
在这里插入图片描述
研究历史:
◉ 仅关注如何将从文本中抽取到的实体链接到知识库中,忽视了位于同一文档的实体间存在的语义联系
◉ 开始关注利用实体的共现关系,同时将多个实体链接到知识库中。即集成实体链接(collective entity linking)。

实体链接流程:

在这里插入图片描述
◉ 实体消歧:是专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接,实体消歧主要采用聚类法。其实也可以看做基于上下文的分类问题,类似于词性消歧和词义消歧
◉ 共指消解:主要用于解决多个指称对应同一实体对象的问题。在一次会话中,多个指称可能指向的是同一实体对象。利用共指消解技术,可以将这些指称项关联(合并)到正确的实体对象,由于该问题在信息检索和自然语言处理等领域具有特殊的重要性,吸引了大量的研究努力。共指消解还有一些其他的名字,比如对象对齐、实体匹配和实体同义

知识融合

在前面的实体链接中,我们已经将实体链接到知识库中对应的正确实体对象那里去了,但需要注意的是,实体链接链接的是我们从半结构化数据和非结构化数据那里通过信息抽取提取出来的数据。

那么除了半结构化数据和非结构化数据以外,我们还有个更方便的数据来源———结构化数据,如外部知识库和关系数据库。对于这部分结构化数据的处理,就是我们知识融合的内容啦。

一般来说知识融合主要分为两种:合并外部知识库,主要处理数据层和模式层的冲突;合并关系数据库,有RDB2RDF等方法。
在这里插入图片描述

知识加工

经过刚才那一系列步骤,我们终于走到了知识加工这一步了!在前面,我们已经通过信息抽取,从原始语料中提取出了实体、关系与属性等知识要素,并且经过知识融合,消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。

然而事实本身并不等于知识。要想最终获得结构化,网络化的知识体系,还需要经历知识加工的过程。知识加工主要包括3方面内容:本体抽取、知识推理和质量评估。
在这里插入图片描述

本体抽取

本体(ontology)是指工人的概念集合、概念框架,如“人”、“事”、“物”等。本体可以采用人工编辑的方式手动构建(借助本体编辑软件),也可以以数据驱动的自动化方式构建本体。因为人工方式工作量巨大,且很难找到符合要求的专家,因此当前主流的全局本体库产品,都是从一些面向特定领域的现有本体库出发,采用自动构建技术逐步扩展得到的

自动化本体构建过程包含三个阶段: 实体并列关系相似度计算 → 实体上下位关系抽取 → 本体的生成
在这里插入图片描述
在这里插入图片描述

知识推理

在我们完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,我们就可以使用知识推理技术,去完成进一步的知识发现
在这里插入图片描述
当然知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。

推理属性值:已知某实体的生日属性,可以通过推理得到该实体的年龄属性;
推理概念:已知(老虎,科,猫科)和(猫科,目,食肉目)可以推出(老虎,目,食肉目)
这一块的算法主要可以分为3大类:基于知识表达的关系推理技术;基于概率图模型的关系推理技术路线示意图;基于深度学习的关系推理技术路线示意图。

基于知识表达的关系推理技术

基于概率图模型的关系推理

基于深度学习的关系推理技术

在这里插入图片描述

质量评估

质量评估也是知识库构建技术的重要组成部分,这一部分存在的意义在于:可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量。

知识更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

慢慢的将知识图谱进行入门,并将其全部都搞定都行啦的回事与打算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_255428.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Keil中代码的颜色设置 ( 很 全 )[通俗易懂](转载)

https://cloud.tencent.com/developer/article/2081534Keil中代码的颜色设置 ( 很 全 )[通俗易懂]发布于2022-08-25 12:26:13阅读 1.8K0大家好&#xff0c;又见面了&#xff0c;我是你们的朋友全栈君。因为长时间要编程&#xff0c;对于keil上的黑字白底&#xff0c;如果看久了…

Python实现的通讯录

"为何表情&#xff0c;要让这世界安排&#xff1f;"诶&#xff0c;我们也对python的一些基础语法有了一定能的了解了。并且在这基础上&#xff0c;学习了python中的文件操作&#xff0c;那么有了这些东西以后啊&#xff0c;我们能做什么呢&#xff1f;或许对很多数据…

揭秘PPTC(自恢复保险丝)的四大使用原则

PPTC自恢复保险丝有贴片式以及插件式两种&#xff0c;封装形式多样&#xff0c;型号齐全&#xff0c;那么&#xff0c;在使用过程中&#xff0c;应该要注意什么&#xff1f;你知道吗&#xff1f;接下来&#xff0c;优恩小编将为你揭秘PPTC(自恢复保险丝)的四大使用原则。一、规…

Spring boot项目开发实战一(环境搭建)

技术栈选型 最近在实习好久没时间做过项目了&#xff0c;本次将借用公司的技术完成一个基于spring boot的实战项目&#xff0c;同时也巩固spring的相关知识。项目大体是一个后台管理系统&#xff0c;没有前台&#xff0c;用于数据分析和可视化。如下是初步的可视化界面&#x…

MySQL8.0 集群搭建

文章目录环境准备安装 MySQL 8.0配置主服务配置从服务器主从复制&#xff1a;即主服务器上的所有操作&#xff08;创建库&#xff0c;修改表等&#xff09;会被同步到从服务器上&#xff0c;但是在从服务器上的操作不会进入到主服务器中 环境准备 两台服务器&#xff0c;一主…

【Classical Network】Xception

文章目录深度可分离卷积Inception发展GoogleNetInception Networkinception V1inception V2inception V3inception V4Xception参考文章 经典卷积架构的PyTorch实现&#xff1a;Xception 参考文章 卷积神经网络结构简述&#xff08;二&#xff09;Inception系列网络 github 项目…

Springboot扩展点之InstantiationAwareBeanPostProcessor

前言前面介绍了Springboot的扩展点之BeanPostProcessor&#xff0c;再来介绍另一个扩展点InstantiationAwareBeanPostProcessor就容易多了。因为InstantiationAwareBeanPostProcessor也属于Bean级的后置处理器&#xff0c;还继于BeanPostProcessor&#xff0c;因此Instantiatio…

【Spring Cloud Alibaba】(二)微服务调用组件Feign原理+实战

系列目录 【Spring Cloud Alibaba】&#xff08;一&#xff09;微服务介绍 及 Nacos注册中心实战 本文目录系列目录前言什么是RPC&#xff1f;Feign和OpenFeign都是什么&#xff1f;HTTP调用 vs Feign(RPC)调用单独使用Feign实战Feign核心源码解读Feign整体设计架构Spring Clo…

PyQt5学习 阶段一

前言&#xff1a;PyQt5介绍PyQt是基于Digia公司强大的图形程序框架Qt的Python接口&#xff0c;由一组Python模块构成&#xff0c;它是一个创建GUI应用程序的工具包&#xff0c;由Phil Thompson开发。PyQt5的基本类&#xff1a;官方提供的帮助网址&#xff1a;https://www.river…

每天10个前端小知识 【Day 8】

前端面试基础知识题 1. Javascript中如何实现函数缓存&#xff1f;函数缓存有哪些应用场景&#xff1f; 函数缓存&#xff0c;就是将函数运算过的结果进行缓存。本质上就是用空间&#xff08;缓存存储&#xff09;换时间&#xff08;计算过程&#xff09;&#xff0c; 常用于…

macbook M1 Homebrew配置导致本机的Kafka启动失效

笔者想在macbook M1上通过Homebrew安装Kafka 整体流程为&#xff1a; 安装kafka brew install kafka 启动zookeeper brew services start kafka启动kafka brew services start kafka启动provider&#xff0c;创建一个jxztest的主题 kafka-console-producer --bootstrap-server…

金仓数据库物理备份和还原

物理备份和还原 物理备份指的是将数据库中的相关物理文件转存储到指定的备份文件中&#xff0c;KES支持sys_rman、sys_basebackup、cp等多种物理备份方法。 一、物理备份类型 1、冷备 &#xff08;1&#xff09;冷备也叫文件系统级别备份。 &#xff08;2&#xff09;备份时…

3D设计师的激情吐槽 我与甲方爸爸不得不说的故事

苦逼的玉树临风的设计师们&#xff0c; 总是会熬夜加班受尽甲方爸爸的 折磨 宠爱~ 每每这一刻我都想深情地问一句&#xff0c; 设计师们&#xff0c;你们还好吗&#xff1f;今天就让我来带着你们&#xff0c; 重温这些 噩梦 温情时刻吧&#xff01; - 1 - 他&#xff0c; 那个自…

02-linux用户和权限-04-生产环境linux服务器权限控制实例

文章目录1. 权限规划1.1 root 组1.2 docker组1.3 运维组1.3.1 项目运维负责人1.3.2 高级运维人员1.3.3 初级运维人员1.4 开发组1.4.1 开发负责人1.4.1 开发人员2. 实施2.1 deploy用户2.2 创建运维组2.2 创建开发组2.4 修改sudo权限1. 权限规划 1.1 root 组 用户名&#xff1a…

linux 批量创建用户 具有root 功能,创建普通用户

很遗憾&#xff0c;linux 系统只允许有一个root 用户&#xff0c;是不能多个root 用户的。但是可以有root权限此例子创建5个linux 普通用户 &#xff0c;然后都分别都可以使用sudo 权限来使用root 权限。groupadd tempuser #创建一个用户组 名字叫&#xff1a;tempuser useradd…

微架构优劣势对比:单体应用、SOA、微服务

目前大部分的企业系统和互联网应用都是采用的Web形式提供服务能力&#xff0c;根据系统的组织和部署结构&#xff0c;软件架构的演化过程大概分成以下阶段&#xff1a;1、单体架构 2、SOA架构3、微服务架构 这也是软件架构从简单到复杂的演进过程&#xff0c;但正如业界常说的…

复试数据库篇[第2章关系数据库]

文章目录第二章 关系数据库2.1关系数据结构及形式化定义2.1.1关系2.1.2 关系模式2.2 关系操作2.2.1 基本的关系操作2.2.2 关系数据语言的分类2.3 关系的完整性2.3.1 实体完整性2.3.2 参照完整性2.3.3 用户定义的完整性2.4 关系代数2.4.1 传统的集合运算2.4.2 专门的关系运算2.5…

为什么写计算机SCI论文一定要看文献? - 易智编译EaseEditing

阅读文献的目的有两个主要目的&#xff1a;一是了解世界上本专业领域的内容和发展情况&#xff1b; 二是在了解过程中&#xff0c;产生自己的idea&#xff0c;进入这个领域。 什么是idea?怎么样产生?idea一般是在阅读文章的过程中产生的&#xff0c;给出三种比较简单产生ide…

Java IO PrintStream,PrintWrite

PrintStream 首先我们常用的静态方法System.out.print()就是一个典型的PrintStream &#xff0c;请看如下代码证明 import java.io.*; public class Main {public static void main(String[] args) throws IOException ,ClassNotFoundException{ // 得到printStreamPr…

Minecraft 1.19.2 Fabric模组开发 12.自定义鞘翅

本次我们在Fabric模组中实现一个可用于飞行的鞘翅。 1.首先参考3D动画盔甲的教程一、二步制作盔甲的模型、动画文件。 2.模型制作完成&#xff0c;接下来需要制作我们的盔甲类 在items包中新建armor包 -> armor包中新建我们的套装类DressArmorItem.java DressArmorItem.j…