AAAI 2019 | 基于分层强化学习的关系抽取

转自paperweekly
AAAI 2019 | 基于分层强化学习的关系抽取现有的关系抽取方法大多是先识别所有实体然后再确定关系类型。但是这类方法并没有考虑到实体与关系之间的作用。本文应用分层强化学习框架来增强实体提及和关系类型之间的交互,将相关实体视为关系的集合。此外,该方法还解决了抽取重叠关系(Overlapping Relations)的问题。

研究动机

该研究主要解决的问题有两个:

  1. 大部分现有的方法在实体被识别后才决策关系类型。这种方法存在两个弊端:一是并没有充分挖掘实体和关系之间的联系,而是把他们割裂作为两个子任务去处理;二是很多和关系无关的实体会带来噪声;
  2. 关系抽取会存在重叠关系问题(也叫一对多问题)。在一句话中,一个实体可能会存在多个关系,或者一个实体对可能存在多种关系。目前已知只有 CopyR 方法研究了这个问题,但是本文作者实验证明了这种方法严重依赖数据,并且无法抽取多词语关系。 如图:
    在这里插入图片描述

层次抽取框架

首先,文章定义了“关系指示符”(Relation Indicator)。 当在一句话中的某个位置有足够信息去识别语义关系时,我们把这个位置就叫做“关系指示符”。它可以是名词、动词、介词,或者是一些其他的符号比如逗号、时间等等。关系指示符在本结构中非常重要,因为整个的关系抽取任务可以分解为“关系指示符”和“关系中的实体抽取”。
整体来看,关系抽取过程如下:一个 agent 在扫描句子时预测特定位置的关系类型。不同于识别实体对之间关系的关系分类,该过程不需要对实体进行标注。当在一个时间步中没有足够的信息来指示语义关系时,agent 可以选择 NR,这是一种指示没有关系的特殊关系类型。否则,触发一个关系指示符,agent 启动一个用于实体提取的子任务,以识别两个实体之间的关系。当实体被识别时,子任务完成,代理继续扫描句子的其余部分寻找其他关系。
这种过程可以被表述为半马尔可夫决策过程
1)检测句子中关系指示符的高级 RL 过程;
2)识别对应关系的相关实体的低级 RL 过程。
通过将任务分解成两个 RL 过程的层次结构,该模型有利于处理对于同一实体对具有多种关系类型的句子,或者一个实体涉及多种关系的情况。过程如图:
在这里插入图片描述

下面分别介绍两个决策过程。
Relation Detection with High-level RL **
High-level RL 的策略(policy)µ 旨在从句子中找到存在的关系,可以看做是带有 options 的 RL policy。option 指的是
一旦 agent 执行了某个选项,就会启动低级别的 RL 策略**。
Option:option 在集合 O = {NR} ∪ R 中选择,当 low-level RL 进入结束状态,agent 的控制将被 high-level 接管去执行下一个 option。
State:状态 S 由以下三者共同决定:**当前的隐状态hth_t,最后一个 option 的 relation type vector vtr{v_t}^r和上一个时间步的状态st1s_{t-1}。公式如下:
在这里插入图片描述
fhf^h是非线性变换,hth_t是由 Bi-LSTM 得到隐状态。
Policy:关系检测的策略,也就是 option 的概率分布,如下
在这里插入图片描述
其中 W 是权重。
Reward:环境提供给 Agent 的一个可量化的标量反馈信号,也就是 reward。reward 计算方法如下:
在这里插入图片描述
最后,用一个最终的 reward 来评价句子级别的抽取效果:
在这里插入图片描述

Entity Extraction with Low-level RL

当 High-level RL policy 预测了一个非 NR 的relation,Low-level RL 会抽取 relation 中的实体。High-level RL 的 option 会作为 Low-level RL 的额外输入。 Action:action 会给当前的词分配一个 tag,tag 包括 A=({S,T,O}×{B,I})∪{N}。其中,**S 是参与的源实体,T 是目标实体,O 是和关系无关的实体,N 是非实体单词,B 和 I 表示一个实体的开始和结束。**可参看下图:

在这里插入图片描述
State:类似 High-level RL 中的关系检测,High-level 中的状态计算方法如下:
在这里插入图片描述

hth_t是当前单词的隐状态,同样也是经过 Bi-LSTM 计算得到,vte{v_t}^e 是可学习的实体标签向量,st1s_{t-1}是上一阶段的状态(注意,既可以是 High-level 的状态,也可以是 Low-level 的状态)。g 和 f 都是多层感知机。
Policy:由句子到实体的概率计算如下:
在这里插入图片描述
Reward:给定一个关系类型,通过 policy 可以很容易得到实体标签。我们需要用 reward 来衡量预测的标签是否准确:
在这里插入图片描述
其中,λ(y) 用来降低 non-entity tag 的权重。

Hierarchical Policy Learning

在优化 High-level policy 时,我们需要最大化预期累积回报,如下:
在这里插入图片描述
γ 是 RL 中的折扣因子。在结束前,整个采样过程需要 T 个时间步长。
同样的,在优化 Low-level policy 时,我们也需要最大化累计回报,公式如下:
在这里插入图片描述
把累计回报分解成 Bellman 方程,得到:
在这里插入图片描述
当实体提取策略根据选项 oto_t 运行时,子任务持续的时间步数是 N。当 option 是 NR 时,N=1。可以一同优化 High-level 和 Low-level 两段策略,High-level 的梯度是:
在这里插入图片描述
Low-level 的梯度是:
在这里插入图片描述
整个训练过程如下:
在这里插入图片描述

实验

实验数据集:通过远程监督得到的数据:NYT10 和 NYT11。
参数设置:预训练词向量使用 300 维的 GloVe 词向量,Relation Type Vectors 和 Entity Tag Vectors 是随机初始化的,学习率:4e − 5,mini-batch size:16,α = 0.1,β = 0.9,discount factor γ = 0.95。
评价方法:采用 micro-F1 评价方法,如果关系类型和两个对应的实体都正确,则认为三元组是正确的。

总结

在本文中,作者提出了一种通过分层强化学习进行关系抽取的分层抽取范式。该范式将实体视为关系的集合,并将关系抽取任务分解为两个子任务的层次结构:High-level 指示符检测和 Low-level 实体抽取。关系检测的 High-level 策略识别句子中的多个关系,实体提取的 Low-level 策略启动子任务以进一步提取每个关系的相关实体。这种方法擅长于建模两个子任务之间的交互,尤其擅长于提取重叠关系。 实验证明,该方法优于最先进的基线。目前,强化学习在 NLP 的应用较少,该工作为关系抽取任务带来了启发,事实证明,基于强化学习的关系抽取是可以成功的。

展开阅读全文

没有更多推荐了,返回首页