1.知识图谱引言
1.1 知识图谱的发展历史与现有应用
(1) 深度自然语言理解需要知识的支撑。
(2)IBM Watson 在知识竞赛节目《危险边缘Jeopardy!》中上演“人机问答大战”,并取胜。
(3) 1998年语义网的概念被提出。
1.2 知识图谱的基本概念
(1)语言知识图谱
WordNet: 155,327个单词,同义词集117,597个,同义词集之间由22中关系连接
(2)事实性知识图谱
OpenCyc :23.9万个实体,1.5万个关系属性,209.3万个事实三元组
FreeBase: 4000多万实体,上万个属性关系,24多亿个事实三元组
DBpedia: 400多万个实体,48293种属性关系,10亿个事实三元组
YAGO2: 980万实体,超过100个属性关系,1亿多个事实三元组
百科词条:词条数1000万个
百科互动:800万词条,5万个分类,68亿文字
(3)领域知识图谱
Kinships:描述人物之间的亲属关系,104个实体,26种关系,10800个三元组
UMLS: 医学领域,描述医学概念之间的联系,135个实体,49种关系,6800个三元组
Cora: 2497个实体,7种关系,39255个三元组
(4)机器自动构建的知识图谱
NELL: 519万实体,306种关系,5亿候选三元组
Knowledge Vault: 4500万实体,4469种关系,2.7亿三元组
- 历史:Cyc--->WordNet---->知网---->Wikipedia------>Dbpedia,Yago,freebase
- 应用:问答、精准搜索、关系搜索、分类浏览、推荐、推理
- 涉及的领域:Semantic Web、Database、NLP
- 知识图谱本质上是一种语义网络。其节点代表实体或概念,边代表实体/概念之间的各种语义关系。
- 三个层面问题:知识体系(表示)---->知识获取----->知识服务
(1) 知识库是一个有向图
多关系数据(multi-relational data)
节点:实体/概念
边:关系/属性
关系事实=(head,relation,tail)
(1)Ontology vs.Knowledge Base
Ontology:共享概念化的规范
Knowledge:服从于ontology控制的知识单元的载体
(2)公理:Formal Ontologyvs. Lightweight Ontology
Formal Ontology:大量使用公理
Lightweight Ontology:很少或不使用公理
(3)Ontology
树状结构,不同层节点之间有严格的IsA关系
优点:可以适用于知识推理
缺点:无法表示概念的二义性(运动员:体育?人物?)
(4)Taxonomy
树状结构,上下位节点之间非严格的IsA关系
优点:可以表示概念的二义性
缺点:不适用于推理,无法避免概念冗余(餐厅?美食?机构?地点?)
(5)Folksonomy
类别标签,更加开放
优点:能够涵盖更多的概念
缺点:如何进行标签管理
(6)目前的知识资源多是采用Folksonomy与Taxonomy相结合的组织形式。但是能够覆盖的类别还很少
(7)类别属性定义不统一
已有的体系框架:
GeoNames
DBpedia Ontology
TexonConcept Ontology
KOS
Schema.org: 1) 面对站长,而不是面对知识
2)体系覆盖度不足,局限于英文
3)细致化不足
建立体系间的Alignment
(1)挖掘概念之间的SameAs关系
(2)评测:Ontology Alignment Evaluation Initiative
关键:概念之间相似度的计算
Node(概念/Concept)、(领域/Domain/Topic)、(实体/实例/Entity/Objects/Instance)
Node (值/Value): 实体(Entity)、字符串(String)、 数字(Number)、时间(Date)、枚举(Enumerate)
边(关系):Subclass、Type、Relation、Property/Attribute
关系:Taxonomic Relation vs. Non-taxonomic Relation
Taxonomic Relation:is-a/Hypernym-Hyponym
Non-taxonomic Relation:概念之间的相互作用
Node:高阶三元组
(1)与时间、地点相关
(2)事件
- 知识分类:百科知识、领域知识、事实性知识、主观性知识、场景知识、语言知识、常识知识
- 系统架构图
1.3知识图谱的生命周期
(1) 领域知识建模
输入:目标领域(医疗、金融)、应用场景
输出:领域知识本体、领域实体类别体系、 实体属性、 领域语义关系、语义关系之间的关系
关键技术:Ontology Engineering
(2)知识获取
输入:领域知识本体、海量数据:文本、垂直站点、百科
输出:领域知识(实体集合、实体关系/属性)
主要技术:信息抽取、文本挖掘
(3)知识集成
输入:抽取出来的知识、现有的知识库、知识本体
输出:知识置信度、 统一知识库
关键技术:Ontology Matching、 Entity Linking
(4)知识存储/查询/推理
输入:大规模知识库知识
输出:知识库存储/查询/推理服务
主要技术:知识表示、知识查询语言、存储/检索引擎、推理引擎
(5)总结:知识建模(建模领域知识结构)---->知识获取(获取领域内的事实知识)---->知识集成(估计知识
的可信度,将碎片知识组装成知识网络)----->知识存储(提供高性能的知识服务)
1.4代表性知识图谱
(1)人工构建知识图谱: WordNet、Cyc
(2)基于Wikipedia的知识图谱:Yago、DBPedia、Freebase
(3)文本抽取知识图谱:NELL
(4)WordNet的应用:在自然语言处理中被广泛应用、作为词义消歧的目标知识库、作为高质量的Taxonomy、用于计算语义相似度
(5)基于Wikipedia的知识库
相同的思路 : 从Wikipedia丰富的半结构化信息中挖掘知识: 包括:Infobox,Category,超链接,Table,List…..
不同之处在于:如何处理有歧义的属性映射、如何构建知识库的Taxonomy
这些知识库具有相同的数据模型:
1)一个知识库包含一个集合 的实体
2)实体被划分到不同的类别中
3)类别通过上下文关系等关系相互关联
4)类别和实体都通过属性和相互之间的关系来描述
5)关系可以通过蕴含关系来进行推理
(6)DBPedia
1) 2007年开始,主要目的是构建一个社区,通过社区成员来定义和撰写模板,从维基百科中抽取结构化信息,并将其发布到Web上。
2)通过人工的方式构建了Taxonomy(280个类别,覆盖50%的维基百科实体)
3)抽取方法:DIEF-Dbpedia Information Extraction Framework
4)使用RDF来表示抽取出来的知识。
5)支持复杂的结构化query,SPASQL语言查询;支持与web上其他数据集的链接和集成
(7)Yago(Yet AnotherGreat Ontology)
1)德国马普研究所2007年开始的项目
2)融合WordNet和Wikipedia
3)Yago Taxonomy构建: 使用WordNet的Taxonomy作为基础、将Wikipedia中的类别加入到WordNet中
4)Yago的语义关系:
人工定义了100多种语义关系
抽取方法:主要采用手写的规则抽取
InfoboxHarvesting:信息框
Word-LevelTechniques:重定向页
Category Harvesting:类别信息抽取
Type Extraction:维基类别、WordNet类别
(8)Freebase
1)Metaweb公司2000年开始构建,2010年被Google收购
2)从Wikipedia和其他数据源(如IMDB、MusicBrainz)中导入知识
3)核心想法:在wikipedia中,人们编辑文章;在Freebase中,人们编辑结构化知识。
4)用户是Freebase知识构建的核心
编辑实体:创建实体、将实体分到类别、增加/修改属性/关系、上传图片
编辑Schema: 定义新类别、定义类别的属性
Review: 验证知识的准确性、投票、删除错误知识
DataGame:寻找别名、抽取事件日期、使用Yahoo图片搜索、加入图片
(9)NELL
1)2009年开始的CMU项目
2)输入:初始本体(800类别和关系)、每个谓词的一些实例(10-20个种子实例)、web、间歇人工干预
3)任务:持续运行、抽取更多知识来补充给定本体、学习如何更好的构建抽取模型
4)结构:超过9千万实例(不同置信度)
5)抽取步骤: 把名词短语划分到给定类别、 分类名词短语之间的语义关系、 识别新的推理规则,用于发现新的关系实例(PathRank)、
名词短语被映射到概念,动词短语被映射到关系
(10)知识图谱
1) 实体及其之间关系的语义描述:使用形式化知识表示(如RDF、RDFS、OWL)
2)Entities:真实世界对象和抽象概念
3)Relationships:将实体按语义关系链接成一张大网
4)Sematic descriptions:类别和属性
5)有时包含支持推理的公理知识(如规则)
2.知识图谱的表示与推理
2.1基于符号的知识表示与推理
- 知识及知识表示
- 符号表示知识的方法及实现:Logic、Semantic Net 、Frame、Script、语义网知识表示语言体系
- Knowledge=Facts+Rules+Control Strategy+(有时)Faiths
- 知识的类别体系:
(1)Facts:陈述性知识
(2)Rules:程序性知识
(3)Controle Strategy:元知识
- 知识表示(knowledge representation)
(1)知识表示同时是认知科学和AI中的科学问题;在认知科学中,KR关注如何存储和处理信息;
在人工智能中,KR关注如何表示关于世界的信息,并通过常识和事实得出结论
(2)一个知识表示是事物本身的一个代替,使我们可以通过思考而不是行动来确定事物的后果
(3)一个知识表示是一个本体约定(ontological commitment)集合
-
- 自然语言
- 符号表示方法(logic,sematic Net,Frame,Script,语义网只是表示体系)
- 许多其他的方法,如分布式表示方法
-
- Syntax(句法):知识表示语言中使用到的原子符号,原子符号如何组成合法的语句
- Semantics(语义):知识表示中的一个句子在世界上对应的事实,用于决定一个句子的真值。
- Inference(推理):如何从已有知识中得到新知识的机制
-
- 关于对象的逻辑,用于表示关于实体对象的知识
- 相比命题逻辑,谓词逻辑提供了一套更为灵活且紧凑的知识表示方式,它提供了表示和推理对象属性及不同对象间关系的机制
- 对象的表示:
- 使用terms来表示对象
- Terms是对象的名字,Logical function让我们可以用有限的term来紧凑的表示无限的对象
- 命题(Proposition)
- Predicate:谓词是一个动词词组,用于描述对象的属性,或是不同对象之间的关系
- 命题是谓词+应用于该谓词的一个term元组,表示一个属性或objects之间的关系
- 复杂的命题可以通过逻辑连接词来构建
- 量词
- 通过量词机制,允许声明关于一个集合的对象的知识,而不需要一一枚举它们
- Logical KB
- 一个逻辑知识库包含:
- 用于描述谓词之间关系的公理
- 谓词的定义
- 事实集合
- 用户可以查询特定的知识库
- 推理机制
- 相等变换
- 蕴含推理
- 假言推理(三段论)
- Universal Elimination
- Existential Elimination
- Existential Introduction
- 用逻辑表示知识的优缺点
- 优点:有语义、表达能力强
- 缺点:不高效、不可判定性、无法表达过程知识、无法做缺省推理
-
- Semantic Net是一个通过语义关系连接的概念网络
- Semantic Net将知识表示为相互连接的点和边模式
- Node表示实体、属性、事件、值等
- Links表示对象之间的语义关系
- 通常使用的语义关系
- IS-A
- Part-of
- Modifiles: on ,down,up,bottom,moveto,……
- 领域特定的link类型:(医疗:症状、治疗、病因;金融:收购、持有、母公司)
- Semantic Net中的推理
- Inheritance(继承)
- Intersection search(交集搜索)
-
- Frame表示
- 知识通过Frame的形式表示,每一个Frame表示一种典型的原型化场景(a stereotypical situation)
- Frame-Based KR类似于面向对象编程,区别在于编码的对象不同
- 一个Frame类似于数据库中的数据记录结构或数据库记录
- Frame包含slot names和slot filters
- 一个Frame的slot集合能够表示与该框架相关的对象
- 一个slot可以指向其它的Frame,Procedure,slot
- 两类Frame
- Class Frame:类似于面向对象编程里面的Class
- Individual or Instance Frame:类似于面向对象编程里面的Object
- Slot类似于OO里面的variables/methods
- 不同的Frame通常被组织成一个层次体系结构
- Instance Frame ----instance_of---->Class Frame
- Class Frame------subclass_of------>Class Frame
- 子类可以从父类继承属性和默认属性值
- Frame表示上的推理
- 能够推理类别之间和类别与实例之间的ISA关系
- 能够使用slots和slot value来推理属性知识
- 对象可以继承所有父类的属性
- 可以继承原型属性值,同时也可以覆盖原型属性值
- Frame表示的优缺点
- 优点:
- 直接表示领域知识领域
- 支持默认推理
- 高效
- 支持过程知识(slot filter可以是一个过程)
- 缺点:
- 表达能力受限制
- 缺乏标准
- 更像一种方法论而不是一种特定的表示
- 没有直接与reasoning/inference机制关联
- FrameNet--Frame知识库
- 围绕框架构建,论元标签在不同框架之间共享
- 包含4000多英文谓词,200000人工标注的句子
- 包括框架、词元、框架关系、例句及篇章
- 汉语框架网(Chinese FrameNet)
- 山西大学汉语框架网与语义计算研究室
-
- Script表示
- 脚本与框架类似,有一组槽组成,用来表示特定领域内的一组事件的发生序列
- 类似于Frame表示
- 使用继承和slots
- 描述原型知识(stereotypical knowledge),但是关注事件知识
- 基于Conceptual Dependency Theory构建
- Script定义
- 一个脚本是一个事件序列,包含了一组紧密相关的动作及改变状态的框架
- 一个脚本是一个描述特定上下文中的原型事件序列
- Script的组成元素
- 进入条件:给出脚本中所描述事件的前提条件
- 角色:用来表示在脚本所描述事件中可能出现的有关人物的槽
- 道具:用来表示在脚本所描述事件中可能出现的有关物体的槽
- 场景:描述事件发生的真实顺序。一个事件可以由多个场景组成,而每个场景可以是其它脚本
- 结局:给出在脚本所描述事件发生以后所产生的结果
- Script的推理
- 基于脚本事件因果链的推理
- 只有符合特定条件的脚本才会发生
- 只有符合结束条件的脚本才会结束
- 事件和事件直接的因果链顺序推理
- 预测未知事件
- Script的特点
- 缺点:
- 脚本结构与框架结构相比表达能力更受约束
- 表示范围更窄
- 优点:
- 适合于表达预先构思好的特定的知识或顺序性动作及事件,如理解故事情节等
- 适用于自然语言理解中的阅读理解等应用
-
- 数据万维网(Web of Data)
- 全球开发的知识共享平台
- 使用语义网技术
- 在Web上发布结构化数据
- 在不同数据源中的数据之间建立连接
- 特征
- Web上的事物拥有唯一 的URI
- 事物之间由链接关联
- 事物之间链接显式存在并拥有类型
- Web上数据的结构显式存在
- 语义网信息描述语言
- 语义网提供了一套为描述数据而设计的表示语言和工具,用形式化的描述一个知识领域内的概念、术语和关系
- HTML描述文档和文档之间的链接
- RDF,RDFS,OWL和XML能够描述事物和事物之时间的关系,如人,会议,飞机和飞机组件
- 主要组件
- 包括一系列的W3C标准和工具:
- Resource Description Framework(RDF)
- RDF Schema(RDFS)
- Web Ontology Language(OWL)
- SPARQL, an RDF query language
- RDF
- RDF是一种表述对象和对象之间关系的简单语言
- 使用(subject,predicate,object)三元组的形式来陈述关于对象(使用URI标识的resources)的知识,也就是两个对象之间的带类别链接
- RDF是一个通用模型,可以用各种不同的格式来表示,XML,N-Triples,N3,Json-LD等
- RDF Schema
- RDFS是RDF的一个扩展,提供了一个用于描述RDF resources的属性(properties)和类别(classes)的术语表(vocabulary)
- 上述词表被组织成一个带类别的层次体系结构(typed hierarchy)
- Class,subClassOf,type:描述类别子类
- Property,subPropertyOf:属性层次体系结构
- domain,range:定义新术语
- 术语表
- RDFS提供了定义术语表(vocabularies)的能力 :属性集合和类别集合;与其他术语表中的术语的关
- RDF和RDFS
- RDF(S)提供了很小的本体约定(ontological commitment)来建模primitives
- 一个用于知识表示的词汇表(subClassOf、subPropertyOf、domain、range)
- 可以用来定义术语表(vacabulary)
- 不能准确描述语义
- 缺少推理模型
- 本体Ontology
- 本体提供了人和机器之间更好的交流机制
- 本体通过概念标准化(standardize)和形式化(formalize)词语的意义
- 本体的五元组表示O={C,R,F,A,I}
- C-概念集合,通常以Taxonomy形式组织
- R-关系,描述概念和实例之间语义关系的集合
- F-函数,一组特殊的关系,关系中第n个元素的值由其他n-1元素的值确定
- A-公理,
- I-具体个体
- Web Ontology Language=OWL
- OWL进一步提供了更多的术语来描述属性和类别
- 相比于RDFS的扩展
- 构建类别
- 构造属性
- 属性特征
- 属性和类别间关系
2.2基于分布式的知识表示与推理
- 知识图谱表示学习方法分类
(1)张量分解
(2)基于翻译的模型
(3)神经网络模型
- 张量表示知识模型
(1)知识图谱中三元组结构是(头部实体h,关系r,尾部实体t),其中r连接头尾实体。
表示知识图谱中的实体,以表示知识图谱中的关系,则可以用一个三维矩阵表示知识图谱。
(2)张量分解得到实体,关系表示
(3)分解的目标函数
- 基于翻译的模型TransE
(1)用向量表示实体和关系。关系事实=(head,relation,tail),对应向量(h,r,t)
(2)翻译模型的学习
势能函数:对真实的三元组(h,r,t),要求h+r=t;错误的不满足该条件
目标函数
(3)生成负样本的方法
负样本生成策略:
1)随机选取实体h'(t'),替换(h,r,t)中的h(t),生成负样本(h',r,t)或(h,r,t')
2)在选择替换实体的时候,不是完全随机在实体集合中选择,而是在适合关系r关系的集合中随机选择
(4)知识图谱数据问题
1)有多种关系“1-1”,“1-N”,“N-1”,“N-N"
2)解决方案:TrensR,TransH,TransD
3)实体和关系通常会出现在多个不同的三元组中,类似于一词多义,实体和关系在不同的三元组中常呈现出不同的含义。
4)利用协方差描述关系的不确定性
- 神经网络方法
(1)神经网络模型:Neural Tensor Network、SemanticMatchingEnergyNetwork
(2)Neural Tensor Network
关系表示 g(h,r,t)、势能函数表示、实体表示、训练目标和方法、训练集中正样本、负样本、参数、优化方法:L-BFGS
(3)SemanticMatchingEnergyNetwork
1)评测任务与数据集
三元组分类
任务描述:判定给定的三元组是否是正确的
评测标准:这是二分类任务,以分类准确率为评测指标
数据集:常用的数据集有WN11,FB13,FB15k
链接预测
任务描述:挖掘三元组中的实体或关系,然后在实体(关系)集中选择实体(关系)将其补全
评测标准:计算正确实体的排名,排名却靠前,模型越优。计算测试集所有三元组头尾部实体的平均排名和排在前10的比例 数据集:常用数据集有WN18,FB15k
、