一文读懂知识图谱

今天和大家聊一聊知识图谱,NLP领域相对独立的方向。

过去,有同学把它视为AI的“天坑”之一,因为知识图谱技术栈比较长,如果要掌握所有技术,入门时间会很长,而且往往抓不住重点。

下面我分享一下自己对图谱的理解,以及一些实用的入门资料,希望能对你的学习有帮助!

1 什么是知识图谱?

通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。

比如我想去买车,往往会对比品牌、价格、性能、排量等各方面因素。假如我现在看中了奥迪,想知道“奥迪A4、A5、A6分别多少钱?”

人工客服很难24h响应消费者需求,这时机器人会根据后台存储的结构化数据自动识别。简化版的结构化表格如下所示:

8335a29d73afacf88f9319e552cb5221.png

如果没有图谱,用传统的分类、匹配等意图识别方法,首先很难一次回答两种以上车型的价格,其次这些相似问都很接近,直接通过语义区分难度很大。

A4多少钱?/ A5多少钱?/  A6多少钱?

三句话只差一个数字,句向量相似度98%,意图相同(咨询车价)。而图谱首先定位句中实体A4、A5、A6,然后识别出属性“价格”,最后通过“实体-属性-价格”三元组找到正确答案。

知识图谱网络具备以下3种特性:

1.1 由节点(Point)和边(Edge)组成

7da99e9a74071a73b8bbaf61ca67c2be.png

1.2 每个节点表示现实世界存在的“实体”,每条边为实体与实体之间的“关系”

61c91024cc4b99be388e559918214714.png

1.3 知识图谱是关系的最有效的表示方式

92bdf3ef4dc34562ab925f549eef0622.png

所以,知识图谱本质上就是语义网络,是一种基于图的数据结构。

2 知识图谱能干什么?

知识图谱的应用主要分为两大类:

一是通用知识图谱,通俗讲就是大众版,没有特别深的行业知识及专业内容,一般是解决科普类、常识类等问题。

二是行业知识图谱,通俗讲就是专业版,根据对某个行业或垂域的深入研究而定制的版本,主要是解决当前行业或细分领域的专业问题。

2.1 通用知识图谱

我们日常见到的都是通用知识图谱,主要应用于面向互联网的搜索、推荐、问答等业务场景;

先列举3个通用知识图谱的案例:

2.1.1 百度知识图谱

f26580a1a919487281d5ad78f526e810.png

2.1.2 搜狗搜索(sogou.com/)

fa65663dbd4bc4ec9e6920693f87346f.png

2.1.3 360搜索(so.com)

3d13f5902a6c01e96b1c7c9e939428af.png

2.2 行业知识图谱

行业知识图谱指面向特定领域的知识图谱,用户目标对象需要考虑行业中各级别的人员,不同人员对应的操作和业务场景不同,因而需要一定的深度与完备性。

行业知识图谱对准确度要求非常高,通常用于辅助各种复杂的分析应用或决策支持,有严格与丰富的数据模式,行业知识图谱中的实体通常属性比较多且具有行业意义。

28f42e32ba02c3adc7721e1aa31fbfe4.png

2.2.1 人脉路径查询

基于两个用户之间的关联实体(比如:所在单位、同事、同学、朋友、家人等)找到两者之间的关联路径。

f26bebd6dec69481709aa33b2273ded8.png

2.2.2 企业社交图谱查询

基于投资、任职、专利、招投标、涉诉关系以目标企业为核心心向外层层扩散,形成一个网络关系图,直观立体展现企业关联。

80890c714393d08064a0c6e19fabd05e.png

2.2.3 企业最终控股人查询

基于股权投资关系寻找持股比例最大的股东,最终追溯至自然人或国有资源管理部门。

59dc036be78ec0b7358d6808cf89b51c.png

2.2.4 辅助信贷审核

基于知识图谱数据的统一查询,全面掌握客户信息;避免由于系统、数据孤立、信息不一致造成信用重复使用、信息不完整等问题。

a1fa36b7ed0bb0b8aeef148d63178f2e.png

2.2.5 反欺诈之组团骗贷

同一个人利用多个身份去申请贷款,详细见下图:虽然贷款人A、贷款人B、贷款人C之间没有直接的关系,但通过知识图谱可以看出三者之间都共享某一部分信息,存在一定的组团骗贷风险。

1cf95e5625c397a14b9c4812dab1f972.png

建设一个知识图谱系统,需要包括:知识建模、知识获取、知识融合、知识存储和知识应用5大部分

1、知识建模:构建多层级知识体系,将抽象的知识、属性、关联联关系等信息,进行定义、组织、管理,转化成现实的数据库。

2、知识获取:将不同来源、不同结构的数据转化成图谱数据,包括结构化数据、半结构化数据(解析)、知识标引、知识推理等,保障数据的有效性和完整性。

3、知识融合:将多个来源、重复的知识信息进行融合,包括融合计算、融合计算引擎、手动操作融合等。

4、知识存储:根据业务场景提供合理的知识存储方案,存储方案具备灵活、多样化、可拓展特性。

5、知识应用:为已构建知识图谱提供图谱检索、知识计算、图谱可视化等分析与应用能力。并提供各类知识计算的SDK,包含图谱基础应用类、图结构分析类、图谱语义应用类、自然语言处理类、图数据获取类、图谱统计类、数据集数据获取类、数据集统计类。

最后送大家一些我收藏的知识图谱入门资料。

为了了解如何做一个知识图谱,可以先读一下DBpedia的论文:

Zhishi.me - Weaving Chinese Linking Open Data

如果有时间,最好能动手实践做一个百科知识图谱,比如做一个佛学百科知识图谱:

KG-Buddhism: The Chinese Knowledge Graph on Buddhism

知识图谱构建,开发者还需要掌握D2R技术,这里有一个非常好的教程,做一下应该很有帮助:

https://github.com/ryotayamanaka/jist2018-tutorial/wiki

对于知识抽取,包括关系抽取,槽填充,语义角色标注这些,先简单写模板,就够了,如果还想了解更多技术,需要学习word2vec技术,斯坦福NLP网站有很全的资料。

知识推理比较复杂,初学者可以略过,或者了解一下RDFS即可。

知识存储学一下neo4jMongoDB就可以了,可以试着把自己构建的图谱导入到neo4j做一个可视化效果看看。

推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书