王 紅 李浩飛 邸 帥
(中國民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
知識(shí)圖譜[1]是知識(shí)表示的重要工具,國內(nèi)外學(xué)者針對知識(shí)圖譜構(gòu)建方法及其應(yīng)用方面做了大量的研究[2-7],利用知識(shí)圖譜可以有效地實(shí)現(xiàn)領(lǐng)域知識(shí)的表達(dá)、檢索與推理。近年來民航突發(fā)事件呈多元化趨勢,包括大面積航班延誤、航空器危險(xiǎn)接近、航空器墜毀等。
研究民航突發(fā)事件知識(shí)圖譜構(gòu)建的關(guān)鍵問題對于提升民航突發(fā)事件應(yīng)急處置能力具有重要意義。民航突發(fā)事件知識(shí)圖譜構(gòu)建的核心內(nèi)容包括實(shí)體識(shí)別和實(shí)體關(guān)系抽取等,其中民航突發(fā)事件實(shí)體識(shí)別是構(gòu)建民航突發(fā)事件知識(shí)圖譜的基礎(chǔ)。
民航突發(fā)事件實(shí)體識(shí)別[8]是一種特定領(lǐng)域的實(shí)體識(shí)別,主要任務(wù)是從非結(jié)構(gòu)化民航突發(fā)事件文本數(shù)據(jù)中識(shí)別出事發(fā)時(shí)間、事發(fā)地點(diǎn)、事發(fā)原因、事發(fā)結(jié)果、航空公司、飛機(jī)型號(hào)、注冊號(hào)等多種不同類型實(shí)體,目的是對民航突發(fā)事件領(lǐng)域中專業(yè)詞匯進(jìn)行確認(rèn)和分類,從而實(shí)現(xiàn)對非結(jié)構(gòu)民航突發(fā)事件數(shù)據(jù)結(jié)構(gòu)化,并以結(jié)果化形式進(jìn)行知識(shí)表示。目前,民航突發(fā)事件實(shí)體識(shí)別主要有兩個(gè)難點(diǎn):1) 由于領(lǐng)域的特殊性,基于傳統(tǒng)的統(tǒng)計(jì)機(jī)器學(xué)習(xí)的實(shí)體識(shí)別往往依賴領(lǐng)域語言學(xué)知識(shí)且需要大量人工定義特征模板。2) 該領(lǐng)域的實(shí)體長度一般較長,存在大量復(fù)合或混合型實(shí)體,例如復(fù)合起飛地名(美國南卡羅來納州哥倫比亞大都會(huì)機(jī)場)、航空公司名等,或混合型實(shí)體如飛機(jī)型號(hào)(薩博A340A型飛機(jī))等。實(shí)體的邊界模糊、結(jié)構(gòu)復(fù)雜,實(shí)體長度較長且內(nèi)部相關(guān)關(guān)系較為密切,傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)難以學(xué)習(xí)此類依賴關(guān)系。
目前實(shí)體識(shí)別的研究主要集中在醫(yī)療[9-10]、社交媒體[11-12]、農(nóng)業(yè)[13]、漁業(yè)[14-15]、動(dòng)物衛(wèi)生[16]、軍事[17]、海事[18]等領(lǐng)域。實(shí)體識(shí)別方法主要分為三類:基于規(guī)則的方法、基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。其中:1) 基于規(guī)則的方法通常依賴于啟發(fā)式和手工制作的規(guī)則來識(shí)別實(shí)體,通過語言學(xué)者和領(lǐng)域?qū)<沂止ぶ贫ǖ拇罅恳?guī)則通常會(huì)導(dǎo)致相對較高的系統(tǒng)工程成本,且領(lǐng)域移植性相對較差。2) 基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法將實(shí)體識(shí)別視為序列標(biāo)記問題,其目標(biāo)是找到給定輸入句子的最佳標(biāo)簽序列來識(shí)別實(shí)體。典型的方法是隱馬爾可夫模型(Hidden Markov Model,HMM)[19],支持向量機(jī)(Support Vector Machine,SVM)[20]和條件隨機(jī)場(Condition Random Fields,CRF)[21]。但此類模型識(shí)別實(shí)體的準(zhǔn)確率往往依賴于人工預(yù)先定義特征集的數(shù)量及質(zhì)量。3) 基于深度學(xué)習(xí)的方法在詞性標(biāo)注、關(guān)鍵詞提取、命名實(shí)體識(shí)別(Named Entity Recognition,NER)等眾多自然語言處理子任務(wù)均有突破性進(jìn)展。尤其是基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)方法,可以很好地處理NER問題,它不僅優(yōu)于傳統(tǒng)的統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法,而且避免大量使用人工定義特征模板,然而RNN無法有效解決長距離依賴以及在反向傳播時(shí)存在的梯度消失或爆炸問題。針對此問題,Hochreiter等[22]提出一種利用門限機(jī)制對歷史信息進(jìn)行過濾的LSTM模型,Hammerton[23]首次將LSTM模型運(yùn)用到NER。然而LSTM只捕獲了文本的上文信息,對于NER任務(wù),下文信息也同樣重要。馮艷紅等[24]將BiLSTM模型[25]用于NER任務(wù),在多個(gè)中文數(shù)據(jù)集上取得不錯(cuò)的效果。Peng等[26]首次構(gòu)建基于微博信息的中文社交媒體語料庫,先利用LSTM模型提取文本特征,再通過CRF進(jìn)行分類,最終提高了社交媒體實(shí)體識(shí)別的性能。
為此,本文將BiLSTM與CRF相結(jié)合,提出了一種基于BiLSTM-CRF(Bidirectional Long-Short Term Memory-Conditional Random Filed)的民航突發(fā)事件實(shí)體識(shí)別方法,旨在解決非結(jié)構(gòu)化民航突發(fā)事件文本信息中實(shí)體的自動(dòng)獲取問題。
民航突發(fā)事件文本集合T={i1,i2,…,in}?I,在ii中存在實(shí)體集合F={f1,f2,…,fn},其中fi是民航突發(fā)事件文本I中的某個(gè)實(shí)體,每個(gè)fi都唯一映射實(shí)體類型集合K={k1,k2,…,kn}中的實(shí)體類型kt。我們的目的是將民航突發(fā)事件文本集合I={i1,i2,…,in},通過BiLSTM-CRF模型抽取出每個(gè)文本ii中的所有實(shí)體集合F={f1,f2,…,fn},并分別給每個(gè)實(shí)體fi標(biāo)記實(shí)體類型kt。民航突發(fā)事件實(shí)體識(shí)別方法研究思路如圖1所示。
圖1 民航突發(fā)事件實(shí)體識(shí)別過程
(1) 數(shù)據(jù)預(yù)處理:對民航突發(fā)事件文本進(jìn)行標(biāo)注,同時(shí)對其進(jìn)行字符向量訓(xùn)練。
(2) 構(gòu)建BiLSTM-CRF模型:將標(biāo)注好的數(shù)據(jù)通過查找預(yù)先訓(xùn)練的字符向量表替換為字符向量序列,輸入到BiLSTM模型中,獲取序列化文本的上下文特征,再通過CRF模型獲取序列標(biāo)注結(jié)果提取出民航突發(fā)事件實(shí)體,并將民航突發(fā)事件知識(shí)以<頭實(shí)體,關(guān)系,尾實(shí)體>三元組的形式儲(chǔ)存在圖數(shù)據(jù)庫中形成結(jié)構(gòu)化知識(shí)體系。
將民航突發(fā)事件文本進(jìn)行數(shù)據(jù)去重,然后利用Word2vec對數(shù)據(jù)進(jìn)行字符向量訓(xùn)練,生成字符向量表,同時(shí)采用自動(dòng)標(biāo)注方式對民航突發(fā)事件實(shí)體進(jìn)行標(biāo)注。由于分詞的質(zhì)量取決于詞典,因此首先構(gòu)建領(lǐng)域詞典,然后通過匹配領(lǐng)域詞典中的航空公司名庫、航班號(hào)庫、起飛地名庫等相關(guān)實(shí)體庫的方式,采用Python編程語言中的Jieba自定義詞典分詞模塊進(jìn)行分詞與實(shí)體標(biāo)注。
民航突發(fā)事件實(shí)體識(shí)別任務(wù)可以視為序列標(biāo)注任務(wù)。為更加清楚地劃分實(shí)體邊界,采用BIEO(Begin,Inside,End,Outside)標(biāo)簽方案對民航突發(fā)事件語料進(jìn)行標(biāo)注。B表示民航突發(fā)事件實(shí)體的第一個(gè)字符,I表示實(shí)體的內(nèi)部字符,E表示實(shí)體的結(jié)尾字符,O表示非實(shí)體的字符(如表1所示)。給定一個(gè)民航突發(fā)事件文本中含有n個(gè)字符的句子S={c1,c2,…,cn},采用上述標(biāo)注方法標(biāo)記句子S的每個(gè)字符ci。例如,“……QF-8航班……”的標(biāo)簽序列(如表2所示)。
表1 實(shí)體標(biāo)注方法
表2 字符序列標(biāo)注實(shí)例
根據(jù)圖1的研究思路和民航突發(fā)事件實(shí)體結(jié)構(gòu)特點(diǎn),采用字符向量作為BiLSTM的輸入,并利用Bi-LSTM來捕捉分布表示中實(shí)體的過去和未來的上下文信息。由于BiLSTM忽略了標(biāo)簽的等價(jià)性質(zhì),因此,我們結(jié)合CRF序列模型來確保標(biāo)記的一致性,提高輸出的準(zhǔn)確率。該模型主要分為以下3層,其模型如圖2所示。
圖2 BiLSTM-CRF民航突發(fā)事件實(shí)體識(shí)別模型
在編碼階段,采用字符向量的表示方法。字符向量化一般有兩種表示方法:one-hot表示和分布式表示?;诜植际奖硎镜淖址蛄坎粌H避免維度災(zāi)難,而且也學(xué)習(xí)到民航突發(fā)事文本中字符之間的語義特征,故選擇基于分布式表示的字符向量作為BiLSTM層的輸入。
利用Word2vec的CBOW模型或Skip-gram模型進(jìn)行訓(xùn)練可得到分布式表示,而CBOW的訓(xùn)練效率高于Skip-gram,故本文將民航突發(fā)事件語料通過CBOW模型進(jìn)行訓(xùn)練,其生成的字符向量表共包含3 496個(gè)漢語字符、英文字符和特殊字符(如數(shù)字,標(biāo)點(diǎn)符號(hào)等)以及它們的分布式數(shù)字向量表示。字符向量矩陣大小為3 496×100,具體步驟如下:
(1) 以句子為單位將文本序列進(jìn)行分隔,含有n個(gè)字符的句子則定義為S={c1,c2,…,cn}。
(2) 文本序列的每個(gè)字符ci都映射到字符向量矩陣M中的一個(gè)字符向量xi。
xi=MdviM∈Rd×|V|
(1)
式中:d表示字符向量的維度;V表示語料字典的總字?jǐn)?shù),字典漢語字符、英文字符和特殊字符組成;vi的維度為V,其元素取值規(guī)則為第i行的值取1,其他行的值取0。
3.2.1LSTM
RNN在處理NER問題取得不錯(cuò)的效果。把序列向量X={x1,x2,…,xn}作為RNN的輸入,將返回另一個(gè)序列向量H={h1,h2,…,hn},該序列向量H表示學(xué)習(xí)到的在輸入中每個(gè)步驟的序列信息。從理論上講,RNN可以處理長時(shí)依賴問題,但在實(shí)踐中效果很差,只學(xué)習(xí)到序列數(shù)據(jù)最近輸入的信息。LSTM相對與傳統(tǒng)的RNN有著更為復(fù)雜記憶單元,在一定程度上大幅減小了梯度爆炸或梯度消失的影響,并且已經(jīng)被證明可以捕獲到長時(shí)依賴性。一個(gè)LSTM單元由輸入門、輸出門、遺忘門以及一個(gè)記憶單元共同構(gòu)成,LSTM模型的一個(gè)單元更新的過程見圖3。
圖3 LSTM單元結(jié)構(gòu)圖
其具體計(jì)算公式定義如下所示:
(2)
it=σ(Wi·(ht-1,xt)+bi)
(3)
ft=σ(Wf·(ht-1,,xt)+bf)
(4)
(5)
ot=σ(Wo·(ht-1,xt)+bo)
(6)
ht=ot⊙tanh(Ct)
(7)
式中:⊙為向量點(diǎn)乘操作;元素σ代表激活函數(shù)Sigmoid函數(shù);xt為LSTM層時(shí)間在第t步的輸入向量(即字符向量);ht-1是LSTM層的隱藏層狀態(tài)向量(也稱輸出向量),其存儲(chǔ)前t-1步所有有用的時(shí)序信息;Wi、Wf、Wc、Wo表示隱藏層向量ht-1的權(quán)重矩陣,bi、bf、bc、bo表示偏差向量。
3.2.2BiLSTM
針對序列標(biāo)注任務(wù),遍歷過去和未來的上下文對解決實(shí)體識(shí)別問題是有幫助的。然而,LSTM的隱藏狀態(tài)僅從過去獲取信息,對未來一無所知。因此,我們采用BiLSTM來更好解決民航突發(fā)事件實(shí)體識(shí)別這一問題?;舅枷胧菍⒚總€(gè)序列向前和向后呈現(xiàn)給兩個(gè)單獨(dú)的隱藏狀態(tài),以分別捕獲序列數(shù)據(jù)的過去和未來的信息,最后將兩個(gè)隱藏狀態(tài)連接起來以形成最終輸出。
圖4 BiLSTM結(jié)構(gòu)圖
然后在BiLSTM的頂部使用tanh激活函數(shù)來預(yù)測字符的每個(gè)可能的標(biāo)簽的置信度分?jǐn)?shù)。
et=tanh(Weht)
(8)
式中:We為隱藏層的權(quán)重矩陣。
對于序列標(biāo)記任務(wù),考慮鄰域中標(biāo)簽之間的相關(guān)性并聯(lián)合解碼對預(yù)測輸入句子的最佳標(biāo)簽鏈?zhǔn)怯幸娴摹T诿窈酵话l(fā)事件實(shí)體識(shí)別中,I-ARIL不能跟隨I-DATE。因此,本文模型使用CRF和BiLSTM共同模擬標(biāo)記序列。
記P為BiLSTM層輸出的得分矩陣,其中P的大小為n×k,n為輸入序列的長度,k為標(biāo)簽集合的大小,則P的第t列是由式(8)得出的向量et,那么Pi,j表示輸入文本序列中第i個(gè)字符對應(yīng)第j個(gè)標(biāo)簽的分?jǐn)?shù)。我們引入了轉(zhuǎn)換矩陣A,其中Ai,j表示連續(xù)字符由標(biāo)簽i到標(biāo)記j的轉(zhuǎn)換概率。這個(gè)轉(zhuǎn)換矩陣將被訓(xùn)練為模型的參數(shù)。對于長度為n的句子X={x1,x2,…,xn}的標(biāo)簽序列y={y1,y2,…,yn},其分?jǐn)?shù)為:
(9)
使用Softmax函數(shù)計(jì)算條件概率p(y|X):
(10)
式中:YX是對于輸入字符序列X所有可能標(biāo)簽序列。我們使用最大條件似然估計(jì)來訓(xùn)練模型:
(11)
訓(xùn)練結(jié)束后,在預(yù)測標(biāo)簽時(shí),尋找得分最高的標(biāo)簽序列作為輸出結(jié)果,即:
(12)
所使用的語料主要來自中國民用航空安全信息系統(tǒng)[27]發(fā)布的世界航空安全事故調(diào)查跟蹤報(bào)告等文本數(shù)據(jù)900余個(gè)。按照第2節(jié)數(shù)據(jù)標(biāo)注方法標(biāo)注實(shí)體,建立了一個(gè)基于民航突發(fā)事件實(shí)體識(shí)別的語料庫,作為本文實(shí)驗(yàn)的實(shí)體識(shí)別數(shù)據(jù)集,如表3所示。
表3 語料統(tǒng)計(jì)信息
本文采用NER中常用的正確率(precision)、召回率(recall)和F值作為模型性能評價(jià)指標(biāo),計(jì)算公式如下:
(13)
(14)
(15)
式中:out_right表示正確預(yù)測的實(shí)體個(gè)數(shù);out表示所有預(yù)測的實(shí)體個(gè)數(shù);all表示測試集中所有的實(shí)體個(gè)數(shù)。在準(zhǔn)確率相同的情況下,召回率越高越好;在召回率相同的情況下,準(zhǔn)確率越高越好。
本文實(shí)驗(yàn)環(huán)境及其配置如表4所示。
表4 實(shí)驗(yàn)環(huán)境配置
采用Adam算法來優(yōu)化模型參數(shù),利用Dropout機(jī)制消除BiLSTM模型過擬合的影響,并使用梯度裁剪技術(shù)避免梯度爆炸。模型參數(shù)設(shè)置如表5所示。
表5 參數(shù)設(shè)置
選取4.1節(jié)民航突發(fā)事件數(shù)據(jù)集的訓(xùn)練集在本文提取的模型上進(jìn)行訓(xùn)練,再采用測試集對訓(xùn)練后的模型進(jìn)行評測。對民航突發(fā)事件的事發(fā)時(shí)間、航空公司、飛機(jī)型號(hào)、注冊號(hào)、航班號(hào)、起飛地、目的地、乘客人數(shù)、機(jī)組人數(shù)、事發(fā)地點(diǎn)、傷亡人數(shù)、事發(fā)原因和事發(fā)結(jié)果共13種實(shí)體類型的實(shí)體進(jìn)行識(shí)別,具體結(jié)果如表6所示。
表6 民航突發(fā)事件實(shí)體識(shí)別實(shí)驗(yàn)結(jié)果 %
從表6可以看出,事發(fā)時(shí)間的實(shí)體識(shí)別F值最高,乘客人數(shù)和機(jī)組人數(shù)的實(shí)體F值相對較高,主要是由于事發(fā)時(shí)間、乘客人數(shù)和機(jī)組人數(shù)實(shí)體類型為日期型數(shù)據(jù)和數(shù)值型數(shù)據(jù),其表達(dá)形式相對固定且實(shí)體語義較為簡單。事發(fā)地點(diǎn)、目的地實(shí)體準(zhǔn)確率相對較低主要是由于字符數(shù)量相對較長且其實(shí)體語義較為復(fù)雜。而在民航突發(fā)事件數(shù)據(jù)集中傷亡人數(shù)的實(shí)體分布低于其他實(shí)體,因此其F值相對較低。
在提取相應(yīng)實(shí)體之后,將民航突發(fā)事件知識(shí)以三元組形式加載到Neo4j圖數(shù)據(jù)庫進(jìn)行知識(shí)的整合與存儲(chǔ)。圖5為結(jié)構(gòu)化民航突發(fā)事件知識(shí)局部效果,其中:實(shí)線橢圓表示頭實(shí)體(由事發(fā)時(shí)間實(shí)體和航班號(hào)實(shí)體拼接而成作為事件的唯一標(biāo)識(shí)實(shí)體);虛線橢圓表示尾實(shí)體;實(shí)線箭頭代表頭實(shí)體與尾實(shí)體的關(guān)系(以尾實(shí)體的實(shí)體類型名稱來指代實(shí)體間關(guān)系)。
圖5 結(jié)構(gòu)化民航突發(fā)事件知識(shí)局部效果
為體現(xiàn)BiLSTM-CRF在F值上的優(yōu)勢,本文在民航突發(fā)事件數(shù)據(jù)集上,分別對CRF、LSTM、BiLSTM、LSTM-CRF和BiLSTM-CRF這5種模型進(jìn)行對比實(shí)驗(yàn),其中CRF模型使用原子特征、組合特征、標(biāo)記特征相結(jié)合的特征模板[28],以準(zhǔn)確率、召回率和F值對各模型評測,實(shí)驗(yàn)結(jié)果如表7所示。
表7 民航突發(fā)事件數(shù)據(jù)集各模型實(shí)體識(shí)別實(shí)驗(yàn)對比 %
從表7可知,LSTM模型較CRF模型的F值高出1.83%,這表明基于深度學(xué)習(xí)網(wǎng)絡(luò)模型相對于基于傳統(tǒng)機(jī)器學(xué)習(xí)方法能夠更好地利用句子級(jí)的語義特征,取得更好的實(shí)體識(shí)別效果。同時(shí), BiLSTM模型要略好于LSTM,這是因?yàn)長STM模型僅能捕獲到實(shí)體的過去上下文信息,而BiLSTM捕獲到實(shí)體的過去和未來的信息,彌補(bǔ)了LSTM模型的劣勢。將BiLSTM模型與CRF模型相結(jié)合,避免了深度學(xué)習(xí)網(wǎng)絡(luò)模型無法確保輸出實(shí)體標(biāo)簽的一致性,其F值同BiLSTM模型相比提升了3.94%,使得在民航突發(fā)事件實(shí)體識(shí)別上取得了較好的效果。
本文針對民航突發(fā)事件實(shí)體自動(dòng)獲取的問題,提出了一種基于BiLSTM—CRF的民航突發(fā)事件實(shí)體識(shí)別方法。該方法在完成實(shí)體識(shí)別的同時(shí),可以有效實(shí)現(xiàn)非結(jié)構(gòu)化民航突發(fā)事件文本信息的結(jié)構(gòu)化。實(shí)驗(yàn)表明,該模型避免了大量使用人工定義特征模板,同時(shí),F(xiàn)值較基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法有了進(jìn)一步的提升。但是,該方法沒有考慮更多實(shí)體的局部特征,未來將重點(diǎn)關(guān)注對民航突發(fā)事件實(shí)體識(shí)別有重要影響的字符,引入注意力機(jī)制等方法進(jìn)一步深入研究。