知识图谱
简介
知识图谱(Knowledge Graph)是Google 于2012年提出了的概念,初衷是为了优化搜索引擎返回的结果,增强用户搜索质量及体验。
知识图谱本质上是一种揭示实体之间关系的语义网络,广泛应用于智能搜索,智能问答,个性化推荐等领域。
知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Object)。
体系架构
知识图谱的架构主要包括自身的逻辑结构以及体系架构
逻辑结构上可分为模式层与数据层两个层次,
数据层:主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(实体1,关系,实体2)、(实体、属性,属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的 Neo4j、Twitter 的 FlockDB、JanusGraph 等。
模式层:构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。
体系架构是指其构建模式的结构,如下图所示:
优点
关系的表达能力强
像人类思考一样去做分析
知识学习
高速反馈
图数据库
知识图谱的图存储在图数据库(Graph Database)中,图数据库以图论为理论基础,图论中图的基本元素是节点和边,在图数据库中对应的就是节点和关系。
主要技术
知识建模
为知识和数据进行抽象建模,主要包括以下5个步骤:
以节点为主体目标,实现对不同来源的数据进行映射与合并。(确定节点)
利用属性来表示不同数据源中针对节点的描述,形成对节点的全方位描述。(确定节点属性、标签)
利用关系来描述各类抽象建模成节点的数据之间的关联关系,从而支持关联分析。(图设计)
通过节点链接技术,实现围绕节点的多种类型数据的关联存储。(节点链接)
使用事件机制描述客观世界中动态发展,体现事件与节点间的关联,并利用时序描述事件的发展状况。(动态事件描述)
知识获取
知识融合
知识存储
知识计算
知识计算主要是在知识图谱中知识和数据的基础上,通过各种算法,发现其中显式的或隐含的知识、模式或规则等,知识计算的范畴非常大,这里主要讲三个方面:
- 图挖掘计算: 基于图论的相关算法,实现对图谱的探索和挖掘。
- 本体推理: 使用本体推理进行新知识发现或冲突检测。
- 基于规则的推理: 使用规则引擎,编写相应的业务规则,通过推理辅助业务决策。
图挖掘和图计算
知识图谱之上的图挖掘和计算主要分以下6类:
- 图遍历,知识图谱构建完之后可以理解为是一张很大的图,怎么去查询遍历这个图,要根据图的特点和应用的场景进行遍历;
- 图经典的算法,如最短路径;
- 路径的探寻,即给定两个实体或多个实体去发现他们之间的关系;
- 权威节点的分析,这在社交网络分析中用的比较多;
- 族群分析;
- 相似节点的发现。