知识图谱并不是一个全新的概念,早在 2006 年就有文献提出了语义网(Semantic Network)的概念,呼吁推广、完善使用本体模型来形式化表达数据中的隐含语义,RDF(resource description framework,资源描述框架)模式和 OWL(Web ontology language,万维网本体语言)就是基于上述目的产生的。

本文内容列表

  1. 什么是知识图谱(KG)?
  2. 为什么KG?
  3. KG怎么用?
  4. 开源KG整理
  5. 创建自定义KG
  6. KG Ontology
  7. KG存储(数据库)
  8. 从KG查询事实

什么是知识图谱?

为了更好地理解知识图谱,让我们从理解它的基本单元开始,即“事实”。事实是可以存储在 KG 中的最基本的信息。事实可以以任何一种方式以三元组的形式表示,

  • HRT:<头部,关系,尾部>
  • SPO:<主语、谓语、宾语>

上述表示只是为了命名,因此您可能会遇到人们以任何方式提及该事实。让我们遵循本文的 HRT 表示。无论哪种方式,事实都包含 3 个元素(因此事实也称为三元组),可以帮助将 KG 直观地表示为图形,

  • 头或尾:这些实体是现实世界的对象或抽象概念,表示为节点
  • 关系:这些是表示为边的实体之间的连接

下面显示了一个简单的 KG 示例。事实的一个例子可能是 <BoB, is_interested_in, The_Mona_Lisa>。您可以看到 KG 只不过是多个此类事实的集合。

KG中存储的事实的数据类型没有限制。 如上例所示,我们有人(Bob、Alice、…)、绘画(蒙娜丽莎)、日期等,表示为 KG 中的节点。

为什么需要知识图谱?

这是任何人在介绍 KG 时都会问的第一个也是有效的问题。我们将尝试通过一些点来比较 KG 与普通图,甚至其他存储信息的方式。目的是突出使用 KG 的主要优势。

与普通图相比

  1. 异构数据:支持不同类型的实体(人物、日期、绘画等)和关系(喜欢、出生等)。
  2. 模拟真实世界的信息:更接近我们大脑对世界的心理模型(像正常人一样代表信息)
  3. 执行逻辑推理:沿路径遍历图以建立逻辑连接(A 的父亲是 B,B 的父亲是 C,因此 C 是 A 的祖父)

与其他存储类型相比

  1. 结构化表示:与文本数据等非结构化表示相去甚远
  2. 去除冗余:与表格数据相比,不需要添加大部分为空的列或行来添加新数据(一些事实)
  3. 查询复杂信息:对于关系比单个数据点更重要的数据,比 SQL 更好(例如,如果您必须在 SQL 查询中执行大量 JOIN 语句,这本身就很慢)

怎么用知识图谱?

知识图谱可用于大量任务——无论是用于逻辑推理、可解释的建议、复杂的分析,还是只是作为一种更好的信息存储方式。 我们将简要讨论两个非常有趣的例子。

谷歌知识面板

在向 Google 查询名人、地点或概念时,它会在右侧返回一个知识面板。 该面板包含各种各样的信息(描述、教育、出生、死亡、引用等),有趣的是,以不同的格式(文本、图像、日期、数字等)。所有这些信息都可以存储在一个 KG 中,下面显示了一个这样的例子。 这展示了存储信息是多么容易,并且还注意到从 KG 读取和理解事实是多么直观。 实际上,Google 以 KG 为基础来存储此类信息。

推荐系统

经典算法考虑用户-产品交互来生成推荐。随着时间的推移,新创建的算法开始考虑有关用户和产品的附加信息以改进推荐。

下面,我们可以看到一个 KG(电影 KG),它不仅包含用户-产品连接(这里是人-电影),还包含用户-用户交互和项目属性。我们的想法是,提供所有这些附加信息,我们可以提出更准确、更明智的建议。在不深入研究确切算法的情况下,让我们对可以生成的推荐进行合理化。

“阿凡达”可以推荐给:

  1. Bob:因为它与星际和盗梦空间一样属于科幻类型(鲍勃已经看过了)
  2. Alice:由詹姆斯卡梅隆(泰坦尼克号)执导

“血钻”可以推荐给:

  1. Bob:因为迪卡普里奥也在《盗梦空间》中扮演过角色

这个简单的思考练习应该展示如何使用 KG 以事实的形式轻松表示许多现实世界的交互。然后我们可以将基于 KG 的算法用于下游用例,例如生成推荐。

知识图谱的应用实践

在本节中,我们将从从业者的角度来看 KG。 我们将介绍一些开源且随时可用的 KG。 在某些情况下,我们甚至可能想要创建自己的 KG,因此我们将讨论一些指针 w.r.t. 它也是。 然后我们将通过讨论KG本体来快速了解KG可以构建的一些规则和方式。 最后,我们将讨论 KG 托管数据库,并学习如何查询(从中获取事实)KG。

开源知识图谱

虽然有几个小型且特定领域的 KG,但另一方面,我们也有许多大型且与领域无关的 KG,其中包含所有类型和形式的事实。一些著名的开源产品如下:

DBpedia:是一项基于众包社区的努力,旨在从各种维基媒体项目中存在的信息中提取结构化内容。

Freebase:一个庞大的、协作编辑的交叉链接数据数据库。被誉为“世界知识的公开共享数据库”。它被谷歌收购,用于为自己的 KG 提供内容,所以2015年就停止了。

OpenCyc:是通往 Cyc 全部功能的门户,Cyc 是世界上最完整的通用知识库和常识推理引擎之一。

Wikidata:是一个免费的、协作的、多语言的数据库,收集结构化数据,为维基媒体项目提供支持。

YAGO:庞大的语义知识库,源自维基百科、WordNet 和 GeoNames。

创建自定义知识图

尽管有几个开源 KG,但我们可能需要为我们的用例创建特定于领域的 KG。在那里,我们的基础数据(我们要从中创建 KG)可以是多种类型——表格、图形或文本 blob。我们将介绍如何从文本等非结构化数据创建 KG 的一些步骤,因为使用最少的领域知识和脚本将结构化数据转换为 KG 相对容易。整个过程可以分为两步:

事实创建:这是我们解析文本(逐句)并以三元组格式(如 <H、R、T>)提取事实的第一步。在处理文本时,我们可以利用标记化、词干提取或词形还原等预处理步骤来清理文本。接下来,我们要从文本中提取实体和关系(事实)。对于实体,我们可以使用命名实体识别 (NER) 算法。对于关系,我们可以使用句子依赖解析技术来找到任何实体对之间的关系。

事实选择:一旦我们提取了几个事实,下一个明显的步骤可能是删除重复项并确定可以添加到 KG 的相关事实。为了识别重复项,我们可以使用实体和关系消歧技术。这个想法是在重复的情况下合并相同的事实或事实的元素。例如,“Albert Einstein”也可以写成“Albert E.”。或“A. Einstein”在文本中,但实际上,它们都指的是同一个实体。最后,我们可以有一个全面的基于规则的系统,该系统根据冗余信息等因素决定应该将哪个三元组添加到 KG 或者可以跳过哪个三元组(A → 兄弟 → B 存在,因此 B → 兄弟→ A 是多余的)或不相关的信息。

知识图谱本体(Ontology

这里我个人感觉Ontology应该翻译成才存在,它是哲学的分支,研究客观事物存在的本质。但是一般都会国内一般将其译为“本体”,所以这里面就按照一般翻译来了。

本体是世界的模型(实际上只是一个子集),列出了实体的类型、连接它们的关系以及对实体和关系组合方式的限制。 在某种程度上,本体定义了实体在世界中如何连接的规则。

资源描述框架 (RDF) 和 Web 本体语言 (OWL) 是用于建模本体的一些词汇框架。 它们提供了一个表达这些信息的通用框架,因此它可以在应用程序之间交换而不会失去意义。

RDF 提供了用于创建本体的语言,我们将使用它来创建示例 KG。 在下面,您可以看到 KG 创建脚本和用 Turtle 语言描述KG。 请注意,在脚本的顶部,我们正在创建对许多预定义本体的引用,因为无需重新发明轮子。 接下来,要创建我们的 KG 的事实(或三元组),我们可以按照 PREFIX 命令下面的行进行操作。

每个实体和关系都有一个唯一标识符(它们的唯一键或 UID)。 在整个代码中,相同的实体或关系应该由相同的 UID 引用。 接下来,使用预定义的模式,我们可以为实体添加事实(在图形方面,将连接边和尾节点添加到头节点)。 这些事实可能包括另一个实体(通过其 UID 引用)、一些文本、日期(以 DateTime 格式)、链接等。

最后,一旦我们准备好脚本(带有 ttl 扩展名——用于 Turtle 语言的脚本),该脚本包含我们的 KG 的完整模式和定义。 就其本身而言,这可能并不有趣,因此可以将文件导入任何 KG 数据库,以实现美观的可视化和高效的查询。

知识图的存储

有两种类型的数据库可用于存储图形信息。 第一个是“属性图”,如 Neo4j 和 OrientDB,它们不支持 RDF 文件(开箱即用)并且有自己的自定义查询语言。 另一方面,我们有“RDF 三元组存储”,它支持 RDF 文件并支持查询语言,如普遍用于查询 KG 的 SPARQL。 一些最著名的是(带有开源版本),

GraphDB:Ontotext 的解决方案,提供前端(可视化)和后端(服务器)服务来查看和查询托管知识图谱。

Virtuoso:OpenLinkSoftware 的一个解决方案,提供后端服务来查询托管的 KG。 它还支持使用 SQL 和 SPARQL 的组合查询 KG。 最重要的是,很多像 DBpedia 这样的开源 KG 都托管在 Virtuoso 上。

查询知识图谱

一旦事实被创建为 RDF 并托管在像 Virtuoso 这样的 RDF 三元组存储上,我们就可以查询它们以提取相关信息。 SPARQL 是一种 RDF 查询语言,能够检索和操作以 RDF 格式存储的数据。

大多数 RDF 三元组存储提供可视化的 SPARQL 查询页面来获取相关信息。对于我们的案例,让我们使用wikidata公开的一个这样的可视化查询助手(如下所示)。显示了一个示例查询,其中我们想要提取所有属于家猫实例的实体(我们只想要一些猫

知识图谱指南:从理论到应用相关推荐

  1. IEEE P2807.4《科技知识图谱指南》标准启动会成功召开

    2021年7月23日,IEEE P2807.4<科技知识图谱指南>(Guide for Scientific Knowledge Graphs)标准启动会成功在北京召开.该标准项目由北京智 ...

  2. 知识图谱认知智能理论与实战----------第二章 知识图谱模式设计

    文章目录 一. 知识图谱模式 二. 模式与本体 三. 本体概论 I. 模式与本体辨析 II.本体的构成要素 III.实体分类 IV.实体分类 四. 六韬法 I. 场景 II. 复用 III. 事物 I ...

  3. 知识图谱——经典知识表示理论

    一.知识表示概述 1 知识表示是一种代理:客观事物的机器标识(每个客观事物有统一的机器标识),就是有个名字: 2 知识表示是一组本体论约定的集合: 通过对认知的事物进行抽象建立起有关万事万物的抽象概念 ...

  4. 知识图谱认知智能理论与实战----------第一章 知识图谱概述

    文章目录 一. 什么是知识图谱 二. DIKW模型 三. 知识图谱技术体系 四. 知识图谱辨析 I. 知识图谱与自然语言处理 II. 知识图谱与图数据库 III. 知识图谱与语义网络 IV. 知识图谱 ...

  5. 知识图谱-现代知识表示理论

    目录 一.语义网表示法 1.1 语义网概述 1.2 资源描述框架RDF 1.3 本体语言OWL 1.4 规则与推理 二.知识图谱中的知识表示 2.1 DBpedia知识表示 2.2 Wikidata ...

  6. 网络安全知识图谱构建《理论篇》

    文章目录 问题 观点 安全知识图谱 安全知识图谱技术流程 数据来源 漏洞数据库 安全博客 黑客论坛 安全公告 本体设计 信息抽取 实体抽取 关系抽取 知识推理层 安全知识图谱应用举例 网络安全对策知识 ...

  7. NLP复习资料(8)-知识图谱、信息抽取

    NLP复习资料 第16讲-知识图谱 第17讲-信息抽取(知识图谱生命周期中信息获取的关键技术) 国科大,宗老师<自然语言处理>课程复习笔记,个人整理,仅供参考. 第16讲-知识图谱 知识图 ...

  8. 文献阅读:知识图谱数据管理研究综述

    目前,知识图谱数据管理的理论.方法.技术与系统处于快速发展和开发完善阶段.数据库学术和产业界对知识图谱数据管理研发投入正在不断增加.本节将未来的研究方向归纳如下. (1)  知识图谱数据模型与查询语言 ...

  9. 研讨会 | “人工智能与行业知识图谱技术实战”研讨会

    人工智能时代 2017年7月,国务院<新一代人工智能发展规划>明确提出"建立新一代人工智能关键共性技术体系"的重点任务和设立"新一代人工智能重大科技项目以及& ...

最新文章

  1. 打印速度快点的打印机_佳能和爱普生打印机哪个好 高性价比打印机介绍【详解】...
  2. mysql分库一个库和多个库_数据库分库后不同库之间的关联
  3. 西南大学计算机英语统考时间,西南大学2018年9月全国计算机等级考试报名通知...
  4. PIE SDK点元素的绘制
  5. 闲谈网络运维管理的那些事儿(之三)
  6. [Kali][VMware][2020][窗口大小][分辨率]高分辨率自适应
  7. html5 中keygen用法,HTML5: keygen 标签
  8. 非常简单,让log4j输出mybatis的sql语句和执行结果
  9. 什么是AsHelper
  10. sysmon安装报错“error getting the evt dll (wevtapi.dll): 87”解决办法
  11. Android打地鼠游戏案例
  12. Python 常用迭代函数总结
  13. (3年工作经验)天天下班刷抖音,不如亲自跑去抖音瞧一瞧!
  14. iOS之 2020年最新苹果移动设备屏幕的大小和系统
  15. 怎么调用接口发国际验证码和通知短信?
  16. jQuery从入门到进阶视频教程-汤小洋-专题视频课程
  17. 宝贝怎么查询历史价格?有何意义?
  18. 百度离线地图示例之二:测距
  19. Ubuntu 16.04 MongoDB数据库备份与恢复
  20. maven-surefire-plugin

热门文章

  1. java毕业设计房产交易系统Mybatis+系统+数据库+调试部署
  2. Structured Streaming系列-5、物联网设备数据分析
  3. 32位服务器系统安装教程,服务器系统数据库安装教程
  4. Python 比较日期字符串与当前日期的日期差
  5. PhpMyWind储存型XSS漏洞练习(CVE-2017-12984)
  6. Numpy 中的矩阵向量乘法
  7. QuerySet浅尝
  8. PHP数组关于数字键名的问题
  9. 【OpenCV C++】照片换底
  10. 短信验证-1基本的服务器环境搭建