Reinforcement Learning for Relation Classification from Noisy Data

关注微信公众号:NLP分享汇。【喜欢的扫波关注,每天都在更新自己之前的积累】

文章链接:https://mp.weixin.qq.com/s/iyi2yVj3ushFZmcsdUeLEQ

《 Reinforcement Learning for Relation Classification from Noisy Data 》

前言:现有的关系分类方法主要依赖于距离监督(distant supervision),主要的假设是假如有一组句子都提到了一个实体对,那么这些句子就都描述了这个实体对的一种关系。这些方法一般都是在句子集的层面进行分类,而不能把关系和句子一一对应起来,造成这个问题的主要原因是标注数据集里有噪声数据。

文章:Reinforcement Learning for Relation Classification from Noisy Data(AAAI2018)

链接:https://arxiv.org/pdf/1808.08013.pdf

理解难度:★★★★


◆ 摘要

这篇文章里提出了一种新的方法,这种方法可以在有噪声的数据上做到句子层面的关系分类。这个模型有两个组成部分:实例选取器(instance selector)和关系分类器(relation classifier)。实例选取器用强化学习的方法选取高质量的句子,并传递给关系分类器,关系分类器在句子层面作出预测,并反馈给实例选取器。

 

任务背景(引申前人工作中的两个问题)

  • 关系分类任务需要做的是,判断实体之间是什么关系,句子中包含的实体对儿是已知的。关系分类任务是强监督学习,需要人工对每一句话都做标注,因此之前的数据集比较小。

    • 举个🌰吧(e1/e2表示实体)

      [Obama]e1 was born in [the United States]e2

      ————>关系:BornIn

  • 问题一:之前也有人提出Distant Supervision方法,希望能利用已有资源对句子自动打上标签,使得得到更大的数据集。但这种方法是基于已有知识图谱中的实体关系来对一句话的实体关系进行预测,它的标注未必正确。

    • 举个🌰吧(e1/e2表示实体)

      [Barack Obama]e1 is the 44th president of [the United States]e2 

      ————>关系:BornIn  <Barack Obama, BornIn, the United States>

  • 问题二:也有一些方法是基于multi-instance learning 的方法来做的。这样做的局现性是不能很好处理句级预测。【图1 问题二示例】

    • 举个🌰吧

      如图1所示,给定两个示例,Obama和US在知识库中的关系标签为EmployerBy,但有些句子并不能表达这个关系,而表达的是BornIn。基于包的分类可能让一些原本属于BornIn关系的句子,被强行映射到EmployerBy,使得模型建模出现问题。而基于句子级别的分类能够缓解这种映射问题。

    • 在多示例学习中,训练集由一组具有分类标签的多示例包(bag)组成,每个多包(bag)含有若干个没有分类标签的示例(instance)。如果多示例包(bag)至少含有一个正示例(instance),则该包被标记为正类多示例包(正包)。如果多示例包的所有示例都是负示例,则该包被标记为负类多示例包(负包)。多示例学习的目的是,通过对具有分类标签的多示例包的学习,建立多示例分类器,并将该分类器应用于未知多示例包的预测。图片                                                                                                  
                                                                                         图1  问题二示例

◆ 方法(模型结构)

基于以上不足,这篇文章利用用强化学习来解决这个问题。

策略:在分类之前就先将噪声过滤掉,这样能够保证分类器学习到的映射关系更加纯正,在处理第二个问题时,作者认为如果模型判定整个包内的句子都不行,则直接过滤掉整个包。文章中设定了新模型。包括两个部分: Instance Selector和 Relation Calssifier。

 

模型主要包括两个模块:【图2 模型结构图】

图片

                                       图2 模型结构图

 

  • 示例选择器( instance selector )【图3 instance selector】

    • instance selector使用强化学习方法选择高质量的句子并将其喂入到relation classifier中。

    • 对于示例选择器而言,它的主要任务是根据Policy函数,来决定在某种State(包含当前句子,已选出的句子集合,实体对)下,应该采取哪种Action(选或不选)。然后接收从关系分类器传来反馈。

    • 如果我们按照前面说的,当选出了所有的高质量句子之后,再接收关系分类器给出的延迟奖励,然后更新Policy函数的参数,这种方式是低效的。

    • 为了获得更多的反馈,使得训练过程更加有效,作者将训练集分词N组B={B1,B2,⋯,BN},每一组完成句子选择之后,就会获得Reward。每一组的实体对都是不同的,但是它们的关系标签都是相同的,Bk={x1k,x2k,⋯,x|Bk|k}都具有相同的标签rk。当训练集中的句子都训练完成之后,会将每一组中选出的句子合并,统一进行关系分类。

      图片
                                                图3 示例选择器(instance selector)

  • 强化学习基本场景

    包含了以下三部分信息:

    (1)当前句子的向量表示,这个向量表示由关系分类器里CNN的非线性输出层得到;

    (2)被选的句子集合的矩阵表示,这个由被选句子的向量表示取平均得到;

    (3)句子中实体对的矩阵表示,这个从预训练的知识图谱embeddings得到,这个embeddings是在Freebase上采用TransE模型训练得到。

    • State:Si

    • Action:ai

      动作ai的的取值是{0,1},表示是否选取一句句子。ai根据Policy函数πθ(si,ai)获得,其中θ是需要学习的参数。

      πθ(si,ai) = Pθ(ai|si) = aiσ(W∗F(si)+b) + (1−ai)(1−σ(W∗F(si)+b))

      【 其中F(si)就是状态特征Vector,θ={W,b} 】

    • Reward

      Reward的作用的反映选出句子的有用程度。作者假设这个模型完成所有的选择之后,会有一个最奖励,因此只需要在最终状态s|B|+1接收一个delayed reward,其他状态的奖励都是0。

       

  • 关系分类器( relation classifier )

    对于每个句子x,我们将它表示成一系列向量(w1,w2,⋯,wm)。每个向量由两部分组成:word embedding和pisition embedding。word embedding用word2Vec实现,维度为dw。position embedding是按照当前单词到开头和结束的相对位置来计算的,维度为dp。然后将word embedding和pisition embedding进行组合,得到新的向量wi,维度为dw+2∗dp。

    • relation classifier则进行预测并将结果(回报)返回给instance selector。

    • 在关系分类器中,使用CNN来预测关系,它由一个输入层,一个卷积层,一个max poolling层,一个非线性层组成。

    • 输入层

    • CNN

      为了得到更高级、更抽象的句子表示,作者使用了CNN来得到新的特征L:L=CNN(x)【 其中x就是输入层的输入,L是一个ds维的矩阵 】

 

◆ 总结

本文是一篇以强化学习来解决远程监督关系抽取中噪声的问题。

在编码环节,作者首先预训练Classifier,获得每个句子的预测结果、embedding以及reward,然后固定Classifier,预训练Selector,此时根据当前的策略对每个包进行选择,由于事先为每个句子计算了reward,因此只需要把所有已选取的所有句子的reward平均即可。在联合训练过程中,首先固定策略和Classifier,使用带有ϵ−\epsilon-ϵ−贪心策略进行蒙特卡洛采样,对一个包进行多次采样获得尽可能多的state-action对以及对应的reward,其次使用策略梯度来训练策略。训练之后再次对当前包进行一次动作执行,此时每次只取概率最大的动作。然后将此时选择的所有句子喂入到Classifier中并训练Classifier,训练完后对整个数据集上进行一遍测试,形成新的预测结果、embedding以及reward。如此往复多次直到迭代终止。

 

关注公众号:NLP分享汇

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>