知识图谱的直观介绍:以最简单的方式了解知识图谱的基础知识
图谱无处不在——社交网络、推荐系统,甚至存在于我们大脑中概念的连接方式中。但知识图谱究竟是什么?作为开发人员,我们该如何使用它?
在本 文 中,我们将采用可视化和代码友好的方法来探索知识图谱的工作原理,从最基础的部分开始。
一 图形术语
在开始构建图之前,我们先来熟悉一些基本术语。这些概念将帮助你理解图数据的结构以及不同实体(节点)之间的关系。
1.了解图元素
图的 DNA:节点、关系和属性
2.图显示的内容
这张图是使用标记属性图 (LPG)模型的可视化表示。让我们来分解一下:
每个圆圈代表一个节点——在本例中是两个人:
一个标:Person有 name 属性"Alice"
另一个标:Person有 name 属性"Bob"
它们之间的箭头表示一种关系:
它被标记为FRIEND,显示节点之间的连接类型
箭头方向告诉我们 Alice 和 Bob 是朋友
3.关系方向
有向图:关系有方向——例如“用户 Jane 关注 用户 Joe”。
无向图:关系是双向的 - 例如“用户 Joe 是用户 Jane 的朋友 ”。
4.关系权重
无加权图:关系仅存在或不存在——没有额外的数据。
加权图:关系带有数字或分数 - 例如,“用户 Jane 喜欢 用户 Joe 的 10 个帖子”。
5.图的形状
简单图:任意两个实体之间只有一种关系;没有自链接。
多重图:允许同一实体之间存在多种关系 - 例如,同一两个用户之间 有认识 、 喜欢 和 访问的关系。
完全图:每个节点都与其他节点相连。现实生活中很少见,但对学习很有用。
6.实体(节点)的类型
单分图:所有节点都是同一类型——就像人物图一样。
二分图:两种类型的节点——例如 人和组织。 关系仅发生在这两种类型之间。
二 用文本表示图形:Cypher 基础知识
在深入研究图模型之前,了解如何用纯文本表示图会很有帮助。一种流行的方法是使用Cypher,这是一种专为处理图而设计的查询语言。如果您从未听说过 Cypher,可以将其视为 SQL 的图版本——只不过您处理的不是表,而是节点和关系。
Cypher 使用简单直观的语法,通过文本描述图形模式。它也是图查询语言 (GQL)标准的基础,该标准旨在统一跨系统查询图形数据的方式。
1.节点
语法:(:Label {propertyKey: value})
例子:(:Person {name: "Alice"})
解释:
()围绕一个节点。
:Person是标签(实体类型)。
属性进入内部{},例如{name: "Alice"}。
2.关系
语法:-[:TYPE {propertyKey: value}]->
例子:-[:FRIEND {since: 2003}]->
解释:
[]包 含关系类型。
:FRIEND描述连接的类型。
{}拥有关系属性。
箭头指示方向。
3.完整模式示例
语法: (:Person {name: "Alice"})-[:FRIEND]->(:Person {name: "Bob"})
含义: Alice 和 Bob 是朋友
并排比较
文本到图形:Cypher 实际描述的内容
三 标记属性图模型(LPG)
标记属性图 (LPG)模型是一种灵活且开发者友好的数据图表示方法。它根据节点、关系、标签和属性来构建信息,并广泛应用于 Neo4j 等图形数据库。
标记属性图由什么组成?
LPG 图包括:
节点:代表数据中的实体,如人员、组织或推文。
标签:每个节点可以有一个或多个标签来描述其角色或类别,例如Person或Company。
属性:节点和关系可以附加键值对,如name: "Alice"或since: "2021"。
关系:连接两个节点并始终具有:
一个方向
A类型(例如,FRIENDS_WITH,WORKS_FOR)
可选属性,例如since: 2020
四 第一个图示例
让我们对以下简单信息进行建模:
Alice 和 Bob 是朋友。Alice 在 Acme Corp 公司工作。
当你看这个例子时,试着问问自己:什么是节点?什么是标签?什么应该是一个属性?什么样的东西值得拥有自己的关系?
我们可以得出以下结论:
实体是谁?→ Alice、Bob、 和Acme Corp→ 这些是节点
它们是什么样的东西?→人和公司→标签
什么将他们联系在一起?→友谊和工作→人际关系
哪些细节是相关的?→ 姓名、开始日期 →属性
扩展模型:如果我们添加更多数据会怎样?
现在假设我们还想包括电话号码、社会保险号码和地址。
在许多情况下,您可能会将电话号码等内容直接存储为节点的属性Person。
但是,如果你的目标是找到拥有相同电话号码或地址的人呢?那么最好将它们建模为通过关系连接的独立节点。
建模技巧:如何确定什么是节点、属性或标签?
没有 唯一 的“正确”方法来建模图。这取决于:
你的目标
您的问题
您的领域
以下是一些可以帮助您做出决定的指导性问题:
我会经常用这个值来搜索/过滤吗?如果是,你可能需要把它设为节点或属性。
多个实体可以共享此值吗?如果可以,请考虑使用共享节点。
它是固定的类别或类型吗?如果是,使用标签可能是个好办法。
我需要关于连接的元数据吗?如果需要,你可能需要使用与属性相关的关系。
五 小结:从图基础到第一个模型
到目前为止,您已经迈出了进入知识图谱世界的第一步——了解什么是图谱、如何使用简单的术语描述它们,以及如何使用标记属性图 (LPG)方法模拟现实世界的关系。
您学习了如何:
图可以将人物、地点和概念表示为节点
关系是有方向性的,可以承载意义和数据,并将实体连接在一起。
你可以直观地描述图
最重要的是,您开始了解建模决策如何影响图可以回答的问题类型。
👣 下一步
当你前进时:
思考一下你自己的领域或数据: 实体是谁?它们之间有什么联系?
尝试在纸上绘制您自己的图 — — 包括标签、箭头和属性。
探索Neo4j、Memgraph或Kuzu等图形工具并使用示例数据集。
开始使用 Cypher 查询图,看看结构如何满足逻辑。
图并非数据科学家的专属工具,任何想要更直观地连接信息点的人都能从中受益。无论您是从事社交网络、推荐系统、客户 过 程,还是内容标记,知识图谱都能为您提供强大而灵活的连接思维方式。
本文来自微信公众号“数据驱动智能”(ID:Data_0101),作者:晓晓,36氪经授权发布。