民航突发事件领域本体关系提取方法的研究*
2020-02-20李浩飞
王 红,李 晗,李浩飞
中国民航大学 计算机科学与技术学院,天津 300300
1 引言
信息抽取[1-2]的主要目的是将非结构化或半结构化描述的自然语言文本转化成结构化数据,关系抽取是其子任务,主要负责从文本中抽取实体之间的语义关系,在问答系统、知识图谱构建等许多自然语言处理任务中起着重要作用。近年来,研究人员提出了各种方法来实现面向非结构化文本的关系抽取,其中深度学习的方法相较于传统方法可以获取更多有效的语义信息,准确率和召回率得到较大提升,因此广泛应用于各个领域,包括民航突发事件领域本体的关系抽取。
本文提出将注意力机制与双向门控循环单元(bidirectional gated recurrent unit,BiGRU)相结合的模型(用Att-BiGRU表示),通过前向和后向网络抽取词语序列的上下文语义信息,同时在词语层面和句子层面上引入注意力机制,为具有语义关系的词语和句子分配更大的权重,旨在提取更有价值的词语和句子特征,有效减少无关数据的影响。将该模型应用在民航突发事件领域本体的关系提取中,相较于之前的其他方法具有更好的提取效果,验证了该模型的有效性。
2 相关工作
传统的关系抽取方法[3-6]主要有基于模式匹配的方法和基于机器学习的方法,这些方法不能充分提取潜在的文本特征,而深度学习方法则可以充分利用文本语义信息,取得更好的提取效果,因此近几年成为了研究热点。
Zeng等人[7]利用卷积神经网络(convolutional neural network,CNN)方法进行关系抽取,效果优于传统方法,然而该方法无法对时间序列数据进行建模。Socher等提出循环神经网络(recurrent neural network,RNN)[8-9]可以对序列数据进行精确建模,在自然语言处理的多个领域,如序列标注、机器翻译等任务上均取得了显著效果。Zhang等人[10]采用双向RNN(bidirectional RNN)的方法从原始数据中学习关系模式,尽管该方法可以考虑到词语序列的上下文语义信息,但在具体的迭代过程中会出现梯度消失问题,所能利用的信息范围有限。为解决RNN的长距离依赖问题,Hochreiter和Schmidhuber[11]对RNN模型的隐藏单元进行了改进,提出了长短时记忆单元(long short term memory network,LSTM),它通过在隐藏层增加三个门控记忆单元来存储历史信息,使得LSTM处理长序列数据的能力大幅提升,对长句子的处理取得了很好的效果。由于LSTM模型的特点和优势,出现了很多LSTM的改进模型,如双向LSTM[12](bidirectional LSTM)等。针对训练时大量标注数据的问题,可采用远程监督的方法进行关系抽取,Banerjee等人[13]提出多编码方式的双向LSTM网络,可减少噪声数据的影响,在公共数据集上取得了较好效果。
在自然语言处理领域,国内外学者对注意力机制[14]做了大量研究。其中,Bahdanau等人[15]将注意力机制应用在机器翻译任务上。Lin等人[16]提出了基于句子级注意力机制的神经网络,该模型根据不同示例在表达语义关系中的贡献大小分配不同权重,充分利用句子信息。由Google机器翻译团队提出的自注意力机制[17-18],是对注意力机制的一种改进,减少了对外部信息的依赖,能够更好地学习数据或特征的内部相关性。
在民航领域,基于领域本体的突发事件应急管理已经取得了初步的成果[19-23],民航突发事件领域本体的关系提取方法主要有基于NNV(noun-noun-verb)关联规则的方法[20]、基于改进的层次聚类H_cluster的方法[21]、基于LDA(latent Dirichlet allocation)的方法[22]和基于LSTM的方法[23]。其中,基于NNV的方法将关联规则与自然语言处理方法相结合,完善了领域词典的构建方法,增添同义词表,丰富领域术语的过滤过程,利用关联规则法提取事务集,计算概念和非分类关系的支持度和置信度,解决了领域本体非分类关系获取中无法自动获取关系名称的问题,相较于模式匹配方法提取结果更好。但由于中文概念的多义性对非分类关系种类的影响等原因,该方法的准确率和召回率都很低;基于改进的层次聚类H_cluster的方法在概念获取的基础上,根据领域概念的上下文构建概念向量空间,计算概念相似度,解决了聚类结果的粒度过细问题,使其更加符合本体层次结构的需要,实现了概念间分类关系的提取,但该方法的自动化程度有限,且准确率和召回率均提升较小;基于LDA的方法以航空安全事件文本信息作为数据源,采用NLPIR(natural language processing and information retrieval)自适应分词与过滤方法获取候选术语集,设计了领域本体的LDA主题模型,通过吉布斯采样进行LDA模型训练与主题推断,实现了领域本体核心概念与关系的提取,可以有效解决大规模领域本体的自动更新问题。由于领域本体所有概念及其语义关系的复杂性,基于LDA概率分布的规则构建与本体实例自动获取的方法应进一步深入研究;基于LSTM的方法将深度学习模型LSTM应用于领域本体关系提取,首先将文本信息向量化,提取文本局部特征,然后将文本局部特征导入LSTM模型中,获取文本整体特征,再将局部特征和整体特征进行特征融合,通过分类器进行分类。相较于传统方法,该方法能更加充分利用句子中的语义信息,更准确地表达深层语义,因此关系提取的F值有了较大提升,但还可以进一步优化。此外,当前互联网上包含越来越多的民航突发事件信息,涉及不同信息源(微博、微信、航空安全自愿报告系统等)对事件的不同评论,结构和内容越来越复杂,且民航突发事件领域本体的,因此迫切需要更加有效的关系抽取方法来支撑领域本体的自动构建。
由于LSTM实现了遗忘门、输入门和输出门三个门的计算,结构复杂,Chung等人提出LSTM的一个变体——门控循环单元(gated recurrent unit,GRU)[24],它相较于LSTM结构更加简单,减少了训练参数和计算的复杂性,能提升关系提取的效果。本文将注意力机制与双向GRU相结合,应用在民航突发事件领域本体的关系提取中。
3 基于注意力机制与BiGRU的关系抽取模型
为了更好地利用句子的语义信息,对词语和句子的特征分别进行抽取,本文提出了Att-BiGRU模型,该模型总共包含5部分:输入层、双向GRU层、词语级注意力层、句子级注意力层、输出层,其结构如图1所示。
(1)输入层(input layer):将词语向量与实体对之间的位置向量相拼接得到的向量序列输入网络模型。
(2)双向GRU层(BiGRU layer):采用BiGRU抽取词语序列的上下文语义信息。
(3)词语级注意力层(word-attention layer):计算句子中词语与关系之间的相关程度,建立词语层面权重。
(4)句子级注意力层(sentence-attention layer):根据句子与分类关系相关程度的大小为句子分配不同权重,建立句子层面权重,得到最终的文本向量表示。
(5)输出层(output layer):根据文本向量表示,利用分类函数进行分类。
3.1 输入层
将输入句子中的每个词语映射为向量,该向量由文本词向量和实体位置向量两部分组成。
3.1.1 词向量
一个长度为m的句子s={w1,w2,…,wm},将每个词语wi由词向量矩阵映射为一个实值向量ei:
3.1.2 位置向量
Fig.1 Overall diagram of Att-BiGRU model图1 Att-BiGRU模型整体框图
在关系抽取任务中,靠近实体的单词通常更能突显出句子中两个实体之间的关系,因此为了更加充分地利用句子语义信息,将句子中每个词到两个实体相对距离的位置向量拼接到该单词的词向量表示中。例如,在句子“Bill-Gates is the founder of Microsoft.”中,founder到实体Bill-Gates和Microsoft的相对距离分别为3和2。
若在句子向量化中,词向量维度为dw,位置向量维度为dp,则将每个词的词向量和位置向量相拼接得到向量序列x={x1,x2,…,xm},其中xi∈ℝd(d=dw+dp×2)。
3.2 双向GRU层
GRU的工作原理如图2所示,它实现了两个门的计算,分别为更新门zt和重置门rt。
Fig.2 Work principle of GRU图2 GRU工作原理
具体计算过程如下:
(1)前向推算
其中,xt为t时刻的向量表示;更新门zt,fwd用于控制前一时刻的状态信息传递到当前状态中的程度,更新门的值越大说明前一时刻隐含状态对当前状态的影响越大;重置门rt,fwd用于控制忽略前一时刻状态信息的程度,如果重置门近似为0,上一个隐含状态将被丢弃;候选隐含状态使用重置门rt,fwd来控制包含过去时刻信息的上一个隐含状态的流入;隐含状态ht,fwd使用更新门zt,fwd来对上一个隐含状态ht-1,fwd和候选隐含状态进行更新;Wxz,fwd、Whz,fwd、Wxr,fwd、Whr,fwd、Wxh,fwd、Whh,fwd表示权值矩阵,bz,fwd、br,fwd、bh,fwd表示偏置量;⊙为向量点乘操作。
(2)后向推算
正向输出向量和反向输出向量分别为:
本文采用BiGRU来得到词语序列的上下文语义信息,即词语的向量表示ht由正向输出向量和反向输出向量相拼接得到:
3.3 词语级注意力层
注意力机制广泛应用在自然语言处理领域,它通过计算句子中每个词语的注意力概率分布,突出关键性输入的影响。由BiGRU输出的词语向量构成的矩阵为H=[h1,h2,…,hm],先通过激活函数tanh将词语表示各维压至(-1,1),则句子向量表示r为词语向量的加权:
其中,H∈ℝ2u×m,u为BiGRU隐藏层节点数,m是句子的长度,w是训练的参数向量,α为词语权重,w、α、r的维度分别为2u、m、2u。
3.4 句子级注意力层
将文本看成是由句子组成的序列,假设文本包含的句子数目为n,即T={s1,s2,…,sn}。为了得到整个文本的语义特征,将上文得到的句子向量表示再次输入到BiGRU网络,在第i时刻的状态由当前时刻的输入ri和上一时刻的隐含状态共同决定,通过BiGRU网络得到序列之间的语义关联信息,实现文本特征的提取,具体描述为:
将BiGRU的正向输出向量和反向输出向量相拼接可得:
在一个文本中,不同的句子对于文本分类的重要程度不同,为了充分利用每个句子的语义信息,本文加入了句子级的注意力层,对每个句子给予不同权重。
首先,通过激活函数tanh将句子si的向量表示的各个维度值压至(-1,1):
然后,将文本转化为向量表示的形式t,计算公式如下:
其中,βi是每个句子向量的权重,t为的加权求和,为对于分类更重要的句子赋予较高权重,采用softmax函数给出每个句子si所占的权重,令βi为:
其中,u是参数向量,随机初始化,在训练过程中进行学习。由此可得文本T的向量形式t:
3.5 输出层
输出层用来输出具体的类别,在得到向量表示t后,定义线性函数来计算各个类的概率。
本文使用softmax分类器,softmax是logistic回归模型在多分类问题上的推广,其假设函数形式如下:
其中,θ为模型参数,t(i)为第i个输入实例的向量表示,y(i)为第i个实例所属的类别,k为类别数。
采用交叉熵函数作为损失函数,定义如下:
其中,m为语料集的数目,1{∙}是示性函数,其取值规则为:1{值为真的表达式}=1,1{值为假的表达式}=0。
在训练阶段,采用mini-batch梯度下降算法,每次迭代仅使用一小批训练数据,选取Adam[25]的优化方法更新参数来最小化损失函数,利用L2正则化和Dropout[26]方法防止过拟合。
4 实验与分析
本章将上述方法应用到民航突发事件领域本体的关系提取中,实验平台的配置采用TensorFlow深度学习框架,使用Python语言编程实现,运行环境为PyCharm软件、Win10操作系统、内存8 GB、Intel i5-6200处理器。具体关系提取过程如图3所示。
Fig.3 Relation extraction process of domain ontology图3 领域本体关系提取过程
4.1 数据预处理
实验数据来源于中国民用航空安全信息系统[27]发布的世界航空安全事故调查跟踪报告,共收集了民航突发事件文本信息869个。每一条文本记录一个民航突发事件,数据预处理过程如下:
(1)将突发事件的文本信息整理为标题、时间、航班号、事件描述的半结构化形式,将事件发生时间和航班号作为事件的唯一标识;
(2)实体标注,对突发事件信息中表征事件特征的实体进行标注(如e1、e2等);
(3)关系标注,将属性关系标注为attribute-of,事件原因标注为reason-of,事件结果标注为result-of,标注后的结果如表1所示;
(4)以7∶3的比例将该标注数据分为训练集和测试集,以评估提取方法的有效性。
测试数据集示例如表1所示。
Table 1 Example of test dataset表1 测试数据集示例
4.2 关系提取过程
领域本体关系的提取主要涉及事件属性、事件原因和事件结果的关系提取,并对领域本体的实例数据进行扩充。实现过程如下:
步骤1进行数据预处理,按照3.1节所述的方法进行实体及实体间关系的标注,将标注好的文本进行分句,得到句子集合。
步骤2采用训练好的词向量对词语进行向量化处理,将每个词的词向量和位置向量相拼接可得到向量序列。
步骤3将步骤2生成的词向量序列作为BiGRU的输入,并引入词语级注意力机制对词向量进行加权求和得到句子的向量表示。
步骤4将文本看成是由句子组成的序列,引入句子级注意力机制对句子向量进行加权求和,得到文本的整体特征。
步骤5将步骤4生成的文本整体特征导入softmax分类器得出被分到每一个类别的概率。
步骤6对模型进行训练,并对模型的隐藏层大小、词向量、位置向量的维度以及正则项等参数进行调优。
步骤7将测试数据集在上述设定好参数的模型上进行测试,抽取出事件的属性、原因、结果三类关系并进行评估。
步骤8将经过步骤7抽取出的事件属性、原因、结果关系添加到民航突发事件领域本体的实例数据中。图4为更新后的局部效果图,实线椭圆代表事件的唯一标识,虚线椭圆代表抽取出的属性和原因、结果关系,虚线箭头标注为attribute-of的代表事件属性关系,标注为reason-of的代表原因,标注为result-of的代表结果。
4.3 参数设置与实验评价指标
通过反向传播算法训练模型,采用mini-batch梯度下降算法来最小化损失函数,利用L2正则化方法和Dropout方法消除模型过拟合的影响,参数设置如表2所示。
采用正确率(precision)、召回率(recall)和F值三个标准作为性能评价指标,计算公式如下:
其中,out_right表示正确预测的关系个数,out表示所有预测的关系个数,all表示测试集中所有的关系个数。在准确率相同的情况下,召回率越高越好;在召回率相同的情况下,准确率越高越好。
4.4 实验效果分析
在民航突发事件领域数据集上进行实验,对事件属性、事件原因、事件结果这三类关系进行抽取,具体结果如表3所示。
由实验结果可以分析出,事件属性比事件原因和事件结果抽取的准确率和召回率更高,原因是属性关系包括航班号、机型、航空公司、始发机场、降落机场等多种属性关系,而事件原因和结果关系的标注数量相对于属性关系较少,标注数量的不均衡使得关系提取的结果存在差异,因而属性关系的提取结果更好。
Fig.4 Relation extraction result of civil aviation emergency domain ontology图4 民航突发事件领域本体关系提取结果
Table 3 Relation extraction result of domain ontology表3 领域本体关系提取结果 %
为验证本文方法的有效性,将本文方法(Att-BiGRU)与基于NNV关联规则的方法(NNV)、基于层次聚类的关系提取方法(H_cluster)、基于主题模型的关系提取方法(LDA)和基于双向LSTM的关系提取方法(BiLSTM)进行对比,对事件属性、原因和结果的提取结果综合评估,实验结果如表4所示。
实验结果表明,深度学习方法BiLSTM和Att-BiGRU均比传统方法NNV、H_cluster和LDA表现出更好的提取结果,因为传统方法未能充分提取文本的深层语义,导致分类结果的准确率低。而深度学习的方法相较于传统方法可以更充分利用句子中的信息提取语义。其中,BiLSTM取得了较高的准确率和召回率,说明LSTM通过构建专门的记忆单元可以更好地存储历史信息,同时使用正反两方向LSTM充分提取句子序列的信息;Att-BiGRU方法比BiLSTM方法效果更好,因为Att-BiGRU方法在词语层面和句子层面上分别使用了注意力机制,为具有语义关系的词语和句子分配更大的权重,使得提取的特征更全面,说明在训练过程中引入注意力机制能有效减少无关数据的影响,从而可以提高分类的准确性。
Table 4 Comparison of extraction results of different methods表4 不同方法提取结果对比 %
将本文提出的模型与其他两个典型模型进行对比实验,对比模型情况介绍如下:
(1)BiGRU,该模型将文本向量化后,使用双向GRU进行语义信息的提取,并在双向GRU层后面加入平均池化层,将得到的最终文本特征向量送进分类器进行分类。
(2)Att-BiLSTM,该模型将Att-BiGRU模型中的BiGRU层换成BiLSTM层,其他实验设置均相同。
实验结果如表5所示,可以看出,Att-BiGRU和Att-BiLSTM模型的准确率优于BiGRU,区别在于前两者加入了注意力机制,而BiGRU在双向GRU层后加入平均池化层,这说明了利用注意力机制可以分配不同的权重参数来突出文本中重要的词语和句子,在突出重要信息方面相较于平均池化更有效;Att-BiGRU模型在评价指标方面优于Att-BiLSTM,这两个模型结构基本相同,均存在注意力机制,不同之处在于后者将Att-BiGRU模型中的BiGRU层换成了BiLSTM层,可见BiGRU在提取深层次语义信息方面比BiLSTM表现更优。
Table 5 Extraction results of different models表5 不同模型提取结果 %
综上,基于注意力机制的BiGRU模型的关系提取方法可以为民航突发事件领域本体关系的自动获取提供新的方法支持。
5 结束语
本文针对民航突发事件领域本体关系抽取准确率低的问题,提出了一种结合注意力机制与BiGRU的关系抽取模型。利用BiGRU充分提取词语序列的语义信息,同时通过在词语层面和句子层面分别引入注意力机制来提取更多的隐含特征,实验表明该方法能够有效地提升领域本体的关系抽取效果。但是,该方法在自动识别实体信息方面还存在不足,需要进行实体的手工标注,针对实体与关系的联合抽取有待进一步研究。