Press "Enter" to skip to content

【图谱构建】图谱构建之知识抽取

 

图谱构建之知识抽取

 

00

 

导语

本文将简短介绍知识抽取中的一系列问题,包括知识抽取的场景以及数据来源、知识抽取的一些典型任务,例如实体识别、关系抽取、事件抽取等。

何为知识抽取?从何处抽取?

 

知识抽取(Knowledge Extraction, KE)是从
结构化(例如关系数据库、XML)

非结构化(例如文本、文档、图像)
源中创建知识。产生的知识需要采用机器可读和机器可解释的格式(例如图),并且必须以便于推理的方式表示知识。下面的图是个知识抽取的例子,从一段文本中抽取出人与人之间的关系。

 

 

上面已经提到知识抽取是从 结构化
和 非结构化
数据中进行抽取,并列举了个例。然而再细分来看,可分为 结构化数据、半结构化数据和无结构化数据
。其中我们所熟知的 维基百科和百度百科就属于半结构化文本
,而 纯文本就属于无结构化文本

 

目前来看, 如何从无结构化数据中进行知识抽取是当前知识图谱构建的技术瓶颈,是研究的热点、难点
。而从无结构化数据中进行知识抽取需要用到一些 关键的技术,例如实体识别、关系抽取以及事件抽取
等,下面我们将逐一介绍这些技术目前的主要方法。

 

PART 2 实体识别

 

实体识别是什幺?主要方法!

 

实体识别(NER)的目的是抽取文本中的原子信息,包括 人名
、 组织机构名
、 位置
、 时间
、 金钱
等。下面是例子。

 

 

那幺在一些已经标注的数据中,如何来 标注实体
呢,例如上图中的时间。目前有几种标注体系,包括 IO
、 BIO
、 BIOES
、 BMEWO,在不同的标注体系中,有不同的意义。
目前比较常用的两种标注体系是  BIO

BIOES。 如下图的标注案例。

 

 

接下来,我们看一下实体识别的一些主要方法:

 

 

基于规则和词典匹配的方法: 很早之前的方法,现在基本被替代了。

 

基于机器学习的方法
:这里的一些主要方法包括
隐马尔科夫模型(  Hidden Markov Model
, HMM)、最大熵马尔科夫模型(
Maximum Entropy Markov Model, MEMM
)、 条件随机场
(Conditional Random Fields, CRF
)、 支持向量机
(Support Vector Machine, SVM
)。

 

基于深度学习的方法
:深度学习的方法已经在实体识别上面研究的很广,包括CNN、LSTM+CRF等,有大量的论文和开源代码。

 

基于半监督/迁移学习的方法: 利用一部分未标注数据,或者是其他领域、其他语言的数据来增强当前的模型。

 

基于预训练模型的方法:从BERT模型对NLP下游任务取得了惊人的效果,其中包括NER,近些的研究趋势基本都会多多少少采用预训练的方法,无论是学术界还是工业界。

 

 

PART 3 关系抽取

 

关系抽取是什幺?主要方法!

 

关系抽取是做什幺,简单来说,是抽取到的 实体与实体之间的关系
进行抽取。 例如两个实体都是人物的话,那幺人物之间的关系可能是父子关系、狐朋狗友的关系、亲密恋人的关系等等。如果一个实体是人、一个实体是公司或者组织,那幺两者之间的关系可能是雇佣关系或者是隶属关系。

 

 

那幺主要的关系抽取方法有几种呢?

 

基于模板的方法:一种是基于触发词/字符串、一种是基于依存句法。

 

模板的方法一般都是在 小规模数据集上容易实现且构建简单,缺点为难以维护、可移植性差、模板有可能需要专家构建。

 

基于监督学习的方法
:监督学习下面主要是深度学习比较普遍,当然也有传统的机器学习,在这里,我们只关注下深度学习方法。

 

利用深度学习进行关系抽取又存在两大分支,一个是 Pipline的方法,即我们必须先进行实体识别,然后再做关系抽取
。而另一个就是 Joint Model的方法,即把实体识别和关系抽取两个任务同时建模,在训练的过程中同时优化

 

这里有一些比较不错的模型。

 

Pinline模型:

 

Classifying Relations by Ranking with Convolutional Neural Networks

Relation Classification via Multi-Level Attention CNNs

Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification

 

Joint Model模型

 

End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures

 

监督学习效果虽好,但获取大量标注好的数据集是有困难的。可以通过 半监督学习
的方法利用无标注数据,此处又分为 远程监督学习
和 Bootstrapping
方法两种。

 

PART 4 事件抽取

 

事件抽取是什幺?主要方法!

 

我们知道关系是实体间的某种关系,那幺什幺是事件呢,下面给出定义:

 

事件
:具有事件、地点、参与者等基本要素,可由某个动作触发或者状态改变而发生的一个图结构知识片段。

 

事件抽取
:从数据中抽取事件信息,并以结构化或者语义化的形式展现,例如事件发生的时间、地点、原因、参与者等等。

 

事件抽取冲包含一些相关术语,先有了解:

 

事件描述(Event Mention):描述事件的句子

事件触发词(Event Trigger):标记事件类型的词汇

事件元素(Event Argument):事件的参与者

时间角色(Event Role):元素在事件句中扮演的角色

 

事件抽取含有多项子任务:

 

 

那幺主要的方法都有什幺?

 

首先还是基于模板和规则的方法,其次就是传统的机器学习方法,定义为分类任务,依赖于句法分析、词性标注等NLP工具。

 

最主要的还是目前的深度学习方法,这里和关系抽取类似,又分为Pipline和Joint Model的方法。如下图。

 

 

参考资料

 

东南大学《知识图谱》研究生课程。

https://github.com/npubird/KnowledgeGraphCourse

 

注:上述图片均来自于东南大学《知识图谱》研究生课程PPT。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注