王 红,祝 寒,林海舟
中国民航大学 计算机科学与技术学院,天津300300
航空安全事故因果关系的分析是预防和避免航空安全事故的有效手段,随着民航业的发展,航空不安全事故的原因呈现多元性和复杂化,事故因果关系分析面临新的难题。目前对航空安全事故因果关系分析的研究主要采用基于数据统计的方法分析事故原因的分布情况[1-2],或采用贝叶斯网络[3]、复杂网络[4]分析已知原因对事故结果的影响概率分布,这些方法均不能有效挖掘航空安全事故发生与发展的完整过程,故研究航空安全事故因果关系的抽取,对于航空安全事故的情景重现与深入分析具有重要的意义。
因果关系抽取是获取事故发展过程的必要工作。根据文本中是否含有因果提示词,因果关系一般可划分为显式因果关系和隐式因果关系,抽取方法包括基于模式匹配的方法和基于机器学习的方法两大类[5]:(1)显式因果关系抽取一般采用模式匹配法[6-9],该方法抽取的准确率较高、可解释性强、过程透明,但不适用于隐式因果关系的抽取;(2)因果关系是关系的一种,关系抽取中常用的机器学习方法可用于隐式因果关系的抽取。常见的有卷积神经网络[10-11](Convolutional Neural Network,CNN)、循环神经网络[12](Recurrent Neural Network,RNN)、长短期记忆网络[13-14](Long Short-Term Memory networks,LSTM)等,但上述模型大都需要借助外部知识库或自然语言处理工具来选择高质量的特征,关系抽取效果受所选特征优劣性的影响。Zhou 等[15]采用加入注意力机制的双向LSTM 模型来抽取名词性实体间的关系,仅将带有实体位置指示的句子集作为输入(Att_BiLSTM+PI),不依赖外部知识库或自然语言处理工具的特征,就能捕获句子的语义信息。由google机器翻译团队首次提出的自注意力机制[16],是对注意力机制的一种改进[17],减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。因此,本文充分利用自注意力机制能够更全面地捕获句子语义信息这一优势,对Zhou 等提出的(Att_BiLSTM+PI)方法进行了改进(self-Att_BiLSTM+PI),并将改进后的方法应用于航空安全事故隐式因果关系的抽取,旨在获得更好的因果关系抽取效果。
本文将模式匹配方法应用于航空安全事故显式因果关系的抽取,将自注意力机制与双向LSTM方法相结合,且仅将带有事件触发词位置标识的句子集作为输入(用self-Att_BiLSTM+PI表示),应用于航空安全事故隐式因果关系的抽取,研究思路如图1所示。
(1)文本预处理。以从世界航空安全事故调查报告(http://safety.caac.gov.cn/index/initpage.act)中所提取的955 篇航空安全事故文本为基础,通过去噪、分句等处理,生成有逻辑语义的句子,分词并判断句子中是否含因果提示词,若有则进行显式因果关系抽取,否则进行隐式因果关系抽取。
(2)显式因果关系抽取。根据航空安全事故调查报告的文本特点归纳句法模式、构造抽取模板,并设计抽取规则,抽取原因子句和结果子句,采用依存句法分析得到子句中包含的事件元组,从而获得显式因果关系事件元组对。
(3)隐式因果关系抽取。采用词性过滤和依存句法分析相结合的方法抽取每个句子中包含的事件,并两两组对,采用self-Att_BiLSTM+PI方法对事件元组对的关系进行分类,获得隐式因果关系事件元组对。
(4)因果关系图的生成。将所有事件元组映射为航空安全领域本体中的表示方式。对于每个事故,以事故文本标题中的事件为源节点,遍历因果关系事件对集合查找与源节点相关的事件,生成因果关系图。
图1 航空安全事故因果关系抽取研究框架
显式因果关系是指在句子中含有因果提示词的因果关系,因果提示词在句子中的位置主要分为居端式、居中式和配套式。本文在分析了数据集文本特征的基础上,归纳了适用于本领域因果关系抽取的5类因果提示词,每类提示词对应的因果句法模式如表1 所示,其中pi表示第i 种句法模式。
为更准确地识别和抽取出句子中的原因和结果子句,设计了对应的5种抽取匹配规则:
表1 因果句法模式及因果提示词对应表
(1)规则1
if w1∈cue1 and wi∈mark
then si∈p1
causep1={w2,w3,…,wi} and
effectp1={wi+1,wi+2,…,wn}
(2)规则2
if wi∈cue2 and w1∉cue4
then si∈p2
causep2={ }w1,w2,…,wi-1and
effectp2={ }wi+1,wi+2,…,wn
(3)规则3
if wi∈cue3 and w1∉cue6
then si∈p3
effectp3={ }w1,w2,…,wi-1and
causep3={ }wi+1,wi+2,…,wn
(4)规则4
if w1∈cue4 and wi∈cue5
then si∈p4
causep4={ }w2,w3,…,wn-1and
effectp4={ }wi+1,wi+2,…,wn
(5)规则5
if w1∈cue6 and wi∈cue7
then si∈p5
effectp5={w2,w3,…,wi-1} and
causep5={wi+1,wi+2,…,wn}
其中,si表示文本中的第i 个句子,{ }wm,…,wn表示句子中从第m 个词到第n 个词之间的文本内容,mark 表示句子中的标点符号逗号,cause 表示原因,effect 表示结果。
自注意力机制是注意力机制的改进,减少对外部信息的依赖,捕捉数据或特征的内部相关性,通过关注同一序列内部所有位置的词来计算序列中某个位置的词对句子语义的影响程度,能够更好地学习句子的内部知识。位置标识是指事件元组中触发词在句中的位置,该特征是句子内部的一种特征。基于self-Att_BiLstm+PI的隐式因果关系抽取模型包括以下几个层:
(1)Embedding层。一个包含n个词的句子序列s,经训练后得到该句子序列的向量化表示其中第i 个词对应的词向量表示是句子词向量,是位置标识,而=是由该句中其他词与触发词的相对位置构成的向量,vi是一个由0 和1 组成的向量,值为1 是触发词,为0则是其他词。
(2)双向LSTM 层。LSTM 模型中包含许多神经网络模块,这些模块通过参数共享达到传递信息的目的。双向LSTM 包含一个正向的■ →■ ■■ ■■■■■■ ■■和一个反向的,能够更全面地捕获上下文信息。
(3)自注意力层。为将变长的句子编码成固定长度的向量或者矩阵,使用H 中n 个LSTM 隐向量的线性组合来表示。引入self-attention 机制,让不同的词有不同的重要性。
其中,H ∈Rn×2u是所有隐藏状态h 的集合,u 是单向LSTM隐藏单元数量,w1是权重矩阵,w2是参数矩阵,由此得到矩阵级别的句子表示M 。
(4)输出层。使用softmax 分类器得到句子s 中因果关系事件对的关系分类结果标签
根据中国民用航空局《民用航空器事故和飞行事故征候调查规定(CCAR395-R1)》中的规定,航空器事故是航空器飞行事故和航空器地面事故的总称。图2 给出了领域本体中[18-19]的因果关系的主要构成,其中类别的下标格式为“X,XX,XXX,…”,即第1 位表示一级类别,2~3位表示二级类别,4~6位表示三级类别。
航空安全事故显式因果关系的抽取,主要包括因果关系子句的抽取和子句中事件元组的抽取,抽取过程如图3所示。
采用3.1节所述模式匹配方法抽取到句子中的原因子句和结果子句,此时的原因子句和结果子句仍是句子的形态,为便于将抽取结果构建成因果关系图,把原因子句和结果子句中描述的事件以结构化的方式表示出来。事件触发词是文本中最能清晰表示事情发生的词,多数情况下事件触发词为动词。这里由于因果边界已经明确,故采用词性过滤法抽取事件触发词。事件的主语和宾语也是事件不可或缺的元素,本文采用依存句法分析抽取触发词的主语和宾语。为了表达完整语义,除了主语、触发词和宾语以外,保留了与其相关的一些重要成分:如触发词的否定词、补语和状语成分,主语、宾语的名词组合、形容词、限定词和关联修饰成分。
图2 航空安全领域本体因果关系主要概念的构成
图3 基于模式匹配的显式因果关系抽取过程
抽取步骤为:(1)词性过滤,将距离因果提示词位置最近且词性为动词的词作为事件触发词;(2)依存句法分析,获取触发词对应的主语和宾语;(3)在依存句法分析结果中,分别筛选触发词、主语、宾语的相关成分;(4)确定事件元组表示形式{主语及其相关成分,触发词及其相关成分,宾语及其相关成分}。
航空安全事故显式因果关系抽取效果如表2所示,其中匹配句子数指与5 种模式p1、p2、p3、p4、p5分别相匹配的句子数目,有效匹配数是指该模式匹配得到的句子中能够表征因果关系的句子个数,有效事件对数则是指有效匹配的句子经过事件抽取后能够正确表征因果关系的事件对的数目。准确率=有效事件对数/匹配句子数。
表2 显式因果关系抽取效果
实验效果表明,本文采用的模式匹配法在航空安全事故显式因果关系抽取中的平均准确率为87.72%,取得了较好的效果。
隐式因果关系抽取与显式因果关系抽取的不同之处在于隐式因果句中无法确定原因部分和结果部分的边界,故隐式因果关系抽取首先要抽取出文本中包含的事件元组,然后再确定事件元组两两之间是否存在因果关系。隐式因果关系抽取过程如图4所示。
隐式因果关系抽取中的事件元组抽取方法与显式因果关系抽取中的事件元组抽取方法基本一致,仅是在触发词的选择是通过词性过滤,将词性为动词的保留,作为候选触发词。
图4 基于self-Att_BiLstm+PI的隐式因果关系抽取过程
定义句子s 中包含n 个事件s={E1,E2,…,En} ,将句子包含的所有事件进行两两组对,如其 中1 ≤i ≠j ≤n ,lable ∈{ }0,1,2 指因果关系类型,lable=1 表示Ei是Ej的原因,lable=2 表示Ei是Ej的结果,lable=0 表示Ei与Ej没有因果关系。则每个句子共能形成个事件对,其中n 表示句子中包含的事件个数。
将self-Att_BiLstm+PI 方法分别在公共数据集SemEval-2010 Task 8和航空安全事故数据集上进行了因果关系抽取的实验,实验效果如表3所示。实验采用准确率P(Precision)、召回率R(Recall)和F 值(F-score)作为评价标准,其中P 是判断正确的关系个数与输出的所有关系个数之比,R 是判断正确的关系个数与测试样本中该关系的个数之比,F 值是实验效果的综合评价指标,计算公式如下:
表3 隐式因果关系抽取效果%
由表3 可以看出,在公共数据集SemEval-2010 Task 8上,加入自注意力机制的方法(self-Att_BiLSTM)比Att_BiLSTM 方法和BiLSTM 方法的F 值分别高出1.55%和4.61%,同样加入位置标识时,加入自注意力的方法(self-Att_BiLSTM+PI)比Att_BiLSTM+PI 方法F值提高近6%,表明加入自注意力机制的方法对抽取效果有明显提升。在航空安全事故数据集上,未加入位置标识的self-Att_BiLSTM与加入位置标识的Att_BiLSTM+PI 抽取效果已相近,而加入位置标识时,自注意力机制的方法比注意力机制的方法F 值高出近10%,证明该方法在航空安全事故因果关系抽取上是有效且有意义的。
经过上述显式因果关系抽取和隐式因果关系抽取,获得了因果关系事件元组对。为更直观地描述事故因果发展的过程,本文对每一个事故,根据抽取所得的因果关系事件元组对生成因果关系图。因果关系图的生成步骤为:
(1)相似度计算。计算每个事件元组与航空安全领域本体中三元组的相似度,定义两事件元组Ei=[ si,vi,oi] 和Ej=[ sj,vj,oj] ,两事件元组的语义相似度Sim( Ei,Ej)即为其词向量的夹角余弦:
Sim( vi,vj)和Sim(oi,oj)的计算方法与上式(10)同理。
(2)将所有事件元组映射成航空安全领域本体中的概念。将事件元组改写成本体中与之相似度最高的那个元组。将改写后的结果存入集合C 中,C={pairs1,pairs2,…,pairsn}。
(3)以事故标题中的事件元组作为根节点Re(root event),遍历集合C 。若存在pairsm的Eeffect与Re 相同,则将新的元组存入新集合C′中,同时把Ecause放入队列Q 中。
(4)取队列Q 中的元素,重复步骤(3),直到队列Q为空。
(5)输出事件元组对集合C′。
(6)将C′中的因果关系事件元组对绘制成图。
图5给出了两个航空事故所得因果关系图的实例,图5(a)是航空器地面事故(2008 年旧金山ABX 航空B762 停放时起火),图5(b)是航空器飞行事故(2013 年10 月16 日老挝航空AT72 巴色机场复飞过程中坠河)。其中实线箭头描述的是显式因果关系对的抽取结果,虚线箭头描述的是隐式因果关系对的抽取结果。
由因果关系图可知,图5(a)所示起火事故的直接原因是短路,间接原因是航空器的部件设计缺陷,该事故导致机体损坏。而图5(b)所示地面事故的原因是天气原因和机组操作不当共同导致航班坠河,事故结果为机上人员全部遇难。通过因果关系图可以更加直观地描述事故的发生过程,有助于事故因果关系分析。
统计结果显示,航空安全事故文本中具有显式因果关系的句子数约占28%,隐式因果关系约占72%,本文将模式匹配方法应用于航空安全事故显式因果关系的抽取,抽取准确率达到了87.72%,所提出的self-Att_BiLSTM+PI方法有效解决了不含因果提示词的隐式因果关系抽取的问题,在公共数据集和航空安全数据集上F 值比Att_BiLSTM+PI 方法分别提高近6%和10%,为航空安全事故发生过程分析提供了依据。未来将深入研究航空安全事故之间的因果链,为航空安全事故的预测预警提供更好的语义服务。