| ACL2018 | Nugget Proposal Networks for Chinese Event Detection |
|---|---|
| Author | Lin, Hongyu and Lu, Yaojie and Han, Xianpei and Sun, Le |
| url | https://www.aclweb.org/anthology/P18-1145.pdf |
| DataSet | ACE2005 Chinese Corpus, KBP2017 Corpus |
| Code | https://github.com/sanmusunrise/NPNs |
基于神经网络的事件检测模型通常将事件检测视为一种按词分类的任务。但是对于没有自然分词的语言如汉语中,会存在分词结果与事件触发词不匹配的问题。本文提出了一种NPNs网络,提出了以每个字符为中心,不受单词边界限制的的trigger nuggests来解决触发词不匹配问题。具体来说,事件检测任务基于字符来完成,然后使用混合表示法首先从字符和单词中获取结构和语义信息。基于学习到的表示,利用汉语事件触发词的字符组合,得到nuggets trigger并用来分类。在ACE2005和TAC KBP 2017的数据集上的实验表明,模型具有很好的效果。
存在的问题
基于单词的事件检测模型会遇到单词触发词不匹配的问题:
- 触发词可能是单词的一部分:
- 触发词可能跨过多个单词

本文提出的解决方案:
本文提出的NPNs网络模型,通过对字符组成结构来建模从而识别触发词。给定一个句子,NPNs模型以字符作为基本检测单元。
(1)可以利用触发词内部组成结构,根据字符得到整个可能的触发词块;
(2)从字和词两方面学习语义表示,有效地对提出的触发词块进行分类。
比如对于上面提到的(b)例子中,对于字符“伤”,我们不仅可以检测到“伤”是“Injure”触发词的一部分,还能提出整个触发词块是“受了伤”。
NPNs的主要思想是“大多数中文触发器具有规则的字符组成结构”。具体地说,大多数中文事件触发器都有一个中心字符,可以表示其事件类型。比如“枪杀”中的“杀”。此外,字符通过一些规则的组合结构被组合成一个触发词,比如manner + verb:“枪杀”、“砍杀”;verb + auxliary + noun:“受了伤”、“挨了打”。
模型结构

在给定句子中的一个字符的情况下,首先使用混合表示学习模块从句子的字符和单词中学习其语义表示。然后将这种混合表示方法引入到两个模块中:一个模块是trigger nugget generator,它利用字符的组成结构提出整个潜在的触发词块。一旦一个触发词被提出,则使用event type classifier来确定它的事件类型。
- 通过直接提出以字符为中心的整个触发器块,触发器块生成器可以有效地解决单词触发器失配问题。首先以字符为单位,则不存在以单词为单位的触发词不匹配的问题。此外,通过建模和利用触发词的字符组成结构,我们的模型比传统的基于字符的模型更能容忍按字符分类的错误。
- 通过对字符和词的信息进行综合,我们的混合表示方法可以有效地捕捉到字符内部的信息,并且能够准确地进行事件分类。比如,触发词“枪杀”的内部组成结构可以通过字符序列进行学习。此外,字符往往是有歧义的,需要结合上下文去考虑文字的语境。比如,“杀“字在”枪杀“中表示kill,而在杀青中表示complete。
1. 混合表示学习
我们提出一种混合表示法,它可以从字符和单词中总结信息。具体来说,我们首先使用token-level神经网络分别学习字符级和单词级表示,然后设计了三种混合范式来获得混合表示。
1.1. Token-level表示学习

使用两个token-level神经网络来分别从字符和单词中提取特征。网络结构类似DMCNN。上图是一个单词级网络的例子。
给定一个句子中的n个token t 1 t_1 t1, t 2 t_2 t2,…, t n t_n tn,以及我们所关心的token t c t_c tc(每个字轮流作为中心词), t i t_i ti的向量表示 x i x_i xi由 t i t_i ti的word embedding以及 t i t_i ti与 t c t_c tc的相对位置position embedding拼接而成。之后,通过卷积操作,我们可以得到一个个的卷积结果。卷积操作如下:
r i j = t a n h ( w i ⋅ x j : j + h − 1 + b i ) r_{ij} = tanh(w_i \cdot x_{j:j+h-1} + b_i) rij=tanh(wi⋅xj:j+h−1+bi)
其中 w i w_i wi代表第i个卷积核, x j : j + h − 1 x_{j:j+h-1} xj:j+h−1是 x j x_j xj到 x j + h − 1 x_{j+h−1} xj+h−1拼接形成的矩阵, b i ∈ R b_i \in \mathbb{R} bi∈R是偏置项。卷积核在嵌入矩阵上滑动进行卷积操作得到一个feature map,不同卷积核卷积之后得到多个的feature map。
随后,进行动态多池化操作,即以 t c t_c tc进行分割,将卷积结果池化为两个部分,分别对两部分做最大池化:
r i l e f t = max j < c r i j ; r i l e f t = max j ≥ c r i j r_i^{left} = \max_{j<c}r_{ij};r_i^{left} = \max_{j\ge c}r_{ij} rileft=j<cmax

最低0.47元/天 解锁文章
2595

被折叠的 条评论
为什么被折叠?



