王 紅,祝 寒,林海舟
中國民航大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津300300
航空安全事故因果關(guān)系的分析是預(yù)防和避免航空安全事故的有效手段,隨著民航業(yè)的發(fā)展,航空不安全事故的原因呈現(xiàn)多元性和復(fù)雜化,事故因果關(guān)系分析面臨新的難題。目前對航空安全事故因果關(guān)系分析的研究主要采用基于數(shù)據(jù)統(tǒng)計(jì)的方法分析事故原因的分布情況[1-2],或采用貝葉斯網(wǎng)絡(luò)[3]、復(fù)雜網(wǎng)絡(luò)[4]分析已知原因?qū)κ鹿式Y(jié)果的影響概率分布,這些方法均不能有效挖掘航空安全事故發(fā)生與發(fā)展的完整過程,故研究航空安全事故因果關(guān)系的抽取,對于航空安全事故的情景重現(xiàn)與深入分析具有重要的意義。
因果關(guān)系抽取是獲取事故發(fā)展過程的必要工作。根據(jù)文本中是否含有因果提示詞,因果關(guān)系一般可劃分為顯式因果關(guān)系和隱式因果關(guān)系,抽取方法包括基于模式匹配的方法和基于機(jī)器學(xué)習(xí)的方法兩大類[5]:(1)顯式因果關(guān)系抽取一般采用模式匹配法[6-9],該方法抽取的準(zhǔn)確率較高、可解釋性強(qiáng)、過程透明,但不適用于隱式因果關(guān)系的抽?。唬?)因果關(guān)系是關(guān)系的一種,關(guān)系抽取中常用的機(jī)器學(xué)習(xí)方法可用于隱式因果關(guān)系的抽取。常見的有卷積神經(jīng)網(wǎng)絡(luò)[10-11](Convolutional Neural Network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)[12](Recurrent Neural Network,RNN)、長短期記憶網(wǎng)絡(luò)[13-14](Long Short-Term Memory networks,LSTM)等,但上述模型大都需要借助外部知識庫或自然語言處理工具來選擇高質(zhì)量的特征,關(guān)系抽取效果受所選特征優(yōu)劣性的影響。Zhou 等[15]采用加入注意力機(jī)制的雙向LSTM 模型來抽取名詞性實(shí)體間的關(guān)系,僅將帶有實(shí)體位置指示的句子集作為輸入(Att_BiLSTM+PI),不依賴外部知識庫或自然語言處理工具的特征,就能捕獲句子的語義信息。由google機(jī)器翻譯團(tuán)隊(duì)首次提出的自注意力機(jī)制[16],是對注意力機(jī)制的一種改進(jìn)[17],減少了對外部信息的依賴,更擅長捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。因此,本文充分利用自注意力機(jī)制能夠更全面地捕獲句子語義信息這一優(yōu)勢,對Zhou 等提出的(Att_BiLSTM+PI)方法進(jìn)行了改進(jìn)(self-Att_BiLSTM+PI),并將改進(jìn)后的方法應(yīng)用于航空安全事故隱式因果關(guān)系的抽取,旨在獲得更好的因果關(guān)系抽取效果。
本文將模式匹配方法應(yīng)用于航空安全事故顯式因果關(guān)系的抽取,將自注意力機(jī)制與雙向LSTM方法相結(jié)合,且僅將帶有事件觸發(fā)詞位置標(biāo)識的句子集作為輸入(用self-Att_BiLSTM+PI表示),應(yīng)用于航空安全事故隱式因果關(guān)系的抽取,研究思路如圖1所示。
(1)文本預(yù)處理。以從世界航空安全事故調(diào)查報(bào)告(http://safety.caac.gov.cn/index/initpage.act)中所提取的955 篇航空安全事故文本為基礎(chǔ),通過去噪、分句等處理,生成有邏輯語義的句子,分詞并判斷句子中是否含因果提示詞,若有則進(jìn)行顯式因果關(guān)系抽取,否則進(jìn)行隱式因果關(guān)系抽取。
(2)顯式因果關(guān)系抽取。根據(jù)航空安全事故調(diào)查報(bào)告的文本特點(diǎn)歸納句法模式、構(gòu)造抽取模板,并設(shè)計(jì)抽取規(guī)則,抽取原因子句和結(jié)果子句,采用依存句法分析得到子句中包含的事件元組,從而獲得顯式因果關(guān)系事件元組對。
(3)隱式因果關(guān)系抽取。采用詞性過濾和依存句法分析相結(jié)合的方法抽取每個(gè)句子中包含的事件,并兩兩組對,采用self-Att_BiLSTM+PI方法對事件元組對的關(guān)系進(jìn)行分類,獲得隱式因果關(guān)系事件元組對。
(4)因果關(guān)系圖的生成。將所有事件元組映射為航空安全領(lǐng)域本體中的表示方式。對于每個(gè)事故,以事故文本標(biāo)題中的事件為源節(jié)點(diǎn),遍歷因果關(guān)系事件對集合查找與源節(jié)點(diǎn)相關(guān)的事件,生成因果關(guān)系圖。
圖1 航空安全事故因果關(guān)系抽取研究框架
顯式因果關(guān)系是指在句子中含有因果提示詞的因果關(guān)系,因果提示詞在句子中的位置主要分為居端式、居中式和配套式。本文在分析了數(shù)據(jù)集文本特征的基礎(chǔ)上,歸納了適用于本領(lǐng)域因果關(guān)系抽取的5類因果提示詞,每類提示詞對應(yīng)的因果句法模式如表1 所示,其中pi表示第i 種句法模式。
為更準(zhǔn)確地識別和抽取出句子中的原因和結(jié)果子句,設(shè)計(jì)了對應(yīng)的5種抽取匹配規(guī)則:
表1 因果句法模式及因果提示詞對應(yīng)表
(1)規(guī)則1
if w1∈cue1 and wi∈mark
then si∈p1
causep1={w2,w3,…,wi} and
effectp1={wi+1,wi+2,…,wn}
(2)規(guī)則2
if wi∈cue2 and w1?cue4
then si∈p2
causep2={ }w1,w2,…,wi-1and
effectp2={ }wi+1,wi+2,…,wn
(3)規(guī)則3
if wi∈cue3 and w1?cue6
then si∈p3
effectp3={ }w1,w2,…,wi-1and
causep3={ }wi+1,wi+2,…,wn
(4)規(guī)則4
if w1∈cue4 and wi∈cue5
then si∈p4
causep4={ }w2,w3,…,wn-1and
effectp4={ }wi+1,wi+2,…,wn
(5)規(guī)則5
if w1∈cue6 and wi∈cue7
then si∈p5
effectp5={w2,w3,…,wi-1} and
causep5={wi+1,wi+2,…,wn}
其中,si表示文本中的第i 個(gè)句子,{ }wm,…,wn表示句子中從第m 個(gè)詞到第n 個(gè)詞之間的文本內(nèi)容,mark 表示句子中的標(biāo)點(diǎn)符號逗號,cause 表示原因,effect 表示結(jié)果。
自注意力機(jī)制是注意力機(jī)制的改進(jìn),減少對外部信息的依賴,捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性,通過關(guān)注同一序列內(nèi)部所有位置的詞來計(jì)算序列中某個(gè)位置的詞對句子語義的影響程度,能夠更好地學(xué)習(xí)句子的內(nèi)部知識。位置標(biāo)識是指事件元組中觸發(fā)詞在句中的位置,該特征是句子內(nèi)部的一種特征。基于self-Att_BiLstm+PI的隱式因果關(guān)系抽取模型包括以下幾個(gè)層:
(1)Embedding層。一個(gè)包含n個(gè)詞的句子序列s,經(jīng)訓(xùn)練后得到該句子序列的向量化表示其中第i 個(gè)詞對應(yīng)的詞向量表示是句子詞向量,是位置標(biāo)識,而=是由該句中其他詞與觸發(fā)詞的相對位置構(gòu)成的向量,vi是一個(gè)由0 和1 組成的向量,值為1 是觸發(fā)詞,為0則是其他詞。
(2)雙向LSTM 層。LSTM 模型中包含許多神經(jīng)網(wǎng)絡(luò)模塊,這些模塊通過參數(shù)共享達(dá)到傳遞信息的目的。雙向LSTM 包含一個(gè)正向的■ →■ ■■ ■■■■■■ ■■和一個(gè)反向的,能夠更全面地捕獲上下文信息。
(3)自注意力層。為將變長的句子編碼成固定長度的向量或者矩陣,使用H 中n 個(gè)LSTM 隱向量的線性組合來表示。引入self-attention 機(jī)制,讓不同的詞有不同的重要性。
其中,H ∈Rn×2u是所有隱藏狀態(tài)h 的集合,u 是單向LSTM隱藏單元數(shù)量,w1是權(quán)重矩陣,w2是參數(shù)矩陣,由此得到矩陣級別的句子表示M 。
(4)輸出層。使用softmax 分類器得到句子s 中因果關(guān)系事件對的關(guān)系分類結(jié)果標(biāo)簽
根據(jù)中國民用航空局《民用航空器事故和飛行事故征候調(diào)查規(guī)定(CCAR395-R1)》中的規(guī)定,航空器事故是航空器飛行事故和航空器地面事故的總稱。圖2 給出了領(lǐng)域本體中[18-19]的因果關(guān)系的主要構(gòu)成,其中類別的下標(biāo)格式為“X,XX,XXX,…”,即第1 位表示一級類別,2~3位表示二級類別,4~6位表示三級類別。
航空安全事故顯式因果關(guān)系的抽取,主要包括因果關(guān)系子句的抽取和子句中事件元組的抽取,抽取過程如圖3所示。
采用3.1節(jié)所述模式匹配方法抽取到句子中的原因子句和結(jié)果子句,此時(shí)的原因子句和結(jié)果子句仍是句子的形態(tài),為便于將抽取結(jié)果構(gòu)建成因果關(guān)系圖,把原因子句和結(jié)果子句中描述的事件以結(jié)構(gòu)化的方式表示出來。事件觸發(fā)詞是文本中最能清晰表示事情發(fā)生的詞,多數(shù)情況下事件觸發(fā)詞為動詞。這里由于因果邊界已經(jīng)明確,故采用詞性過濾法抽取事件觸發(fā)詞。事件的主語和賓語也是事件不可或缺的元素,本文采用依存句法分析抽取觸發(fā)詞的主語和賓語。為了表達(dá)完整語義,除了主語、觸發(fā)詞和賓語以外,保留了與其相關(guān)的一些重要成分:如觸發(fā)詞的否定詞、補(bǔ)語和狀語成分,主語、賓語的名詞組合、形容詞、限定詞和關(guān)聯(lián)修飾成分。
圖2 航空安全領(lǐng)域本體因果關(guān)系主要概念的構(gòu)成
圖3 基于模式匹配的顯式因果關(guān)系抽取過程
抽取步驟為:(1)詞性過濾,將距離因果提示詞位置最近且詞性為動詞的詞作為事件觸發(fā)詞;(2)依存句法分析,獲取觸發(fā)詞對應(yīng)的主語和賓語;(3)在依存句法分析結(jié)果中,分別篩選觸發(fā)詞、主語、賓語的相關(guān)成分;(4)確定事件元組表示形式{主語及其相關(guān)成分,觸發(fā)詞及其相關(guān)成分,賓語及其相關(guān)成分}。
航空安全事故顯式因果關(guān)系抽取效果如表2所示,其中匹配句子數(shù)指與5 種模式p1、p2、p3、p4、p5分別相匹配的句子數(shù)目,有效匹配數(shù)是指該模式匹配得到的句子中能夠表征因果關(guān)系的句子個(gè)數(shù),有效事件對數(shù)則是指有效匹配的句子經(jīng)過事件抽取后能夠正確表征因果關(guān)系的事件對的數(shù)目。準(zhǔn)確率=有效事件對數(shù)/匹配句子數(shù)。
表2 顯式因果關(guān)系抽取效果
實(shí)驗(yàn)效果表明,本文采用的模式匹配法在航空安全事故顯式因果關(guān)系抽取中的平均準(zhǔn)確率為87.72%,取得了較好的效果。
隱式因果關(guān)系抽取與顯式因果關(guān)系抽取的不同之處在于隱式因果句中無法確定原因部分和結(jié)果部分的邊界,故隱式因果關(guān)系抽取首先要抽取出文本中包含的事件元組,然后再確定事件元組兩兩之間是否存在因果關(guān)系。隱式因果關(guān)系抽取過程如圖4所示。
隱式因果關(guān)系抽取中的事件元組抽取方法與顯式因果關(guān)系抽取中的事件元組抽取方法基本一致,僅是在觸發(fā)詞的選擇是通過詞性過濾,將詞性為動詞的保留,作為候選觸發(fā)詞。
圖4 基于self-Att_BiLstm+PI的隱式因果關(guān)系抽取過程
定義句子s 中包含n 個(gè)事件s={E1,E2,…,En} ,將句子包含的所有事件進(jìn)行兩兩組對,如其 中1 ≤i ≠j ≤n ,lable ∈{ }0,1,2 指因果關(guān)系類型,lable=1 表示Ei是Ej的原因,lable=2 表示Ei是Ej的結(jié)果,lable=0 表示Ei與Ej沒有因果關(guān)系。則每個(gè)句子共能形成個(gè)事件對,其中n 表示句子中包含的事件個(gè)數(shù)。
將self-Att_BiLstm+PI 方法分別在公共數(shù)據(jù)集SemEval-2010 Task 8和航空安全事故數(shù)據(jù)集上進(jìn)行了因果關(guān)系抽取的實(shí)驗(yàn),實(shí)驗(yàn)效果如表3所示。實(shí)驗(yàn)采用準(zhǔn)確率P(Precision)、召回率R(Recall)和F 值(F-score)作為評價(jià)標(biāo)準(zhǔn),其中P 是判斷正確的關(guān)系個(gè)數(shù)與輸出的所有關(guān)系個(gè)數(shù)之比,R 是判斷正確的關(guān)系個(gè)數(shù)與測試樣本中該關(guān)系的個(gè)數(shù)之比,F(xiàn) 值是實(shí)驗(yàn)效果的綜合評價(jià)指標(biāo),計(jì)算公式如下:
表3 隱式因果關(guān)系抽取效果%
由表3 可以看出,在公共數(shù)據(jù)集SemEval-2010 Task 8上,加入自注意力機(jī)制的方法(self-Att_BiLSTM)比Att_BiLSTM 方法和BiLSTM 方法的F 值分別高出1.55%和4.61%,同樣加入位置標(biāo)識時(shí),加入自注意力的方法(self-Att_BiLSTM+PI)比Att_BiLSTM+PI 方法F值提高近6%,表明加入自注意力機(jī)制的方法對抽取效果有明顯提升。在航空安全事故數(shù)據(jù)集上,未加入位置標(biāo)識的self-Att_BiLSTM與加入位置標(biāo)識的Att_BiLSTM+PI 抽取效果已相近,而加入位置標(biāo)識時(shí),自注意力機(jī)制的方法比注意力機(jī)制的方法F 值高出近10%,證明該方法在航空安全事故因果關(guān)系抽取上是有效且有意義的。
經(jīng)過上述顯式因果關(guān)系抽取和隱式因果關(guān)系抽取,獲得了因果關(guān)系事件元組對。為更直觀地描述事故因果發(fā)展的過程,本文對每一個(gè)事故,根據(jù)抽取所得的因果關(guān)系事件元組對生成因果關(guān)系圖。因果關(guān)系圖的生成步驟為:
(1)相似度計(jì)算。計(jì)算每個(gè)事件元組與航空安全領(lǐng)域本體中三元組的相似度,定義兩事件元組Ei=[ si,vi,oi] 和Ej=[ sj,vj,oj] ,兩事件元組的語義相似度Sim( Ei,Ej)即為其詞向量的夾角余弦:
Sim( vi,vj)和Sim(oi,oj)的計(jì)算方法與上式(10)同理。
(2)將所有事件元組映射成航空安全領(lǐng)域本體中的概念。將事件元組改寫成本體中與之相似度最高的那個(gè)元組。將改寫后的結(jié)果存入集合C 中,C={pairs1,pairs2,…,pairsn}。
(3)以事故標(biāo)題中的事件元組作為根節(jié)點(diǎn)Re(root event),遍歷集合C 。若存在pairsm的Eeffect與Re 相同,則將新的元組存入新集合C′中,同時(shí)把Ecause放入隊(duì)列Q 中。
(4)取隊(duì)列Q 中的元素,重復(fù)步驟(3),直到隊(duì)列Q為空。
(5)輸出事件元組對集合C′。
(6)將C′中的因果關(guān)系事件元組對繪制成圖。
圖5給出了兩個(gè)航空事故所得因果關(guān)系圖的實(shí)例,圖5(a)是航空器地面事故(2008 年舊金山ABX 航空B762 停放時(shí)起火),圖5(b)是航空器飛行事故(2013 年10 月16 日老撾航空AT72 巴色機(jī)場復(fù)飛過程中墜河)。其中實(shí)線箭頭描述的是顯式因果關(guān)系對的抽取結(jié)果,虛線箭頭描述的是隱式因果關(guān)系對的抽取結(jié)果。
由因果關(guān)系圖可知,圖5(a)所示起火事故的直接原因是短路,間接原因是航空器的部件設(shè)計(jì)缺陷,該事故導(dǎo)致機(jī)體損壞。而圖5(b)所示地面事故的原因是天氣原因和機(jī)組操作不當(dāng)共同導(dǎo)致航班墜河,事故結(jié)果為機(jī)上人員全部遇難。通過因果關(guān)系圖可以更加直觀地描述事故的發(fā)生過程,有助于事故因果關(guān)系分析。
統(tǒng)計(jì)結(jié)果顯示,航空安全事故文本中具有顯式因果關(guān)系的句子數(shù)約占28%,隱式因果關(guān)系約占72%,本文將模式匹配方法應(yīng)用于航空安全事故顯式因果關(guān)系的抽取,抽取準(zhǔn)確率達(dá)到了87.72%,所提出的self-Att_BiLSTM+PI方法有效解決了不含因果提示詞的隱式因果關(guān)系抽取的問題,在公共數(shù)據(jù)集和航空安全數(shù)據(jù)集上F 值比Att_BiLSTM+PI 方法分別提高近6%和10%,為航空安全事故發(fā)生過程分析提供了依據(jù)。未來將深入研究航空安全事故之間的因果鏈,為航空安全事故的預(yù)測預(yù)警提供更好的語義服務(wù)。