Zheng, Suncong, et al. “Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme.” ACL 2017
1 简介
这篇文章提出了一种新的标注 scheme,并用远程监督构建数据集,在同时提取实体关系的问题上取得 sota。
借助新的 scheme,本文用序列标注的方式解决了问题。不同于经典的 Bi-LSTM + CRF,本文使用 LSTM 解码。另外,本文还创造了偏置 loss,使训练过程中更注重有标注 token 的贴合度。
2 相关
同时获取实体和关系,共有三类方法:
- 最传统的是 pipeline 方法,即分成两个子任务,先抽取实体,再抽取关系,但这种方法忽视了两子任务之间的关系
- joint 方法是用一个模型联合抽取,最常见的是基于特征的结构系统(不懂,但是好像也淘汰了,懒得看了),这需要复杂的特征工程和传统的 NLP 方法,也会导致误差累积。尽管 joint 方法可以在一个模型中用共享的参数提取实体和关系,但是实际上还是分别提取的,这就造成了信息的浪费。比如,第一步句子里提取出 3 个实体,第二步只在其中两个找到关系。
- 这篇文章是 end-to-end 方法,通过全新的标注,用序列标注的方式解决问题。
序列标注方面,介绍一下 LSTM、Bi-LSTM + CRF 等,此处略。
3 算法
标注的方式如图所示:

标注分三项,第一项是词的位置信息,即 BIES(begin, inside, end, single),第二项是属于的关系,第三项是 1 或 2,关系里主语是 1,宾语是 2。
模型如下图所示:

seq2seq,编码用 Bi-LSTM,解码用 LSTM。为啥不用 CRF?后面实验说了,用 LSTM 能获得更远的关系。
偏置的 loss 为:$$L = \max \sum_{j=1}^{|\mathbb{D}|}\sum_{t=1}^{L_j} (\log(p_t^{(j)} = y_t^{j}|x_j, \Theta)\cdot I(O) + \alpha \cdot \log(p_t^{(j)} = y_t^{j}|x_j, \Theta)\cdot (1-I(O)))$$
其中 $|\mathbb{D}|$ 是训练集,$L_j$ 是句子 $x_j$ 的长度,$y^{(j)}_t$ 是句子 $x_j$ 中词 $t$ 的标签,$p_t^{(j)}$ 是网络得到的预测概率,$I(O)$ 在标签是 $O$ 时为 1,其余为 0。于是,通过调整 $\alpha$,就可以调整标注的 token 在 loss 中的比重。
4 实验分析
本文的训练集是远程监督自动标的,测试集为了更准,是手动标的。
- end-to-end 好于 joint 好于 pipeline
- 只有神经网络的方法能比较好的平衡 precision 和 recall
- LSTM-LSTM 好于 LSTM-CRF,因为 LSTM 能学到距离更远的依赖
- $\alpha$ 太大 acc 下降,太小 recall 下降,取 10 最好
5 总结
这篇文章是很容易理解的,也不复杂。对我以后的启发就是,可以试试用 LSTM 解码。