阅读笔记 Fine-Grained Temporal Relation Extraction

2019 ACL《细粒度时序关系抽取》(Fine-Grained Temporal Relation Extraction) 的阅读笔记

一、问题

事件时序关系抽取是一个很有意义的研究方向,该领域目前的工作还是将其视为一个分类问题,标注成对的事件表达和时间表达,并进行时序关系分类。这种方法的缺点是时间表达往往依赖于显式存在的持续时间信息,但是,几乎所有的时间持续信息都可以不直接存在于句中。所以在这种方法下,一般只能对可以被识别的时间持续信息进行编码。

这篇文章中,作者开发了一种新型的框架将事件持续时间放在时序关系表示的首部或中部,将事件映射射到可能的持续时间上,并将事件对直接映射到实际值的相对应时间线。在这种做法下,不仅提升了事件持续时间在判断时序关系时的重要性,同时也帮助我们更好的判断在一整段文字下的多个复杂事件的时序结构。

阅读笔记 Fine-Grained Temporal Relation Extraction

二、方案

1.数据收集

阅读笔记 Fine-Grained Temporal Relation Extraction

作者收集了 Universal Decompositional Semantics Time(UDS-T)数据集,该数据集在 Universal Dependents English Web Treebank(UD-EWT)之上标注。

具体数据标注步骤如下:

  • 作者首先使用 Predpatt 从 UD-EWT 中提取谓词
  • 将其中相邻句子连接起来
  • 给标注者两个连续的句子,并带有两个突出显示的事件引用表达式(谓词),要求标注者做到以下三点:
    • 为突出显示的谓词所指的事件对提供有界刻度的相对时间线
    • 从以下列表中得出谓词所指事件的可能持续时间: instantaneous, seconds, minutes, hours, days, weeks, months, years, decades, centuries, forever
    • 标注者须对其上述两点标注行为作出打分(0-4,分数越高代表越有信心)
  • 对标注者做出的标注进行归一化(Normalization)如图 3 所示,先发生事件 e 1 e_1 e1 的开始在 0 一端,后发生事件 e 2 e_2 e2的结束在 1 一端。

阅读笔记 Fine-Grained Temporal Relation Extraction

作者将每对事件对滑块(silder)定义为四个维度

(1)先后顺序(PRIORITY),当 e1 早于 e2 开始和/或结束时为正,否则为负;
(2)包含量(CONTAINMENT),当 e1 含有更多的 e2 时越大;
(3)相等性(EQUALITY),当 e1和 e2 的时间范围相同时,相等性最大,当它们最不相等时最小;
(4)SHIFT,即事件在时间轴上向前或向后移动。

并通过以下这个方程中 R \mathbf R R 的解得出这四个维度

R [ − 1 − 1 1 1 − 1 1 1 − 1 − 1 1 − 1 1 1 1 1 1 ] = 2 S − 1 \mathbf R \begin{bmatrix}-1&-1&1&1\\-1&1&1&-1\\-1&1&-1&1\\1&1&1&1\end{bmatrix} = 2\mathbf S -1 R1111111111111111=2S1

S = [ b e g ( e 1 ) e n d ( e 1 ) b e g ( e 2 ) e n d ( e 2 ) ] \mathbf S = \begin{bmatrix}beg(e_1)&end(e_1)&beg(e_2)&end(e_2)\end{bmatrix} S=[beg(e1)end(e1)beg(e2)end(e2)]

S \mathbf S S 中的元素由归一化后的标注数据决定,即 S ∈ [ 0 , 1 ] N ∗ 4 \mathbf S \in [0,1]^{N*4} S[0,1]N4 N N N 为事件对数目。

为帮助理解求出了上述给定矩阵的逆矩阵:

[ − 0.25 − 0.25 − 0.25 0.25 − 0.25 0.25 0.25 0.25 0.25 0.25 − 0.25 0.25 0.25 − 0.25 0.25 0.25 ] \begin{bmatrix}-0.25&-0.25&-0.25&0.25\\-0.25&0.25&0.25&0.25\\0.25&0.25&-0.25&0.25\\0.25&-0.25&0.25&0.25\end{bmatrix} 0.250.250.250.250.250.250.250.250.250.250.250.250.250.250.250.25

作者最终收集的数据分布如图:
阅读笔记 Fine-Grained Temporal Relation Extraction

阅读笔记 Fine-Grained Temporal Relation Extraction

2.模型

作者的想法是:对于句子中提到的每一对事件,共同预测这些事件的相对时间线以及它们的持续时间,然后使用一个单独的模型从相对时间轴中归纳出整篇文章的时间线。

阅读笔记 Fine-Grained Temporal Relation Extraction

Tuner 是一个降维器,把 ELMo 降到 256 维。

相对时间线(Relative timelines)

相对时间线模型包含三个组件:事件模型(Event model)、持续时长模型(Duration model)、关系模型(Relation model)。

这些组件在 H ∈ R N × D \mathbf H \in \R^{N\times D} HRN×D 这个 embedding 上使用多层点积注意力机制(dot-product attention)。

H = tanh ⁡ ( E L M o ( s ) W T U N E + b T U N E ) \mathbf H = \tanh(\mathrm{ELMo}(\mathbf s)\mathbf W^{\mathrm{TUNE}}+\mathbf b^\mathrm{TUNE}) H=tanh(ELMo(s)WTUNE+bTUNE)

其中

s = [ w 1 , . . . , w N ] \mathbf s = [w_1,...,w_N] s=[w1,...,wN] 代表一个句子,这个句子会经由 ELMo 产生三个 M 维上下文 embedding,并进行串联。

D D D 代表 tuned embedding 的维数, W T U N E ∈ R 3 M × D \mathbf W^{\mathrm{TUNE}}\in \R^{3M\times D} WTUNER3M×D b T U N E ∈ R N × D \mathbf b^\mathrm{TUNE}\in\R^{N\times D} bTUNERN×D

事件模型(Event model)

定义 g p r e d k ∈ R D \mathbf {g}_{\mathrm{pred}_k} \in \R^D gpredkRD 表示谓词 k k k 所指代的事件,使用点积注意力机制(dot-product attention)的变体建立。

a p r e d k S P A N = t a n h ( A P R E D S P A N h R O O T ( p r e d k ) + b P R E D S P A N ) \mathrm {\mathbf a^{SPAN}_{pred_k}=tanh(\mathbf A^{SPAN}_{PRED}\mathbf h_{ROOT(pred_k)}+\mathbf b^{SPAN}_{PRED})} apredkSPAN=tanh(APREDSPANhROOT(predk)+bPREDSPAN)

α p r e d k = s o f t m a x ( H s p a n ( p r e d k ) a p r e d k S P A N ) \alpha_{\mathrm{pred}_k} = \mathrm{softmax}(\mathbf H_{\mathrm {span}_{(\mathrm{pred}_k)}}\mathrm{\mathbf a^{SPAN}_{pred_k}}) αpredk=softmax(Hspan(predk)apredkSPAN)

g p r e d k = [ h R O O T ( p r e d k ) ; α p r e d k H s p a n ( p r e d k ) ] \mathbf {g}_{\mathrm{pred}_k} = [\mathbf h_{\mathrm{ROOT(pred}_k)};\alpha_{\mathrm {pred}_k}\mathbf H_{\mathrm {span}_{(\mathrm{pred}_k)}}] gpredk=[hROOT(predk);αpredkHspan(predk)]

A P R E D S P A N ∈ R D × D \mathrm {\mathbf A^{SPAN}_{PRED}}\in \R^{D\times D} APREDSPANRD×D b P R E D S P A N ∈ R D \mathbf b^\mathrm {SPAN}_\mathrm{PRED} \in\R^D bPREDSPANRD

Eg. My dog has been sick for about 3 days now.

$ m a t h b f h R O O T ( p r e d k ) mathbf h_{\mathrm{ROOT(pred}_k)} mathbfhROOT(predk) 代表第 k k k 个谓词短语的 root 的隐层表达,在例句中就是 sick 的隐层表示。

H s p a n ( p r e d k ) \mathbf H_{\mathrm {span}_{(\mathrm{pred}_k)}} Hspan(predk) 代表第 k k k 个谓词短语所在 mention 中每个词隐层表达的堆叠,在例句中就是 been sick for now 的隐层表示。

持续时长模型(Duration model)

a d u r k S E N T = t a n h ( A D U R S E N T g p r e d k + b D U R S E N T ) \mathrm {\mathbf a^{SENT}_{dur_k}=tanh(\mathbf A^{SENT}_{DUR}\mathbf g_{pred_k}+\mathbf b^{SENT}_{DUR})} adurkSENT=tanh(ADURSENTgpredk+bDURSENT)

α d u r k = s o f t m a x ( H a d u r k S E N T ) \alpha_{\mathrm{dur}_k} = \mathrm{softmax}(\mathbf H\mathrm{\mathbf a^{SENT}_{dur_k}}) αdurk=softmax(HadurkSENT)

g d u r k = [ g p r e d k ; α d u r k H ] \mathbf {g}_{\mathrm{dur}_k} = [\mathbf g_{\mathrm{pred}_k};\alpha_{\mathrm {dur}_k}\mathbf H] gdurk=[gpredk;αdurkH]

A D U R S E N T ∈ R D × s i z e ( g p r e d k ) \mathrm {\mathbf A^{SENT}_{DUR}}\in \R^{D\times \mathrm {size}(g_{\mathrm{pred}_k})} ADURSENTRD×size(gpredk) b D U R S E N T ∈ R D \mathbf b^\mathrm {SENT}_\mathrm{DUR} \in\R^D bDURSENTRD

H \mathbf H H$、 指的是整句话的隐层表达。

关于持续时间的分类,作者提出两个方法:softmax 法、二项式分布法。二者之间的区别主要是二项式分布法会强制分布为凸状分布。

softmax 法:

v d u r k = R e L U ( W D U R ( 1 ) g d u r k + b D U R ( 1 ) ) \mathbf v_{\mathrm {dur}_k} = \mathrm{ReLU(\mathbf W_\mathrm{DUR}^{(1)}}\mathbf {g}_{\mathrm{dur}_k}+\mathbf b^{(1)}_\mathrm {DUR}) vdurk=ReLU(WDUR(1)gdurk+bDUR(1))

p = s o f t m a x ( W D U R ( 2 ) + b D U R ( 1 ) ) \mathbf p = \mathrm{softmax}(\mathbf W_\mathrm{DUR}^{(2)}+\mathbf b^{(1)}_\mathrm {DUR}) p=softmax(WDUR(2)+bDUR(1))

二项式分布法:

v d u r k = R e L U ( W D U R ( 1 ) g d u r k + b D U R ( 1 ) ) \mathbf v_{\mathrm {dur}_k} = \mathrm{ReLU(\mathbf W_\mathrm{DUR}^{(1)}}\mathbf {g}_{\mathrm{dur}_k}+\mathbf b^{(1)}_\mathrm {DUR}) vdurk=ReLU(WDUR(1)gdurk+bDUR(1))

π = σ ( w D U R ( 2 ) v d u r k + b D U R ( 2 ) ) \pi=\sigma(\mathbf w_\mathrm{DUR}^{(2)}\mathbf {v}_{\mathrm{dur}_k}+\mathbf b^{(2)}_\mathrm {DUR}) π=σ(wDUR(2)vdurk+bDUR(2))

p c = ( n c ) π n ( 1 − π ) ( n − c ) p_c=\dbinom{n}{c}\pi^n(1-\pi)^{(n-c)} pc=(cn)πn(1π)(nc)

在使用这种方法时得到的 π \pi π 是一个值。 c ∈ { 0 , 1 , . . , 10 } c\in\{0,1,..,10\} c{0,1,..,10} 代表着从瞬间到永久的持续时间分布,在此模型中 n = 10 n=10 n=10

以上这两个方法得到的结果都用交叉熵函数作为 loss 函数进行训练 L d u r ( d k ; p ) = − l o g   p d k \mathbb L_\mathrm{dur}(d_k;\mathbf p) = -log\ p_{d_k} Ldur(dk;p)=log pdk

关系模型(Relation model)

对于第 i i i j j j 个谓词短语,依旧用相似的 attention 机制。

a r e l i , j S E N T = tanh ⁡ ( A R E L S E N T [ g p r e d i ; g p r e d j ] + b R E L S E N T ) \mathbf a^{\mathrm {SENT}}_{\mathrm{rel}_{i,j}}=\tanh(\mathrm{A^{SENT}_{REL}}[\mathbf g_{\mathrm{pred}_i};\mathbf g_{\mathrm{pred}_j}]+\mathbf b^{\mathrm {SENT}}_\mathrm{REL}) areli,jSENT=tanh(ARELSENT[gpredi;gpredj]+bRELSENT)

α r e l i , j = s o f t m a x ( H a S E N T r e l i , j ) \alpha_{\mathrm{rel}_{i,j}} = \mathrm{softmax}(\mathbf H\mathrm{\mathbf a^{SENT}}_{\mathrm{rel}_{i,j}}) αreli,j=softmax(HaSENTreli,j)

g r e l i , j = [ g p r e d i ; g p r e d j ; α r e l i , j H ] \mathbf {g}_{\mathrm{rel}_{i,j}} = [\mathbf g_{\mathrm{pred}_i};\mathbf g_{\mathrm{pred}_j};\alpha_{\mathrm {rel}_{i,j}}\mathbf H] greli,j=[gpredi;gpredj;αreli,jH]

A R E L S E N T ∈ R D × 2 s i z e ( g p r e d k ) \mathrm {\mathbf A^{SENT}_{REL}}\in \R^{D\times 2\mathrm {size}(g_{\mathrm{pred}_k})} ARELSENTRD×2size(gpredk) b R E L S E N T ∈ R D \mathbf b^\mathrm {SENT}_\mathrm{REL} \in\R^D bRELSENTRD

作者在此时序模型中的核心思想就是将事件及其状态直接映射到时间轴 [ 0 , 1 ] [0,1] [0,1] 上,且对于每个事件 k k k ,开始端一定要小于结束端,即 e k ≥ b k e_k\ge b_k ekbk

[ β ^ i , δ ^ i , β ^ j , δ ^ j ] = R e L U ( M L P ( g r e l i , j ) ) [\widehat\beta_i,\widehat\delta_i,\widehat\beta_j,\widehat\delta_j]=\mathrm {ReLU}(\mathrm{MLP}(\mathbf {g}_{\mathrm{rel}_{i,j}} )) [β i,δ i,β j,δ j]=ReLU(MLP(greli,j))

对于每一个事件的开始及结束状态由下式得到:

[ b ^ k , e ^ k ] = [ σ ( β ^ k ) , σ ( β ^ k + | δ ^ k | ) ] [\widehat b_k,\widehat e_k]=[\sigma(\widehat\beta_k),\sigma(\widehat\beta_k+|\widehat\delta_k|)] [b k,e k]=[σ(β k),σ(β k+δ k)]

可以计算出一对事件所形成的 slider s ^ i , j = [ b ^ i , e ^ i , b ^ j , e ^ j ] \widehat {\mathbf s}_{i,j}=[\widehat b_i,\widehat e_i,\widehat b_j,\widehat e_j] s i,j=[b i,e i,b j,e j]

定义 loss 函数

L r e l ( s i , j ; s ^ i , j ) = ∣ ( b i − b j ) − ( b ^ i − b ^ j ) ∣ + ∣ ( e i − b j ) − ( e ^ i − b ^ j ) ∣ + \mathbb L_\mathrm{rel}({\mathbf s}_{i,j};\widehat {\mathbf s}_{i,j}) = |(b_i-b_j)-(\widehat b_i-\widehat b_j)|+|(e_i-b_j)-(\widehat e_i-\widehat b_j)|+ Lrel(si,j;s i,j)=(bibj)(b ib j)+(eibj)(e ib j)+

∣ ( e j − b i ) − ( e ^ j − b ^ i ) ∣ + ∣ ( e i − e j ) − ( e ^ i − e ^ j ) ∣ |(e_j-b_i)-(\widehat e_j-\widehat b_i)|+|(e_i-e_j)-(\widehat e_i-\widehat e_j)| (ejbi)(e jb i)+(eiej)(e ie j)

所以总的 loss 函数为: L = L d u r + 2 L r e l \mathbb L = \mathbb L_\mathrm{dur}+2\mathbb L_\mathrm{rel} L=Ldur+2Lrel

持续时间模型与时序关系模型的联系(Duration-relation connections)

在 Dur->Rel 中,可采用两种方式:

g r e l i , j = [ g p r e d i ; g p r e d j ; α r e l i , j H ; p i ; p j ] \mathbf {g}_{\mathrm{rel}_{i,j}} = [\mathbf g_{\mathrm{pred}_i};\mathbf g_{\mathrm{pred}_j};\alpha_{\mathrm {rel}_{i,j}}\mathbf H;\mathbf p_i;\mathbf p_j] greli,j=[gpredi;gpredj;αreli,jH;pi;pj]

g r e l i , j = [ p i ; p j ] \mathbf {g}_{\mathrm{rel}_{i,j}} = [\mathbf p_i;\mathbf p_j] greli,j=[pi;pj]

在 Rel->Dur 中,可采用两种方式:

g d u r k = [ g p r e d k ; α d u r k H ; b ^ k ; e ^ k ] \mathbf {g}_{\mathrm{dur}_k} = [\mathbf g_{\mathrm{pred}_k};\alpha_{\mathrm {dur}_k}\mathbf H;\widehat b_k;\widehat e_k] gdurk=[gpredk;αdurkH;b k;e k]

π d u r k = e ^ k − b ^ k \pi_{\mathrm{dur}_k} = \widehat e_k-\widehat b_k πdurk=e kb k

文本时间线(Document timelines)

假设有一个文本隐层事件线 T ∈ R + n d × 2 T\in\R^{n_d\times 2}_+ TR+nd×2,其中 n d n_d nd 代表文档中事件总数,2 代表每个事件的开始和持续时长。

通过确定所有谓词发生的起点及时长,使本文潜在时间线与事件对的相对时间线相连,且文档中始终存在以 0 为起点的谓词,并为文档内每个事件的所有组合 i i i j j j 定义辅助变量:

τ i , j = [ t i 1 , t i 2 , t j 1 , t j 2 ] \tau_{i,j} = [t_{i1},t_{i2},t_{j1},t_{j2}] τi,j=[ti1,ti2,tj1,tj2]

s ^ i , j = τ i , j − m i n ( τ i , j ) m a x ( τ i , j − m i n ( τ i , j ) ) \widehat {\mathbf s}_{i,j}=\cfrac{\tau_{i,j}-min(\tau_{i,j})}{max(\tau_{i,j}-min(\tau_{i,j}))} s i,j=max(τi,jmin(τi,j))τi,jmin(τi,j)

并且通过 L r e l ( s i , j ; s ^ i , j ) \mathbb L_\mathrm{rel}({\mathbf s}_{i,j};\widehat {\mathbf s}_{i,j}) Lrel(si,j;s i,j) 来学习 T,结果就是一条文本时间线。

三、结果及分析

1.结果

阅读笔记 Fine-Grained Temporal Relation Extraction

以上结果是对自建的 UDS-T 测试集,大多数模型可以很好地预测事件开始和结束的相对位置(在 Relation 中的 ρ \rho ρ 值高)事件的相对持续时间也能很好地预测(相对较低的 rank diff)。总的来说使用二项分布的结果好。

R 1 = 1 − M A E m o d e l M A E b a s e l i n e \mathrm{R1=1-\cfrac{MAE{model}}{MAE_{baseline}}} R1=1MAEbaselineMAEmodel

阅读笔记 Fine-Grained Temporal Relation Extraction

上图是在 Timebank-Dense 上的测试结果。

本文的模型是建立在自己的标注数据上的,所以在其他语料库上进行测试时使用了迁移学习的方法,并取得了不错的成果。

迁移学习的大概步骤是,首先使用在 UDS-T 集上性能最佳的模型,获取 TE3 和 TD 中每对带注释的事件关系的关系表示 g r e l i , j \mathbf {g}_{\mathrm{rel}_{i,j}} greli,j,然后,将此向量用作具有高斯核的 SVM 分类器的输入,并训练整个模型。

2.分析

阅读笔记 Fine-Grained Temporal Relation Extraction

在本文的 Attention 机制下,在持续时长(Duration)模型中,表示某个时间段的词,如月、分、时、年、日、周是平均权重最高的词,前 15 个词中有 7 个直接表示持续时间类别,表示本文的系统在预测持续时间上有较好的表现。

在关系(Relation)模型中,平均注意权重最高的大多数词都是时态信息的连词或者包含时态信息的词汇动词和助动词,如 or、and、were 等。

阅读笔记 Fine-Grained Temporal Relation Extraction

文本事件线(Document timelines)的表现并不理想,对于开始点的得分略高于持续时长,该模型仅基于每个silder 来确定相对的事件时间,在构建整条文本事件线时效果不理想可以理解,需要加入更多信息。