代码
原文地址
摘要
现有的大多数方法在确定关系类型之前,需要先识别出所有的实体,这样就忽略了实体提及和关系类型之间的交互。本文提出了一种新颖的联合抽取范式,把相关实体看作是关系的参数( 首先检测一个关系,然后提取相应的实体作为关系的参数)。本文在这个范式下采用了一个分层强化学习框架,以强化实体提及和关系类型之间的交互。整个抽取过程被拆分为两个层次的RL策略,分别负责关系检测和实体抽取,从而更有效和自然地处理重叠关系。本文的模型在利用远程监督方法收集的公开数据集上进行了评估,结果显示,它不仅优于现有的方法,而且在抽取重叠关系方面更具优势。Introduction
本文的模型利用高层次的强化学习(RL)过程,在句子中寻找关系指示符,并用低层次的RL过程,确定关系的参与实体。如图1所示,抽取过程从句首到句尾进行顺序扫描(I)。高层次的过程在某个位置发现一个关系指示符后,就启动低层次的过程,来找出该关系的相应实体(II)。低层次的实体抽取子任务完成之后(III),高层次的RL过程继续扫描,寻找句子中的其他关系(IV)。 先前Doc RE的两个问题:- 首先,传统模型大多数都是先识别出所有实体,然后再确定关系类型,而没有充分捕捉两个任务之间的交互。这些方法相当于把关系对齐到实体对上,但是这样做可能会引入噪声,因为有些句子并没有真正提及关系,或者有些句子描述了多个关系。例如,Zhang et al. (2013)和Takamatsu, Sato, and Nakagawa (2012)就指出了这些问题。
- 其次,目前还没有一种优雅的联合抽取方法来处理一对多的问题,也就是重叠关系的问题。这种问题是指一个实体可能在同一个句子中参与多个关系,或者同一个实体对在同一个句子中有不同的关系。图1中的Steve Blichick就是一个例子。据本文所知,CopyR (Zeng et al. 2018)是唯一讨论了这个问题的方法,它把关系抽取看作是一个三元组生成的过程。然而,本文的实验表明,这种方法强烈依赖于训练数据,而且不能抽取多词实体。
- 第一个问题是如何处理实体和关系之间的依赖性。本文的方法是把实体作为关系的参数,然后通过高层和低层强化学习过程中的状态表示和奖励来建立它们之间的联系。这样,主任务(高层强化学习过程,用于检测关系类型)和子任务(低层强化学习过程,用于抽取实体)之间的交互就能很好地捕捉到。主任务在启动子任务时传递信息,子任务在完成后返回低层奖励,反映子任务的效果。这种方式使得模型能够更好地建模关系类型和实体之间的交互。
- 第二个问题是如何处理句子中的多个重叠关系。本文的方法是通过层次结构来分解关系抽取任务。本文把关系抽取任务分为高层任务和低层任务,分别用于检测关系类型和抽取实体。这样,句子中的每个关系都可以单独和顺序地处理。如图1所示,当主任务检测到第一个关系类型(父母-子女)时,就会抽取出第一个关系,当检测到第二个关系类型(死亡地点)时,就会抽取出第二个关系,即使这两个关系有共同的实体(Steve Blichick)。
- 本文设计了一种新颖的端到端的层次范式,用于联合识别实体和关系类型,它把关系抽取任务分解为高层任务和低层任务。
- 本文将强化学习引入这个范式,使得本文的方法在建模主任务和子任务之间的交互和抽取重叠关系方面优于基线方法。
Related Work
传统的流水线方法将实体抽取和关系分类分开处理。它们先从文本中识别出实体提及的范围,再根据实体提及之间的关系构建关系结构。这种方法虽然灵活,但也容易产生错误传播的问题,即下游模块的效果会受到上游模块错误的影响。 为了解决这个问题,有多种联合学习的方法被提出。Kate and Mooney (2010) 提出了一种卡片金字塔图结构,用于同时进行实体抽取和关系分类,Hoffmann et al. (2011) 开发了一种基于图的多实例学习算法,也是一种联合学习的方法。但是,这两种方法都使用了贪婪的搜索策略,过度地削减了搜索空间,限制了性能。还有一些研究采用了结构化学习的方法(Li and Ji 2014; Miwa and Sasaki 2014)。这些方法都需要大量的特征工程,耗费了很多人力和专业知识。 另一方面,Bjorne et al. (2011) 提出了一种先抽取关系触发词再确定其论元的方法,关系触发词是指在句子中明确表示一种关系存在的短语,这样可以降低任务的难度。开放式信息抽取系统ReVerb (Fader, Soderland, and Etzioni 2011) 也是采用了这种方法,它使用词汇约束来识别关系短语。但是,这种方法无法捕获那些没有关系触发词的关系,这些关系在句子中也是存在的。 最近的研究探讨了用神经模型进行联合关系抽取的方法(Katiyar and Cardie 2016; Zhang, Zhang, and Fu 2017)。Miwa and Bansal (2016) 提出了一种神经模型,它在实体抽取和关系分类两个任务上共享参数,但是两个任务是分开处理的。它通过穷举检测到的实体提及和关系类型之间的所有组合,来得到最终的决策。与之不同的是,前述的方法都是先识别出所有的实体,然后再进行关系抽取。Zheng et al. (2017) 使用了一种标注方案,它将每个词的关系类型标签和实体提及标签进行笛卡尔积,从而生成一个唯一的标签,同时编码了实体提及和关系类型。然而,这种方法无法处理句子中存在的重叠关系:如果一个实体是多个关系的论元,那么这个实体的标签就不应该是唯一的。最近的一项研究(Zeng et al. 2018)与本文的目标非常相关,它旨在处理重叠关系。它采用了基于序列到序列(Seq2Seq)学习的多个解码器,其中每个解码器从源句子中复制一个实体词,每个句子中的三元组由不同的解码器生成。但是这种方法强烈依赖于训练数据的标注,它无法抽取出由多个词组成的实体。 强化学习最近也被应用到信息抽取领域。RL被用来获取和整合事件抽取中的外部证据(Narasimhan, Yala, and Barzilay 2016)。Feng et al. (2018) 使用 RL 来训练一个实例选择器,用来去除通过远程监督得到的关系分类的训练数据中的噪声。通过利用 RL 将假阳性样本分配到负例中,远程监督的关系类型抽取得到了改进(Qin, Xu, and Wang 2018)。Hierarchical Extraction Framework
Definition 1.
关系指示符是指句子中能够表明语义关系的位置,它可以是一个动词(如 die of)、一个名词(如 his father)、一个介词(如 from/by)或者一个标点符号(如逗号或句号)。例如,在图 1 中,逗号就是关系类型 place-of-death 的关系指示符。关系指示符对于本文的模型来说非常重要,因为该模型是通过先检测关系指示符,再抽取实体提及来完成关系抽取任务的。 整个抽取过程如下。一个agent在顺序扫描一个句子时,预测一个特定位置的关系类型。注意,这个关系检测过程不需要实体的标注,因此与关系分类不同,关系分类是识别实体对之间的关系。当在一个时间步没有足够的证据表明一个语义关系时,agent可以选择NR,它是一种特殊的关系类型,表示没有关系。否则,一个关系指示符被触发,agent启动一个实体抽取的子任务,来识别关系的参数,即两个实体。当实体提及被识别时,子任务完成,agent继续扫描句子的其余部分,寻找其他关系。 这样的过程可以自然地被表述为一个半马尔可夫决策过程(Sutton, Precup, and Singh 1999):- 一个高层次的强化学习过程,检测一个句子中的关系指示符;
- 一个低层次的强化学习过程,识别相应关系的相关实体。
Relation Detection with High-level RL
高层RL策略的目标是检测句子中的关系,这可以被视为一个传统的基于选项的RL策略。一个选项指的是一个高层动作,当一个选项被agent执行时,一个低层RL过程就会被启动。 Option: 选项是从中选择的,其中表示没有关系,是关系类型的集合。当一个低层RL过程进入终止状态时,agent的控制权将被交给高层RL过程来执行下一个选项。 State: 高层RL过程在时间步的状态,由以下三部分表示: 1) 当前的隐藏状态, 2) 关系类型向量(最近的选项 的嵌入,其中,这是一个可学习的参数), 3) 上一时间步的状态 形式上表示为: 其中是一个由MLP实现的非线性函数。 为了得到隐藏状态,这里引入了一个序列Bi-LSTM,它作用于当前的输入词嵌入: Policy: 用于关系检测的随机策略,它指定了选项上的概率分布: Reward: 然后,环境提供了中间奖励 来估计执行选项 时的未来回报。奖励的计算如下: 如果在某个时间步 ,则agent在下一个时间步转移到一个新的高层次的选项间状态。否则,低层次的策略将执行实体抽取过程。选项间状态不会转移,直到当前选项 的子任务完成,这可能需要多个时间步。这样的半马尔可夫过程持续到最后一个关于句子中最后一个词 的选项被采样。最后,得到一个最终奖励 来衡量 检测的句子级别的抽取性能: 其中, 是关于句子 中的关系的精确度和召回率的加权调和平均。 分别表示精确度/召回率,根据一个句子计算。Entity Extraction with Low-level RL
当高层策略预测出一个非的关系类型时,低层策略将抽取出参与该关系的实体。低层策略对动作(原始动作)的制定与高层策略对选项的制定非常相似。为了使预测的关系类型在低层过程中可访问,高层强化学习中的选项被作为额外的输入,在低层抽取过程中贯穿始终。 Action: 每个时间步的动作是为当前的词分配一个实体标签。动作空间,即实体标签空间,其中表示参与的源实体,表示目标实体,表示与预测的关系类型无关的实体,表示非实体词。注意,根据当前关注的不同关系类型,同一个实体提及可能被分配不同的标签。这样,模型可以处理重叠的关系。另外,使用符号来表示实体的开始词和内部词,分别参见图4的例子。 State: 与关系检测的策略类似,低层选项内状态由以下四部分表示: 1)当前词嵌入的隐藏状态, 2)实体标签向量,它是的可学习嵌入, 3)前一时间步的状态, 4)使用在公式(1)中分配给最新选项的关系状态表示的上下文向量,如下所示: 其中,是从公式(2)中的Bi-LSTM模块得到的隐藏状态,是由MLP实现的非线性函数。注意,可能是来自高层强化学习过程或低层过程的状态。 Policy: 实体抽取的随机策略在给定选项内状态和启动当前子任务的高层选项的情况下,输出一个动作分布。 其中是一个个矩阵的数组。 Reward: 给定关系类型,每个词的实体标签可以通过从策略中采样动作来轻松获得。因此,当采样动作时,提供一个即时奖励,通过简单地测量预测误差和金标注之间的差异: 其中是符号函数,是在预测的关系类型的条件下的金标准实体标签。这里是一个偏置权重,用于降低非实体标签的权重,定义如下: 较小的导致非实体词的奖励较少。这样,模型避免学习一个平凡的策略,即将所有词都预测为(非实体词)。当所有的动作都被采样后,计算一个额外的最终奖励。如果所有的实体标签都被正确地预测,那么智能体获得+1的奖励,否则-1。Hierarchical Policy Learning
为了优化高层策略,本文的目标是最大化每个时间步的主任务的期望累积奖励,当agent按照高层策略采样轨迹时,可以按照如下公式计算: 其中由参数化,是强化学习中的折扣因子,整个采样过程在终止前需要个时间步。 类似地,本文通过最大化子任务中选项下的期望累积内部选项奖励来学习低层策略,当agent在时间步沿着低层策略采样时: 如果子任务在时间步结束。 通过将累积奖励分解为贝尔曼方程,可以得到: 其中是子任务持续的时间步数,当实体抽取策略在选项上运行时,所以agent的下一个选项是. 特别地,如果,那么. 然后,使用策略梯度方法 (Sutton et al. 2000) 和 REINFORCE 算法 (Williams 1992) 来优化高层和低层策略。利用似然比技巧,高层策略的梯度为: 低层策略的梯度为: 整个训练过程在算法 1 中描述。Experiments
Experimental Setting
Datasets 本文在 New York Times 语料库上评估了本文的模型,该语料库是由远程监督开发的,包含有噪声的关系。该语料库有两个版本: 1)原始版本,由将原始数据与 Freebase 关系对齐而生成(Riedel, Yao, and McCallum 2010); 2)一个较小的版本,其测试集是手动标注的(Hoffmann et al. 2011)。 本文将原始版本命名为 NYT10,较小的版本命名为 NYT11。从 NYT11 的训练数据中分割出一部分,构建了 NYT11-plus。 本文通过移除以下内容来过滤数据集: 1)训练集中的关系,其关系类型在测试集中不存在; 2)不包含任何关系的句子。这样的预处理也与文献中的设置一致(例如,Tagging)。 所有的基线都在这个设置下进行评估,以进行公平的比较。两个过滤后的数据集的统计信息如表 1 所示。 对于每个数据集,从训练集中随机选择0.5%的数据进行验证。 Parameter Settings 所有的超参数都在验证集上调整。方程(1)、(2)和(6)中的所有向量的维度都是 300。词向量使用 Glove 向量(Pennington, Socher, and Manning 2014)初始化,并在训练过程中更新。关系类型向量和实体标签向量都是随机初始化的。学习率是 4e − 5,小批量大小是 16,方程(9)中的 α = 0.1,方程(5)中的 β = 0.9,折扣因子 γ = 0.95。 Evaluation Metrics 本文采用了标准的 micro-F1 来评估性能。本文比较了提取的实体提及是否能与关系中的实体完全匹配。如果关系类型和两个对应的实体都正确,那么一个三元组就被认为是正确的。 Baselines 本文选择了两种类型的基线方法:一种是流水线方法(FCM),另一种是联合学习方法,包括基于特征的方法(MultiR 和 CoType)和神经方法(SPTree,Tagging 和 CopyR)。本文使用了开源代码,并自己进行了实验。- FCM (Gormley, Yu, and Dredze 2015):一个组合模型,结合了词汇化的语言环境和词嵌入,来学习句子中子结构的表示,用于关系抽取。
- MultiR (Hoffmann et al. 2011):一个典型的远程监督方法,执行句子级别和语料级别的抽取,使用多实例加权来处理训练数据中的噪声标签。
- CoType (Ren et al. 2017):一个与领域无关的框架,通过将实体提及、关系提及、文本特征和类型标签共同嵌入到表示中,将抽取问题建模为一个全局嵌入问题。
- SPTree (Miwa and Bansal 2016):一个端到端的关系抽取模型,使用双向顺序和树结构的 LSTM-RNNs 来表示单词序列和依赖树结构。
- Tagging (Zheng et al. 2017):一个将联合抽取视为一个顺序标注问题的方法,使用一个标注方案,其中每个标签同时编码实体提及和关系类型。
- CopyR (Zeng et al. 2018):一个带有复制机制的 Seq2Seq 学习框架,用于联合抽取,其中使用多个解码器来生成三元组,以处理重叠的关系。
Overlapping Relation Extraction
本文准备了另外两个测试集来验证本文的模型在抽取重叠关系方面的有效性。注意,重叠关系可以分为两种类型。- 类型 I:一个句子中的两个三元组只共享一个实体
- 类型 II:一个句子中的两个三元组共享两个实体(头实体和尾实体)