謝雨希,楊江平,孫知建,李逸源,胡欣 ,2
(1. 空軍預(yù)警學(xué)院,湖北 武漢 430014;2. 中國人民解放軍93498 部隊,河北 石家莊, 050000)
在雷達裝備的壽命周期里,裝備保障人員記錄了大量的故障原因文本資料。但這些文本資料目前只用于統(tǒng)計整理成典型故障案例,并沒有得到充分利用。且統(tǒng)計完全依靠人力,結(jié)果隨人員專業(yè)知識和經(jīng)驗的不同而有較大差異。隨著雷達裝備的發(fā)展,裝備結(jié)構(gòu)和運行模式越來越復(fù)雜,積累的故障原因文本資料越來越多,處理難度越來越高,完全依靠人工處理效率過低。所以需要通過智能化技術(shù)將非結(jié)構(gòu)化的故障原因文本組織為結(jié)構(gòu)化的知識,以便快速有效地定位故障部位,獲取故障相關(guān)信息。對故障的維修和裝備性能的分析都有較大幫助。
知識圖譜由谷歌于 2012 年 5 月 17 日提出[1],本質(zhì)上是一種揭示實體與實體以及實體與屬性之間關(guān)系的語義網(wǎng)絡(luò)[2]。在諸多領(lǐng)域得到了有效的運用,電力領(lǐng)域?qū)⑵溆糜谠O(shè)備健康管理、故障輔助決策等研究[3-5];航空領(lǐng)域?qū)⑵溆糜陲w機電源、發(fā)動機等各系統(tǒng)的故障診斷[6-7];鐵道領(lǐng)域?qū)⑵溆糜趯λ淼朗┕み^程的安全管理[8];汽車領(lǐng)域用于構(gòu)建汽車運維專家系統(tǒng)[9]。因此,通過構(gòu)建雷達裝備故障原因領(lǐng)域知識圖譜,不僅能為雷達裝備故障原因文本的深入分析,裝備故障的定位打下基礎(chǔ),還能實現(xiàn)裝備保障文本智能化處理的第一步。
實體抽取也叫實體命名識別,為知識圖譜構(gòu)建中的關(guān)鍵步驟,其效果會對后續(xù)步驟產(chǎn)生較大影響。隨著預(yù)訓(xùn)練模型的發(fā)展,中文實體命名識別效果有了較大提升[10]?;趖ransformer 的雙向編碼器表示(bidirectional encoder representation from transformers,BERT)作為預(yù)訓(xùn)練表征模型的出現(xiàn),推動了自然語言處理領(lǐng)域的較大發(fā)展[11]。BERT 模型出現(xiàn)了一些改進型。廣義自回歸預(yù)訓(xùn)練語言模型(generalized autoregressive pretraining for language understanding,XLNet)由語言建模(language modeling,LM)改進為置換語言建模(permuted language modeling,PLM),摒棄了預(yù)測下一句任務(wù)(next sentence prediction,NSP)以取得更好的效果,在閱讀理解等領(lǐng)域有較好的性能[12]。一種穩(wěn)健優(yōu)化的BERT(a robustly optimized BERT,Roberta)將靜態(tài)掩碼改進為動態(tài)掩碼,在大量數(shù)據(jù)進行長時間的預(yù)訓(xùn)練時,效果更好[13]。高效學(xué)習(xí)對令牌替換進行準確分類的編碼器(efficiently learning an encoder that classifies token replacements accurately,ELECTRA)用一個生成器產(chǎn)生掩碼的預(yù)測值分布,經(jīng)過采樣后作為輸入傳給判別器來判斷每個位置上的符號是否被置換過,具有較高的學(xué)習(xí)效率[14]。但XLNet 和Roberta 模型使用了10 倍于BERT 模型的豐富語料來提升訓(xùn)練效果,使得訓(xùn)練時間更長。ELECTRA 由于訓(xùn)練中需要保存的中間結(jié)果較多,所以對硬件要求較高;多任務(wù)學(xué)習(xí)時,需要對超參數(shù)進行調(diào)整。為減少參數(shù)的量,提升訓(xùn)練速度,通過矩陣分解和參數(shù)共享對BERT 模型進行改進的一種輕量的BERT(a lite BERT,ALBERT)模型被提出[15]。所以本文選擇以ALBERT 作為預(yù)訓(xùn)練模型,再結(jié)合注意力機制,雙向門控循環(huán)單元(bidirectional gated recurrent unit,BiGRU)和 條 件 隨 機 場(conditional random fields,CRF)構(gòu)成了 Att-ALBERT-BiGRU-CRF 模型,通過該模型進行實體命名識別,用以構(gòu)建雷達裝備故障原因領(lǐng)域知識圖譜。
通過對大量雷達故障原因文本的研究,發(fā)現(xiàn)文本主要有以下特點:
(1)文本包含了大量雷達領(lǐng)域的專有名詞和專業(yè)術(shù)語。例如方位信號,常規(guī)分詞方法會將該詞分為“方位”和“信號”2 部分,與實際語義不符。
(2)文本中的實體存在詞語嵌套的情況。如末級功放組件,實體的界限模糊。
(3)同一故障部位或故障現(xiàn)象存在不同描述,如“不跟蹤點跡”和“不跟點”、“分顯”和“分顯示器”。
(4)對數(shù)字、字母和漢字相結(jié)合的實體,如80 MHz 時鐘,±12 V 電源,A/D 脈壓板等,需要結(jié)合上下文語境進行識別。
(5)文本信息存在錯字的情況,如“感溫包”寫成“感應(yīng)包”等,使得信息難以被準確識別。
由于文本的以上特點,運用常規(guī)分詞方法難以進行有效分析。所以本文通過構(gòu)建雷達故障原因領(lǐng)域知識圖譜,為后續(xù)故障原因文本的有效分析利用打下了良好基礎(chǔ)。
本文采用模式層和數(shù)據(jù)層相結(jié)合的方法。首先,采用自頂向下的方式設(shè)計知識圖譜的模式層也叫本體層,定義模式層中關(guān)系,形成概念層次結(jié)構(gòu)。之后,在模式層的指導(dǎo)下,自底向上構(gòu)建數(shù)據(jù)層。在分析了雷達故障原因文本特點后,通過知識抽取模型,抽取實體及其關(guān)系,然后將抽取出的知識進行融合,通過知識圖譜的底層存儲方式,完成與概念節(jié)點間的映射。形成雷達故障原因知識圖譜。具體流程圖如圖1 所示。
圖1 雷達故障原因知識圖譜構(gòu)建流程Fig.1 Construction process of radar fault cause knowledge graph
模式層是知識圖譜的核心,用于限定概念及概念之間的關(guān)系。
本文在雷達裝備保障領(lǐng)域?qū)<业膸椭绿釤挸隽祟I(lǐng)域相關(guān)概念類型及關(guān)系的定義,用以形成知識體系。雷達故障原因知識圖譜的模式層由故障時機、故障部位和故障現(xiàn)象三要素以及它們之間的相互關(guān)系構(gòu)成,如圖2 所示。
圖2 雷達故障原因知識圖譜模式層Fig.2 Scheme layer of radar fault cause knowledge graph
數(shù)據(jù)層的構(gòu)建主要包含3 個部分:第1 部分是知識抽取,主要是在模式層概念的引導(dǎo)下,從各類數(shù)據(jù)源中提取實體和關(guān)系;第2 部分是知識融合,是為消除歧義,對抽取的知識進行整合,主要包括實體消歧和共指消解;第3 部分是知識更新,為保證知識圖譜的質(zhì)量,在應(yīng)用中對知識進行更新。
2.3.1 知識抽取
由于雷達故障原因本文實體類型較少,實體之間的關(guān)系也較少,且同一對實體之間只存在一種關(guān)系或無關(guān)系的情況。所以本文采用流水線式的先抽取實體再抽取關(guān)系的方法。在完成實體抽取之后,再將關(guān)系抽取問題轉(zhuǎn)化為分類問題。
(1)實體抽取
雷達故障原因本文所包含的實體如表1 所示。
表1 命名實體類別及示例Table 1 Named entity categories and examples
目前的預(yù)處理模型,ELECTRA 具有最好的效果,但ELECTRA 對長文本更加友好。由于雷達故障原因文本為字符在50 以內(nèi)的短文本,所以本文選擇不僅參數(shù)量少,且同樣性能較好的ALBERT 作為預(yù)訓(xùn)練模型。 結(jié)合注意力機制,構(gòu)成了Att-ALBERT-BiGRU-CRF 模型,如圖 3 所示。
圖3 Att-ALBERT-BiGRU-CRF 模型結(jié)構(gòu)Fig.3 Structure of Att-ALBERT-BiLSTM-CRF model
模型主要包括ALBERT、BiGRU、基于注意力機制的輔助分類器和CRF 4 個模塊。首先,將文本輸入ALBERT 預(yù)訓(xùn)練模型,以獲取文本的字向量,同時提取重要特征。然后,輸入BiGRU 層進行訓(xùn)練,得到進一步的上下文特征。在BiGRU 層的輸出結(jié)果中,通過注意力機制,引入ALBERT 層輸出文本特征作為輔助。最后,通過CRF 層,得到最終的輸出序列。
ALBERT 是瘦身版的BERT。改進主要體現(xiàn)在:通過對字向量的參數(shù)因式分解以及跨層參數(shù)共享來減少參數(shù)的量;用句子順序預(yù)測(sentence order prediction,SOP)代替NSP,以避免主題預(yù)測而只關(guān)注句子的連貫性;刪除dropout 層,使得模型更加簡化。
BiGRU 模型用于字符的標簽序列運算。GRU模型由 Kyunghyun Cho 等提出[16],由門控制信息傳遞,是長短期記憶網(wǎng)絡(luò)(long short term memory,LSTM)的簡化模型,具有相似效果[17]。由于每個隱藏單元都是獨立的重置門和更新門,BiGRU 將學(xué)習(xí)到不同時間范圍的依賴,并且參數(shù)較少,計算較為簡單,所以本文選用BiGRU 模型輸出結(jié)果作為Attention 層主分類器的輸入。
由于ALBERT 可以獲得豐富的語義信息,所以引入ALBERT 層輸出結(jié)果作為輔助,與能獲得上下文信息的BiGRU 相結(jié)合,更有利于序列標注。Attention 層的主要作用是衡量特征權(quán)重,對有幫助的信息增加權(quán)重,對干擾信息減小權(quán)重[18]。本文將2部分的輸出結(jié)果通過Attention 層結(jié)合起來,是為了讓對于序列標注更重要的特征獲得更大的權(quán)重。本文選擇由余弦距離改進而來的皮爾遜距離,作為Score 函數(shù),來計算兩部分輸出的相關(guān)性[19]:
式中:ht為 ALBERT 層輸出結(jié)果;hs為 BiGRU 層輸出該函數(shù)計算出兩部分的特征權(quán)重后,通過向量相乘得到新的特征作為CRF 層的輸入。
雖然BiGRU 層考慮了上下文語義信息,但沒有考慮標簽之間的相互關(guān)系。所以本文采用CRF 來優(yōu)化標注結(jié)果[19]。最終CRF 層輸出序列的標簽為輸出概率最大的標簽集合。
(2)關(guān)系抽取
關(guān)系抽取主要是從數(shù)據(jù)源中提取實體之間的關(guān)系。本文通過提取出的實體對對關(guān)系進行分類,主要分為表2 所示類型。如此,將關(guān)系抽取問題轉(zhuǎn)化為分類問題。將所有實體兩兩組合,形成實體對,篩選出表2 中的所有實體對,然后對實體對進行關(guān)系分類,就可得到實體間的所有關(guān)系。
表2 實體間的關(guān)系類型Table 2 Relation types of entities
采用ALBERT-BiGRU-Att 作為分類模型,加入注意力機制是為了讓模型給與分類相關(guān)的信息更多的關(guān)注度。模型結(jié)構(gòu)如圖4 所示。
圖4 ALBERT-BiGRU-Att 模型結(jié)構(gòu)Fig.4 Structure of ALBERT-BiGRU-Att model
通過賦予對關(guān)系分類有重要作用的字更高的權(quán)重,來提高模型的準確率。
2.3.2 知識融合
知識融合中的實體消歧部分主要是對相同描述不同含義的實體進行區(qū)分。共指消解是將具有相同含義不同描述的多個實體進行合并。由于本文的數(shù)據(jù)源雷達故障原因文本屬于雷達專業(yè)領(lǐng)域,從中抽取出的實體含義范圍較窄,專業(yè)性較強,所以實體歧義的問題基本不存在。但由于撰寫人員的專業(yè)素質(zhì)各不相同,存在較多的共指問題。為了解決上述問題,使用開源的中文自然語言處理工具Synonyms 進行數(shù)據(jù)融合,Synonyms 被譽為最好用的中文同義詞詞庫。
2.3.3 知識更新
隨著時間的推移和雷達裝備的發(fā)展,雷達型號和故障原因均在不斷更新。所以,知識圖譜中的知識也需要更新。更新包括模式層和數(shù)據(jù)層2 方面:對模式層的更新主要是在當從新的數(shù)據(jù)源中獲得了新的概念時,需要將新的概念更新到模式層中;對數(shù)據(jù)層的更新主要是在沒有新概念而只是獲得了新的實體或者關(guān)系時,采用增量更新的方式[20],向現(xiàn)有知識圖譜中添加新知識。除了新增外,對失效知識的刪減也屬于知識更新的一部分,這部分工作通過邀請專家定期對知識圖譜中知識的有效性進行評估來完成。
3.1.1 實驗環(huán)境配置與參數(shù)設(shè)置
本文實驗基于windows 操作系統(tǒng),硬件配置為AMDRyzen5 3600CPU,16G 內(nèi)存,顯卡為 RXT 3070 8G,軟件環(huán)境為PyTorch1.10.0+cu113。
通過實驗確定模型參數(shù)中迭代次數(shù)的值。迭代次數(shù)對模型性能的影響如圖5 所示。
圖5 迭代次數(shù)對模型識別效果的影響Fig.5 Effect of the number of epoch on the recognition effect of the model
隨著迭代次數(shù)的增加,模型的準確率會隨之增加,當?shù)螖?shù)達到10 后,F(xiàn)1值趨于穩(wěn)定,所以本文選擇迭代次數(shù)為10。最大序列長度為64,批尺寸為16,學(xué)習(xí)率為 5×10-5,字向量維度為 100,注意力輸出維度為100。
3.1.2 評價指標
選擇準確率P、召回率R 和F1值作為評價指標,指標值越高,代表模型的準確率、召回率和綜合性能越好。指標值的計算以實體數(shù)為計量單位。
3.1.3 數(shù)據(jù)準備
對來自不同單位的2 398 份故障原因文本進行實體識別,將待識別的實體分為故障時機、故障部位(故障分機、故障單元和故障元器件)和故障現(xiàn)象。對文本中的實體進行人工標注,將2 398 份文本按9∶1 的比例隨機劃分為訓(xùn)練集和測試集。
3.1.4 實驗結(jié)果及分析
為驗證本文Att-ALBERT-BiGRU-CRF 模型的有效性,設(shè)置對比實驗。每種模型的識別結(jié)果軟件截圖如圖6 所示。
圖 6 中,GZSJ 表示故障時機,GZFJ 表示故障分機,GZDY 表示故障單元,GZYQJ 表示故障元器件,GZXX 表示故障現(xiàn)象。實驗結(jié)果對比如表3 和圖7所示。
表3 不同模型實體命名識別結(jié)果對比Table 3 Comparison of different entity recognition methods %
圖6 不同模型的實體命名識別結(jié)果Fig.6 Result of different entity recognition methods
由表3 和圖7 都可以看出后3 個模型的識別效果更佳,特別是對于故障元器件的識別效果,有明顯提升。由于實際故障原因文本里對故障元器件的描述較少,導(dǎo)致訓(xùn)練樣本較少,所以BiLSTM 和BiLSTM-CRF 模型對故障元器件實體的識別效果不太理想。而加入了ALBERT 預(yù)訓(xùn)練模型之后,效果大為改進。因為ALBERT 預(yù)訓(xùn)練模型相當于事先預(yù)訓(xùn)練好的通用模型,在領(lǐng)域運用時,只需加入少量的領(lǐng)域訓(xùn)練數(shù)據(jù),精加工模型,就能適用于不同的專業(yè)領(lǐng)域。加入了注意力機制的Att-ALBERTBiGRU-CRF 模型效果更佳,因為本文中的實體存在一定復(fù)合詞嵌套情況,注意力機制的加入更有利于對這類實體的識別。
圖7 不同模型實體命名識別效果Fig.7 Result of different entity recognition methods
3.2.1 實驗?zāi)P蛥?shù)和評價指標
模型參數(shù)設(shè)置迭代次數(shù)為10。最大序列長度為 64,批尺寸為 32,學(xué)習(xí)率為 5×10-5,字向量維度為100,注意力輸出維度為100。
使用準確率P、召回率R 和F1值作為評價指標,指標值越高代表模型性能越好。
3.2.2 實驗結(jié)果與及分析
實體間關(guān)系抽取實驗結(jié)果如表4 所示。
表4 實體間關(guān)系抽取實驗結(jié)果Table 4 Results of entity relation extraction %
模型在所有關(guān)系類別上總的F1值為92.44%。模型對無關(guān)系類型的抽取效果較差,因為在實際的數(shù)據(jù)中,無關(guān)系類型較少,訓(xùn)練數(shù)據(jù)所占比例較小。
將識別出的實體和抽取出的關(guān)系構(gòu)建了雷達故障原因知識圖譜,部分如圖8 所示。
圖8 某雷達故障原因知識圖譜(部分)Fig.8 Knowledge graph of a radar fault cause(part)
本文運用模式層和數(shù)據(jù)層相結(jié)合的方式構(gòu)建了雷達故障原因知識圖譜。針對雷達故障原因文本的特點,運用Att-ALBERT-BiGRU-CRF 模型,對文本中的實體進行了抽取。實驗證明,該模型在標注集樣本量較小的情況下,能較好地識別出故障原因文本中的命名實體,對由復(fù)合詞組成的實體也有較好的識別效果。運用ALBERT-BiGRU-Att 模型對實體間的關(guān)系進行了抽取,通過識別出的實體和實體之間的關(guān)系建立了雷達故障原因領(lǐng)域知識圖譜,為后續(xù)的智能化處理打下了基礎(chǔ)。