基于双向门控循环神经网络的事件论元抽取方法

2022-01-26 12:43葛唯益程思伟
电子科技大学学报 2022年1期
关键词:编码向量注意力

葛唯益,程思伟,王 羽,徐 建*

(1. 中国电子科技集团公司第二十八研究所信息系统工程重点实验室 南京 210007;2. 南京理工大学计算机科学与工程学院 南京 210094)

文本事件抽取旨在从句子或文档中识别发生的事件,以结构化的方式描述事件的触发词、事件类型、事件论元及其角色,通常是信息检索中的重要前置任务之一,在诸多领域有着广泛应用。如在政府公共事务管理领域,及时捕获社会事件的爆发和掌握演变动态将有助于快速应急响应和事件处置,维护社会安定。因此,面向以自然语言形式存在的文本数据,研究满足应用场景需要的事件抽取方法成为当前热点研究课题之一。

尽管已经开展了相关的研究工作,事件抽取仍然是一项颇具挑战性的任务,主要原因有以下几个方面。首先,自然语言形式表达的文本信息通常具有语义歧义和多样化的话语风格,增加了处理难度。其次,事件抽取还依赖于自然语言处理(natural language processing, NLP)中若干子任务的性能,如命名实体识别、词性标记和语法解析等。为了应对上述挑战,文献[1-5]提出了基于模式匹配的事件抽取方法。该方法先构造一些特定的事件模板,然后执行模板匹配从文本中提取带有参数的事件。代表性的工作有AutoSlog[1]、GenPAM[3]、BEECON[4]和PALKA[5]。虽然由具有专业知识的专家手动构建事件模式质量非常高,且针对特定领域通常可以实现较高的抽取精度,但是手动构建耗时费力,且无法迁移应用到其他领域中。随着机器学习方法在事件抽取方面的广泛应用,研究人员又提出了基于机器学习的事件抽取方法克服人工构建模板的局限性。该方法的基本思路是从训练数据中学习分类器,并将分类器应用于从新文本中提取事件。由于事件抽取可以进一步分为触发词抽取和论元抽取两个子任务,根据两个子任务的完成时间顺序,可以划分为基于流水线式的事件抽取模型[6-10]和联合抽取模型[11-15]。前者将触发词抽取和论元抽取任务以串行的方式进行,且针对任务特点采用不同的分类器,更注重结构性,针对性模型能够收获更好的效果;而后者同时完成触发词抽取和论元抽取任务,考虑两个任务之间的信息交互,注重任务的整体性。最近,神经网络在NLP 任务中不断取得突破,基于深度神经网络的事件抽取方法[16-23]研究得到了很多关注,寻找抽取效果更佳的深度学习模型成为主要难点问题。代表性的工作有:基于卷积神经网络(convolutional neural networks, CNN)的事件抽取方法DMCNN[17],基于递归神经网络(recurrent neural networks, RNN)的事件抽取方法JRNN[19]和dbRNN[22],基于图卷积神经网络的事件抽取方法JMEE[23]。基于CNN 的事件抽取方法的缺点是无法很好地捕捉到距离较远的单词之间的相互关系,因为CNN 是将单词嵌入级联作为输入的。RNN 刻画可以利用直接或者间接连接的两个任意的词之间的潜在依赖关系,但也存在长距离遗忘的问题。此外,现有的基于深度神经网络的事件抽取方法大多忽略触发词与触发词之间的关联,在多事件句上的效果不佳。

针对上述问题,本文提出一种基于双向门控循环神经网络(bidirectional gated recurrent neural network, Bi-GRU)和多注意力机制的事件论元抽取模型,该模型在输入层结合深度上下文词向量和基础特征编码句子,经过Bi-GRU 层特征提取后,输入改进的多注意力机制层,从3 个方向计算注意力权重,编码语义结构之间的相似度,最后进行分类,完成事件论元抽取任务。

1 事件论元抽取方法

1.1 框架

为了提高论元抽取精度,本文提出了基于Bi-GRU 和多注意力机制的事件论元抽取模型,命名为Bi-GRU-MATT,其框架如图1 所示。该模型由特征编码层、Bi-GRU 层、多注意力机制层和全连接层组成。每一层的输入输出和作用如下。

图1 基于双向门控循环单元和多注意力机制的事件论元抽取模型

1)特征编码层结合经过预训练的深度语言模型编码的单词复杂特征、触发词类型特征、位置特征和词性特征,将每个单词token 编码为定长的具有原始句子语义和上下文信息的向量;

2)将编码层得到的实值向量输入Bi-GRU 进行进一步编码,GRU 相较于长短期记忆网络(long short-term memory, LSTM)计算效率较高,且模型简单,适合于构建较大的模型。通过Bi-GRU 进一步捕捉长距离依赖后,输出完整的融合深层语义信息的句子表示。

3)考虑到同一个单词在不同触发词表示的事件下可能扮演不同的事件论元角色,将Bi-GRU 编码得到的深层语义信息向量通过改进的注意力神经网络明确编码为句子的表示向量,提取深层的语义信息,输出最终编码向量。

4)将之前编码得到的深层语义向量和事件向量结合输入全连接网络,结合Softmax 对句子中的单词token 进行分类,分类器的输出计为每个论元角色计算置信度得分。

1.2 特征编码层

为了编码深层的上下文信息,在特征编码层考虑4 个方面的特征对词进行编码,分别是词向量、词性标注(part-of-speech tagging, POS)、词位置特征和触发词类型特征。具体地,选用当前先进的预训练语言模型(bidirectional encoder representation from transformers, BERT)来代替传统的预训练词向量。句子通过BERT 编码得到的动态词向量表示为eB,i,其中i表 示句子在第i个位置的单词。考虑到确定论元角色的词性是非常重要的一部分,如“Attack”触发的事件承受者通常是名词,因此将词性特征加入编码,用one-hot 向量表示为wp,i,词性特征的标签共有46 类(含标点符号和“”、“”)。触发词的事件类型是影响事件论元检测的最重要特征,用one-hot 向量表示为wt,i。同时,将触发词位置信息包括在编码中代表触发词与候选单词的空间关系,这需要给定一个输入的位置序列 {wr,1,wr,2,···,wr,n},wr,i在0 和1 上取值,1 表示触发词,0 表示不是触发词,第i个单词表示为wr,i。3 个基本特征中的i均表示句子的第i个位置的单词,p,t,r用 来区分不同的特征。wp,i,wt,i,wr,i可映射成向量,分别为ep,i,et,i,er,i:

式中,Mp,Mt和Mr表 示映射矩阵。映射得到ep,i,et,i,er,i后,特征编码层将eB,i和映射得到的3 个特征级联,用矩阵Mf映射成维度为d的单词嵌入ei:

式中,ei为第i个 句子的向量表示;Mf为映射矩阵。

得到句子中的每个单词xi编码为实值向量ei后,输入的句子W被转换为向量序列E,可表示为E=(e1,e2,···,en) 。设词嵌入的维度为dw,触发词嵌入的维度为dt,位置嵌入的维度为ds,词性嵌入的维度为dp,级联之后,ei的 维度di可表示为:

级联起来的包含丰富语义的特征向量作为Bi-GRU 层的输入,为n×di维的矩阵,n为句子中的单词个数。将编码好的特征向量输入后面Bi-GRUMATT 的其他层进行进一步的分类任务。

1.3 双向门控循环单元层

得到特征编码层输出的句子表示向量序列W后,将向量序列输入一个Bi-GRU,通过RNN编码来进一步捕获长距离的依赖关系和上下文信息。选用Bi-GRU 作为RNN 编码层的原因在于与具有相同功效的LSTM 相比,GRU 计算更容易,具有更高的模型训练效率,能捕获原始输入中包含的长距离依赖信息。

在模型Bi-GRU-MATT 中,模型中采用的更新门状态和重置门状态分别为:

式中,σ 是sigmoid 函数,负责转换门控信号;Wz、Wr、Uz、Ur、bz、br都是模型自主学习的参数;hi−1是第i−1步 的输出向量;zi是 更新门得到的向量;ri是重置门得到的向量。门控信号计算出来后,先用重置门来重置ht−1,重置后的ht−1记 为,再将其与输入xt拼接后通过 tanh 激活函数缩放数据到[−1,1]内,如式(8)和式(9)所示:

模型中该步骤可以表示为:

最后在更新阶段更新记忆,使用之前得到的zt,可同时进行遗忘和选择步骤,得到第i步的输出hi:

考虑到部分依赖与过去的状态和未来的状态有关,模型在Bi-GRU 层从正向和反向两个方向使用门控循环单元编码,捕捉丰富的长距离依赖,通过Bi-GRU 将句子的表示E从两个方向编码为:

经过双向编码之后,第t个单词的编码为,即将双向门控循环单元的两个方向的编码拼接起来得到编码向量序列E=(e1,e2,···,en),这在特征编码层初始特征的基础上融合了更为丰富的长距离依赖信息的句子向量表示。

1.4 多注意力机制层

多注意力机制层为Bi-GRU-MATT 模型的核心层。事件抽取的难点之一是句子中的某个事件论元可能在两个不同的触发词触发的事件中承担着不同的论元角色。因此,句子的特征与事件触发词、事件候选论元高度相关,在计算句子的特征表示时,这些信息十分重要。所以,在Bi-GRU-MATT 模型中,使用融合注意力机制的神经网络代替传统的卷积神经网络,进行句子级别特征提取。

注意力机制通常用于将向量序列编码为固定长度的句子表示形式。鉴于同一个句子中可能包含多个事件并且同一个参数可能表示的论元不同,本文采用了一种改进的注意力机制,将变化的触发词明确地编码为句子表示向量,称之为多注意力机制。

句子W=(w1,w2,···,wn)经过特征编码层和Bi-GRU 层编码之后的输出为向量序列E=(e1,e2,···,en),句子中第i个 单词wi对 应的向量编码为e1,通过向量序列E=(e1,e2,···,en)可 以生成事件向量qevent。事件向量代表的是词汇级别的特征表示,考虑到事件向量包含更为丰富的上下文信息,有助于分类准确度的提高,本模型的多注意力机制层的事件向量采用候选触发词和候选事件论元参数的特征编码,以及它们的上一个词和下一个词的特征编码拼接生成的事件向量,如式(14)所示:

式中,it表 示候选触发词的位置;ic表示候选事件论元的位置。相较于单纯使用候选词(候选事件触发词和候选事件论元参数),拼接生成的事件向量包含了候选词的邻近上下文信息,能得到更好的分类效果。

事件向量是词汇级别的特征编码,还需要句子级别的特征向量来完成分类任务。在Bi-GRUMATT 模型中采用改进的多注意力机制来得到句子表示ssen。根据候选触发词和候选事件论元,每个句子可以分割为3 部分,分别与事件向量qevent进行注意力运算,得到句子表示ssen。由于候选触发词和候选事件论元的位置it和ic前后顺序在不同句子中可能有区别,不失一般性,假设it

式中,a tt(E,a,b)是注意力权重计算函数,表示对句子中所有单词向量做加权的线性组合:

式中,αi是注意力权重,每个单词的注意力权重为:

式中,oi为Attention 计算的注意力权重:

式中,a(x,y)表示注意力权重函数,是注意力机制的核心,在注意力机制中用于对Query 和key计算注意力权重,在本模型事件论元抽取任务中用于对事件向量qevent和句子W位置i处的单词的匹配程度进行评分,计算注意力权重。注意力权重函数没有固定的形式,只需要对两个输入向量得到一个相似度分数即可。这里使用非线性标度乘积函数,如式(19)所示,它考虑了隐藏层的维度和非线性,使得该函数更具有表达性:

式中,W1和W2代表权重矩阵;f表示非线性函数,这里选用 ReLU函数。经过多注意力机制层编码后,得到了事件向量qevent和M-ATT 编码的句子表示向量ssen,分别代表了词汇级别的特征和句子级别的特征,共同输入全连接层完成分类任务。

1.5 全连接层

在多注意力层之后,接上一层全连接层完成最后的分类任务。全连接层的输入k是由事件向量qevent和学习到的M-ATT 编码的句子表示向量ssen级联起来得到的,表示为:

式中,全连接层输入k的维度是9de,k∈R9de,de是输入句子W中每个单词经过特征编码层和Bi-GRU层编码后的输出向量的维度。将k输入全连接层来抽取事件论元的参数标签:

式中,softmax表示的是softmax函数;y∈Rm;Wt∈Rm×9de;bt∈Rm;m指待抽取的事件论元角色数量,包括非事件论元“NONE”;Wt和bt是模型待学习的参数;y是模型的输出,为每一个事件论元角色提供了置信度得分,并且使用softmax 归一化。

1.6 损失函数

式中,θ表示整个模型的参数集合;N为输入的句子总数;n为事件论元类型的标签数量,包括NONE 类型的标签;是一个二值的指标,当yi代表真正的事件论元角色时,它的值为1,其他情况下为0;是模型预测输入实例p属于事件论元类别i的概率。

2 实 验

2.1 实验设置

在事件抽取基准数据集ACE2005 开展实验。该数据集中定义了35 个事件论元类型,加上NONE类型,共36 个类型。为了与已有研究工作进行比较,使用与它们相同的数据分割方案,即40 个新闻类的文章(共有881 个句子)作为测试集,30 个其他类型的文本(共有1087 个句子)作为验证集,剩下的529 个文本(共有21090 个句子)用作训练集。

基于pytorch 框架实现模型,使用standford CoreNLP 工具包和自然语言处理库torchtext 来进行数据预处理,将句子分词并获得句子中每个单词wi的词性标注。使用Google 官方的预训练模型BERT-Base 获取特征编码层上下文相关的词向量表示,该预训练模型包含12 层transformer,隐藏层维度768 维,参数量1.1 亿个。对于编码层的词性POS 特征、触发词类型特征以及位置特征,维度均为50,最大句子长度设置为50,比50 短的句子用padding 操作补上,比50 长的句子则进行截断操作。Bi-GRU 隐藏层维度为200,dropout 设为0.5,且batch 的大小为64。和大部分模型相同,模型中使用ReLU 作为非线性激活函数。同时使用mini-batch 小批量随机梯度下降和AdaDelta 更新规则,应用反向传播来计算梯度。模型训练20 个epoch。Bi-GRU-MATT 模型采用正交矩阵和高斯分布来分别初始化参数矩阵和其他参数。

为了评估Bi-GRU-MATT 模型在事件论元抽取任务上的性能,使用精确率(Precision)、召回率(Recall)和F1(F1-score)作为评价指标:

式中,TP 是混淆矩阵中将正类预测为正类的数目;FP 是混淆矩阵中将负类预测为正类的错误预测数;FN 是混淆矩阵中将正类预测为负类的错误预测数。

2.2 消融实验

为了更清晰地展示Bi-GRU-MATT 模型每个层对于模型的贡献,进行消融实验,分别从BERT 预训练语言模型,Bi-GRU 层和多注意力机制层评估了各层的作用。

2.2.1 BERT 对模型性能的影响

本实验旨在揭示BERT 预训练模型对Bi-GRUMATT 论元抽取性能的影响。考虑到训练集标注数据量大和梯度消失的问题,将词嵌入作为可训练的参数去训练模型,会大幅度增加参数量进而引起过拟合问题,因此实验中不直接剔除预训练语言模型来做消融实验,而是替换为其他典型的预训练词向量并比较几种不同词向量编码下模型的抽取效果,结果如表1。可以看出,采用BERT 深度预训练上下文语言模型编码句子中各个单词,在事件论元识别和论元角色分类任务中均达到了最佳效果。具体地,在两个具体任务上,采用了上下文相关的词向量编码BERT 和ELMo 的结果都显著优于采用传统的上下文无关词向量word2vec 和GloVe,这表明包含深层语义和上下文信息的词向量具有更好的表示能力。进一步地,将BERT 与ELMo 相比比较,两个任务的F1-score 值分别提升了1.3%和1.4%,这得益于BERT 采用了完全双向信息弥补了ELMo 的缺陷,且句子级负采样使得BERT的编码级别提升至句子级,将句子信息融入编码中使得采用BERT 的Bi-GRU-MATT 在实验中取得了最佳效果。

表1 特征编码层不同的单词编码方式对模型性能的影响

2.2.2 Bi-GRU 层和多注意力机制层对模型性能的影响

本节通过单独移除Bi-GRU 层和多注意力机制层的方式来评估它们对模型的性能影响,结果如表2所示。从表中可以看出,多注意力机制层在事件论元识别和角色分类任务中分别使模型的F1-score 值提升了1.7%和1.6%,而Bi-GRU 层在事件论元识别和角色分类任务中分别使模型的F1-score 值提升了1.0%和0.8%,这表明经过Bi-GRU 编码后特征向量包含了更加丰富的长距离依赖关系以及句子特征。上述结果验证了多注意力网络和Bi-GRU 编码的有效性。

表2 Bi-GRU-MATT 模型相关消融实验

2.3 多注意力机制层相关分析

多注意力机制层是Bi-GRU-MATT 模型的核心层。本实验针对多注意力机制层使用的不同注意力权重函数进行对比实验,目的是为了验证选择非线性标度乘积函数作为注意力函数的合理性。

具体地,用a(s,h)代 表注意力权重函数,s和h代表参与注意力计算的两个向量。考虑以下5 种不同的注意力权重函数来训练模型,其中函数4 和5 的非线性激活函数统一使用ReLU 函数。

1. 乘积函数:a(s,h)=。

2. 加和性函数:a(s,h)=vTtanh(W1s+W2h)。

3. 对称乘积函数:a(s,h)=sTWTDWh。

4. 非线性对称乘积函数:a(s,h)=f(Ws)TDf(Wh)

在事件论元识别和角色分类两个任务上的实验结果如表3 所示。可以看出,以ReLU 为激活函数的非线性标度乘积函数作为注意力权重函数的模型在两个任务上获得了最高的F1-score 值,表现优于线性的注意力函数,非线性标度乘积函数在两个任务上的F1-score 值比表现最好的线性注意力函数分别高出0.4%和0.2%。

表3 不同注意力权重函数对模型性能的影响

2.4 模型在多论元事件句上的表现

为了进一步验证Bi-GRU-MATT 模型在事件论元抽取任务上的有效性,特别是对于不止一个论元的句子。根据句子中论元的数量将句子分成两部分,其中仅有一个论元的事件句占整个数据集的76.8%,包含至少两个论元的事件句占整个数据集的23.2%。将Bi-GRU-MATT 与基线模型Embedding+T、CNN,以及DMCNN、JRNN 和JMEE 3 个前沿事件抽取模型进行对比,获得的F1-score 值如表4 所示。

表4 Bi-GRU-MATT 模型在单论元事件句(1/1)和多论元事件句(1/N)上的抽取性能

从表4 可以看出,Bi-GRU-MATT 模型无论是在单论元事件句(1/1)还是多论元事件句(1/N)上都有最高的F1-score 值。在多论元事件句上,Bi-GRU-MATT 比动态多池化网络DMCNN 的F1-score 值高出了7.1%,这验证了Bi-GRU-MATT 方法的有效性。和同样使用了循环神经网络的模型JMEE 和JRNN 相比,F1-score 值分别提高了1.3%和5.2%,这是因为本模型采用包含丰富语义的BERT 模型编码单词,并且多注意力机制有助于学习到更多的语义信息,提高模型的精度。

2.5 对比实验

将Bi-GRU-MATT 与当前先进的事件抽取方法在事件论元识别和论元角色分类任务上进行对比。采用的对比方法分为3 类,基于特征的抽取模型、基于流水线式的抽取模型和联合抽取模型,其中基于特征的抽取模型包括Cross-Event、Cross-Entity和RBPB,基于流水线式的抽取模型有DMCNN、JRNN、dbRNN,而联合抽取模型有JMEE、SCNNs[24]、Ding’s model[25]和Joint3EE[26]。

表5 给出了Bi-GRU-MATT 模型与这些对比方法在事件论元抽取任务上的性能。可以看出,提出的Bi-GRU-MATT 模型在事件论元识别和角色分类任务上均取得了最佳的F1-score 值。Bi-GRU-MATT 模型和代表性的基于特征的抽取模型相比,精确率、召回率和F1-score 值均显著优于后者,在两大任务上的F1-score 值比最佳的基于特征的模型(RBPB)高8.0%和7.8%,性能提升显著。与联合抽取模型对比,Bi-GRU-MATT 的F1-score 值也优于它们。在事件论元检测任务上F1-score 值比表现最好的联合抽取模型(JMEE)高0.8%,且精确率和召回率也有提升。在论元角色分类任务上,单独执行触发词抽取和论元抽取任务的性能优于联合抽取的,主要原因在于事件类型是时间论元抽取任务中的重要特征,同时标记触发词和参数的联合模型容易忽视触发词类型特征相关的信息。

表5 Bi-GRU-MATT 与其他先进方法的性能比较

3 结束语

本文提出了一个基于Bi-GRU 和改进注意力机制的事件论元抽取模型Bi-GRU-MATT。该模型在特征编码层同样使用了深度的上下文预训练语言模型BERT,并结合词性特征和位置特征,以及触发词特征来编码单词向量,之后送入Bi-GRU 网络中编码长距离的依赖关系,再输入多注意力机制层计算注意力权重,生成事件向量和句子表示向量,级联输入全连接层完成最后的分类工作。实验表明该模型可以显著提升事件论元抽取的效果,在事件论元识别和论元角色分类任务上达到了较好的效果,F1-score 值分别为69.2%和61.6%。

猜你喜欢
编码向量注意力
HEVC对偶编码单元划分优化算法
向量的分解
住院病案首页ICD编码质量在DRG付费中的应用
让注意力“飞”回来
生活中的编码
聚焦“向量与三角”创新题
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
论纪录片影像中的组合编码运用