基于深度强化学习的远程关系抽取模型

  • 传统关系抽取
    • 背景

      • 关系抽取是知识图谱构建的关键模块之一,作为实体识别基础上的一个知识抽取任务,该任务的核心是核心是判断句子中包含的实体对之间的关系。同时它也是许多自然语言处理应用的重要组成部分,诸如情感分析、问答系统和自动摘要等。其核心任务是预测句子中实体间的关系。
      • 通常将关系抽取任务转化为分类任务,即通过训练关系分类器,对句子的实体对进行关系分类。
    • 基本定义

      • 关系抽取:从一个句子中判断两个entity是否有关系,一般是一个二分类问题,指定某种关系
      • 关系分类:一般是判断一个句子中 两个entity是哪种关系,属于多分类问题。
    • 传统的方法

      • Supervised relation extraction
        • 对句子中的关系进行人工标注,然后抽取词法、句法、语义特征,训练有监督的分类器,对测试集中的实体关系进行预测;
      • Unsupervised information extraction
        • 从大量文本中,对实体进行标注,通过聚类等方法抽取实体之间的关系字符串。这种方法可以抽取非常大量的关系对,但是抽取结果很难映射到知识库中。
      • bootstrap learning
        • 利用少量的种子实例或模板,进行bootstrap的学习。将已有的实例应用在大规模语料中,抽取出新的模板;然后用新的模板抽取出更多的实例,如此迭代。但抽取结果准确率较低,还可能发生语义转移。
    • 挑战

      • 关系抽取算法最为突出的特点之一是对标注实例存在着数量上的巨大需求,需要语言学或领域专家对语料做大规模的标注,所以这是代价较高的方法。这一任务对于手工标注几乎是不可能完成的。
  • 远程监督的关系抽取
    • 目前关系抽取比较常见的一种做法,由Mintz于ACL 2009年首次提出,这种方法不属于传统的监督或无监督的抽取方法,而是使用知识库(KB或KG等)对齐朴素文本并标注,然后完成抽取的方法。
    • 假设
      • 两个实体如果在知识库中存在某种关系,则包含该两个实体的非结构化句子均能表示出这种关系。简单的说如果一个句子中含有一个关系涉及的实体对,那这个句子就是描述的这个关系。例如,"Steve Jobs"和"Apple"在 Freebase 中存在 founder 的关系,则包含这两个实体的非结构文本如:“Steve Jobs was the co-founderand CEO of Apple and formerly Pixar.”都可以作为一个训练正例来训练模型。
    • 抽取过程
      https://blog.csdn.net/m0_38031488/article/details/79852238
      • 从知识库中抽取存在关系的实体对
      • 从非结构化文本中抽取含有实体对的句子作为训练样例
      • 训练构造关系多分类器
    • 优点
      • 通过将知识库与非结构化文本对齐来自动构建大量训练数据,减少模型对人工标注数据的依赖,增强模型跨领域适应能力。
    • 缺点
      • 无法选择有效的句子是指模型无法判断关系实例对应的句子集(bag)中哪个句子是与关系相关的,在建模时能会将不是表达某种关系的句子当做表达这种关系的句子,或者将表达某种关系的句子当做不表达这种关系的句子,从而引入噪声数据。例如:乔布斯吃了一个苹果
        • 这里我们把整整含有指定关系的句子叫做real instance ,也就是True positive。那么也就有False positive表示实际不含此种关系的句子。这里我们把噪声问题称为wrong label问题。
        • 这个问题也是远程监督的方法最需要解决的问题
      • 缺少实体知识,例如“[Nevada] then sanctioned the sport , and the U.F.C. held its first show in [Las Vegas] in September 2001. ”如果不知道 Nevada 和 Las Vegas 是两座城市,则很难判断他们知识是地理位置上的包含关系
    • 优化方法
      https://blog.csdn.net/m0_37565948/article/details/84999919
      • dynamic-transition matrix(动态转移矩阵),它能很好的拟合由 distant supervision 所带来的噪声。通过该矩阵,我们能够大大提高 relation extraction 的效果。
      • rule learning(规则学习),通过定义规则,定义否定模式(negative pattern)过滤掉一些噪音数据,可以很大程度提高性能。缺点是规则依赖人工定义,通用性差,但是方法本身简单有效。
      • 清华刘知远团队的NER,利用了包含实体对的所有的句子信息,提出了attention机制,去解决远程监督的wrong label的问题。
      • 对于错误传播放大的问题有“joint learning”方法的提出,将命名实体识别和关系抽取两部并为一步走。
    • Code
      http://www.sohu.com/a/131451458_500659
  • 基于深度强化学习的远程监督关系抽取
    • ACL 2018

      • 作者基本思想
        • 为了解决wrong label(样本噪声)问题,人们尝试利用注意力机制对含有噪声的句子集合赋予权重以选择出有效的训练样本。但是,作者认为这种只选择出一个最佳样本的思路并不是最优的策略(因为作者认为假正例应该完全被放入负例集中,而不是分配一个较低的权重)。为了提高模型的鲁棒性,对于假正例不应只是简单的移除,而是应把它们放在正确的位置——负例集合中。
      • 成果
        • 论文尝试使用一种深度强化学习框架来生成一个假正例指示器,该框架在没有任何监督信息的情况下自动识别每个关系类型实例集中的假正例(False Positive)实例。
    • 论文的创新点

      • 作者设计了一个新的深度强化学习框架来提高远程监督关系抽取的鲁棒性
      • 该算法独立于关系抽取模型的,是一种即插即用的技术,可应用于任何一个现有的远程监督关系抽取模型;
      • 文章通过实验证明了该方法可以提升目前最新提出的关系抽取模型的性能。
    • 论文介绍

      • 框架图
        基于深度强化学习的远程关系抽取模型
        • 根据作者的描述,他们提出的深度增强学习框架总能够动态识别假正例数据,但是并不是简单的移除,而是将其移动到负例集中,然后对重新分配的训练集进行学习,并使用测试集进行测试,根据测试结果对之前的划分行为进行奖励或惩罚,最终使模型能够自动识别假正例实例。
        • 也就是说模型要根据关系分类器性能的变化,决定是保留还是移除当前的实例(即一个句子)。然后,框架进一步使基于深度强化学习策略的 agent 学会如何重建一个纯净的远程监督训练数据集。
        • 作者描述为性能驱动、基于决策的增强学习、启发式的识别
      • RL组件
        • 必备组成:外部环境、RL agent。通过二者的动态交互训练得到
        • 外部环境(状态)
          • RL中的状态依赖于马尔科夫决策过程的条件,但传统的关系抽取中输入的实例(句子)相互独立,不能够仅仅通过他们建立状态转移,因此模型的状态s中包含了早期状态移除的句子信息和当前句子的信息。
          • 句子的语义和句法信息由一个连续实值向量表示,向量特征包括word embedding 和 position embedding (concatenation)
          • 早前状态被表示为移除实例的平均向量
          • 当前状态被给予较大的权重,放大当前决策的影响力
        • 策略网络(Policy Network)
          • 对于每个输入的句子,策略网络负责判断该句子是否表述了目标关系类型,然后对于与目标关系类型无关的句子启动移除操作。这样,多元分类器就转换为了二元分类器。文章使用一个窗口大小为kernel size 为的 CNN 来对策略网络π(s;θ)\pi(s;θ) 建模。
        • 行为
          • 在每一步中,agent 都会去判定实例对于目标关系类型是否为假阳性。每一个关系类型都拥有一个 agent,每个 agent 都有两个行为:对于当前实例,作出删除或是保留的决定。
          • 由于初始的远程监督数据集中包含有被错误标注的实例,期望 agent 能利用策略网络过滤掉这些噪声实例,由此得到的纯净数据集,以使远程监督获得更好的性能。
        • 奖励(Rewards)
          • 当错误标注数据被过滤掉后,关系分类器便能获得更好的性能。因此,文章中的模型采用结果驱动策略,以性能变化为依据,对 agent 的一系列行为决策进行奖励。奖励通过相邻 epochs 的差值来表示Ri=α(F1iF1i1)R_i=\alpha(F_1^i-F_1^{i-1})
            在第 i 步时,F1 增加,则 agent 将收到一个正奖励;反之,则 agent 将收到一个负奖励。通过这样的设置,奖励值将与 F1 的差值成比例,α 的作用是将 F1 的差值转换到有理数的范围内。为了消除 F1 的随机性,文章使用最近 5 个 epochs 的 F1 值的平均值来计算奖励。
      • **决策网络**的预训练
        • 目的
          • 在该论文中,作者提出的方法并不是真正意义上的关系抽取,仅仅判断一个被标记的实例在其对应的关系类型中是否是假正例,而并不对实体间的关系进行预测。而在训练集中,一种关系类型会包含成千上万的实例,如果随机初始化决策网络的参数,在训练和错误中学习参数,则会耗费很多时间,并且很难收敛。因此作者采用了一种有监督的决策网络预训练的方法。
        • 预训练策略
          • 受AlphaGo 的启发,为了加快agent的训练,首先使用一小部分标注数据训练决策网络,然后进行增强学习
          • 正例和负例的构建
            • 作者认为,在语料库与朴素文本对齐良好的情况下,和假正例相比,训练集中的真正例有明显的数量优势。
            • 因此作者直接把远程监督真正例集作为正例集,随机从远程监督的负例集中抽取一部分作为负例集。
            • 同时为了更好地考虑初始信息,负例集的数量是正例集的10倍,因为在学习大量的负例集时,agent更有可能朝好的方向学习。
        • 代价函数和训练
          • 交叉熵:J(θ)=iyilog[π(α=yisi;θ)]+(1yi)log[1π(α=yisi;θ)]J(\theta)=\sum_i{y_ilog[\pi(\alpha=y_i|s_i;\theta)]+(1-y_i)log[1-\pi(\alpha=y_i|s_i;\theta)]}
          • 因为远程标记的噪音特性,作者为了防止模型在噪音数据上过度拟合(预测概率极度接近0或1),在训练阶段早停(准确率为85%-90%)时。
      • 基于奖励的再训练
        • 目的
          • 为了在没有任何督信息的情况下发现wrong labeled 实例,作者提出了基于RL策略的方法,该方法用于发现在正例集中的噪音实例。
        • 训练过程
          • 基本符号:PtoriP_t^{ori}PvoriP_v^{ori}NtoriN_t^{ori}NvoriN_v^{ori} 。分别表示训练集合测试集的正例、反例。
          • 在每一轮,通过随机策略π(s;θ)\pi(s;θ)移除噪声实例集合Ψi\Psi_i,从而获取新的正例集Pt=PtoriΨiP_t=P_t^{ori}-\Psi_i,负例集合Nt=Ntori+ΨiN_t=N_t^{ori}+\Psi_i,然后利用新的训练集训练关系分类器。
          • 模型的目的是期望RL agent有通过重新标记wrong labeled的假阳性实例来提升关系分类器性能的能力,通过{PvoriP_v^{ori}NvoriN_v^{ori} }进行测试得到F1,然后根据迭代过程中F1值的变化作为奖励的依据Ri=α(F1iF1i1)R_i=\alpha(F_1^i-F_1^{i-1})
          • 需要注意的是,为了避免 agent 将正例集合中的真正例误删,在每一个 epoch 中,对 RL agent 移除句子的数目设置一个阈值,即一个 epoch 中移除的句子数目不能超过该值。这样,如果 agent 决定移除当前实例,则其他实例被移除的概率将变小。
        • 代价函数
          • RL agent的模型性能受被从正例集中移除的假正例的质量的影响,模型具备区分明显的假正例的能力,但是对于一些难以区分的wrong labeled实例仍然使很模糊的,但是这一部分往往是模型性能提升的关键影响因素。因此在不同的epochs中带来F1改变的被移除的不同的部分应该受到更多关注,所以提出做种的代价函数如下:
          • J(θ)=RΩilog[π(αs;θ)]+(R)Ωi1log[π(αs;θ)]J(\theta)=R\sum_{\Omega_i}log[\pi(\alpha|s;\theta)]+(-R)\sum_{\Omega_{i-1}}log[\pi(\alpha|s;\theta)]
            • 其中,Ωi=Ψi(ΨiΨi1)\Omega_i=\Psi_i-(\Psi_i \cap \Psi_{i-1}) , Ωi1=Ψi1(ΨiΨi1)\Omega_{i-1}=\Psi_{i-1}-(\Psi_i \cap \Psi_{i-1})
            • 也就是说在计算的过程中,去除前后两次相同的移除子集,使其不对迭代的结果产生影响
        • 模型结构图
          • 基于深度强化学习的远程关系抽取模型
      • 通过以上过程,最终得到的agent能够具备识别wrong labeled实例的能力,利用这个agent作为分类器去识别假正例,对于一个实体对,如果所有的实例都被分类为假正例,则该实体对被分配为负例。
      • 模型总结
        • 模型输入
          • PtoriP_t^{ori}PvoriP_v^{ori}NtoriN_t^{ori}NvoriN_v^{ori},移除最大数γt,γv\gamma_t,\gamma_v,语料库中实例的句子向量sjs_j
          • 加载预训练决策网络参数θ\theta
          • 初始化向量SS^*(早前状态)为sjs_j同维度的零向量
        • 迭代过程:每轮迭代都遍历每个sjs_j
          • 构造状态sj~\tilde{s_j}
          • 随机选取实例:αj=π(αsj~;θ)\alpha_j = \pi(\alpha|\tilde{s_j};\theta),计算其为假正例的概率pj=π(α=0sj~;θ)p_j=\pi(\alpha=0|\tilde{s_j};\theta)
          • 如果aja_j被选中,将tj=(sj~,pj)t_j=(\tilde{s_j},p_j)存入T中,并且重新计算SS^*
          • 将T中pjp_jγt\gamma_t个s赋值给Ψi\Psi_i
          • 重新正例和负例集:正例集Pti=PtoriΨiP_t^i=P_t^{ori}-\Psi_i,负例集合Nti=Ntori+ΨiN_t^i=N_t^{ori}+\Psi_i
          • 基于测试集{PviP_v^{i}NviN_v^{i} },计算F1i,ΨiF_1^i,\Psi_i
          • 计算Ri=α(F1iF1i1)R_i=\alpha(F_1^i-F_1^{i-1})
          • 更新梯度:
            • update θ:gθΩilog[π(αs;θ)]R+θΩi1log[π(αs;θ)](R)\theta:g \propto \bigtriangledown_{\theta}\sum_{\Omega_i}log[\pi(\alpha|s;\theta)]R+\bigtriangledown_{\theta}\sum_{\Omega_{i-1}}log[\pi(\alpha|s;\theta)](-R)
              Ωi=Ψi(ΨiΨi1)\Omega_i=\Psi_i-(\Psi_i \cap \Psi_{i-1}) , Ωi1=Ψi1(ΨiΨi1)\Omega_{i-1}=\Psi_{i-1}-(\Psi_i \cap \Psi_{i-1})
    • 实验

      • 实验一
      • 抽样方法:留出法
      • 测试数据集**(/riedel/ecml)**,数据库:Free-base
      • 作者使用基于RL算法的模型和未采用的模型比较F1得分基于深度强化学习的远程关系抽取模型
        - 实验二
        • 基于在original riedel dataset上对关系抽取模型(CNN)的表现做比较
          基于深度强化学习的远程关系抽取模型
          基于深度强化学习的远程关系抽取模型
  • 参考文献