一、什么是知识图谱
含有实体对象以及对象之间关系的图系。
二、什么时候使用知识图谱
1、需要数据可视化;
2、需要消除信息孤岛;
3、需要建立复杂的深度搜索关系;
4、实时搜索的时效性要求高;
三、知识图谱构建过程
知识图谱构建的过程:定义具体的问题、抽取数据、处理数据、设计数据存储、将数据存储到模型中、上层应用开发
四、定义问题、数据收集、数据处理
知识图谱的搭建有成本,有些简单的问题可以通过传统的数据库解决,就无须搭建知识图谱。在确定哪些场景哪些业务需要搭建知识图谱后,需要进行数据收集和处理。
数据抽取分为两种对象:1、企业或行业已具备的知识内容,有固定的结构,稍作处理,就能纳入知识图谱;2、通过爬虫等技术获取互联网相关的信息、知识等内容,需要将非结构化的数据转化为结构化的数据。
非结构化数据转成结构化数据时需要结合NLP技术来解决以下几个问题:
1、实体标注:约定俗成的命名实体,比如:杭州
2、抽取关系:抽取实体之间的关系,比如:杭州在浙江,“在"就是一种地域的归属关系;
3、实体统一:描述同一种实体的不同称呼,比如杭州,浙江省会城市,这两个描述都是在指杭州这座城市;
4、指代消解:他、她、那里、这边等代词的实体指称;
五、知识图谱设计和存储
知识图谱的设计需要确认哪些是实体、关系和属性,哪些信息不需要放入图谱……循以下原则:
1、业务原则和分析原则:从业务出发,以业务逻辑为准则,预想未来的业务发展可能性。分析现有的业务逻辑,提取共性的内容作为实体,建立实体与实体之间的关系;
2、效率原则和冗余原则:从存储出发,考虑将不必要的数据放入传统的数据库中,将知识图谱中核心的关键数据存入图谱,便于计算机通过内存访问,轻量级的载体。
两种常见的存储方式:1、基于RDF;2、基于图数据库;
基于RDF:1、易于数据发布;2、用作学术界场景;3、存储三元组;4、W3C;5、有推理引擎;
基于图数据库:1、节点和关系可以带有属性;2、用作工业界场景;3、图的遍历效率高;4、事务性管理;5、没有推理引擎。
常见的图数据库:Neo4j、MarkLogic、OrientDB、Jena
Neo4j不支持分布式,10亿节点以下规模的图谱可以轻松支持;
Jena支持RDF很不错;
六、上层应用开发
知识图谱的构建最终是为了上层应用,常见的算法模型有两类:
1、基于规则的:垂直行业最常用的还是基于规则的算法模型;
2、基于概率的:基于概率统计的基础,比如社区挖掘、标签传播等。