本文转自公众号PlantData知识图谱实战(ID:KGPlantData),本文摘录自上海海翼知信息科技有限公司胡芳槐博士4月14日在北京理工大学分享的《大规模知识图谱数据存储》PPT。
作者对知识图谱的存储进行了全面的介绍,内容包括:什么是知识图谱,知识图谱的适用场景,知识图谱数据存储的几种常见方式和最佳方案,知识图谱中的时态信息及其存储实现,结合实例说明如何利用图数据库进行数据存储。
我们的现实世界中有多种类型的事物:
事物之间有多种类型的链接:
而知识图谱即用来描述真实世界中存在的各种实体或概念,以及它们之间的关联关系。
其中:
从抽象层面看,本体最抽象,其次是知识库,最后才是知识图谱,因此本体与知识图谱的区别在于以下三点:
知识图谱已经在人工和商业智能方面有了一系列的应用,包括聊天机器人,临床决策支持等。
同时为了应对大数据应用的不同挑战,借助知识图谱,实现不同的业务需求。
我们看到知识图谱有了如此多的应用,不过它最适合处理还是这些数据:
作为数据融合与链接的纽带,知识图谱整合结构化、半结构化和非结构化数据,拥有如下的消费和数据场景。
但知识图谱不是银弹!需要我们依据不同的问题寻找合适的方法,不要为了用知识图谱而用知识图谱。
知识图谱的不适用场景如下:
不适用的数据场景:
不适用的消费场景:
这些不适用场景都需要借助其它工具存储和处理,同时结合其它工具和方法使用,最终与知识图谱进行数据链接。
通过上面的内容,我们了解到知识图谱最适合处理关联密集型的数据,因此首先需要存放的是图谱中的节点和边的数据;知识图谱基于图数据库的优点,能够方便的存放这一类关系型的数据,对于大量其他类型的数据我们如何处理呢?
由此可知知识图谱数据的存储不等于图数据库。
接下来本文重点介绍知识图谱数据存储的几种常见方式。
知识图谱的存储并不依赖特定的底层结构,一般的做法是按数据和应用的需求采用不同的底层存储。你甚至可以基于现有关系数据库或NoSQL数据库进行构建。我们来列举一下几种常见做法:
类似RDF存储结构(下文会进行介绍),以元组为单元进行存储。语义较为明确。
问题:大量自连接操作的开销巨大。
类似关系型数据结构,每一条数据代表一个实体,每一列代表一个属性。
问题:1.RDF灵活性(高于一阶的关系查询很复杂);2.查询时必须指定属性,无法做不确定属性的查询。
根据属性的不同建立数据表,数据结构较为清晰。
问题:1.大量数据表;2.删除属性代价大。
以上这些方案都会有各自的优缺点,在实现时需要根据不同的应用场景来进行选择,并设计索引、约束等方法来解决查询效率问题。
目前图结构存储有两种通用的存储方案:RDF存储和图数据库(Graph Database)。下图为两种存储在http://db-engines.com/上的发展趋势:
可以明显地看到基于图的存储方式在整个数据库存储领域的发展飞速。
3.1.1 RDF存储
RDF存储亦称三元组存储(triplestore),它是专为存储三元组形式的数据而设计的专用数据库,通过六重索引(SPO、SOP、PSO、POS、OSP、OPS)的方式解决了三元组搜索的效率问题。
其优点是:
但缺点也很明显:
现在越来越多的RDF数据库通过列式存储的方式来对三元组进行存储,进一步提高六重索引下的查询效率。
3.1.2 图数据库
图数据库的结构定义相比RDF数据库更为通用,实现了图结构中的节点,边以及属性来进行图数据的存储,典型的开源图数据库就是Neo4j。
这种做法的优点是数据库本身提供完善的图查询语言、支持各种图挖掘算法,但图数据库的分布式存储实现代价高,数据更新速度慢,大节点的处理开销很高。
指导思想仍旧是之前提到的“数据思维”和“No Size Fits All”,整体原则归结为以下六点:
1.基础存储
2.数据分割
3.缓存与索引
4.善于使用现有成熟存储
5.对于非关系型的数据尽量不入图存储,避免形成大节点
6.不直接在图存储中进行统计分析计算
众所周知,信息是有时态的,时态特性是信息的客观存在,同时知识和数据是不断更新的,这些变化的时间点同样代表了有意义的信息。
时态信息的需求与技术一直伴随着数据库技术的发展而产生和发展。下图为时态数据库与其他类型数据库相比的发展趋势:
可以发现时态数据库的发展趋势远远高于与其他数据存储方式。
知识图谱中的时态信息包含以下四个方面:
下面的视频为利用PlantData知识图谱数据智能平台,查询出的北京小桔科技有限公司(嘀嘀打车)拥有时态信息的企业创投知识图谱。
结合最近很火的一部电视剧《人民的名义》我们来理解一下知识图谱中的时态信息。
知识图谱时态信息存储实现的设计原则如下:
在选择图数据存储的指标上,需要考虑以下几个方面:
不同的图数据存储之间的区别,可至公众号PlantData知识图谱实战(KGPlantData)回复数据存储获取完整PPT。
此处选择图数据库进行知识图谱数据的存储:
初创企业相关的数据包括:
- 工商注册信息
- 企业产品
- 创始人/股东/高管
- 所属行业/领域
- 投融资事件
- 专利/招聘/诉讼/失信
- 新闻/社交网络数据
- 产品活跃数据
关系型数据(通过关系形成网络):
关系型数据的存储方法:作为实体存入知识图谱,通过它们之间的关系形成图谱网络。
结构型数据(与主体进行关联,但不会再续延伸):
结构型数据的存储方法:作为记录型数据存入合适的存储中,通过链接与图谱中的实体进行关联。
属性型数据:
属性型数据的存储方法:作为实体的数值属性存入知识图谱。
时态型数据:
时态型数据的存储方法:使用基于知识图谱上的时间存储中间件进行存储和查询处理。
Schema定义:概念选取
Schema定义:关系和属性的定义
使用图数据库进行数据存储一般过程:
最佳实践过程:
最终展示效果体验地址:http://www.plantdata.cn/KGIndex/gallery.html
总结一下,复杂应用场景下知识图谱数据存储的原则:
PlantData知识图谱数据智能平台以“链接数据 洞察价值”为理念,致力于知识图谱实战技能的挖掘与应用,为数据分析师、数据工程师、行业爱好者等从业人员提供知识图谱数据集及工具,知识图谱文章投稿邮箱:[email protected]。