融合自注意力机制与CNN-BiGRU的事件检测
2022-12-01王孟洋田国强
王 侃,王孟洋,刘 鑫,田国强,李 川,刘 伟
(1.中国电子科技集团公司第十研究所,四川 成都 610036;2.西安电子科技大学 通信工程学院,陕西 西安 710071;3.西安邮电大学 计算机学院,陕西 西安 710121)
事件抽取是信息抽取的重要任务,主要研究从自然语言文本中抽取出感兴趣的结构化事件信息,在生物医学[1]、知识图谱[2]、金融分析[3]等领域有着广泛应用。自动内容抽取(Automatic Content Extraction,ACE)评测会议将事件抽取分为事件检测和事件要素抽取两个子任务[2]。事件检测是事件抽取中的基础,主要任务是从文本中发现事件并确定事件类型,其结果将影响到事件要素抽取的性能[4-5]。
事件检测的目标是抽取文本中事件的触发词,并将其划分为特定的事件类型[6]。传统的事件检测方法通常依赖于一系列自然语言处理(Natural Language Processing,NLP)工具来人工构建特征,然后基于统计学习的分类模型进行分类[7-9]。这些特征可以划分为两类:词汇级特征和句子级特征。词汇级特征主要指词汇的语义或背景知识,句子级特征指整个句子的句法及上下文依赖关系等[10]。通常这些方法中使用复杂的NLP工具,容易造成误差传播,且人工构建特征工程过于繁琐。
近几年,神经网络广泛应用于自然语言处理领域,能自动地从自然语言文本中学习特征,并在事件检测任务上非常有效。文献[10]将卷积神经网络(Convolutional Neural Networks,CNN)用于事件检测任务,对CNN池化层进行改进,提出动态多池化卷积神经网络模型,减少了事件抽取时的重要信息遗漏;文献[11]提出一种双向循环神经网络(Recurrent Neural Networks,RNN)联合模型,完成了触发词和事件要素的联合抽取;文献[12]采用了添加CNN的双向长短期记忆网络(Bidirectional Long Short Term Memory,BiLSTM)模型,从特定上下文捕获序列和结构语义信息,进行事件检测;文献[13]使用CNN和双向门控循环单元(Bidirectional Gated Recurrent Units,BiGRU)联合提取特征,完成触发词抽取。然而这些模型都没有充分考虑文本的上下文联系,对特征的提取不够充分。
另一方面,注意力机制能够捕捉全局信息,关注重要特征,成为自然语言处理领域的研究热点。文献[14]中提出了自注意力机制和多头注意力机制,使得注意力机制的应用场景更加广泛,不再限于编码器-解码器框架中,从此注意力机制被应用于各种神经网络模型,并在事件检测任务中也取得了很好的效果[1,6]。文献[15]提出了一种基于注意力机制的组合神经网络模型,该模型首先使用CNN提取不同粒度信息构建句子级的特征表示,然后使用BiGRU对句子特征表示进行顺序整合以提取文本的上下文语义信息特征,并使用注意力机制计算注意分数,对该模型施加不同的学习权重,提高情感分类任务的性能。文献[16]在CNN的卷积层和池化层间加入了BiGRU层,将CNN提取的局部特征通过BiGRU得到全局特征,从而对全局特征进行池化,通过注意力机制进行赋予特征不同的学习权重,完成了文本分析任务。然而这些模型的不足之处在于,只考虑了文本的句子级特征,忽略了文本中的词汇级特征和词汇的位置信息,且CNN中的池化操作会造成位置信息的丢失,在事件检测任务中效果不佳。
笔者引入自注意力机制,提出一种基于自注意力机制与卷积双向门控循环单元模型(Convolutional Bidirectional Gated Recurrent Units Based on Self-Attention,Att-CNN-BiGRU)进行事件检测,采用词向量和位置向量作为模型输入,用融合自注意力机制的卷积神经网络(Convolutional Neural Networks based on self-Attention,Att-CNN)来提取不同粒度的词汇级特征,并且用融合自注意力机制的双向门控循环单元(Bidirectional Gated Recurrent Units based on self-Attention,Att-BiGRU)来提取句子级特征,使用自注意力机制分别对所提取的特征进行处理,赋予不同特征不同的注意力权重,捕获句子的全局信息和上下文依赖关系,使提取的特征更加充分,从而提升事件检测的性能。
1 模 型
Att-CNN-BiGRU事件检测模型由文本向量化、特征提取和候选词分类3个部分构成,如图1所示。第一部分是文本向量化,把输入文本中的每个词语映射成向量表示,文本向量由词向量和位置向量组成;第二部分是特征提取,包括Att-CNN词汇级特征提取和Att-BiGRU句子级特征提取;第三部分是候选词分类,将所提取的词汇级特征和句子级特征拼接作为全连接层的输入,通过softmax分类器识别候选词所属类别。
图1 事件检测模型框图
1.1 文本向量化
文本向量化是将文本映射成计算机可以识别和处理的向量[10-13]。为避免One-hot编码向量稀疏和维度灾难的问题,使用分布式表示。一个句子由多个词语组成,表示为S={w1,w2,…,wn},其中,S表示句子,wi表示句子中第i个词语,n表示句子长度。文中模型将句子中的词语wi映射为实值向量xi,句子序列可以表示为X={x1,x2,…,xn},其中实值向量xi包括词向量和位置向量两部分。
1.1.1 词向量
词向量又称词嵌入,是将文本中的词语转化为可以表达语义信息的向量ei,考虑词的含义和词与词之间的影响,计算了词的语义相似性。笔者采用Google的开源词向量模型工具包Word2vec[10-13]的Skip-gram模型来预训练词向量,得到词向量矩阵MW∈Rdw×|V|,其中,dw表示词向量维度,|V|表示词典大小。
1.1.2 位置向量
位置向量又称位置嵌入,是将文本中词语的位置特征转化为向量pei,明确句子中哪个词是触发词。位置特征定义为当前词到候选词之间的相对距离,表示当前词在句子中的相对位置[10-13]。笔者通过随机初始化并反向传播进行优化,得到位置向量矩阵MP∈RdP×[2×(n-1)+1],其中,dp表示位置向量维度。
综上所述,句子中的第i个词语对应的向量xi∈Rd可表示为xi=[ei,pei],维度为d=dw+dp。
由于神经网络的输入通常为固定长度,假设句子的最大长度为maxlen,如果句子长度n大于maxlen,则截取前maxlen个词语;如果句子长度n小于maxlen,则采取在句子末尾补零的方式将句子补齐。
1.2 特征提取
通过Att-CNN-BiGRU联合提取文本特征,文本特征分为词汇级特征和句子级特征。词汇级特征指单词的背景知识,包括单词的词性信息、语义信息等。句子级特征指整个句子的上下文依赖关系,如句法特征。Att-CNN通过卷积和自注意力操作提取词汇级特征,Att-BiGRU通过门控循环单元和自注意力层提取句子级特征。
1.2.1 基于Att-CNN的词汇级特征提取
卷积神经网络最初在计算机视觉领域用来提取局部特征,目前也逐渐应用于自然语言处理任务,如情感分析[17-18]、事件抽取[10]等。笔者使用卷积神经网络来提取句子中每个词的局部上下文特征,包括卷积层和自注意力层,原理如图2所示。
图2 Att- CNN提取词汇级特征原理图
1) 卷积层
卷积层通过一维卷积操作在输入文本向量上滑动来捕获每个词语的局部上下文语义,并将这些有价值的语义压缩为特征映射。定义xi:i+j是指第i到i+j实值向量xi,xi+1,…,xi+j。一维卷积操作的卷积核W∈Rh×d,其中,h表示卷积核应用的词窗口大小。文中采用补零的卷积方式,如果词语上下没有其他词语,那么在卷积时在前后补零将句子对齐,那么,某一词语xi的特征映射ci由式(1)[10]所示从xi-h/2:i+h/2的词窗口生成:
ci=f(W·xi-h/2:i+h/2+b) ,
(1)
其中,f是一个非线性函数如双曲切线,b∈R是一个偏置项。这个卷积核作用于句子中每个可能的词窗口x1-h/2:1+h/2,x2-h/2:2+h/2,…,xn-h/2:n+h/2来生成每个词的特征映射ci,索引i的范围从1到n。
为了捕获不同粒度的特征,在不同通道中进行卷积操作。假设使用不同大小卷积核共m个,多通道卷积运算可以表示为[10]:
cij=f(Wj·xi-h/2:i+h/2+bj) ,
(2)
其中,索引i表示句子中的第i个词,其范围从1到n。j表示第j个卷积核,其范围从1到m。cij表示句子中的第i个词经过第j个卷积核卷积得到的特征映射。由cij组成矩阵C∈Rn×m作为初级词汇级特征。
2) 自注意力层
卷积神经网络只能获取卷积窗口内的局部特征信息,无法联系上下文信息。为了充分考虑每个词语之间的相互关联,更加全面地提取词汇级特征,同时避免池化操作中词语位置信息丢失,引入了自注意力层[6,15-17]。
自注意力机制的结构如图3所示。自注意力模型经常采用查询-键-值(Query Key Value,QKV)模型,自注意力机制中Q、K、V的来源是同一个输入。给定输入矩阵I,经过不同的矩阵变换得到矩阵Q、K、V。首先通过查询矩阵Q与键矩阵K的转置相乘计算其相似度,得到相关性矩阵A。其次,通过softmax操作将相关性矩阵A归一化,得到A′。最后将归一化相关性矩阵A′乘以矩阵V,得到自注意力层的结果。自注意力机制的计算如下式[14]:
图3 自注意力机制结构图
(3)
其中,Q∈Rn×dk,K∈Rn×dk,V∈Rn×dv,T表示矩阵的转置运算,除以(dK)1/2以防止内积结果过大。
自注意机制实质上就是通过矩阵运算将一个n×dk的矩阵考虑全局信息后重新编码成n×dv的矩阵。自注意力机制为不同的词汇级特征分配不同的权重,同时考虑了词语的全局信息和依赖关系,从而得到词汇级特征C′∈Rn×m。
1.2.2 基于Att-BiGRU的句子级特征提取
为了解决循环神经网络梯度消失和短期记忆的问题,其变体LSTM和GRU引入“门”的内部机制以调节信息流。相比于LSTM,GRU结构和计算过程更简单,参数也少,因此收敛速度比LSTM更快,故笔者选取GRU模型来提取句子级特征。
GRU结构中去除了单元状态,而使用隐藏状态来传输信息。它的核心结构可以分为两个部分去解析,分别是更新门zt和重置门rt,其结构如图4所示。更新门zt决定保留信息和添加信息,控制前一时刻输出隐藏状态对当前时刻输出状态的影响。重置门rt决定丢弃信息,控制前一时刻中信息的忽略程度。在t时刻,首先计算更新门和重置门;接着新的记忆内容将使用重置门rt储存过去相关的信息;最后网络计算隐藏状态ht,保留当前单元的信息并传递到下一个单元中。GRU通过式(4)~式(7)更新参数[13]:
图4 门控循环单元原理图
zt=σ(Wz·xt+Uz·ht-1) ,
(4)
rt=σ(Wr·xt+Ur·ht-1) ,
(5)
(6)
(7)
图5 Att-BiGRU提取句子级特征原理图
假设在Bi-GRU训练过程中,设定隐藏单元数量为s,那么Bi-GRU的输出结果为H=[h1,h2,…,hn]。其中H∈Rn×(2×s),作为Bi-GRU提取得到的初级句子级别特征。
为了更加全面地捕捉句子的特征信息,并将焦点集中在高价值具有代表性的特征上,无视没有价值的特征,同理在BiGRU后引入了自注意力层,从而得到句子级特征H′∈Rn×(2×s)。
1.3 候选词分类
候选词分类是联合Att-CNN提取的词汇级特征和Att-BiGRU提取的句子级特征通过softmax操作识别候选词所属类别,从而确定句子中的触发词。由上文可知,Att-CNN提取的词汇级特征C′∈Rn×m,Att-BiGRU提取的句子级特征H′∈Rn×(2×s),将C′和H′拼接在一起作为联合特征Y=[C′,H′],Y∈Rn×(m+2×s)。将联合特征Y通过全连接层输入到softmax层,完成候选词的分类[10]为
O=softmax(WsY+bs) ,
(8)
其中,O∈Rk是模型输出的触发词类别向量,Ws∈R(m+2×s)×k为表示全连接层的连接权重矩阵,bs∈Rk表示偏置,k表示触发词类型数目。
1.4 训练
将触发词抽取看作一个多分类问题,将触发词抽取模型的所有参数定义为θ,将句子中的每个词语作为候选词,通过模型对每个候选词进行分类。在训练过程中,将输入的文本向量通过Att-CNN和Att-BiGRU分别提取词汇级特征和句子级特征,通过softmax函数分类。模型使用交叉熵(cross-entropy)作为损失函数,采用mini-batch的训练方式,每次随机从训练集中选取一小批数据来进行训练,使用自适应矩估计(Adam)优化器,通过反向传播调整模型参数θ,直至结果收敛。
2 实 验
2.1 数据集和评价指标
文中数据集选用ACE2005英文语料,共包括599篇文档。ACE2005语料将事件划分为8种类型,每种事件类型中又包含一些子类型,共33种,标注了事件提及、事件触发词、事件元素等信息,被广泛应用于事件抽取任务。与文献[8-13,19]等实验设置相同,文中随机选取40个新闻作为测试集,选取30个文章作为验证集,剩余529个文章作为训练集,同时选用准确率(P)、召回率(R)和F值(F-score)作为评估事件检测模型性能的指标,计算标准如下:
触发词识别:如果所抽取触发词的位置与比标注文档一致,则触发词被正确识别。
触发词分类:如果所抽取触发词的类型与位置与标注文档一致,则触发词被正确分类。
2.2 实验结果对比及分析
2.2.1 不同模型的结果对比
为了验证文中模型的有效性,将笔者提出的模型与现有的5种事件检测基准模型进行对比,其中MaxENT[8]、Li’s structure[9]是基于传统的事件检测方法,DMCNN[10]、JRNN[11]、SCNN[19]是基于神经网络的事件检测方法,表1和图6和图7中是不同的触发词抽取模型在ACE2005英文语料库上的性能对比结果。
表1 不同模型在ACE2005英文语料上的性能对比 %
图6 触发词识别不同模型性能对比
图7 触发词分类不同模型性能对比
从表1和图6和图7可以看出,基于神经网络的事件检测方法的性能普遍优于传统的事件检测方法。这是因为神经网络能够自动学习和提取文本特征,避免了传统方法在使用复杂NLP工具人工提取词性、命名实体等特征时带来的误差传播。在触发词分类任务中,文中模型准确率达到82.6%,召回率为76.0%,F值为78.9%,均高于基线模型方法。在触发词分类任务中,文中模型保持了较高的准确率和召回率,同时取得了最高的F值76.0%。综上对比结果显示,文中模型性能较传统的事件检测方法和单一的CNN、RNN事件检测方法,性能均得到了提升,这表明组合神经网络能充分提取词汇级特征和句子级特征,从而具有较好的事件检测性能。
2.2.2 有无自注意力机制的结果对比
为了验证自注意力机制的有效性,将有无自注意力机制的实验结果进行对比。表2是注意力机制的实验结果对比,CNN-BiGRU是未使用自注意力机制的模型,Att-CNN-BiGRU是增加自注意力机制的模型。
表2 自注意力机制实验对比 %
从表2可以看出,增加自注意力机制后,事件触发词识别和分类任务均有了一定的提升。其中触发词识别任务中准确率、召回率和F值提升了2%左右,触发词分类任务中准确率提升了4%,召回率提升了6.3%,F值提升了5.1%。这是因为自注意力机制可以赋予不同位置不同的注意力权重,捕获序列中各位置之间的语义关系和依赖特征。在CNN提取词汇级特征阶段,自注意力机制可以捕捉词汇的上下文联系,得到整个句子的全局信息。在BiGRU提取句子级特征阶段,自注意力机制可以捕捉句子中的前后依赖和每个词语之间的语义特征信息,从而提高模型的特征抽取能力,提升事件检测的性能。此外,笔者给出的模型表现出更好收敛性,如图8所示。
图8 CNN-BiGRU与Att-CNN-BiGRU收敛情况对比
从图8中可以看出,CNN-BiGRU在训练到第30个轮次(Epoch)左右时收敛,而Att-CNN-BiGRU在训练到第10个轮次左右时就达到收敛。这是因为自注意力机制可以更加关注有价值的特征信息,为不同的特征分配不同的权重,从而使得模型收敛得更快。
3 结束语
笔者提出一种基于自注意力机制与卷积双向门控循环单元模型进行事件检测。该模型将词向量和位置向量联合作为输入,通过Att-CNN提取不同粒度的词汇级特征,通过Att-BiGRU提取句子级特征,使用自注意力机制捕捉词汇级特征的全局信息和句子级特征的上下文依赖。该模型避免了传统方法使用复杂的NLP工具带来的错误传播的问题,自动学习文本特征,比传统事件检测方法表现更好。同时,该模型能充分提取不同粒度的文本特征,性能比单一神经网络的事件检测模型有了进一步提升,且模型收敛速度更快。本模型将前人提出的CNN-BiGRU模型与自注意力机制融合并应用于事件检测任务。然而该模型没有使用传统方法中的句法结构特征等文本特征。因此未来的研究将致力于引入更多有效特征,提高模型抽取性能,并完成事件要素抽取,完善事件抽取工作。