貝毅君,周 勇,高克威
(浙江大學(xué) 軟件學(xué)院,浙江 寧波 315000)
數(shù)控機(jī)床設(shè)備維護(hù)技術(shù)與工業(yè)生產(chǎn)的發(fā)展相輔相成,隨著傳統(tǒng)工業(yè)生產(chǎn)的持續(xù)發(fā)展,數(shù)控機(jī)床設(shè)備維護(hù)技術(shù)存在以下不足和局限性:
由于數(shù)據(jù)分散、繁雜,傳統(tǒng)的設(shè)備管理系統(tǒng)信息檢索效果非常不理想。各個數(shù)據(jù)之間其實是存在關(guān)聯(lián)的,如設(shè)備和各個故障維修方法,兩者存在著緊密聯(lián)系。而傳統(tǒng)的檢索方法難以在越來越豐富的知識庫中檢索出想要的內(nèi)容,因此知識問答技術(shù)應(yīng)運(yùn)而生。如今的知識問答不再像傳統(tǒng)的檢索一樣,通過簡單的關(guān)鍵字匹配完成,而是通過一定的自然語言數(shù)據(jù)作為問答的基礎(chǔ),對這些數(shù)據(jù)進(jìn)行處理,使得其能夠適用于相關(guān)的問答領(lǐng)域。
本文旨在探索數(shù)控機(jī)床生產(chǎn)設(shè)備維護(hù)領(lǐng)域的新方法,研究主要圍繞面向數(shù)控機(jī)床設(shè)備維護(hù)的知識推理技術(shù)。主要的研究目標(biāo)是利用知識推理能力,通過已有數(shù)控機(jī)床設(shè)備故障解決方案推理出新故障的解決方案,對不完整的知識圖譜進(jìn)行補(bǔ)全,彌補(bǔ)數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識圖譜不完整給其問答帶來的影響,使得數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識問答能夠更加的準(zhǔn)確。同時,將數(shù)控機(jī)床設(shè)備維護(hù)手冊等專家經(jīng)驗搬到線上,數(shù)控機(jī)床設(shè)備維護(hù)人員能夠通過它獲得不同故障問題的解決方案,這對于提高企業(yè)的數(shù)控設(shè)備維護(hù)人員的綜合素質(zhì)極其重要。具體內(nèi)容包括:
(1)研究一種適合數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識圖譜補(bǔ)全方法,該方法利用現(xiàn)有數(shù)控機(jī)床設(shè)備維護(hù)三元組信息推斷出部分缺失的關(guān)系,進(jìn)而實現(xiàn)對該領(lǐng)域的知識圖譜補(bǔ)全。該方法基于Attention機(jī)制,并與卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)和雙向門控循環(huán)單元(Bi-directional Gated Recurrent Unit, BiGRU)進(jìn)行耦合。同時對比類似的知識圖譜鏈接預(yù)測的方法在數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的效果。
(2)研究數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的多跳知識問答,目前針對該領(lǐng)域的知識問答研究相對比較匱乏,這將是一個重要的探索方向。本文將從Embedding的方法進(jìn)行考慮,并將補(bǔ)全的知識圖譜數(shù)據(jù)作為數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的答案數(shù)據(jù)來源,最后針對模型的各個方面進(jìn)行評估。
現(xiàn)如今,知識圖譜技術(shù)迅速發(fā)展,一些著名的數(shù)控機(jī)床企業(yè)也將目光轉(zhuǎn)向了知識圖譜技術(shù),他們利用知識圖譜來幫助企業(yè)為不同垂直領(lǐng)域的數(shù)據(jù)進(jìn)行關(guān)聯(lián),為整體解決方案提供服務(wù)。周揚(yáng)等[1]利用飛機(jī)的故障知識進(jìn)行模型的構(gòu)建以及檢索應(yīng)用,解決目前飛機(jī)維修工作中故障知識難以共享的問題。秦大力[2]通過本體模型來表示維護(hù)相關(guān)的一些知識,能夠形式化地定義設(shè)備維護(hù)知識空間。張勇等[3]提出了采用知識網(wǎng)格的模式實現(xiàn)設(shè)備維護(hù)領(lǐng)域的知識共享。將知識圖譜技術(shù)運(yùn)用到智能制造領(lǐng)域,它能夠?qū)?shù)據(jù)與數(shù)據(jù)之間的關(guān)系凸顯出來,而不是讓數(shù)據(jù)相互獨立,毫無聯(lián)系。
近年來,基于路徑的推理方法,DAS等[4-5]、JIANG等[6]已成功應(yīng)用遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)通過將推理路徑嵌入到低維空間來實現(xiàn)知識圖譜補(bǔ)全任務(wù),并已相對于路徑排序算法(Path-Ranking Algorithm, PRA)有顯著改進(jìn)。Embedding方法是一種比較有用而且盛行的技術(shù),它是許多知識圖譜細(xì)化方法的基礎(chǔ)。基于知識嵌入的方法,比如TransE[7]和TransR[8],在低維向量空間中將實體與關(guān)系表現(xiàn)得淋漓盡致,同時實體和關(guān)系之間距離的特征也一一體現(xiàn)。
然后,通過比較兩個訓(xùn)練對象的嵌入之間的距離與查詢關(guān)系的嵌入之間的距離來判斷查詢關(guān)系是否存在。HILDEBRANDT等[9]提出一種基于辯論動力學(xué)的知識圖譜自動推理方法。JAGVARAL等[10]提出一種知識圖譜補(bǔ)全的方法,該方法將BiLSTM和CNN注意力機(jī)制相結(jié)合,這是一種基于路徑的模型。LIN等[11]通過引入獎勵函數(shù)和動作后退來改進(jìn)這兩種名為MultiHopKG的方法。WANG等[12]基于Attention機(jī)制和長短期記憶網(wǎng)絡(luò)(Long Short Term Memory network, LSTM)產(chǎn)生了一個框架(ALSTM),該框架將結(jié)構(gòu)學(xué)習(xí)和端到端的神經(jīng)網(wǎng)絡(luò)模型中一階邏輯規(guī)則的參數(shù)學(xué)習(xí)相互關(guān)聯(lián),這也是查詢相關(guān)路徑的方法。
最近提出的許多問答任務(wù)不僅需要機(jī)器理解問題和上下文,還需要通過引用外部知識對實體及其關(guān)系進(jìn)行推理[13-14]。盡管大規(guī)模的預(yù)訓(xùn)練語言模型(Pretrained Language Model, PTLM)[15]取得了成功,但是這些模型沒有提供可解釋的預(yù)測,因為未明確說明其訓(xùn)練前語料庫中的知識,而是隱式學(xué)習(xí)了這些知識。而利用知識圖譜能以一種直接方法對這些關(guān)系路徑進(jìn)行建模。KagNet[16]和MHPGM[17]從知識圖譜(Knowledge Graph, KG)中提取多跳關(guān)系路徑,并使用序列模型對其編碼,此外,注意力機(jī)制在這些關(guān)系路徑上的應(yīng)用也可以進(jìn)一步提供良好的解釋性。但是,這些模型幾乎不可擴(kuò)展。
近些年來,知識問答獲得了大量專家學(xué)者的關(guān)注。在多跳知識問答中,系統(tǒng)需要對KG的多個關(guān)系路徑進(jìn)行推理以獲得最終的答案。通常情況下,KG一般是不完整的,這給知識圖譜問答帶來了更多的挑戰(zhàn),尤其對于多跳的知識問答來說。SUN等[18-19]提出使用外部文本語料庫來處理知識圖譜稀疏性?;跀?shù)控機(jī)床設(shè)備維護(hù)的知識問答研究幾乎沒有,這對于制造業(yè)數(shù)字化轉(zhuǎn)型極為不利,應(yīng)加大這方面的探索。
本文主要選擇德國西門子(SIMENS)和日本發(fā)那科(FANUC)的數(shù)控機(jī)床維護(hù)案例作為研究的數(shù)據(jù),主要原因如下:
(1)西門子和發(fā)那科的數(shù)控系統(tǒng)是國內(nèi)外廣泛使用的數(shù)控系統(tǒng)。
(2)西門子和發(fā)那科的數(shù)控系統(tǒng)是目前主流的數(shù)控系統(tǒng),很多其他的數(shù)控系統(tǒng)都在學(xué)習(xí)其高精尖技術(shù)以及經(jīng)驗。
(3)使用西門子和發(fā)那科的數(shù)控系統(tǒng)的機(jī)床設(shè)備的維護(hù)手冊開源程度較高,這意味著獲取的數(shù)據(jù)相對比較完整,而其他很多數(shù)控機(jī)床的數(shù)據(jù)開放程度較低,導(dǎo)致數(shù)據(jù)難以獲取,而對知識問答而言數(shù)據(jù)量越大效果越好。
針對西門子和發(fā)那科數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域設(shè)計出本體模型,如圖1所示。對數(shù)控機(jī)床設(shè)備維護(hù)案例中數(shù)據(jù)特點總結(jié)出設(shè)備、操作、現(xiàn)象、原因、方法等實體類型,同時對各個實體之間的關(guān)系進(jìn)行表示,各個數(shù)據(jù)之間的特點通過本體模型能夠非??陀^的進(jìn)行表現(xiàn)和闡明。本體模型的設(shè)計能夠有效地支撐實體和關(guān)系的抽取工作,同時具有廣泛的適用性,易于添加新的節(jié)點類型和關(guān)系。
數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的數(shù)據(jù)是稀疏的,信息的表達(dá)往往帶有個人的偏好,同時知識抽取手段本身也非常影響知識圖譜的質(zhì)量,本文采用的數(shù)據(jù)不是網(wǎng)上公開的數(shù)據(jù)集,而是通過知識抽取手段獲取得到的,實體之間的關(guān)系也存在一定的不完整性。研究提出的先圖譜補(bǔ)全后知識問答算法的整體模型如圖2所示。通過對圖譜的補(bǔ)全降低其稀疏性,提高數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識問答準(zhǔn)確率。基于ConvBiGUR和Attention機(jī)制的圖譜補(bǔ)全模型如圖3所示,基于Embedding的多跳知識問答模型如圖4所示。
2.1.1 知識圖譜補(bǔ)全的鏈接預(yù)測
三元組由源實體Es,目標(biāo)實體Et和二元關(guān)系R組成,同時知識圖譜G由一組三元組構(gòu)成。每個三元組(es,r,et)是一項有序集合,其中:es,et∈E是源實體和目標(biāo)實體;r∈R是它們之間的二元關(guān)系。本文通過現(xiàn)有的數(shù)控機(jī)床設(shè)備維護(hù)三元組信息推斷出缺失的實體之間的關(guān)系,通過估計一個實體以某種關(guān)系鏈接到另一個實體上的概率。在研究中,將鏈接預(yù)測轉(zhuǎn)化為所有可能鏈接集(三元組)的分?jǐn)?shù)排序問題。
為了進(jìn)行模型的評估,需要生成一些兩個實體之間沒關(guān)系的三元組,其中源實體和目標(biāo)實體是隨機(jī)抽取的實體。因此訓(xùn)練數(shù)據(jù)包含一組正確的三元組(es,r,et)∈G和一組錯誤的三元組(es,r,et)?G。
對于知識圖譜的三元組和訓(xùn)練三元組,首先采用PRA算法執(zhí)行隨機(jī)游走,枚舉出用于訓(xùn)練三元組的有界關(guān)系路徑。在整個知識圖譜上進(jìn)行隨機(jī)游走,從源實體開始,一直到達(dá)目的實體,同時記錄源實體到目的實體路徑上的關(guān)系。這樣可以獲得多個關(guān)系路徑,并且獲得的關(guān)系路徑p包含一系列關(guān)系{r1,r2,…,rl}。然后,給定從es開始并遵循p中所有的關(guān)系路徑的隨機(jī)游走,計算出到達(dá)et的隨機(jī)游走概率。對計算出的每個關(guān)系路徑的隨機(jī)游走概率進(jìn)行排序,將概率較高的關(guān)系路徑作為潛在路徑特征。最后,通過包含諸如π={es,r1,e1,…,rl,et}∈Π的中間實體,將所有關(guān)系路徑p進(jìn)一步擴(kuò)展為完整路徑π。
2.1.2 路徑序列編碼
研究中采用了新設(shè)計的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),能夠?qū)㈥P(guān)系路徑嵌入的低維向量中。利用CNN和BiGRU神經(jīng)網(wǎng)絡(luò)模型,對路徑序列信息進(jìn)行編碼操作,這兩種方法都已經(jīng)成功應(yīng)用于處理長序列和短序列。
(1)
(2)
(3)
通過雙向GRU獲得了兩個隱藏狀態(tài),通過一定的規(guī)則將其進(jìn)行合并操作,生成長度為l的路徑π,最終表示為:
(4)
2.1.3 多路徑表示和輸出層
為了讓一些比較重要的路徑凸顯出來,引入Attention機(jī)制來計算所有路徑的匹配分?jǐn)?shù),以對重點路徑有所突出。首先,將查詢關(guān)系進(jìn)行編碼,并將其轉(zhuǎn)換為向量表示形式,例如u=A(r)=r。然后,將關(guān)系的嵌入與路徑的編碼進(jìn)行匹配,以計算出Attention層中每個路徑的匹配分?jǐn)?shù)。每個嵌入路徑mi都能夠通過式(5)獲得一個分?jǐn)?shù),關(guān)系r和路徑πi之間的語義相似度通過該分?jǐn)?shù)進(jìn)行表示。
(5)
(6)
使用加權(quán)和運(yùn)算對所有的路徑編碼向量疊加,以生成一個狀態(tài)向量o,
(7)
通過加權(quán)和運(yùn)算將多個路徑的信息合并到一起,將重要的路徑保留,并丟棄不相關(guān)的路徑。最后,計算出關(guān)系r和實體對(es,et)的概率分?jǐn)?shù),其計算公式如下:
P(r|es,et)=sigmoid(Wp(o+u))。
(8)
采用注意力機(jī)制以不同的方式參與其中重要的路徑和不重要的路徑,例如,與候選關(guān)系r更加相關(guān)的路徑應(yīng)獲得較高的權(quán)重,相反與候選關(guān)系r不相關(guān)的路徑應(yīng)獲得較低的權(quán)重。
2.1.4 模型的優(yōu)化函數(shù)設(shè)計
通過最小化二進(jìn)制交叉熵?fù)p失來優(yōu)化模型,自適應(yīng)矩估計(Adam)優(yōu)化器用于優(yōu)化。目標(biāo)函數(shù)的簡化形式如下:
(9)
式中:N表示三元組的數(shù)量,T+和T-分別表示正負(fù)案例,Θ表示模型中可學(xué)習(xí)的參數(shù)。通過目標(biāo)函數(shù)達(dá)到模型訓(xùn)練的目的,在正確的三元組上計算出較高的值,在錯誤的三元組上計算出較低的值,同時還能夠降低總誤差。對于鏈接預(yù)測,不斷調(diào)整模型參數(shù)直到最優(yōu),然后從所有候選項中檢索前k個預(yù)測。同時,將權(quán)重的標(biāo)準(zhǔn)L2范數(shù)用作約束函數(shù)。本文設(shè)定一系列的學(xué)習(xí)率,以了解不同學(xué)習(xí)率對于預(yù)測性能的影響,當(dāng)損失函數(shù)收斂到最佳點時直接停止訓(xùn)練。
2.2.1 模型整體思路
基于Embedding的多跳知識問答模型如圖4所示。其中主要包含知識圖譜嵌入模塊、問題嵌入模塊和答案選擇模塊3個模塊。
2.2.2 知識圖譜嵌入模塊
給定實體E和關(guān)系R,知識圖譜G的三元組K,使得K∈E×R×E。一個三元組表示為(es,r,et),其中:源實體和目標(biāo)實體分別用es∈E和et∈E表示,源實體與目標(biāo)實體兩者之間的關(guān)系利用r∈R表示。在第2.1節(jié)中進(jìn)行了實體鏈接預(yù)測處理,通過ConvBiGRU+Attention機(jī)制計算三元組的匹配分?jǐn)?shù),通過該評分判斷兩個實體之間能否通過該關(guān)系r進(jìn)行鏈接。
隨著時代的發(fā)展,數(shù)控機(jī)床設(shè)備維護(hù)數(shù)據(jù)也會逐漸增加,考慮到知識圖譜會逐漸變得龐大的問題,本文也采用ComplEx算法作為嵌入方法。ComplEx是一種張量分解方法,將關(guān)系和實體嵌入復(fù)雜空間中。給定實體es,et∈E和關(guān)系r∈R,通過ComplEx模型生成ees,er,eet∈d,并定義了評分函數(shù),如式(10)所示:
(10)
其中所有正確三元組φ(es,r,et)>0,而對于不正確三元組φ(es,r,et)<0,Re表示復(fù)數(shù)的實部。
知識圖譜嵌入模塊采用ComplEx嵌入,針對知識圖譜中的所有實體es,et∈E和關(guān)系r∈R進(jìn)行訓(xùn)練,使得ees,er,eet∈d。
2.2.3 問題嵌入模塊
問題嵌入模塊(Question Embedding Module, QEM)將用戶問題q嵌入固定維數(shù)向量,使得eq∈d。這可以采用前饋神經(jīng)網(wǎng)絡(luò)來實現(xiàn),該網(wǎng)絡(luò)首先利用RoBERTa[19]將問題嵌入786維向量中。RoBERTa模型是一種基于Transformer的雙向編碼表示來改進(jìn)基于架構(gòu)微調(diào)的方法,相比以前提出的BERT模型做出了很大的優(yōu)化,RoBERTa模型可以稱為BERT模型的強(qiáng)化版,該模型在數(shù)據(jù)層面對模型進(jìn)行優(yōu)化,使用更大的數(shù)據(jù)集進(jìn)行實驗,同時采用字節(jié)對的編碼方式來處理文本。研究中的設(shè)備維護(hù)案例基本都是以文本的形式保存的,所以選擇了RoBERTa模型應(yīng)用于此研究的模型中。
問題通過RoBERTa模型生成了786維向量后,將其通過4個具有RuLU激活函數(shù)的全連線性層,最后還需要將它投影到復(fù)雜空間d上,其中算法模型結(jié)構(gòu)如圖5所示。
針對用戶輸入的一個問題,主題實體es∈E(問題中的主要實體)和候選答案實體集合A∈E,通過式(11)~式(12)實現(xiàn)問題的嵌入:
?(ees,eq,ea)>0,?a∈A;
(11)
(12)
針對每個用戶的問題,將所有候選答案實體a′∈E和它進(jìn)行一一比對,通過評分函數(shù)計算出匹配值。通過最小化分?jǐn)?shù)的S型曲線和目標(biāo)標(biāo)簽之間的二進(jìn)制交叉熵?fù)p失來學(xué)習(xí)模型,其中正確答案的目標(biāo)標(biāo)簽為1,其他為0。當(dāng)實體數(shù)量很大時,將進(jìn)行標(biāo)簽平滑處理。
2.2.4 答案選擇模塊
答案選擇模塊(Answer Selection Module,ASM)主要選擇最佳的候選實體作為最終的答案。在進(jìn)行推斷時,模型針對所有可能的答案a′∈E進(jìn)行評分,對于候選答案實體比較少時,僅選擇得分最高的實體即可,具體公式如下:
eans=arga′∈Emax?(ees,eq,ea′)。
(13)
定義一個評分函數(shù)S(r,q)如式(14)所示,該函數(shù)對給定問題q的每個關(guān)系r∈R進(jìn)行排名。將關(guān)系r的嵌入定義為hr,將輸入到RoBERTa的問題q的單詞序列定義為q′=(s,w1,…,w|q|,/s)。評分函數(shù)定義為RoBERTa的最后一個隱藏層的最終輸出hq與關(guān)系r的嵌入hr的點積的S型函數(shù),其中hq的計算公式如式(15)所示。
(14)
hq=RoBERTa(q′)。
(15)
在所有關(guān)系中,選擇評分大于0.5的那些關(guān)系,將其表示為集合Ra。針對獲得的實體a′,應(yīng)找出它與源實體es的是以何種關(guān)系進(jìn)行關(guān)聯(lián)的,并將這些關(guān)系定義為Ra′。將每個候選答案實體的關(guān)系得分定義為其交集的大小,如式(16)所示:
RelScorea′=|Ra∩Ra′|。
(16)
利用關(guān)系得分RelScorea′和ComplEx得分的線性組合來找出問題的答案,如式(17)所示:
eans=arga′∈Emax?(ees,eq,ea′)+γ×RelScorea′。
(17)
式中γ為可以調(diào)整大小的超參數(shù)。
3.1.1 實驗數(shù)據(jù)和實驗設(shè)置
本文使用的在數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的數(shù)據(jù)中抽取出來的實體以及關(guān)系如圖6所示。
本文使用的是來自于西門子和發(fā)那科的2 000個設(shè)備維護(hù)案例,針對數(shù)據(jù)的特點定義本體模型,通過本體模型能夠客觀地解釋和說明數(shù)據(jù)之間的關(guān)系。通過知識抽取將數(shù)控機(jī)床設(shè)備維護(hù)文檔中的案例的實體和關(guān)系抽取出來,變成實驗需要的三元組,作為實驗的數(shù)據(jù)集。
首先隨機(jī)初始化所有模型的參數(shù),并使用Adam優(yōu)化器作為以最小批量為64的訓(xùn)練算法。在實驗中采用網(wǎng)格搜索方法來不斷調(diào)整模型中的超參數(shù),在{0.001,0.002,0.002 5,0.003}中選擇合適的值作為學(xué)習(xí)率參數(shù)γ,在{50,100}中選擇合適值作為向量的維度k,模型BiGRU中的隱藏單元數(shù)從{64,128}中選擇,過濾器數(shù)量選擇{30,40,50,60}的其中一個,正則化權(quán)重λ從{0,0.005,0.01,0.1,0.5,1}中選擇。不斷調(diào)整小批量的大小,使得每一個epoch都包含64個小批量。通過不斷地改變參數(shù)以使模型的效果及性能達(dá)到最佳。
3.1.2 對比模型
模型主要采用ConvBiGRU+Attention機(jī)制實現(xiàn)了基于路徑的知識圖譜補(bǔ)全,將此研究的模型與最近的基于路徑的推理方法進(jìn)行了比較,擁有不錯的效果。
本文采用多種方法來全方位評估算法模型,其中包括平均精度均值(Mean Average Precision, MAP)和平均倒數(shù)排名(Mean Reciprocal Rank, MRR)。其中MAP是對相關(guān)正確三元組進(jìn)行排名的等級的精度值的平均值,MAP得分計算公式如下:
(18)
式中AP是每一個正確三元組得排名位置得精度得分得平均值。MRR是指第i個查詢得第一個正確三元組的排名位置,若該結(jié)果排名越前,則效果越好,其計算公式如下:
(19)
式中:Qr表示樣本集合;rankq表示查詢q中第一次出現(xiàn)對應(yīng)答案的位置,q∈Qr。
本文研究中對比了其他研究者的優(yōu)秀算法,實驗結(jié)果取輸入查詢關(guān)系r的最優(yōu)值,結(jié)果如表1所示。
表1 最新方法比較
通過表1結(jié)果對比發(fā)現(xiàn),PRA模型對于數(shù)控機(jī)床圖譜的鏈接預(yù)測效果一般,MINERVA和ConvE在數(shù)控機(jī)床圖譜補(bǔ)全方面也有不錯的效果,這是由于現(xiàn)在只是將西門子和發(fā)那科部分?jǐn)?shù)據(jù)抽取用于實驗,若是將所有數(shù)據(jù)用于實驗,仍是本文模型更加適用于大型數(shù)據(jù)集上的缺失鏈接預(yù)測。
3.1.3 實驗結(jié)果分析
實驗?zāi)P蛯⑺嘘P(guān)系數(shù)據(jù)傳入到本文算法模型中進(jìn)行測試,針對不同的關(guān)系三元組模型的耗時不同,經(jīng)過了多次不斷的訓(xùn)練,取多次實驗的結(jié)果對比,并計算出加權(quán)平均,作為本次實驗結(jié)果,這樣能夠減少實驗所帶來的誤差,使實驗結(jié)果相對而言更加準(zhǔn)確,具體結(jié)果如圖7所示。
由圖7可知,該模型整體效果是不錯的,對于關(guān)系the_reason_is的平均精度均值(MAP)能夠達(dá)到0.85,平均倒數(shù)排名(MRR)能夠到達(dá)0.946,這屬于比較好的結(jié)果,這可能與從數(shù)控機(jī)床設(shè)備維護(hù)文檔中抽取的數(shù)據(jù)質(zhì)量有關(guān)系,或者這類關(guān)系三元組存在一定的缺失情況均會影響實驗效果。這也是影響算法模型的一個方面。實驗對于每個測試的三元組都通過模型計算出相應(yīng)的權(quán)重α,通過權(quán)重的大小可以評估此條路徑對于鏈接預(yù)測的重要性。生成的具體數(shù)據(jù)格式為es,et,score,其中score對應(yīng)每一個三元組的權(quán)重大小,權(quán)重越大,說明其對于鏈接預(yù)測重要性更強(qiáng)。同時,還繪制了所測試三元組的權(quán)重柱狀圖,如圖8和圖9所示。
通過圖8可以觀察到所有的測試三元組一共有934 784組,因為數(shù)據(jù)量較大,所以圖8數(shù)據(jù)很密,看起來不是很清楚。可以看到,圖8下方的小圖很清楚地展示了整個數(shù)據(jù)的權(quán)重起伏情況,圖9是對圖8部分區(qū)域的縮放,看起來更加明顯,還是有很多三元組的權(quán)重是較小的,并不是所有的三元組對于鏈接預(yù)測均有很好的促進(jìn)作用,因此應(yīng)選擇權(quán)重比較高的,才能夠使得模型的效果更好。
最終選擇權(quán)重大于0.85的三元組,其統(tǒng)計數(shù)值如圖10所示。
同時,還對比了ConvBiGRU+Attention和ConvBiLSTM+Attention在數(shù)控機(jī)床領(lǐng)域的效果,主要選取關(guān)系accompany_with進(jìn)行對比,實驗對比結(jié)果如圖11所示。通過觀察圖11可以看出,在相同的條件和環(huán)境下,GRU明顯比LSTM耗時少,最長的能達(dá)到10 s之久,這只是針對部分西門子和發(fā)那科的數(shù)控機(jī)床數(shù)據(jù),若將所有數(shù)據(jù)用于實驗耗時,差距會更加明顯,而數(shù)控機(jī)床的數(shù)據(jù)本身就非常龐大,因此對于模型的選擇還是選擇了GRU作為模型的一部分。對于關(guān)系accompany_with的實驗結(jié)果采用GRU時的MAP比LSTM高出兩個百分點達(dá)到了82.34%,從而驗證了GRU更加適合于數(shù)控機(jī)床領(lǐng)域。
3.2.1 實驗設(shè)置
知識問答所采用的數(shù)據(jù)集和圖譜補(bǔ)全中使用的數(shù)據(jù)來源是一致的,但是知識問答部分的實驗數(shù)據(jù)是通過知識圖譜補(bǔ)全模型進(jìn)行處理后產(chǎn)生的數(shù)據(jù),能夠有效地解決數(shù)控機(jī)床設(shè)備維護(hù)知識圖譜的稀疏性。
數(shù)據(jù)集另一部分就是生成用于訓(xùn)練的問題集,通過手動的方式模擬WebQuestionSP數(shù)據(jù)集生成西門子和發(fā)那科數(shù)控機(jī)床領(lǐng)域的問題,利用三元組信息生成想要的訓(xùn)練問題數(shù)據(jù),并對路徑長度進(jìn)行限制,經(jīng)過對比發(fā)現(xiàn)當(dāng)路徑長度大于4時,知識的推理效果驟降,對于性能的消耗也在增加,綜合考慮決定將最大路徑長度設(shè)定為4,這樣對于數(shù)控機(jī)床領(lǐng)域的多跳知識問答更加合適。利用生成了問題的訓(xùn)練集和測試集用于本次研究,評估利用Embedding模型實現(xiàn)數(shù)控機(jī)床領(lǐng)域的多跳知識問答的效果。
對于本次研究的所有模型參數(shù),首先隨機(jī)初始化模型的參數(shù),然后不斷進(jìn)行調(diào)整以達(dá)到最優(yōu)則停止訓(xùn)練。對于嵌入模型的選擇,從{DistMult,SimplE,ComplEx,TuckER,RESCAL}中選擇,經(jīng)過不斷的實驗發(fā)現(xiàn),ComplEx比較適合數(shù)控機(jī)床領(lǐng)域,ComplEx模型能夠?qū)嶓w和關(guān)系嵌入到復(fù)雜空間中。批量大小從{16,64,128}中選擇,考慮數(shù)據(jù)量較大的情況,默認(rèn)選擇128,若是數(shù)據(jù)量較少的情況可以改變其大小。參數(shù)dropout的設(shè)置十分關(guān)鍵,它能夠解決過擬合的問題,該參數(shù)在0.4~0.6中選擇。在實驗中采用了網(wǎng)格搜索方法來不斷調(diào)整模型中的超參數(shù),在{0.001,0.002,0.003,0.004,0.005,0.006}中選擇一個值作為學(xué)習(xí)率參數(shù)。
3.2.2 對比模型
采用Embedding的方法實現(xiàn)數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的多跳知識問答,針對數(shù)控機(jī)床設(shè)備維護(hù)知識圖譜采用ComplEx進(jìn)行嵌入,而對于用戶問題則采用了RoBERTa模型進(jìn)行嵌入處理,將模型與最近的知識問答算法模型進(jìn)行一定的比較。
通過圖12結(jié)果對比發(fā)現(xiàn),快速問答(Fast Question Answering, FastQA)模型對于數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的效果不是很理想,而變分推斷網(wǎng)絡(luò)(Variational Reasoning Network, VRN)模型在數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域表現(xiàn)不錯,采用本文的RoBERTa+ComplEx模型效果略優(yōu)于前者,提升了4~5個百分點。整體而言,模型沒有獲得很好的效果,可能是由于采用的數(shù)據(jù)集并非公共數(shù)據(jù)集,相對而言數(shù)據(jù)質(zhì)量還是存在一定問題,后期優(yōu)化首先可以考慮數(shù)據(jù)問題方面的優(yōu)化。本次只對比這幾種比較新的算法,后期還可以多對比幾種算法模型,體現(xiàn)出基于Embedding的多跳問答在數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的優(yōu)勢,采用Embedding的方法更加能夠應(yīng)對知識圖譜稀疏性的問題。
3.2.3 實驗結(jié)果分析
該任務(wù)評估主要包含兩部分,首先是知識圖譜嵌入,將準(zhǔn)備好的實體字典、關(guān)系字典以及訓(xùn)練集測試集傳入知識圖譜嵌入模塊,通過不斷的訓(xùn)練生成數(shù)據(jù)的嵌入向量,其中數(shù)控機(jī)床設(shè)備維護(hù)知識圖譜嵌入訓(xùn)練過程記錄在文本中,繪制出各個指標(biāo)的變化如圖13所示。
知識圖譜嵌入過程通過5個衡量指標(biāo)進(jìn)行評估,觀察圖13可以發(fā)現(xiàn)經(jīng)過不斷的訓(xùn)練最終結(jié)果越來越好,剛開始訓(xùn)練時評估指標(biāo)的值都是比較小的,而且剛開始上升比較緩慢,當(dāng)訓(xùn)練次數(shù)達(dá)到98時,曲線出現(xiàn)驟然上升的趨勢。5個指標(biāo)整體趨勢是相同的,訓(xùn)練次數(shù)在98次~182次之間,曲線上升速度是非常迅速的,當(dāng)訓(xùn)練次數(shù)大于182次之后,曲線基本趨于平穩(wěn)的方式。其中hits@3和hits@10達(dá)到了0.999,hits@1也達(dá)到了0.966,說明整體而言,知識圖譜的嵌入效果比較好。當(dāng)訓(xùn)練次數(shù)達(dá)到一定之后,再繼續(xù)進(jìn)行訓(xùn)練,其評估指標(biāo)也不會再增加,因此可以不再繼續(xù)訓(xùn)練知識圖譜。
將用戶問題通過RoBERTa模型嵌入到786維向量中,再將其經(jīng)過4個具有ReLU激活函數(shù)的全連接層,最后投影到復(fù)雜空間。將問題中的源實體和候選答案實體計算出一個分?jǐn)?shù),實現(xiàn)問題的嵌入。所有關(guān)系的問題均用于實驗,但是部分關(guān)系效果不是很好,可能是由于從數(shù)控機(jī)床案例中抽取出來的數(shù)據(jù)質(zhì)量存在一定的問題,將一些關(guān)系的實驗成果列出,如表2所示。
表2 部分關(guān)系的實驗結(jié)果
由表2可以觀察出,這幾個關(guān)系實驗效果一般,這與用戶問題訓(xùn)練數(shù)據(jù)均由代碼自動生成有關(guān),將三元組與關(guān)系進(jìn)行組合產(chǎn)生,這對于其準(zhǔn)確率有的一定的影響,后期將考慮對數(shù)據(jù)方面進(jìn)行改進(jìn)優(yōu)化,這樣才能夠從根本上改善整個知識問答的效果?;贓mbedding的多跳知識問答在其他領(lǐng)域已經(jīng)有不錯的應(yīng)用,在數(shù)控機(jī)床領(lǐng)域的使用應(yīng)該也沒有問題。其中有部分關(guān)系效果表現(xiàn)不佳,可能由于不同關(guān)系數(shù)據(jù)存在差異,應(yīng)該對模型進(jìn)行改進(jìn)使其適用于所有關(guān)系任務(wù),使得模型匹配所有數(shù)控機(jī)床關(guān)系的問答。
3.2.4 案例分析
本節(jié)選擇一個用戶問題詳細(xì)分析整個過程,數(shù)控機(jī)床設(shè)備維護(hù)知識問答過程案例如圖14所示。
通過觀察圖14分析源實體和候選答案實體匹配分?jǐn)?shù)的計算過程,實驗將用戶問題“導(dǎo)致[主軸驅(qū)動器主回路出現(xiàn)過電流報警]現(xiàn)象的原因是什么?”以及候選答案實體“驅(qū)動器控制板上的報警指示燈AL8(LED12)、AL4(LED14)亮|主回路不存在短路現(xiàn)象|無其他報警信號|元器件正常|主軸驅(qū)動器FR-SE內(nèi)的斷路器CB1就跳閘|實際測量全部逆變大功率晶體管組件|主軸驅(qū)動器在高速的情況下出現(xiàn)斷路器跳閘的問題”輸入模型的用戶問題嵌入模塊,其中候選答案實體以豎線進(jìn)行分割。對每個用戶問題通過評分函數(shù)計算出問題和每個候選答案實體的分?jǐn)?shù),圖14中數(shù)字即為匹配分?jǐn)?shù),答案選擇時還有不同的策略,候選答案實體較少時,直接選擇評分最高的實體,即圖14中“主軸驅(qū)動器在高速的情況下出現(xiàn)斷路器跳閘的問題”。當(dāng)含有較多的候選實體情況下,選擇最大評分實體可能效率比較慢,可以通過修剪候選實體的方法來改善性能問題,比如圖14中出現(xiàn)幾個評分0.5以下的候選實體,當(dāng)將用戶問題與候選答案實體進(jìn)行打分的時候,可以對其進(jìn)行修剪,使得最后挑選答案時性能得以提高。
本文針對數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識問答進(jìn)行了一些相關(guān)的研究,提出先圖譜補(bǔ)全后知識問答的方法來彌補(bǔ)知識圖譜稀疏性給數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域的知識問答帶來的問題?;贓mbedding的多跳知識問答模型,在數(shù)控機(jī)床設(shè)備維護(hù)領(lǐng)域擁有較強(qiáng)的可擴(kuò)展性,對于部分關(guān)系的問答準(zhǔn)確率也能到70%,該項研究還需要進(jìn)一步的探索。
此研究以西門子和發(fā)那科數(shù)控機(jī)床設(shè)備維護(hù)數(shù)據(jù)為例,抽取出數(shù)據(jù)質(zhì)量還存在一定問題,后期將與相關(guān)領(lǐng)域的專家一起參與設(shè)計本體模型,深入了解數(shù)據(jù)含義。同時考慮算法模型的優(yōu)化方法,探索和總結(jié)出能夠應(yīng)用于數(shù)控機(jī)床設(shè)備維護(hù)知識問答的通用方法。