知识图谱入门 -- 潘登同学的KG笔记
知识图谱简介
早期的人工智能有两个流派
- 连接主义: 用计算机模拟人的生理结构,就是深度学习,能解决识别判断的问题;
- 符号主义: 用计算机模拟人的心智,用计算机符号表示人的知识,解决的是认知、语言与知识的问题;
知识蕴含在神经网络的参数中,但是那些参数是对机器友好,对人类并不友好的,所以知识图谱就是解决这样的问题的一个AI分支,知识图谱旨在利用图结构建模、识别和推断事物之间的复杂关联关系和沉淀领域知识;
知识图谱的核心是为深度学习找到合适的向量表示就是Embedding,而且这个还要是结构化的表示(图数据);
知识图谱的使用场景
知识图谱的学科属性
知识图谱的技术要素
基于图的表示 最基础的图的表示是有向图,基于的是RDF(Resource Description Framework,资源描述框架),其是一个三元组表示;
图数据的存储与查询
知识的抽取
图谱的推理
知识图谱问答
总结
知识图谱是一个系列工程,而不是某个具体实现,不能盲人摸象!!
知识表示
什么是知识表示
人类的自然语言、绘画音乐、数学语言、物理模型、化学公式都是知识的表示方式;
传统的人工智能领域有一个经典的研究方向叫知识工程(专家系统)
简而言之,知识表示(KR)就是易于计算机的方式来描述人脑知识的方法
知识的向量表示:
知识表示的发展历程
First-Order Logic(一阶谓词逻辑)
Description Logic(描述逻辑)
描述逻辑关心的是人是怎么描述万物的,以及万物是如何形成的;
定义 描述逻辑是一阶谓词逻辑的可判定子集,主要用于描述本体概念和属性,对于本体知识库的构建提供了便捷的表达形式,是知识图谱最密切相关的知识表示方法之一;
核心表达要素
- 概念Concepts: 一个领域的子集,如学生,已婚者,${x|x\in Student},{x|x \in Married}$
- 关系Relations: 该领域上的二元关系,如朋友,爱人${
| \in Friend},{ | \in Loves}$ - 个体individuals:一个领域内的实例,如小明,小红${Ming,Hong}$
描述逻辑的知识库
- $O:=
$,T是Tbox,A是Abox; - Tbox包含内涵知识,描述概念的一般性质
- 定义: 引入概念及关系的名称,如:Mother,Person,has_child
- 包含: 声明包含关系的公理,如: $Mother \subseteq Person.(\exist has_child)$
- Abox包含外延关系(又称断言知识),描述论域中的特定个体
- 概念断言: 表示一个对象是否属于某个概念,如$Helen \in Mother$
- 关系断言: 表示两个对象是否满足一定的关系,$has_child(Helen,Jack)$
Horn Logic
Horn Logic是一阶谓词逻辑的子集,主要特点是表达形式简单,著名的Prolog语言就是基于Horn逻辑实现的;
核心表达要素
- 原子Atoms: $P(t_1,t_2,\ldots,t_n)$,其中p是谓词,$t_i$是项,如$has_child(X,Y)$
- 规则Rules: 由原子构建$H:-B_1,B_2,\ldots,B_m$,H称为Head,$B_1,B_2,\ldots,B_m$称为Body,如$has_child(X,Y):- has_son(X,Y)$
- 事实Facts:没有体部且没有变量的规则,如:$has_son(Helen,Jack)$
Production Systems(产生式系统)
产生式系统是一种更广泛意义的规则系统,专家系统多数是基于产生式系统;
核心表达形式
- IF P then Q CF=[0,1], 其中P是产生式的前提,Q是一组结论或操作,CF为置信度;
Frame System(框架系统)
框架理论的基本思想: 认为人们对现实世界中事物认识都是以一种类似于框架的结构存储在记忆中。当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。框架系统在很多NLP任务,若Dialogue系统中都有广泛的应用;
核心表达要素
- 框架: 一种描述对象(事物、事件或概念等)属性的数据结构
- 一个框架由若干个“槽”(slot)结构组成,每个槽又可分为若干个“侧面”
- 一个槽:用于描述所论对象某一方面的属性
- 一个侧面:用于描述相应属性的一个方面
- 槽和侧面所具有的属性值分别成为槽值和侧面值
与面向对象的思想很接近
Semantic Network(语义网络)
总结
以上的知识表示方法各有优缺点,但是都有一个共同的缺点就是知识的获取主要依靠专家和人工,越复杂的知识表示框架知识获取过程越困难;
基于图的知识表示
Property Graph(属性图)
- 属性图是图数据库Neo4J实现的图结构表示模型,在工业界有广泛应用
- 属性图的优点是表达方式非常灵活,例如,他允许为边增加属性,非常便于表示多元关系
- 属性图的存储充分利用图的结构进行优化,因而在查询计算方面具有较高优势
- 属性图的缺点是缺乏工业标准规范的支持,由于不关注更深层的语义表达,也不支持符号逻辑推理
属性图是由顶点,边,标签组成的有向图,除了顶点有属性,边也可以有属性;
RDF: Triple-based Assertion Model
一个三元组的表示方法,定义的是有向图;
RDFS: RDF + Schema 用于定义类属性等Schema术语,如 Class,subClassOf,type,Property,subPropertyOf,Domain,Range;
OWL(Web Ontologies)本体表达语言
OWL扩展了RDFS的表达,增加了更多语义表达构件
- 通过多个类的组合定义更为复杂的类
- 刻画关系的一对多、多对一,多对多等关系
- 基数约束: 定义常用的全称量词和存在量词
- 定义互反关系、传递关系、自反关系等更加复杂的关系语义
总结
知识图谱的向量表示
从词向量过渡到表示关系的向量上:(用罗马的词向量减去意大利的词向量,用巴黎的词向量减去法国的词向量)
TransE模型
TransE根据上面的关系向量表示,采用了主谓宾三元组的表示 $$ h + r = t $$ h表示主语,r表示谓语,t表示宾语;
对每个三元组$(h,r,t)$的优化目标:
- 目标函数 $$ f_r(h,t) = ||h+r-t||_2 $$
- Loss函数 $$ L = \sum_{(h,r,t)\in S} \sum_{(h',r,t')\in S‘} max(0, f_r(h,t)+\gamma-f_r(h',t')) $$
其中$S$表示正例,$S'$表示负例
DistMult模型
与上面的加法不同,这个模型采用的是乘法 $$ h\cdot M_r = t $$ $M_r$表示谓语,因为矩阵乘法与线性变换是等价的;
目标函数变为: $$ f_r(h,t) = hM_rt $$ 可以理解为$h\cdot M_r与t$的余弦相似度