APP下载

结合注意力机制与双向LSTM的中文事件检测方法

2019-10-21沈兰奔武志昊纪宇泽林友芳万怀宇

中文信息学报 2019年9期
关键词:双向向量神经网络

沈兰奔,武志昊,纪宇泽,林友芳,万怀宇

(北京交通大学 计算机与信息技术学院,北京 100044)

0 引言

事件抽取是信息抽取领域非常重要的研究任务之一。事件抽取的目标是把人们用自然语言表达的事件以结构化的形式展现出来。事件抽取作为文本信息处理领域的关键技术,在信息检索、自动问答、自动摘要、推荐系统等方面均有广泛应用。事件抽取又分为事件检测和事件参数识别两个环节。事件检测是指从文本中发现事件并确定事件的类别及子类别,事件参数识别是指对确定事件类型所包含的元素进行识别。本文重点关注中文事件抽取中的事件检测环节。

事件检测的目标是定位文本中事件的触发词,并将其精确分类为特定的事件类型。触发词是能够清楚地表示事件发生的主要单词,通常是动词或动名词。例如,对于句子例1,在事件检测任务中,“成立”应该被识别为触发词,且被标记为Business事件类型。

例1Intel在 中国成立了 研究中心。

准确的事件检测十分具有挑战性,因为相同的事件类型可能以不同的触发词出现。例如,句子例2和例3中的触发词分别是“诞生”和“出生”,尽管它们是不同的触发词,但它们都应被标记为Life事件类型。另外,相同的触发词可能在不同的上下文中表示不同的事件类型。例如,句子例4和例5中的触发词都是“释放”,但例4中的“释放”是一种攻击行为,应被标记为Conflict事件类型,而在例5中,“释放”与犯罪和法律有关,应被标记为Justice事件类型。

例2毛泽东诞生于1893 年。

例3鲁迅出生于 浙江 绍兴。

例4面对 危险,黄鼠狼释放出 一种 难闻 的 气体。

例5因为 证据 不足,他 被 无罪释放。

传统的事件检测方法通常依赖一系列的NLP工具来提取词汇特征(如词性标注、命名实体识别)和句子特征(如依存关系分析)。尽管这些方法也能获得不错的效果,但由于受制于外部的NLP工具的硬性特征工程和误差传播,通常泛化能力较差。

近几年,神经网络模型已被广泛应用于NLP领域,也包括中文事件检测任务。例如,Zeng等[1]提出了结合卷积神经网络和双向长短期记忆模型的事件检测方法,在中文事件检测方面取得了不错的效果。Feng等[2]提出了基于混合神经网络模型的中文事件检测方法,也取得了较好的效果。与此同时,因注意力机制(Attention mechanism)能捕获全局特征信息,所以在自然语言处理各项任务中也得到了广泛的应用。

受此启发,为了更好地捕捉文本的局部特征和全局特征,本文提出了一种结合注意力机制和双向LSTM的事件检测方法ATT-BiLSTM,该方法能同时捕获句子的特征信息和词的特征信息,而不需要POS标签或NER的帮助。

同时,我们也受到Chen和Ji的工作[3]的启发,引入基于词的BIO机制来解决中文语言特定问题。

本文的主要贡献如下 :

(1) 提出一种结合注意力机制与长短期记忆的中文事件检测模型ATT-BiLSTM;

(2) 引入基于词的BIO机制来解决中文事件检测中的触发词分割问题;

(3) 通过充分的实验验证了本文提出的方法的良好性能。

1 相关工作

1.1 基于模式匹配的方法

基于模式匹配的方法是指在一些模式的指导下对某类事件进行识别,利用模式匹配算法将待抽取的句子和提前制定好的模板进行匹配[4],从而识别事件类型。这类方法在特定领域的准确率较高,但它通常需要依靠拥有专业知识的工程师手工编写大量的事件抽取规则,制定事件模板,因此可移植性较差,不能跨领域使用。应用这类方法的系统有ExDisco[5]、GenPAM[6]等。

总体上,基于模式匹配的方法接近人的思维方式,知识表示直观、自然,便于推理,在单一领域准确率较高。但是这种方法往往依赖具体语言、具体领域及文本格式,规则模板编制过程费时费力且容易产生错误,往往需要富有经验的语言学家才能完成[7]。而且抽取的模式不可能涵盖所有的事件类型,当从一种语料转移到另一种语料时,为保证不损失性能,需要花费很多精力进行模式提取,因此可移植性差,性价比不高。

1.2 基于传统机器学习的方法

与基于模式匹配的方法相比,基于传统机器学习的方法鲁棒性和灵活性较好,且不需要太多的人工干预和领域知识,召回率较高,但容易受到语料库规模和数据稀疏性的影响,准确率通常低于模式匹配的方法。

目前,采用传统机器学习的方法进行事件检测主要包括基于事件触发词驱动的方法和基于事件实例驱动的方法两大类。

1.2.1 基于事件触发词驱动的方法

Ahn[8]提出了一种基于触发词驱动的事件类型识别方法,在ACE语料上取得了不错的效果,其最重要的步骤就是判断句子中的每个词是否为最能描述某个事件发生的触发词,如果是,则将其归为正例,并用一个多元分类器对其进行分类,获得其所属的事件类别。Grishman等[9]、Hardy等[10]以及赵妍妍等[11]提出的方法都属于基于事件触发词驱动的方法。在这类方法中,将每个词作为一个实例来训练识别触发词的机器学习模型,这个过程引入了大量的反例,导致正反例严重不平衡,并且,事件类别的多元分类器在语料规模较小的时候存在一定的数据稀疏问题。

1.2.2 基于事件实例驱动的方法

Naughton等[12]提出的事件检测方法从描述事件的句子出发,将句子看成候选事件的实例,将事件检测任务转化为对句子的聚类问题。这个方法显著区别于前述方法,从另外一个角度来解决事件检测任务,然而算法中只是对句子所描述的事件实例进行划分,并没有进一步判断事件实例的具体类别,以及识别出促使某事件发生的触发词,而识别出这些信息对于事件检测任务而言是至关重要的。

1.3 基于深度神经网络的方法

最近,深度学习技术已被广泛用于构建复杂模型,并被证明在许多NLP任务上非常有效,如机器翻译[13]、关系抽取[14]和情感分析[15]等。

很多学者使用深度学习进行事件检测。近年来,大量基于深度神经网络的事件检测模型不断涌现: 例如,Chen等[16]提出的一个卷积神经网络来捕捉词汇层面的线索,并使用动态多层池化来捕捉句子层次特征的方法(DMCNN)、域适应的卷积神经网络模型[17]、基于Skip-Grams的卷积神经网络模型[18]、两阶段的神经网络模型[19]、基于循环神经网络的联合模型[20]、基于Skip-Windows的卷积神经网络模型[21]、C-BiLSTM事件检测模型[1]、混合神经网络模型(HNN)[2]、桥依赖的循环神经网络(dbRNN)[22]、NPN[23]网络等。

深度神经网络模型具有学习特征表示的能力,在训练中执行端到端的训练,自动地从自然语言文本中提取特征,节省人力物力,提高学习效率。在事件检测中,不需要进行实体识别和实体分类,不需要分析语义关系,这也就避免了很多因人工干预引起的传播错误,使得事件检测任务的性能得到提升。

然而,深度神经网络模型在NLP方面存在着一些挑战: 其理论基础缺乏,需要大量的训练数据来覆盖各种各样的情况,需要强大的硬件资源来应对复杂的计算等。

现有的神经网络模型,很多方法重点在捕捉词的特征信息,对于句子的全局信息和词间信息没有引起足够的重视。本文提出的ATT-BiLSTM模型既能捕获词的特征信息,还能兼顾句子的全局特征信息和捕捉词与词之间的特征信息,同时引入BIO机制,解决中文语言特定问题,协同促进,提高了中文事件检测的性能,获得了非常好的效果。

2 基于注意力机制的双向LSTM中文事件检测模型

事件检测也称为触发词标注,其目标是发现事件的触发词并为其分配预定义的事件类型。

通常情况下,将事件检测划分为触发词识别和触发词分类两个子任务。与之前的工作不同,本文通过一个联合网络同时学习触发词识别和触发词分类,而不是分别进行触发词识别和触发词分类实验,这样可以减少流水线模型带来的误差传播问题。

在介绍本文提出的模型之前,我们首先阐述一下中文触发词标注中存在的语言特定问题[3]。

2.1 中文语言特定问题

不同于英文,中文在词与词之间没有空格作为分隔符,这使得分词成为中文事件检测必不可少的步骤。我们发现,分词会对某些触发词的检测产生影响,如表1中所示的这些触发词,如果我们简单地预测某个单词是否为事件触发词,就无法准确识别它们。

表1 非单词形式的触发词示例

我们将以上示例总结为以下两种类型:

(1) 组合触发词: 虽然许多事件都是以单个单词为触发词,但多个单词也可以组合成为触发词。例如,表1中的例6中的事件,不应由“掉入”或“陷阱”触发,而应由“掉入陷阱”触发。

(2) 词内触发词: 几乎所有的汉字都有其自身的含义,其中一些字可以单独形成触发词。例如,表1中例7中的“敲打”这个词就包含了“敲”和“打”两个触发词。有时一个单词的连续字符也可以形成触发词,又如,例8中的“凶杀案”这个词中的“凶杀”两个字是一个触发词。

在ACE 2005中文语料集[24]中,有2 902个触发词为一个单独的词,同时还有431个触发词属于组合触发词或词内触发词,比率达到了13%[3]。

为了解决中文语言的特定问题,我们将事件检测视为序列标注任务而不是分类任务,因此可以将触发词识别过程视为对句子中每一个词的标注过程。目前使用最广泛的触发词标注方法是BIO标注方案[3],即如果当前词是触发词的开始,则被标记为B类型;如果在触发词内部,则标记为I类型;否则标记为O。通过引入BIO标注,可以降低触发词识别的错误率,从而提高事件检测的性能。如表1中例6所示,如果不采用BIO标注,那么该事件就由“掉入”触发,从而得到错误的事件类型结果。本文以词为单位进行触发词标注,只考虑组合触发词的情况。

2.2 结合注意力机制与双向LSTM的模型

受Zeng等[1]的启发,我们将事件检测当作序列标注问题,即为句子中的每一个词确定相应的标签,而不是分类问题。由此,我们提出了一个结合注意力机制与长短期记忆模型的方法。模型的网络结构如图1所示。

图1 基于注意力机制的双向LSTM中文事件检测模型

首先,我们把分词后的句子通过预训练的词嵌入映射成向量;然后,把向量化的句子输入到第一个BiLSTM层中,提取句子序列的特征信息;再把第一个BiLSTM层计算的结果输入到注意力机制层,获得词与词之间的特征信息;之后把注意力机制层得到的结果输入到第二个BiLSTM层中,综合前两层信息处理的结果,从全局进一步提取句子序列的语义信息;最后通过标签推断层为句子中的每个词标注一个标签,得到最后的序列标注结果。

下面我们对模型的各个组件进行详细描述。

2.2.1 输入文本向量化层

使用神经网络模型来处理数据,首先需要对输入的数据进行向量化处理。文本向量化的方式是分布式表示(distributed representation)。它通过学习将某种语言中的每个词映射成一个固定长度的低维向量,将所有这些向量放在一起就形成一个词向量空间,每一个向量为该空间中的一个点,在这个空间中引入“距离”,就可以根据词向量之间的距离来判断它们之间的语义相似性了。

分布式表示通常又称词嵌入(word embedding),已有的研究表明,加入预先训练的词嵌入向量可以提升自然语言处理任务的性能。

本文使用Word2Vec[25]中的Skip-gram模型来预训练词向量。Skip-gram模型通过最大化平均对数概率来训练单词的嵌入,如式(1)所示。

其中,c是训练窗口的大小,m是未标注文本的词汇,e是词嵌入。

构建文本词向量是将文本信息转换为向量形式,每个句子表示为一个矩阵。假定词向量的维度大小为d,令xi∈Rd为句子中第i个词的d维向量,则长度为n的句子表示如式(2)所示。

其中,⊕是连接算子。由此,就将句子实例转换为矩阵X∈Rn×d。然后,X被送入模型的双向LSTM层。

2.2.2 双向LSTM层

LSTM(Long Short-Term Memory Neural Network)模型[26]是RNN的一种扩展,用于处理时间序列中长期依赖丢失的问题。与经典RNN网络不同,LSTM的循环单元模块具有不同的结构,存在4个以特殊方式相互影响的神经网络层[27]。

LSTM网络的关键在于LSTM单元的细胞状态,它通过门(gates)结构来对细胞状态增加或删除信息,而门结构是一种让信息选择性通过的方式。如图2所示。

图2 LSTM结构图

LSTM单元具有输入门(input gates)、遗忘门(forget gates)和输出门(out-put gates)三种门结构,用以保持和更新细胞状态,分别用it、ft、ot和Ct表示t时刻对应的三种门结构和细胞状态[27],如式(3)~式(5)所示。

本文采用的双向LSTM(Bidirectional Long Short-term Memory)模型结合了双向RNN[28]和LSTM两个模型的优点,目的是解决单向LSTM无法处理后文信息的问题,单向LSTM只能在一个方向上处理数据,而双向LSTM在隐藏层同时有一个正向LSTM和一个反向LSTM,正向LSTM捕获上文的特征信息,而反向LSTM捕获下文的特征信息,然后通过融合捕获的上文特征信息和下文特征信息最终获得全局的上下文信息。

图3展示的是向量化的句子X以序列x1:n沿着时间轴进入双向LSTM的处理过程,同时也是图1中Attention层的输出进入后一个双向LSTM神经网络的处理过程。双向LSTM的输出公式如式(6)所示。

图3 双向LSTM结构图

2.2.3 注意力机制层

注意力机制(attention mechanism)最早出现在计算机视觉领域[29],近几年基于注意力机制的神经网络在自然语言处理各项任务中已经取得了很多重要的进展。因为Attention 层能一步到位捕捉到全局的信息,可以更加全面地获得句子的特征,所以,本文引入注意力机制,其模型如图4所示。

图4 注意力机制的一般框架

注意力机制的定义如式(7)所示。

其中,Q∈Rn×dk,K∈Rm×dk,V∈Rm×dv。如果忽略激活函数softmax的话,那么事实上它就是三个矩阵相乘,最后的结果是一个n×dv的矩阵。我们可以理解为一个Attention层将n×dk的序列Q编码成了一个新的n×dv的序列。

因为输入序列小于维度d,对于每一层的计算时间复杂度来说,选择 self-attention 是比较占优势的,所以本文采用self-attention[30]机制,其定义如式(8)所示。

其中,X为第一个双向LSTM的输出yt,Y为第二个LSTM的输入,即Attention层的输出。

Self-attention不但可以捕获句子的全局特征信息,还可以捕获同一个句子中单词之间的语义特征信息。

2.2.4 事件类型推断层

经过双向LSTM层和注意力机制层的信息提取,又进入一个双向LSTM层,得到整个文本的特征向量Hab。 为了对高维的文本特征进行降维,增强数据的非线性能力,我们在softmax层之前增加一个非线性层,将上一层的输出向量映射为长度为m的向量,其中m为标签类别数[27]。最后经过softmax分类器计算对应类别的分布概率,如式(9)所示。

其中,Wc∈Rm×d为参数矩阵,bc∈Rm为偏置。

根据求得的标签概率分布,可以得到每个词对应的预测标签,如式(10)所示。

2.2.5 模型训练

设T为所有训练样例个数,(xi,yi)是第i个样本,θ表示模型的参数。则模型的目标损失函数如式(11)所示。

训练过程中用Dropout方法来控制模型随机地让网络中的某些隐藏层节点不工作,防止模型过拟合[27]。最后使用Nadam优化算法对目标函数进行优化,其计算过程中采用误差反向传播的方式逐层求出目标函数对神经网络各层权值的偏导数,并更新全部权值和偏置值。

3 实验

我们使用Tensorflow来实现神经网络,在实验过程中,我们会持续检查模型在验证集上的性能表现,并选择F-score最高的参数进行最终的评估。

我们使用的词向量是对83.6万篇中文新闻文档进行词嵌入表示学习。所有词向量在训练过程中都会进行调整。词向量的维度设置为100。

为了验证本文提出的ATT-BiLSTM模型的性能,我们采用ACE 2005[24]的中文数据集,并在该数据集上将ATT-BiLSTM与其他现有的事件检测方法进行对比,验证了ATT-BiLSTM模型的性能。

3.1 数据集

ACE 2005中对事件进行了一些必要的标注,主要有:

(1) Event Mention(事件提及): 一个事件在一篇文章中可能多次出现,每一次出现称为一次事件提及。

(2) Type/Subtype(事件的类别/子类别): 这里采用ACE 2005定义的事件类别/子类别,共8种事件类别,每种事件类别中又包含一些子类别,共33个子类别,如表2所示。

表 2 ACE 2005定义的事件类别和子类别

(3) Trigger(事件触发词): 直接引发事件发生的词,绝大部分情况下是动词或动名词。

(4) Argument/Role(事件元素/角色): 事件的元素及其对应的角色。

(5) Extent(事件的界限): 以触发词和事件元素的起始位置的最小值和结束位置的最大值为界限。

(6) Modality,Polarity,Genericity,Tense(形态,极性,泛型,时态): 事件的4个属性,分别表示是确定型/非确定型事件,是主动型/被动型事件,具体事件/普通事件,事件的时态。

(7) Ldc_scope(事件位置): 事件所在的句子。

本文使用的ACE 2005中文数据集共包含633篇中文文档,分别选取自广播新闻(298篇)、新闻专线(238篇)和博客(97篇)。为了与前人的工作进行比较,我们沿用Chen和Ji的实验[3]设置,我们随机选取509篇文档作为训练集, 60篇作为验证集,保留64篇作为测试集。

3.2 基准方法

我们将本文提出的ATT-BiLSTM模型与5种现有的中文事件检测方法进行了对比,其中前两种是基于传统方法的事件检测模型,后3种是基于神经网络的事件检测模型,是当前在中文事件检测方面最好的模型,分别如下:

1) Char-MEMM[3]首次使用基于字符的方式来处理特定语言的问题,并探索了在触发词标注中应用的有效的词汇、句法和语义特征。用BIO标记方案标记每个字符来训练最大熵马尔可夫模型进行事件检测。

2) Rich-L是Chen等[31]提出的一种联合事件检测模型,来解决流水线模型中的错误传播问题,还提供了处理中文特定语言问题的功能,以改善中文事件检测,是基于特征的最先进的中文事件检测方法。

3) Word-based C-BiLSTM+Errata table是Zeng等[1]提出的一种分别使用字符级和单词级粒度特征并结合双向LSTM和卷积神经网络的方法,可以捕获句子级别信息和词汇信息,并使用触发词勘误表进行矫正。

4) Hybrid Neural Network(HNN)是Feng等[2]提出的一种混合神经网络模型,结合了双向LSTM和卷积神经网络,用来捕获特定上下文中的序列和块信息,并使用它们来训练多种语言的事件检测器。

5) Nugget Proposal Networks(NPN)是Lin等[23]提出的利用DMCNN[16]进行特征提取并同时嵌入词和字符向量的事件检测方法。

3.3 实验结果及分析

我们使用事件检测任务的精确度(P)、召回率(R)和F值(F-score)来评估模型的性能。这些指标是根据任务的正确性标准来计算的:

1) 如果预测的触发词与参考触发词完全匹配,则正确识别触发词;

2) 如果预测的触发词类型与参考触发词类型完全匹配,则正确分类;

P、R、F-score定义如式(12)~式(13)所示。

表3列出了ATT-BiLSTM模型和其他基准方法的实验结果。

表3 不同模型的中文事件检测效果比较

续表

从表3可以看出,我们的ATT-BiLSTM模型在召回率和F值方面全都优于基于传统方法的Char-MEMM和Rich-L。Char-MEMM利用词语的上下文来提取词汇特征,并减少虚假论证;Rich-L使用联合模型,结合句子特征和语义特征来进行事件检测。这两种方法高度依赖于复杂的语言特征工程和自然语言处理工具。我们的ATT-BiLSTM模型是基于神经网络的方法,不需要人工设计复杂的特征,并引入BIO机制处理中文语言特定问题,可以有效避免从其他NLP工具传播的错误,如依赖关系解析和POS标记等。

相比较于Word-based C-BiLSTM + Errata table和HNN,我们的ATT-BiLSTM模型在召回率和F1值方面全都优于这两种基于神经网络的方法。Word-based C-BiLSTM + Errata table分别使用字符级和单词级粒度对输入进行嵌入,结合 BiLSTM 和卷积神经网络,处理中文语言特定问题,辅助触发词勘误表进行中文事件检测。但是由于基于字符的方法需要维护较长的序列,所以整体上基于词的嵌入方法性能更好。HNN模型在整体框架上和Word-based C-BiLSTM + Errata table相似,都是将BiLSTM和卷积神经网络的输出向量连接起来,但HNN模型的卷积神经网络是在整个句子上用不同大小的窗口学习。HNN关注的是多语言的通用模型,所以没有过多考虑中文语言特定问题。我们的ATT-BiLSTM模型在利用BiLSTM提取句子序列特征信息的同时,引入注意力机制,更好地获取词的特征信息和词与词之间的特征信息,全面考虑每个词对于句子的重要性。

NPN模型将触发词识别和分类分成两个模块,结合DMCNN[16]和嵌入向量(词与字符)进行事件检测,不可避免地存在传播误差,但因其维持了两种嵌入向量,在触发词匹配方面有很好的效果。我们的ATT-BiLSTM在准确率和F值方面优于NPN,原因是我们用引入BIO机制去解决触发词匹配问题,同时利用注意力机制提取词与词之间的信息,综合提高了事件检测的性能。

总体上,我们的ATT-BiLSTM模型在召回率和F值方面具有很强的竞争力,而且不需要繁杂的特征工程,节省了大量的人力;两层的BiLSTM使得句子特征得到了更好的捕捉,注意力机制能够更好地获取词的特征信息和句子的语义信息。所以,ATT-BiLSTM模型在中文事件检测方面具有良好的性能。

4 总结与展望

本文提出了一种新的结合注意力机制的双向LSTM的中文事件检测模型,将事件检测任务看作是一种序列标注问题,而不是分类问题。引入BIO机制,解决中文语言的特定问题,利用注意力机制和双向LSTM为抽取特征,从原始文本中捕获词汇特征和句子的序列信息。实验结果表明,与已有的事件检测方法相比,我们的方法通过结合注意力机制与双向LSTM模型,自动地获得词汇特征和句子特征,不依赖于任何人工设计的特征和外部资源,从而在ACE 2005的中文数据集上获得非常好的效果。

后续的工作中,我们将在之前的工作基础上完成事件参数识别的工作,完善事件抽取的研究。同时,还要考虑如何更好地摆脱领域的限制,使模型可以更好地应用到其他具体的领域。

猜你喜欢

双向向量神经网络
双向度的成长与自我实现
基于递归模糊神经网络的风电平滑控制策略
向量的分解
降低寄递成本需双向发力
用“双向宫排除法”解四宫数独
聚焦“向量与三角”创新题
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
完善刑事证据双向开示制度的思考
向量垂直在解析几何中的应用