知识图谱综述
通用知识图谱VS行业知识图谱
区别
通用知识图谱 | 行业知识图谱 |
---|---|
广度/深度 | 广度 |
知识类型/来源 | 常识性知识, 百科知识,语言学知识 |
精度 | 低 |
面向群体 | 普通用户 |
代表 | 谷歌大脑 |
类型 | |
模式 | 数据模型固定 |
数据量 | |
获取难度 | 公共数据 |
领域知识图谱
挑战
1.多源异构数据难以融合
2.数据模式动态变迁困难
3.非结构化数据计算机难以理解
4.分散的数据难以统一消费利用
解决方案
• 挑战1:使用知识图谱(本体)对各种类型的数据进行抽象建模,基于可动态变化
的“概念—实体—属性—关系”数据模型,实现各类数据的统一建模。
• 挑战2:使用可支持数据模式动态变化的知识图谱的数据存储,实现对大数据及数
据模式动态变化的支持。
• 挑战3:利用信息抽取技术,对非结构化数据及半结构化数据进行抽取和转换,形
成知识图谱形式的知识。
• 挑战4:在知识融合的基础上,基于语义检索、智能问答、图计算、推理、可
视化等技术,提供统一的数据检索、分析和利用平台。
联系
- 通用知识图谱为行业知识图谱提供基础/体系,细化,则是需要搜寻相应的行业知识
- 行业知识图谱能够通过融合到通用知识图谱当中
关键技术
或者这张图(好好感觉)
知识建模
就是建立图谱的数据模式,就是对整个知识图谱的结构进行定义,构建
- 自顶向下的方法:专家手工编辑形成数据模式
自底向上的方法:
- 基于行业现有的标准进行转换
从现有的高质量行业数据源(如业务系统数据库表)中进行映射
具体方法
实体抽取与合并
以实体为主体目标,实现对不同来源的数据进行映射与合并。(实体抽取与合并)
属性映射与归并
利用属性来表示不同数据源中针对实体的描述,形成对实体的全方位描述(就是合并不同源的属性)。(属性映射与归并)
关系抽取
利用关系来描述各类抽象建模成实体的数据之间的关联关系,从而支持关联分析。(关系抽取,不合并,但是会链接)
实体链接
通过实体链接技术,实现围绕实体的多种类型数据的关联存储。(实体链接)
动态事件描述
使用事件机制描述客观世界中动态发展,体现事件与实体间的关联;并利用时序描述事件的发展状况。(动态事件描述)
工具
主要是采用protege进行本体建模,但是建模工具,才用原生建模,建模速度效率低.对数据的处理量不是很好,容易内存外溢.同时protege支持网页版.有共享开发的功能.客户端是单机构建.
关键技术及其难点
多人在线协同编辑,并且实时更新
能够导入集成使用现有的(结构化)知识
支持大数据量
能够支撑事件、时序等复杂知识表达
可以与自动算法进行结合,避免全人工操作
知识获取
概念
从原始数据中提取对业务有用的知识
·原始数据
·结构化、半结构化、非结构化
·有用的知识
·实体、关系、事件
大纲
•非结构化数据
• 实体识别(识别实体)
• 关系抽取(识别两个实体之间的关系)
• 事件抽取(识别事件中的一组实体间的关系)-->(三者就像是不断递进的过程)
• 结构化数据
• 映射机制
• 半结构化数据
• 包装器
非结构化数据
实体识别
实体识别就是在一个非结构化文本当中找出实体(主语,宾语),然后标注其类型及其位置.
基于规则与词典的识别
·专家知识编写
工具:正则表达式,上下文无关文法.
困难:规则覆盖率低,规则冲突
基于统计学习的方法
前提:大量的标注数据
思想:利用单词的词性、上下文信息等特征进行预测
序列标注算法:HMM, CRF
工具包:StanfordNLP,CRF++,CRFSuite
基于深度学习的方法
·深层特征挖掘
思路:利用深度学习生成更复杂的特征
常用的实体识别工具及方法
1.机器实体识别
• NLTK
• Spacy
• StanfordNLP
• HanNLP
• Tensorflow
• PyTorch
2. 人工实体识别
• 众包机制
关系/文本信息抽取
closeIE(面向特定领域抽取信息) | openIE(面向特定领域抽取信息) |
---|---|
基于面向特定领域,深度,精度高 | 面向开放领域,基于广度,精度较低,基于语言学模式或者常识进行 |
为了做到高精度,那么需要先定义好需要抽取关系类型 | 关系类型不用事先预设好 |
规模较小 | 规模较大 |
解决方案
·OpenIE
·规则引擎
·SystemT:IBM Watson套件使用的组件
·ANNIE (JAPE):GATE中目前使用一套规则引擎
·UIMA Ruta
·Ratel
·正则表达式:TokensRegex
·机器学习模型
·DeepDive
OpenIE:从万维网中抽取关系二元组
• OpenIE的典型代表工具有ReVerb、TextRunner,英文为主
• OpenIE工具准确率比较低,在垂直领域知识图谱构建中实用性不高。
• 适合做信息的粗粒度筛选,然后在此基础上应用其它的信息抽取方法。
DeepDive:关系抽取工具
•DeepDive用于提取实体之间的复杂关系,并对涉及这些实体的事实进行推断。
• 用户只需要关心特征本身,而不是算法
• 允许用户使用规则来提升结果的质量,也考虑用户反馈来提高预测的准确度
• 性质
• Stanford的研究项目
• 状态
• 维护状态,新功能已不在开发
Distant Supervision:远程监督学习
Distant Supervision利用知识库与非结构化文本对齐来自动构建大量训练数据,
进而减少模型对人工标注数据的依赖,增强模型跨领域适应能力。
• 两个实体如果在知识库中存在某种关系,则包含该两个实体的非结构化句子
均能表示出这种关系。
1.例子
• Steve Jobs, Apple在 Freebase中存在founder的关系,
• Steve Jobs was the co-founder and CEO of Apple and formerly Pixar. 可以作为一个训练正例来训练模型。
2.优势
·Distant Supervision方法减少了模型对人工标注数据的依赖
3.不足
·假设过强,引入大量的噪声数据。
·如 “Steven Jobs passed away the day before Apple unveiled iPhone 4s in late 2011”
·数据构造过程依赖于 NER 等 NLP 工具,中间过程出错会造成错误传播问题。
4.方法
·引入先验知识作为限制;
·利用图模型对数据样例打分,滤除置信度较低的句子;
·利用多示例学习方法对测试包打标签;
·采用attention机制对不同置信度的句子赋予不同的权值。
Ratel语言
• 高效的机器学习与规则结合的文本挖掘系统
• 具有一套完整的声明式语言(DSL)
• 具有基于Eclipse的IDE开发环境,支持语法检查、结果查看与规则溯源、规则
执行时间统计。
• 可接入分词、词性识别、命名实体识别、分类、关键词抽取等机器学习模型。
Ratel集成开发环境在ruta(基于规则的文本注释)中:http://uima.apache.org/ruta.html
总结
目前还没有统一的实现各类信息抽取的现成工具。
•分词 实体识别工具:
对现有工具进行集成,依据抽取任务使用不同的工具:进行NLP分词、命名实体识别:
• NLPIR、LTP、FudanNLP、Stanford NLP……
• 关系抽取工具:
• 规则系统 Ratel
• DeepDive 对于行业抽取任务,需要针对性的方法来完成
• 通常基于已有的结构化知识进行远程监督学习
事件抽取
事件抽取可以分为预定义事件抽取和开放域事件
抽取
• 领域知识图谱中主要为预定义事件抽取
方法
• 采用模式匹配方法,包括三个步骤:
• 准备事件触发词表
• 候选事件抽取:寻找含有触发词的句子
• 事件元素识别:根据事件模版抽取相应的元素
事件定义:
事件包括:触发器、事件类型、事件参数、参数角色
事理知识图谱
事理图谱(Event Evolutionary Graph)是一个描述事件之间顺承、因果关系的事理演化逻辑有向图。
总结
• 实体识别
• 基于规则和词典的方法
• 基于统计学习
• 基于深度学习
• 关系抽取
• 规则引擎: Ratel
• 远程监督
• 事件抽取
• 预定义事件模板
• 触发词 -> 事件类型 -> 参数识别 -> 参数角色识别
结构化数据
采用top-down的构建思路:
一种解决方案:
• 数据模式整理
• 数据治理
• 数据映射
• 校验规则
工具
知识获取主要是从三个方面来进行说明的,依据是不同的处理对象:
D2R
结构化数据采用D2R技术->具体工具就是D2RQ,将关系数据库的数据转换成虚拟的RDF数据集,通过映射机制,之后上传到D2RQ 的服务器中,之后采用SPARQL语言进行查询.数据多的话,查询速度就会很慢
包装器
半结构化数据采用包装器技术进行获取数据,具体形式就是采用信息抽取引擎,首先需要配置好包装器,之后设定好规则,然后开始执行
文本信息抽取
文本信息抽取的任务:关系抽取,概念抽取,实体抽取,事件抽取.
非结构化文本(就是txt,html之类的)采用OPENIE或者CloseIE技术,区别如下: 本人研究的是特定邻域的知识图谱,因此选择使用,closeIE方法,其实现工具就是DEEPDIVE这个关系提取工具.DEEPDIVE运行流程如下:
定义抽取任务–>准备好文件/文本–>进行分词/实体识别(NER)–>生成候选关系对–>特征自动生成–>数据自动标注(可以人工提前标注)+外部已经标注数据–>最宗实现关系预测.
难点
- 从结构化数据库中获取知识:D2R
- 难点:复杂表数据的处理
- 从链接数据中获取知识:图映射
- 难点:数据对齐
- 从半结构化(网站)数据中获取知识:使用包装器
- 难点:方便的包装器定义方法,包装器自动生成、更新与维护
- 从文本中获取知识:信息抽取
- 难点:结果的准确率与覆盖率.
知识融合
融合内容
数据模式层融合 | 数据层融合 |
---|---|
概念合并 | 实体合并 |
概念上下位关系合并 | 实体属性融合 |
概念的属性定义合并 | 冲突检测与解决 |
行业知识图谱的融合通常采用自顶向下和自底向上结合的方式,因此基本都经
过人工的校验,保证了可靠性;因此,知识融合的关键任务在数据层的融合。
行业知识图谱的数据模式层通常是由专家人工构建或从可靠的结构化数据中映射得到的,通常在映射时会通过设置融合的规则来确保数据的统一。
数据层融合例子
实体合并
在构建行业知识图谱时,实体优先从结构化的数据在获取;对于结构化的数据,通常有对实体进行唯一标识的主键,因此在进行知识抽取时即可设定实体合并的依据。
从非结构化数据中抽取的实体,同样使用设置合并条件的规则来完成实体的合并;
例如:
企业合并:可以通过企业名称直接合并
企业高管合并:人名相同 + 同一企业 (企业高管中同名的概念极低)
2.实体属性与关系的合并
具有时态特性的属性(如):使用新的数据覆盖老的数据
依据数据源的可靠性进行选取:结构化数据源中的质量通常较高
知识融合关键技术与难点
实现不同来源、不同形态数据的融合
海量数据的高效融合
新增知识的实时整合
多语言的融合
知识存储
基本数据存储
知识图谱数据存储需要完成的基本数据存储
• 三元组知识的存储
• 事件信息的存储
• 时态信息的存储
• 使用知识图谱组织的数据的存储
存储方式
知识图谱是基于图的数据结构**,其存储方式主要有两种方式:
RDF存储(W3C标准,一套完整和复杂的图谱表示框架)
图数据库(Graph Database)(业界实践经验)--JanusGraph,neo4j
JanusGraph
架构:
JanusGraph架构图
JanusGraph可以使用多种非原生的存储系统,包括Hbase, BerkeleyDB, Cassandra, InMemory
RDF
RDF定义
• Resource Description Framework
• Resource: 能被唯一标识的任何对象,如网页、地点
• Description: 资源的属性、关系等
• Framework: 为资源的描述提供了模型、语法等
基本元素
• Internationalized Resource Identifier (IRI)
• 一个符合特定语法的UNICODE字符串,全球唯一
• 如: http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML
• 字面值 (literal)--->可以理解为属性值
• 字符串 + 表示数据类型的IRI
• 如:”1”^^xs:integer -->说明1是整型(分成两部分)
• 空节点 (blank node)
• 没有IRI的匿名节点(直接字符串)
三元组
• RDF对资源的陈述(statement)用三元组表示
• (Subject, Predicate, Object)
• Subject---(IRI, blank node)
• Predicate---(IRI/属性)
• Object---(IRI, blank node, literal)
知识存储关键技术与难点
大规模三元组数据的存储
知识图谱组织的大数据的存储
事件与时态信息的存储
快速推理与图计算的支持
知识计算
计算方式
- 本体推理:使用本体推理进行新知识发现或冲突检测。
- 基于规则的推理:使用规则引擎,编写相应的业务规则,通过推理辅助业务决策。
- 图查询:利用图模式匹配算法,对图谱中的数据进行快速访问。
- 图挖掘计算:基于图论的相关算法,实现对图谱的探索和挖掘
图挖掘计算
图挖掘计算:基于图论的相关算法,实现对图谱的探索和挖掘。
集成实现基本图算法
- 图遍历:广度优先遍历、深度优先遍历
- 最短路径查询: Dijkstra(迪杰斯特拉算法)、Floyd(弗洛伊德算法)
- 路径探寻:给定两个或多个节点,发现它们之间的关联关系
- 权威节点分析:PageRank算法
- 族群发现:最大流算法
- 相似节点发现:基于节点属性、关系的相似度算法
目的
解决大规模的图数据分析问题,这里主要是指批量的计算,适合OLAP的应用场景
特点
• 随机访问、局部性差
• 算法复杂度高
实现方式
图计算引擎将图分布式的存储在内存中,提供简单的编程接口让用户实现复杂且高效的的并行图分析算法。
典型框架
• Google Pregel
• Facebook Giraph
• Berkeley GraphX
• CMU PowerGraph
本体推理
本体推理:使用本体推理进行新知识发现或冲突检测。
本体的五元组表示
本体的五元组表示 O= {C,R,F,A,I}
• C – 概念集合,通常以Taxonomy形式组织
• 球星,清华校友
• R – 关系,描述概念或者实例之间语义关系的集合
• subClassOf,birthplace
• F – 函数,一组特殊的关系,关系中第n个元素的值由 其他n-1个元素的值确定
• Price-of-a-used-car 由 the car-model, manufacturing data 和 kilometers确定
• A – 公理(规则)
• 如果A是B的子女,B是C的子女,则A是C的子孙
• I – 具体个体
• 如:Peter是概念学生的实例
Web Ontology Language = OWL
• OWL进一步提供了更多的术语来描述属性和类别
本体推理基本方法
- 基于表运算及改进的方法:FaCT++、Racer、 Pellet Hermit等
- 基于一阶查询重写的方法(Ontology based data access,基于本体的数据访问)
- 基于产生式规则的算法(如rete):Jena 、Sesame、OWLIM等
- 基于Datalog转换的方法如KAON、RDFox等。
- 回答集程序 Answer set programming。
本体知识推理工具——RDFox
RDFox 特点
支持共享内存并行OWL 2 RL推理
三元组数据可以导出为Turtle文件,规则文件可以导出为RDF数据记录文件;全部数据
内容可以导出为二进制文件,可完全恢复数据存储状态。支持Java、Python多语言APIs访问,并且 RDFox 还支持一种简单的脚本语言与系统的命令行交互。
RDFox完全基于内存,对硬件的要求较高
基于规则的推理
基于规则的推理:使用规则引擎,编写相应的业务规则,通过推理辅助业务决策。
基于规则推理工具——Drools
import com.hiekn.ruleengine.bean.RiskBean;
rule highRiskRule1 //高风险企业规则一:企业注册资金每100万加1分,成立的时长每年加1分,每有失信记录减3分,有税务问题每次减少5分。
when
$risk : RiskBean(eval(true))
then
$risk.addOrMinusScore (702, 1);
$risk.addOrMinusScore (703, 1);
$risk.addOrMinusScore (711, -3);
$risk.addOrMinusScore (712, -5);
#711是类型情况代号
end
补充
基于符号的知识表示
方法
• 一阶谓词逻辑
• 一套灵活且紧凑的对象知识表示方式
• 完善的推理能力和表达能力支持
• Semantic Net
• 一个通过语义关系连接的概念网络
• 表达能力受限,直观但是缺乏语义支持
• Frame
• 直接表示领域知识模型,支持默认推理
• 表达能力受限,缺乏语义支持
• Script
• 表达事件知识,非常受限, 对符合条件的场景非常适合
• 语义网知识表示语言体系
• 面向Web of Data,完善的一整套体系支持
• 有的时候杀鸡用牛刀
优缺点
• 可解释、显式推理
• 难以大规模、语义鸿沟
基于分布式的知识推理
基于张量的模型
基于重构的张量分解方法:通过矩阵分解获得关系、实体的表示,其实就是类似奇异值分解
• 知识图谱中三元组的结构是(头部实体ℎ,关系r ,尾部实体t ),其中r连接头尾
实体。
• 以E., E0, … , E2表示知识图谱中的实体,以R., R0, … , R3表示知识图谱中的关系,
则可以使用一个三维矩阵 (张量) 表示知识图谱.
基于翻译的模型:TRANSE
用向量表示实体和关系。关系事实 = (head, relation, tail) 简写为(h, r, t),其中
h, r, t分别是一维的向量表示 。
1.势能函数
• 对于positive的三元组(ℎ, r,t) ,要求ℎ + r ≈ t;
• 对于negative的三元组则不满足上述等式。
d (ℎ, r,t) =∥ℎ + r − t ∥_2
d( 中国、首都、北京) < d(中国、首都、杭州)
2.问题
但是知识图谱中关系有“1-1”,“1-N”、“N-1”、“N-N”多种类型
3.解决方案:TransR
• TransH、TransR、TransD
• 利用投影方式,将不同语义的实体、关系嵌入到同一个语义空间中。
基于神经网络的模型
神经网络模型的核心思想:使用神经网络为三元组定义势能函数,在训练目标中,
要求正确的三元组具有较高的能量,错误的三元组具有较低的能量。通过惩罚错
误的三元组完成学习过程,使得正确的三元组和错误三元组的能量有一个明显的
分界线.
优缺点
• 可学习、可计算,适合大规模、开放域
• 不可解释、隐式推理
关键技术与难点
图挖掘计算
- 本体推理:使用本体推理进行新知识发现或冲突检测。
- 基于规则的推理:使用规则引擎,编写相应的业务规则,通过推理辅助业务决策。
- 图查询:利用图模式匹配算法,对图谱中的数据进行快速访问。
- 图挖掘计算:基于图论的相关算法,实现对图谱的探索和挖掘
本体推理与规则推理
大数据量下的快速推理
对于增量知识和规则的快速加载
知识应用
语义搜索
知识图谱提出的初衷即为解决搜索的准确率问题;传统基于关键词的检索完全不考虑语义信息,主要面临两个难题:
- 自然语言表达的多样性
- 自然语言的歧义
解决方案
实体链接
基于知识图谱的语义搜索
智能问答
难点
- 准确的语义解析
- 正确理解用户的真实意图
- 答案确定与排序
基于信息检索的方法
首先利用中文分词、命名实体识别等自然语言处理工具找到问句中所涉及到的实体和关键词,然后去知识资源库中去进行检索。(之前那个基于电影的知识图谱就是.)
优点:实现简单,应用面广,在大部分场景下均可得到
缺点:要求答案中必须至少包含问句中的一个字或词,所以不如语义解析方法精确。
改进:基于知识图谱知识进行语义扩充,提高匹配率;基于知识图谱进行检索时的语义消歧。
基于语义解析的方法
- 基于语义解析的方法非常符合人们的直觉,它将一个自然语言形式的问句,按照特定语言的语法规则,解析成语义表达式,在得到语义表达式之后,即可非常容易地将其转化为某种数据库的查询语言。
- 首先自然语言问句的词汇被映射到语义表达式中的词汇,然后按照特定的规则将汇组合起来,进而得到了最终的语义表达式。
- 改进方法:在特定的领域里边,基于知识图谱的实体、属性、概念等进行词法解析与映射(实体、属性、概念都需要进行映射),
- 然后基于图结构进行语法规则匹配。(子图查询匹配)—根据意思来查询
基于规则的专家系统方法
- 专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题。
- 优点:在限定的领域范围内准确度高。
缺点:通用性欠缺,不能覆盖很多的应用场景。
基于深度学习的方法
- 近几年卷积神经网络(CNN)和循环神经网络(RNN)在NLP领域任务中表现出来的语言表示能力,越来越多的研究人员尝试深度学习的方法完成问答领域的关键任务,包括 问题分类(question classification),语义匹配与答案选择(answer selection),答案自动生成(answer generation);即对用户输入解析、答案查询与检索等环节进行优化。
- 优点:实现“端到端”的问答:把问题与答案均使用复杂的特征向量表示,使用深度学习来计算问题与答案的相似度。
- 不足:不支持复杂的查询;需要比较长的训练过程,不适用于现实应用场景中的知识更新后的实时查询。
最佳实践方法
基于语义解析的方法可解释性强,并且能够方便地转换成知识图谱的查询,给
出明确的答案;因此对于用户输入,首先使用基于语义解析的方法进行回答
基于信息检索的方法应用面广,因此当语义解析方法无法给出结果时,则使用
信息检索的方法进行补充回答。
基于语义解析的自动问答
- 人工配置语义解析模板
- 知识图谱通用的子图匹配模板
可视化工具
D3.js ,ECharts,Cytoscape.js
质量评估
对知识库的质量评估任务
• 与实体对齐任务一起进行的
• 对知识的可信度进行量化,保留置信度较高的,舍弃置信度较低的,有效确保
知识的质量
可行方案
• 利用强业务规则进行筛选和评估
• 利用众包进行抽样打分
• 在对ReVerb系统的信息抽取质量进行评估时,采用人工标注的方式对1 000个句子中的实体关系三元组进行了标注,并以此作为训练集,使用logistic回归模型计算抽取结果的置信度。
• 基于LDIF框架,根据业务需求来定义质量评估函数,或者通过对多种评估方法的
综合考评来确定知识的最终质量评分。
• Google的Knowledge Vault项目则根据指定数据信息的抽取频率对信息的可信度
进行评分,然后利用从可信知识库中得到的先验知识对可信度进行修正。
• 知识图谱 !== 知识
来源:CSDN
作者:AN-YSYS
链接:https://blog.csdn.net/fbsxghvudk/article/details/80719926