王 紅,李 晗,李浩飛
中國民航大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,天津 300300
信息抽取[1-2]的主要目的是將非結(jié)構(gòu)化或半結(jié)構(gòu)化描述的自然語言文本轉(zhuǎn)化成結(jié)構(gòu)化數(shù)據(jù),關(guān)系抽取是其子任務(wù),主要負責(zé)從文本中抽取實體之間的語義關(guān)系,在問答系統(tǒng)、知識圖譜構(gòu)建等許多自然語言處理任務(wù)中起著重要作用。近年來,研究人員提出了各種方法來實現(xiàn)面向非結(jié)構(gòu)化文本的關(guān)系抽取,其中深度學(xué)習(xí)的方法相較于傳統(tǒng)方法可以獲取更多有效的語義信息,準(zhǔn)確率和召回率得到較大提升,因此廣泛應(yīng)用于各個領(lǐng)域,包括民航突發(fā)事件領(lǐng)域本體的關(guān)系抽取。
本文提出將注意力機制與雙向門控循環(huán)單元(bidirectional gated recurrent unit,BiGRU)相結(jié)合的模型(用Att-BiGRU表示),通過前向和后向網(wǎng)絡(luò)抽取詞語序列的上下文語義信息,同時在詞語層面和句子層面上引入注意力機制,為具有語義關(guān)系的詞語和句子分配更大的權(quán)重,旨在提取更有價值的詞語和句子特征,有效減少無關(guān)數(shù)據(jù)的影響。將該模型應(yīng)用在民航突發(fā)事件領(lǐng)域本體的關(guān)系提取中,相較于之前的其他方法具有更好的提取效果,驗證了該模型的有效性。
傳統(tǒng)的關(guān)系抽取方法[3-6]主要有基于模式匹配的方法和基于機器學(xué)習(xí)的方法,這些方法不能充分提取潛在的文本特征,而深度學(xué)習(xí)方法則可以充分利用文本語義信息,取得更好的提取效果,因此近幾年成為了研究熱點。
Zeng等人[7]利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)方法進行關(guān)系抽取,效果優(yōu)于傳統(tǒng)方法,然而該方法無法對時間序列數(shù)據(jù)進行建模。Socher等提出循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[8-9]可以對序列數(shù)據(jù)進行精確建模,在自然語言處理的多個領(lǐng)域,如序列標(biāo)注、機器翻譯等任務(wù)上均取得了顯著效果。Zhang等人[10]采用雙向RNN(bidirectional RNN)的方法從原始數(shù)據(jù)中學(xué)習(xí)關(guān)系模式,盡管該方法可以考慮到詞語序列的上下文語義信息,但在具體的迭代過程中會出現(xiàn)梯度消失問題,所能利用的信息范圍有限。為解決RNN的長距離依賴問題,Hochreiter和Schmidhuber[11]對RNN模型的隱藏單元進行了改進,提出了長短時記憶單元(long short term memory network,LSTM),它通過在隱藏層增加三個門控記憶單元來存儲歷史信息,使得LSTM處理長序列數(shù)據(jù)的能力大幅提升,對長句子的處理取得了很好的效果。由于LSTM模型的特點和優(yōu)勢,出現(xiàn)了很多LSTM的改進模型,如雙向LSTM[12](bidirectional LSTM)等。針對訓(xùn)練時大量標(biāo)注數(shù)據(jù)的問題,可采用遠程監(jiān)督的方法進行關(guān)系抽取,Banerjee等人[13]提出多編碼方式的雙向LSTM網(wǎng)絡(luò),可減少噪聲數(shù)據(jù)的影響,在公共數(shù)據(jù)集上取得了較好效果。
在自然語言處理領(lǐng)域,國內(nèi)外學(xué)者對注意力機制[14]做了大量研究。其中,Bahdanau等人[15]將注意力機制應(yīng)用在機器翻譯任務(wù)上。Lin等人[16]提出了基于句子級注意力機制的神經(jīng)網(wǎng)絡(luò),該模型根據(jù)不同示例在表達語義關(guān)系中的貢獻大小分配不同權(quán)重,充分利用句子信息。由Google機器翻譯團隊提出的自注意力機制[17-18],是對注意力機制的一種改進,減少了對外部信息的依賴,能夠更好地學(xué)習(xí)數(shù)據(jù)或特征的內(nèi)部相關(guān)性。
在民航領(lǐng)域,基于領(lǐng)域本體的突發(fā)事件應(yīng)急管理已經(jīng)取得了初步的成果[19-23],民航突發(fā)事件領(lǐng)域本體的關(guān)系提取方法主要有基于NNV(noun-noun-verb)關(guān)聯(lián)規(guī)則的方法[20]、基于改進的層次聚類H_cluster的方法[21]、基于LDA(latent Dirichlet allocation)的方法[22]和基于LSTM的方法[23]。其中,基于NNV的方法將關(guān)聯(lián)規(guī)則與自然語言處理方法相結(jié)合,完善了領(lǐng)域詞典的構(gòu)建方法,增添同義詞表,豐富領(lǐng)域術(shù)語的過濾過程,利用關(guān)聯(lián)規(guī)則法提取事務(wù)集,計算概念和非分類關(guān)系的支持度和置信度,解決了領(lǐng)域本體非分類關(guān)系獲取中無法自動獲取關(guān)系名稱的問題,相較于模式匹配方法提取結(jié)果更好。但由于中文概念的多義性對非分類關(guān)系種類的影響等原因,該方法的準(zhǔn)確率和召回率都很低;基于改進的層次聚類H_cluster的方法在概念獲取的基礎(chǔ)上,根據(jù)領(lǐng)域概念的上下文構(gòu)建概念向量空間,計算概念相似度,解決了聚類結(jié)果的粒度過細問題,使其更加符合本體層次結(jié)構(gòu)的需要,實現(xiàn)了概念間分類關(guān)系的提取,但該方法的自動化程度有限,且準(zhǔn)確率和召回率均提升較小;基于LDA的方法以航空安全事件文本信息作為數(shù)據(jù)源,采用NLPIR(natural language processing and information retrieval)自適應(yīng)分詞與過濾方法獲取候選術(shù)語集,設(shè)計了領(lǐng)域本體的LDA主題模型,通過吉布斯采樣進行LDA模型訓(xùn)練與主題推斷,實現(xiàn)了領(lǐng)域本體核心概念與關(guān)系的提取,可以有效解決大規(guī)模領(lǐng)域本體的自動更新問題。由于領(lǐng)域本體所有概念及其語義關(guān)系的復(fù)雜性,基于LDA概率分布的規(guī)則構(gòu)建與本體實例自動獲取的方法應(yīng)進一步深入研究;基于LSTM的方法將深度學(xué)習(xí)模型LSTM應(yīng)用于領(lǐng)域本體關(guān)系提取,首先將文本信息向量化,提取文本局部特征,然后將文本局部特征導(dǎo)入LSTM模型中,獲取文本整體特征,再將局部特征和整體特征進行特征融合,通過分類器進行分類。相較于傳統(tǒng)方法,該方法能更加充分利用句子中的語義信息,更準(zhǔn)確地表達深層語義,因此關(guān)系提取的F值有了較大提升,但還可以進一步優(yōu)化。此外,當(dāng)前互聯(lián)網(wǎng)上包含越來越多的民航突發(fā)事件信息,涉及不同信息源(微博、微信、航空安全自愿報告系統(tǒng)等)對事件的不同評論,結(jié)構(gòu)和內(nèi)容越來越復(fù)雜,且民航突發(fā)事件領(lǐng)域本體的,因此迫切需要更加有效的關(guān)系抽取方法來支撐領(lǐng)域本體的自動構(gòu)建。
由于LSTM實現(xiàn)了遺忘門、輸入門和輸出門三個門的計算,結(jié)構(gòu)復(fù)雜,Chung等人提出LSTM的一個變體——門控循環(huán)單元(gated recurrent unit,GRU)[24],它相較于LSTM結(jié)構(gòu)更加簡單,減少了訓(xùn)練參數(shù)和計算的復(fù)雜性,能提升關(guān)系提取的效果。本文將注意力機制與雙向GRU相結(jié)合,應(yīng)用在民航突發(fā)事件領(lǐng)域本體的關(guān)系提取中。
為了更好地利用句子的語義信息,對詞語和句子的特征分別進行抽取,本文提出了Att-BiGRU模型,該模型總共包含5部分:輸入層、雙向GRU層、詞語級注意力層、句子級注意力層、輸出層,其結(jié)構(gòu)如圖1所示。
(1)輸入層(input layer):將詞語向量與實體對之間的位置向量相拼接得到的向量序列輸入網(wǎng)絡(luò)模型。
(2)雙向GRU層(BiGRU layer):采用BiGRU抽取詞語序列的上下文語義信息。
(3)詞語級注意力層(word-attention layer):計算句子中詞語與關(guān)系之間的相關(guān)程度,建立詞語層面權(quán)重。
(4)句子級注意力層(sentence-attention layer):根據(jù)句子與分類關(guān)系相關(guān)程度的大小為句子分配不同權(quán)重,建立句子層面權(quán)重,得到最終的文本向量表示。
(5)輸出層(output layer):根據(jù)文本向量表示,利用分類函數(shù)進行分類。
將輸入句子中的每個詞語映射為向量,該向量由文本詞向量和實體位置向量兩部分組成。
3.1.1 詞向量
一個長度為m的句子s={w1,w2,…,wm},將每個詞語wi由詞向量矩陣映射為一個實值向量ei:
3.1.2 位置向量
Fig.1 Overall diagram of Att-BiGRU model圖1 Att-BiGRU模型整體框圖
在關(guān)系抽取任務(wù)中,靠近實體的單詞通常更能突顯出句子中兩個實體之間的關(guān)系,因此為了更加充分地利用句子語義信息,將句子中每個詞到兩個實體相對距離的位置向量拼接到該單詞的詞向量表示中。例如,在句子“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)。
GRU的工作原理如圖2所示,它實現(xiàn)了兩個門的計算,分別為更新門zt和重置門rt。
Fig.2 Work principle of GRU圖2 GRU工作原理
具體計算過程如下:
(1)前向推算
其中,xt為t時刻的向量表示;更新門zt,fwd用于控制前一時刻的狀態(tài)信息傳遞到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時刻隱含狀態(tài)對當(dāng)前狀態(tài)的影響越大;重置門rt,fwd用于控制忽略前一時刻狀態(tài)信息的程度,如果重置門近似為0,上一個隱含狀態(tài)將被丟棄;候選隱含狀態(tài)使用重置門rt,fwd來控制包含過去時刻信息的上一個隱含狀態(tài)的流入;隱含狀態(tài)ht,fwd使用更新門zt,fwd來對上一個隱含狀態(tài)ht-1,fwd和候選隱含狀態(tài)進行更新;Wxz,fwd、Whz,fwd、Wxr,fwd、Whr,fwd、Wxh,fwd、Whh,fwd表示權(quán)值矩陣,bz,fwd、br,fwd、bh,fwd表示偏置量;⊙為向量點乘操作。
(2)后向推算
正向輸出向量和反向輸出向量分別為:
本文采用BiGRU來得到詞語序列的上下文語義信息,即詞語的向量表示ht由正向輸出向量和反向輸出向量相拼接得到:
注意力機制廣泛應(yīng)用在自然語言處理領(lǐng)域,它通過計算句子中每個詞語的注意力概率分布,突出關(guān)鍵性輸入的影響。由BiGRU輸出的詞語向量構(gòu)成的矩陣為H=[h1,h2,…,hm],先通過激活函數(shù)tanh將詞語表示各維壓至(-1,1),則句子向量表示r為詞語向量的加權(quán):
其中,H∈?2u×m,u為BiGRU隱藏層節(jié)點數(shù),m是句子的長度,w是訓(xùn)練的參數(shù)向量,α為詞語權(quán)重,w、α、r的維度分別為2u、m、2u。
將文本看成是由句子組成的序列,假設(shè)文本包含的句子數(shù)目為n,即T={s1,s2,…,sn}。為了得到整個文本的語義特征,將上文得到的句子向量表示再次輸入到BiGRU網(wǎng)絡(luò),在第i時刻的狀態(tài)由當(dāng)前時刻的輸入ri和上一時刻的隱含狀態(tài)共同決定,通過BiGRU網(wǎng)絡(luò)得到序列之間的語義關(guān)聯(lián)信息,實現(xiàn)文本特征的提取,具體描述為:
將BiGRU的正向輸出向量和反向輸出向量相拼接可得:
在一個文本中,不同的句子對于文本分類的重要程度不同,為了充分利用每個句子的語義信息,本文加入了句子級的注意力層,對每個句子給予不同權(quán)重。
首先,通過激活函數(shù)tanh將句子si的向量表示的各個維度值壓至(-1,1):
然后,將文本轉(zhuǎn)化為向量表示的形式t,計算公式如下:
其中,βi是每個句子向量的權(quán)重,t為的加權(quán)求和,為對于分類更重要的句子賦予較高權(quán)重,采用softmax函數(shù)給出每個句子si所占的權(quán)重,令βi為:
其中,u是參數(shù)向量,隨機初始化,在訓(xùn)練過程中進行學(xué)習(xí)。由此可得文本T的向量形式t:
輸出層用來輸出具體的類別,在得到向量表示t后,定義線性函數(shù)來計算各個類的概率。
本文使用softmax分類器,softmax是logistic回歸模型在多分類問題上的推廣,其假設(shè)函數(shù)形式如下:
其中,θ為模型參數(shù),t(i)為第i個輸入實例的向量表示,y(i)為第i個實例所屬的類別,k為類別數(shù)。
采用交叉熵函數(shù)作為損失函數(shù),定義如下:
其中,m為語料集的數(shù)目,1{?}是示性函數(shù),其取值規(guī)則為:1{值為真的表達式}=1,1{值為假的表達式}=0。
在訓(xùn)練階段,采用mini-batch梯度下降算法,每次迭代僅使用一小批訓(xùn)練數(shù)據(jù),選取Adam[25]的優(yōu)化方法更新參數(shù)來最小化損失函數(shù),利用L2正則化和Dropout[26]方法防止過擬合。
本章將上述方法應(yīng)用到民航突發(fā)事件領(lǐng)域本體的關(guān)系提取中,實驗平臺的配置采用TensorFlow深度學(xué)習(xí)框架,使用Python語言編程實現(xiàn),運行環(huán)境為PyCharm軟件、Win10操作系統(tǒng)、內(nèi)存8 GB、Intel i5-6200處理器。具體關(guān)系提取過程如圖3所示。
Fig.3 Relation extraction process of domain ontology圖3 領(lǐng)域本體關(guān)系提取過程
實驗數(shù)據(jù)來源于中國民用航空安全信息系統(tǒng)[27]發(fā)布的世界航空安全事故調(diào)查跟蹤報告,共收集了民航突發(fā)事件文本信息869個。每一條文本記錄一個民航突發(fā)事件,數(shù)據(jù)預(yù)處理過程如下:
(1)將突發(fā)事件的文本信息整理為標(biāo)題、時間、航班號、事件描述的半結(jié)構(gòu)化形式,將事件發(fā)生時間和航班號作為事件的唯一標(biāo)識;
(2)實體標(biāo)注,對突發(fā)事件信息中表征事件特征的實體進行標(biāo)注(如e1、e2等);
(3)關(guān)系標(biāo)注,將屬性關(guān)系標(biāo)注為attribute-of,事件原因標(biāo)注為reason-of,事件結(jié)果標(biāo)注為result-of,標(biāo)注后的結(jié)果如表1所示;
(4)以7∶3的比例將該標(biāo)注數(shù)據(jù)分為訓(xùn)練集和測試集,以評估提取方法的有效性。
測試數(shù)據(jù)集示例如表1所示。
Table 1 Example of test dataset表1 測試數(shù)據(jù)集示例
領(lǐng)域本體關(guān)系的提取主要涉及事件屬性、事件原因和事件結(jié)果的關(guān)系提取,并對領(lǐng)域本體的實例數(shù)據(jù)進行擴充。實現(xiàn)過程如下:
步驟1進行數(shù)據(jù)預(yù)處理,按照3.1節(jié)所述的方法進行實體及實體間關(guān)系的標(biāo)注,將標(biāo)注好的文本進行分句,得到句子集合。
步驟2采用訓(xùn)練好的詞向量對詞語進行向量化處理,將每個詞的詞向量和位置向量相拼接可得到向量序列。
步驟3將步驟2生成的詞向量序列作為BiGRU的輸入,并引入詞語級注意力機制對詞向量進行加權(quán)求和得到句子的向量表示。
步驟4將文本看成是由句子組成的序列,引入句子級注意力機制對句子向量進行加權(quán)求和,得到文本的整體特征。
步驟5將步驟4生成的文本整體特征導(dǎo)入softmax分類器得出被分到每一個類別的概率。
步驟6對模型進行訓(xùn)練,并對模型的隱藏層大小、詞向量、位置向量的維度以及正則項等參數(shù)進行調(diào)優(yōu)。
步驟7將測試數(shù)據(jù)集在上述設(shè)定好參數(shù)的模型上進行測試,抽取出事件的屬性、原因、結(jié)果三類關(guān)系并進行評估。
步驟8將經(jīng)過步驟7抽取出的事件屬性、原因、結(jié)果關(guān)系添加到民航突發(fā)事件領(lǐng)域本體的實例數(shù)據(jù)中。圖4為更新后的局部效果圖,實線橢圓代表事件的唯一標(biāo)識,虛線橢圓代表抽取出的屬性和原因、結(jié)果關(guān)系,虛線箭頭標(biāo)注為attribute-of的代表事件屬性關(guān)系,標(biāo)注為reason-of的代表原因,標(biāo)注為result-of的代表結(jié)果。
通過反向傳播算法訓(xùn)練模型,采用mini-batch梯度下降算法來最小化損失函數(shù),利用L2正則化方法和Dropout方法消除模型過擬合的影響,參數(shù)設(shè)置如表2所示。
采用正確率(precision)、召回率(recall)和F值三個標(biāo)準(zhǔn)作為性能評價指標(biāo),計算公式如下:
其中,out_right表示正確預(yù)測的關(guān)系個數(shù),out表示所有預(yù)測的關(guān)系個數(shù),all表示測試集中所有的關(guān)系個數(shù)。在準(zhǔn)確率相同的情況下,召回率越高越好;在召回率相同的情況下,準(zhǔn)確率越高越好。
在民航突發(fā)事件領(lǐng)域數(shù)據(jù)集上進行實驗,對事件屬性、事件原因、事件結(jié)果這三類關(guān)系進行抽取,具體結(jié)果如表3所示。
由實驗結(jié)果可以分析出,事件屬性比事件原因和事件結(jié)果抽取的準(zhǔn)確率和召回率更高,原因是屬性關(guān)系包括航班號、機型、航空公司、始發(fā)機場、降落機場等多種屬性關(guān)系,而事件原因和結(jié)果關(guān)系的標(biāo)注數(shù)量相對于屬性關(guān)系較少,標(biāo)注數(shù)量的不均衡使得關(guān)系提取的結(jié)果存在差異,因而屬性關(guān)系的提取結(jié)果更好。
Fig.4 Relation extraction result of civil aviation emergency domain ontology圖4 民航突發(fā)事件領(lǐng)域本體關(guān)系提取結(jié)果
Table 3 Relation extraction result of domain ontology表3 領(lǐng)域本體關(guān)系提取結(jié)果 %
為驗證本文方法的有效性,將本文方法(Att-BiGRU)與基于NNV關(guān)聯(lián)規(guī)則的方法(NNV)、基于層次聚類的關(guān)系提取方法(H_cluster)、基于主題模型的關(guān)系提取方法(LDA)和基于雙向LSTM的關(guān)系提取方法(BiLSTM)進行對比,對事件屬性、原因和結(jié)果的提取結(jié)果綜合評估,實驗結(jié)果如表4所示。
實驗結(jié)果表明,深度學(xué)習(xí)方法BiLSTM和Att-BiGRU均比傳統(tǒng)方法NNV、H_cluster和LDA表現(xiàn)出更好的提取結(jié)果,因為傳統(tǒng)方法未能充分提取文本的深層語義,導(dǎo)致分類結(jié)果的準(zhǔn)確率低。而深度學(xué)習(xí)的方法相較于傳統(tǒng)方法可以更充分利用句子中的信息提取語義。其中,BiLSTM取得了較高的準(zhǔn)確率和召回率,說明LSTM通過構(gòu)建專門的記憶單元可以更好地存儲歷史信息,同時使用正反兩方向LSTM充分提取句子序列的信息;Att-BiGRU方法比BiLSTM方法效果更好,因為Att-BiGRU方法在詞語層面和句子層面上分別使用了注意力機制,為具有語義關(guān)系的詞語和句子分配更大的權(quán)重,使得提取的特征更全面,說明在訓(xùn)練過程中引入注意力機制能有效減少無關(guān)數(shù)據(jù)的影響,從而可以提高分類的準(zhǔn)確性。
Table 4 Comparison of extraction results of different methods表4 不同方法提取結(jié)果對比 %
將本文提出的模型與其他兩個典型模型進行對比實驗,對比模型情況介紹如下:
(1)BiGRU,該模型將文本向量化后,使用雙向GRU進行語義信息的提取,并在雙向GRU層后面加入平均池化層,將得到的最終文本特征向量送進分類器進行分類。
(2)Att-BiLSTM,該模型將Att-BiGRU模型中的BiGRU層換成BiLSTM層,其他實驗設(shè)置均相同。
實驗結(jié)果如表5所示,可以看出,Att-BiGRU和Att-BiLSTM模型的準(zhǔn)確率優(yōu)于BiGRU,區(qū)別在于前兩者加入了注意力機制,而BiGRU在雙向GRU層后加入平均池化層,這說明了利用注意力機制可以分配不同的權(quán)重參數(shù)來突出文本中重要的詞語和句子,在突出重要信息方面相較于平均池化更有效;Att-BiGRU模型在評價指標(biāo)方面優(yōu)于Att-BiLSTM,這兩個模型結(jié)構(gòu)基本相同,均存在注意力機制,不同之處在于后者將Att-BiGRU模型中的BiGRU層換成了BiLSTM層,可見BiGRU在提取深層次語義信息方面比BiLSTM表現(xiàn)更優(yōu)。
Table 5 Extraction results of different models表5 不同模型提取結(jié)果 %
綜上,基于注意力機制的BiGRU模型的關(guān)系提取方法可以為民航突發(fā)事件領(lǐng)域本體關(guān)系的自動獲取提供新的方法支持。
本文針對民航突發(fā)事件領(lǐng)域本體關(guān)系抽取準(zhǔn)確率低的問題,提出了一種結(jié)合注意力機制與BiGRU的關(guān)系抽取模型。利用BiGRU充分提取詞語序列的語義信息,同時通過在詞語層面和句子層面分別引入注意力機制來提取更多的隱含特征,實驗表明該方法能夠有效地提升領(lǐng)域本體的關(guān)系抽取效果。但是,該方法在自動識別實體信息方面還存在不足,需要進行實體的手工標(biāo)注,針對實體與關(guān)系的聯(lián)合抽取有待進一步研究。