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