#####豪豪豪豪######清华出品的两个模型做事件检测和事件元素抽取任务


论文题目:Event Detection with Trigger-Aware Lattice Neural Network

论文来源:EMNLP 2019 清华

论文链接:https://www.aclweb.org/anthology/D19-1033/

代码链接:https://github.com/thunlp/TLNN

关键词:事件检测,word-trigger不匹配,trigger多义,LSTM

文章目录
1 摘要
2 引言
3 模型
3.1 分级的表示学习
3.2 触发词感知的特征抽取
3.3 序列标注
4 实验
5 总结
1 摘要
本文解决的是事件检测问题(ED),ED的目的是在文本中识别出事件触发词并将其分类成正确的事件类型。

对于ED任务,基于神经网络的方法已经成为主流。但是对于没有分隔符的语言,例如中文,就会面临两个问题:

(1)基於单词的模型存在严重的word-trigger不匹配问题,限制了模型的性能;

(2)即使能够准确定位trigger,一词多义现象的存在仍会影响到trigger分类的性能。

为了同时解决这两个问题,本文提出TLNN模型(Trigger-aware Lattice Neural Network):

(1)模型可以动态地合并词和字符信息,从而避免trigger-word不匹配问题;

(2)对于多义的字或词,使用外部语言知识库对它的所有含义进行建模。

实验结果显示,本文的模型有效地处理了上述两个问题,并超越了state-of-the-art。


2 引言

事件检测分为两个子任务:触发词识别(TI)和触发词分类(TC)。这两个子任务分别面临着一个挑战:

(1)trigger-word不匹配问题(TI)

主流的方法大多是基於单词的,对于没有天然分隔符的语言(例如中文),分词操作是一项关键的预处理步骤。但是这些基於单词的方法忽视了一个重要的问题:触发词可能是一个词的一部分或者包含多个词。

例如图1 a所示,“射杀”虽然是一个词,但“射”和“杀”是两个触发词。;“示威游行”是由两个词组成的一个触发词。在这种情况下基於单词的方法不能准确识别出触发词。

(2)一词多义问题(TC)

有多种含义的触发词会被分成不同的事件类别。如图1 b所示,“释放”可以表示两种完全不同的事件类型:Attack和Release-Parole。

表1展示了ACE 2005和KBP 2017数据集在上述两种问题上的统计结果:


可以看出trigger-word不匹配和一词多义问题在两个数据集中均占据了不小的比重。

本文提出TLNN模型同时解决上述两个问题。

为了避免NLP分词工具带来的误差传播,作者使用字符作为输入序列的基本单元。

另外,还使用了HowNet作为外部知识库,对多义的中英文词汇进行标注,以获得sense-level的信息。

然后,作者设计了trigger-aware lattice LSTM作为模型的特征提取器,并同时利用到了character-level, word-level, sense-level的信息。

为了解决trigger-word不匹配问题,作者对每个单词使用short cut paths连接起始字符和结束字符的cell state。注意此处的paths是sense-level的,也就是说以特定字符作为结尾的词的所有词义信息,将会流入到该字符的memory cell中。由于利用了不同粒度的信息(character, word, sense),一词多义问题可以较好地缓解。


3 模型
本文将ED任务看成是序列标注任务,对于每个字符,模型应该能识别出它是否是触发词的一部分,并将触发词正确分类。

模型的结构如图2所示:


模型由3个部分组成:

(1)分级的表示学习(Hierarchical Representation Learning),以无监督的方式学习到character, word和sense级别的嵌入向量;

(2)触发词感知的特征抽取(Trigger-aware Feature Extractor),使用树结构的LSTM模型,自动抽取出不同级别的语义特征;

(3)序列标注(Sequence Tagger),对每个候选的字符计算其是触发词的概率。


3.1 分级的表示学习
(1)字符级别(character level)

给定输入序列S={c1,c2,...,cN} S={\{c_1, c_2, ..., c_N}\}S={c 
1
​    
 ,c 
2
​    
 ,...,c 
N
​    
 },ci c_ic 
i
​    
 代表序列中的第i ii个字符。使用Skip-Gram方法,为每个字符生成嵌入向量:


(2)词级别(word level)

给定输入序列S={w1,w2,...,wM} S={\{w_1, w_2, ..., w_M}\}S={w 
1
​    
 ,w 
2
​    
 ,...,w 
M
​    
 },wi w_iw 
i
​    
 表示第i ii个词。使用b bb和e ee两个下标表示一个词的起始和结束,词嵌入为:


(3)词义级别(sense level)

然而,Skip-Gram方法将每个词仅仅映射成了一个嵌入,忽视了多义词的存在。好的表示应该能表示更深的语义信息。因此,作者使用了HowNet作为外部知识库,得到字符或词的多义信息。

对于每个字符c cc和每个词w ww,在HowNet上可能被标注上了多种意思:sen(ci)∈S(c) sen^{(c_i)}\in S^{(c)}sen 
(c 
i
​    
 )
 ∈S 
(c)
 ,sen(wi)∈S(w) sen^{(w_i)}\in S^{(w)}sen 
(w 
i
​    
 )
 ∈S 
(w)
 。因此,可以通过使用Skip-gram联合学习word embedding和sense embedding得到senses的嵌入。


其中,sen(ci)j sen^{(c_i)}_jsen 
j
(c 
i
​    
 )
​    
 和sen(wb,e)j sen^{(w_{b, e})}_jsen 
j
(w 
b,e
​    
 )
​    
 分别表示字符ci c_ic 
i
​    
 和词wb,e w_{b, e}w 
b,e
​    
 的第j jj个sense。scij s^{c_i}_js 
j

i
​    
 
​    
 和swb,ej s^{w_{b, e}}_js 
j

b,e
​    
 
​    
 表示ci c_ic 
i
​    
 和wb,e w_{b, e}w 
b,e
​    
 的嵌入。


3.2 触发词感知的特征抽取
这一模块是模型的核心部分。训练结束后,抽取器输出的是输入句子的hidden state向量h \mathbf{h}h。


(1)常见的LSTM

LSTM在RNN上增加了门(gates)来控制信息:1)输入门i ii;2)输出门o oo;3)遗忘门f ff。这些门共同控制了哪些信息要保留、遗忘和输出,并且三个门都有相对应的权重矩阵。当前的cell state c cc记录了所有流到当前时间的历史信息。因此,基于字符级别的LSTM函数如下:


(2)Trigger-Aware Lattice LSTM

是LSTM和lattice LSTM的扩展。

假定字符和词有K KK个含义,第i ii个字符ci c_ic 
i
​    
 的第j jj个含义的嵌入为scij s^{c_i}_js 
j

i
​    
 
​    
 。

1)整合字符的多义信息

使用附加的LSTMCell整合字符的所有含义,因此多义字符ci c_ic 
i
​    
 的cell gate计算如下:


其中,ccij c^{c_i}_jc 
j

i
​    
 
​    
 表示第i ii个字符的第j jj个含义的cell state,cci−1 c^{c_i-1}c 

i
​    
 −1
 是第i−1 i-1i−1个字符最终的cell state。为了得到字符的cell state,要使用一个附加的字符含义门(character sense gate):


然后所有的含义需要被动态整合到一个临时的cell state,如下所示。其中,其中αcij \alpha^{c_i}_jα 
j

i
​    
 
​    
 是归一化后的字符含义门。

2)整合词的多义信息

式(11)通过合并字符所有的含义信息,得到了临时的cell state c∗ci c^{*c_i}c 
∗c 
i
​    
 
 。但是,还需要考虑词级别(word level)的信息,swb,ej s^{w_{b, e}}_js 
j

b,e
​    
 
​    
 表示词wb,e w_{b, e}w 
b,e
​    
 的第j jj个含义的嵌入。

和字符类似,使用LSTMCell计算每个单词的cell state:


和式(10)~(12)类似,整合所有senses的cells信息,得到词的cell state:

3)合并字符信息和词信息

对于字符ci c_ic 
i
​    
 ,临时的cell state c∗ci c^{*c_i}c 
∗c 
i
​    
 
 包含了所有sense的信息。通过式(16)也可以计算出所有以索引i ii结尾的词的cell states,记为{cwb,i∣b∈[1,i],wb,i∈D} {\{c^{w_{b, i}} | b\in [1, i], w_{b, i}\in \mathbb{D}}\}{c 

b,i
​    
 
 ∣b∈[1,i],w 
b,i
​    
 ∈D}(D \mathbb{D}D表示词典)。

为了保证对应的信息可以流到ci c_ic 
i
​    
 最终的cell state,使用一个额外的门gmb,i g^m_{b, i}g 
b,i
m
​    
 整合字符cells和词cells:


字符ci c_ic 
i
​    
 最终的cell state计算如下,其中αwb,i \alpha^{w_{b, i}}α 

b,i
​    
 
 和αci \alpha^{c_i}α 

i
​    
 
 分别是word gate和character gate归一化后的值:


因此,最终的cell state cci c^{c_i}c 

i
​    
 
 可以动态地表示多义的字符和词。如式(7)所示,得到的 cci c^{c_i}c 

i
​    
 
 再过一个输出门,得到输出,也就是序列标注模块的输入。


3.3 序列标注
ED任务被看作是一个序列标注任务,对于输入序列S={c1,c2,...,cN} S={\{c_1, c_2, ..., c_N}\}S={c 
1
​    
 ,c 
2
​    
 ,...,c 
N
​    
 },有一个相对应的标签序列L={y1,y2,...,yN} L={\{y_1, y_2, ..., y_N}\}L={y 
1
​    
 ,y 
2
​    
 ,...,y 
N
​    
 }。每个字符对应的隐层向量h \mathbf{h}h作为输入,使用CRF层来进行序列标注,概率分布计算如下:

S SS是打分函数,计算从hi h_ih 
i
​    
 到标签yi y_iy 
i
​    
 的发射分数(emission score )。WyiCRF W^{y_i}_{CRF}W 
CRF

i
​    
 
​    
 和byiCRF b^{y_i}_{CRF}b 
CRF

i
​    
 
​    
 是针对标签yi y_iy 
i
​    
 的可学习参数。

T TT是转换函数,计算从yi−1 y_{i-1}y 
i−1
​    
 到yi y_iy 
i
​    
 的转换分数(transition score)。

C \mathbb{C}C包含了在序列S SS上所有可能的标签序列,L′ L^{'}L 

 
 是mathbbC mathbb{C}mathbbC中随机的一个标签序列。

然后使用维特比(Viterbi)算法计算出得分最高的标签序列。

模型的损失函数如下,其中M MM是句子数,Li L_iL 
i
​    
 是句子Si S_iS 
i
​    
 实际的标签序列:

4 实验
(1)数据集:ACE2005, KBP2017

(2)评价度量:Standard micro-averaged Precision,F1,Recall

(3)对比方法

DMCNN:使用dynamic Multi-pooling的CNN抽取句子级别的特征;
C-BiLSTM:提出卷积的Bi-LSTM用于ED任务;
HNN:设计了结合CNN和Bi-LSTM的混合的神经网络模型;
HBTNGMA:提出Hierarchical and Bias Tagging Networks,并使用Gated Multi-level Attention Mechanisms整合句子级别和文档级别的信息;
NPN:自动学习触发词的内部组成结构,以解决trigger不匹配问题。
(4)实验结果

1、整体效果

和其他模型相比,TLNN在两个数据集上均表现出色。这表示trigger-aware lattice structure可以提高定位触发词的准确性。由于使用了sense-level的信息,触发词的分类也更加精准。

在TI任务上,TLNN表现出了最好的效果。该模型通过用shortcut paths连接所有候选词的当前字符,有效利用了字符信息和词信息,避免了trigger-word不匹配问题。

在TC任务上,TLNN表现也是最好的。体现出了外部资源HowNet和动态利用sense-level信息的有效性。


2、触发词感知特征抽取的有效性

设计实验验证触发词感知特征抽取器的有效性。将triggeraware
lattice LSTM替换成标准的Bi-LSTM,得到基于字符和基于词的baselines。

1)对于基于词的baselines,输入是单词序列。使用额外的CNN和LSTM学习到字符级别的特征。

2)对于基于字符的baselines,输入的基本单元是字符。通过添加额外的word-level的特征(包括bigram和softword,softword指字符所位于的词),增强字符的表示,

这两类baselines都能利用到字符信息和词信息。实验比较结果如表3所示:


实验结果表明,触发词感知的特征抽取器通过动态地结合多粒度的信息,和baselines中基于特征的方法相比,可以有效地挖掘出更深层次的语义特征。

3、触发词不匹配的影响

将两个数据集分类两类:匹配和不匹配。表1展示了两个数据集word-trigger匹配和不匹配所占的比例。

不同方法在划分后的数据集上的Recall值表4所示:


4、触发词多义的影响

和NPN模型作对比,结果如表5和表6所示,TLNN - W/O Sense info表示不使用多义信息。


5、举例

5 总结
本文提出TLNN模型解决ED问题,该模型可以同时解决trigger-word不匹配问题和trigger多义问题。

分层的表示学习和触发词感知的特征抽取器使得模型有效地利用了多粒度的信息,并且学习到了深层次的语义信息。多粒度体现为character-level, word-level, sense-level,具体表现为先整合字符的多义信息,再整合词的多义信息,最后将字符的信息和词的信息整合。整合的过程中使用到了LSTM和一些额外的门。

未来工作:在有天然的分隔符和没有分隔符的多语言上进行实验;设计动态的机制,对sense-level的信息进行选择,而不是直接将所有字符和词的多义信息都纳入考虑。

第二部分EAE


论文题目:HMEAE: Hierarchical Modular Event Argument Extraction

论文来源:EMNLP 2019 清华、微信AI

论文链接:https://www.aclweb.org/anthology/D19-1584/

代码链接:https://github.com/thunlp/HMEAE

关键词:事件元素抽取(EAE),概念层次,attention,BERT,CNN

文章目录
1 摘要
2 引言
3 模型
3.1 Instance Encoder
3.2 Hierarchical Modular Attention
3.3 Argument Role Classifier
4 实验
5 总结
参考文献
1 摘要
本文解决的是事件元素抽取(EAE)任务。

现有的方法独立地对每个argument进行分类,忽视了不同argument roles间的概念相关性。本文提出了HMEAE(Hierarchical Modular Event Argument Extraction)模型处理EAE任务。

作者为概念层次(concept hierarchy)的每个基本单元设计了一个神经网络模块,然后使用逻辑操作,将相关的单元模块分层地组成一个面向角色的模块网络(modular network),对特定的argument role进行分类。

由于许多的argument roles共享相同的高层次(high-level)的单元模块,argument roles间的关联就得到了利用,有助于更好地抽取出特定的事件arguments。

实验证明了HMEAE可以有效地利用概念层次的知识,效果优于state-of-the-art baselines。


2 引言
(1)任务介绍

事件抽取(EE)通常看成由两个子任务构成:事件检测(ED)、事件元素抽取(EAE)。近些年来,EAE成了EE的瓶颈。

EAE的目的是识别出是事件arguments的实体并对该实体在事件中扮演的角色进行分类。

例如,在句子“Steve Jobs sold Pixar to Disney”中,“sold"触发了Transfer-Ownership事件。EAE的目的是识别出"Steve Jobs"是一个事件元素(event argument),并且该元素的角色为"Seller”。

(2)现有方法的不足

现有的方法都是将元素角色看成是彼此之间相互独立的,忽视了一些元素角色和其他元素的概念相似性。


以图1为例,相比于"Time-within",“Seller"在概念上和"Buyer"更接近,因为它们共享了相同的上级概念"Person"和"Org”。概念层次可以提供额外的有关元素角色间关联的信息,有助于元素角色的分类。

(3)作者提出

作者受先前的层次分类网络[1~3]和神经模块网络(NMNs)[4]的启发,提出了HMEAE模型,利用了概念层次的信息。

HMEAE模型采用了NMNs,模仿概念层次的结构,实现了一种灵活的网络结构,为更好的分类性能提供了有效的归纳偏差(inductive bias)。

如图1所示,作者将概念分为两类:表示抽象概念的上级概念;细粒度的元素角色(argument roles)。一个元素角色可以从属于多个上级概念。


如图2所示,为每个概念设置了一个NMN,并将其组成了一个面向角色的模块网络,以预测每个实体的元素角色:

1)首先,对于每个上级概念,有一个上级概念模块(SCM)来突出和概念有关的上下文信息;

2)然后,对于每个元素角色,使用针对特定角色的逻辑模块整合和其相对应的SCMs,以得到统一的高层次的模块;

3)最终,使用元素角色分类器,预测实体是否扮演了给定的元素角色。

本文的模型将概念层次纳入考虑有以下好处:1)高层次的模块可以有效增强分类器性能;2)不同元素角色共享上级概念模块。


3 模型
HMEAE模型结构如图2所示,由3部分组成:

1)实例编码器(instance encoder):将句子编码成隐层嵌入,并使用特征聚合器将句子信息聚合成统一的实例嵌入;

2)分层模块的注意力(hierarchical modular attention component):生成面向角色的嵌入,以突出参数角色上级概念的信息;

3)元素角色分类器(argument role classifier):使用实例嵌入和面向角色的嵌入,针对该实例估计出特定元素角色的概率。


3.1 Instance Encoder
将一个实例表示为n nn个单词的序列:x={w1,...,t,...,a,...,wn} x={\{w_1, ..., t, ..., a, ..., w_n}\}x={w 
1
​    
 ,...,t,...,a,...,w 
n
​    
 },t,a t, at,a分别表示触发词和候选元素。触发词是用已有的ED模型选择出来的,与本文无关。句子中的每个命名实体都是一个候选元素。

(1)句子编码器

将单词序列编码成隐层嵌入:


其中E(⋅) E(\cdot)E(⋅)是一个神经网络,本文使用CNN和BERT作为编码器。

(2)特征聚合器

将隐层嵌入聚合成一个实例嵌入。本文使用dynamic multi-pooling作为特征聚合器:


其中,[⋅]i [\cdot]_i[⋅] 
i
​    
 表示向量的第i ii个值;pt,pa p_t, p_ap 
t
​    
 ,p 
a
​    
 分别是触发词t tt和候选元素a aa的位置。将3个piecewise max-pooling结果拼接起来作为实例的嵌入x xx。


3.2 Hierarchical Modular Attention
如图2所示,给定隐层嵌入{h1,h2,...,hn} {\{h_1, h_2,..., h_n}\}{h 
1
​    
 ,h 
2
​    
 ,...,h 
n
​    
 },上级概念模块(SCM)为每个隐层嵌入给出了一个注意力得分,以建模其与特定上级概念的相关性。

由于一个元素角色可以从属于多个上级概念,所以使用一个逻辑模块(logic union module)以结合源于不同上级模块的注意力分值。

对于每个元素角色,将其上层概念模块组合成完整的hierarchical modular attention模块,构建面向角色的嵌入。

(1)上级概念模块(SCM)

对于特定的上级概念c cc,使用可训练的向量uc u_cu 
c
​    
 表示其语义特征。作者采用了多层感知机(MLP)来计算注意力分值。

首先计算隐层状态:


然后,进行softmax操作,为每个隐层嵌入hi h_ih 
i
​    
 得到对应的注意力分值:


其中,Wa,Wb W_a, W_bW 
a
​    
 ,W 
b
​    
 是可训练的矩阵,并且在不同的SCM间共享。

(2)Logic Union Module

给定一个元素角色r∈R r\in \mathcal{R}r∈R,定义它的k kk个上级概念为c1,c2,...,ck c_1, c_2, ..., c_kc 
1
​    
 ,c 
2
​    
 ,...,c 
k
​    
 ,针对hi h_ih 
i
​    
 的相应的注意力分值为sc1i,sc2i,scki s^{c_1}_i, s^{c_2}_i, s^{c_k}_is 
i

1
​    
 
​    
 ,s 
i

2
​    
 
​    
 ,s 
i

k
​    
 
​    
 。

对这些注意力分值求均值,得到面向角色(role-oriented)的注意力分值:


然后使用上面计算出的面向角色的注意力分值作为权重,对所有的隐层嵌入进行加权求和,得到面向角色的嵌入:

3.3 Argument Role Classifier
将实例嵌入x xx和实例的面向角色的嵌入er e^re 
r
 作为分类器的输入,估计给定实例x xx的条件下,角色r∈R r\in \mathcal{R}r∈R的概率。其中,r \mathbf{r}r是元素角色r rr的嵌入。


目标函数定义如下:

4 实验
(1)数据集

ACE 2005, TAC KBP 2016

(2)概念层次的设计

使用8个不同的上级概念,人工设计了概念层次。

(3)对比方法

1)基于特征的方法

Li’s joint
RBPB
2)神经网络方法

DMCNN, DMBERT:和文本模型大致一样,但是缺少hierarchical modular attention模块。
JRNN
dbRNN:使用了句法信息
HMEAE(CNN)
HMEAE(BERT)
(4)实验结果

在两个数据集上进行实验,不同方法的结果如下:

从ACE 2005数据集中随机采样了一个句子,该句在HMEAE (BERT)模型中的注意力分值sci s^c_is 
i
c
​    
 可视化如图3所示。可以看出单词隐层嵌入的注意力分值,在与其相关的上级概念上得分较高。这表明,由于上级概念模块(SCM)是共享的,所以无需经过专门数据的训练,SCM就可以很好地捕获概念特征。

5 总结
本文提出了HMEAE模型,用于处理EAE(事件元素抽取)问题(面向的是argument roles的分类问题)。

采用灵活的模块网络(modular networks),利用了和元素角色(argument roles)相关的层次概念,作为有效的归纳偏置(inductive bias)。

实验证明了HMEAE的有效性,并在某些度量上超越了state-of-the-art。

未来工作:在使用本文模型的基础上,根据人的经验,利用更多样的inductive bias,来提升一些扩展任务。

这篇文章的亮点在于使用到了概念层次的信息,有助于EAE中的argument roles分类问题。

模型在建模的过程中以一个实例作为对象,也就是一个句子。先使用CNN或BERT将句子建模成隐层嵌入序列;然后根据触发词和候选元素(句中实体)的位置,使用dynamic multi-pooling进行了特征的聚合,得到了实例的嵌入。

接着,在上级概念模块(SCM)中使用注意力机制,给每个隐层嵌入分配一个注意力分值,表示该隐层嵌入和该上级概念的关联性程度。然后,给定角色,对隐层在不同上级概念中的注意力分值求平均,得到每个token i ii针对该角色的注意力分值。再使用这个注意力分值作为权重,对所有的隐层嵌入进行加权求和,得到输入实例(句子)的面向角色的嵌入。

最后,将实例的嵌入和实例的面向角色的嵌入拼接起来作为分类器的输入,和元素角色的嵌入相乘,再经过一层softmax,为输入的实例x xx预测角色r rr。

本人没有看过代码,光看论文个人感觉有一些不足之处。模型是对一个句子进行argument role的预测的,而一个句子中可能有多个argument。如果句子中有多个argument,分类器给句子分配了概率最大的role,那这个role对应哪个argument呢?如果是根据句子中的候选argument数m mm选择前m mm个概率最大的role,那这些role该怎么分配给对应的argument呢?我觉得作者忽视了这个问题,只考虑句子中有一个触发词、一个参数的情况。因为3.1节中定义输入序列时,是写了一个t tt(触发词)和一个a aa(argument),没有提到有多个t tt或多个a aa的情况。


参考文献
[1] Xipeng Qiu, Xuanjing Huang, Zhao Liu, and Jinlong Zhou. 2011. Hierarchical text classification with latent concepts. In Proceedings of ACL-HLT, pages 598–602.

[2] Kazuya Shimura, Jiyi Li, and Fumiyo Fukumoto. 2018. HFT-CNN: Learning hierarchical category structure for multi-label short text categorization. In Proceedings of EMNLP, pages 811–816.

[3] Xu Han, Pengfei Yu, Zhiyuan Liu, Maosong Sun, and Peng Li. 2018. Hierarchical relation extraction with coarse-to-fine grained attention. In Proceedings of EMNLP, pages 2236–2245.

[4] Jacob Andreas, Marcus Rohrbach, Trevor Darrell, and Dan Klein. 2016. Neural module networks. In Proceedings of CVPR, pages 39–48.
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章