知识图谱概述
知识图谱概论
知识图谱定义
知识图谱2012年首先由谷歌公司提出,是一个提供智能搜索服务的大型知识库。
知识图谱是对语义知识的一种形式化描述框架。
知识图谱从语义角度触发,通过描述客观世界中的概念、实体及其关系,从而让计算机具备更好地组织和理解互联网上海量信息的能力。
知识图谱研究问题
如何在计算机中表示知识,将知识保存到合适的数据载体中(知识数据化),以及如何将大规模的互联网数据转化为我们定义好的知识数据的形式(数据知识化)等等。
知识图谱技术具体指知识图谱构建和应用的技术。
知识图谱的发展历史
前知识工程时期(1956-1970)
知识图谱的发展伴随着人工智能技术的发展而发展。
1956年,马文・明斯基、约翰·麦卡锡、克劳德·香农、艾伦·纽厄尔等科学家在美国的一个小镇汉诺斯举办了一个会议,探讨如何让机器具备智能。这是“人工智能”这一术语的首次提出,标志“人工智能”这门学科正式诞生,1956年也就成为了人工智能元年。
在这之后,人工智能这门学科开始蓬勃发展,演化出两大学派:
- 连接主义
- 符号主义
连接主义受神经科学启发,认为“智能”是无数“非智能”的神经细胞相互作用的结果。人与机器其实没有本质的区别,如果我们能仿真生物学,构造模拟神经细胞的行为,进而构造一张人工的“神经网络”,那么理论上就能模拟人的大脑,创造“智能”。
符号主义认为,人的智能可以用底层数理逻辑表达。数理逻辑从20世纪30年代开始被用于描述智能行为。计算机出现后,该理论又被用于计算机上,实现了逻辑演绎系统,从而又发展出后来的专家系统和知识工程理论等。
这一阶段具有代表性的工作是通用问题求解程序GPS(The General Problem Solver)。GPS旨在实现一个宏大的目标:给定问题的描述,可以解决任何问题的计算机程序。但是这一时期的研究者们却忽视了知识在问题解决中扮演的重要角色。
专家系统时期(1970-1990)
这个时期学者研究的重点在于,如何设计出一个推理模型来求解通用问题,但是却忽视了知识在问题解决中扮演的重要角色。
维基百科对于知识的定义:
认知或认识(cognition)在心理学中是指通过形成概念、知觉、判断或想象等心理活动来获取知识的过程,或者说信息加工的心理过程。知识即是经过加工的信息。
1970年开始,科学家们提出各种知识表示技术,将领域专门知识表示成计算机可以识别的数据形式。人工智能开始转向建立基于知识的系统,通过 知识库+推理机 实现智能的专家系统。
当时比较知名的专家系统有MYCIN 医疗诊断专家系统、识别分子结构的DENRAL 专家系统以及计算机故障诊断 XCON 专家系统等。
1977年,在第五届国际人工智能会议上,美国斯坦福大学计算机科学家费根鲍姆教授(E.A.Feigenbaum) 系统地阐述了“专家系统”的思想,并提出了“知识工程”的概念,正式确立知识在人工智能中的重要地位。
这一时期的知识表示方法主要有框架表示法、脚本表示语言等。同时期出现了许多用这些知识表示方法构建的知识库,如Cyc 常识知识库,它们都是通过人工添加知识构建而成。
万维网时期 (1990-现在)
如何高效的让计算机获得知识?万维网之父,Tim Berners-Lee 最初设计互联网的初衷就是希望通过网络把全世界的知识互联在一起,使得知识从封闭知识走向开放知识,从集中知识成为分布知识。他认为首先应该构造一个文档互联的网络,然后在这个基础上再构建一个具备可以被计算机识别的知识结构的知识互联的网络。第1个目标已经实现了,就是现在我们每天都接触的有互联网,那知识互联的网络是什么意思?
在web2.0中,互联网上的数据绝大部分以html的形式存在,这样的形式确实适合人机界面之间的信息传递,方便人类的阅读和理解,但是网页内容没有采用形式化的表示方式,缺乏明确的语义信息,Web内容对于计算机而言只是普通的二进制数据,对其符号背后隐藏的知识无法被计算机识别。所以,面对当今信息时代的海量信息,当人们希望借助计算机来获取自己需要的信息时,这种html网页表示形式的瓶颈就凸显出来了,这也正是基于关键字匹配的传统搜索引擎的壁垒所在。
于是,针对第二个目标,1998 年Tim Berners-Lee 首次提出语义网概念,也就是后来人们常常说到的web3.0。这是一个极具野心的宏大概念,目标是对现有web内容增加语义支持,使得计算机可以自动识别和理解互联网上的信息,完成智能化应用任务。针对语义网概念,一整套标准化的相关技术不断被提出以及完善,形成了语义网技术堆栈,主要包含了RDF(资源描述框架) 和 OWL(万维网本体描述语言)等内容,这里面包含了过去几十年逻辑推理和知识表示等知识工程理论方面的研究成果。
要实现这个目标是一个相当艰巨的任务————必须把互联网上海量庞大的内容信息转化为机器可以理解和计算的知识形式。早期专家系统中手工编辑知识库的方式面对这个任务显然捉襟见肘,没有用武之地。幸好,大规模维基百科类富结构知识资源的出现,加上许多从万维网上自动提取大规模知识的方法的提出,使得知识获取工作取得重大成果,相关代表性工作有比如 DBpedia, Freebase YAGO, DeepDive, NELL, Probase 等等。
正是在这样的大背景下,谷歌在收购Freebase后,于2012 年推出了基于语义网技术的一款威力强大的应用——知识图谱。
知识图谱概念的提出
互联网的出现为大量内容创建者打开了创造内容产出信息的大门,为了帮助计算机理解这些高质量文档内容信息,需要一种有效的方式来组织和表示这些数据。针对此问题,研究人员提出了把数据中隐藏的知识用图结构的形式进行表示,于是基于语义网络提出了知识图谱的概念来解决这个问题。
简而言之,知识图谱以图结构的组织形式,通过语义关联描述客观世界中概念、实体及其关系。
知识图谱的构建
如何构建一个用知识图谱表示的知识库呢?下面通过一些简单的例子,描述从网页中的非结构化纯文本中收集信息进而构建知识图谱的基本流程。
知识抽取
在构建的第一阶段,我们从海量纯文本中识别文本中的实体以及实体间的关系,过滤出对我们有用的事实知识。识别过程涉及到很多自然语言处理技术的应用,例如分词、命名实体识别、词形还原等等。在这一步中,例如对于句子
在构建的第一阶段,我们从海量纯文本中识别文本中的实体以及实体间的关系,过滤出对我们有用的事实知识。识别过程涉及到很多自然语言处理技术的应用,例如分词、命名实体识别、词形还原等等。
案例句子:
1 | 世界四大博物馆之一卢浮宫原是法国的王宫,位于巴黎市中心 |
通过信息提取就被简化为类似以下的简单陈述句的形式:
1 | “卢浮宫 位于 巴黎” |
知识融合
三元组
在构建的第二阶段,大多数知识图谱将这些简单陈述句以三元组的形式保存到知识库中。三元组这个术语来自于语义网的知识表示框架中的RDF概念(资源描述框架),是知识图谱中知识表示的基本单位,简称SPO,用来表示实体与实体之间的关系,或者实体的某个属性的属性值是什么。
上面那个陈述句会被转化拆解成下面三元组的形式:
1 | 主题:卢浮宫 |
本体
这里我们再简单说一下知识图谱中本体的概念。本体有点类似于我们学生物时的界门纲目科属种的分类概念,是知识图谱中的概念层,或者说模式层。
本体可以用来规定我们的知识图谱中包含哪些领域的知识,知识的类别体系:一共有哪些类别,每种类别下面可以有哪些属性。另外,还能规定例如类别的上下位关系(父类和子类),属性的约束(例如一个人的出生日期的属性只能有1个)等等。本体是关于数据的描述和定义(元数据)。在语义网知识体系中,使用了RDFs和OWL语言来描述本体知识。
本体知识界定了每个实体应该存在于哪种类别,我们获取到的三元组会被本体匹配算法分类在不同的本体类型下。例如,如果本体是“机场”,那么,一些属于这一类的实体像“大连周子水机场 ”,“ 戴高乐机场 ”,“广州白云机场 ”就会被包括进来。该过程也会涉及到自然语言处理技术的应用。
回到刚才那个例子,在知识库中,我们将以‘卢浮宫——位于——巴黎’的形式保存上述关系。这是知识库中的单个三元组。在实践中,知识库包括数百万这样的三元组,我们也称之为事实。这些事实都会被归入知识库中对应的本体。
这个过程我们还需要解决一些实体消歧以及共指消解问题。
实体消歧
给定一段文本
1 | “在旧金山的2019春季发布会上,苹果推出新耳机产品Airpods2” |
文本中的提及“苹果”可能指向的目标实体包括 {苹果(水果),苹果公司,苹果(电影),苹果(银行), …},系统需要根据“苹果”的上下文词语识别出该段文本中“苹果”指的是苹果公司,而不是苹果(水果)或者苹果(电影)。
共指消解
例如,在一遍文章的开头可能提及到“哈尔滨工业大学”,后面则称为“哈工大”、“工大”等,可能还会提到“这所大学”、“她”这些指代词等,这里所有的词语指向的都是哈工大这同一个实体,我们在提取知识时必须可以辨别出来。
三元组转换为知识图谱
现在,让我们看看在构建的最后阶段,知识库中的三元组如何转换为知识图谱。知识图谱是一个实体互联的大型网络。实体间的连接正是基于知识库中的三元组创建的。
知识图谱的一个主要功能就是识别实体之间缺失的链接,它属于推理任务里知识补全或事实补全的一部分。为了进一步阐明这一点,让我们考虑下边我们从知识库中收集的这些样本关系。
1 | Friends (Anne, Jane) |
上面是关于Anne、Jane、Jim几个人的朋友关系,居住地和出生地信息,如果我们尝试仅基于上述关系构建一个基本的知识图谱,可以图结构可视化为下图:
然而,有一些未知的关系没有从知识库中明确检索出来,例如:
- Anne和Jim是朋友吗?
- Jane的出生地是什么?
这意味着这种关系可以被视为缺失的链接。
人们一般使用统计关系学习(SRL)框架来推断这些缺失的链接。有很多这方面的工作用不同的方式尝试发现新的或缺失的信息,并计算出推断这些信息的置信度。
Cohen, Jiang等人使用马尔可夫逻辑网来发现提取的事实之间的关系。它维护了一个基于一阶逻辑的规则库来指定本体约束。这些约束将用于管理可以被推断出的可能关系。然而,对于马尔可夫逻辑网络中,我们称之为“谓词”的这种逻辑关系却只能为其变量取一个二值逻辑变量(布尔值)。这导致在推断事实的置信度方面会比较差。
于是这个问题也引发了概率软逻辑(PSL)的定义,它使用了Jiang等人和马尔可夫逻辑网的概念,定义了一个复杂的统计关系框架,它基于以前的事实对所有事实一起进行推导,发现新的/缺失的信息。除此之外,PSL从概率的角度计算置信度,置信度值是[0,1]范围内的软数值,从而基于所提供的内容来表示PSL程序认为该事实为真实的程度。
一旦发现了新的/缺失的信息,并计算了他们的置信度,我们就可以建立一个具有高可信度事实的知识图谱。从这个图谱我们可以提取的原始事实之外的那些无法显示获取的新信息。这就是我们如何利用知识库中的既有事实和基于可用观察结果得到的新事实知识来构建知识图谱的过程。
不过呢,如何根据人类认知来识别出错误的事实或三元组,在知识图谱社区中仍然是一个未知的开放问题。
总结
到这里,我们对知识图谱下一个总体的定义,知识图谱产生于互联网时代,是基于语义网络,从互联网上海量信息中,用图结构的组织形式,以语义关联来描述客观世界的概念、实体及其关系的一种智能框架,通过此工具使得机器能够更好的理解现实事物,以提供更加智能的服务。
知识图谱的构建主要分为一下三个过程:
- 知识抽取
- 通过自然语言处理技术(命名实体识别、分词、词形还原等)来提取识别海量纯文本中实体与实体之间的关系,过滤出有用的知识
- 知识融合
- 基于语义网络知识框架的RDF,进行本体匹配,将提取的实体和关系归类到对应本体类型下(这其中还要对实体消歧、共指消歧问题进行解决);
- 存储为知识库中的RDF三元组;
- 构建知识图谱,补全缺失链接
- 应用统计关系学习方法从知识库构建知识图谱;
- 使用统计关系学习方法计算每个事实的置信度,以便确定这些事实的真实程度;
- 使用置信度识别缺失的链接,形成推断出新的关系链接;
最终,知识图谱可以用在信息检索,聊天机器人,推荐系统,知识管理系统等应用中,以有效地提供对用户查询的响应。
参考文章
[领域综述 | 知识图谱概论(二) (qq.com)](