论文解读:A Hierarchical Framework for Relation Extraction with Reinforcement Learning
关系抽取是一项比较基础的自然语言处理任务,而联合实体和关系抽取则是一种端到端的方法。传统的方法基本上是先通过实体识别再进行关系抽取,但这容易导致误差传播。为了能够有效提高抽取的效果,本文提出一种基于分层的强化学习框架用于关系抽取。
一、简要信息
序号 | 属性 | 值 |
1 | 模型名称 | HRL-RE |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 联合抽取;强化学习 |
4 | 核心内容 | Relation Indicador,Entity Extraction,Reinforcement Learning |
5 | GitHub源码 | HRL-RE |
6 | 论文PDF |
二、全文摘要翻译
大多数现有的工作都是在实体识别后决定关系的类型,但这样实体以及关系类型之间的交互性便不充分。本文提出一种新的方法用于关系抽取,将实体作为关系的一个参数。我们引入一种分层的强化学习框架来增强实体和关系之间的交互性。整个抽取的过程被分解为高层high-level和低层low-level并分别用于关系判定和实体抽取,因此很灵活自然的处理overlapping关系。我们的方法在远程监督公开数据集上进行验证,并获得了SOTA结果。
三、相关工作与介绍
我们知道,一般做实体关系抽取都是建立在实体识别的基础上,包括一些以联合抽取为出发点的方法也是基于这种模式,这种方法一方面会存在误差传播,也导致两个任务之间的交互性过低。因此如何提高关系抽取和实体识别的交互性是本文的核心出发点。另外一些关系抽取的任务忽略了overlapping问题,即同一个实体对有多个关系,或同一个实体在句子中有多个实体与其匹配,因此这是本文的第二个出发点。所以总的来说,文章的两个动机是:解决pipeline两个独立任务的交互问题;解决multi-relation(overlapping)问题。
对于第一个问题,作者将实体作为关系的一个参数;对于第二个问题,作者采用一种分层结构的强化学习框架。层次结构包括两个部分,一个是高级别的(high-level)关系检测(Relation Detection),其目标是读入一段句子来识别该句子所描述的是什么关系;另一个是低级别的(low-level)的实体抽取,根据高级别关系检测的语义信息来对句子中的实体进行识别。两个层级也是两个处理的过程,是来回交替,且在语义方面具有一定的交互性。下面以一个例子描述这个过程:
如图所示是一句话 “Steve Belichick, the father or New England Patrots coach Bill Belichick, died of heart failure in Annapoils, at the age of 86.”,首先在高层的关系检测强化学习依次读入每个词,并判断至此是否表达某一种关系,当到某一个token时(可以是一些单词,或者是标点符号),检测到关系“parent-children”,于是进入低级别的实体抽取部分,依然是强化学习方法,依次读入整个句子,并对每一个token进行标注,直到标注出两个实体出。其次返回到高级别的关系检测部分,从上一次中止的位置继续开始进行检测,并检测到“place-of-death”,进入实体识别部分并识别出两个实体。以此往复直到整个句子检测结束为止。
事实上我们可以发现,同一个句子可能存在多个关系,这是传统的关系抽取不能处理的,另外同一个句子中多个不同的片段所描述的关系也是不一样的,但可能会涉及到相同的实体或实体对,例如实体“Steve Belichick”能描述的是“parent-children”和“place-of-death”两个关系,也就是overlapping情况。
相关工作中,对三元组的抽取通常是pipeline,容易导致误差传播,因此联合抽取和端到端的训练成为主流方法,最近强化学习也在关系抽取任务上得以展开,因此本文将使用强化学习解决上面的过程。
四、方法
首先如何对两个过程进行建模?首先给出一个定义 Relation indicator:
Relation indicator is the position in a sentence when sufficient information has been mentioned to identify a semantic relation. Different from relation trigger (i.e., explicit relation mention), relation indicators can be verbs (e.g. die of), nouns (e.g. his father), or even prepositions (e.g. from/by), other symbols such as comma and period (As shown in Figure 1, the relation type place-of-death can be signified till the comma position).
其次对两个不同的层次的部分进行建模,如图所示:
表示句子的长度,
表示hign-level的关系检测部分,每一个圆圈代表一个token或由token表示的状态,任务的开始一定是从关系检测开始,按照句子的顺序进行移动,并在每个状态进行关系预测,当在时刻
时,如果检测到某一个关系(非NR),则直接进入到low-level实体抽取层,此时记做
,每次的实体识别时均从句首开始一直到句尾,识别完后再返回关系检测部分。因此整个过程不论是在high-level还是在low-level,均按照同一个时间序列来建模。
4.1 Relation Detection with High-level RL
为了满足马尔可夫决策过程MDP,作者定义了几个相关元素:
(1)动作:动作空间包括所有的关系,记做,其中NR表示没有关系,R表示所有关系的集合。因此智能体的动作即是预测关系;
(2)状态:在高级别的关系检测部分,每一个时刻的状态向量由:当前时刻的隐层状态;关系类型向量
(最近一次预测的非NR关系);以及上一个时刻的状态
,因此当前时刻状态表示为:
其中每个时刻的隐状态时由LSTM来表征的。
(3)策略:策略是一个分类问题,输入当前的状态,输出动作空间的概率分布
;
(4)奖励函数:如果选择的动作是NR,则继续检测,否则进入到低级别的实体抽取部分。还要识别出关系,就给1分,否则是-1分。
最终的奖励则是根据关系抽取的FB值判定的的:
整个流程可由下图所示:
4.2 Entity Extraction with Low-level RL
对于低级别的实体抽取部分,同样需要定义相关元素:
(1)动作:主要由实体标注的标签决定,包括 ,其中 S,T分别表示头实体,尾实体,O也是实体,但与当前的关系relation无关,B,I则表示实体的首字符和非首字符,N表示非实体字符。
(2)状态:包括当前LSTM的隐状态;实体标签
;上一个时刻的状态
以及当前检测的关系
,因此状态向量:
(3)策略:策略则是输入当前的状态,以及高级别关系检测时的动作,输出实体标签的概率分布,即:
(4)奖励:在每一个时刻会有即时奖励 ,其中
是符号函数,表示当前的实体标签是否与检测的关系匹配。
表示为
因此可以看出,如果预测的标签不是N,则给分,否则会给一个比较小的值
,如果预测的标签和golden一致,则是
分,否则就是
分。这也就是说只要预测对了就有分数,但是对于N标签来说,预测为N时并没有什么意义,但也会给与一点分数
,这么做也是防止智能体全部预测为N标签来企图获得一个不错的分数。整个流程可由下图所示:
另外,对于两个不同级别的任务之间的状态也是相通的,例如时检测到一个关系后,进入实体识别时,实体识别的上一个状态则
。
4.3 Hierarchical Policy Learning
目标函数是最大化奖励。关系检测部分是:
实体抽取部分是:
采用策略梯度算法更新,关系检测部分为:
训练算法流程图如下所示:
五、实验
5.1 实验结果
在NYT10(原始的NYT)和NYT11(小型的NYT数据集)上进行实验,与几个基线模型的比对结果如下图所示:
数据集的统计信息为:
5.2 Overlapping问题
作者列出两种overlapping问题:
在不同的数据集上进行实验,来验证我们的方法可以解决overlapping,实验表明我们的方法也可以在含有噪声的数据集上达到不错的效果;
5.3 Interaction between the Two Policies
考虑到两个不同的阶段的交互,结果表明,我们提出的以实体作为关系参数的抽取范式能够更好地捕捉文本中的关系信息。当然作者发现在NYT11上效果并不是很明显,可能是因为大多数的句子只有一个关系。
5.4 Case Study
Case样例如下所示,给定两个不同的句子,两个层级的智能体分别进行关系检测和实体抽取,可以发现我们的方法可以有效的处理multi-relation,同时可以发现,关系检测有时是以词为中点,有时以标点符号为中点,这表明关系检测可以自动的判断句子的语义成分。