技术动态 | Neo4j知识图谱的技术解析及案例分享

转载公众号 | DataFunTalk


55bc4a9f67aa46ad87fb0751a5d8d617.png

合作分享:Jesus Barrasa-Neo4j-欧洲区售前和技术总监

合作分享:丁可-Neo4j-亚太区高级技术顾问

编辑整理:吴祺尧-加州大学圣地亚哥分校

出品平台:DataFunTalk

导读:Neo4j近年来与众多公司合作,在很多领域中成功结合知识图谱技术,使得知识图谱顺利落地于各个项目中。今天由 Neo4j 的欧洲区售前和技术总监Barrasa博士来介绍知识图谱的技术解析与案例分享。

今天的介绍会围绕下面五点展开:

  • 数据架构中的知识存在于何处

  • 知识图谱在技能发现中的应用

  • 知识图谱在元数据管理中的应用

  • 知识图谱在语义搜索中的应用

  • 总结

01

数据架构中的知识存在于何处

首先,我使用一个问题作为开场:在数据架构中知识存在于何处?我会使用一个金融领域的例子来帮助大家理解知识图谱的概念,并使得大家可以将知识图谱推广到其他领域中。

d0377ae873f73d9de6cf124a0dbf3970.png

数据的来源与种类十分多样。我们可能会有顾客数据、产品数据、顾客行为数据,它们可以有很多存储方式,下面我以关系型数据库为例进行介绍。通常情况下,我们会有很多应用来消费、处理、理解这些数据。比如,有一个用来生成dashboard的“App 1”,它可以用来生成给上级主管查看的报告,那么这个app会查询数据库,结合顾客数据和顾客行为数据,自动输出一份由顾客账户为索引的总结。在这个app中,知识存在于那些可以用于处理、理解数据的代码中。它们往往是上百行SQL语句。又比如我们还有另一个应用“App 2”,它用于向顾客推荐需要升级的产品。具体地,它会结合顾客数据、顾客行为数据、产品数据等来向顾客推荐潜在的升级产品。相似地,应用决定了数据的意义,那么知识就存在于这一具体应用中。综上,我们可以发现数据的存储与知识是解耦的。上述范式可以重复运用于所有应用中,比如我们还可以有一个“App 3”,它生成一个可以用来监管的报告。

但是,这种解耦的知识存在形式像一个黑盒,对于我们来说很难去维护。所以,我们可以使用知识图谱使得我们的数据更加“聪明”,让业务逻辑与数据的联系更加紧密。

首先,我们使用图结构,将业务与数据的联系显式地用边来表示。在构建完知识图谱后,我们将它赋予实际的语义,覆盖在业务的本体之上。通过这种方法,你可以结合自己领域的知识,使用各类的图算法来使得知识图谱生成新的数据或知识,最终实现图谱与实际应用的紧密结合的目的。知识图谱带来的另一个好处在于你的下游应用会更加轻量化,这是因为原先很多需要处理的逻辑交给了知识图谱进行解析。

153358a5f9bc068618cbb8afc1108fbf.png

知识图谱由两部分组成。首先,知识图谱中存在大量数据。其次,知识图谱中包含很多显式的知识,它可以使用现有数据来生成新知识或者新数据。知识可以有多种存在形式,如本体、分类、算法、Cypher规则等。总的来说,数据和知识的组合形成了“智慧”的知识图谱,而知识图谱保证了知识和数据可以更加容易地进行存取操作。

02

知识图谱在技能发现中的应用

30b37eb7d2af914b414c7a88049d6c71.png

很多著名分析家,如Gardner强调了技能发现的重要性。他指出超过53%的公司“技能发现”的短板阻碍了业务转型,因为他们无法识别新业务中员工所必需的技能,从而无法有效利用公司中的人力资源。Neo4j曾经与DAIMLER合作,使用知识图谱成功地将技能发现运用于公司员工中。具体地,他们想要找到公司在哪些技能方向上缺少足够的优质员工,并试图在公司内部找到最能胜任那些空缺职位的员工。此外,他们还想要为公司员工制定一套最佳的职业规划路线,使得员工可以最大化地激发自己的潜能并合理地运用自身所含技能。

77d1adf4817b4c6f9f5c000600d5c2b4.png

当然,他们最初没有足够的能力去找到这些问题的答案。所以,他们决定使用知识图谱的方法,在更高的维度收集员工数据,并构建一张图。知识图谱中覆盖在图上,包含领域知识信息如领域内技能的分类等。通过将知识融入图结构的做法,我们可以回答之前无法解答的复杂问题,如技能发现。

39086a0deabad6031e3713b0ff281b48.png

具体地,我们首先在很多平台中收集如员工信息、员工劳动力信息、资源管理信息、HR平台、员工培训信息等数据。Neo4j根据数据的动态属性使用传统的ETL工具、最近很流行的kafka流式数据处理中间件来处理、构造知识图谱。进一步,知识图谱可以根据实时更新的数据动态地调整图结构,并将产出的知识图谱显式地覆盖在领域的本体上。此外,Neo4j支持owl、rdfs等各种语言,将关系型数据库中的数据融入Neo4j框架中。最终,通过构建的知识图谱与企业自身设定的模式,我们就可以回答如元数据相关或者数据的知识相关的查询、推荐问题。

03

知识图谱在元数据管理中的应用

01aa215949943d59b4929c0c07139886.png

第二个案例是关于知识图谱在元数据管理中的应用。元数据不仅包含数据本身的信息,还包括了如数据集的来源、数据源所在平台等上层信息。所以,元数据信息相当于为数据加上额外一层血缘关系,是“数据的数据”。当我们想要将数据展示给潜在数据消费者,如一个团队的新成员时,那么元数据这类包含数据类型、数据最近版本的信息就变得极为重要。

efc5deaca98bb5e911572d00346cb965.png

很多大公司慢慢意识到元数据管理可以使用知识图谱来解决。他们近年来都在Neo4j图数据库的基础上构建了自己的元数据管理平台。最初,Dataportal率先搭建了自己的datahub,后续如lyft、Amundsen、LinkedIn和最近的Manta都创建了自己的常用知识图谱元数据管理工具。

4c316c24aea3b6c9b02c0765c1eb06ee.png

元数据管理的维护依赖数据处理pipeline,它不仅建模数据本身,还建模数据的变换方式、使用方式等。具体地,元数据管理可以让我们查看一组数据在处理pipeline中是如何通过一系列数据变换如聚合、组合等,生成一组输出数据。数据本身与很多实体相连接,例如它们所在的数据平台,数据变换的创建者、维护者,数据的时间信息,数据的最近修改时间、数据的使用频率等。每个部门都可以建立并维护自己的数据pipeline。最终,当我们将元数据知识图谱构建完毕后,我们就可以处理如数据pipeline出现故障时的问题排查,因为我们可以通过检查pipeline中数据的处理流程中可能受故障影响的环节来达到目的。总而言之,只要你能将元数据信息构建成一张知识图谱,你就有能力使用如Cypher等语言回答各种复杂问题。

04

知识图谱在语义搜索中的应用

430f51c39d2c1e0ec6fc323801d7450a.png

最后,我来介绍一下知识图谱领域最被广泛使用的应用:基于知识图谱的语义搜索。很久之前,我们在网站进行搜索时,我们只是寻找与query匹配的关键词所在的文章或网页。现在,我们要求搜索引擎可以理解query的语义信息。

之前NASA也遇到了这类问题,因为它们的数据库中包含海量的文档、报告、项目数据、经验教训、研究成果等。之前,NASA的搜索方式使用关键词匹配,而这类忽略上下文信息与语义信息的搜索方法十分低效。

8a5ee1482cae99af0a6c5833bda2aa8a.png

NASA的解决方案是利用知识图谱与自然语言处理技术来处理这些海量文档。首先,自然语言处理中的实体抽取任务可以将实体表示为知识图谱上一个显式的图节点。当我们建模文档中的所有实体,并结合元数据信息以及领域先验知识如领域分类信息、领域知识表达等,我们可以将实体节点按照自己的范式进行连接,构成一张包含丰富领域知识的图谱,进而使得我们可以从一个节点游走到另一个节点,从语义层面回答query。

例如,你想要查询自己感兴趣的话题,那么通过知识图谱上的游走我们就可以找到与话题语义相关的多个文档,并将这些你可能感兴趣的文章推荐给你。

4aa2566266b6e30ffc50838d84bb2316.png

具体地,NASA不仅将经验教训、文档、URL等映射为知识图谱上的节点,还使用表示学习将文档的主题、实体词建模并映射至知识图谱中,并将它们与对应的文档相连。通过这一做法,query查询可以充分利用语义相关信息,使得搜索更加高效。

05

总结

12fb88f52bae659ae7fbd02204a9f711.png

最后,我对今天的分享进行总结。

首先,知识图谱可以使得我们的数据根据我们的下游应用变得更加“聪明”,进而使得数据和应用的联系更加紧密。它可以根据我们使用数据的目的来构建合适的、包含语义信息和知识信息的图结构,覆盖在原有数据之上。应用知识图谱的最佳实践是:找到自己应用数据的目的,构建正确的语义知识图谱,从小型图谱开始逐渐扩大图的规模。

总而言之,由于GraphQL只是一个数据接口语言,它无法进行复杂的图查询,因此Cypher更适用于图遍历和复杂图查询的场景(它和图数据库结合得更紧密),而GraphQL适用于存取数据。

06

Q&A

Q:GraphQL和Cypher分别在什么情况下使用是最好的?它们可以一起进行使用吗?

A:GraphQL提供了标准的图数据库接口。如果前端的开发和数据库管理人员想要进行解耦,那么GraphQL是一个不错的选择,因为它可以建立自己的API,使得后端的任何变动都不会影响前端的业务开发。Cypher需要嵌入图数据库中,它适用于当图数据库需要进行大幅度的升级的情况,这时内部的Cypher代码需要进行相应的调整。总而言之,Cypher更适用于遍历的场景(因为它和数据库结合得更紧密),而GraphQL适用于存取数据。另外,由于GraphQL是一个图数据库的接口语言,它无法像Cypher一样进行复杂的图数据查询。


分享嘉宾:

36dcb14fa35edbb5b256060e4e5a87be.png

7af45d8ee73350b57c77bbe143edcd91.png


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

eac66c286db8dfefb2b0525fcb3cb2cb.png

点击阅读原文,进入 OpenKG 网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哈工大博士历时半年整理的《Pytorch常用函数函数手册》开放下载!内含200余个函数!...

近期有很多小伙伴在公众号后台咨询有没有关于Pytorch函数使用的学习资料。Pytorch是目前常用的深度学习框架之一,深受学生党的喜爱,小白本人也是使用的Pytorch框架。为了帮助更多小伙伴,小白学视觉团队整理了这份目前最全的Pytorch常用函数手…

LeetCode 984. 不含 AAA 或 BBB 的字符串(贪心)

1. 题目 给定两个整数 A 和 B,返回任意字符串 S,要求满足: S 的长度为 A B,且正好包含 A 个 ‘a’ 字母与 B 个 ‘b’ 字母;子串 ‘aaa’ 没有出现在 S 中;子串 ‘bbb’ 没有出现在 S 中。 示例 1&…

Spring Cloud构建微服务架构:服务网关(基础)【Dalston版】

通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了。比如下图所示: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbo…

论文浅尝 | PASSLEAF:基于样本池的不确定性知识图谱嵌入半监督学习框架

笔记整理:陈一林,东南大学硕士,研究方向为不确定性知识图谱规则与推理。论文引用:Citation: Chen, Z.M., Yeh, M.Y. and Kuo, T.W., 2021, May. PASSLEAF: A Pool-bAsed Semi-Supervised LEArning Framework for Uncertain Knowle…

扔掉老破V100、A100,英伟达新一代计算卡H100来了

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

LeetCode 725. 分隔链表

1. 题目 给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。 每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。 这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的…

会议交流 | 知识工程/知识图谱教学研讨会 暨 知识工程课程群虚拟教研室第一次教学研讨会...

日程安排时 间:2022年10月11日(周二)19:40-21:00地 点:虚拟教研室(B版)/ 腾讯会议:287 808 963主持人:知识工程课程群虚拟教研室带头人 天津大学教授 王鑫教学研讨会会议议程&#x…

@FeignClient中的@RequestMapping也被SpringMVC加载的问题解决

问题描述 在之前发布的《Spring Cloud实战小贴士:Feign的继承特性(伪RPC模式)》一文中,我们介绍了如果使用Feign的继承特性来完成服务的提供以及服务的消费,实现了类似RPC的编程模式。但是,仔细一些的读者可能已经发现一个问题&a…

GIF发明者感染新冠后去世,没有他就没有表情包

文 | 金磊 发自 凹非寺源 | 量子位GIF(图形交换格式)发明人Stephen Wilhite,被曝去世,享年74岁。▲Stephen Wilhite据The Verge表示,在经过与Wilhite的妻子Kathaleen交流之后,确认他是于上周因感染新冠病毒…

LeetCode 1073. 负二进制数相加(负数进制)

1. 题目 给出基数为 -2 的两个数 arr1 和 arr2,返回两数相加的结果。 数字以 数组形式 给出:数组由若干 0 和 1 组成,按最高有效位到最低有效位的顺序排列。例如,arr [1,1,0,1] 表示数字 (-2)3 (-2)2 (-2)0 -3。数组形式 的…

图谱实战 | 真实世界医疗知识图谱及临床事件图谱构建

转载公众号 | DataFunTalk分享嘉宾:李林峰博士 医渡云 技术创新副总裁编辑整理:田育珍 搜狗出品平台:DataFunTalk导读:今天介绍的主题是真实世界医疗知识图谱及临床事件图谱的构建。数据源主要来自于医院的EMR、HIS、LIS、RIS等系…

Spring Cloud实战小贴士:Feign的继承特性(伪RPC模式)

通过之前发布的《Spring Cloud构建微服务架构:服务消费者(Feign)》,我们已经学会如何使用Spring MVC的注解来绑定服务接口。我们几乎完全可以从服务提供方的Controller中依靠复制操作,来构建出相应的服务接口客户端&am…

这个北航妹子也太卷了...

大家好,今天介绍一位好朋友,毕业于北航的AI算法小姐姐 rumor。rumor刚毕业时从事量化工作,后来转岗到互联网做算法,斩获了众多大厂offer,下面是她跳槽时整理的算法工程师面试知识点:就拿其中的数据结构节点…

LeetCode 1138. 字母板上的路径

1. 题目 我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。 在本题里,字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]. 我们可以按下面的指令规则行动:如果方格存在,U…

开源开放 | 中药说明书实体识别数据集TCM-NER

OpenKG地址:http://openkg.cn/dataset/tcm-ner阿里云天池:https://tianchi.aliyun.com/dataset/dataDetail?dataId86819开放许可协议:CC BY-SA 4.0 (署名相似共享)贡献者:阿里云(陈漠沙&#x…

【公益】开放一台Eureka注册中心给各位Spring Cloud爱好者

这是一篇博客福利! 相信很多关注Spring Cloud的爱好者们,不论是读我的系列文章和书籍还是看其他朋友们写的博客佳文,都不可避免的启动多个项目来体验Spring Cloud带来的整套微服务架构方案。其中,Eureka注册中心几乎是每个试验都必…

首个视觉-语言预训练综述来了!

文 | Feilong Chen等编 | 陈萍源 | 机器之心一文了解视觉 - 语言预训练最新进展和新领域。让机器做出与人类相似的反应一直是 AI 研究不懈追求的目标。为了让机器具有感知和思考的能力,研究人员进行了一系列相关研究,如人脸识别、阅读理解和人机对话&…

LeetCode 1233. 删除子文件夹

1. 题目 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 我们这样定义「子文件夹」: 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下&…

学术会议 | 欢迎注册参加第21届国际语义网大会ISWC-会议日程发布

ISWC(International Semantic Web Conference)是语义网和知识图谱领域的国际顶级学术会议,2022年10月23-27日,ISWC将通过线上的方式举办,汇聚全世界相关的科研工作者、从业者和领域专家,共同探讨、推进、塑造知识图谱与语义网技术…

Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】

本篇作为《Spring Cloud微服务实战》一书关于Spring Cloud Zuul网关在Dalston版本对异常处理的补充。没有看过本书的读书也不要紧,可以先阅读我之前的两篇博文:《Spring Cloud实战小贴士:Zuul统一异常处理(一)》和《Sp…