知识图谱学习笔记(1)——知识图谱基础

1. 什么是知识图谱

知识图谱(Knowledge Graph)是由谷歌公司2012年提出来的新名词,其初衷是优化搜索殷勤返回的结果,增强用户搜索质量及体验。

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

通俗讲:知识图谱也可以叫做多关系图(Multi-relational graph),通常包含多种类型的关系和边。
在这里插入图片描述
在这里插入图片描述
知识图谱中主要包含了两个部分:实体和关系

  • 实体:对应图中的节点,指的是现实世界中的事物。
  • 关系:对应图中的边,指的是实体之间的关系

2. 知识图谱的计算

图计算:G=(V, E, D), V=vertex(顶点或者节点),E=edge(边), D=data(权重)
对于一个消费者的原始购买行为,有两类节点,分别是用户和产品,边表示购买行为,权重是边上的一个数据结构,可以是购买次数和最后购买时间。
对于我们面临的物理世界的数据问题,都可以利用图结构来抽象表达:社交网络,网页链接关系,用户传播网络,用户网络点击、浏览和购买行为等等。

图数据结构很好的表达了数据之间的关联性,关联性计算是大数据计算的核心——通过获得数据的关联性,可以从噪声很多的海量数据中抽取有用的信息。比如,通过为购物者之间的关系建模,可以很快找到喜好相似的用户,并为之推荐商品。

有许多新型的基于图的计算平台和引擎出现。例如专注于图结构化存储与查询的图数据库Neo4j,infinitegraph等。Google的图计算框架Pregel(基于大块的消息传递机制),CMU的开源图计算框架——GraphLab(基于内存共享机制)。Spark也有支持图计算机器学习的模块——GraphX,可以实现复杂的图数据挖掘。

3. 知识图谱的存储

3.1 RDF存储

(1)存储三元组(Triple)
(2)标准的推理引擎
(3)W3C标准
(4)常用于发布数据
(5)多数为学术界场景
在这里插入图片描述
RDF三元组为“主谓宾”的结构。

3.2 图数据库存储

(1)节点和关系可以带有属性
(2)没有标准的推理引擎
(3)图的遍历效率高
(4)事务管理(ACID)
(5)基本为工业界场景

3.3 RDF与图数据存储的区别

(1)属性存储
RDF三元组实体和关系不包含属性,而属性图中可以包含属性。
在这里插入图片描述
在这里插入图片描述
比如实体李明的年龄是25岁,在RDF中只能表示为两个实体之间的关系,即李明和年龄分别作为两个实体,它们之间通过属性Age_of相连。在属性图中,年龄可以表示为实体李明的一个属性。

(2)区别2:命题。
示例:李明拨打张三的电话三次。
在这里插入图片描述
(3)区别3:RDF主要用于学术界,易于数据的发布、分享;图数据库主要来自于工业界的需求,拥有一般数据库拥有的特性,比如事实管理、权限管理等等,图数据库用来做高效率的图查询。

关系型数据库不能很好地处理关系。
建模难:不熟悉就不能建模和存储数据和关系
性能低:随着关系数量和层次的增加,数据库尺寸的增加,性能降低
查询难:需要JOIN操作,查询复杂性增加
扩展难:增加新类型的数据和关系,需要重新设计模式,增加上市时间。

这些劣势导致传统的数据库不适用于有实时价值的数据关系。