「开放域事件抽取」入门了解


中科院赵军:开放域事件抽取 | CCF-GAIR 2018

文章摘自知乎——中科院赵军:开放域事件抽取 | CCF-GAIR 2018

以下是赵军教授发表的题为「开放域事件抽取」的演讲全文,雷锋网 AI 科技评论在赵军教授的帮助下,做了不改变原意的整理与编辑:

非常感谢刘挺老师和 CCF-GAIR 2018 大会的邀请。刚才刘老师也提到了,我本次报告与知识有关。自然语言处理是人工智能的一个重要应用方向,上世纪五六十年代,人工智能的主要研究是,搜索的算法或者推理的算法。但是,人们在这个方面研究了一段时间后,意识到有一个问题不可回避,那就是知识。我们很多系统中没有领域的知识或者专家的知识,在这种情况下,无法去做推理算法。这时,知识就成为人工智能一个非常重要的问题。

1977 年,Feigenbaum 提出,知识是人工智能非常重要的方向。2012 年,Web2.0 已经面世,网络上有了维基百科、百度百科等宝贵的知识资源。再加上信息抽取等自然语言处理技术的进展,这使得以前依靠专家来建立知识库的传统方法发生了显著的变化,知识库的规模和类型也都发生了显著的变化,知识工程再次成为人工智能的一个热点,它跟深度学习和情感一样,都是新一代人工智能的很有代表性的工作。

知识图谱有以下几种:

  1. 实体图谱,是一种是我们常见的以实体为中心的图谱。例如,图谱中间的一块上,每一个节点都是一个实体,例如 Barack Obama 和 Michelle Obama,它们之间通过夫妻这种关系联系起来,现在的大多数图谱就是这样的。

  2. 事件图谱,事件的知识图谱是应用中不可缺少的一类图谱,其中的每一个节点是一个事件,事件之间通过事件的关系(比如时序关系、因果关系等)相关联,这就叫做事件的图谱。

实体图谱和事件图谱,对于我们做问答,以及其他应用来说都必不可少。无论是实体图谱还是事件图谱,我们不可能完全依靠人工去构建,我们需要关键技术的支撑,这个关键技术就是信息抽取的技术。

知识图谱是一种新的知识库。

知识图谱是由节点和节点之间的关系构成的。

信息抽取技术用于构建实体图谱和事件图谱。

实体的识别是最基础的,有了实体以后,做实体图谱需要做关系抽取,比如(比尔盖茨是微软的 CEO),我们要转成三元组的结构化方式,CEO(比尔盖茨,微软)。当然。还存在多元的关系,它们都可以转成二元的关系,这样存储和应用的时候,效率更高。

事件抽取

事件可以由一个多元组构成——(Trigger,event-type,argument-1,role-1,argument-N,role-N)

事件的抽取与事件图谱相关联,举个例子,土耳其的飞机失事事件,这样一个事件的类别属于恐怖事件,袭击的目标是俄罗斯战机,袭击的工具是 F-16,还有地点和时间,这就是事件。我们要从一个文本当中找出这样的事件信息并进行结构化,这就是事件的抽取。

有关事件的关系其实也有很多,目前,我们应用方面比较关注的是事件的同指关系,还有时序关系、因果关系、上下位关系等。

今天我讲的是事件的抽取,也捎带讲一点关系的抽取。

其实接下来讲了很多关系的抽取……

刚才,我主要讲解的是开放域的事件抽取。我们先了解什么是开放域,在谈到开放域之前,来看看传统的关键抽取(关系抽取)是什么样子的。传统的叫预定义的关系抽取

我们抽取的目标关系类别是定义好的,我们给定的语料的结构是比较单一的,这种就是预定义的关系抽取。

学界、产业界在这方面做得很多,国际上也有评测,一般都给定一些标注语料,这都是有监督的关键抽取的技术。

ACE ^1是美国的一个评测,评测的就是这个表中列出的实体关系类别。

这是 SemEval 的实体关系的类别。

这是 TAC-KBP 的实体关系类别,都是预定好的。

预定义的关系抽取,有各种各样的方法来做预定义的关系抽取。现在,大家所共同关注的还是深度学习的方法。2014 年 COLING 上,我们首次使用深度学习的方法做了基于卷积神经网络的预定义关系抽取。基于深度学习的关系抽取方法在性能方面,较传统方法有明显的提升。

基于卷积网络的预定义关系抽取

那么为什么要研究开放域关系抽取呢?我们来看:

Freebase [^2]:4000 多万实体,上万个属性关系,24 多亿个事实三元组,这样级别的关系抽取,如果还是依靠刚才的那种方法,依靠人工标注的训练集,在这方面肯定行不通,这时我们就必须考虑一些自动的或者弱监督、半监督的方法,来做开放的关系抽取

难点问题在于如何获取训练语料。有了语料还不行,我们还需要研究新的抽取方法。在这方面,国际上有两个有代表性的开放域关系提取的研究方法,一个是基于句法的方法一个是基于知识监督的方法

基于句法的方法,是美国华盛顿大学图灵实验室做的一系列工作,例如,(华为,总部位于,深圳),语料库中有各种表述方法,我们可以抽出(华为总部位于深圳,华为总部设置于深圳,华为将其总部建于深圳),都是相关的知识。我们需要通过句法分析器,对这样的句子找出三元结构,抽取出来放在一起,这是我们所需要的知识。

基于句法的方法的核心是句法分析器。然而,很多找出来的句法三元组并不是我们需要的有实际含义的三元组,这时我们需要人工设计一些规则,把这些有实际含义的三元组过滤出来,这就是基于句法的关系抽取的主要思想。这种方法存在的问题是:这些实体关系三元组知识抽取出来放在了一起,它们到底代表什么语义还不明确,它的语义并没有和人类的知识库挂接,所以这还不是一种彻底的理解。而且,同样的关系有各种各样的语言表示,没有归一化,所以,如何应用还存在很多问题。

基于知识监督的方法。2007 年 CIKM 的论文最早提出这样的思想,在 Wikipedia 中可以分成两个区域,一个区域是结构化部分,我们叫做 Infobox,另一个区域是自然语言表达的部分,这两部分描述的信息有重叠,比如描述清华大学和建校时间的知识,在 Infobox 和自然语言里面有重叠的描述,如果把这两部分对应起来,就可以对应两边区域的知识,一边是它的训练集。这是一个非常简单的思想。如果用 Infobox 的结构化信息在 wikipedia 条目的自然语言文本中进行回标,可以自动产生训练语料。

简单远距离监督方法

Mintz 发展了这种思想,提出了远距离监督方法或者说是知识监督方法。大家看这个例子,第一个例子是正例,剩下的都是反例(也就是噪音)。我们需要把里面标注的例子中的噪音例子给过滤掉。噪音问题目前是利用知识监督方法建立训练集的最大挑战。大家在这方面做了很多研究,主要思想是:正例有规律的出现,反例是零零散散出现,借助这样的思想进行过滤。

在上图中,噪音数据和正例都出现了“乔布斯”和“苹果公司”,基于DS假设,就会有问题!

基于噪音实例去除的DS方法

这是我们做的开放关系抽取的研究工作。

我们用 Freebase 作为结构化知识,在纽约时报的文本上进行回标。作为过滤噪音的方法,我们用了多示例学习。在传统的方法中,假设回标的每个句子都表示这种关系,它的噪音就很多。在多学习示例当中,我们假定至少有一个句子表示了这种关系,目的就是要把最有可能的句子标注出来,这样它的准确率就比刚才那一个包里面的准确率高了,性能就会提高。

这件工作也是在深度学习框架下做的。因为做关系抽取,需要有两个实体,可以把句子分成三段。我们做深度学习和向量化的时候,不是一个句子做向量,而是把句子分成三部分,三部分分布做深度卷积操作,三部分的向量再合起来,来做整个句子向量化表示,这样可以保留句子的更多结构化信息,我们把这个模型叫分段卷积神经网络来自动学习特征。

基于多示例学习的知识监督开放关系抽取

这是我们标注的知识库和语料库,Freebase 和纽约时报。我们如果这样做的话,可以达到相对比较好的性能(大概在 70% 多的水平),虽然比较低,但已经比传统方法高,因为这是在 Freebase 的很多关系的类别上做的,能做到这个程度,其实就可以看到希望。

后面讲一下事件抽取。这是 ACE 的事件,可以定义的事件有这么多种。

预定义的事件抽取,预定义的事件抽取也是用神经网络做的。开放的事件抽取比开放的关系抽取要困难得多,为什么?

一个关系是由两个实体、以及它们之间的关系构成的。而一个事件不一样,比如一个婚姻事件,它有五个要素。

对于关系抽取,我们可以把两个实体作为锚点,在文本中标注。而一个事件有五个要素,不可能在一个句子中找全五个要素,因为,事件经常横跨几句、甚至一 个段落才能找到要素。还有一个更重要的特征,中间这个是 Marriage,在 Freebase 里面表示为 ID 号,在文本当中不可能找到对应的位置,所以这个最鲜明的特征我们找不着,所以回标的过程中遇到了非常大的困难。换句话,事件里面最有表征意义的是那个触发词,但是在知识库 Freebase 中只是一个标号,所以触发词就没有,这就很困难。

什么是触发词?什么是知识库?shot down

我们的方法,比如一类事件有 10 个要素,10 个要素不可能都出现,但是一个事件里面会有一些核心要素,我们就从一堆要素当中找出核心要素,用核心要素到句子当中找到触发词,将触发词和前面的要素关联到一起,再回标,就可以在文本当中找到更多数据,这就是我们的基本思想。在这件工作中,我们在 Freebase 上做了 21 类,ACE 只提供了 6000 个句子训练集,用我们这样的方法可以找到 42 万的语料,再过滤掉一些噪音,可靠性非常高的有 7 万多句,然后再训练事件抽取模型,触发词识别正确率达到 89%,元素标注正确率可以达到 85%。

今年,我们 ACL-2018 的一件工作也是在 Freebase 上做的,我们在一个具体的金融领域做一些项目(不是在通用领域),能不能发挥更好的作用。在金融领域做金融事件的挖掘,做了四类,冻结、质押、回购、增减持。能不能用知识监督方法建立训练语料把四类事件抽出来。我们主要的方法,利用金融知识库,回标的文本是上市公司年报,这是回标的句子,后面是回标以后具体的深度学习的方法,时间限制不做具体讲解。

从我们的实验可以看出来,在一个上市公司年报相对比较规范的文本中,知识库也比较详细,我们可以比通用领域做得更好,基本上可以达到 90% 的水平,给企业做这样的知识库,他们再去做人工的编辑,做出来的知识资源还是非常有用的,这是我们的方法在金融领域的应用。

今天我大概讲了这几个事情:知识图谱很重要,事件图谱是知识图谱中很重要的类型,为了建立事件图谱,我们需要研究开放域关系抽取,开放域事件抽取等等,其实可以在这方面做出很多有意思的工作,也可以有很多的应用,是一种很有潜力的方法。

开放域环境下文本事件抽取——Open Domain Event Extraction from Texts

Entity-Centric Knowledge Graph

实体知识图谱

Event-Centric Knowledge Graph

事件知识图谱

Event Frame

老师的研究任务的前提是Event Frame是预先给定好的。

Extract Events from Texts

事件是由一些动作触发的,会触发不同的事件。

事件的定义

我们可以将事件抽取的任务看做下面4个子任务:

  1. Event Identification(Trigger Words)
  2. Event Type Identification
  3. Argument Identification
  4. Argument Role Identification

Event Extraction vs. Relation Extraction

Event Extraction vs. Relation Extraction

  1. 关系的数量:关系抽取的目标是抽取两个实体之间的一个关系;而事件抽取的目标是抽取一个Trigger Word和每个Argument Words之间的关系;
  2. 事件在文本中一般没有显式表示,是通过Trigger Word表达的,因此在开放域下识别文本中的Trigger Word也是非常困难的。

Previous Event Extraction Task

Previous Event Extraction Task

  1. ACE

    主要侧重事件的识别事件相关信息的抽取

  2. TDT

    主要侧重聚类,将描述相同topic的文本聚类到一起,在这里topic就是事件.

Challenge in Open Domain Event Extraction

Challenge in Open Domain Event Extraction

在开放域下进行事件的抽取会带来很多的问题:

  1. 如上图,即使在Event Frame给定的情况下,也很难得到一个比较大的标注好的数据集,因此,我们希望能够建立一个模型,来帮助我们来自动的标注数据,即使标注的数据是有噪声的,然后我们利用这些标注数据再来训练事件抽取器。
  2. 事件抽取器:How to represent features to indicate events,问题在于不同类型的事件有不同的表示,我们能否得到一种普适的特征表示方法;
  3. How to acquire sufficient training data for multiple event types/classes

接下来,刘康老师开始讲解他们组这几年在How to represent features to indicate eventsHow to acquire sufficient training data for multiple event types/classes的探索~

Challenge 1:Feature Representation

Traditional Methods for Feature Representation

Traditional Methods for Feature Representation

  • 传统方法缺乏可扩展性
  • 老师尝试使用深度学习的方法来进行特征的提取

Dynamic Multi-pooling Convolutional Neural Network

下图是研究者比较早期的一个工作,目标是判别事件中argument role之间的关系(即cameraman和fired之间的关系):

Dynamic Multi-pooling Convolutional Neural Network

  • Lexical Level Feature:词法级别的特征;

  • Sentence Level Feature:句子级别的特性;

以上两种特征是事件抽取中常见的两类特征。

上图的亮点主要在于使用了Dynamic Multi-Pooling Layer的思想:

Dynamic Multi-Pooling Layer

看右图,两个蓝色的词其实天然的将句子划分成三个部分~所以不能简单暴力max-pooling

实验结果


利用更多的信息,继续对模型进行改进:

Event arguments are important to the Event Detection

考虑在模型训练的时候,事先标注好argument word以及argument word role,因为argument word会影响event的识别。

Attention Supervision

在事件识别里面加入attention的思想

More Attention on Arguments Words

注意力的策略


Regularization in Learning Model

目标是让算出来的$\alpha$尽可能接近人工标注的$\alpha$。


在**event detection**任务下的结果表现:

Compared with State-of-the-arts

Challenge 2:Training Data Generation

Generating Labeled Data from Structured KB

简单远距离算法。

其实这种“回标”思想,在关系抽取中就已经用到了。但是自动回标会产生噪声数据~

那么我们来看看这种方法能否搬到我们的事件抽取中呢?很遗憾是不能的。

The Strategy doesn't work for Event Extraction

在目前已有的知识库中,事件并没有显式地表示出来,而是通过一个特殊的编号(例如:m:02nqglv)来表示的,这样就不能像关系抽取那样用于回标了。因此,我们使用trigger word,但是已有的知识库中,并没有给出trigger words。

生成训练数据

关键在于如何找到trigger word,一个有效地办法是在knowledge base里面将跟这个事件有关的实体都进行回标时,我们把这句话里面的动词拿出来就是trigger word,但是一句话里面不一定会包含所有的argument!

Argument Selection for Events

如上图,不能使用所有的argument进行回标。我们需要寻找关键的argument——key argument。

Generating Labeled Data in Event Extraction

上图就是整个产生训练数据的流程。

Generating Labeled Data in Event Extraction

上图是一种找key argument的方法~使用的是基于TF-IDF的思想。使用topK的argument进行回标。

再使用TF-IDF进行trigger word的筛选!

Generating Labeled Data in Event Extraction

回标

trigger words和argument words。

避免噪声数据


实验


结果

ED是自动标注的,ACE是人工标注的。


Event Types and Schema in Finical Domain

金融领域的事件类型和模式


9OUWE2D%$9@(7FL)I)R4RGL.png

第一步是文本分类

第二步是找到

开放域事件抽取中的两个问题

依然是之前说的那两个问题~

结果

研究者

  1. 赵军
  2. 刘康
  3. 刘挺

参考学习链接

  1. 论文简记 | 开放域事件抽取综述
  2. 开放域环境下文本事件抽取

注解

[^2]:Freebase(Bollacker et al.,2008)是一个巨大的,免费的事实数据库,组织成三元组的形式(subject Entity,Relationship,object Entity)。Freebase的实体和关系都有类别,并且类别和关系的词典类似


文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
  目录