中国海洋分享 http://blog.sciencenet.cn/u/ysf6 生态管理缔造美丽海洋

博文

[转载]Acemap研究周报 | 知识图谱(二):非常建筑

已有 2837 次阅读 2019-6-7 10:12 |个人分类:海洋科普|系统分类:科普集锦|文章来源:转载

Acemap研究周报 | 知识图谱(二):非常建筑

来源: 谱谱 爱思美谱 2019-05-24

网址 |https://www.acemap.cn/academic-report/knowledge-graph2

指导老师 | 张伟楠 王新兵 教授

《非常建筑》一书是著名建筑师张永和先生在上世纪九十年代的关于其建筑理念思想的代表作。其思想便精简直接,注重"事件"建筑、中西对立以及"漫游"建筑。用词摘自《非常建筑》。这不禁让我想起事件的时许价值,也不正是大部分知识图谱欠缺的吗?



必须的建筑材料


水泥砖头,是建造一个高楼大厦的必须品,那么什么是构建一个知识图谱的必须品呢?数据、数据库、数据库管理系统……

数据(meta-data)

知识图谱的核心在于知识数据,一个优秀的知识数据工程,往往能够产生一个优秀的知识图谱。这里介绍几个优秀的知识采集工具:

  • Scrapy,是一个用于爬取网络数据,提取结构性数据的爬虫应用框架。可以应用在数据挖掘工程,信息处理技术和存储数据等一系列的项目中。用这个框架可以轻松爬下来如百度百科之类的带有明显标签的数据。

  • 八抓鱼,是一个可以自动化进行网络数据爬取功能的网站,可以通过此类工具进行爬取网络中一些问题本数据,方便之后做进一步的研究。

图数据(graph-data)

知识图谱说到底也还是一种异构网络,也是由<结点,边,节点>构成的,那么还是一个图,也需要有相关的图数据库进行存储。那么图数据库里的图数据怎么来呢?

  • DB2RDF,这是一类关于关系型数据对应到RDF数据的方式,这类标准是direct mapping,即直接映射。是由W3C组织定义的一种映射规则,通过映射读取数据,并生成dump文件。

  • D2RQ,这是一个通过访问SQL在用户端维护一个虚拟RDF数据库的解决方案。查询的时候通过转化SPARQL等RDF查询语言为SQL语句,让用户以为是图数据的查询,实际上是SQL的查询,这一种操作是普遍用于有大量的关系型数据的前提。


图1 D2RQ框架结构和实际操作


图数据管理(graph-data management)

图数据管理的方式有很多,有直接的图数据库,也有专门的RDF数据库,这边着重介绍四种。

  • Jena,排名第一的RDF数据管理系统。其推行的Jena Fuseki数据引擎已经成为了诸多知识图谱供应商首选的SPARQL Endpoint的搭建工具了,例如AceKG的SPARQL查询接口。

  • Sesame/RDF4J,扩展性优秀的RDF数据管理系统。LuceneSail是基于Sesame的有效扩展之一,首次解决了在RDF数据中部署RDF倒排索引,笔者有几篇文章是有关此类工作的。

  • Cayley,谷歌开发人员自己设计的小玩具。短小精悍,颜值高,速度快但教程少。

  • Neo4j,众所周知的最优秀的图数据库之一。不做过多的赘述了,这个数据库系统,真的希望能够被开源,自带可视化太吸粉了!



合理的建筑手段



知识图谱的构建逻辑

我们先来看下绝大多数目前的,归纳的比较好的一个知识图谱的一个构建体系。

图2 知识图谱构建流程


我们可以看到,数据获取到知识提取(关系、实体提取),是知识图谱构建过程中的一个前提,知识融合是最主要的核心点,知识工程是融合之后作为知识图谱构建/更新的一个辅助模块,包括本体提取、知识图谱质量评估和知识图谱使用借口等,最后是提供应用级的产品。下面就主要介绍下有哪些方法。

数据获取与知识存储

知识获取是在数据获取之后做的重要一步,所谓的知识获取,区别于数据获取,最重要的一点就是如何从数据中辨识出知识,目前的方法根据数据获取方式,分为两大类。

获取的数据按照规则,分为:

  • 结构化数据(从百科网页上有明确标签指标获取,从开放数据库中获取)

  • 非结构化数据(从各种网站中爬去的评论等文本信息)

对于结构化数据来说,要想转化为知识,那就必须要做出坚定,一个关系型数据库中哪些属性要留下,哪些属性要去掉,这里就着重点讲非结构华数据的处理方案吧:


1.Deepdive


Deepdive是斯坦福团队开发的具有语言识别能力的信息抽取工具,可用作构建知识图谱的内核,是一个十分强大的工具。

在创建初期,目标是能够在成千上万的化石相关的文献中,提取出有关pale-biological的事实,能够希望构建一个可以涵盖足够多化石记录的一个系统。在构建这个系统构建的基本理念就是:

Aggressive approach: every character, word, part of speech is a variable statistic inference on billions of variables.

他们惊奇的发现,这个效果比请了300+的志愿者做了13年的工作,阅读足够少的文章提取出来的知识点要多的多,原因在于人对于知识的定义和机器对知识的定义不同,所以恩多很细微的知识点都被挖掘出来了,但是速度提高了很多很多,是人无法比较的,同时消耗的资源也少了很多。下图是他们的框架结构。

图3 DeepDive框架结构


具体的用法就不在这里介绍了,网上有很多的资源可供参考。


2.OpenNRE


OpenNRE是清华大学团队提出的开源的实体提取的框架,他的大概的思想还是很清晰的:

  1. Embedding

  • 把一句话中的每一个字,用向量表示(word2vec)出来;

  • 把每个字距离2个实体的距离作为位置信息加入到刚刚的向量的末尾2位上。

  • 这样,每个字都有一个短向量表示;

  1. Network

    • 对上面的短向量进行Convolution, Max-pooling and Non-linear Layers的操作,

    • 生成最后的整个句子的表示。

    • 这个过程相当于提取每个句子的特征。

  2. 对包含某对实体对的所有句子,采用attention机制进行选择,将最能表达这种关系的句子们挑选出来。

知识融合

通过知识的提取,实现了从非结构化和结构化数据中获取实体、关系以及属性信息的事情。然而,这些结果中可能包含大量的歧义和冗余错误信息,数据之间缺乏层次和逻辑,不同的开发团队设计的知识图谱毫无联系,甚至重复也无可改进,因此有必要对其进行整合。知识融合,最主要的目标就是实体链接和知识合并。

  • 实体连接,对于单个数据集中,其目标是将从文本或者数据库中抽取得到的实体,将其链接到知识库中对应的正确实体对象。对于多个数据集,那么是一些模式层的数据之间的链接从而形成的linkeddata,其中要遇到的问题就是同名区分,比如Acemap中要做学者数据的合并,就必须面临学者的同名区分,类似J,Liu和Jie Liu是不是一个人呢?

  • 知识合并,就是将关系型数据融合到图数据等将数据格式直接在数据层进行合并。也可以是在模式层进行消歧和归并,进行合并。

知识图谱本体建模

  • 闭域(close-domain)知识图谱,是指有固定schema(模式)的知识图谱,这类知识图谱多半是领域知识图谱,是将特定领域下,通过专家本体建模的方式,固定一套稳定的模式,从而依照这个模式进行添加数据,如AceKG和DBpedia等知名的数据集。

  • “事件”(event-driven)知识图谱,是指核心数据空间是由人为定义的时许事件的知识图谱,例如音乐会、篮球赛和学术会议等,此类知识图谱在添加新数据方面更加的灵活,同时也能进行事件预测等一系列有意义的科研,也给知识图谱增加了必要但目前缺少的时间戳。这种知识图谱可以有闭域的也可以有广域的。

  • 广域(open-domain)知识图谱,相比起闭域而言,其特点在于没有规定一定的数据模式,但凡是可以为命名实体的均归纳到数据库中,推理和检索的时候耗时一般比较大,但是这类知识图谱往往是KBQA要落地的直接环境。


建筑完成后的验收与管理



评估“摘自网络”

评估也是知识图谱构建的重要组成部分。其意义是可以对知识的可信度进行量化,通过舍弃置信度较低的知识,可以保障知识库的质量。

知识更新(KGC, Knowlodge Graph Completion)

知识更新从逻辑上看,知识的更新包括模式层的更新、数据层的更新(模式层更新只能是在闭域的知识图谱范畴内)

  • 模式层,新增数据有新的实体类型(class),需要自动将新的实体类型(class)添加到知识图谱的模式中。

  • 数据层,新增或更新实体、关系、属性,对数据层进行更新需要考虑数据源的可靠性、数据的一致性,并选择在各数据源中出现频率高的事实和属性加入知识库。从事项的方法上,知识图谱的更新和补全有两种方式:

  • 全面更新:更新的全部数据为输入,从零开始构建知识图谱。这种方法比较简单,但资源消耗大,而且需要耗费大量人力物力;

  • 增量更新:以当前新增数据为输入,向现有知识图谱中添加新增知识。实施起来十分困难,需要大量的人工标注。



如何透视建筑



SPARQL

摘自湖南大学彭鹏老师的论文。

关于知识图谱的数据查询,一定会说起RDF的查询语言SPARQL,但是sparql的查询也会因为数据库的组织形式产生不同的时间消耗。

  • 基于三元组的RDF数据库管理系统,例如jena,oracle和3store等,是将三元组转化成一个属性为主语谓语和宾语的表,进行sql查询。

  • 基于图的RDF数据库管理系统例如gstore和turbo,这类数据库管理系统是将图有效的用计算机理解的编码存储在磁盘中。

对此我做了一个简单的实验:

图4 四种数据库管理系统在执行查询时的平均耗时


具体的情况需要具体分析,此处是对数据库系统进行简单的通配符查询的测试。

基于知识图谱的问答系统(KBQA)

知识图谱的最重要也是最直观的应用就是智能问答系统,它可以解决之前的QA系统召回率低,准确率高中,召回率低的问题,而准确度时依赖于数据集的精度的。同时也可能会有意想不到的延时。

在RDF数据上进行关键词查询

这里只讲述闭域的知识图谱上的关键词查询:

图5 基于关键词的查询


首先,需要找到,关键词对应哪一个实体,这里可以用SPARQL自带的filter去做,但是耗时很严重,此处的实验我们使用的是lucenesail。其次,找到这个实体对应的类,这一步,借助闭域的知识图谱的class概念得到结果。之后,将得到的类在schema图上,进行多源Dijkstra算法,得到一个子图。最后,将这个子图翻译成SPARQL合法语句,放回Endpoint中进行查询。

在RDF数据上进行自然语言查询

这个嘛,工业级,就~模版吧。下一期我也会就这个话题进行归纳。



拒绝成为烂尾楼


要想做好一个知识图谱,要记住,知识图谱不等于知识的图。知识图谱是一个有效组织的知识存储形式下,可以进行有效推理、信息检索和数据分析的基础平台。有的学者说,一个好的知识图谱有着好的schema,一个好的知识图谱更需要一个好的规划。这一次就给大家分享,知识图谱的非常建筑,我们下次再见~

-----------------------------------------------------------------------

《海洋生态大讲堂》微信公众号

浙江省重点智库宁波大学东海研究院合作微媒平台


海洋在说话,您我来代言!

《海洋生态大讲堂》欢迎您!

投稿邮箱:550931758@qq.com

请您在留言中标注为《海洋生态大讲堂》投稿,

并提供个人简历及联系方式。

我们筛选审核后,将以全文刊出!

热烈欢迎广大自愿者合伙参与公众号运营!


                附: 投稿类型与要求

                (1)主题一定是有关海洋生态学内容的稿件;

                (2)原创文章,请配必要的图表;

                (3)好文推荐,直接发来原文,或请注明出处;

                (4)重要会议报道或信息,请附必要图表及其标题说明;

                (5)重大项目科研进展,或重大会议学术报告PPT;

                (6)重点团队介绍,或重要人物专访。


您的赞赏是我们前行的最大动力




https://blog.sciencenet.cn/blog-1721-1183557.html

上一篇:[转载]Acemap研究周报 | 知识图谱(一):追根溯源
下一篇:[转载]《造城者》说:资本主宰时代的规划之道
收藏 IP: 180.164.35.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 08:19

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部