图技术
利用neo4j、networkx、dgl、python做图分析挖掘
【1】最短路径算法dijkstra
【2】基于networkx的隐性集团关系识别模型
【3】基于Neo4j的担保社群型态分析挖掘
【4】基于python求有向无环图中target到其他节点全路径
【5】有向图中任意两点的路径
【6】图基础入门
前言
知识图谱是Google在2012年5月17日提出的,其初衷是为了提高搜索引擎的能力,改善用户的搜索质量以及搜索体验,本文针对知识图谱的基础定义进行举例说明。
一、知识图谱相关定义
1.图的定义
在数学中,图由顶点以及连接顶点的边构成。顶点表示研究的对象,边表示两个对象之间特定的关系。记为
G
=
(
V
,
E
)
G = (V, E)
G=(V,E),其中
V
V
V是顶点集合,
E
E
E是边集。【参考:图基础入门】
2.知识图谱的定义
图上的节点、边具有了实际的含义,就得到了一张图谱,图一展示了投资相关的金融图谱,节点上的数值指客户号,边上的数值指投资比例。
图一:投资图谱 |
---|
知识图谱是描述现实世界中存在的各种实体或概念及其关系,构成一张巨大的语义网络图,节点表示实体或概念,边则由属性或关系构成。知识图谱的构建包括知识抽取、知识融合,知识一般存储在图数据库中,知识图谱的应用包括知识展示、知识分析挖掘等。知识图谱源于人工智能学派的符号主义。图灵奖获得者、知识工程创始人Edward Feigenbaum曾说过:知识图谱是人工智能的基石。
表一:人工智能学派分为三大派
学派 |
内容 |
符号主义(Symbolism) |
侧重于模拟人的心智,研究怎样用计算机符号表示人脑中的知识并模拟心智的推理过程,知识图谱源于符号主义
|
连接主义(Connectionism |
侧重于模拟人脑的生理结构,神经网络及神经网络间的连接机制与学习算法->深度学习 |
行为主义(Actionism) |
原理为控制论及感知-动作型控制系统,模拟人在控制过程中的智能行为和作用,如自寻优、自适应、自镇定、自组织和自学习等 |
3.图谱构成过程
- 知识抽取是指将结构化、非结构化的数据,抽取成实体、关系、实体三元组的形式,对于非结构化的数据抽取会用到自然语言处理;
- 知识融合是指将不同数据源的数据整合,主键统一;
- 知识存储将已有知识以图数据库的方式予以存储,并建立动态更新和动态扫描机制;
- 知识展示是指把储存好的图数据以谱的形式进行可视化展示;
- 知识分析是指通过图计算,挖掘和发现经验规则难以发现的知识,包括路径发现、点分类、边预测、子图研究、图表示、图特征。
4.知识融合、知识抽取融合
关系数据库中的表、行、数据对应于知识图谱中的图、节点与关系、属性。表二至表三的过程称为实体、关系抽取,表三至图二的过程涉及知识存储。知识融合是指不同数据源抽取的实体、关系的融合;出现图三这种情况的原因可能为同名不同人、地区划分粒度不同,或者是错误信息;就需要知识融合,保留正确信息,同名同人需要融合,地区划分粒度需要统一。
表二:文本数据
表三:结构化数据
姓名 |
关系 |
地址 |
日期 |
大名 |
出生 |
上海市徐汇区 |
20220730 |
图二:无向图 |
---|
5.知识图谱平台架构
图四:平台架构 |
---|
二、应用准备
1.技术储备
neo4j、python、py2neo、pandas、networkx、graphx、impala、dgl等。
2.应用举例
表四:技术点应用
技术点 |
应用场景 |
点分类(客户识别) |
基于图谱分析客户信用评分、营销获客 |
子图研究(社群研究) |
使用社团划分、模式匹配、关联查询等识别的关联形态、客群研究 |
关系预测(关系挖掘) |
客户之间强、隐性关系识别分析、股权穿透 |
路径发现(路径挖掘) |
关联客户路径分析挖掘、链路分析、资金违规流向 |
三、图谱长成什么样?
图谱长成什么样,依赖于怎么进行本体模型设计,通俗的说,就是节点、关系如何定义。
1.知识建模
知识建模是指建立知识图谱的数据模型,即采用什么样的方式来表达知识,构建一个本体模型对知识进行描述。
在本体模型中需要构建本体的概念,属性以及概念之间的关系。知识建模的过程是知识图谱构建的基础,高质量的数据模型能避免许多不必要、重复性的知识获取工作,有效提高知识图谱构建的效率,降低领域数据融合的成本。不同领域的知识具有不同的数据特点,可分别构建不同的本体模型。
2.本体模型
本体模型是根据现实生活中的概念、概念间的关系、概念所具有的属性以及概念的实例抽象出的模型,一般有自顶向下和自底向上两种途径。
- 自顶向下
自顶向下的方法是指在构建知识图谱时首先定义数据模式即本体,一般通过领域专家人工编制。从最顶层的概念开始定义,然后逐步细化,形成结构良好的分类层次结构。
- 自底向上
自底向上的方法则相反,首先对现有实体进行归纳组织,形成底层的概念,再逐步往上抽象形成上层的概念。
图五:自顶向下 |
---|
图六:自底向上 |
---|
自底向上的方法则多用于开放领域知识图谱的本体构建,因为开放的世界太过复杂,用自顶向下的方法无法考虑周全(并不清楚有多少种实体、关系、属性),且随着世界变化,对应的概念还在增长,自底向上的方法则可满足概念不断增长的需要。
3.知识建模方式
知识建模目前分为手工建模方式(适用于我行)和半自动建模方式。手工建模方式适用于对知识建模容量小、质量高的要求,但是无法满足大规模的知构建,是一个耗时、昂贵、需要专业知识的任务;混合方式将自然语言处理与手工方式结合,适于规模大且语义复杂的图谱。
手工建模方式过程主要可以分为以下的六个步骤:
- 明确领域本体及任务(业务场景及实施人)、
- 模型复用(复用现有资源)、
- 列出本体涉及领域中的元素(期望三元组)、
- 明确分类体系(自底向上)、
- 定义属性及关系(实际三元组)、
- 定义约束条件(约束条件)。
在人工建模的过程中,以上的六个步骤并不一一顺序执行的,可以根据知识建模的具体需求,组合其中的步骤达到知识建模的目的。
半自动建模方式先通过自动方式获取知识图谱,然后进行大量的人工干预过程。运用自然语言处理技术先自动建模的方法可以分为三大类:基于结构化数据的知识建模方法,基于半结构化数据的知识建模方法和基于非结构化数据的知识建模方法。