阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

《事件和事件时序关系的联合抽取》[(Joint Event and Temporal Relation Extraction with Shared Representations and Structured Prediction)]笔记

2019 EMNLP《事件和事件时序关系的联合抽取》(Joint Event and Temporal Relation Extraction with Shared Representations and Structured Prediction)的阅读笔记

一、问题

事件时序关系抽取是一项重要的自然语言理解(NLU)任务。

事件时序关系抽取一般包含两个任务,即事件抽取和事件时序关系分类,现有的系统 (Verhagen et al., 2007, 2010; UzZaman et al., 2013; Chambers et al., 2014; Ning et al., 2017; Meng and Rumshisky, 2018)一般将这两个子任务视作在一个 pipeline 下的两个独立任务,这些系统都是先提取事件,然后再预测事件之间的时序关系。事件抽取工作往往会有不少错误,而在这些系统中事件抽取的错误将会传播到时序关系分类的任务中,且难以更正。

本文作出两点贡献:

  • 提出了一个同时提取事件和时间关系的联合模型。其动机是,如果训练的关系分类器预测非事件之间的关系为 NONE,那么它就可能具有纠正事件提取错误的能力。比如,在时序关系分类时,事件 M 和事件 N 有极大的可能关系是 NONE,那么 M、N 中很有可能有一个不是事件。
  • 通过在事件提取和时间关系提取模块之间共享相同的 context embedding 和 neural representation learner 来提升事件表示。该模型在共享 context embedding 和 neural representation learner 的基础上,生成一个表示给定语句中所有事件和关系的图结构输出。

有效的图预测应满足两个结构约束。

首先,两个非事件之间的关系,或一个事件和一个非事件之间的关系的时序关系一定是 NONE。

其次,对于事件之间的时间关系,由于时间的传递性,不应存在任何循环(例如,如果 A 在 B 之前,B 在 C 之前,则 A 必须在 C 之前)。

本文通过求解具有结构约束的整数线性规划(ILP)优化问题,保证了图的有效性,并用结构支持向量机(SSVM)对联合模型进行端到端训练。

二、方案

将所有可能的关系标签(包括 NONE)的集合表示为 R \mathcal{R} R,所有可能的事件候选(包括非事件)的集合表示为 E \mathcal{E} E,所有关系候选表示为 E E \mathcal{E}\mathcal{E} EE

1.ssvm

ssvm 的 loss 函数为:

L = ∑ n = 1 l C M n [ m a x y ^ n ∈ Y ( 0 , Δ ( y n , y ^ n ) + S ‾ R n + C E S ‾ E n ) ] + ∣ ∣ Φ ∣ ∣ 2 \mathcal{L}=\sum_{n=1}^l\frac{C}{M^n}[max_{\widehat{\boldsymbol{y}}^n\in \mathcal{Y}}(0,\Delta(\boldsymbol{y}^n,\widehat{\boldsymbol{y}}^n)+\overline{S}_\mathcal{R}^n+C_\mathcal{E}\overline{S}_{\mathcal{E}}^n)]+||\Phi||^2 L=n=1lMnC[maxy nY(0,Δ(yn,y n)+SRn+CESEn)]+Φ2

Φ \Phi Φ 指模型参数。

C C C C E C_\mathcal{E} CE 是平衡 loss 函数的正则化超参数, C = 1 C = 1 C=1 C E C_\mathcal{E} CE 会被训练。

y n \boldsymbol{y}^n yn y ^ n \widehat{\boldsymbol{y}}^n y n 分别代表实例 n n n 的事件和关系 gold 和预测结果,包含 y E n , y ^ E n ∈ { 0 , 1 } \boldsymbol{y}_\mathcal{E}^n,\widehat{\boldsymbol{y}}_\mathcal{E}^n\in\{0,1\} yEn,y En{0,1}, y R n , y ^ R n ∈ { 0 , 1 } \boldsymbol{y}_\mathcal{R}^n,\widehat{\boldsymbol{y}}_\mathcal{R}^n\in\{0,1\} yRn,y Rn{0,1},需要找到一个最大后验概率(MAP)推理来找到 y ^ n \widehat{\boldsymbol{y}}^n y n ,将其作为一个整数线性规划(ILP)问题,此处将在第 3 点中详解。

Δ ( y n , y ^ n ) \Delta(\boldsymbol{y}^n,\widehat{\boldsymbol{y}}^n) Δ(yn,y n) 表示 gold 和预测结果之间的距离,使用的是 hamming 距离。

$ {S}_{\mathcal{E}}^n$ 、 S R n {S}_\mathcal{R}^n SRn 分别代表判断是否为事件、是否存在时序关系的打分器:

S ‾ E n = S ( y ^ E n ; x n ) − S ( y E n ; x n ) \overline{S}_{\mathcal{E}}^n=S(\widehat{\boldsymbol{y}}^n_\mathcal{E};\boldsymbol{x^n})-S({\boldsymbol{y}}^n_\mathcal{E};\boldsymbol{x^n}) SEn=S(y En;xn)S(yEn;xn)

S ‾ R n = S ( y ^ R n ; x n ) − S ( y R n ; x n ) \overline{S}_\mathcal{R}^n=S(\widehat{\boldsymbol{y}}^n_\mathcal{R};\boldsymbol{x^n})-S({\boldsymbol{y}}^n_\mathcal{R};\boldsymbol{x^n}) SRn=S(y Rn;xn)S(yRn;xn)

M n M^n Mn 代表事件数和关系数的总和:

M n = ∣ E ∣ n + ∣ E E ∣ n M^n=|\mathcal{E}|^n+|\mathcal{E}\mathcal{E}|^n Mn=En+EEn

本文中的 SSVM 与 传统的 SSVM 的最大区别在于 Scorer,传统的 SSVM 往往采用人工设计的线性函数,而本文中的 Scorer 采用的是 RNN 的神经网络模型,并且通过训练整个端到端的结构来训练 Scorer。

2.Multi-Tasking Neural Scoring Function

阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

底层的 v i v_i vi 表示包含上下文信息的词向量。使用预训练 BERT 作为 word emmbeding。将其结果输入 BiLSTM 层对每个 token 都进行正向和反向的编码,得到 f i f_i fi b i b_i bi f j f_j fj b j b_j bj 再加上他们的语言学特征向量 L i j L_{ij} Lij (token 距离、时态和事件极性)。最后,将它们连起来形成输入,以计算成为事件的可能性或可能的关系的softmax函数的分布。

3.MAP Inference

本文将预测问题表示为 ILP 问题,本文通过构建一个全局目标函数,从局部 scorer 和以下几点约束来获得总得分:

  • One-label 分配
  • 事件关系一致性
  • 对称性和传递性

目标函数:

y ^ = a r g m a x ∑ ( i , j ) ∈ E E ∑ r ∈ R y i , j r S ( y i , j r , x ) + C E ∑ k ∈ E ∑ e ∈ { 0 , 1 } y k e S ( y k e , x ) \widehat{y}=arg max\sum_{(i,j)\in\mathcal{E}\mathcal{E}}\sum_{r\in\mathcal{R}}y_{i,j}^rS(y_{i,j}^r,x)+C_{\mathcal{E}}\sum_{k\in\mathcal{E}}\sum_{e\in{\{0,1\}}}y_k^eS(y_k^e,x) y =argmax(i,j)EErRyi,jrS(yi,jr,x)+CEkEe{0,1}ykeS(yke,x)

其中

y i , j r , y k e ∈ { 0 , 1 } , ∑ r ∈ R y i , j r = 1 , ∑ e ∈ { 0 , 1 } y k e = 1 y_{i,j}^r,y_k^e \in\{0,1\},\sum_{r\in\mathcal{R}}y_{i,j}^r=1,\sum_{e\in{\{0,1\}}}y_k^e=1 yi,jr,yke{0,1},rRyi,jr=1,e{0,1}yke=1

y ^ \widehat y y 是上下文中所有事件和关系候选的最佳标签分配情况。

限制条件:

事件关系限制:当且仅当一对输入的 token 都是事件时,这两个 token 间才可能有时序关系。

∀ ( i , j ) ∈ E E , e i P ≥ r i , j P , e j P ≥ r i , j P   a n d   e j N + e i N ≥ r i , j N \forall(i,j)\in\mathcal{E}\mathcal{E},e_i^P\ge r_{i,j}^P,e_j^P\ge r_{i,j}^P \ and\ e_j^N+e_i^N\ge r_{i,j}^N (i,j)EE,eiPri,jP,ejPri,jP and ejN+eiNri,jN

r i , j P r_{i,j}^P ri,jP 代表所有可能的 positive relations 包括:before、after、simultaneous、includes、is_included、vague

r i , j N r_{i,j}^N ri,jN 代表所有可能的 positive relation 即 NONE。

两个 token 分别是事件的得分一定要高于他们之间存在时序关系的得分,即完成了限制。

对称性和传递性限制

∀ ( i , j ) , ( j , k ) ∈ E E , y i , j r = y i , j r \forall (i,j),(j,k)\in\mathcal{E}\mathcal{E},y_{i,j}^r=y_{i,j}^r (i,j),(j,k)EE,yi,jr=yi,jr

y i , j r 1 + y j , k r 2 − ∑ r 3 ∈ T r a n s ( r 1 , r 2 ) y i , k r 3 ≤ 1 y_{i,j}^{r_1}+y_{j,k}^{r_2}-\sum_{r_3 \in Trans(r_1,r_2)}y_{i,k}^{r_3}\le 1 yi,jr1+yj,kr2r3Trans(r1,r2)yi,kr31

在学习该模型时,作者曾经尝试直接训练整个模型,最后发现效果不佳,之后作者采用两段式训练:

  • 作者首先采用交叉熵 loss 函数,在训练的前几个 epoch 中,先使用 gold 的事件和关系分别训练 scorers,以得到相对准确的事件模型,然后转为 pipeline 的方式训练,在这一步中先前的限制条件并没有被加入。

  • 然后在使用全局 loss 函数结合限制条件重新训练整个上述模型。

三、结果和分析

1.结果

本文的实验选择的语料库是 TB-Dense 和 MATRES。

阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

Table 3 为消融实验:

Single-task 指的是将两块模型分别使用 gold 数据进行训练,并且相互之间无影响的端到端模型,BiLSTM 层不共用。

Multi-task 指的是结构和 Single-task 相似,但是共用同一个 BiLSTM 层的模型。

Pipeline Joint Model 结构与 Multi-task 相似,模型架构和多任务模型一样,区别在于 pipeline 的联合模型在训练阶段,使用事件模型来构建关系候选,以用于训练关系模型。使用这一策略,在训练阶段若一个候选关系的元素不是事件,则会生成 NONE 对,这些 NONE 对会帮助关系模型分辨出是否存在关系。

2. 分析

标签不平衡

阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

本文作者的解决办法是加大训练时样本量较小的标签的权值,图中显示,在相对加大权值时性能会有一定的提高。

全局限制的表现

阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

事件关系限制对于两个数据集都有 1% 左右的提高,但是时序关系传递性对于模型的提升很有限,作者觉得是因为 BERT 在编码词向量时已经包含了大量上下文信息,可能其中就有时序传递关系,并且由于 NONE 关系的存在,时序传递性的传播也会收到阻碍。

错误分析

阅读笔记 Joint Event and Temporal Relation Extraction with Shared Representations and Structured ...

作者列出了主要的三类错误:事件没有被识别、存在包含非事件的时序关系(即 NONE 被识别有关系)、VAGUE 关系的识别错误。

对于第一种和第二种错误,作者提出的办法是需要构建更强的事件抽取模型,对于第三种错误,作者认为可以加入常识知识,或者创建更好的有利于区分 VAGUE 和其他种类时序关系的数据集。

附小组学习博客
https://zhevent.github.io/2020/10/09/Joint-Modeling-Coreference-Resolution/