文輝 于敬 周明星
(達(dá)而觀信息科技(上海)有限公司 上海市 200010)
工業(yè)制造,如汽車、船舶、半導(dǎo)體、能源等是國家的基礎(chǔ)產(chǎn)業(yè),目前企業(yè)內(nèi)部對待“人機(jī)料法環(huán)”數(shù)據(jù)的智能能管理程度不一,人員、設(shè)備等數(shù)據(jù)可能已經(jīng)以結(jié)構(gòu)化的形式很好的管理,工藝、流程、故障等數(shù)據(jù)更多是以非結(jié)構(gòu)化的形式散落,缺少統(tǒng)一治理,進(jìn)而無法發(fā)揮數(shù)據(jù)的價值。 現(xiàn)階段的問題包括:
(1)缺少知識結(jié)構(gòu)化:多源異構(gòu)數(shù)據(jù)缺少管理,特別是對方法手冊、故障報告等高價值文檔缺少知識體系的治理;
(2)缺少知識關(guān)聯(lián):沒有按照業(yè)務(wù)流程,將“人機(jī)料法環(huán)”等各個維度的數(shù)據(jù)進(jìn)行關(guān)聯(lián),往往需要業(yè)務(wù)系統(tǒng)的互相打通,知識查詢、共享和利用的效率低下。
現(xiàn)有的企業(yè)內(nèi)部一般也建立了各種各樣的質(zhì)量體系和系統(tǒng),如PLM(產(chǎn)品生命周期管理系統(tǒng))、ERP(企業(yè)資源規(guī)劃系統(tǒng))、FMEA(潛在失效模式和影響分析)、FTA(故障樹分析)等系統(tǒng),但是這些系統(tǒng)都存在著數(shù)據(jù)孤島、更新不及時、復(fù)用效率低等問題[1][2][3]。
因此本文參考知識圖譜建模方法,提出和設(shè)計一種基于知識圖譜的根因分析系統(tǒng)。知識圖譜是一種面向知識點及其聯(lián)系的建模方式,通過將業(yè)務(wù)的關(guān)注知識點通過知識網(wǎng)絡(luò)進(jìn)行關(guān)聯(lián),利用知識圖譜擅長挖掘知識深度、知識關(guān)聯(lián)的優(yōu)勢,提高根因分析、知識推薦、知識沉淀的效率。基于知識圖譜的根系分析系統(tǒng)平臺是利用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、自然語言理解等人工智能技術(shù),為用戶提供質(zhì)量數(shù)據(jù)可視化展示、信息追溯、產(chǎn)品構(gòu)成追溯、智能問答、基于質(zhì)量控制的故障信息失效分析、知識庫管理等功能的綜合性平臺。
基于知識圖譜的失效分析系統(tǒng)主要由知識圖譜構(gòu)建平臺和失效分析應(yīng)用組成。知識圖譜系統(tǒng)由知識圖譜構(gòu)建模塊、知識圖譜動態(tài)推理模塊、知識推送模塊、知識圖譜動態(tài)更新模塊、知識圖譜信息推薦模塊組成。知識圖譜構(gòu)建主要指基于結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)源構(gòu)建知識圖譜;知識圖譜動態(tài)推理主要是指提供知識問答和推理的基礎(chǔ)能力,如語義鏈接、語義理解,復(fù)雜問答能力等[4][5]。失效分析應(yīng)用值得是失效根因分析、失效原因統(tǒng)計、知識推送和知識推薦等。失效分析知識圖譜平臺的業(yè)務(wù)功能視圖1 所示。
圖1:知識圖譜平臺業(yè)務(wù)流程圖
基于知識圖譜的失效分析系統(tǒng)主要是針對企業(yè)內(nèi)部的數(shù)據(jù)進(jìn)行業(yè)務(wù)建模,在企業(yè)內(nèi)部已有數(shù)據(jù)和外部標(biāo)準(zhǔn)等數(shù)據(jù)的基礎(chǔ)上,建設(shè)失效知識圖譜,關(guān)聯(lián)人機(jī)料法環(huán)各個維度的數(shù)據(jù)[6][7][8]。使用的企業(yè)內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)分別如表1 所示。
表1:企業(yè)內(nèi)部數(shù)據(jù)
相比內(nèi)部數(shù)據(jù),失效知識圖譜還需要使用到企業(yè)外部的數(shù)據(jù),包括各行業(yè)的國家國際標(biāo)準(zhǔn)、規(guī)范和法律法規(guī),如國家對醫(yī)療產(chǎn)品的性能標(biāo)準(zhǔn)、對汽車產(chǎn)品的質(zhì)量標(biāo)準(zhǔn)等。相關(guān)的行業(yè)規(guī)范和標(biāo)準(zhǔn)也是失效分析的重要標(biāo)準(zhǔn)。
失效分析知識圖譜從“人機(jī)料法環(huán)”等角度,抽象相關(guān)概念,并對概念之間建立關(guān)聯(lián),達(dá)到知識結(jié)構(gòu)化和知識關(guān)聯(lián)。從知識圖譜底層技術(shù)的角度,需要定義概念及其關(guān)系。表2和表3 分別為失效分析知識圖譜的核心模式定義,包括概念類型定義和關(guān)系類型定義。
表2:失效分析知識圖譜概念類型
表3:失效分析知識圖譜關(guān)系類型定義
本系統(tǒng)從底向上依次可以劃分為環(huán)境部署層、算法層、模型訓(xùn)練層、業(yè)務(wù)服務(wù)層、網(wǎng)關(guān)層和前端展示層。系統(tǒng)采用前后端分離的架構(gòu)設(shè)計,使得業(yè)務(wù)流程、用戶界面均可以較小的代價實現(xiàn)動態(tài)調(diào)整。系統(tǒng)后端則主要由各種微服服務(wù)構(gòu)成,微服務(wù)架構(gòu)具有良好的可擴(kuò)展性,在增加業(yè)務(wù)功能時,只需要增加新的微服務(wù)節(jié)點資即可,此外微服務(wù)架構(gòu)具有良好的容錯性,可以保證系統(tǒng)對業(yè)務(wù)支撐的高度穩(wěn)定性。
各種微服務(wù)主要是基于底層python 算法框架進(jìn)行開發(fā)的,如numpy、gensim、tensorflow 等。系統(tǒng)底層依賴多種自然語言處理相關(guān)算法和相關(guān)算法庫。前后端通過網(wǎng)關(guān)層進(jìn)行通信,網(wǎng)關(guān)層負(fù)責(zé)將前端請求轉(zhuǎn)發(fā)到API 接口[9]。
系統(tǒng)可以通過結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建知識圖譜。對于結(jié)構(gòu)化數(shù)據(jù),首先會經(jīng)過數(shù)據(jù)預(yù)處理服務(wù)的ETL進(jìn)行預(yù)處理,然后用戶根據(jù)所設(shè)計的圖譜模式,進(jìn)行可視化配置數(shù)據(jù)映射任務(wù),將其提交到異步任務(wù)隊列中執(zhí)行轉(zhuǎn)換處理,并將結(jié)果存儲到圖數(shù)據(jù)庫中。對于非結(jié)構(gòu)化數(shù)據(jù)(如word、pdf 文檔),系統(tǒng)會將解析后的數(shù)據(jù)進(jìn)行存儲。此后,一方面可以經(jīng)過標(biāo)注的手段,獲取模型的訓(xùn)練語料,再經(jīng)過分詞、Embedding 等一系列流程,進(jìn)一步的訓(xùn)練信息抽取模型。另一方面,可以通過訓(xùn)練好的模型,自動的抽取出實體和關(guān)系,生成三元組數(shù)據(jù),再將數(shù)據(jù)導(dǎo)入到圖數(shù)據(jù)庫圖數(shù)據(jù)庫中。如圖2 所示。
圖2:失效分析知識圖譜構(gòu)建數(shù)據(jù)流
(1)數(shù)據(jù)源對接和配置:系統(tǒng)支持多種多源異構(gòu)的數(shù)據(jù)源對接,結(jié)構(gòu)化數(shù)據(jù)源包括MySQL 等關(guān)系型數(shù)據(jù)庫,excel 和csv 等表格文件,還包括Hive、Hbase 等大數(shù)據(jù)平臺數(shù)據(jù)源。非結(jié)構(gòu)化數(shù)據(jù)源包括上傳txt、word、pdf 等非結(jié)構(gòu)化文檔或者富文本文檔,非結(jié)構(gòu)化文檔支持以S3 協(xié)議的對象存儲方式。
(2)ETL 處理平臺:支持20 多個固定清洗算子,包括異常過濾、缺值填充、單位轉(zhuǎn)換等,ETL平臺支持自定義算法,包括以接口的形式對接達(dá)觀已有的自然語言處理能力,如文本摘要、文本分類、文本審核等。ETL 平臺支持以spark 任務(wù)提交大數(shù)據(jù)平臺,通過spark 分布式集群快速對海量數(shù)據(jù)進(jìn)行處理。
(3)結(jié)構(gòu)化數(shù)據(jù)處理:包括對結(jié)構(gòu)化數(shù)據(jù)基于spark 集群的全量離線處理,也支持基于Flink 流式框架的數(shù)據(jù)實時處理, Flink 流式處理框架,內(nèi)置Flink SQL、Flink Table 數(shù)據(jù)處理組件,同時也可以在框架內(nèi)置和自定義數(shù)據(jù)ETL 算子,常用的ETL 算子包括:缺值填充、異常過濾、編碼映射、日期轉(zhuǎn)化、單位轉(zhuǎn)換、數(shù)據(jù)關(guān)聯(lián)、范圍檢測、長度檢測、格式檢測等。
(4)非結(jié)構(gòu)化數(shù)據(jù)處理:包括對多種富文本文檔進(jìn)行解析,同時以可視化的標(biāo)注的方式對文檔進(jìn)行知識標(biāo)注,包括實體、屬性、關(guān)系、事件要素等標(biāo)注,標(biāo)注數(shù)據(jù)集支持作為模型訓(xùn)練的輸入,也可以經(jīng)過業(yè)務(wù)審核后導(dǎo)入知識圖譜。失效分析知識圖譜系統(tǒng)使用Bert+Bi‐LSTM+CRF 作為實體知識的抽取模型,使用CasRel 作為關(guān)系的默認(rèn)抽取模型[5][6][7]。
(5)圖譜構(gòu)建:知識圖譜構(gòu)建模塊支持Neo4J 等多種圖數(shù)據(jù)庫,上游模塊將三元組統(tǒng)一寫入Kafka,統(tǒng)一寫入模塊從Kafka 消費獲取三元組數(shù)據(jù),并保證將三元組數(shù)據(jù)寫入Neo4J 圖數(shù)據(jù)庫和ElasticSearch 索引,特別之處的出,ElasticSearch 索引包括實體索引和關(guān)系索引,通過ElasticSearch 提供全文檢索能力。
智能問答系統(tǒng)利用語義分析技術(shù)理解保障人員對設(shè)備缺陷現(xiàn)象的描述或相關(guān)問題,包括識別問題中的實體和關(guān)系并利用語義檢索技術(shù)將其和圖譜中的實體鏈接起來;利用意圖識別技術(shù)理解問題的意圖,再利用實體和關(guān)系在知識圖譜中的關(guān)聯(lián)關(guān)系借助知識推理技術(shù)追尋問題的答案[2][10]。
智能問答系統(tǒng)的整體基礎(chǔ)框架如圖所示,一共分為四個模塊:數(shù)據(jù)預(yù)處理模塊、問句分析、 知識檢索 和答案生成四個部分。失效分析智能問答系統(tǒng)架構(gòu)如圖3 所示。
圖3:失效分析智能問答系統(tǒng)架構(gòu)
在構(gòu)建失效知識圖譜的基礎(chǔ)上,將用戶輸入的自然語言問題進(jìn)行間句分析,針對問句進(jìn)行問句分類、實體鏈接、意圖分析、 句法分析的工作。然后進(jìn)行知識檢索。知識檢索過程中會使用到規(guī)則引擎對預(yù)定義的不同的規(guī)則進(jìn)行相應(yīng)的處理。規(guī)則引擎是用來針對不同的問句意圖進(jìn)行不同的答案返回設(shè)置。最后答案生成部分會結(jié)合問句類型。轉(zhuǎn)換答案生成自然語言的答案。
實體鏈接(entity linking)就是將一段文本中的某些字符串映射到知識庫中對應(yīng)的實體上。為了解決垂直行業(yè)數(shù)據(jù)冷啟動的問題,本系統(tǒng)設(shè)計一種結(jié)合精確鏈和模糊鏈接相結(jié)合的方式來提高實體鏈接的精度。
實體精確鏈接利用知識庫中已有的知識點,將實體名稱和可遍歷枚舉屬性值集合構(gòu)建字典樹(即Trie 樹),通過Trie 前綴樹提取查詢中的精確實體名稱。通過對查詢分詞,以詞作為基本粒度構(gòu)建Trie 樹,避免“中國平安”提取出 “國平”的情況。
實體模糊鏈接通過對查詢進(jìn)行名詞短語(或者NER 實體)提取,將名詞短語(或者NER 實體)對實體名索引中進(jìn)行檢索,通過判斷名詞短語(或者NER 實體)和檢索的實體名的相似度判斷是否召回。相似規(guī)則包括覆蓋率、編輯距離等[10]。如表4 所示。
表4:模糊鏈接相似性判斷規(guī)則
概念鏈接(schema 鏈接)通過將圖譜schema 中的實體類型,屬性名,關(guān)系類型構(gòu)建Trie 樹,提取查詢中精確概念名稱,同時支持同近義詞設(shè)置概念的同義詞,如(公司,企業(yè))。
本系統(tǒng)使用最大區(qū)間匹配來避免鏈接部分鏈接的問題,即對于“外圍血管支架“查詢,即可以作為一個整體鏈接到產(chǎn)品”膽道外圍血管支架“,同時其中的”支架“也可以鏈接到一個概念類型”支架“,在這種情況下,基于最大區(qū)間鏈接優(yōu)先的原則,概念”支架“的鏈接會被忽略。
事實性問答大致分為兩個階段:其一為問題理解,即將問題轉(zhuǎn)換為結(jié)構(gòu)化查詢;其二為查詢評分,即對產(chǎn)生的結(jié)構(gòu)化查詢結(jié)果進(jìn)行置信度評分。在問答系統(tǒng)中,重點是解決第一階段中的歧義性問題:第一,短文本鏈接問題,即如何將自然語言問句中的短語鏈接到正確的實體/類/關(guān)系/屬性上;第二,復(fù)合問題,即一個自然語言問題可能轉(zhuǎn)換為多個知識圖譜三元組,而這多個三元組如何組合,才正確表達(dá)了問題的意圖,并由此得到正確答案[8][11]。
為了解決第一階段的兩個問題,基于子圖匹配的方法,將解決歧義問題與查詢評分這兩個階段融合在一起,即當(dāng)?shù)玫阶匀徽Z言問題的一個正確匹配的查詢子圖時,歧義問題也已經(jīng)同時解決。具體算法流程如下:
輸入:查詢Query;
(1)對Query 提取候選實體和概念提及;
(2)對所有的提及計算笛卡爾積的組合,每個組合對應(yīng)一個查詢子圖;
(3)對每一個查詢子圖
根據(jù)表5,計算r1、r2、r3、r4、r5 的命中次數(shù)
表5:語義關(guān)系組合
計算分?jǐn)?shù)score=50*r1+40*r2+30*r3+20*r2+10*r1
(4)選擇得分最高的子圖作為查詢子圖
輸出: 得分最好的查詢子圖
表5 為計算鏈接候選子圖的語義相關(guān)性的組合列表及其描述,每一種語義關(guān)系組合的描述了該關(guān)系的模式定義和相關(guān)性打分,不同的語義組合重要程度也不同。
例如問句“蘋果的高管”,在圖譜中騰訊有可能表示公司實體,也可能表示水果實體。通過子圖匹配問句的關(guān)鍵要素 可以知道需要匹配到以“高管”為關(guān)系的子圖從而可以對蘋果這一實體進(jìn)行消歧。如圖4 所示。
圖4:基于子圖匹配的語義消歧
失效根因歸因即故障根本原因分析,通過輸入失效模式、位置、現(xiàn)象等信息,通過智能問答引擎內(nèi)置的語義分析引擎,可以將查詢生成與之最匹配的子圖,通過子圖可以匹配到根本原因?qū)嶓w,如果子圖鏈接不精準(zhǔn),支持對子圖進(jìn)行修改,子圖越豐富,鏈接到的原因也就越精準(zhǔn)。接下來討論如何通過子圖查詢原因?qū)嶓w[12][13]。
本文提出一種基于子圖緊密度的根因分析算法,通過緊密度排序,可以找出關(guān)聯(lián)性最強(qiáng)的根本原因。基于緊密度的根因關(guān)聯(lián)算法流程如下。
輸入:問答引擎語義解析的鏈接子圖,表示為實體的集合(v1,v2,……,vi,……,vn);
1)根據(jù)式1 計算鏈接子圖中所有實體到達(dá)原因?qū)嶓w類型的最短路徑;
2)執(zhí)行1)步中的所有路徑查詢,獲取所有的原因?qū)嶓w;
3)對每一個查詢到的原因?qū)嶓w:
3.1 計算該原因?qū)嶓w到子圖每個實體Vi 的最短路徑;
3.2 根據(jù)式2 求和該原因?qū)嶓w到子圖所有實體最短路徑的總和作為緊密度;
4)根據(jù)緊密度得分對所有的原因?qū)嶓w進(jìn)行排序,返回TOP N。
輸出: 緊密度得分TOP N 的原因?qū)嶓w
鏈接子圖實體Vi 到原因的最短路徑的計算如式(1)所示:
其中Pi 表示最短路徑,Clabel表示原因概念,route 表示模式中Vi 到Clabel的路徑。
原因?qū)嶓wCj 到鏈接子圖的緊密度計算如式(2)所示下:
其中,Cj 表示原因?qū)嶓w,Vi 表示鏈接子圖中的實體,n表示鏈接子圖的實體數(shù)量。
根據(jù)系統(tǒng)返回的原因?qū)嶓w,可以動態(tài)的增加的子圖要素,根據(jù)緊密度關(guān)聯(lián)算法,其相關(guān)性越強(qiáng)的原因排序會更加靠前,也更加符合業(yè)務(wù)的效果目標(biāo)。
快速基于企業(yè)內(nèi)部數(shù)據(jù)構(gòu)建知識圖譜,提供失效分析應(yīng)用具有重大的價值,本文研發(fā)了一種基于知識圖譜的失效分析系統(tǒng),基于知識圖譜對各種類型數(shù)據(jù)統(tǒng)一建模,建立專家?guī)欤o助業(yè)務(wù)進(jìn)行智能問答和失效分析,快速根據(jù)失效現(xiàn)象,快速定位故障原因。在系統(tǒng)框架內(nèi),支持結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的知識圖譜構(gòu)建方式,借助ETL 和Bert‐BILSTM‐CRF 算法、CasRel 等算法分別對結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理和知識抽取?;谥R圖譜的語義問答和緊密度的根因關(guān)聯(lián)可以快速定位故障的根本原因,同時輔助知識圖譜的可解釋性,提高失效分析效率,提高知識復(fù)用、沉淀、利用的效率。