知识图谱怎么去做,这当然不是几句话说得清楚的。首先肯定要先基于自身的业务进行思考,这里整理一些知识图谱构建的主要路径。

构建的逻辑思路

  • 1、梳理业务,构建本体:是否需要用知识图谱?成本怎么样,能达到怎么的效果?是否有能力构建知识图谱?数据、团队等情况是否能支撑?如果有必要,如何根据业务梳理一套本体框架?
  • 2、编辑本体,给出业务知识表示框架:可以利用Protege进行本体编辑,获得一个用OWL表示的知识表示文件。
  • 3、给本体补充实例数据:先找一些示例数据,便于理解。

构建的不同方式

  • 自顶向下的构建方式:先定义本体和数据模式,再将实体加入知识库。利用一些现有的结构化知识库作为其基础知识库。
  • 自底向上的构建方式:从一些开放链接数据中提取出实体,选择其中置信度较高的加入到知识库,再构建顶层的本体模式。

构建过程中的关键技术

  • 大体包含五个方面:知识抽取、知识表示、知识融合、知识加工、知识评估
  • 通过知识提取技术,可以从一些公开的半结构化、非结构化和第三方结构化数据库的数据中提取出实体、关系、属性等知识要素。
  • 知识表示则通过一定有效手段对知识要素表示,便于进一步处理使用。分布式的知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。
  • 然后通过知识融合,可消除实体、关系、属性等指称项与事实对象之间的歧义,形成高质量的知识库。
  • 知识加工则是在已有的知识库基础上进一步挖掘隐含的知识,构建新本体,补全关系,从而丰富、扩展知识库。
  • 知识评估可以对知识的可信度进行量化,保留置信度较高的,舍弃置信度较低的,有效确保知识的质量。
  • 除此之外,大规模知识图谱构建,还需要多种技术的支持:分布式存储和计算、图数据库、图推理、内存数据库等。

数据的存储数据库选择

  • 知识图谱的存储和查询语言也经历了历史的洗涤,从RDF到OWL以及SPARQL查询,都逐渐因为使用上的不便及高昂的成本,而被工业界主流所遗弃。

图数据库逐步成为目前主要的知识图谱存储方式。

  • 目前应用比较广泛的图数据库包括Neo4j、graphsql、sparkgraphx(包含图计算引擎)、基于hbase的Titan、BlazeGraph等,各家的存储语言和查询语言也不尽相同。

实际应用场景下,OrientDB和postgresql也有很多的应用,主要原因是其相对低廉的实现成本和性能优势。

应用推理和知识自学习

  • 在知识图谱构建过程中,还存在很多关系补全问题。虽然一个普通的知识图谱可能存在数百万的实体和数亿的关系事实,但相距补全还差很远。

知识图谱的补全是通过现有知识图谱来预测实体之间的关系,是对关系抽取的重要补充。

  • 传统方法TransE和TransH通过把关系作为从实体A到实体B的翻译来建立实体和关系嵌入,但是这些模型仅仅简单地假设实体和关系处于相同的语义空间。

而事实上,一个实体是由多种属性组成的综合体,不同关系关注实体的不同属性,所以仅仅在一个空间内对他们进行建模是不够的。

相关资料


小磊哥er
409 声望37 粉丝

大前端工程师