葛天一 楊長(zhǎng)春 陳延雪 周 婷
(常州大學(xué)阿里云大數(shù)據(jù)學(xué)院 江蘇 常州 213016) 2(常州大學(xué)微電子與控制工程學(xué)院 江蘇 常州 213016)
復(fù)雜設(shè)備系統(tǒng)各組成單元之間的關(guān)系錯(cuò)綜復(fù)雜,存在各種關(guān)聯(lián)耦合因素,因此導(dǎo)致其故障原因難以區(qū)分。基于本體的知識(shí)表示方法可以清晰地展現(xiàn)這種復(fù)雜的故障領(lǐng)域知識(shí)[1]。優(yōu)質(zhì)的設(shè)備故障知識(shí)本體需要本體實(shí)例之間擁有豐富而準(zhǔn)確的關(guān)系。設(shè)備故障領(lǐng)域擁有大量相關(guān)文本,其中蘊(yùn)含了大量的領(lǐng)域知識(shí),可以滿足設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取任務(wù)的需求[2]。
一個(gè)本體實(shí)例關(guān)系示例可以以三元組形式表達(dá),即(eh,r,et),其中eh與et為本體實(shí)例,r為兩實(shí)例之間的關(guān)系,本體實(shí)例關(guān)系抽取任務(wù)即為抽取出eh與et(后稱目標(biāo)實(shí)例對(duì))之間的關(guān)系r。從領(lǐng)域相關(guān)文本中可以較深入地挖掘領(lǐng)域知識(shí),抽取本體實(shí)例關(guān)系,構(gòu)建質(zhì)量較高的本體[3]。傳統(tǒng)的基于人工標(biāo)注的實(shí)例關(guān)系抽取方法花費(fèi)的時(shí)間、人力成本過(guò)高。目前,使用神經(jīng)網(wǎng)絡(luò)模型從非結(jié)構(gòu)化文本中進(jìn)行實(shí)例關(guān)系抽取的方法得到了一定的成果。這類方法先定義需要抽取的實(shí)例關(guān)系,并使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練一個(gè)關(guān)系分類模型,將包含目標(biāo)實(shí)例對(duì)的句子的特征作為模型的輸入,得到句子中目標(biāo)實(shí)例對(duì)的關(guān)系,進(jìn)而通過(guò)統(tǒng)計(jì)等方法,完成實(shí)例關(guān)系抽取。
盡管先前的研究已經(jīng)取得了一定的成果[4-7],但使用神經(jīng)網(wǎng)絡(luò)模型,從非結(jié)構(gòu)化領(lǐng)域文本中抽取故障領(lǐng)域本體實(shí)例關(guān)系仍然面臨著一些挑戰(zhàn):當(dāng)前研究普遍使用單層的神經(jīng)網(wǎng)絡(luò)多分類器進(jìn)行實(shí)例關(guān)系抽取,同時(shí)也沒有考慮到運(yùn)用領(lǐng)域本體自身的語(yǔ)義信息,容易將意思相近的關(guān)系誤分。同時(shí)設(shè)備故障領(lǐng)域文本的句子通常比在一般領(lǐng)域的句子要長(zhǎng),因此,目標(biāo)實(shí)例之間的距離往往也較長(zhǎng),獲取目標(biāo)實(shí)例對(duì)之間的關(guān)系需要較豐富的句子結(jié)構(gòu)信息,因此使用傳統(tǒng)分析方法獲取間隔較遠(yuǎn)的實(shí)例間的關(guān)系較為困難。
本文提出了一種基于分層結(jié)構(gòu)的設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取方法,從非結(jié)構(gòu)化文本中抽取實(shí)例關(guān)系。在第一層,結(jié)合領(lǐng)域本體自身的知識(shí),通過(guò)識(shí)別目標(biāo)實(shí)例對(duì)中實(shí)例所屬的類別,為目標(biāo)實(shí)例對(duì)匹配可能的關(guān)系,有效解決因無(wú)法識(shí)別實(shí)例類型帶來(lái)的關(guān)系誤分的問(wèn)題;在第二層,使用預(yù)先訓(xùn)練的基于神經(jīng)網(wǎng)絡(luò)的關(guān)系分類器,對(duì)目標(biāo)實(shí)例對(duì)進(jìn)行精確關(guān)系抽取,在基于神經(jīng)網(wǎng)絡(luò)的關(guān)系分類器中使用結(jié)合自注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bidirectional Long Short-term Memory,BiLSTM)對(duì)目標(biāo)實(shí)例對(duì)所在句子進(jìn)行編碼,以獲取更多的句子結(jié)構(gòu)信息,改善了間隔距離較長(zhǎng)的實(shí)例之間關(guān)系抽取效果,最終通過(guò)統(tǒng)計(jì)的方法完成實(shí)例關(guān)系抽取。本文提出的方法能夠有效提高設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取的效果,進(jìn)而提高構(gòu)建的故障領(lǐng)域本體的質(zhì)量。
本體是對(duì)概念形式及概念間關(guān)系的一種規(guī)范、明確的定義[8],利用本體表示設(shè)備故障領(lǐng)域知識(shí)的方法目前取得了一定的成果[9-12]。文獻(xiàn)[9]通過(guò)七步法構(gòu)建了裝載機(jī)故障領(lǐng)域本體,結(jié)合推理規(guī)則進(jìn)行故障分析。文獻(xiàn)[10]使用語(yǔ)義網(wǎng)技術(shù)收集機(jī)床故障診斷知識(shí),并將其導(dǎo)入在線平臺(tái)以構(gòu)建不同機(jī)床的故障知識(shí)本體,提高了知識(shí)集成的效率。
OWL語(yǔ)言是一種本體描述語(yǔ)言,它具有描述類和屬性的強(qiáng)大語(yǔ)義能力[12]。本文使用OWL語(yǔ)言中的OWL DL來(lái)描述設(shè)備故障領(lǐng)域本體,同時(shí)采用Protégé軟件來(lái)最終構(gòu)建并展示設(shè)備故障領(lǐng)域本體模型。
在領(lǐng)域本體的構(gòu)建過(guò)程中,實(shí)例關(guān)系的抽取效果很大程度上決定了該領(lǐng)域本體的質(zhì)量。目前,在基于非結(jié)構(gòu)化文本的關(guān)系抽取的工作中,很多研究使用一個(gè)單層的神經(jīng)網(wǎng)絡(luò)關(guān)系分類器,將句子作為輸入進(jìn)行關(guān)系抽取。文獻(xiàn)[13]通過(guò)將句子的句法依存信息添加至深度神經(jīng)網(wǎng)絡(luò)模型,抽取醫(yī)療領(lǐng)域?qū)嵗P(guān)系。文獻(xiàn)[14]根據(jù)中文語(yǔ)義中主要以詞為基本單位的特性,使用基于全詞掩模的雙向變形編碼器卷積神經(jīng)網(wǎng)絡(luò)模型來(lái)提升在中文心血管疾病領(lǐng)域語(yǔ)料中進(jìn)行關(guān)系抽取的性能。文獻(xiàn)[15]開發(fā)了一個(gè)BO-LSTM(Biomedical Ontologies LSTM)模型,它從現(xiàn)有的生物領(lǐng)域知識(shí)庫(kù)提取目標(biāo)實(shí)例對(duì)的背景信息,將背景信息與句子結(jié)構(gòu)信息一起加入LSTM模型,以抽取文本中的生物領(lǐng)域?qū)嵗P(guān)系。文獻(xiàn)[16]使用了結(jié)合注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型獲取包含目標(biāo)實(shí)體的句子結(jié)構(gòu)特征,來(lái)進(jìn)行實(shí)體關(guān)系抽取。
然而,在實(shí)際使用傳統(tǒng)的基于神經(jīng)網(wǎng)絡(luò)模型的方法抽取本體實(shí)例關(guān)系時(shí),容易將意思相近的關(guān)系誤分。在本體實(shí)例關(guān)系抽取任務(wù)中,很多意思相近關(guān)系的誤分情況是由分類器無(wú)法識(shí)別實(shí)例類型引起的[17]。如關(guān)系“SameLevelFaultMode”描述兩個(gè)故障模式類實(shí)例之間是同一層級(jí)關(guān)系,“SameLevelEquipment”描述兩個(gè)故障組件類實(shí)例之間是同一層級(jí)關(guān)系,這兩種關(guān)系表達(dá)的意思相近,但是各自連接的實(shí)例類型不同,在現(xiàn)有的模型中容易被混淆。同時(shí),由于設(shè)備故障領(lǐng)域文中的目標(biāo)實(shí)例對(duì)之間的距離往往較長(zhǎng),傳統(tǒng)的RNN(Recurrent Neural Networks)和CNN(Convolutional Neural Networks)無(wú)法得到句子中每個(gè)詞對(duì)輸出的影響,因此使用傳統(tǒng)的方法獲取的句子結(jié)構(gòu)信息不能滿足設(shè)備故障領(lǐng)域?qū)嵗年P(guān)系抽取。文獻(xiàn)[15]在解決實(shí)例長(zhǎng)距離問(wèn)題方面取得了良好的效果,但是需要高質(zhì)量的外部知識(shí)庫(kù),在本文的研究中難以滿足此要求。文獻(xiàn)[16]考慮到了句子中每個(gè)輸入對(duì)模型輸出的影響,但是,文中制定的注意力機(jī)制的查詢向量?jī)H僅考慮了句子中待抽取實(shí)體的特征向量,忽略了句子中其他詞匯之間的關(guān)系,獲取的句子的內(nèi)部結(jié)構(gòu)信息并不充分,因此不能有效捕獲長(zhǎng)距離的實(shí)體之間的關(guān)系。
近期,分層結(jié)構(gòu)(Hierarchical Structure)在處理多分類任務(wù)中,取得了一定的進(jìn)展。文獻(xiàn)[18]提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的下水道缺陷檢測(cè)和分類方法,使用采用分層分類的思路,高層檢測(cè)任務(wù)試圖從正常圖像中區(qū)分出有工程缺陷的圖像,低層次分類計(jì)算每個(gè)缺陷出現(xiàn)的概率。該方法解決了數(shù)據(jù)不平衡帶來(lái)的工程缺陷圖像分類困難的問(wèn)題。文獻(xiàn)[19]針對(duì)有些圖像類別比其他類別更難區(qū)分的問(wèn)題,提出了HD-CNN(Hierarchical Deep CNN)模型,使用簡(jiǎn)易分類器來(lái)分離能簡(jiǎn)單識(shí)別的圖像類別與識(shí)別困難的圖像類別,接著使用高性能分類器來(lái)專門區(qū)分識(shí)別困難的圖像類別。
自注意力機(jī)制是一種改進(jìn)的注意力機(jī)制。傳統(tǒng)的注意力機(jī)制無(wú)法獲取輸入句子中各個(gè)詞語(yǔ)之間的聯(lián)系,而自注意力機(jī)制通過(guò)計(jì)算句子中每個(gè)詞之間的相似度,可以更容易地捕獲句子中詞與詞的依賴關(guān)系,更好地獲取句子內(nèi)部特征[20]。基于分層結(jié)構(gòu)的思想,本文提出一種基于分層結(jié)構(gòu)的設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取方法,從非結(jié)構(gòu)化文本中抽取實(shí)例關(guān)系。在第一層,根據(jù)領(lǐng)域本體自身的知識(shí)(本體類別與實(shí)例關(guān)系的定義域、值域),通過(guò)識(shí)別目標(biāo)實(shí)例對(duì)中實(shí)例所屬的類別,為目標(biāo)實(shí)例對(duì)匹配可能的關(guān)系,進(jìn)行初步的關(guān)系抽取,有效避免意思相似關(guān)系的誤分問(wèn)題;接著在第二層通過(guò)結(jié)合自注意力機(jī)制的BiLSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行精確分類,改善間隔距離較長(zhǎng)的實(shí)例的關(guān)系抽取效果,最后通過(guò)統(tǒng)計(jì)的方法完成實(shí)例關(guān)系的抽取。
本文的研究框架如圖1所示。(1) 預(yù)備工作指明確待構(gòu)建領(lǐng)域本體的和基礎(chǔ)概念類別與類別的層次,結(jié)合領(lǐng)域?qū)<抑笇?dǎo),為每個(gè)概念類別添加相應(yīng)的實(shí)例,制定待構(gòu)建領(lǐng)域本體實(shí)例關(guān)系;(2) 輸入待處理的相關(guān)文本,完成文本的預(yù)處理;(3) 通過(guò)基于分層結(jié)構(gòu)的實(shí)例關(guān)系抽取方法,進(jìn)行設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取,第一層識(shí)別目標(biāo)實(shí)例對(duì)中實(shí)例的類別,進(jìn)行初步關(guān)系分類,第二層使用基于神經(jīng)網(wǎng)絡(luò)模型的方法,結(jié)合統(tǒng)計(jì)完成實(shí)例關(guān)系抽取;(4) 形成最終本體。接下來(lái),本文將詳細(xì)介紹該方法的實(shí)施過(guò)程。

圖1 本文研究框架
待構(gòu)建的設(shè)備故障領(lǐng)域本體主要描述設(shè)備的故障知識(shí)。一種故障現(xiàn)象可能不是由一個(gè)故障原因引起的,低層級(jí)組件的故障不僅會(huì)使同一層級(jí)的組件產(chǎn)生故障,還會(huì)引起更高層級(jí)組件的故障。因此,為了處理設(shè)備故障知識(shí)的復(fù)雜性,故障診斷本體模型主要定義了五個(gè)類:故障模式、故障組件、故障處理方法、故障現(xiàn)象和主要故障參數(shù)。根據(jù)文獻(xiàn)[9],本文將設(shè)備結(jié)構(gòu)由高層到底層分為設(shè)備級(jí)、系統(tǒng)級(jí)、模塊級(jí)和子模塊級(jí)4個(gè)層級(jí)。由于故障模式是發(fā)生在相應(yīng)的故障組件上的,故障模式也需要按上述4層進(jìn)行分類。因此故障模式類、故障組件類需要進(jìn)一步各自添加“設(shè)備級(jí)”“系統(tǒng)級(jí)”“模塊級(jí)”和“子模塊級(jí)”4個(gè)子類。圖2為設(shè)備故障領(lǐng)域本體的類與類的層次圖。同時(shí),本文結(jié)合領(lǐng)域?qū)<业闹笇?dǎo),為每個(gè)概念類別添加相應(yīng)的實(shí)例。

圖2 故障領(lǐng)域本體類別層次圖
領(lǐng)域本體實(shí)例之間的關(guān)系(即Object Properties,實(shí)例對(duì)象屬性)指將實(shí)例關(guān)聯(lián)到實(shí)例的屬性,每個(gè)實(shí)例關(guān)系需要定義定義域(domain)與作用域(range),一個(gè)本體實(shí)例關(guān)系的定義域與作用域指向固定的本體類,實(shí)例關(guān)系起到將其定義域類的實(shí)例連接到其作用域類的實(shí)例的作用。本文為設(shè)備故障領(lǐng)域本體制定了以下實(shí)例關(guān)系(見表1)。編號(hào)1和編號(hào)2的實(shí)例關(guān)系描述故障組件之間的層級(jí)關(guān)系,如多個(gè)低層次組件可以構(gòu)成一個(gè)高層次組件,則這些低層次組件與高層次組件就有“HighLevelEquipment”關(guān)系,低層次組件之間可以添加“SameLevelEquipment”關(guān)系。編號(hào)3和編號(hào)4的實(shí)例關(guān)系描述故障模式的層級(jí)關(guān)系,如一個(gè)高層次故障模式可由數(shù)個(gè)低層次故障模式引起,那么這個(gè)高層次故障模式與低層次故障模式之間就有“HighLevelFaultMode”關(guān)系,這些低層次故障模式之間關(guān)系為“SameLevelFaultMode”關(guān)系。編號(hào)5的實(shí)例關(guān)系描述故障模式引起故障主要參數(shù)變化。編號(hào)6的實(shí)例關(guān)系描述故障組件對(duì)應(yīng)的故障參數(shù)。編號(hào)7的實(shí)例關(guān)系描述故障模式擁有相應(yīng)的故障現(xiàn)象。編號(hào)8的實(shí)例關(guān)系描述故障模式能被相應(yīng)故障處理方法解決。編號(hào)9的實(shí)例關(guān)系描述故障模式發(fā)生在相應(yīng)的故障組件。編號(hào)10的實(shí)例關(guān)系描述故障組件會(huì)發(fā)生的故障現(xiàn)象。

表1 設(shè)備故障領(lǐng)域本體的實(shí)例關(guān)系
實(shí)例關(guān)系抽取任務(wù)需要的相關(guān)文本主要來(lái)自于互聯(lián)網(wǎng)或相關(guān)制造商公開的電子文檔,主要為設(shè)備結(jié)構(gòu)說(shuō)明書、故障分析手冊(cè)和FMECA(Failure Mode, Effects and Criticality Analysis,故障模式、影響和危害性分析)報(bào)告等。這些資料包含豐富的領(lǐng)域知識(shí),可以滿足故障領(lǐng)域本體的構(gòu)建需求。
文本處理階段需要過(guò)濾掉無(wú)用的符號(hào)和單詞。使用自然語(yǔ)言處理(NLP)工具用于解析輸入文本中的每個(gè)句子。本文根據(jù)句子分隔符“。”“,”“!”等來(lái)分割中文文本。在獲得單個(gè)完整的句子后,使用分詞工具(Jieba)對(duì)這些句子進(jìn)行分詞、去除停止詞、詞性標(biāo)注等工作。
由于相關(guān)文本中含有大量專業(yè)詞匯,普通的分詞方法可能會(huì)帶來(lái)一定的錯(cuò)誤。為了提高分詞的準(zhǔn)確性,本文將領(lǐng)域?qū)嵗拿Q總結(jié)為一個(gè)txt文件格式的中文領(lǐng)域詞典,該詞典能夠直接導(dǎo)入分詞工具(Jieba),以提高分詞的準(zhǔn)確性,保證之后實(shí)例關(guān)系抽取的質(zhì)量。
進(jìn)一步地,使用Word2vec工具訓(xùn)練分詞后的詞語(yǔ)集,得到各詞語(yǔ)的向量化表示。
經(jīng)過(guò)文本處理階段,可以得到處理后的詞語(yǔ)集合、詞語(yǔ)向量化表示、分句后的句子集合。
本文的實(shí)例關(guān)系抽取由兩個(gè)層次組成,第一層通過(guò)對(duì)目標(biāo)實(shí)例對(duì)中實(shí)例類型進(jìn)行識(shí)別,進(jìn)行初步分類;第二層根據(jù)第一層的結(jié)果,選擇相應(yīng)的神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行判別,最終通過(guò)統(tǒng)計(jì)的方法完成實(shí)例關(guān)系的抽取。本文對(duì)每個(gè)針對(duì)實(shí)例關(guān)系訓(xùn)練一個(gè)基于神經(jīng)網(wǎng)絡(luò)的二分類器,以進(jìn)行精確的關(guān)系抽取。選用二分類器可以滿足實(shí)例關(guān)系抽取任務(wù)的靈活性,當(dāng)有新的關(guān)系需要加入抽取任務(wù)時(shí),可以通過(guò)添加新的二分類器來(lái)處理新關(guān)系。
2.3.1基于實(shí)例類型識(shí)別的實(shí)例關(guān)系抽取
在第一層,本文通過(guò)識(shí)別實(shí)例對(duì)中實(shí)例的類型,進(jìn)行初步關(guān)系抽取。在本體實(shí)例關(guān)系抽取任務(wù)中,由于每個(gè)實(shí)例關(guān)系都有定義域與作用域,因此通過(guò)識(shí)別目標(biāo)實(shí)例對(duì)中實(shí)例的類別可以解決很多意思相近關(guān)系的誤分情況(如“HighLevelEquipment”與“HighLevelFaultMode”容易誤分,“HighLevelEquipment”的定義域與作用域都指向故障組件類,而“HighLevelFaultMode”的定義域與作用域都指向故障模式類)。同時(shí)一些實(shí)例關(guān)系也只會(huì)在特定類別的實(shí)例之間產(chǎn)生,如關(guān)系“HighLevelEquipment”只能發(fā)生在高層級(jí)故障組件與低層級(jí)故障組件之間,即該關(guān)系只能發(fā)生在屬于不同子類的故障組件類實(shí)例之間。因此通過(guò)識(shí)別目標(biāo)實(shí)例對(duì)中實(shí)例的類別,可以得到目標(biāo)實(shí)例對(duì)可能存在的實(shí)例關(guān)系。本文根據(jù)每個(gè)實(shí)例關(guān)系的定義域與作用域指向的本體類別,以及設(shè)備故障領(lǐng)域本體類別與類的層次,設(shè)計(jì)了如表2的關(guān)系模板,通過(guò)對(duì)目標(biāo)實(shí)例對(duì)中兩個(gè)實(shí)例所屬的類別進(jìn)行識(shí)別,進(jìn)行初步的關(guān)系分類,接著自動(dòng)地選擇該實(shí)例對(duì)可能存在的實(shí)例關(guān)系所對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)分類器,進(jìn)行下一層的精確分類。如識(shí)別到目標(biāo)實(shí)例對(duì)(“后小齒輪組”“中間軸”),其中的兩個(gè)實(shí)例都屬于“模塊級(jí)故障組件”類,因此選擇“SameLevelFaultMode”關(guān)系對(duì)應(yīng)的分類器進(jìn)行第二層的精確分類。本文將實(shí)例一一配對(duì),組成多個(gè)目標(biāo)實(shí)例對(duì)。通過(guò)該分類方法,一個(gè)實(shí)例對(duì)之間最多存在一種可能的實(shí)例關(guān)系,即最多匹配一個(gè)神經(jīng)網(wǎng)絡(luò)分類器;實(shí)例對(duì)中兩個(gè)實(shí)例的類型如果可以被模板匹配到可能的實(shí)例關(guān)系,則進(jìn)入第二層的精確分類,如果無(wú)法被模板匹配,則直接判斷這兩個(gè)實(shí)例之間不存在領(lǐng)域本體中定義的關(guān)系。

表2 實(shí)例關(guān)系模板
2.3.2基于神經(jīng)網(wǎng)絡(luò)的實(shí)例關(guān)系抽取
在第二層,本文為每個(gè)實(shí)例關(guān)系訓(xùn)練一個(gè)基于神經(jīng)網(wǎng)絡(luò)模型的二分類器,對(duì)進(jìn)入第二層的目標(biāo)實(shí)例對(duì)進(jìn)行精確關(guān)系抽取。具體的,先找出所有包含該目標(biāo)實(shí)例對(duì)的句子,針對(duì)每個(gè)句子,得到該句的局部特征,使用結(jié)合自注意力機(jī)制的BiLSTM模型對(duì)句子的局部特征進(jìn)行分析,獲取句子整體特征,通過(guò)句子整體特征得到該句子中目標(biāo)實(shí)例對(duì)之間存在該分類器對(duì)應(yīng)關(guān)系的概率,接著通過(guò)統(tǒng)計(jì)的方法,完成目標(biāo)實(shí)例對(duì)的關(guān)系抽取。該部分的技術(shù)框架如圖3所示。

圖3 基于神經(jīng)網(wǎng)絡(luò)的實(shí)例關(guān)系抽取技術(shù)框架
1) 句子局部特征。設(shè)待包含目標(biāo)實(shí)例對(duì)的一個(gè)句子為:s(w1,w2…,c1,…,c2,…,wn-2),其中wi為句子詞匯,句子中一共有n個(gè)詞匯,c1、c2為目標(biāo)實(shí)例對(duì)中的實(shí)例。為了獲取句子的局部特征,需要對(duì)句子詞匯進(jìn)行向量化處理。在關(guān)系抽取的任務(wù)中,通常與目標(biāo)距離越近的詞語(yǔ)對(duì)抽取任務(wù)起著越重要的影響。因此,本文將句中詞語(yǔ)與兩個(gè)實(shí)例的距離與本身的詞向量進(jìn)行拼接,完成句子的向量化,得到句子的局部特征。如句子“電源過(guò)熱導(dǎo)致系統(tǒng)主計(jì)算機(jī)死機(jī)”,有目標(biāo)實(shí)例對(duì)的實(shí)例為c1“電源過(guò)熱”與c2“主計(jì)算機(jī)死機(jī)”,詞語(yǔ)“導(dǎo)致”與c1的距離為-1,與c2的距離為2,拼接后得到該句子的局部特征(見圖4)。

圖4 例句局部特征
2) 構(gòu)建BILSTM。LSTM模型可以批量處理向量化的文本信息。在單個(gè)時(shí)間狀態(tài)上,LSTM的輸入來(lái)自當(dāng)前狀態(tài)的輸入xt和前一個(gè)狀態(tài)的輸出ht-1,以及上一個(gè)狀態(tài)產(chǎn)生的歷史信息ct-1。一個(gè)LSTM單元由三個(gè)控制門組成,分別為一個(gè)輸入門i、一個(gè)輸出門o和一個(gè)遺忘門f。一個(gè)LSTM單元的各狀態(tài)特征值可以由式(1)~式(6)表示,w為各狀態(tài)下的權(quán)值矩陣,b是各狀態(tài)下的配偏置向量,σ為一個(gè)激勵(lì)函數(shù),見式(7)。
ft=σ(wf·[ht-1,xt]+bf)
(1)
it=σ(wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=σ(wo·[ht-1,xt]+bo)
(5)
ht=ot·tanh(ct)
(6)
(7)
如圖5所示,一個(gè)BiLSTM由前后雙向的LSTM構(gòu)成,彌補(bǔ)了前向LSTM無(wú)法編碼從后到前的信息的缺點(diǎn),因此其可以較為充分地獲取句子中的上下文信息。句子局部特征S{x1,x2,…,xi,…,xn}作為輸入,其中xi為向量化處理的句子詞語(yǔ),n為句子中的詞語(yǔ)數(shù)量。如圖5所示,輸入前向LSTM得到的特征值記為L(zhǎng){L_h1,L_h2,…,L_hn},后向LSTM得到的特征值記為R{R_h1,R_h2,…,R_hn},最終得到的特征是將前向與后向LSTM得到的特征值拼接而成,即hi=[L_hi,R_hi],最終結(jié)果為H{h1,h2,…,hn}。

圖5 BiLSTM網(wǎng)絡(luò)架構(gòu)
3) 自注意力機(jī)制。自注意力是一種改進(jìn)的注意力機(jī)制,其使用一句句子中的每個(gè)詞來(lái)和句中所有詞計(jì)算相似度,在此條件下句中任意兩個(gè)詞語(yǔ)都可以捕獲其之間的依賴關(guān)系,因此結(jié)合BiLSTM可以獲取較豐富的句子內(nèi)部結(jié)構(gòu)信息,有助于抽取句中兩個(gè)距離較遠(yuǎn)的目標(biāo)實(shí)例之間的關(guān)系。自注意力計(jì)算公式如式(8)所示。
(8)
式中:Q為查詢矩陣(Query Matrix),K為鍵矩陣(Key Matrix),V為值矩陣(Value Matrix),dk為矩陣的維度。Q、K和V通過(guò)把輸入分別乘以三個(gè)矩陣Wq、Wk和Wv得到。
將BiLSTM模型輸出的H作為輸入,使用式(8)對(duì)其進(jìn)行計(jì)算,進(jìn)而得到句子的新的特征值,記為F={f1,f2,…,fn},句中第i個(gè)詞語(yǔ)得到的新的特征值記為fi。
4) 二分類。將得到的句子特征F進(jìn)行最大池化操作,得到最終的該句子的整體特征向量G。將G輸入二分類器進(jìn)行關(guān)系分類,存在該二分類器對(duì)應(yīng)關(guān)系的可能性的計(jì)算方法見式(9),其中:P為該句中目標(biāo)實(shí)例對(duì)存在關(guān)系的可能性,we為二分類器的權(quán)值參數(shù),be為偏置向量。
P(G)=σ(we·G+be)
(9)
通過(guò)統(tǒng)計(jì)的方法完成最終的關(guān)系抽取,具體的,將每個(gè)包含該目標(biāo)實(shí)例對(duì)的句子輸出的可能性P進(jìn)行累加,并取平均值,作為該目標(biāo)實(shí)例對(duì)存在此二分類器對(duì)應(yīng)關(guān)系的最終可能性,如果該值超過(guò)設(shè)定閾值β,則判斷該目標(biāo)實(shí)例對(duì)之間存在此二分類器對(duì)應(yīng)關(guān)系,否則不存在。
本文采用梯度下降算法來(lái)優(yōu)化模型,代價(jià)函數(shù)J(θ)計(jì)算如式(10)所示,其中:θ為模型中的訓(xùn)練參數(shù),n為樣本數(shù)量,yi為第i個(gè)樣本的結(jié)果。
(10)
此步驟主要功能是形成最終的目標(biāo)本體。在實(shí)例間使用抽取到的實(shí)例關(guān)系進(jìn)行關(guān)系擴(kuò)展,形成最終的目標(biāo)本體。
本文以汽車變速箱故障知識(shí)為例,在實(shí)驗(yàn)過(guò)程中,首先從中國(guó)工控網(wǎng)、中國(guó)電子論壇等相關(guān)領(lǐng)域網(wǎng)站通過(guò)手動(dòng)下載或半自動(dòng)網(wǎng)頁(yè)爬取等方法,收集有關(guān)變速箱的結(jié)構(gòu)與故障維保方面的文章。為了建立訓(xùn)練和測(cè)試數(shù)據(jù)集,本文建立了一個(gè)的變速箱故障中文實(shí)例集。實(shí)例集中實(shí)例的類型僅限于變速箱的故障模式、故障組件、故障處理方法、故障現(xiàn)象和主要故障參數(shù)。本文為實(shí)例集中每個(gè)實(shí)例制定所屬的領(lǐng)域本體類別,并在實(shí)例之間標(biāo)注表1中制定的實(shí)例關(guān)系。本文將一款7AT變速箱的所屬實(shí)例與實(shí)例之間的關(guān)系作為測(cè)試集。表3為該變速箱的部分實(shí)例。

表3 某7AT變速箱部分本體實(shí)例
本文使用精確率P(Precision)、召回率R(Recall)和F1值來(lái)評(píng)估本文方法,計(jì)算公式如式(11)-式(13)所示。True 表示預(yù)測(cè)正確的數(shù)目,Output表示所有輸出的預(yù)測(cè)數(shù)目,All_num表示測(cè)試集的數(shù)據(jù)數(shù)目。
(11)
(12)
(13)
在實(shí)例關(guān)系抽取任務(wù)中,詞向量的維度設(shè)定為100,神經(jīng)網(wǎng)絡(luò)的隱藏層節(jié)點(diǎn)數(shù)目為280。訓(xùn)練輪數(shù)為500,批次大小為10,學(xué)習(xí)率設(shè)定為0.05,每個(gè)二分類器對(duì)應(yīng)的值域各不相同(訓(xùn)練參數(shù)參考文獻(xiàn)[17])。
本文使用一個(gè)基于自注意力機(jī)制的BiLSTM多分類模型作為對(duì)比方法之一,該模型(SaBiLSTM)用于檢測(cè)第一層的基于實(shí)例類型識(shí)別分類方法的作用。針對(duì)第二層,本文引入LSTM與BiLSTM(HS_LSTM、HS_BiLSTM)作為對(duì)比方法,檢測(cè)引入自注意力機(jī)制的BiLSTM的效果。總體實(shí)例關(guān)系抽取結(jié)果見表4,表5為本文模型在訓(xùn)練集中抽取的10類實(shí)例關(guān)系的結(jié)果,本文以實(shí)例關(guān)系“SameLevelEquipment”對(duì)應(yīng)的抽取結(jié)果對(duì)比各種方法的效果(見圖6)。可以看出,由于基于實(shí)例類型的識(shí)別分類方法可以預(yù)先為目標(biāo)實(shí)例對(duì)排除無(wú)關(guān)的關(guān)系,以及能有效解決意義相近的關(guān)系造成的誤分問(wèn)題,因此相比傳統(tǒng)方法(SaBiLSTM),本文提出的基于分層結(jié)構(gòu)的關(guān)系抽取的方法可以在保證召回率的條件下,取得較好的精確率。LSTM與BiLSTM雖然解決了RNN的長(zhǎng)距離依賴問(wèn)題,但是,引入自注意力機(jī)制的BiLSTM(HS_SaBiLSTM)由于可以更好的獲取句子的內(nèi)部結(jié)構(gòu)關(guān)系,效果更優(yōu)。

表4 4種方法在實(shí)例關(guān)系抽取的實(shí)驗(yàn)結(jié)果(%)

表5 10類實(shí)例關(guān)系的抽取結(jié)果(%)

圖6 4種方法抽取關(guān)系“SameLevelEquipment”的P-R曲線
使用Protégé5.2工具構(gòu)建并展示最終的故障知識(shí)本體。圖7給出了7AT變速箱故障知識(shí)本體的部分可視化展示。

圖7 7AT變速箱故障本體的部分可視化展示
本文提出了一種基于分層結(jié)構(gòu)的設(shè)備故障領(lǐng)域本體實(shí)例關(guān)系抽取方法,第一層使用基于實(shí)例類型的識(shí)別分類方法進(jìn)行初步分類;第二層使用融合自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型對(duì)句子進(jìn)行解析,通過(guò)統(tǒng)計(jì)的方法完成實(shí)例關(guān)系抽取。該方法有效解決了由于無(wú)法識(shí)別實(shí)例類型帶來(lái)的關(guān)系誤分問(wèn)題,改善了故障領(lǐng)域文本中間隔距離較長(zhǎng)的實(shí)例的關(guān)系抽取效果。
目前,本文的研究方法仍然存在一些不足,并且制定的實(shí)例關(guān)系較為簡(jiǎn)單。在以后的工作中,我們會(huì)進(jìn)一步地融入snowball的機(jī)制,減少標(biāo)注實(shí)例關(guān)系的成本,同時(shí)也需要引入更多的外部知識(shí),進(jìn)一步改善實(shí)例關(guān)系抽取的效果。本文的實(shí)例關(guān)系抽取方法取得了較好的效果,但仍需制定相應(yīng)的推理規(guī)則,進(jìn)一步驗(yàn)證該方法在基于本體的故障推理方法的效果。