程序员

强化学习应用关系提取

2018-07-31  本文已影响599人  zqh_zy

之前调研过几天的nlp的关系提取任务,任务可以简单描述为给定一个一句话,包含两个或多个实体,希望输出两个或多个实体之间的关系。前些日子读到一篇利用强化学习解决相应问题的论文,很有意思,打算简单梳理一下其动机和方法。附上论文链接:Reinforcement Learning for Relation Classification from Noisy Data

经典关系提取方法:

远程监督的方法做关系提取被证明十分有效,大致思路是使用现有的实体关系(可以是现有的知识图谱中的实体关系)对预料库进行自动标注,然后作为训练语料。比如,图谱中“北京”和“中国”存在的是"首都"关系,则对于出现“北京”和“中国”的句子就打上“首都”的标签,如:(北京,首都,中国),然后作为分类任务做监督学习。

这种方法期望利用现在成熟的文本分类方法解决关系提取,但也伴随这一个明显的问题,两个实体不止一个关系,并且包含两个实体的句子也不一定表达了两者有某种关系。而这些bad case同样也会被作为训练语料,从而影响最后的模型效果。

一种有效的解决方法(multi-instance)是将远程标注的数据分成多个bag,每个bag中包含多个instance,可以理解为句子。我们只有bag级别的标签label,而不知道bag级别中的标签。数据的训练同样也是bag级别的。如此缓解了错误标注的问题,基本算法流程:

multi-instance方法一定程度上缓解了错误标注的问题,但仍无法避免bag中数据全不标注错误的情况,由此,论文提出了强化学习思路来解决远程监督中错误标注的问题,并且解决训练样本粒度的问题,实现了句子级别的训练与预测。

RL 实体关系分类

系统分为两大部分:

引用自论文

instance selection

agent 在当前状态下(当前待选择的句子,已经选择的句子,当前实体对)遵循当前策略做出action决定是否选择当前的句子做训练语料,并在所有选择结束后从关系分类器获得获得相应奖励。具体做法:将训练句子划分正N个bag,当一个bag里的句子被选择完毕,计算一次reward。从强化学习的关键部分来描述:

policy:

是否选择当前的句子。

state:

一个实数向量F(s_i), F为一个映射函数,可以为一个神经网络:
状态s_i为:

action:

一个逻辑回归函数,当前策略下是否选择当前句子的概率,参数为W和b。


image.png
reward:
image.png

一个bag选择完毕,计算延迟奖励,被选择的句子的log概率取平均。

策略优化:

蒙特卡洛采样方式的策略梯度下降方法:


image.png

其中v_i为bag_i的期望回报。

relation classification

关系分类使用了比较经典的CNN文本分类模型,类别为所有的关系类型。

训练过程:

训练过程为简单的强化学习策略梯度下降方法:


image.png

小结:

论文的主要工作是利用RL来处理远程监督的噪声问题:

原创文章,转载注明出处
更多关注公众号:

wechat
上一篇下一篇

猜你喜欢

热点阅读