TreeLSTM

用两个 LSTM 做端到端关系抽取任务,一个是正常 LSTM,用作抽取实体;另一个是树形 LSTM,用做关系分类。联合抽取实体与关系

Introduction

端到端进行实体和关系的抽取很有必要,因为关系信息和实体信息关系很紧密。 作者提出一个端到端的神经网络模型,同时获取句子的词序列信息(双向 LSTM)和依赖树信息(双向树形 LSTM)。 神经网络参数由实体标注和关系标注同时训练。 另外,为了提高训练效果,作者提出了几个加强训练的方法:实体预训练、scheduled sampling。

模型

模型主要包含三个表示层:词嵌入层(简称嵌入层)、基于词序列的 LSTM 层(简称序列层)、基于依赖树结构的 TreeLSTM 层(简称依赖层)。在解码过程中,用贪心策略从左到右探测实体并在依赖层的每个子树上预测关系类别。由于依赖层堆叠在序列层上,因此实体检测和关系分类共享嵌入和序列层,共享的参数由实体和关系标签共同更新。

嵌入层

每个词的嵌入向量包括词嵌入、词性标注、依赖类别、实体标签。

序列层

序列层对词序列提取特征,表征序列化的上下文信息,提取句子中的实体。此处用一个双向LSTM,两个方向对应的隐状态向量连接在一起构成词的序列表征向量。

实体探测

实体探测任务可以建模为序列标注任务。作者对每个词分配一个 BILOU 标签(Begin, Inside, Last, Outside, Unit),每个标签代表了实体的类别、以及实体短语中每个词的位置。实体探测任务在序列层的顶端进行。作者用两个全连接层输出实体标签。在分配实体标签的时候,采用从左至右的贪心策略。每个词的预测标签都被用于预测下一个词的标签,为的是考虑到标签之间的依赖关系。

依赖层

依赖层表征了依赖树中一对目标词之间的关系。这一层主要关注在依赖树中一对实体词之间的最短路径,因为该路径信息对关系分类很有帮助。作者采用双向(bottom-up 和 top-down)树形 LSTM 对关系候选进行建模,获取目标词对之间的依赖结构。为了研究能够有效表征语义关系的合适结构,作者对在三种结构上进行了实验。第一种是最短路径结构(shortest path, SP-Tree),这种结构能够获取目标词对之间的核心依赖路径,在关系分类模型中很常用。第二种是 SubTree,这种结构采用的是目标词对的最低共同祖先节点下的子树。这种结构能够获取较多的修饰语信息。第三种是 FullTree,也就是整个依赖树。这种结构能够获取整个句子的语境。依赖层每个节点的输入包括序列层对应词的隐状态向量、依赖类别嵌入向量和实体标签嵌入向量。

关系分类

在进行关系分类时,作者选择句子中所有实体标签为 L 或 U 的词两两组合,构成目标词对,并对每个目标词对预测关系类别。当一个词对的实体关系检测错误,或者词对没有关系时,则将该词对看作负样本。用于关系分类的特征向量 $d_p$ 由三个部分连接而成:bottom-up 方向上最顶层的 LSTM 单元隐状态向量、top-down 方向上两个目标词的隐状态向量。作者两层全连接预测关系类别。以上的关系分类方法中序列层对于关系分类的作用并不直接,中间隔了一个依赖层;而且该模型只用每个实体的最后一个词代表实体,没有充分利用实体信息。为了解决这两个问题,在输入到全连接层之前,把目标词对对应的两个实体中的所有词在序列层上的隐状态分别做平均,拼接到 $d_p$ 上,再送入关系分类器中。

训练

优化器用 Adam。同时使用梯度截断、参数平均、L2 正则化等训练技术。 训练过程主要还使用另外两种增强方法:scheduled sampling 和实体预训练,用于解决在训练早期实体抽取效果不好的问题。

Scheduled Sampling

在序列预测任务中,一般采用的训练方法是给定网络的当前状态和 previous token 来最大化序列里每个 token 的概率。在训练过程中真实的 token 是已知的。但是在 inference 过程中真实的 previous token 未知,这时会用模型生成的 token 作为 previous token,这会导致生成序列过程中的错误累加和传递。既然 inference 无法像训练一样有真实的 previous token,那么就让训练过程向 inference 过程靠拢,每个 previous token 都是以一定几率生成的 token,让模型能够自己处理产生的错误。

在本文中,产生真实标签的概率为 $\epsilon_i=k/(k+\exp(i/k))$,$k$ 是超参数,用于控制真实标签出现次数的多少。另外,作者用训练数据中的实体标注对实体检测模型做预训练,以保证训练早期实体抽取的精度。

实验

实验设置

  • 数据集:ACE05 & ACE04 & SemEval-2010 Task 8(没有实体类别的标注,因此忽略实体探测任务)。
  • 实现:cnn library、Standford Dependency Parser。
  • 词向量:word2vec

实验结果

  • ACE 上本文方法与 SOTA 传统方法对比
Corpus Settings   Entity     Relation  
    P R F P R F
ACE05 SPTree 0.829 0.839 0.834 0.572 0.540 0.556
  Feature 0.852 0.769 0.808 0.654 0.398 0.495
ACE04 SPTree 0.808 0.829 0.818 0.487 0.481 0.484
  Feature 0.835 0.762 0.797 0.608 0.361 0.453
  • ACE05 上有无共享参数的结果对比
Settings   Entity     Relation  
  P R F P R F
SPTree 0.815 0.821 0.818 0.506 0.529 0.518
不共享 0.796 0.820 0.808 0.541 0.482 0.510
  • SemEval 上本文方法与其他方法对比
Settings Marco-F1
SPTree 0.851
SPSeq 0.844
SPXu 0.847

参考文献

  • Miwa, M., & Bansal, M. (2016). End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures, 1105–1116. https://doi.org/10.18653/v1/P16-1105