论文解读:Reinforcement Learning for Relation Classification from Noisy Data

论文解读:Reinforcement Learning for Relation Classification from Noisy Data

  本文是一篇以强化学习来解决远程监督关系抽取中噪声的问题。强化学习作为一个比较新的机器学习,能够很好的处理一些半监督类问题,强化学习是一种从经验中学习的方法,通过定义策略、状态、动作以及收益来训练智能体与环境的交互,在游戏博弈等场景中很受欢迎。本文则将其与关系抽取相结合,试图来解决远程监督语料中大量噪声。

一、简要信息

序号 属性
1 模型名称 RLRE
2 所属领域 自然语言处理
3 研究内容 远程监督关系抽取;强化学习
4 核心内容 Relation Extraction,GAN
5 GitHub源码 TensorFlow_RLRE
6 论文PDF https://arxiv.org/pdf/1808.08013

二、全文摘要翻译

  现有的关系分类方法都依赖于远程监督的假设,如果给定了实体对以及对应的关系,则所有包含这个实体对的句子都能够描述这个关系。有这样一些方法,它们是基于包层面上的分类,并不能有效的学习到句子与关系的映射,而且大量的句子都受到噪声的影响。本文我们提出一种新的方法用于在句子层面上降噪。我们的模型主要包括两个模块:instance selector(示例选择器)和relation classifier(关系分类器)。instance selector使用强化学习方法选择高质量的句子并将其喂入到relation classifier中,relation classifier则进行预测并将结果(回报)返回给instance selector。这两个模块将联合训练,实验表明我们的模型可以很好的处理噪声,并在句子级别的分类上效果良好。

三、相关工作与介绍

  深入了解过关系抽取的都知道,关系抽取是知识图谱构建过程中非常重要的部分,其往往需要大量的语料来支撑训练。也有许多工作通过普通监督来实现关系抽取,一般的做法则是使用CNN或RNN及相关变体对句子进行特征编码。例如常见的SemEval 2010 Task8数据集包含8000个训练句子和2717个测试句子。但事实上,这些数量远远不够。传统的监督语料虽然能够保证正确,但需要大量的人工完成,因此Mintz在09年提出一种半监督的语料生成——远程监督,其从FreeBase知识库中选择相关的实体对,并从纽约时报(New York Times)中提取相关的句子。远程监督旨在根据实体对从这些语料中进行对齐,如果实体对在知识库中标记了关系,则语料中只要出现这些实体对一定表达这个关系;同理只要实体对不在这个知识库中,则这些句子则不会表达相应的关系(无关系NA)。这样强烈的假设能够快速的得到大尺度的样本,但也带来了大量的噪声。
  先前一些工作诸多使用多示例学习和基于句子级别的注意力机制,将相同的实体对对应的句子打包,并训练一个注意力机制为每个句子添加权重,权重高的代表句子质量更好,在预测过程中贡献最大。但事实上这种做法作者觉得存在两个问题:
(1)基于包级别的关系分类会丧失一些句子与关系类之间的映射关系。
(2)有些包中可能没有一个句子是能够表达对应的关系;
事实上,博主也认为存在另外两个问题——有一些由于知识库不完善的原因导致一些实体对不在知识库中,但有些句子却能表达一定的关系,这部分被错标为NA,很少有工作能够解决这样的问题;事实上以NYT为例的数据集的测试集存在大量的错误,导致训练的模型再好,预测的结果也很差。

  如图所示,给定两个示例,Obama和US在知识库中的关系标签为EmployerBy,但有些句子并不能表达这个关系,而表达的是BornIn。基于包的分类可能让一些原本属于BornIn关系的句子,被强行映射到EmployerBy,使得模型建模出现问题。而基于句子级别的分类能够缓解这种映射问题。
在这里插入图片描述
  为了解决这两个问题,比较好的策略是在分类之前就先将噪声过滤掉,这样能够保证分类器学习到的映射关系更加纯正,在处理第二个问题时,作者认为如果模型判定整个包内的句子都不行,则直接过滤掉整个包。作者提出一种新的方法,其包括instance selector(示例选择器)和relation classifier(关系分类器),前者通过策略梯度训练方法训练一个策略分布函数,用于对所给包内的句子进行决策(判断句子是否是true positive);后者则根据包内的已选择的句子喂入分类器中进行分类。二者相互联合学习。

  因此本文的亮点如下所示:
(1)将实体对划分为一个个包,一个包作为一个episode,但分类是基于句子级别进行的;
(2)使用强化学习来训练模型;

四、提出的方法

  问题定义如图所示:
在这里插入图片描述
给定一个包,其含有相同的实体对,目标则是预测对应的关系 P ( r i x i , h i , t i ) P(r_i|x_i,h_i,t_i) ,其中 r i r_i 为某一个关系, x i x_i 表示其中一个示例, h i , t i h_i,t_i 分别表示头实体和尾实体。

  模型的框架如图所示:
在这里插入图片描述
模型包括两个模块instance selector(示例选择器)和relation classifier(关系分类器)。

4.1 Instance Selector

  instance selector是一个智能体,负责从给定的一个包中选择出true positive和noisy。instance selector是基于强化学习的模块,根据强化学习可知,其主要包含如下几个元素:
(1)状态State
  状态表示已经选择作为true positive的句子的向量平均值当前待选择的句子的向量和**该包对应的实体对(两个实体向量拼接)**三者拼接得到的向量,状态表征为一个向量 F ( s i ) F(s_i) ,作为instance selector的输入。其中已选择的向量通常是根据上一轮classifier分类器中的句子编码向量,两个实体对向量则使用TransE模型预训练,TransE模型博主也讲述过,可参阅:TransE
(2)动作Action
  因为目标是选择出一些true positive,过滤掉noisy,因此对于每一个句子都有两个动作——0和1。其中0表示当前句子是noisy,1表示true positive。因此在当前状态下,根据一定策略可以得到对应的两个动作(或动作的概率分布)。这个策略实际上就是一个神经网络二分类器,策略定义为:

π ( s i , a i ) = P ( a i s i ) = a i σ ( W F ( s i ) + b ) + ( 1 a i ) ( 1 σ ( W F ( s i ) + b ) ) \pi(s_i,a_i) = P(a_i|s_i) = a_i\sigma(W*F(s_i) + b) + (1-a_i)(1-\sigma(W*F(s_i) + b))

(3)奖励Reward
  我们思考一个问题,在选择过程中,强化学习是有局部收益的(执行一个动作后的即时奖励),但事实上,对部分已选择的句子参与分类,得到的奖励并不能体现真实价值,例如seqGAN模型采用的策略梯度生成序列模型,对于生成的部分序列没有实际的意义,其做法是引入蒙特卡洛树搜索。本文则直接记做为0,也就是所当且仅当整个包内的所有句子参与选择之后,才获得一个延迟收益。这个收益函数定义为:


其中 B ^ \hat{B} 表示被选择的true positive的集合, p ( r x j ) p(r|x_j) 则表示当前第 j j 个句子被分类器分类为对应关系 r r 的概率值。对于之前的状态,收益都为0,而最终的收益则是一个均值。

  在训练阶段,使用策略梯度法(REINFORCE),loss1表示为:

l o s s = R log ( π ( a i s i ) ) loss = -\sum R \log(\pi(a_i|s_i))

4.2 Relation Classifier

  这一部分则使用CNN编码器,CNN具体的算法不做讲解,其损失函数为:

l o s s 2 = 1 X ^ i = 1 X ^ log p ( r i x i ) loss2 = \frac{1}{\hat{X}}\sum_{i=1}^{|\hat{X}|}\log p(r_i|x_i)

在这里插入图片描述

  最后我们梳理整个模型的运作流程,如上图所示。首先作者先预训练Relation Classifier的CNN编码器,给定句子并进行分类,其次固定CNN来预训练Instance Selector。最后联合二者训练。特别注意的是,在训练过程中,数据集划分为若干个包,每个包作为一个episode,对于每个包,根据固定的CNN给出reward,并基于策略梯度更新参数。当整个数据集遍历后,再将已选择的示例用于学习CNN。联合学习过程中,有一定概率选择保留梯度,剩下的概率选择更新梯度,对应图中最后两行公式。

发布了96 篇原创文章 · 获赞 158 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/105344403