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