基于Siamese-BERT-wwm模型的航空安全事故因果事件的同指消解
2023-08-10吴浩正
王 红 王 阳 吴浩正
(中国民航大学计算机科学与技术学院 天津 300300)
0 引 言
事件同指消解[1]是将指向现实世界中同一个事件的描述句链接到同一个事件链的任务。早期的事件同指消解大都基于已知事件,可以充分利用事件的标注属性[2-4],而基于未知事件的同指消解由于无法使用标注信息,因而任务难度大,相关研究也较少。Krause等[5]首次使用神经网络的方法对文档内事件进行同指消解,基于CNN对句子和触发词上下文进行特征抽取,并通过特征之间的余弦相似度判断事件是否同指。此后,基于未知事件的同指消解研究也大部分都是使用简单浅层网络[6-8]和基于特征抽取[9-10]的方法进行事件同指消解。
在航空安全事故管理[11]中,航空安全事故调查报告[12]对事故原因的产生与发展过程的描述一般较为复杂。航空安全事故因果事件同指消解属于未知事件的同指消解,用于识别因果关系抽取结果中的同指事件并构建因果链。目前针对航空安全事故因果事件同指消解的研究主要是祝寒[13]采用Word2vec[14]词向量相似度计算方法实现的句子主语之间、触发词之间、宾语之间的同指消解,该方法可以较好地处理单词之间的相似度,但是它无法得到句子级的语义相似度且不能解决多义词的问题。
BERT模型[15]是一种关联上下文的深层双向编码器,不仅能区分多义词,而且将负采样提升至句子级别,充分描述字符级、词级、句子级甚至句间关系特征。中文BERT-wwm模型[16]基于中文BERT模型在预训练中增加了全词遮罩WWM(Whole Word Masking),将句子的切分粒度由字变成了词,在多个中文数据集上超过了中文BERT模型的效果。但是,在计算语义相似时它需要将两个句子一起放入网络,大量的计算开销使其不适合语义相似搜索之类的无监督任务。如果仅将单句放入网络,使用在句子前插入的[CLS]符号对应的输出向量作为整个句子的语义表示,会导致效果变差[17]。孪生神经网络[18]是一种用两个网络结构分别来表征句子对中的句子然后计算其相似度的方法,适用于类别数多但每个类别的样本数量少的情况,可以降低计算开销。
为此,本文将孪生神经网络与中文BERT-wwm相结合,通过构建Siamese-BERT-wwm模型,对航空安全事故因果事件进行同指消解,旨在进一步提高事故因果链的语义效果和可解释性。
1 研究思路
因果事件由句子描述,例如:事件C为“飞行员没有维持目视飞行程序”,事件E为“飞机在最低安全高度下面飞行”。如果事件C导致事件E,则称二者是一个因果对
图1 研究思路
(1) 句子预处理。利用正则表达式清洗句子使其具有语义,并用字符串匹配删除相同因果对。
(2) 因果事件同指消解。针对单个事故,计算每个结果句和与之不成对的原因句以及标题句是否同指,将同指的句子消解,获得有价值的因果对。
(3) 因果链去冗余。将事故标题句作为终点句,通过逆遍历删除与终点句无关的事件,并根据消解和去冗余后的因果对构建航空安全事故因果链。
2 因果事件同指消解方法
2.1 Siamese-BERT-wwm模型
BERT-wwm是双向Transformer[19]的编码器,它不仅通过双向Transformer关联了上下文,还通过全词遮罩任务和下一句预测任务进行了数据的预训练,从而能够在大规模中文语料上进行无监督学习,有效解决句子级的语义相似度计算问题。
Siamese-BERT-wwm模型如图2所示。
图2 Siamese-BERT-wwm模型结构
用Siamese-BERT-wwm模型比较任意两个句子是否语义相似时,先将它们分别输入到共享权重的两个BERT-wmm中,再通过平均池化可以得到固定大小的句向量u和v,然后采用下式进行Softmax[20]分类:
o=softmax(W(u,v,|u-v|))
(1)
式中:权重W∈R3n×k;n是句向量的维度;k是分类标签个数。
训练Siamese-BERT-wwm模型时,考虑到效率和泛化性,设置批量大小(batch-size)为16,使用adam优化器,先在10%的数据上进行学习率预热(warm-up)使模型慢慢趋于稳定,再沿用BERT-wwm模型句对匹配的最佳学习率2E-5,在中文维基百科数据集中进行4轮(epoch)训练。
LCQMC[21]是哈工大深圳研究生院智能计算研究中心发布的句对分类数据集,由text_a、text_b和label组成,label为1时说明text_a与text_b相似,为0时则不相似。为了验证Siamese-BERT-wwm模型的有效性,将其与word2vec和CLS在LCQMC中分别进行测试。其中,word2vec是通过词向量来计算句子相似度的方法,用于航空安全事故因果事件同指消解[13],CLS是直接使用BERT-wwm的[CLS]标记得到句向量的相似度计算方法。LCQMC的评测指标是正确率(Accuracy),即正确判断的数量占样本总量的百分比,实验结果如表1所示。
表1 LCQMC评测结果(%)
由表1可见,Siamese-BERT-wwm的正确率高于Word2vec,因为Word2vec的语义是词级的而且不能区别多义词,而Siamese-BERT-wwm不仅关联上下文将语义提升至句子级别,还可以区别多义词。CLS的正确率比Word2vec还低是因为用它得到的任意句向量之间的距离都很近。
2.2 同指消解过程
在对单个航空安全事故的因果事件进行同指消解时,为避免标题句t被覆盖,对E中所有结果句Ei,先与t进行同指判断,再在所有与之不同对的原因句Cj(j≠i)中进行语义相似搜索,相似即为同指。
(1) 结果句和标题句同指消解过程。结果句和标题句的同指消解过程如图3所示。
图3 结果句和标题句同指消解过程
单个航空安全事故中,只用Siamese-BERT-wwm模型判断两句话是否同指会遗漏一些同指情况。比如“美国航空公司MD-82飞机圣路易斯发动机起火”和“发动机起火”在这起事故中是同指的,“Learjet60哥伦比亚机场冲出跑道”与“事故”也是同指的,但如果只用Siamese-BERT-wwm模型判断,一句描述具体事件,一句描述一类事件,不能被认为同指。航空安全事故中不存在因句子结构划分而存在歧义的情况,因此,在Siamese-BERT-wwm模型判断相似前,先通过字符串匹配判断句子字面包含关系来识别单个事故中广泛描述句和具体描述句是否同指。
如果标题句t包含结果句Ei、结果句Ei包含“事故”二字,或者通过Siamese-BERT-wwm模型判断出两句相似,则两句同指,将结果句改为与标题句相同的句子。
(2) 结果句和原因句同指消解过程。结果句和与之不同对的原因句的同指消解过程如图4所示,也是先判断句子字面包含关系,再用Siamese-BERT-wwm模型判断相似。
图4 结果句和原因句同指消解过程
如果结果句Ei和原因句Cj(j≠i)有包含关系,或者通过Siamese-BERT-wwm模型判断出两句相似,则两句同指。其中,flag[j]用来记录原因句Cj是否修改过,初始值为0表示未修改,为1时则表示修改过。对同指的两句进行消解时,如果原因句未修改过,将原因句改为与结果句相同的句子,否则将结果句改为与原因句相同的句子。
3 实验结果及分析
3.1 数据处理
原始数据是从世界航空安全事故调查报告的860个事故中抽取的10 782个因果对。用正则表达式删除句子中不必要的词,生成具有语义的句子,需删词语的正则表示如表2所示。再通过字符串匹配删除重复的因果对,最终得到7 979个符合要求的因果对作为实验数据。
表2 需删词语的正则表示
含有不同因果对数量的事故个数如图5所示,每个航空安全事故都包含至少1个因果对,至多34个因果对。大部分航空安全事故的因果对数量都在20以内,占事故总量的93.14%。
图5 860个航空安全事故的因果对数量分布
3.2 同指消解结果
在单个航空安全事故内,将每个结果句和与之不在同一因果对的其他原因句以及事故标题句进行同指消解。同指消解效果评估指标值包括准确率P(Precision)、召回率R(Recall)和F1值(F1 measure),其中:P是同指消解结果中正确消解数量占实际消解数量的百分比,反映了同指消解的准确程度;R是同指消解结果中正确消解数量占应消解总数的百分比,反映了同指消解的完备性;F1值是结合二者的综合评估指标,采用式(2)计算。
如表3所示,Siamese-BERT-wwm模型的效果比Word2vec更好,因为它解决了Word2vec存在的多义词的问题,关联了上下文充分描述句子语义,基于Siamese-BERT-wwm模型再加入字符串匹配后还能识别单个事故中广泛描述句和具体描述句的同指关系。
表3 航空安全事故因果事件同指消解结果(%)
航空安全事故的因果事件同指消解后,同一个事件都只能由相同的句子描述。以标题t是“2013年1月29日Scat航空CRJ2阿拉木图附近撞地坠毁”的事故T为例,它的12个因果对如表4所示。
表4 事故T的因果对句子表示
事故T的所有结果句Ei在标题句t和原因句Cj(j≠i)中对同指的句子进行消解,过程如下:
1)E1与C2同指,C2替换为E1,flag[2]=1。
2)E2与C3同指,C3替换为E2,flag[3]=1。
3)E3与C4同指,C4替换为E3,flag[4]=1。
4)E4与t同指,E4替换为t;E4(t)与C11同指,C11替换为t,flag[11]=1。
5)E5与C6同指,C6替换为E5,flag[6]=1。
6)E6与C4(E3)同指,因flag[4]=1,E6替换为E3。
7)E7与C8同指,C8替换为E7,flag[8]=1;E7与C9同指,C9替换为E7,flag[9]=1。
8)E8与C10同指,C10替换为E8,flag[10]=1。
9)E9没有同指句。
10)E10与t同指,E10替换为t;E10(t)与C11(t)同指,因flag[11]=1,C11(t)替换为E10(t)。
11)E11没有同指句。
12)E12没有同指句。
同指消解前后的因果对如表5所示。相同事件的句子描述被统一,使得原本包括标题句在内的25个事件句简化为了14个事件句。
表5 事故T同指消解前后的因果对
3.3 去冗余
同指消解后的因果对虽然可以构成因果链,但是仍存在冗余,从事故终点句t开始,逆遍历所有能够直接或间接导致t的事件,将它们加入列表list,遍历完之后仍不在list中的就是需要删除的冗余。去冗余流程如图6所示。
图6 因果链去冗余流程
事故T中,同指消解后由相同节点和因果对关系构成因果链如图7所示,E9、E11、C12、E12是删除的冗余事件。通过同指消解和去冗余,最初的12个因果对和包括标题在内的25个事件句,简化为因果链中的9个因果对和包括标题句在内的10个事件句。直接或间接导致最终结果的事件都被保留,因果链仍能有效描述事故发展过程。
图7 事故T的因果链构建过程
860个航空安全事故的因果对数量统计结果如图8所示,因果对总量由7 979减至4 725,减少了40.8%,有效降低了因果链的信息冗余。
图8 860个航空安全事故处理前后的因果对数量分布对比
4 结 语
本文提出的Siamese-BERT-wwm模型,通过在孪生神经网络中使用BERT-wwm获取句向量,将事件句的语义表示由词级提升至句子级并减少计算开销。与原有的航空安全事故因果事件同指消解方法相比,综合评估指标F1值提高了12.67百分点,进一步增强了事故因果链的可解释性,为多航空安全事故的因果链的构建和关联分析奠定了基础。