【知识图谱】知识抽取是什么,怎么做?
互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。
知识图谱的难点在于知识图谱的搭建,如何高效、高质量、快速的搭建知识图谱是知识图谱工程的核心。今天我们介绍如何进行知识抽取。
作者&编辑 | 小Dream哥
1 什么是知识抽取
前面我们说了,知识表示和知识体系是知识图谱这门绝世武功的内功和心法;那么今天讲的知识抽取,就是知识图谱这门绝世武功的招式了。
那么什么是知识抽取呢?前面我们介绍了,知识表示以及知识体系,即从架构层面确定了知识图谱中将包含哪些知识,知识的种类,以及不同属性之间知识的关系。知识抽取,则是根据知识体系从结构或者非结构数据中抽取相应知识的过程。
还是举“周杰伦”的例子,我们确定了如下的schema:
然后,假如我有一些音乐网站的歌手及歌曲相关的数据,也有互联网上一些娱乐新闻的数据。知识抽取的过程,就是根据schema,在上述语料中抽取相应的实体和他们之间关系的过程。例如,抽取到了“周杰伦”这个“音乐人”实体,抽取到了“菊花台”这首歌曲,二者关系为“创作”。通过在大量语料中进行“扫荡”,知识图谱中形成了关于“周杰伦”的如下的知识网络:
总的来说,知识抽取的过程,就是从语料中抽取出来结构化的知识,然后填到知识体系所定义的框架中的过程,也就是抽取一个又一个三元组(e1,r,e2)的过程。知识抽取主要分为实体抽取、关系抽取和事件抽取。这里主要先介绍实体抽取和关系抽取。
2 实体抽取及关系抽取
1)实体抽取
实体抽取我们在前面的文章中有详细的介绍,感兴趣或者不了解的同学可以先看看下面的文章:
知识图谱中的实体抽取也没有太大的差别,对于结构化数据来说,获取实体相对较轻松。如果是非结构化数据,通常就需要先语料标注,再利用有监督的方法进行实体识别。但是,语料标注是一个非常耗时费力的过程,一种被称为实体扩展的方法就被提出来,用于非结构数据中的实体抽取。
所谓实体扩展,就是根据精心挑选的一些“种子实体”,在语料中挑出与这些实体同一类别的其他实体。
那么,实体扩展通常怎么去实现呢?聪明的小伙伴会马上想到,通常同类实体在语料中会处于类似的语义类别中,例如,“周杰伦创作了七里香这首歌”,“林俊杰写了江南”,总结起来,歌曲实体通常会出现在,“音乐人创作了***”,“歌手唱了**”之类的模板中。这是一种最基本的实体扩展的办法,基于模板的实体扩展。如上所述,基于模板的实体扩展,就是假定目标实体与种子实体同属于某个语义类,则他们的上下文均符合特定的模板,通过总结这些模板,在语料中抽取同类的实体。
基于模板的实体抽取,需要总结模板,能够抽取到的实体数目有限。另外一种应用比较广泛的方法是基于统计的实体扩展。
基于统计的实体扩展可以认为是一个聚类的过程,他认为所有的实体都应该是名词或者名词短语,基于统计的实体扩展首先找出语料中所有的实体,然后计算找出的实体与种子实体之间的相似度并进行分类。基于统计的实体扩展,效果非常依赖语料的规模和质量。通常,会结合上述两种方式来进行实体扩展。
2)关系抽取
所谓关系抽取,就是从语料中抽取实体之间的关系。在知识体系的框架中,我们定义了大量的概念属性以及概念之间的关系,关系抽取就是从语料中抽取这些关系的实例的过程。
例如“周杰伦出生于台湾省新北市,祖籍福建省永春县”,从中可以抽取到<周杰伦,出生地,台湾省新北市>,<周杰伦,祖籍,福建省永春县>两个三元组,这里包含两个关系,“出生地”以及“祖籍”。
目前,知识图谱中的关系抽取一般都是基于知识体系的框架的限定域的关系抽取,通常采用有监督或者弱监督的方式进行。
对于有监督的方式,就是一个有监督的多分类问题,这里先不做详细的讲述。有监督的关系抽取需要大量依赖人工标注数据,想想就明白,这是一个非常耗时费力的过程。因而,知识图谱中,弱监督的关系抽取方法正吸引越来越多的研究。
弱监督的关系抽取,通常是基于一个小型的知识图谱或者少量的结构化数据,利用距离监督的方法,让知识图谱自动标注训练样本。感兴趣的同学,可以自行深入研究,这里先不做具体的介绍。
先抽取出实体,再抽取出实体之间的关系,构成三元组,这是早期的研究中采用的办法。但是实体抽取的过程势必会存在误差,这种误差会传递到关系抽取的任务中。因而,近来越来越多的工作都将二者的抽取放到一个统一的任务中去,并且取得了不错的效果。
总结
知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。在知识图谱中,知识抽取,包括实体抽取以及关系抽取,是构建知识图谱最重要也是最关键的一步。目前,知识抽取效果比较好的还是有监督的方法,但是弱监督的方法更具有实际意义,近来,也吸引了越来越多的关注。