分层强化学习的关系提取

1 篇文章 0 订阅

分层强化学习:

分层强化学习是强化学习领域中的一个分支。传统强化学习通过与环境的交互,进行试错(trial-and-error),从而不断优化策略(policy)。但是强化学习的一个重要不足就是维数灾难 (curse of dimensionality),当系统状态(state)的维度增加时,需要训练的参数数量会随之进行指数增长,这会消耗大量的计算和存储资源。 分层强化学习将复杂问题分解成若干子问题(sub-problem),通过分而治之(divide and conquer)的方法,逐个解决子问题从而最终解决一个复杂问题。这里的子问题分解有两种方法:①所有的子问题都是共同解决被分解的任务(share tasks);②不断把前一个子问题的结果加入到下一个子问题解决方案中(reuse tasks)。分层强化学习核心思想是通过算法结构设计对策略(policy)和价值函数(value function)施加各种限制(constraints),或者使用本身就可以开发这种限制的算法。

来源: Barto, A. G., & Mahadevan, S. (2003). Recent advances in hierarchical reinforcement learning. *Discrete Event Dynamic Systems*, *13*(4), 341-379.Driessens, K., Fern, A., & van Otterlo, M. (2005). *Proceedings of the ICML'05 Workshop on Rich Representations for Reinforcement Learning*. Bonn, Germany: University of Bonn.

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

1. 大部分现有的方法在实体被识别后才决策关系类型。这种方法存在两个弊端:一是并没有充分挖掘实体和关系之间的联系,而是把他们割裂作为两个子任务去处理;二是很多和关系无关的实体会带来噪声; 

2. 关系抽取会存在重叠关系问题(也叫一对多问题)。在一句话中,一个实体可能会存在多个关系,或者一个实体对可能存在多种关系。目前已知只有 CopyR 方法研究了这个问题,但是本文作者实验证明了这种方法严重依赖数据,并且无法抽取多词语关系。 如图: 

层次抽取框架

首先,文章定义了“关系指示符”(Relation Indicator)。 当在一句话中的某个位置有足够信息去识别语义关系时,我们把这个位置就叫做“关系指示符”。它可以是名词、动词、介词,或者是一些其他的符号比如逗号、时间等等。关系指示符在本结构中非常重要,因为整个的关系抽取任务可以分解为“关系指示符”和“关系中的实体抽取”。 

说明:识别的是位置

整体来看,关系抽取过程如下:

一个 agent 在扫描句子时预测特定位置的关系类型。不同于识别实体对之间关系的关系分类,该过程不需要对实体进行标注。当在一个时间步中没有足够的信息来指示语义关系时,agent 可以选择 NR,这是一种指示没有关系的特殊关系类型。否则,触发一个关系指示符,agent 启动一个用于实体提取的子任务,以识别两个实体之间的关系。当实体被识别时,子任务完成,代理继续扫描句子的其余部分寻找其他关系。 

这种过程可以被表述为半马尔可夫决策过程:1)检测句子中关系指示符的高级 RL 过程;2)识别对应关系的相关实体的低级 RL 过程。 

半马尔可夫决策过程

半马尔可夫决策过程(SMDPs)作为马尔科夫决策过程的扩展,用于对随机控制问题进行建模,不同于马尔科夫决策过程,半马尔科夫决策过程的每个状态都具有一定的逗留时间,并且逗留时间是一个通用的连续随机变量。

来源: SEMI-MARKOV DECISION PROCESSESSemi-Markov Decision Processes

通过将任务分解成两个 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 由以下三者共同决定:当前的隐状态,最后一个 option 的 relation type vector 和上一个时间步的状态。公式如下: 

是非线性变换,是由 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 中的状态计算方法如下:

是当前单词的隐状态,同样也是经过 Bi-LSTM 计算得到,Vet 是可学习的实体标签向量,是上一阶段的状态(注意,既可以是 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 方程,得到:

当实体提取策略根据选项 ot 运行时,子任务持续的时间步数是 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 评价方法,如果关系类型和两个对应的实体都正确,则认为三元组是正确的。

Baselines:作为对比的 baseline 方法有:FCM、MultiR、CoType、SPTree、Tagging 和 CopyR。

实验结果

Split:输入为 c×h×w 的特征图,均表示 Group Convolution。这里使用 Group Convolution 以减少计算量。注意,这里两路 Group Convolution 使用的卷积核大小不一致,原因在于 Motivation 中说的第一点,提升精度。 

 关系抽取

 重叠关系抽取

 关系检测总结

在本文中,作者提出了一种通过分层强化学习进行关系抽取的分层抽取范式。该范式将实体视为关系的集合,并将关系抽取任务分解为两个子任务的层次结构:High-level 指示符检测和 Low-level 实体抽取。

关系检测的 High-level 策略识别句子中的多个关系,实体提取的 Low-level 策略启动子任务以进一步提取每个关系的相关实体。这种方法擅长于建模两个子任务之间的交互,尤其擅长于提取重叠关系。 

实验证明,该方法优于最先进的基线。目前,强化学习在 NLP 的应用较少,该工作为关系抽取任务带来了启发,事实证明,基于强化学习的关系抽取是可以成功的。

补充说明:

强化学习是机器学习和人工智能中一个重要的领域,主要研究的问题是 agent 如何通过直接与环境交互来学习策略,使得长期的奖赏最大。 强化学习有一些特点,比如无监督学习,奖赏的反馈有延迟,agent 选择的动作会影响之后接收的数据等。



 

本文就是基于option的分层强化学习。

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值