知识图谱学习

目录

第1章、知识图谱概述

广泛应用于各领域

 知识图谱的技术架构

第2章 知识图谱技术体系

知识表示与知识建模

知识表示

 知识建模

知识抽取与知识挖掘

 知识抽取

知识抽取的方法

知识抽取的任务

 知识挖掘

知识存储与知识融合 

知识存储

知识融合

知识检索与知识推理 

知识检索

知识推理

第3章 知识图谱工具

知识建模工具

知识抽取工具

知识存储工具

第4章:从零构建通用知识图谱

通用知识表示与抽取

通用知识数据来源

实体层构建

 表述层构建

 概念层构建

知识增强

 实体层知识增强

模式完善

实体链接:表述层与实体层之间的映射

实体分类:实体层与概念层之间的映射

百科知识存储与更新

 属性图存储模型

 知识存储

知识更新

第5章 领域知识图谱构建

两个具体实例:

医疗领域知识图谱:

用户画像图谱

第6章 知识图谱应用

知识可视化

实体链接

实体链接应用

信息抽取和知识扩充

信息检索和问答

知识问答

知识问答系统的主要流程:

主流知识问答系统介绍

联想

联想回复生成

第7章  基于知识图谱的问答系统

项目整体流程图:

自然语言理解

意图理解

文本相似度与向量化

对话管理

知识问答

闲聊

自然语言生成

服务化

第8章 总结


第1章、知识图谱概述

知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过知识图谱能够将Web上的信息、数据以及链接关系聚集为知识,使信息资源更易于计算、理解以及评价,并能实现知识的快速响应和推理。知识图谱的概念是和Web、自然语言处理(NLP)、知识表示(KR)、数据库(DB)、人工智能(AI)等密切相关的。

广泛应用于各领域

当下知识图谱已在工业领域得到了广泛应用,如搜索领域的Google搜索、百度搜索,社交领域的领英经济图谱,企业信息领域的天眼查企业图谱,电商领域的淘宝商品图谱,O2O领域的美团知识大脑,医疗领域的丁香园知识图谱,以及工业制造业知识图谱等。在投资研究领域,成立于2010年的AlphaSense,公司打造了一款新的金融知识引擎;在投资研究领域,成立于2010年的AlphaSense[6]公司打造了一款新的金融知识引擎

在知识图谱技术发展初期,很多企业和科研机构会采用自顶向下的方式构建基础知识库,如 Freebase。随着自动知识抽取与加工技术的不断成熟,当前的知识图谱大多采用自底向上的方式构建,如 Google 的 Knowledge Vault 和微软的 Satori 知识库。

 知识图谱的技术架构

知识图谱的构建技术主要有自顶向下自底向上两种。

    自顶向下构建:借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里。
    自底向上构建:借助一定的技术手段,从公开采集的数据中提取出资源模式,选择其中置信度较高的信息,加入到知识库中。

第2章 知识图谱技术体系

知识表示与知识建模

知识表示

通过将知识按照一定的方法进行表示和存储,才能让计算机系统更高效地处理和利用知识。实际上,知识表示是人工智能领域一个较为核心的问题。

知识表示的五种角色:真实世界中知识的抽象替代、本体论的集合、不完整的智能推理理论、高效计算的媒介、知识的中间体。(这些分别扩展)

描述语言:资源描述框架(RDF)及网络本体语言(OWL)对知识进行描述,且两者都使用可扩展标记语言(Extensible Markup Language,XML)作为核心语法

XML:XML是一种格式整齐、易于使用并可扩展的标记语言,允许使用者创建独一无二的标签来描述内容

如下:

1. <?xml version="1.0" encoding="UTF-8"?>
2. <NOTE>
3. <company_list>
4.     <company>
5.     <name>Xiaomi </name>
6.     <represent >Lei Jun</represent>
7.     <category> Sole proprietorship enterprise </category >
8.     <address>Beijing</address>
9.     </company >
10.     <company>
11.     ……
12.     </company >
13. </company_list >
14. <NOTE>

RDF:在RDF中,知识以三元组的形式编码,其中每个三元组由一个主语、一个谓词(或一个属性)和一个宾语组成,可以方便地将RDF转化为自然语言

IRI:唯一标识资源的国际化资源表示符

                                      图2-1  rdf表示的三元组

OWL:OWL是W3C Web本体工作组设计的一种知识表示语言,旨在对特定领域的知识进行表示、交换和推理,经常被用于对本体知识进行表示;与XML和RDF相比,OWL提供了更丰富的推理方法和词汇表,其中包括但不限于类之间的关系、基数、更丰富的属性特征和枚举类等。同时,为了适应不同场景,OWL拥有三个不同级别的方案,分别是OWL Lite、OWL DL和OWL Full。

OWL Lite:支持用于构造分类法和叙词表的简单约束和分类层次结构,类的基数(类中属性的数量)限制为0和1。

OWL DL:在保持计算完整性和可判定性的同时,提供了最大的表达能力,并且OWL DL类之间的基数不限于0和1

OWL Full:包含OWL的完整特性,并且对RDF有很好的支持。

                                     图2-2 OWL Lite、OWL DL与OWL DL的关系

小总结:从整体的角度看,XML作为知识表示的核心语法和语言,在不同知识表示语言中都起着举足轻重的作用。在XML的基础上,RDF将知识转化为三元组的形式,并且使用IRI作为不同知识的唯一标识符,使得知识对于计算机和人而言都更具可读性。而OWL在RDF的基础上,利用类和实体的概念,将知识进一步抽象成本体的表示,使现实世界的知识得以更完整、更有层次地表示。在了解了知识表示方法的基础上,需要更进一步明确采用什么样的建模方法对知识进行建模

 知识建模

知识建模定义:建立计算机可解释的知识模型的过程。这些模型可以是一些通用领域的知识模型,也可以是对于某种产品的解释或规范。

知识建模的主要过程分析:知识获取(根据知识系统的要求从多个来源使用不同方法获取知识,然后对获取到的知识进行判别并分类保存),知识结构化(使用不同方法对非结构化的知识进行表示和存储,以达到建模的目的)。

强调:在任何情况下,没有一种绝对“好”的建模方案,只有相对适合的方案。所以根据不同场景进行实践得到的结论,是对知识建模最好的指南

经过上述步骤以后,获取到的信息更多是非结构化或半结构化的信息,这样的信息实际上是无法被计算机直接利用的,所以在完成上述步骤后,还需要对已获取到的知识进行结构化。结构化的核心目标是将非结构化的数据结构化,并使用计算机可读的知识表示方法进行表示。

知识抽取:知识抽取部分主要负责对非结构化或半结构化的知识(通常为自然语言或接近自然语言)进行抽取,并为后续的知识表示提供便利。

在知识抽取得到结构化数据后,我们还需要将其转换成计算机可读的形式,一种常见的做法是构建本体,并将知识保存为RDF或OWL文件

本体:是一种对于现实世界概念化的规范,即知识的一种抽象模型,抽象了不同实体的特征并将其泛化成不同类和关系。

本体的构建方法:METHONTOLOGY法、七步法等。

知识抽取与知识挖掘

 知识抽取

定义:知识抽取是指从不同来源、不同结构的数据中,利用实体抽取、关系抽取、事件抽取等抽取知识的技术。

知识抽取的方法

1.结构化数据的抽取:关系数据库和链接数据

关系数据库:采用标准化方法(直接映射:直接映射的本质是通过编写启发式规则,把关系数据库中的表转换为RDF格式三元组。R2RML:R2RML是一种将关系数据库数据映射到RDF数据的语言,可以定制映射,因此更为灵活)

链接数据:需要从中(通常是已有的通用知识图谱)抽取出一个子集,形成领域知识图谱。

2.半结构化数据的抽取:百科类数据和普通网页数据

百科类数据:例如维基百科、百度百科,其知识结构较为明确,一般以“键值对”的形式出现,易于抽取。基于这类数据,已经形成较为成熟的知识图谱,例如DBpediaZhishi.me

普通网页数据:通用的抽取方法为包装器。包装器是一类能够将数据从HTML网页中抽取出来,并将其还原为结构化数据的技术。包装器的实现方式主要有三种,分别是手工方法、包装器归纳和自动抽取

3.非结构化数据的抽取:非结构化数据,典型的有文本、图片、音频、视频等,它们占据了互联网数据中的绝大部分;文本信息抽取主要由三个子任务构成,分别是实体抽取、关系抽取和事件抽取。知识图谱以图模型进行表示时,实体抽取产生的实体便是结点,关系抽取产生的关系为结点之间的连接边,因此关系抽取在知识图谱领域非常重要。

知识抽取的任务:

1.实体抽取:实体抽取,指的是抽取文本中的原子信息,形成实体结点。

       基于规则和词典的抽取方法、基于实体词典的抽取方法、基于统计学习的抽取方法、混合抽取方法

2.关系抽取:关系抽取,指的是从文本中抽取出两个或者多个实体之间的语义关系,例如:“雷军,他是中国著名企业家,小米科技的创始人。

    基于规则的抽取方法、基于依存句法分析的关系抽取方法、监督学习方法(基于监督学习的关系抽取可以看作一个分类问题)、半监督学习方法(基于种子数据的启发式算法和远程监督学习方法)

3.事件抽取:事件抽取,指的是从自然语言中抽取出用户感兴趣的事件信息,并以结构化的形式存储,目前在自动问答、自动文摘、信息检索领域应用较为广泛。

        元事件抽取(模式匹配和机器学习)、主题事件抽取(基于事件框架的主题事件抽取和基于本体的主题事件抽取)

 知识挖掘

定义:知识挖掘是指从文本或者知识库中挖掘新的实体或实体关系,并与已有的知识相关联的过程。

实体链接与消歧定义:实体链接是指从自然语言文本中的实体指称映射到知识库对应的实体的过程。消歧是指由于知识库中的实体繁多,容易出现同一个实体名包含多个实体或多个实体名指向同一个实体的情况,需要对实体做消歧处理。

实体链接与消歧基本流程

1.实体指称识别:实体指称识别与知识抽取中的实体抽取相同,可以使用基于规则和词典的抽取方法,通过构建抽取模板或者实体字典来识别实体指称,也可以使用基于统计学习的抽取方法,将实体指称识别看作序列标注问题,使用经典的HMM、CRF算法解决,还可以使用如LSTM-CRF的混合抽取方法来识别文本中的实体指称

2.候选实体生成:候选实体生成,即由文本中识别的实体指称生成可能链接的候选实体集合。(基于实体指称字典的生成方法、基于搜索引擎的生成方法、基于实体指称表面扩展的生成方法)

3.候选实体排序:生成候选实体集合后,集合中往往还包含多个候选实体,需要对其进行排序,筛选出实体指称真正指代的实体。(基于监督学习的候选实体排序方法又可分为基于二分类模型的方法、基于排序模型的方法和基于图的方法)

知识规则挖掘:知识规则挖掘是对知识结构的挖掘,可以针对现有的知识体系,利用部分规则,挖掘出新的知识。知识规则挖掘分为基于关联规则的挖掘基于统计关系学习的挖掘

关联规则:关联规则(Association Rule)是形如X→Y的蕴含表达式,其中X和Y是不相交的两个项集。其强度可以用支持度(Support)和置信度(Confidence)来衡量。X→Y的支持度表示集合X与集合Y中的项同时出现的个数与总个数的比值,X→Y的置信度表示集合X与集合Y中的项同时出现的个数与集合X个数的比值

1.基于关联规则的数据挖掘:基于关联规则的挖掘是挖掘知识库中类别与类别之间的某种潜在联系,所发现的联系可以用关联规则或者频繁项集来表示(下图为例子)

2. 基于统计关系学习的挖掘:基于统计关系学习的挖掘,是利用知识库中已知的三元组,通过统计关系学习,对未知三元组成立的可能性进行预测,可用于完善现有的知识图谱。(下图为例子)

知识存储与知识融合 

知识存储

定义:知识存储是考虑业务场景及数据规模等条件,选择合适的存储方式,将结构化的知识存储在相应数据库中的过程,实现对数据的有效管理和计算。

分类:(按照存储结构)

1. 基于表结构的知识存储:基于表结构的知识存储,是指将知识图谱中的数据存储在二维的数据表中,根据表的不同设计原则,分为关系数据库、三元组表(三列对应Subject,Predicate,Object,简单粗暴,扩展性强)和类型表(类型表解决了三元组表单表数据过大、结构简单的问题,但类型表的多表连接操作开销很大)

2.基于图结构的知识存储:基于图结构的知识存储,即利用图数据库对知识图谱中的数据进行存储。图数据库分为三种,资源描述框架(RDF,RDF是一种数据模式,而不是序列化格式,具体的存储表示形式可以为XML、Turtle或N-Triples)、属性图(带标签的属性图,简单直观,较好地描述了业务中包含的逻辑关系)和超图(超图可以解决标签网络中一条边包含多个结点的问题,也可以解决由简单图构成的图谱中的共指消解和分割等问题)

共指消解:自然语言处理、机器翻译、信息抽取、信息检索等领域的关键技术之一,在自然语言中起超链接的作用。

常用的图数据库介绍:

1.Neo4j:Neo4j是一个开源的图数据库系统,也是目前最受欢迎的图数据库。它将结构化数据存储在图上而不是表中。Neo4j基于Java实现,具有前端展示页面,可以使用Cypher语言查询。Neo4j是一个具备完全事务特性的高性能数据库,具有成熟数据库的所有特性

Cypher是一种专门用于图数据库(如Neo4j)的查询语言,它提供了一种强大且易于使用的声明式查询方式,用于处理图形数据

2. OrientDB:OrientDB是一个开源的NoSQL(非关系型)数据库管理系统,基于Java语言实现。它是一个多模型数据库,兼具图数据库强大的表示及组织能力,以及文档数据库的灵活性和可扩展性。
3.HyperGraphDB:HyperGraphDB是一个可用于通用环境下的强大存储系统,依托BerkeleyDB数据库的开源存储系统,相较于其他图数据库具有更强大的数据建模和知识表示能力
 

知识融合

定义:知识融合,是通过高层次的知识组织,使来自不同知识源的知识在同一框架规范下进行异构数据整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识库。

分类:知识融合分为概念层知识融合(本体匹配,跨语言融合)和数据层知识融合(实体对齐)

1.概念层知识融合:概念层知识融合就是将这些不同的分类体系和属性体系,统一为一个全局的体系。
 

本体匹配分类
│
├── 匹配粒度划分
│   ├── 元素层匹配方法
│   └── 结构层匹配方法
│
└── 本体特征划分
    ├── 基于文本的方法(基于文本的方法,是指通过本体的文本描述信息匹配本体)
    ├── 基于结构的方法(利用本体概念间的结构信息来发现匹配,信息包括概念的上下位、同位相邻结点等)
    ├── 基于实例的方法(通过比较两个本体相同实例数量来计算本体之间的相似度,相似度越高,就越匹配)
    ├── 基于背景知识的方法(通过查询外部资源发现匹配的本体,提高匹配精度)
    └── 基于逻辑推理的方法(通过对这些语义知识进行逻辑推理,可以发现未匹配的本体,也可以对初步匹配的本体做逻辑上的推断)

2. 数据层知识融合
 实体对齐:
(成对实体对齐:基于概率模型的成对实体对齐方法和基于机器学习的成对实体对齐方法)
(集体实体对齐:基于相似性传播的集体实体对齐方法和基于概率模型的集体实体对齐方法)
3.数据融合工具:Falcon-AO(实用的自动化本体匹配工具,基于Java语言实现,可以对输入的两个Web本体自动匹配)、XLORE(融合中英文维基百科、法语维基百科和百度百科,对百科知识进行结构化和跨语言链接构建的多语言知识图谱)、Dedupe(用于模糊匹配、重复记录删除和实体解析)
 

知识检索与知识推理 

知识检索

定义:根据某些条件或关键词,通过对知识图谱进行查询,返回相关信息,知识检索不仅仅返回简单的数据列表,还以结构化的形式返回信息,与人类的认知过程一致。

检索手段:基于查询语言的知识检索和基于语义的知识检索(即语义搜索->语义搜索的本质是通过数学方法来摆脱传统搜索方法中的近似和不精确,并且为词语的含义以及这些词如何与输入的词语进行关联找到一种清晰的理解方式)

知识推理

定义:所谓推理就是通过各种方法获取新的知识或者结论。知识推理主要是利用现有知识图谱已存在的事实或者语料,运用算法工具,推理出实体之间的关联的关系,自动产生新的知识,补充缺失的事实,完善知识图谱。
知识推理的方法:

(1)基于符号逻辑的推理——本体推理

(2)基于表运算(Tableaux)及改进的⽅法: FaCT++、 Racer、 Pellet Hermit等

(3)基于Datalog转换的⽅法如KAON、 RDFox等

(4)基于产⽣式规则的算法(如rete): Jena 、 Sesame、 OWLIM等

(5)基于图结构和统计规则挖掘的推理

(6)基于路径排序学习⽅法(PRA, Path ranking Algorithm)

(7)基于关联规则挖掘⽅法(AMIE)

(8)基于知识图谱表示学习的关系推理

将实体和关系都表示为向量

通过向量之间的计算代替图的遍历和搜索来预测三元组的存在,由于向量的表示已经包含了实体原有的语义信息,计算含有⼀定的推理能⼒。可应⽤于链接预测,基于路径的多度查询等

(9)基于概率逻辑的方法

概率逻辑学习有时也叫Relational Machine Learning (RML),关注关系的不确定性和复杂性。

通常使用Bayesian networks or Markov networks

第3章 知识图谱工具

知识建模工具

分类:知识建模工具主要分为手动知识建模工具半自动化知识建模工具两类

Protégé:目前最主流的知识建模工具。Protégé的主要用途包括类建模、实体编辑、模型处理以及模型交换等。

基于Protégé的本体构建中会被多次提到的规则:

1.没有一种绝对正确的领域本体构建方法。实际上,应用场景是构建领域本体的一个非常重要的元素。在构建领域本体时,很多决策以及方法需要根据应用场景来决定。

2.使用Protégé构建本体的过程一定是迭代的。即使领域专家也无法做到一次性生成完整的本体,通常需要通过迭代不断修复或补充细节。

3.Protégé的本体概念应尽可能和领域中的对象(物理上的或逻辑上的)对应,这些对象通常是领域句子中的名词或动词,例如,小米科技有限责任公司的所属地区是北京。

Protégé本体构建的流程:七步法:

1. 决定本体的领域和范围

2. 考虑使用已有本体

3. 列举本体中的关键项

4. 确定类和类的结构

5. 确定类的属性

6. 确定属性的特点

7. 创建实例(实体)

Apollo:Apollo是一款基于GraphQL[9]的图数据库平台,也常被用作本体构建工具。

OntoStudio:OntoStudio是一款用于构建和维护本体的商业建模环境,拥有较为全面的功能,可以直观地对本体进行建模并导入各种通用本体

TopBraid Composer:TopBraid Composer是由TopQuadrant公司开发的一款集本体建模、SPARQL语言请求编辑、数据整合以及集成开发环境(IDE)为一体的语义应用和本体建模工具。

Semantic Turkey:Semantic Turkey是由罗马大学开发的一款基于RDF的本体建模和管理工具。其可以看作对Firefox浏览器的一个基于Java的语义扩展,旨在为在网页浏览中遇到的信息提供创新的收集和管理方案,并在此基础上构建本体。

Knoodl:Knoodl是一款分布式本体建模工具,其中包含创建、管理、分析和可视化本体的组件,且主要组件被托管在亚马逊EC2云服务器中。

Chimaera:Chimaera是由斯坦福大学开发的一款基于Web的本体建模工具,其支持用户在Web上创建和维护分布式本体。

OliEd:OliEd是由英国曼彻斯特大学开发的一款本体建模和编辑工具,其支持使用DAML和OIL语言构建本体。OliEd设计的最初意图是提供一个简单的OIL编辑器并演示如何使用OIL语言。

WebODE:WebODE是一款由西班牙马德里技术大学开发的基于Web的本体构建工具。实际上,WebODE不只是用于本体开发的独立工具,更像是一款本体工程平台。

KMgen:KMgen是一款基于知识机器的本体编辑器。

DOME:DERI本体管理环境(DOME)是由本体管理工作组(OMWG)开发的

知识抽取工具

包括由斯坦福大学研发的DeepDive系统、由卡耐基梅隆大学研发的Nell系统、由清华大学开源的OpenNRE工具以及由华盛顿大学研发的基于开放域的关系抽取工具TextRunner和ReVerb.

DeepDive:非结构化的数据中抽取知识,得到结构化的关系数据。它拥有强大的数据处理能力,能够处理文本、网页、表格、图片等多种格式的无结构数据。DeepDive集成了文件分析、信息提取、信息整合、概率预测等功能,主要应用在特定领域的信息抽取,从系统构建至今,已经在地质、考古、医疗等多个领域的项目实践中取得了较好的效果.

Nell:系统由卡耐基梅隆大学的研究团队开发,可以不间断地从网络中获取信息并填充到自身结构化数据库中,也可以自我学习相应的规则以便更好执行知识抽取任务。截至目前,Nell系统已经获取了2810 379个实例,涵盖1186个不同的实体和关系类别

OpenNRE:OpenNRE[9]是清华大学自然语言处理实验室刘知远老师团队开源的一个基于TensorFlow的神经网络关系抽取工具.

textRunner:是由华盛顿大学图灵中心开发的第一款知识抽取系统,也是最早提出的开放域知识抽取系统。该系统可以直接从网页抽取到实体对和关系的三元组信息,并为抽取得到的三元组计算置信度。

ReVerb:同样是由华盛顿大学图灵中心开发的一款开放域知识抽取系统。该系统增加了基于句法和词汇的约束条件,目的是改善TextRunner系统存在的一些缺陷,如抽取错误三元组和无效三元组。

知识抽取工具对比:

知识存储工具

Neo4j:Neo4j是一款热门的原生图数据库,由Java和Scala编写,于2007年发布。Neo4j在存储级别实现了属性图模型,使用指针方式构建和遍历图数据,同时支持ACID事务。Neo4j分为社区版本和商业版本,收费的商业版本包含备份、分布式、容灾等企业级服务支持。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Microsoft Azure Cosmos DB:Azure Cosmos DB[10]属于云平台产品,托管于微软的Azure,具有全球分布式存储和主备机制。

OrientDB:OrientDB是第一个多数据模型、开源、NoSQL数据库,它将图存储和文档存储的优势结合在一起,实现了一个可扩展、高性能的数据库。

ArangoDB:ArangoDB是一个原生支持多数据模型的开源数据库。数据模型包括文档数据类型、图数据类型和键值对数据类型

Virtuoso:高性能的对象关系数据库。它提供智能SQL编译器,并支持事务和功能强大的存储过程语言。

JanusGraph:JanusGraph[14]是一个分布式图数据库,它由Titan[15]发展而来,继承了Titan的所有特性.

第4章:从零构建通用知识图谱

通用知识表示与抽取

通用知识数据来源

百科(维基百科、百度百科、互动百科)是一类知识聚合站点,采用众包方式维护,知识更新较快,是构建通用知识图谱时普遍采用的数据来源。

词条页面主要可利用信息:标题、摘要、信息框(超链接、拆分合并项、属性值转换和约束)、标签/分类、缩略图

同名消歧:同一个称谓可能对应多个实体。消歧便是通过一段简短的文字描述来区分同名的实体

实体层构建

通用知识图谱的核心是实体层。实体层包含通用知识图谱中的大部分知识,由实体(结点)和实体间的关系(边)构成,还包含每一个实体的若干实体属性以及属性对应的属性值。

实体层示例:

 表述层构建

表述层映射示例

三种实体表述的扩展策略:基于别名类型属性扩展、基于URL匹配扩展、基于URL重定向扩展。

 概念层构建

概念,是真实事物的抽象概括,可以帮助理解实体的内涵本质。概念化是人类特有的一种能力,如何~,对于计算机理解人类深层语义以及构建认知和常识图谱都非常关键。

概念层的应用场景:基于概念的问答系统、基于话题的上下文交互、基于概念的推理和联想

知识增强

 实体层知识增强

实体层的数据存在许多不完善的情况,本节主要分析两种典型问题。第一种是实体未对齐,表现为本质相同的两个实体,由于某些原因无法关联映射。第二种是关系边的遗漏,表现为两个实体之间本应该存在的关系边缺失。

实体对齐:数字id省略、简体繁体、大小写、特殊符号

关系补全:图结构1(包含两个结点和两条关系边,是由两个结点构成的闭环结构。从高频的统计结果中可以发现一定规律,即关系模式可以分为两种)、图结构2(上下位关系、同位关系、人物关系)、图结构3(三个结点组成的闭环结构,结点和结点之间同样仅有一条关系边)

模式完善

由于通用知识图谱的数据量大且数据质量较低,其本质是不依赖于规范模式的知识体系,因此很难一开始便构建出完善的模式体系,只能逐步迭代完善

模式完善分为两部分(实体类别和实体属性)进行:

实体的类别

基于出现频率筛选(模式中实体属性的完善策略同实体概念的完善策略一致,初期应重点扩展高频属性的同位及上下位知识,以降低启动成本,后续再针对长尾的实体属性进行细化和完善)

长尾效应:指的是那些原来不受到重视的销量小但种类多的产品或服务,由于总量巨大,累积起来的总收益超过主流产品的现象。在互联网领域,长尾效应尤为显著

基于相似语义筛选 

实体的属性

实体链接:表述层与实体层之间的映射

在通用知识图谱的构建过程中,需要尽可能补充可以用于实体消歧的特征信息:实体的概括性总结、表述的默认指代、实体短期内的热门程度。

实体链接主要通过机器学习手段实现,那么必然会引入一定的错误.。

实体关系链接预测迭代策略

属性值的链接示例:

实体分类:实体层与概念层之间的映射

定义:实体分类是一个典型的多标签分类问题。

分类方法:基于手工的分类(由人对知识库中的实体进行分类,参与人员主要包括领域专家、数据标注专员、众包人员)、基于规则的分类(通用规则和启发式规则)、基于机器学习的分类

基于通用规则的实体分类方法,主要基于一些先验知识。

基于启发式规则的实体分类方法,是指根据实体的命名规范编写启发式规则以抽取实体类别

 实体分类任务整体流程

输入分类器的标注数据

这两部分数据(人工标注的实体数据分类和通过规则抽取得到的实体分类数据)合并形成训练数据,并采用5折交叉验证的策略,按照训练集与验证集为8:2的比例随机生成。

五折交叉验证(5-fold cross-validation)是一种常用的机器学习模型评估技术,通常用于估计模型的性能和泛化能力。它的基本思想是将原始数据集分成五个相等大小的子集(或折叠),其中四个子集用于训练模型,而剩下的一个子集用于测试模型。这个过程重复五次,每次选择不同的一个子集作为测试集,其余的作为训练集。最后,将五次的性能评估结果取平均值以得到最终评估结果。

 实体分类流程:

数据准备及特征筛选、类别体系、训练数据生成、分类模型、模型预测结果分析

百科知识存储与更新

 属性图存储模型

通用知识图谱属性图模型示例

结点类型:在上图中表示为椭圆框(结点)上依附的矩形框。对整个图谱进行划分,产生若干个子图。

结点属性:如上图所示,“小米公司”结点包含“成立时间”和“公司口号”两个属性。

结点间的关系

 知识存储

数据导入流程图

结点数据文件:需要包含图谱存储的所有结点的信息,包括结点类型和结点属性

结点生成:BatchInserter(BatchInserter是Neo4j原生支持的批量数据导入工具,在生成结点方面效率非常高,并且基于Java语言,可以动态适配输入数据的格式)

数据库文件夹及id映射文件:最终会生成一个文件夹graph.db,即数据库文件夹,以及一个文件node_id.txt,即id映射文件。

Neo4j部署方法:1.创建路径存放数据库 2.启动Neo4j 3.图谱可视化 4.关系数据文件 5关系生成:Load CSV

Load CSV是Neo4j原生支持的数据批量导入工具,作为Cypher语言的一部分,可直接在Neo4j的终端中执行

知识更新

分类:数据的更新方式往往分为两种,全量更新和增量更新。

全量更新:针对整个知识图谱进行更新的策略。全量更新的代价较大,往往采用周期性的方式执行,例如每隔一个月执行一次。

增量更新:增量更新是指可以在已有数据的基础上小规模更新部分数据。当知识图谱的规模较大、而知识更新规模较小时,增量更新更加适用。

通用的增量更新策略:创建新实体结点、删除旧实体结点的入边、创建新实体结点的入边、创建新实体结点的入边、删除旧实体结点。

第5章 领域知识图谱构建

领域知识图谱:即知识图谱在细分领域的聚焦,如医药、教育、金融领域知识图谱等,也可以视为通用大图谱中的各个领域小子图。

两个具体实例:

医疗领域知识图谱:

医药领域知识图谱是智慧医疗的重要组成部分,可以带来更加高效、智能和精准的医疗服务。主要从领域模式构建领域知识获取领域知识图谱构建图谱展示几个方面介绍。

领域模式构建

知识图谱的模式构建通常有两种方式,一种是自底向上(bottom-up)的构建方式,该方式需要对所有的实体进行类别归纳,先归纳成最细致的小类,然后逐层往上,形成大类概念,该方式普遍适用于通用知识图谱的构建。另一种是自顶向下(top-down)的构建方式,该方式需要为图谱定义数据模式,并从最顶层的概念开始定义,逐步往下进行细化,形成类似树状结构的图谱模式,最后将实体对应到概念中,此类构建方式通常适用于领域或者行业知识图谱的构建。

  医药知识图谱模式示例图

领域知识抽取 :

领域知识抽取包括领域内实体(医药领域的实体抽取,指的是从医药数据源中抽取出特定类型的命名实体->基于医药词典及规则的方法、医药数据库与统计学习相结合、混合抽取方法:LSTM+CRF模型)、关系(指从医药数据源中抽取相关实体的关联关系,也包括对属性和属性值的抽取,主要有基于规则的关系抽取、监督学习和半监督学习的抽取方法等)和属性的抽取。

详解LSTM+CRF模型->LSTM+CRF模型_crf lstm模型输入输出-CSDN博客

领域图谱构建:

已获取实体和关系的抽取结果的基础上,基于这些结构化数据,实际构建图谱。

以excel为例进行构建:原始样例数据、数据导入脚本、创建结点和关系类型、按照格式导入结点和属性信息、使用Neo4j创建结点、使用Neo4j创建关系。这里在书5.2.4,可以回头看。

图谱展示:

用户画像图谱

以图谱方式构建用户画像,尤其深入阐述如何在聊天机器人(Chatbot)及对话系统中进行用户画像的图谱建模。

用户画像图谱数据来源:显示获取和隐式获取。

用户画像知识抽取方法:用户画像的知识抽取是从非结构化文本中抽取知识的过程,本质是一个信息抽取的任务。

信息抽取(Information Extraction,IE)是从海量的自然语言文本中抽取有价值信息的技术,是自然语言处理领域一个很重要的分支。

 TextRank算法是一种用于文本摘要和关键词提取的图形化模型。该算法由Mihalcea和Tarau于2004年提出,是基于PageRank算法的改进版本。

 抽取案例:

     音乐推荐:其推荐的核心是基于用户的音乐喜好,包括喜好的歌手、歌曲风格、歌曲名称、歌曲语言等。

        从结构化数据中获取用户喜好、从无结构化数据中获取用户喜好、音乐NER具体实现(词表匹配、规则、机器学习、深度学习)、音乐NER系统搭建(数据准备、环境安装、模型训练、模型测试以及模型预测)。

第6章 知识图谱应用

知识可视化

定义:结构化的知识以可视化的图谱形式呈现

D3:D3(Data-Driven Document)是一个基于Web标准展现可视化数据的JavaScript库,可以帮助用户使用HTML、CSS、SVG以及Canvas来展示数据。以“结点—关系—结点”方式展示的图谱被称为力导向图(Force-Directed Graph),是D3展示数据的一种重要方式。

ECharts:ECharts是一个使用JavaScript实现的数据可视化图表库,它可以提供直观、交互丰富、可高度个性化定制的数据可视化图表。ECharts提供了包括折线图、柱状图、盒形图、地图、关系图、旭日图在内的20多种可视化类型,并且支持图与图之间的混搭。使用ECharts关系图可以构建结点之间的连接关系,实现知识的可视化。

常见的可视化工具对比:

实体链接

 定义:知识图谱领域,将文本当中的命名实体与其在知识图谱中对应的实体进行映射的过程就叫作实体链。

实体链接任务难度体现:自然语言中对于实体的指称是有歧义、知识图谱中存储的同名实体之间相似度较高、在知识图谱中存储的实体可能会有不同的称呼。

实体链接步骤:任务详细定义、候选实体生成(基于实体名称字典的候选实体生成,基于实体表面形式扩展的实体生成以及基于搜索引擎的候选实体)、候选实体排序(监督排序方法和非监督排序方法)、无链接指称预测。

实体链接工具:Dexter(Dexter使用Java语言完成开发,其整个系统包含JSON Wikipedia、Dexter Core、Utils、 Dexter eval和Dexter Webapp五个主要模块)、 AGDISTIS(AGDISTIS[11]是一款支持多语言、基于Java的开源实体链接框架,较好的扩展性)

实体链接应用

信息抽取和知识扩充

示例图如下

信息检索和问答

信息检索方法由基于关键词的检索,逐步向基于语义的检索演化。

知识问答

知识问答系统:

定义:问答系统(Question Answering System, QA系统)是检索系统的一种高级形式,也可以看作一种特殊形式的对话系统,它能够理解用户的自然语言输入,然后将简洁、准确的回答以自然语言形式返回给用户。

问答系统与信息检索:

信息检索(Information Retrieval, IR)通常以关键字作为搜索输入,帮助用户检索并返回与用户关键词相关的网页或者文档。

信息检索与问答系统的不同:

1.信息检索需要用户自己提取出答案问答系统则是以准确的自然语言作为答案回复,无需二次加工。

2.信息检索,用户要让搜索引擎理解自己的意图,需要一定技巧和检索经验。需多次检索。而问答系统可以理解并处理用户的自然语言输入。

3.信息检索难以胜任复杂问题的检索。问答系统可以通过推理和多跳查询回答这类复杂的问题。

问答系统与数据库查询:

数据库查询和问答系统区别

1.数据库操作对用户的要求较高,需预先处理数据;而问答系统可以理解用户的自然语言输入,简化操作。

2.数据库查询对数据存放的要求高,必须结构化的形式。问答系统对知识存储形式没有过多的限制。

3.两者知识体量不同。数据库查询小,问答系统大。

问答系统与对话系统:

定义:对话系统(Dialog System)是人机交互系统的统称,而问答系统可以看作一种特殊的对话系统

知识问答系统的主要流程:

问句分析:问句分析的主要任务是识别出问句中的关键信息,包括问题类型词、实体词、主题词和中心词等,以及实体和实体之间的依赖关系。包括命名实体识别、词性标注、句法分析和依存分析。

短语映射:短语映射模块的任务是将识别到的实体词、关系词从表述层映射到不同源的知识库底层标签的过程,同一个短语表述可以对应一个实例、一种属性或者一个类。包括本体映射、字符串相似度映射、语义相似度映射。

消歧:消歧模块负责消除短语映射过程中发生的歧义问题,以确保提取的问句信息词(表述层)和知识库实体(资源的标签)的无歧义映射。包括基于字符串相似度的方法和检查属性及其参数(如domain和range参数)的一致性的方法。

查询构建:查询构建模块将前面3个模块的处理结果进行融合,构建起最终的SPARQL查询语句。包括基于模板的方法、基于问句分析的方法、基于问句分析的方法、基于问句分析的方法。

SPARQL (SPARQL Protocol and RDF Query Language),是为RDF开发的一种查询语言和数据获取协议,它是为W3C所开发的RDF数据模型所定义,但是可以用于任何可以用RDF来表示的信息资源。

 多知识源查询:多源知识库查询根据知识库是否能够互连,需要采用不同的策略

主流知识问答系统介绍

实现KBQA的三大主流方法:基于模板的方法、基于语义解析的方法和基于深度学习的方法。

基于模板的方法:又称基于模式匹配的方法,包含模板定义、模板生成和模板匹配三个步骤。

基于语义解析的方法:逻辑表达式是区别于语义解析方法与模板匹配方法的根本差异。词汇映射、构建语法树(自底向上地对语法树的结点进行两两合并,直至生成根结点,完成整个语法树的构建)

弱监督学习:旨在在没有太多监督的情况下构建预测模型的各种学习过程

基于深度学习的方法 :KBQA与深度学习方法的结合,一是基于深度学习方法对传统方法进行改进、二是实现端到端的问答系统(如下图)。

模型处理过程:

问答系统实战:

问答系统的框架如图所示:

联想

定义:联想是一种人类共有的基本能力,而知识图谱对于现实世界的刻画,则给予了AI实现联想能力的可能。分为基于相似性和基于时空相接。

联想识别整体流程:

话题识别:话题识别阶段的任务是从用户的输入语句中提取出有效的话题信息,为后续的扩展联想做准备。分为监督的分类方法和单词级别识别话题(思路为抽取句中的主体成分,并与通用图谱的实体、概念字典进行匹配)

候选话题生成:候选话题生成阶段的任务是基于用户输入语句中的话题展开,联想出更多相关话题,这些话题可以是实体,也可以是概念。

联想的具体实现:基于知识图谱和基于词向量

候选话题排序:基于热点话题事件和基于用户画像图谱和基于bot图谱和基于上下文基于话题排序

联想回复生成

话题联想的最后一个阶段是基于话题联想依据,产生一个人类能够理解的自然语言表述,作为本轮对话的回复,返回给用户。

第7章  基于知识图谱的问答系统

主要是实战了一个项目。回头多看。----------------------------------------------------

项目整体流程图:

整体流程分为三个部分:自然语言理解(对用户输入问句进行语义理解和对各个服务聚能用到的NLU前序结果进行统一管理)、核心对话管理(基础功能、QA功能、闲聊功能、多轮对话功能)、自然语言生成

自然语言理解

自然语言处理(Natural Language Processing,NLP)是指理解人类语言并将其转化为机器可理解的结构化信息的过程,主要包括自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)两大任务。

基础NLU:包括分词、词性标注、命名实体识别、依存句法分析等任务,目标是提取出基础语义特征,供后续模块使用。

几种分词工具:jieba分词、哈工大pyltp分词、HanLP分词(同时这些工具可进行词性标注)

命名实体识别:NER是问答系统中的核心任务之一,可以帮助识别问句中的候选实体词

依存句法分析:依存句法分析是获得句中词和词之间依存关系的任务,其中关系可以是主谓关系(SBV)、动宾关系(VOB)

意图理解

意图理解是整个问答对话系统中重要的任务之一,具体是指对用户输入的句子进行语义理解,进而识别出用户的真实意图,再进入对应的处理模块分别进行处理。本文分为打招呼意图(hello)、问答意图(qa)和闲聊意图(chat)三种。

意图识别方法:相似度检索(数据泛化方法->机器翻译方法、同义词替换、加减词、同义句式改写、生成式改写)、模板匹配、分类模型

数据泛化:是一种数据处理技术,主要用于汇总数据或者减少数据的维度,以便于更好地理解和分析数据。具体来说,数据泛化可以通过将较低层次的概念(例如年龄的数值范围)替换为较高层次的概念(例如青年、中年和老年)来实现,或者通过删除一些属性(如生日和电话号码)来减少数据的维度

分类模型:数据准备、数据集划分、模型训练、模型测试、模型预测

文本相似度与向量化

文本相似度方法,可以做意图识别,也可以为后续基于检索的QA做辅助。

文本相似度:字符串相似度和语义相似度

对话管理

对话管理(Dialogue Management,DM)是整个知识图谱对话系统的总控部分,DM接收NLU的结果,并进行用户意图判断,选择不同的服务模块进行调用。同时,DM还需要管理多轮问答,并对最终结果进行排序输出。

知识问答

从基于知识图谱的知识问答、基于检索的知识问答、基于机器阅读理解的问答三个方面进行实战演练。

闲聊

自然语言生成

对于一个问答系统,根据用户问句获取数据库中的结果之后,需要对结果进行一定改写,让回复更加自然。

服务化

基于tornado服务框架构建后端应用,可简便地接入如微信公众号等应用场景中

第8章 总结

知识图谱仍然有一部分开放问题亟待解决:

1.如何高效从大数据中自动获取知识,是一个亟待解决的问题。

2.常识知识往往数量众多,涵盖范围广,结构不明确,并且存在长尾问题

3.缺乏高效构建高质量的垂直领域知识图谱的方法。

4.知识图谱开源工具和平台的构建需要进一步发展。知识图谱作为一种新兴技术领域,还非常缺乏开源平台及工具。

5.知识图谱存储及应用效率仍需提升。知识相比数据而言,结构更为复杂,而且要考虑到应用中跨域推理和高效查询等需求,对存储的要求也较高

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值