聶同攀,曾繼炎,程玉杰,*,馬梁
1. 北京航空航天大學(xué) 可靠性工程研究所,北京 100083 2. 航空工業(yè)第一飛機(jī)設(shè)計(jì)研究院,西安 710089 3. 可靠性與環(huán)境工程技術(shù)國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,北京 100083 4. 北京航空航天大學(xué) 可靠性與系統(tǒng)工程學(xué)院,北京 100083
隨科技水平日益發(fā)展,飛機(jī)系統(tǒng)的復(fù)雜程度日益上升,其故障的嚴(yán)重性也不斷提高。一次嚴(yán)重的飛機(jī)系統(tǒng)故障往往會(huì)造成巨大的財(cái)產(chǎn)損失乃至人員傷亡。為減輕飛機(jī)系統(tǒng)故障帶來(lái)的嚴(yán)重后果,需在故障早期進(jìn)行快速、準(zhǔn)確的故障診斷并予以排除。
飛機(jī)電源系統(tǒng)是飛機(jī)最重要的系統(tǒng)部件之一,承擔(dān)著為飛行控制、導(dǎo)航和無(wú)線電通信等裝置提供電力的功能,關(guān)系著飛機(jī)上各種用電設(shè)備的正常運(yùn)行和飛行安全。近年來(lái),飛機(jī)機(jī)載設(shè)備的電氣化程度越來(lái)越高,對(duì)作為機(jī)載設(shè)備能量來(lái)源的飛機(jī)電源系統(tǒng)提出了越來(lái)越高的可靠性要求。目前,飛機(jī)電源系統(tǒng)故障診斷方法主要可分為基于數(shù)據(jù)的方法和基于知識(shí)的方法。目前學(xué)者們廣泛研究的是基于數(shù)據(jù)的方法,即通過(guò)傳統(tǒng)機(jī)器學(xué)習(xí)或深度學(xué)習(xí)等方法挖掘數(shù)據(jù)中的信息,訓(xùn)練模型以進(jìn)行故障診斷?;跀?shù)據(jù)的方法不需要很多的專(zhuān)家知識(shí),在數(shù)據(jù)充足的情況下模型通常能取得較高的準(zhǔn)確度。然而基于數(shù)據(jù)的方法也存在兩個(gè)問(wèn)題:一個(gè)問(wèn)題是可解釋性,傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型對(duì)于使用者來(lái)說(shuō)是一個(gè)黑盒,無(wú)法就輸出的故障診斷結(jié)果給出解釋?zhuān)档土嗽趯?shí)際工程應(yīng)用中的可信度;另一個(gè)問(wèn)題則是無(wú)法有效地利用已有的先驗(yàn)知識(shí),如故障隔離手冊(cè)(Fault Isolation Manual,F(xiàn)IM)等非結(jié)構(gòu)化知識(shí),造成了非結(jié)構(gòu)化數(shù)據(jù)資源的浪費(fèi)。
知識(shí)圖譜由谷歌公司于2012年提出,是一種從非結(jié)構(gòu)化知識(shí)中抽取實(shí)體和關(guān)系并以有向圖的形式存儲(chǔ)實(shí)體及其間關(guān)系的知識(shí)庫(kù),能實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化知識(shí)的統(tǒng)一規(guī)范化表達(dá)。知識(shí)圖譜是一個(gè)由多個(gè)節(jié)點(diǎn)和多條邊組成的語(yǔ)義圖。每個(gè)節(jié)點(diǎn)代表一個(gè)概念或事物。概念指一類(lèi)事物的總稱(chēng),如學(xué)生等;事物是指一個(gè)具體的人、事或物,如學(xué)生的具體名字。每條邊代表兩個(gè)節(jié)點(diǎn)之間的語(yǔ)義關(guān)系。
知識(shí)圖譜自誕生以來(lái)得到了廣泛的應(yīng)用,其應(yīng)用形式主要包括搜索、問(wèn)答、推理和推薦等。王萌等考慮到用戶(hù)在不能給出明確的查詢(xún)意圖時(shí)搜索系統(tǒng)難以精準(zhǔn)捕獲用戶(hù)興趣的問(wèn)題,提出了人機(jī)混合的知識(shí)圖譜主動(dòng)搜索。曹明宇等設(shè)計(jì)了基于知識(shí)圖譜的原發(fā)性肝癌知識(shí)問(wèn)答系統(tǒng),針對(duì)成人中常見(jiàn)的原發(fā)性肝癌構(gòu)建了原發(fā)性肝癌知識(shí)圖譜。張鵬舉等提出了一種新的基于多特征實(shí)體消歧的中文知識(shí)圖譜問(wèn)答系統(tǒng)。于娟等提出了基于圖數(shù)據(jù)庫(kù)的人物關(guān)系知識(shí)圖譜推理方法,以此發(fā)現(xiàn)隱含人物關(guān)系并檢測(cè)人物關(guān)系數(shù)據(jù)中存在的不一致,進(jìn)而支持組織基于人物關(guān)系的管理決策。吳運(yùn)兵等提出了一種基于路徑張量分解的知識(shí)圖譜推理算法。余敦輝等提出了基于知識(shí)圖譜和重啟隨機(jī)游走的跨平臺(tái)用戶(hù)推薦方法。李浩等將外部評(píng)分和電影自身知識(shí)相結(jié)合,提出了一種基于循環(huán)知識(shí)圖譜和協(xié)同過(guò)濾的電影推薦模型。
借鑒知識(shí)圖譜在醫(yī)療、社交和影評(píng)等諸多領(lǐng)域的成功應(yīng)用,國(guó)外已有相關(guān)文獻(xiàn)將知識(shí)圖譜引入故障診斷領(lǐng)域,輔助實(shí)現(xiàn)系統(tǒng)故障診斷。Liu等指出多種鐵路操作故障及危害因其間的聯(lián)系構(gòu)成了因果網(wǎng)絡(luò);該研究針對(duì)鐵路操作故障因果網(wǎng)絡(luò)使用知識(shí)圖譜探索鐵路操作故障,在異構(gòu)網(wǎng)絡(luò)中描述了故障和危害,揭示了故障的潛在規(guī)則并據(jù)此提出預(yù)防措施。Ou等指出隨電網(wǎng)規(guī)模的持續(xù)增長(zhǎng)和智慧電網(wǎng)的快速發(fā)展,電力無(wú)線專(zhuān)網(wǎng)的覆蓋率逐漸上升;在這個(gè)過(guò)程中,如何有效使用電網(wǎng)智慧終端的信息實(shí)現(xiàn)無(wú)人值守網(wǎng)絡(luò)監(jiān)控和自動(dòng)運(yùn)維成為當(dāng)前需要解決的問(wèn)題;該研究針對(duì)電力無(wú)線專(zhuān)網(wǎng),使用終端信息和故障信息等構(gòu)建了知識(shí)圖譜,以此實(shí)現(xiàn)了電力無(wú)線專(zhuān)網(wǎng)故障診斷和決策制定。Feng等指出隨著國(guó)家電網(wǎng)的物聯(lián)網(wǎng)建設(shè),大量異構(gòu)終端的接入使電網(wǎng)的采集和操作壓力驟增,用電信息采集系統(tǒng)故障運(yùn)維知識(shí)庫(kù)(FOM-KB)將難以滿(mǎn)足大量運(yùn)維信息條件下高效智能決策制定的需求;該研究提出了一種用電信息采集系統(tǒng)的知識(shí)問(wèn)答系統(tǒng),實(shí)現(xiàn)了節(jié)點(diǎn)與邊的高效遍歷搜索,提高了推理效率并支持實(shí)現(xiàn)高效和智能化的采集與維護(hù)故障診斷。在中國(guó),目前知識(shí)圖譜在故障診斷領(lǐng)域中的應(yīng)用尚處于起步階段。劉瑞宏等提出了電信領(lǐng)域的知識(shí)圖譜構(gòu)建方法,該方法將電信網(wǎng)絡(luò)領(lǐng)域零散的專(zhuān)家知識(shí)及產(chǎn)品、案例知識(shí)和故障數(shù)據(jù)進(jìn)行了有效關(guān)聯(lián),構(gòu)建了電信領(lǐng)域知識(shí)圖譜;他們使用該知識(shí)圖譜開(kāi)展網(wǎng)絡(luò)故障智能診斷,輔助解決網(wǎng)絡(luò)運(yùn)維領(lǐng)域的故障問(wèn)題。李樂(lè)樂(lè)等研究了面向飛機(jī)維修與維護(hù)的知識(shí)圖譜構(gòu)建和應(yīng)用方法,該方法利用知識(shí)圖譜和SQLite數(shù)據(jù)庫(kù)構(gòu)建了飛機(jī)維護(hù)維修知識(shí)庫(kù);他們使用某航空公司提供的相關(guān)數(shù)據(jù)集建立了知識(shí)庫(kù),并利用數(shù)據(jù)庫(kù)對(duì)飛機(jī)故障進(jìn)行了時(shí)間維度和空間維度的分析。然而,這些研究主要集中在知識(shí)圖譜構(gòu)建層面,涉及應(yīng)用的也只是提出了實(shí)現(xiàn)方法,而未能實(shí)際應(yīng)用,尤其是關(guān)于飛機(jī)電源系統(tǒng)的知識(shí)圖譜構(gòu)建方法及應(yīng)用尚鮮見(jiàn)報(bào)道。
考慮到飛機(jī)電源系統(tǒng)在研制生產(chǎn)和運(yùn)行使用階段會(huì)產(chǎn)生包括設(shè)計(jì)生產(chǎn)數(shù)據(jù)、運(yùn)行使用數(shù)據(jù)、維修保障數(shù)據(jù)等大量非結(jié)構(gòu)化文本數(shù)據(jù),利用知識(shí)圖譜技術(shù)可從上述非結(jié)構(gòu)化文本中提取知識(shí),實(shí)現(xiàn)非結(jié)構(gòu)化知識(shí)的統(tǒng)一規(guī)范化表達(dá),進(jìn)而支持電源系統(tǒng)的故障診斷,提高基于知識(shí)的故障診斷自主化程度、可解釋性和診斷精度,本文提出了一套面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜構(gòu)建及應(yīng)用流程,以利用上述非結(jié)構(gòu)化文本。首先,根據(jù)所用飛機(jī)電源系統(tǒng)非結(jié)構(gòu)化文本特性及專(zhuān)家知識(shí)構(gòu)建知識(shí)圖譜本體;然后,利用BMEO標(biāo)注后的文本訓(xùn)練基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)模型,實(shí)現(xiàn)實(shí)體抽??;進(jìn)一步,利用關(guān)系標(biāo)注后的文本訓(xùn)練基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)模型,實(shí)現(xiàn)關(guān)系抽取;在此基礎(chǔ)上,根據(jù)本體和實(shí)體抽取與關(guān)系抽取結(jié)果構(gòu)建面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜;最后,基于構(gòu)建的知識(shí)圖譜實(shí)現(xiàn)包括搜索、推薦和問(wèn)答等的智能應(yīng)用。
知識(shí)圖譜的構(gòu)建可分為自頂向下(Top-down)和自底向上(Bottom-up)兩種方式,其中自頂向下的方式指先構(gòu)建本體,而后根據(jù)本體進(jìn)行實(shí)體和關(guān)系的抽?。蛔缘紫蛏系姆绞街赶冗M(jìn)行實(shí)體和關(guān)系的抽取,而后根據(jù)抽取結(jié)果歸納聚類(lèi),抽象出本體。自頂向下的構(gòu)建方法適合擁有明確知識(shí)范圍的專(zhuān)業(yè)領(lǐng)域知識(shí)圖譜,自底向上的構(gòu)建方法適合知識(shí)覆蓋范圍較廣的通用知識(shí)圖譜。由于在故障診斷領(lǐng)域通常具有較為明確的專(zhuān)業(yè)領(lǐng)域知識(shí),因此主要針對(duì)自頂向下的知識(shí)圖譜構(gòu)建方法進(jìn)行介紹。
自頂向下的知識(shí)圖譜構(gòu)建方法包含4個(gè)步驟:本體構(gòu)建、實(shí)體抽取、關(guān)系抽取和圖譜構(gòu)建,如圖1所示。
圖1 知識(shí)圖譜自頂向下構(gòu)建流程圖Fig.1 Flowchart of top-down knowledge graph construction
本體是對(duì)概念建模的規(guī)則,是對(duì)客觀世界的抽象描述,是針對(duì)概念及概念間的聯(lián)系以形式化方式給出的明確定義。在自頂向下的知識(shí)圖譜構(gòu)建流程中,本體構(gòu)建是從最頂層的概念開(kāi)始構(gòu)建本體,細(xì)化為實(shí)體和關(guān)系。本體構(gòu)建包括確定實(shí)體類(lèi)型和確定關(guān)系類(lèi)型。其中確定關(guān)系類(lèi)型包括確定兩個(gè)實(shí)體類(lèi)型之間是否存在關(guān)系、確定兩個(gè)實(shí)體類(lèi)型之間為何種關(guān)系和兩個(gè)實(shí)體類(lèi)型中頭尾實(shí)體分別是哪個(gè)。
實(shí)體指現(xiàn)實(shí)中的具體事物或概念,在完成本體構(gòu)建后,根據(jù)本體進(jìn)行實(shí)體抽取。實(shí)體抽取一般方法為采用機(jī)器學(xué)習(xí)技術(shù),從數(shù)據(jù)源中自動(dòng)或半自動(dòng)抽取實(shí)體。將原始數(shù)據(jù)中一部分劃為訓(xùn)練集,進(jìn)行標(biāo)注后用于訓(xùn)練實(shí)體抽取模型。常用的實(shí)體抽取方法包括基于隱馬爾可夫模型(Hidden Markov Model,HMM)的方法、基于條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)的方法和基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)的方法。實(shí)體抽取模型的有效性一般通過(guò)準(zhǔn)確率和召回率等指標(biāo)進(jìn)行評(píng)判。
關(guān)系指實(shí)體間的聯(lián)系,在完成實(shí)體抽取后,根據(jù)實(shí)體進(jìn)行關(guān)系抽取。關(guān)系抽取一般方法為采用機(jī)器學(xué)習(xí)技術(shù)從數(shù)據(jù)源中自動(dòng)或半自動(dòng)地抽取關(guān)系。常用的關(guān)系抽取方法包括基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的關(guān)系抽取和基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Attention-Based Bi-directional LSTM)的關(guān)系抽取。關(guān)系抽取模型的有效性一般通過(guò)準(zhǔn)確率和召回率等指標(biāo)進(jìn)行評(píng)判。
根據(jù)抽取出的實(shí)體、關(guān)系構(gòu)建圖數(shù)據(jù)庫(kù)完成知識(shí)圖譜的構(gòu)建。常用的構(gòu)建知識(shí)圖譜工具包括Neo4j、ArangoDB和OrientDB。
在構(gòu)建好的圖譜基礎(chǔ)上,可實(shí)現(xiàn)搜索、問(wèn)答、推理和推薦等知識(shí)圖譜應(yīng)用。
如圖2所示,面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜構(gòu)建及應(yīng)用流程包括本體構(gòu)建、基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取、基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的關(guān)系抽取、基于Neo4j的知識(shí)圖譜構(gòu)建及基于知識(shí)圖譜的智能應(yīng)用。
圖2 面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜構(gòu)建及 應(yīng)用流程圖Fig.2 Flowchart of knowledge graph construction and application for fault diagnosis of aircraft power system
首先,根據(jù)飛機(jī)電源系統(tǒng)故障診斷語(yǔ)料情況和圖譜需求構(gòu)建本體,確定實(shí)體類(lèi)型和關(guān)系類(lèi)型。
構(gòu)建本體后,將飛機(jī)電源系統(tǒng)故障診斷手冊(cè)中部分語(yǔ)料分為訓(xùn)練集和測(cè)試集,對(duì)訓(xùn)練集和測(cè)試集進(jìn)行實(shí)體標(biāo)注。使用訓(xùn)練集訓(xùn)練基于雙向LSTM的實(shí)體抽取模型,并使用測(cè)試集測(cè)試實(shí)體抽取模型效果。使用訓(xùn)練好的實(shí)體抽取模型抽取故障診斷手冊(cè)語(yǔ)料中的實(shí)體。
最后,對(duì)訓(xùn)練集和測(cè)試集進(jìn)行關(guān)系標(biāo)注。使用訓(xùn)練集訓(xùn)練基于注意力機(jī)制的雙向LSTM的關(guān)系抽取模型,并使用測(cè)試集測(cè)試關(guān)系抽取模型效果。結(jié)合實(shí)體抽取結(jié)果,使用訓(xùn)練好的關(guān)系抽取模型抽取故障診斷手冊(cè)語(yǔ)料中的關(guān)系。
完成實(shí)體抽取和關(guān)系抽取后,使用知識(shí)圖譜構(gòu)建工具Neo4j,利用抽取出的飛機(jī)電源系統(tǒng)故障診斷知識(shí)構(gòu)建面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜。
在上述工作基礎(chǔ)上,基于構(gòu)建的飛機(jī)電源系統(tǒng)知識(shí)圖譜,以智慧搜索與推薦及智能問(wèn)答等形式實(shí)現(xiàn)基于知識(shí)圖譜的智能應(yīng)用。
在構(gòu)建針對(duì)某一專(zhuān)業(yè)領(lǐng)域的圖譜時(shí),應(yīng)根據(jù)專(zhuān)家知識(shí)先行構(gòu)建該圖譜的本體,為后續(xù)的實(shí)體抽取和關(guān)系抽取提供規(guī)范。本方法為針對(duì)特定領(lǐng)域,即飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜,因而選擇使用專(zhuān)家知識(shí)人工構(gòu)建本體。
構(gòu)建本體包括規(guī)定實(shí)體類(lèi)型、規(guī)定關(guān)系類(lèi)型和規(guī)定關(guān)系類(lèi)型的頭尾實(shí)體類(lèi)型。
對(duì)于飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜,可用的實(shí)體類(lèi)型主要為排故手冊(cè)和維修手冊(cè)等故障信息,包括故障類(lèi)型、故障表現(xiàn)、故障原因、故障影響、解決措施等。
在知識(shí)圖譜中,實(shí)體是其中的一個(gè)個(gè)節(jié)點(diǎn)。使用非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建一個(gè)知識(shí)圖譜需先根據(jù)本體對(duì)數(shù)據(jù)進(jìn)行實(shí)體抽取。常用的實(shí)體抽取算法中,雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法能像長(zhǎng)短期記憶網(wǎng)絡(luò)算法一樣處理長(zhǎng)期依賴(lài)問(wèn)題,對(duì)于文字這樣字符之間相互影響在距離上跨度較大的數(shù)據(jù)有較好的效果。
2.3.1 雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法
雙向LSTM算法是一種常用的實(shí)體抽取算法。其原理是將時(shí)序方向相反的兩個(gè)LSTM連接到同一個(gè)輸出。在進(jìn)行實(shí)體抽取時(shí),會(huì)同時(shí)用到上文和下文的信息。傳統(tǒng)的LSTM算法只能使用上文信息,而無(wú)法利用下文信息,難以用于實(shí)現(xiàn)準(zhǔn)確的實(shí)體抽取。雙向LSTM算法通過(guò)將時(shí)序方向相反的兩個(gè)LSTM連接到同一個(gè)輸出,實(shí)現(xiàn)了上下文信息的利用,解決了LSTM算法無(wú)法使用下文信息的問(wèn)題,改善了實(shí)體抽取的效果。雙向LSTM結(jié)構(gòu)圖如圖3所示。
圖3 雙向LSTM結(jié)構(gòu)示意圖Fig.3 Schematic diagram of bi-directional LSTM
構(gòu)成雙向LSTM的兩個(gè)不同方向的LSTM之間不共用狀態(tài),即正向LSTM的輸出狀態(tài)只會(huì)對(duì)正向LSTM產(chǎn)生影響,反向LSTM的輸出狀態(tài)只會(huì)對(duì)反向LSTM產(chǎn)生影響,它們之間沒(méi)有直接的連接,不會(huì)互相影響。
每一個(gè)時(shí)間節(jié)點(diǎn)的輸入會(huì)分別傳到正向和反向LSTM,根據(jù)各自的狀態(tài)產(chǎn)生輸出,這兩份輸出會(huì)一起連接到雙向LSTM的輸出節(jié)點(diǎn),共同組合成最終輸出。雙向LSTM中雖然兩個(gè)方向的LSTM基本沒(méi)有交集,但因它們共同合成了輸出,所以對(duì)當(dāng)前時(shí)間節(jié)點(diǎn)輸出的貢獻(xiàn)和造成的損失就可以在訓(xùn)練中計(jì)算出來(lái),并且它們的參數(shù)也會(huì)根據(jù)梯度被優(yōu)化到合適的值。
雙向LSTM在訓(xùn)練時(shí)和普通單向LSTM非常類(lèi)似,因?yàn)閮蓚€(gè)不同方向的LSTM之間幾乎沒(méi)有交集,因此可分別展開(kāi)為普通的前饋網(wǎng)絡(luò)。不過(guò)在使用反向傳播算法訓(xùn)練時(shí),無(wú)法同時(shí)更新?tīng)顟B(tài)和輸出。同時(shí)正向狀態(tài)在時(shí)未知,且反向狀態(tài)在時(shí)未知,即狀態(tài)在各自方向的開(kāi)始處都是未知的,在這里就需要進(jìn)行人工設(shè)置。此外,正向狀態(tài)的導(dǎo)數(shù)在時(shí)未知,且反向狀態(tài)的導(dǎo)數(shù)在時(shí)未知,即狀態(tài)的導(dǎo)數(shù)在結(jié)尾處未知,這里一般需設(shè)為0,代表此時(shí)對(duì)參數(shù)更新不重要,然后開(kāi)始正式訓(xùn)練步驟:
對(duì)數(shù)據(jù)做前向迭代操作,先沿著到方向計(jì)算正向LSTM的狀態(tài),再沿著到方向計(jì)算反向LSTM的狀態(tài),最后獲得輸出。
進(jìn)行反向迭代操作,即對(duì)目標(biāo)函數(shù)求導(dǎo)的操作,先對(duì)輸出求導(dǎo),然后沿著到方向計(jì)算正向LSTM的狀態(tài)導(dǎo)數(shù),再沿著到方向計(jì)算反向LSTM的導(dǎo)數(shù)。
根據(jù)求得的梯度值更新模型的參數(shù),完成一次迭代訓(xùn)練。
輸出層是將雙向LSTM神經(jīng)網(wǎng)絡(luò)各個(gè)時(shí)刻的輸出進(jìn)行求和取平均,最終得到了對(duì)象詞在當(dāng)前句子環(huán)境下的語(yǔ)義表示,這個(gè)向量將作為編碼器的輸出傳遞給分類(lèi)器。
2.3.2 基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取流程
基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取流程分為數(shù)據(jù)集劃分、實(shí)體標(biāo)注、模型訓(xùn)練、模型測(cè)試和實(shí)體抽取。基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取流程圖如圖4所示。
圖4 基于雙向LSTM算法的實(shí)體抽取流程圖Fig.4 Flowchart of entity extraction based on bi-directional LSTM
選取部分原始語(yǔ)料,以8∶2的比例劃分為訓(xùn)練集和測(cè)試集。對(duì)訓(xùn)練集和測(cè)試集進(jìn)行BMEO標(biāo)注。BMEO標(biāo)注是一種常用的實(shí)體標(biāo)注方法,該方法通過(guò)給語(yǔ)料中的每一個(gè)字符添加表征其所在實(shí)體的位置和實(shí)體類(lèi)型而標(biāo)注實(shí)體。例如:語(yǔ)料中存在“故障模式”實(shí)體類(lèi)型,則標(biāo)簽“B-故障模式”代表該字符是一個(gè)故障模式實(shí)體的首字符,B為“Begin”的縮寫(xiě);標(biāo)簽“M-故障模式”代表該字符是一個(gè)故障模式實(shí)體的中間字符,M為“Middle”的縮寫(xiě);標(biāo)簽“E-故障模式”代表該字符是一個(gè)故障模式實(shí)體的尾字符,E為“End”的縮寫(xiě);標(biāo)簽“O”代表該字符不在實(shí)體中,O為“Outside”的縮寫(xiě)。
在完成實(shí)體標(biāo)注后,以訓(xùn)練集語(yǔ)料為輸入,訓(xùn)練集標(biāo)注結(jié)果為標(biāo)簽,訓(xùn)練基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的實(shí)體抽取模型。
使用測(cè)試集測(cè)試訓(xùn)練好的模型實(shí)體抽取效果,將模型從測(cè)試集語(yǔ)料中抽取出的標(biāo)簽與人工標(biāo)注的標(biāo)簽進(jìn)行對(duì)比,計(jì)算準(zhǔn)確率和召回率:
(1)
(2)
式中:為準(zhǔn)確率(Precision);為召回率(Recall);為正類(lèi)預(yù)測(cè)為正類(lèi)(True Positive)的數(shù)量,即被實(shí)際抽取結(jié)果為某一標(biāo)簽,且人工標(biāo)注也是該標(biāo)簽的字符數(shù)量;為負(fù)類(lèi)預(yù)測(cè)為正類(lèi)(False Positive)的數(shù)量,即實(shí)際抽取結(jié)果為某一標(biāo)簽,但人工標(biāo)注不是該標(biāo)簽的字符數(shù)量;為正類(lèi)預(yù)測(cè)為負(fù)類(lèi)(False Negative)的數(shù)量,即人工標(biāo)注為某一標(biāo)簽,但實(shí)際抽取結(jié)果不是該標(biāo)簽的字符數(shù)量。此外為負(fù)類(lèi)預(yù)測(cè)為負(fù)類(lèi)(True Negative),即實(shí)際抽取結(jié)果不是某一標(biāo)簽,且人工標(biāo)注也不是該標(biāo)簽的字符數(shù)量。、、、的關(guān)系如圖5所示。
圖5 TP、FP、TN、FN之間的關(guān)系Fig.5 Relationship between TP, FP, TN, FN
使用經(jīng)測(cè)試后訓(xùn)練好的模型抽取剩余原始語(yǔ)料中的實(shí)體,完成基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取。
在知識(shí)圖譜中,關(guān)系是連接兩個(gè)實(shí)體之間的邊。在對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行實(shí)體抽取后,需根據(jù)實(shí)體抽取結(jié)果再進(jìn)行關(guān)系抽取。在常用的關(guān)系抽取算法中,基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)因引入了注意力機(jī)制,可更好地分配計(jì)算資源,提高模型訓(xùn)練的效果?;谧⒁饬C(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)關(guān)系抽取算法是由Zhou等于2016年在自然語(yǔ)言處理(Natural Language Processing,NLP)領(lǐng)域的國(guó)際頂級(jí)會(huì)議Association for Computational Linguistics (ACL)上提出的。Zhou等指出傳統(tǒng)的關(guān)系抽取算法需詞性和最短依賴(lài)路徑等高階特征,導(dǎo)致計(jì)算量的消耗,同時(shí)注意到在待進(jìn)行關(guān)系抽取的一個(gè)句子中,存在對(duì)關(guān)系有決定性影響的詞匯,而引入注意力機(jī)制可用于找到這個(gè)詞語(yǔ),以此獲取句子中最重要的語(yǔ)義信息。相比于傳統(tǒng)關(guān)系抽取算法,基于注意力機(jī)制的雙向LSTM算法可在不使用詞性和最短依賴(lài)路徑等高階特征的情況下實(shí)現(xiàn)關(guān)系抽取,減少計(jì)算資源的消耗。因此選取基于注意力機(jī)制的雙向LSTM算法進(jìn)行關(guān)系抽取。
2.4.1 基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法
基于注意力機(jī)制的雙向LSTM算法是將注意力模型引入雙向LSTM中得到的算法。注意力模型是一種模擬人腦注意力的模型,其核心在于借鑒了人腦在特定時(shí)刻對(duì)事物的注意力會(huì)集中在某一特定的地方、忽略其他部分的特點(diǎn)。注意力模型是一種影響資源分配的模型,其原理是對(duì)于關(guān)鍵部分分配較多的注意力,對(duì)于其他部分分配較少的注意力,合理利用有限的計(jì)算資源,并且還可以去除非關(guān)鍵因素的影響。
基于注意力機(jī)制的雙向LSTM為在輸出層和隱藏層之間加入了注意力層,調(diào)整隱藏層輸出的權(quán)重。其結(jié)構(gòu)如圖6所示。
圖6 基于注意力機(jī)制的雙向LSTM結(jié)構(gòu)示意圖Fig.6 Schematic diagram of structure of attention-based bi-directional LSTM
圖6中,為雙向LSTM中各自獨(dú)立方向最終隱藏層狀態(tài)值的和,稱(chēng)為雙向LSTM的最終狀態(tài);為所有時(shí)刻下隱藏層單元狀態(tài)對(duì)于最終狀態(tài)的注意力概率分布,其中的分量表示時(shí)刻下雙向LSTM狀態(tài)對(duì)最終狀態(tài)的注意力概率,由該時(shí)刻下各自獨(dú)立方向的狀態(tài)相加而得,為經(jīng)注意力加權(quán)后的文本特征向量。
基于注意力機(jī)制的模型一般都包含了兩部分計(jì)算過(guò)程,一是關(guān)于注意力概率分布的計(jì)算過(guò)程,二是基于注意力分布的最終特征計(jì)算過(guò)程。
為時(shí)刻下的輸出數(shù)據(jù)對(duì)于最終狀態(tài)的注意力概率,其表達(dá)式為
(3)
(4)
式中:為時(shí)刻下的雙向的隱藏層狀態(tài)值的和;為輸入序列元素的個(gè)數(shù);為類(lèi)別標(biāo)簽的數(shù)量;為權(quán)重矩陣。式(4)利用softmax函數(shù)作為注意力概率分布的計(jì)算方式。
基于注意力分布的最終特征計(jì)算公式為
(5)
在得到基于注意力機(jī)制的文本特征向量后,通過(guò)輸出層的softmax函數(shù),計(jì)算得出分類(lèi)標(biāo)簽的概率分布,計(jì)算過(guò)程表示為
(6)
′=
(7)
式中:為模型預(yù)測(cè)出的類(lèi)別的概率分布;為模型輸出層的權(quán)重矩陣;′att()為向量′中第個(gè)分量值,向量長(zhǎng)度與分類(lèi)標(biāo)簽的數(shù)量相等。經(jīng)過(guò)softmax函數(shù)分類(lèi)可得基于注意力機(jī)制下文本類(lèi)別概率分布,并與真實(shí)類(lèi)別分布求取交叉熵?fù)p失,表示為
(,)=-lg()
(8)
2.4.2 基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的關(guān)系抽取流程
基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的關(guān)系抽取分為實(shí)體抽取、數(shù)據(jù)集劃分、關(guān)系標(biāo)注、模型訓(xùn)練、模型測(cè)試和關(guān)系抽取。圖7為基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的關(guān)系抽取流程圖。
圖7 基于注意力機(jī)制的雙向LSTM的關(guān)系抽取流程圖Fig.7 Flowchart of relation extraction based on attention-based bi-directional LSTM
使用基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的實(shí)體抽取模型抽取原始語(yǔ)料中的實(shí)體,生成“頭實(shí)體 尾實(shí)體 關(guān)系 所在句子”形式的語(yǔ)料,其中因?yàn)殛P(guān)系是有向的,需要區(qū)分頭實(shí)體與尾實(shí)體,二者在語(yǔ)料中的位置不可互換。如“小明在天安門(mén)”中實(shí)體“小明”和“天安門(mén)”之間的關(guān)系為“所在地點(diǎn)”,則生成的語(yǔ)料為“小明 天安門(mén) 所在地點(diǎn) 小明在天安門(mén)”。
選取部分生成的語(yǔ)料,以8∶2的比例劃分為訓(xùn)練集和測(cè)試集。對(duì)訓(xùn)練集和測(cè)試集進(jìn)行關(guān)系標(biāo)注。
完成標(biāo)注后,以訓(xùn)練集語(yǔ)料中頭實(shí)體、尾實(shí)體和所在句子為輸入,關(guān)系為標(biāo)簽,訓(xùn)練基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的關(guān)系抽取模型。
使用測(cè)試集測(cè)試訓(xùn)練后模型的關(guān)系抽取效果,將模型從測(cè)試集語(yǔ)料中抽取出的關(guān)系與人工標(biāo)注的關(guān)系進(jìn)行對(duì)比計(jì)算準(zhǔn)確率和召回率,計(jì)算方法同實(shí)體抽取。
使用測(cè)試后訓(xùn)練好的模型抽取剩余語(yǔ)料中的關(guān)系,完成基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法的關(guān)系抽取。
在抽取非結(jié)構(gòu)化知識(shí)中的實(shí)體和其間關(guān)系后,需根據(jù)這些抽取的知識(shí)構(gòu)建知識(shí)圖譜。
在諸多圖譜構(gòu)建工具中,Neo4j擁有多種優(yōu)點(diǎn),包括高性能、設(shè)計(jì)的靈活性和開(kāi)發(fā)的敏捷性。
Neo4j存儲(chǔ)了原生的圖數(shù)據(jù),可使用圖結(jié)構(gòu)的自然伸展特性設(shè)計(jì)免索引鄰近節(jié)點(diǎn)遍歷的查詢(xún)算法。圖的遍歷是圖數(shù)據(jù)結(jié)構(gòu)具有的獨(dú)特算法,即從一個(gè)節(jié)點(diǎn)開(kāi)始,根據(jù)其連接的關(guān)系可快速、方便地找出它的鄰近節(jié)點(diǎn)。這種查找數(shù)據(jù)的方法并不受數(shù)據(jù)量的影響,因此在面對(duì)大量數(shù)據(jù)時(shí)查找效率更高。
一個(gè)系統(tǒng)對(duì)數(shù)據(jù)的需求會(huì)隨事件和條件的改變而改變。圖數(shù)據(jù)結(jié)構(gòu)的自然伸展特性及其非結(jié)構(gòu)化的數(shù)據(jù)格式使Neo4j的數(shù)據(jù)庫(kù)設(shè)計(jì)可具有很大的伸縮性和靈活性。隨需求的變化而增加的節(jié)點(diǎn)、關(guān)系及其屬性并不會(huì)影響原來(lái)數(shù)據(jù)的正常使用。
Neo4j數(shù)據(jù)模型設(shè)計(jì)直觀明了,以其為工具構(gòu)建的知識(shí)圖譜更容易進(jìn)行迭代。
基于以上優(yōu)點(diǎn),選擇Neo4j作為圖譜構(gòu)建工具。
完成知識(shí)圖譜的構(gòu)建后,可通過(guò)知識(shí)圖譜實(shí)現(xiàn)智能應(yīng)用,包括智慧搜索與推薦及智能問(wèn)答。
2.6.1 基于知識(shí)圖譜的智慧搜索與推薦
智慧搜索指用戶(hù)向系統(tǒng)輸入實(shí)體名,系統(tǒng)輸出有無(wú)該實(shí)體。在搜索過(guò)程中,用戶(hù)輸入的實(shí)體名中可能存在錯(cuò)別字。為解決該問(wèn)題,本圖譜采用基于相似度的搜索,在沒(méi)有完全匹配的實(shí)體時(shí),將輸出與輸入實(shí)體名相似度較高的實(shí)體。常用的相似度算法包括余弦相似度、歐氏距離相似度和最長(zhǎng)公共子序列(Longest Common Subsequence,LCS)相似度等。最長(zhǎng)公共子序列相似度與兩個(gè)字符串間同順序相同字符數(shù)量有關(guān),相同字符越多,相似度越高,因而能更好地處理用戶(hù)輸入中存在錯(cuò)別字的問(wèn)題。
子序列指一個(gè)序列刪除若干個(gè)元素得到的新序列,兩個(gè)序列的公共子序列指同時(shí)是兩個(gè)序列子序列的序列,而最長(zhǎng)公共子序列則是兩個(gè)序列所有公共子序列中最長(zhǎng)的序列。
最長(zhǎng)公共子序列指將兩個(gè)序列分別刪除若干個(gè)字符,得到兩個(gè)子序列,在所有可能的子序列中相同且最長(zhǎng)的一組子序列。計(jì)算兩個(gè)序列之間的最長(zhǎng)公共子序列可使用枚舉法和動(dòng)態(tài)規(guī)劃法。枚舉法先列舉兩個(gè)序列各自所有的子序列,然后將這兩組子序列相互之間一一比較,得到最長(zhǎng)公共子序列。枚舉法的算法復(fù)雜度與兩個(gè)字符串長(zhǎng)度之和成指數(shù)關(guān)系,隨序列長(zhǎng)度增加運(yùn)算次數(shù)顯著增加。字符串普遍較長(zhǎng),因此枚舉法不適用于字符串相似度的計(jì)算。
動(dòng)態(tài)規(guī)劃法解決了枚舉法難以解決尋找長(zhǎng)字符串最長(zhǎng)公共子序列的問(wèn)題。動(dòng)態(tài)規(guī)劃法求解兩個(gè)字符串之間最長(zhǎng)公共子序列示意圖如圖8所示。
利用動(dòng)態(tài)規(guī)劃法求解字符串“BDCABA”和“ABCBDAB”之間的最長(zhǎng)公共子序列的過(guò)程如下:
1) 根據(jù)字符串長(zhǎng)度,生成7×8的矩陣,令0,=,0=0。計(jì)算矩陣中每個(gè)位置的數(shù)值,若兩個(gè)字符串位置和位置對(duì)應(yīng)字符相同,則,=-1,-1+1;若對(duì)應(yīng)字符不同,則,=max(-1,,,-1)。如位置對(duì)應(yīng)的和兩個(gè)字符串的字符均為“B”,則=+1=1;若位置兩字符串對(duì)應(yīng)字符分別為“D”和“B”,則=max(,)=1。
2) 兩字符串間最長(zhǎng)公共子序列長(zhǎng)度為矩陣右下角位置的值,圖8中長(zhǎng)度為4。
3) 從矩陣中位置開(kāi)始回溯?;厮菀?guī)則為若當(dāng)前位置為,,選擇-1,、,-1、-1,-1中數(shù)值最大的位置;當(dāng)最大值有多個(gè)時(shí)可隨機(jī)選取。
圖8 動(dòng)態(tài)規(guī)劃法示意圖Fig.8 Schematic diagram of dynamic programming
4) 根據(jù)回溯規(guī)則,得到一條回溯路徑→→→→→→→→,=0,回溯結(jié)束。
5) 選取回溯路徑上所有數(shù)值發(fā)生變化前的矩陣位置,即、、、,將這些位置對(duì)應(yīng)的字符按順序排列即可得兩字符串的最長(zhǎng)公共子序列“BCBA”?;厮萋窂娇赡懿恢挂粭l,對(duì)應(yīng)的最長(zhǎng)公共子序列不止一個(gè)。
推薦功能指在進(jìn)行智慧搜索的同時(shí),圖譜會(huì)根據(jù)相似度輸出與其擁有相似關(guān)聯(lián)實(shí)體的其他實(shí)體。相似度計(jì)算方法與智慧搜索相同,為基于最長(zhǎng)公共子序列相似度的方法。
2.6.2 基于知識(shí)圖譜的智能問(wèn)答
智能問(wèn)答指用戶(hù)向知識(shí)圖譜輸入問(wèn)題,知識(shí)圖譜輸出該問(wèn)題的答案。智能問(wèn)答的關(guān)鍵在于問(wèn)題分類(lèi),即用戶(hù)需要什么類(lèi)型的結(jié)果。常用的問(wèn)題分類(lèi)算法包括K均值聚類(lèi)、貝葉斯分類(lèi)和樸素貝葉斯分類(lèi)。樸素貝葉斯分類(lèi)器具有較高的效率和良好的泛化能力,故選擇樸素貝葉斯分類(lèi)器作為搜索和問(wèn)答的方法。
樸素貝葉斯分類(lèi)器是概率分類(lèi)器中最簡(jiǎn)單的分類(lèi)器,在很多情況下具有相當(dāng)高的分類(lèi)準(zhǔn)確率,以高效率和良好的泛化能力而著稱(chēng)。該分類(lèi)器假設(shè)在給定類(lèi)變量時(shí)屬性變量之間條件獨(dú)立,即
(9)
式中:()為類(lèi)邊緣概率;為種不同的問(wèn)題分類(lèi),={,,…,};為從問(wèn)句中提取的維特征,={,,…,}。在條件獨(dú)立性假設(shè)下,樸素貝葉斯分類(lèi)器具有簡(jiǎn)單的星形結(jié)構(gòu),如圖9所示。
在樸素貝葉斯分類(lèi)器結(jié)構(gòu)基礎(chǔ)上的聯(lián)合概率分解形式為
(10)
圖9 樸素貝葉斯分類(lèi)器結(jié)構(gòu)示意圖Fig.9 Schematic diagram of structure of naive Bayesian classifier
式中:(|)為條件概率。
依據(jù)聯(lián)合概率的分解形式,得到樸素貝葉斯分類(lèi)器的表示形式為
(11)
使式(11)取最大值的問(wèn)題分類(lèi)即為問(wèn)句所屬問(wèn)題分類(lèi)。
在利用樸素貝葉斯分類(lèi)器完成問(wèn)題分類(lèi)后,結(jié)合與知識(shí)圖譜中實(shí)體匹配得到的問(wèn)句關(guān)鍵詞,在知識(shí)圖譜中進(jìn)行檢索將得到的答案輸出給用戶(hù),完成智能問(wèn)答。
案例使用的數(shù)據(jù)來(lái)自飛機(jī)電源系統(tǒng)故障手冊(cè)文檔。該文檔包含飛機(jī)電源系統(tǒng)可能發(fā)生的故障、故障表現(xiàn)、故障原因和解決措施。該文檔部分內(nèi)容為
“電源參數(shù)顯示系統(tǒng)顯示發(fā)電機(jī)輸出電壓為0V或只有幾伏電壓
可能原因:① 副勵(lì)磁機(jī)繞組短路。使用萬(wàn)用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0;② 主發(fā)電機(jī)激磁繞組斷路。
排除方法:① 將發(fā)電機(jī)從發(fā)動(dòng)機(jī)上取下來(lái),送往修理廠修理,更換副勵(lì)磁機(jī)定子組件;② 將發(fā)電機(jī)從發(fā)動(dòng)機(jī)上取下來(lái),送往修理廠修理,更換主轉(zhuǎn)子組件?!?/p>
其中“電源參數(shù)顯示系統(tǒng)顯示發(fā)電機(jī)輸出電壓為0V或只有幾伏電壓”是故障模式“無(wú)刷交流發(fā)電機(jī)故障”的故障表現(xiàn);“副勵(lì)磁機(jī)繞組斷路”為故障模式“無(wú)刷交流發(fā)電機(jī)故障”的故障原因;“將發(fā)電機(jī)…更換主轉(zhuǎn)子組件”為故障模式“無(wú)刷交流發(fā)電機(jī)故障”的解決措施。
對(duì)飛機(jī)電源系統(tǒng)故障手冊(cè)中的內(nèi)容進(jìn)行數(shù)據(jù)預(yù)處理。具體地,將“可能原因”“故障現(xiàn)象”“排除方法”之后編號(hào)項(xiàng)中每一項(xiàng)與其對(duì)應(yīng)的故障模式單獨(dú)成句。經(jīng)數(shù)據(jù)預(yù)處理后的飛機(jī)電源系統(tǒng)故障手冊(cè)部分內(nèi)容為
“無(wú)刷交流發(fā)電機(jī)故障的故障表現(xiàn)為電源參數(shù)顯示系統(tǒng)顯示發(fā)電機(jī)輸出電壓為0V或只有幾伏電壓。
無(wú)刷交流發(fā)電機(jī)故障的可能原因?yàn)楦眲?lì)磁機(jī)繞組短路。使用萬(wàn)用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0。
無(wú)刷交流發(fā)電機(jī)故障的可能原因?yàn)橹靼l(fā)電機(jī)激磁繞組斷路。
無(wú)刷交流發(fā)電機(jī)故障的排除方法為將發(fā)電機(jī)從發(fā)動(dòng)機(jī)上取下來(lái),送往修理廠修理,更換副勵(lì)磁機(jī)定子組件。
無(wú)刷交流發(fā)電機(jī)故障的排除方法為將發(fā)電機(jī)從發(fā)動(dòng)機(jī)上取下來(lái),送往修理廠修理,更換主轉(zhuǎn)子組件。”
將該文檔中部分語(yǔ)料劃分為訓(xùn)練集和測(cè)試集,用于實(shí)體抽取和關(guān)系抽取模型的訓(xùn)練和測(cè)試。
基于專(zhuān)家知識(shí),案例構(gòu)建飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜的本體,共包含實(shí)體類(lèi)型4個(gè),關(guān)系類(lèi)型3個(gè)。
實(shí)體類(lèi)型包含故障模式、故障原因、故障現(xiàn)象和解決方法。關(guān)系類(lèi)型及其頭、尾實(shí)體類(lèi)型如表1 所示。構(gòu)建完成的本體可視化結(jié)果如圖10所示。
表1 關(guān)系類(lèi)型、頭實(shí)體和尾實(shí)體類(lèi)型Table 1 Relation types, head entity and tail entity types
圖10 本體可視化結(jié)果Fig.10 Visualization result of ontology
飛機(jī)電源系統(tǒng)故障手冊(cè)文檔原始語(yǔ)料劃分出的訓(xùn)練集共有137句,4 344字;測(cè)試集共有31句,910字。
根據(jù)構(gòu)建的本體,使用BMEO格式標(biāo)注訓(xùn)練集中的實(shí)體。共標(biāo)注實(shí)體267個(gè),實(shí)體標(biāo)注結(jié)果如表2所示。
表2 實(shí)體標(biāo)注結(jié)果Table 2 Entity tagging results
例如,“交流發(fā)電機(jī)控制保護(hù)器故障”的實(shí)體類(lèi)型為故障模式 (Failure Mode),因此其第一個(gè)字符“交”對(duì)應(yīng)標(biāo)簽為“B-故障模式”,最后一個(gè)字符“障”對(duì)應(yīng)標(biāo)簽為“E-故障模式”。
對(duì)飛機(jī)電源系統(tǒng)故障手冊(cè)文檔進(jìn)行實(shí)體標(biāo)注后,使用開(kāi)源標(biāo)注工具brat進(jìn)行可視化展示,效果如圖11所示。
例如,在圖11原始語(yǔ)料中的句子“交流發(fā)電機(jī)控制保護(hù)器故障的故障表現(xiàn)為調(diào)壓輸出為0”中,標(biāo)注出了故障模式實(shí)體“交流發(fā)電機(jī)控制保護(hù)器故障”和故障現(xiàn)象實(shí)體“調(diào)壓輸出為0”。
圖11 實(shí)體抽取模型訓(xùn)練集文本標(biāo)注可視化Fig.11 Visualization of training text annotation for entity extraction model
使用標(biāo)注后的訓(xùn)練集文本訓(xùn)練雙向LSTM實(shí)體抽取模型,模型由一個(gè)embedding層、一個(gè)雙向LSTM層和一個(gè)全連接層組成。實(shí)體抽取模型參數(shù)如表3所示;模型配置如圖12所示,圖中為語(yǔ)料中最長(zhǎng)句子的字符數(shù);為所有BMEO實(shí)體標(biāo)簽的種類(lèi)數(shù)加2,增加的兩項(xiàng)為雙向LSTM實(shí)體抽取所需的標(biāo)簽〈unk〉和〈pad〉。
表3 實(shí)體抽取模型參數(shù)Table 3 Parameters of entity extraction model
圖12 實(shí)體抽取模型配置Fig.12 Configuration of entity extraction model
模型輸入為句子中所有的字符,模型輸出為個(gè)維向量,每個(gè)字符對(duì)應(yīng)一個(gè)向量。若某字符對(duì)應(yīng)的向量中數(shù)值最大的維度為,則該字符對(duì)應(yīng)第個(gè)實(shí)體標(biāo)簽。根據(jù)每個(gè)字符對(duì)應(yīng)的實(shí)體標(biāo)簽提取實(shí)體。
進(jìn)而將測(cè)試集文本送入訓(xùn)練好的模型抽取實(shí)體,并與人工標(biāo)注的實(shí)體進(jìn)行對(duì)比。實(shí)體抽取模型測(cè)試結(jié)果如圖13所示,可看出利用基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的算法成功實(shí)現(xiàn)了對(duì)測(cè)試集文本語(yǔ)料的實(shí)體抽取,共910條知識(shí),準(zhǔn)確率為99.63%,召回率為71.58%。
圖13 實(shí)體抽取模型測(cè)試結(jié)果Fig.13 Test results of entity extraction model
完成測(cè)試后,使用實(shí)體抽取模型抽取原始文檔中的實(shí)體,用于知識(shí)圖譜構(gòu)建。
關(guān)系抽取訓(xùn)練集和測(cè)試集劃分與實(shí)體抽取相同。表4展示了用于進(jìn)行關(guān)系抽取的訓(xùn)練集語(yǔ)料。根據(jù)構(gòu)建的本體,以“頭實(shí)體 尾實(shí)體 關(guān)系 所在句子”的格式整理訓(xùn)練集中的語(yǔ)料,如表5所示。
例如,在表4中的句子“主交流電源系統(tǒng)故障的故障表現(xiàn)為‘主交流’告警”中,實(shí)體“主交流電源系統(tǒng)故障”與實(shí)體“‘主交流’告警”之間的關(guān)系為“模式_現(xiàn)象”,因此生成的語(yǔ)料為“主交流電源系統(tǒng)故障‘主交流’告警 模式_現(xiàn)象 主交流電源系統(tǒng)故障表現(xiàn)為‘主交流’告警”。表5展示了關(guān)系抽取語(yǔ)料文本整理結(jié)果。
表4 關(guān)系抽取模型語(yǔ)料Table 4 Corpus of relation extraction model
表5 關(guān)系抽取模型語(yǔ)料文本整理結(jié)果Table 5 Text arrangement results for corpus of relation extraction model
使用開(kāi)源標(biāo)注工具brat對(duì)飛機(jī)電源系統(tǒng)故障手冊(cè)文檔中的關(guān)系進(jìn)行標(biāo)注,可視化展示效果如圖14所示。
圖14 關(guān)系抽取模型訓(xùn)練集文本標(biāo)注可視化效果Fig.14 Visualization of training text annotation for relation extraction model
圖14原始語(yǔ)料中的句子“交流發(fā)電機(jī)控制保護(hù)器故障的可能原因?yàn)榻涌诎骞收稀敝校瑯?biāo)注出了實(shí)體“交流發(fā)電機(jī)控制保護(hù)器故障”和實(shí)體“接口板故障”之間的關(guān)系“模式_原因”。
使用處理后的訓(xùn)練集文本訓(xùn)練基于注意力機(jī)制的雙向LSTM關(guān)系抽取模型,模型由1個(gè)詞向量embedding層、2個(gè)位置向量embedding層、1個(gè)雙向LSTM層、1個(gè)Attention層、1個(gè)關(guān)系向量embedding層和1個(gè)softmax層組成。關(guān)系抽取模型參數(shù)如表6所示,模型配置如圖15所示,圖中為本體中關(guān)系類(lèi)型的數(shù)量。
表6 關(guān)系抽取模型參數(shù)Table 6 Parameters of relation extraction model
圖15 關(guān)系抽取模型配置Fig.15 Configuration of relation extraction model
對(duì)于關(guān)系抽取語(yǔ)料中的每個(gè)句子,以一個(gè)實(shí)體的第一個(gè)字符在句中的位置為坐標(biāo)原點(diǎn),詞向量Embedding層輸入為句子中所有的字符,位置向量Embedding層1輸入為句子的頭實(shí)體位置向量,位置向量Embedding層2輸入為句子的尾實(shí)體位置向量。其中,實(shí)體的位置向量指其所在句子中每個(gè)字符距該實(shí)體首字符的距離。關(guān)系向量Embedding層輸入為所有關(guān)系類(lèi)型,每個(gè)關(guān)系類(lèi)型對(duì)應(yīng)一個(gè)數(shù)字。
模型輸出為維向量,每個(gè)句子對(duì)應(yīng)一個(gè)向量。若某句對(duì)應(yīng)的向量中數(shù)值最大的維度為,則該句中頭尾實(shí)體之間的關(guān)系為第個(gè)關(guān)系。
根據(jù)實(shí)體標(biāo)注結(jié)果,將測(cè)試集文本組織成“頭實(shí)體 尾實(shí)體 所在句子”的格式,將處理后的測(cè)試集文本送入訓(xùn)練好的模型抽取實(shí)體關(guān)系,并與人工標(biāo)注的關(guān)系進(jìn)行對(duì)比。關(guān)系抽取模型測(cè)試結(jié)果如圖16所示,可看出利用基于注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)算法成功實(shí)現(xiàn)了對(duì)測(cè)試集文本的關(guān)系抽取,共31條知識(shí),準(zhǔn)確率為75.00%,召回率為75.00%。
圖16 關(guān)系抽取模型測(cè)試結(jié)果Fig.16 Test result of relation extraction model
完成測(cè)試后,使用原始文本的實(shí)體抽取結(jié)果將原始文本組織成“頭實(shí)體 尾實(shí)體 所在句子”的格式,并使用關(guān)系抽取模型抽取原始文檔中的關(guān)系,用于圖譜構(gòu)建。
原始語(yǔ)料中每個(gè)實(shí)體作為一個(gè)節(jié)點(diǎn),每個(gè)關(guān)系作為一條連接其頭實(shí)體和尾實(shí)體的邊。使用Neo4j將原始文本中人工標(biāo)注和模型抽取的結(jié)果構(gòu)建為飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜。由于構(gòu)建的知識(shí)圖譜整體包含的內(nèi)容較多,為更清晰地展示效果,選取部分知識(shí)圖譜內(nèi)容進(jìn)行可視化展示,如圖17所示。
圖17 飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜部分內(nèi)容可視化展示Fig.17 Visualization of part of knowledge graph for aircraft power system fault diagnosis
構(gòu)建的圖譜共包含實(shí)體74個(gè),其中故障模式16個(gè)、故障原因34個(gè)、故障現(xiàn)象7個(gè)、解決方法17個(gè)。關(guān)系98條,其中模式_原因76條、模式_現(xiàn)象6條、模式_方法16條。構(gòu)建的知識(shí)圖譜詳情如圖18所示。
圖18 飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜詳情Fig.18 Details of knowledge graph for aircraft power system fault diagnosis
經(jīng)人工審核可知,該知識(shí)圖譜已將原始文檔中大部分知識(shí)抽取并存儲(chǔ),實(shí)現(xiàn)了飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜的構(gòu)建。
完成知識(shí)圖譜構(gòu)建后,可通過(guò)智能問(wèn)答系統(tǒng)和智慧搜索與推薦系統(tǒng)進(jìn)行基于飛機(jī)電源系統(tǒng)故障診斷知識(shí)圖譜的搜索、推薦和問(wèn)答。
3.6.1 智慧搜索與推薦結(jié)果
智慧搜索與推薦系統(tǒng)支持對(duì)于某一實(shí)體的搜索,在知識(shí)庫(kù)中對(duì)該實(shí)體的相關(guān)信息進(jìn)行檢索并輸出;同時(shí)還會(huì)根據(jù)相關(guān)實(shí)體的相似度進(jìn)行推薦。智慧搜索與推薦效果如圖19所示,可看出智慧搜索與推薦系統(tǒng)能實(shí)現(xiàn)對(duì)于實(shí)體“直流電源系統(tǒng)故障”的搜索及相關(guān)信息展示,并能根據(jù)相似度匹配算法實(shí)現(xiàn)具有相同故障原因和相同解決方法的故障模式推薦。
圖19 基于知識(shí)圖譜的智慧搜索與推薦Fig.19 Intelligent search and recommendation based on knowledge graph
3.6.2 智能問(wèn)答結(jié)果
問(wèn)答系統(tǒng)支持有關(guān)實(shí)體數(shù)量、關(guān)系數(shù)量、某一實(shí)體相關(guān)信息等的提問(wèn)。智能問(wèn)答效果如圖20所示,可看出智能問(wèn)答系統(tǒng)對(duì)于實(shí)體數(shù)量、關(guān)系數(shù)量、實(shí)體“應(yīng)急交流電源故障”相關(guān)信息等的提問(wèn)能給出相關(guān)問(wèn)題的有效答案。
圖20 基于知識(shí)圖譜的智能問(wèn)答Fig.20 Intelligent Q & A based on knowledge graph
針對(duì)現(xiàn)有故障診斷方法對(duì)非結(jié)構(gòu)化知識(shí)資源利用效率低的問(wèn)題,借鑒知識(shí)圖譜技術(shù)在其他領(lǐng)域成功應(yīng)用的經(jīng)驗(yàn),提出了一套面向飛機(jī)電源系統(tǒng)故障診斷的知識(shí)圖譜構(gòu)建及應(yīng)用全流程方法。利用所提方法能對(duì)飛機(jī)電源系統(tǒng)設(shè)計(jì)、研制、使用等階段產(chǎn)生的非結(jié)構(gòu)化知識(shí)數(shù)據(jù)進(jìn)行充分挖掘,構(gòu)建的知識(shí)圖譜能為故障知識(shí)搜索、問(wèn)答、推理診斷等任務(wù)提供豐富的知識(shí)基礎(chǔ)。以真實(shí)飛機(jī)電源系統(tǒng)故障手冊(cè)語(yǔ)料為例,對(duì)提出的知識(shí)圖譜構(gòu)建及應(yīng)用方法進(jìn)行了案例驗(yàn)證,實(shí)現(xiàn)了非結(jié)構(gòu)化飛機(jī)電源系統(tǒng)故障診斷知識(shí)的結(jié)構(gòu)化存儲(chǔ)、基于知識(shí)圖譜的智慧搜索與推薦以及智能問(wèn)答等應(yīng)用,為知識(shí)圖譜技術(shù)在中國(guó)故障診斷領(lǐng)域的實(shí)際應(yīng)用提供了有力支撐。
此外,由于航空故障診斷領(lǐng)域語(yǔ)料來(lái)源較少,模型訓(xùn)練語(yǔ)料不充分,僅以飛機(jī)電源系統(tǒng)排故手冊(cè)作為數(shù)據(jù)源構(gòu)建的知識(shí)圖譜體量較小。未來(lái)筆者將在飛機(jī)的運(yùn)行使用過(guò)程中,利用不斷產(chǎn)生的語(yǔ)料數(shù)據(jù)進(jìn)一步提高知識(shí)抽取模型的精度,并對(duì)構(gòu)建的知識(shí)圖譜進(jìn)行動(dòng)態(tài)知識(shí)更新,從而更好地服務(wù)于飛機(jī)電源系統(tǒng)故障診斷。