NPNs 中文事件检测模型

PPT上传似乎都没人看,以后若是时间允许还是多写WORD上传吧。

然而,word文档导入知乎,公式就全没了,还得重新手打一边,o(╥﹏╥)o


事件抽取是自然语言处理的重要任务,事件检测是事件抽取的关键步骤之一。利用深度学习识别事件触发词,并进一步实现事件分类,是事件检测的常见思路。

由于中文没有明确的词汇边界,分词常常导致触发词识别错误。针对中文词汇边界模糊导致的事件触发词与词汇本身不匹配的问题,文章《Nugget Proposal Networks for Chinese Event Detection》提出了NPNs多任务学习模型作为解决方案。


论文地址: arxiv.org/abs/1805.0024

代码地址: github.com/sanmusunrise

引言

事件触发词检测可以通过序列标注模型来实现,在英文中单词有明显边界,但是在中文中词汇边界模糊会导致触发词识别不准确的问题。例如:(a)事件触发词为词汇的一部分,ACE2005数据集中占比11.67%;(b)事件触发词为多个词汇的组合。ACE2005数据集中占比2.94%。

触发词识别错误

论文提出NPNs模型,旨在解决中文分词边界造成误判的情况下,准确的提取事件触发词并实现事件分类。

模型

直观想法

模型设计基于两个直观想法:

  1. 中文事件触发词多是由核心汉字与辅助汉字按一定规律组合而成,例如“方法+动词”形式的“枪杀”,“动词+助词+名词”形式的“受了伤”。基于核心汉字提取完整的触发词能够减少分词边界带来的误差。
  2. 综合汉字和词汇的语义信息,有助于捕捉触发词的组成信息,以及更准确地进行事件分类。例如,“枪杀”和“杀青”中的“杀”的 含义是不同的。

模型结构

模型结构

模型主要包含以下部分:

  1. 字词混合特征表示:首先计算汉字的特征向量、词汇的特征向量,然后将汉字与词汇的特征向量进行融合。
  2. 事件检测模块:包含事件触发词生成器、事件类型分类器,前者从文本中识别事件触发词,后者对事件进行分类。

混合特征表示

  1. 特征抽取

采用DMCNN模型抽取特征,模型结构如下:

特征抽取

假设文本对应的字(词)序列为 t_1,t_2,\cdots,t_n ,当前的字(词)为 t_{c} ,经如下网络层变换可以得到的向量表达:

输入层:将字(词) t_{i} ,以及 t_{i} 相对 t_{c} 的位置分别嵌入为指定维度的向量,拼接后得到向量 \boldsymbol x_{i}

卷积层:设第个卷积核的高度为 h ,对输入层计算卷积后,利用 tanh 激活函数进行非线性变换: r_{kj}=tanh({\boldsymbol w_k}\cdot{\boldsymbol x}_{(j:j+h-1)}+b_k ),j=1,2,⋯,n-h+1\\ 池化层:为保留文本不同部分的重要信息,采用动态池化:

r_{kc}^{left}=\max \limits_{j<c} r_{kj} \quad r_{kc}^{right}=\max \limits_{j \geq c} r_{kj} \\

输出层:将 k=1,2,\cdots,K 对应的 r_{kc}^{left}, r_{kc}^{right} ,以及 t_{c} 相邻前后两个字(词)的输入层对应向量 \boldsymbol x_{c-1}, \boldsymbol x_{c+1} ,拼接得到向量 \boldsymbol f_{c}

2. 特征融合

假设经特征抽取得到的文本的字向量表示为 \boldsymbol f_{char} ,词向量表示为 \boldsymbol f_{word} 。由于\boldsymbol f_{char}\boldsymbol f_{word}维度不一致,首先分别用一个全连接层将和映射到相同维度的向量空间,记为\boldsymbol f_{char}^{'}\boldsymbol f_{word}^{'},然后进行融合。

融合方式有以下三种:

特征融合

拼接混合: \boldsymbol f_{C} 作为事件检测模块的输入向量。

\boldsymbol f_{C} = [\boldsymbol f_{char}^{'} \quad \boldsymbol f_{word}^{'}] \\

统一混合:\boldsymbol z_{G}衡量 \boldsymbol f_{char}^{'}\boldsymbol f_{word}^{'} 在混合时的贡献度, \boldsymbol f_{G} 作为事件检测模块的统一输入向量。

\boldsymbol z_{G}=sigmoid({\boldsymbol W}_{G}\boldsymbol f_{char}^{'}+{\boldsymbol U}_{G}\boldsymbol f_{word}^{'}+{\boldsymbol b}_{G}) \\ {\boldsymbol f}_{G}={\boldsymbol z}_{G}\cdot{\boldsymbol f}_{char}^{'}+({\boldsymbol 1}-{\boldsymbol z}_{G})\cdot{\boldsymbol f}_{word}^{'} \\ 分任务混合:事件触发词生成器和事件分类器对于字向量和词向量有不同的需求度,因此针对两个任务分别混合得到 {\boldsymbol f}_{N}{\boldsymbol f}_{T} ,作为事件触发词生成器和事件分类器的输入向量。

\boldsymbol z_{N}=sigmoid({\boldsymbol W}_{N}\boldsymbol f_{char}^{'}+{\boldsymbol U}_{N}\boldsymbol f_{word}^{'}+{\boldsymbol b}_{N}) \\ {\boldsymbol f}_{N}={\boldsymbol z}_{N}\cdot{\boldsymbol f}_{char}^{'}+({\boldsymbol 1}-{\boldsymbol z}_{N})\cdot{\boldsymbol f}_{word}^{'} \\ \boldsymbol z_{T}=sigmoid({\boldsymbol W}_{T}\boldsymbol f_{char}^{'}+{\boldsymbol U}_{T}\boldsymbol f_{word}^{'}+{\boldsymbol b}_{T}) \\ {\boldsymbol f}_{T}={\boldsymbol z}_{T}\cdot{\boldsymbol f}_{char}^{'}+({\boldsymbol 1}-{\boldsymbol z}_{T})\cdot{\boldsymbol f}_{word}^{'} \\

事件检测

  1. 事件触发词生成器

包含指定汉字且长度不超过的连续汉字组合共有 \frac {L(L+1)}{2} 。如果任一组合都不是触发词的情况,用NIL标识。事件触发词生成器即转化为一个 \frac {L(L+1)}{2}+1 类的多分类问题。经统计,98.5%的触发词长度不超过3个汉字,因此不妨设 L=3 ,对应7个类别。

\boldsymbol f_{N} 作为输入,连接一个 \frac {L(L+1)}{2}+1 维的softmax层作为输出,得到各组合为触发词的概率:

\boldsymbol o_{G}=\boldsymbol W_{G}\boldsymbol f_{N}+\boldsymbol b_{G} \\ p(\boldsymbol y_{G}^{i}|\boldsymbol x;\theta )=\frac{e^{\boldsymbol o_{G}^{i}}}{\sum_\limits{j}e^{\boldsymbol o_{G}^{j}}} \\

事件触发词分类器

2. 事件类型分类器

只考虑事件对应的子类别,事件类型分类器也是一个多分类的问题,类别数为子类别个数(再加上非事件这一类)。

\boldsymbol f_{T} 作为输入,连接一个softmax层,得到各子类别的概率:
\boldsymbol o_{C}=\boldsymbol W_{C}\boldsymbol f_{T}+\boldsymbol b_{C} \\ p(\boldsymbol y_{C}^{i}|\boldsymbol x;\theta )=\frac{e^{\boldsymbol o_{C}^{i}}}{\sum_\limits{j}e^{\boldsymbol o_{C}^{j}}} \\ 3. 损失函数

L(\theta)=-\sum_\limits{(\boldsymbol x^{k}, \boldsymbol y_{G}^{k})\in S_{G}}\log p(y_{G}^{k}|\boldsymbol x^{k};\theta)-\sum_\limits{(\boldsymbol x^{k}, \boldsymbol y_{C}^{k})\in S_{C}}\log p(y_{C}^{k}|\boldsymbol x^{k};\theta) \\

实验

数据集:ACE2005和TAC KBP 2017

实验结果:

实验结果

总结

  1. 整体来说,NPNs较传统的中文事件检测模型有更好的表现
  2. 混合向量表示有助于捕获和丰富触发词的结构特征和语义特征,对于事件检测是有效的
  3. NPNs中的事件触发词生成模块,使得该模型对于数据标注错误有更好的容忍性,有利于更准确更完整地提取事件触发词

编辑于 2019-07-16 20:21