任务概述

任务定义

关系定义为两个或多个实体之间的某种联系,关系抽取就是自动识别实体之间具有的某种语义关系。根据参与实体的多少可以分为二元关系抽取和多元关系抽取。二元关系抽取是其他关系抽取研究的基础。

任务分类

根据处理数据源的不同,关系抽取可以分为以下三种:

  • 面向结构化文本的关系抽取。
  • 面向非结构化文本的关系抽取。
  • 面向半结构化文本的关系抽取。

根据抽取文本的范围不同,关系抽取可以分为句子级关系抽取和语料(篇章)级关系抽取:

  • 句子级关系抽取,也称为句子级关系分类,即从一个句子中判别两个实体间是何种语义关系。
  • 语料(篇章)级关系抽取,该任务旨在判别两个实体之间是否具有某种语义关系,而不必限定两个目标实体所出现的上下文。这一任务对于知识图谱构建十分重要,因为在知识图谱构建过程中,我们需要分析图谱中两个节点(实体)之间边上的语义标签(关系),而并不用特别关注它们所出现的具体文本。

根据所抽取领域的划分,关系抽取又可以分为限定域关系抽取和开放域关系抽取:

  • 限定域关系抽取。是指在一个或多个限定的领域内对实体间的语义关系进行抽取。通常情况下,由于是限定域,语义关系也是预设好的有限个类别。对于这一任务,可以采用基于监督学习的方法来处理,即针对每个关系类别标注充足的训练数据,然后设计关系抽取模型,进行模型训练,最后利用训练好的模型抽取关系。但是面对大规模知识图谱构建时,人工标注的训练语料远远不够,所以有很多工作利用弱监督学习解决训练语料的标注问题。
  • 开放域关系抽取。与限定域关系抽取不同,开放域关系抽取并不限定关系的类别,依据模型对于自然语言句子理解的结果从中开放式抽取实体关系三元组。

任务难点

(1) 同一关系可以具有多种不同的词汇表示方法。例如:句子“姚明出生于上海”和句子“姚明的出生地是上海”都表达了姚明和上海具有出生地关系。

(2) 同一短语或词可能表达不同的关系。例如:句子“李梅是我的姑娘”中的姑娘,在不同的上下文中代表了不同的关系,可以指“女朋友”也可以指“女儿”。

(3) 同一对实体之间可能存在不止一种关系。例如:姚明的出生地是上海,姚明的居住地也是上海。

(4) 关系抽取不仅涉及到两个或两个以上的实体单元,还涉及实体周围的上下文,需要利用文本中的一些结构化信息,使得问题复杂度成指数级增长。例如:“三国时期,蜀国有多位能征善战的将军,他们是:关羽、张飞、赵云、黄忠和马超”

(5) 关系有时候在文本中找不到任何明确的标识,关系隐含在文本中。例如:蒂姆·库克与中国移动董事长奚国华会面商议“合作事宜”,透露出了他将带领苹果公司进一步开拓中国市场的讯号。在这一段文本中,并没有直接给出蒂姆·库克和苹果公司的关系,但是从“带领苹果公司”的表达,我们可以推断蒂姆·库克是苹果公司的CEO。

(6) 关系抽取一般依赖于词法、句法分析等基本的自然语言处理工具,但是实际情况下,许多针对这些工作的自然语言处理工具性能并不高,低性能工具引入的错误反而会降低关系抽取系统的性能。

相关测评

MUC(Message Understanding Conference):关系抽取的概念最早在MUC-6的模板元素(Template Element,TE)任务里出现,MUC-7把命名实体之间潜在的关系从实体的属性值中分离出来,正式引入了模板关系(Template Relation,TR)任务。

ACE(Automatic Content Extractioin Evaluation,ACE):关系识别与检测(Relation Detection and Recognition,RDR)。

TAC(Text Analysis Conference):知识库构建评测(Knowledge Base Population,KBP)的槽填充(Solt Filling)。

SemEval:定义了9类关系。

限定域关系抽取

限定域关系抽取在一个或多个限定的领域内判别文本中所出现的实体指称之间是何种语义关系,且待判别的语义关系是预定义的。因此,已有研究常把这一任务看成是一个文本分类任务,即在输入一个句子以及标识句子中所出现的实体指称的条件下,系统将其分类到所属的语义类别上。早期针对这一任务的研究多是采用模板的方式对文本中实体间的语义关系进行判别,随着统计机器学习的发展,越来越多的研究者采用有监督学习的方法,即针对每个关系类别标注充足的训练数据,然后设计关系抽取模型,其研究多关注于如何抽取有效的特征。根据从句子中所提取表征语义关系特征的方式的不同,我们可以把已有方法分为传统基于特征工程的关系分类方法和基于深度学习的关系分类方法。但是,人工标注语料耗时费力,成本高,因此很多情况下很难获得足够的训练数据,因此有很多研究利用弱监督学习的方法抽取关系。下面对这些方法分别进行介绍。

基于模板的关系抽取方法

基于模板的关系抽取方法通过人工编辑或者学习得到的模板对文本中的实体关系进行抽取和判别。例如,假设X和Y表示公司类型,可以使用如下模板表示收购(ACQUISITION)关系。

\[X is acquired by Y\] \[X is purchased by Y\] \[X is bought by Y\]

当一个句子中所出现的实体指称的上下文文本满足上述模板时,就可以认为这两个实体指称在这个句子中具有收购(ACQUISITION)的关系。然而,人工方法不可能针对多类关系穷举所有的模板,那么就需要采用自动的方法学习抽取模板。问题是(1) 如何学习用于抽取关系的模板?(2) 如果将学习到的模板进行聚类?

针对上述问题,已有的方法多采用自提升(Bootstrapping)策略,对于实体和模板进行联合迭代地交替抽取和学习。基本出发点:一种语义关系可以采用对偶的方式进行表示,包括两种表示方式:外延性(Extensionally)表示和内涵性(Intensionally)表示。外延性表示指为表示某种语义关系,可以使用所有包含这种关系的实体对来表示。内涵型表示指为表示某种关系,可以使用所有能抽取出这种关系的模板来表示。用符号R表示关系,E(R)表示所有包含关系R的实体对,P(R)表示所有能抽取出这种关系的模板。E(R)和P(R)都能表示关系R。因此,我们可以利用实体对在文本中获取模板信息,再利用获取到的模板抽取更多的实体对。这是一个自提升的过程。

其中关键步骤是抽取句子中的实体对之间表达关系的模板。模板可以是基于词汇的,也可以是基于句法或语义的。这一过程需要自然语言处理技术,包括句子边界探索、词性标注、名词词组块识别等。例如,我们可以首先使用句子边界探测工具将给定的文本语料分割为句子,然后运行词性标注工具获得单词的词性。为了探测句子中的实体,可以使用名词短语块识别工具或命名实体识别工具提取合适的名词词块和实体。然后在此基础上,分别抽取词汇级关系模板和句法级关系模板。

另外,模板学习的另一个关键问题是不同的模板可能表示同一语义关系。因此,在抽取模板之后,需要对习得的模板进行聚类,将表示同一语义关系的模板聚在一起。

基于机器学习的关系抽取方法

基于模板的关系抽取方法的最大问题在于其受限于模板的质量和覆盖度,可扩展性不强。因此,随着机器学习方法的发展,很多工作将关系抽取看成是一个分类问题,开始尝试利用较为成熟的机器学习算法解决这一问题。主要可分为有监督的关系抽取方法和弱监督的关系抽取方法。

有监督的关系抽取方法

有监督关系抽取的主要工作在于如何抽取出表征实体指称间语义关系的有效特征。通常情况下,特征抽取主要是使用自然语言处理工具包,从句子中抽取出如词汇、句法和语义等特征,作为关系分类的证据。为了缓解句法特征的稀疏性,有很多研究集中于利用核函数的方法进行关系抽取。近年来随着神经网络的发展,有很多研究开始利用神经网络自动从文本中提取表征关系的特征,进而完成关系的抽取。

  1. 基于特征工程的方法

基于特征的方法的特点是需要显式地将关系实例转换成分类器可以接受的特征向量,其研究重点在于怎样提取具有区分性的特征。总结而言,该方法共三个步骤:(1) 特征提取:提取词汇、句法和语义等特征,然后有效地集成起来,从而产生描述关系实例的各种局部和全局特征。(2) 模型训练:利用提取的特征训练分类模型。(3) 关系抽取:主要是利用训练好的模型对非结构化文本进行分类,进而完成关系抽取。

常见的关系抽取特征举例如下:

(1) 词汇特征。这些特征包含实体本身的词语或者名词性词组块、两个实体(词组块)之间的词语和两个实体(词组块)两端的词语。

(2) 实体属性特征。这些特征包含实体或者名词性词组块的类型特征,包括人物(Person),组织(Organization),位置(Location),设施(Facility)和地缘政治实体(Geo-Political Entity)等。

(3) 重叠特征。这些特征包括两个实体或词组块之间词语的个数、它们之间部分包含其他实体或词组块的个数、两个实体或词组块是否在同一个名词短语、动词短语或者介词短语中。

(4) 依存句法特征。这些特征包含两个实体(名词性组块)的依存句法分析树中的依存标签和依存路径。

(5) 句法树特征。这些特征包含连接两个实体(名词性组块)的句法路径,不包含重复的节点,并且将路径使用头词(head words)标注。

  1. 基于核函数的方法

不同于基于特征的方法,基于核函数的方法不需要构造固有的特征向量空间,能很好地弥补基于特征向量方法的不足。在关系抽取中,基于核函数的方法直接以结构树为处理对象,在计算关系之间距离的时候不再使用特征向量的内积而是用核函数。核函数可以在高维的特征空间中隐式地计算对象之间的距离,不用枚举所有的特征也可以计算向量的点积,表示实体关系很灵活,可以方便地利用多种不同的特征,使用支持核函数的分类器进行关系抽取。

基于核函数的关系抽取最早由Zelenko等提出,他们在文本的浅层句法树的基础上定义了树核函数,并设计了一个计算树核函数相似度的动态规划算法,然后通过支持向量机(SVM)和表决感知器(Voted Perceptron)等分类方法来抽取实体间语义关系。

  1. 基于神经网络的方法

尽管上述基于特征工程和核函数的统计学习方法面对关系抽取任务能够达到一定的效果,但是在模型可扩展性上仍然存在很大的问题,限制了这些方法的应用和推广:(1) 上述人工设计的特征(词汇特征、实体特征、依存句法树特征等)的提取均依赖于自然语言处理工具,同时特征抽取的过程也是一个串联(Pipeline)的过程,前一步自然语言处理的结果作为后一步的输入,例如:在依存句法分析前需要分词、词性识别甚至是实体识别。然而,目前已有的自然语言抽取工具的性能并不是百分之百准确。因此,这些自然语言处理工具容易造成错误累积和传递,使得抽取到的特征不精准。(2) 面对中文、英语等富资源的语种来说,我们可以有丰富的自然语言处理工具用于抽取特征。然而,面对一些小语种,特别是那些资源贫瘠的语种,当没有可用的自然语言处理工具时,就不能运用上述基于特征工程的关系抽取方法。

随着深度学习方法的兴起,越来越多的研究者开始利用神经网络方法进行文本特征的学习,并逐步将其应用到关系抽取任务中来。该类方法主要包括如下几个步骤:(1) 特征表示:主要是将纯文本的特征表示为分布式特征信息,例如:将词表示为词向量。(2) 神经网络的构建与高层特征学习:主要是设计搭建神经网络模型并利用其将上一步得到的基本特征自动表示为高层特征。(3) 模型训练:利用标注数据,优化网络参数,训练网络模型。(4) 模型分类:利用训练的模型对新样本进行分类,进而完成关系抽取。

首先,输入的句子通过词向量表示,转化为向量的形式输入网络。然后,特征抽取部分进一步提取词汇级别特征和句子级别特征,接下来将这两种特征拼接起来作为最终的特征进行关系分类。词汇级别特征的抽取是将句子中某些词向量挑选出来,并将挑选出的向量拼接起来作为这部分特征抽取的结果。句子级别特征是对整个句子学习出一个向量表示,由于语言表达多样,不同的句子个数理论上是无限的,这样就不能像学习词向量一样,以句子为处理对象,通过统计句子的频率、共现等信息学习出句子的向量表示。然而,一句话的语义通常是由组成这句话的含义和这些词的组合方式决定。因此,Zeng等使用卷积神经网络学习句子含义的组合规律和方式,在以词向量作为输入的基础上,将句子中包含的词向量组合起来,进而得到句子级别特征表示。相对于传统特征表示方法,其优点是不再依赖于传统的自然语言处理工具(POS,NER等),完全通过卷积网络直接从具有冗余信息的词向量中自动学习、挑选出有用特征信息,进而学习得到高质量的特征。

(1) 词向量输入

由于自然语言的句子是基于符号表示的,而神经网络内部的运算是基于分布式表示的。因此需要在网络输入端,通过查询词向量(Word Embeddings)表,将句子中的每个词都使用词向量进行表示。众所周知,词向量基于分布式表示(Distributed Representation),根据词频、词的共现和搭配等语言知识,将文本中的词表示为低维空间中的稠密向量。词向量中每一个维度都表示某种隐式的语义,当词映射到向量空间以后,词就是向量空间中的一个点,词与词之间的关系可以通过点与点之间的关系反映出来,例如近似词之间的欧式距离很小等。其优点在于,词的向量化表示既能以连续的方式表达离散的变量,又能够保持原词的语言属性,可以使用机器学习算法在海量自然标注文本数据中自动学习。当前主要的词向量模型有语言模型、SENNA模型、RNNLM模型和Word2vec模型等。

(2) 词汇级别特征

首先介绍词汇级别特征抽取。对于关系抽取任务,词汇级别的特征是很重要的,在传统的特征抽取方法中也经常使用。传统方法抽取的词汇特征主要包括词本身、词性以及待分类的两个词之间的词等。在Zeng等人的方法中,不使用词、词性以及实体类别标签作为特征,而是直接使用词向量作为词汇级别特征。词向量的优点在于表示后的向量空间里,如果两个词在句法或语义上相关性越大,那么这两个词在距离上越接近。他们选择给定的两个词及其上下文词语所对应的词向量作为词汇级别特征。

(3) 句子级别特征

词表示将所有的词都表示为向量形式,这些词向量能很好地捕捉到词的相似度,用法相似且意义相近的词,其词向量间的距离也更近,但它们的局限性在于不能捕捉长距离的句子语义。在关系抽取中,一般根据整个句子的意义来判断两个词间的关系,为捕捉这种特征,Zeng等人提出使用卷积神经网络通过语义组合的方式自动学习句子级别的特征。在输入的词被表示为向量后,系统首先通过开窗处理取得局部特征,然后再通过卷积滤波捕获不同的特征,最后对卷积的结果进行非线性变换得到句子级别特征。特别地,为了让网络知道句子中哪两个词需要给定语义关系,Zeng等使用位置特征对句子中需要给定语义关系的两个词进行建模。位置特征表示当前词到待分类的两个词之间的相对距离。

(4) 网络输出

将词汇级别和句子级别特征拼接起来,可以得到最终的特征向量。为了得到网络的输出,将特征向量输入Softmax分类器,模型训练时为了得到最优的模型参数,他们使用随机梯度下降最大化对数似然函数。

弱监督的关系抽取方法

传统的有监督关系抽取方法需要依赖人工标注的数据,这限制了该方法的适用领域,使得它难以成为关系抽取的核心方法。实际上,带有标注的文本通常是稀缺的资源,距离监督(Distant Supervision)正式在这种背景下提出的方法。当前,在学术界和企业界的共同努力下,已经构建了许多开发可用的知识图谱,这些知识图谱以结构化三元组的形式存储实体和实体之间的关系,距离监督正式利用了这种结构化的数据,让知识图谱自动标注训练样本,由于标注过程不需要人工逐一标注,因此距离监督关系抽取也是弱监督关系抽取的一种。该方法启发式地对齐知识图谱和文本中的实体,然后根据这个对齐学习关系抽取器。该类方法主要基于如下的距离监督假设。

如果两个实体之间存在某种关系,则所有包含着两个实体的句子都表达了这种关系,这些句子的集合被称为一个“包”。这个假设允许研究者们从所有包含制定实体对的句子中抽取特征进行分类,Mintz等正是采用此方法,将Freebase和Wikipedia中的实体进行对齐,以70%的精度抽取了数以万计的关系实例。然而,Riedel等认为包含两个给定实体对的句子不一定表达了实体间的关系,有可能两个实体出现在同一个句子中只是因为和相同的主题相关,并不是具有所关注的实体关系。就连个具有nationality关系的实体对而言,纽约时报中只有38%的句子真实表达了这种关系,Wikipedia中甚至只有20%的句子真实表达了关系。针对这一问题,Riedel等提出了expressed-at-least-once假设,他们认为多示例包中可能并不是所有的示例都是有效的,但是至少有一个示例是有效的。

由于基于弱监督学习的关系抽取系统不需要人工标注数据,因此目前基于弱监督学习的关系抽取系统抽取的关系实例规模比较大,代表性的系统有:NELL和Probase。

开放域关系抽取

上面我们介绍了限定域的关系抽取,限定域关系抽取需要预先定义关系的类别,然而很多情况下预定义一个全面的关系类型体系是很困难的。开放域关系抽取不需要预先定义关系,而是使用实体对上下文中的一些词语来描述实体之间的关系。开放域关系抽取的任务可以形式化地表示为(arg1,relationWords,arg2),其中arg1,arg2是存在关系的实体对,relationWords代表关系,就是上下文中描述关系的词或词序列。例如:“姚明出生于上海”中,开放域关系抽取系统抽取结果为(姚明,出生于,上海)。但是如果预定义关系抽取中定义了出生地的关系没有定义出生于的关系,则预定义关系抽取的结果是(姚明,出生地,上海)。

华盛顿大学的人工智能研究组最早提出开放域信息抽取(Open Information Extraction, Open IE)的概念,在这方面做了大量代表性的工作,并开发了一系列原型系统:TextRunner、Kylin、WOE、ReVerb等。Banko等在2007年首先提出了开放域关系抽取并开发出一个完整的系统TextRunner,它能够直接从网页纯文本中抽取实体关系。

TextRunner主要分为三个模块:语料的自动生成和分类器训练、大规模关系三元组的抽取、关系三元组可信度计算。

  1. 语料的自动生成和分类器训练

语料的自动生成:主要是通过依存句法分析结合启发式规则自动生成语料。利用的启发式规则距离如下:

  • 两个实体的依存路径长度不能大于指定值。
  • 实体不能是代词。
  • 关系指示词是两个实体之间依存路径上的动词或动词短语。
  • 两个实体必须在同一个句子中。

分类器训练:TextRunner利用朴素贝叶斯分类器进行训练,其使用的特征举例如下:

  • 关系指示词的词性
  • 关系指示词的长度
  • 实体的类型
  • 实体是否是专有名词
  • 左实体左边词语的词性
  • 右实体右边词语的词性
  1. 大规模关系三元组的抽取

利用上一步训练好的关系抽取器,在大规模的web文本上进行关系三元组的抽取,并将抽取的大量三元组存储起来。

  1. 关系三元组可信度计算

首先将存储起来的相似的三元组进行合并,例如(arg1,married,arg2)和(arg1,marries,arg2)是两个相同的三元组。然后根据网络数据的冗余性,计算合并后关系三元组在网络文本中出现的次数,进而计算相应关系三元组的可信度。