崔碩 張春燕② 賈家樂 張成東 張勝文② 陳凱
(①江蘇科技大學機械工程學院,江蘇 鎮江 212100;②江蘇省船海機械裝備先進制造重點實驗室,江蘇 鎮江 212100)
隨著工業智能的興起,智能制造正逐步將制造業數據由數據智能轉換為認知智能[1]。雖然很多大型企業積累了大量的制造業數據,但它們是以分散的文檔、三維設計模型等形式對機械設計相關信息進行存儲和顯示,這使得人們難以深入挖掘其潛在關系。尤其當設計相似零件與特征時,無法快速對三維模型庫與設計
文本進行知識重用,重復性勞動增多,設計效率降低。如何將企業內部積累的多源異構數據轉換為具體的工業知識以及如何更便捷使用這些知識已發展成為當前人們研究熱點之一[2-3]。
為解決上述問題,Li X等人[4]提出了一種包括異構CAM知識重用的加工知識圖譜構建方法;Chen Z Y等人[5]設計了一種包含CAD模型與裝配關系異構知識的圖譜構建方法。Zhao M等[6]人使用BIGRUattention模型自動提取生產與用戶評價信息,用于構建汽車行業的知識圖譜。Chen L等人[7]提出了應用于實體識別和關系提取的BIGRU-HAN 和Bi_LSTM-CRF模型。當前的研究主要在Word2vev[8]對詞的預訓練的基礎上,對非結構化文本獲取關鍵結構化信息。
隨著近些年來預訓練語言模型的快速增長,涌現出ELMo[9]、BERT[10]等一批更加優秀的預訓練語言模型?;谶@些預訓練語言模型,羅凌等人[11]提出了基于筆畫ELMo的中文電子病歷識別方法。王得強[12]等人提出應用知識圖譜技術對領域指示圖搜索提供技術支持。劉赫[13]等人提出了以BERT模型作為預訓練的典禮調度文本抽取方法,提升了電力調度文本的應用度。BERT相比于Word2vev更擅長識別歧義詞匯,但是BERT的模型參數巨大,訓練代價較大。后來谷歌提出ALBERT[14]模型,該模型具有與BERT相似的訓練性能,但參數僅為其1/10。
雖然眾多學者做了大量的研究,但是在產品設計領域中設計文本信息提取模型準確率與智能化程度并不高。因此本文提出了面向設計領域的知識圖譜構建方法。首先從企業眾多零散的庫存信息中提取出模型數據并根據相似度聚類算法對相似特征進行分類;然后選用ALBERT模型代替BERT進行對設計領域詞匯進行預訓練構建知識抽取模型對非結構化文本進行抽取。最后,將經過實體對齊后的節點儲存至圖數據庫并構建原型系統驗證其可行性。
本文構建圖譜總流程如圖1所示,主要包括機械設計領域圖譜建立模塊與知識問答模塊。數據來源主要是從MBD(model based definition)模型庫、設計手冊與工藝卡片中獲取結構化與非結構化文本數據;圖譜構建模塊主要闡述了如何搭建知識抽取模型對文本信息文本挖掘,獲取所需知識并進行儲存;圖譜應用模塊主要結合Web框架,部署后臺模型對圖譜進行管理與問答。

圖1 總體構建流程
MBD模型尺寸標注復雜以及有關的設計手冊等各種信息多態且冗雜,構建一個統一、高效的知識圖譜有助于在領域進行知識重用,實現企業智能化建設。文章主要研究了該圖譜具體的構建方法,圖譜構建技術路線如圖2所示,圖2a介紹了如何從模型獲取特征與其基本關系;圖2b搭建了非結構化文本的知識抽取模型;圖2c~e介紹了節點的儲存與融合。
為構建知識圖譜,文章引入了圖像識別技術,結合軟件二次開發與PMI(product manufacturing information)標注對特征視圖進行捕捉并提取特征具體信息[15]。自動構建模型、部件與特征之間的關系并儲存。由于模型包含眾多特征,導致后期圖譜檢索復雜度提升,為解決該問題,對所提取出的特征圖像進行相似度聚類處理,減少信息冗余,降低圖譜復雜度,最終將信息保存至數據庫,如圖2c所示。

圖2 圖譜構建技術路線
將設計手冊等文本內容挖掘成結構化語義信息需要NLP(natural language processing)技術進一步處理,主要包含中文分詞、詞性標注、命名體識別和關系抽取。目前,根據開源項目的NLP技術,經測試已經在前兩個步驟中取得優異的成績。但命名體識別與關系抽取任務目前主要針對的通用領域中的時間、地點和組織進行抽取,對機械設計領域的應用效果不是很理想。本文提出一種新穎的聯合知識抽取模型MachineALBERT+Bi_LSTM-CRF+CNN,用于獲取非結構化文本中包含語義信息的三元組,以構建高質量的機械設計領域知識抽取模型。
2.2.1 模型輸入
機械設計領域的文本大多排列復雜、不規則。如果直接使用信息抽取模型對其進行抽取,所得的結果往往不盡人意。因此,需對數據文本進行一些必要的預處理并制作數據集。
步驟1數據處理:使用分詞工具,導入自定義字典進行數據的分詞與清洗。從技術層面上,本文使用正則表達式結合分詞工具對文本中所包含的句子進行清洗與拆分。首先采用去除停用詞將文本中一些無意義信息去除,然后將小于128字符的句子進行拆分,拆分標識符為句末的句號;將字符數量大于128的句子,按照分詞結果在128個字符處進行分割為兩個或者多個句子。
步驟2 數據集制作:(1)命名體識別數據集制作。命名體識別不同于二分類問題,存在多種標注體系。經比較,文章選用經典的BIO標注。在BIO標注體系下,通過標簽B-X(beginning)標記每一個實體起始的token,用標簽I-X(inside)標注非起始的token,用標簽O(Other)表示其他非標記的實體token。(2)關系抽取數據集制作。關系抽取可以看作文本分類任務。類似于其他監督學習,在每條數據之后,打上所屬關系類型標簽即可完成數據集制作,表1列出部分標注類型。

表1 實體與關系類型
2.2.2 ALBERT模型預訓練過程
基于ALBERT預訓練模型,使用Transformer編碼器作為主體語言模型并共享全部參數,可以捕獲更遠距離的依賴關系,并且效率比循環神經網絡更高。該模型常見的中文官方預訓練語料為人民日報語料,但是缺乏涉及機械領域專業語料。為了更好地滿足領域需要,本文整理了機械設計領域相關方面的教材、手冊和報告等,這些文本具有豐富的機械領域專業詞匯。運用上述語料對ALBERT模型進行自監督訓練,將所獲得的模型稱為Machine-ALBERT,具體模型結構圖如圖3所示。

圖3 ALBERT結構模型
預處理層:當非結構化文本進入文本預處理層,所輸入文本將進行隨機MASK,采用無監督學習法進行預測所遮擋部分內容,使語言模型可以更好地利用上下文對當前詞進行特征編碼。在該預測階段,模型對輸入文本字符的15%進行掩碼處理,被選中的字符約80%會被替換為‘[MASK]’符號,10%概率被替換為不相關的字符其余保持不變。因為掩碼過程為隨機選中的字符,有一定概率將一個實體詞的前一個字符掩碼而后一個字符保持不變,這樣會降低模型預測的準確率,所以本文預先進行分詞處理,將字符級掩碼處理上升為全詞級掩碼。如圖3預處理層中文本‘孔與端面之間需要有倒角’中原始MASK詞匯為‘端’,經處理后全詞MASK結果為‘孔與[MASK][MASK]之間需要有倒角’。該模型會對MASK詞匯進行預測,在預測過程中模型會根據上下文信息對當前字符進行向量表示,將預測結果與真實字符進行誤差值計算,并用反向傳播修正模型的參數,具體預處理流程如圖4所示。

圖4 MASK預處理流程
詞嵌入層:本文依據ALBERT模型提供的微調機制和機械設計領域知識提取問題的特殊性,構建了一個基于MachineALBERT的動態詞向量編碼層。動態詞向量編碼是指模型輸入不同單個字符生成的語義信息是基于周圍字符搭配情況與傳統word2vec編碼方式不同,這樣可以更好地理解機械領域中的一詞多義現象。我們定義一個完整的句子向量y=(y1,y2,···,yn),其中yi包含字符向量(i<512)、文本向量Eis與位置向量,yi=++,從不同維度提升該模型的非結構文本表示能力。最終通過注意力機制[16]將句子向量y作為輸入,采用多頭注意力機制學習字詞與上下文關系,提升模型泛化能力。
特征編碼層:MachineALBERT模型中Transformer層中多頭注意力機制是由多個單頭自注意力機制并聯而成的,機械非結構化文本同時進入多個單頭自注意力機制進行編碼操作可以增強所收集到的語義信息多樣性。目前每個自注意層大多為12層編碼與解碼層,可以滿足機械文本特征提取效果。盲目的增加編碼層數而導致訓練緩慢,減少又會導致語義信息提取不全。綜合考慮文章的ALBERT模型在每個編碼層進行12次自注意力機制提取為最佳,最后將所輸出的字符編碼作為Bi_LSTM神經網絡的輸入。
具體計算表達式(1)、(2)如下。
式中:Wheadi表示第i個自注意力編碼結果;Q、K、V分別為字向量矩陣;dk表示詞嵌入維度;Contact表示對不同編碼結果進行拼接,W0表示映射矩陣。
2.2.3 Bi_LSTM-CRF模型
機械領域文本在進行實體識別時存在長距離依賴問題,本文使用具有門控機制的Bi_LSTM模型對文本中字符所屬標簽概率進行建模計算。該模型用于自動提取句子特征。我們使用句子每個單詞作為模型時間步長的輸入,在同一時刻t下,字向量xt在前向LSTM單元輸出ft,在后向LSTM輸出bt,最終運算結果為h=ft⊕bt。輸出結果h的維度和當前機械實體標簽個數相同,且向量中的每個維度數值大小表示當前文字屬于各個實體分類概率的大小,選取最大概率的實體標簽作為分類結果。Bi_LSTM網絡雖然獲取了機械設計文本上下文語義信息,但是實體之間依賴關系并未考慮到,對一個實體有可能會預測出連續‘B-’、‘B-’或者出現以‘I-’為開頭的標注,因此本文選用CRF(conditional random fields)進行預測上下文標簽之間關系進行解決該問題。所需預測文本中的字符在經過Bi-LSTM計算后得到輸出結果h,CRF通過考慮實體標簽得分和相鄰字符標簽間轉移得分,對所需預測領域內實體字符標簽進行綜合評分,具體評分公式如下。
式中:Ayi-1,yi表示一條機械設計領域文本中相鄰兩標簽間的轉移分數;Pi,yi表示機械文本中第i個字符的yi標簽得分;n表示當前輸入字符數量。將機械設計文本字符正確標注總得分score(x,y)與所有可能標注總得分的比值具體公式為
式中:Yx表示所有可能的機械文本字符標注。得到字符標簽預測正確的概率P,當P(y|x)接近1的時候,表示標注結果與模型所預測結果一致,機械設計實體識別模型得到了有效的訓練。
2.2.4 CNN模型
Kim Y等[17]用卷積神經網絡(CNN)提取問題特征信息,簡化網絡結構,文本矩陣僅通過一層卷積與一層池化盡可能多地保留語義特征。將經過Bi_LSTM模型轉化的機械設計文本向量序列輸入進行CNN層進行分類。卷積層通過3個不同大小的卷積核進行提取特征具體模型結構如圖5所示,最后經池化操作選取每個Featuremap的最大值捕捉設計文本中重要的特征信息,通過全連接層計算所對應實體標簽的概率并選取概率最大的關系標簽作為預測結果。

圖5 CNN網絡結構
采用某大型企業內部設計手冊與歷史模型庫作為研究對象,根據第2節描述方法進行知識獲取,獲得不同模型特征節點759個,共標記1 000個語句,生成實體2 750個,生成關系1 309。按照8∶1∶1劃分為訓練集、測試集與驗證集。實驗所涉及算法基于Tensorflow框架進行搭建,訓練環境為Intel處理器CPU運行內存16 G,GPU NVIDIA 8 G。
文中采用經典的精確率precision、召回率recall與F-score作為評價指標,具體評價指標為
其中:precision為準確率;recall為召回率;TP為預測為正例,實際為正例;FP為預測為正例,實際為負例;FN為預測為負例,實際為正例。
基于2.2節所搭建的知識抽取模型,通過自構建訓練集進行預訓練的MachineBERT模型將預案文本進行動態詞768維度向量化,并將生成向量輸入Bi_LSTM-CRF分類模型,計算預案樣本的實體識別平均準確率、召回率、F-score為96.38%、97.65%和98.36%?;贑NN網絡對1 309個關系進行分類訓練,建立實體關系抽取模型。采用該訓練完成的模型對200個實體關系進行識別,4種關系類型的平均識別準確率、召回率、F-score為89.73%、87.69%和91.37%。將該混合網絡模型與Word2vec+Bi_LSTM-CRF+CNN、Word2vec+Bi_LSTM建立的抽取模型進行對比,各種模型對于相同測試實體抽取的結果平均值如圖6所示。從圖6中數據可以看出,所提 MachineALBERT+Bi_LSTM-CRF+CNN 混合神經網絡對機械實體與實體關系具有較高的識別準確率。

圖6 各模型抽取效果對比
在各類文本與從MBD模型中獲取的數據中,對各類實體類型的表述是多樣化的。如果大量相似實體節點儲存進圖譜中,將會大大提升圖譜的復雜性,為下游知識問答任務帶來極大困難。實體對齊要盡量聚集實體信息,通過對比詞向量余弦相似度是否超過所設定閾值進行判斷,將判斷為相同的實體之間構建對齊關系,解決實例與關系沖突問題。文章通過使用Python支持的Py2Neo等第三方庫將各類數據實體與關系以節點與關系的形式進行儲存,并可以提供對應的增刪改查等操作。
為了便于用戶查詢所需信息,本文提出了基于圖譜的智能問答方法:沿用2.2小節中的實體識別模型,提取出用戶輸入問句所包含的實體,理解用戶意圖,并進行解答。考慮到機械領域內一般場景的用戶提問通常是短文本,所以知識問答系統將問句進行分類,構建問題模版,具體示例如表2所示。采用基于深度學習的問題分類算法匹配問題類型;根據問題模版整合為對應Cypher查詢語句對圖數據庫進行檢索,并將檢索結果返回給用戶。

表2 問句集示例(部分)
為驗證上述方案的可行性,將上述實體識別與知識問答模型結合Python的Django框架進行后臺部署。前端中使用jQuery等工具實現數據交互,通過文本、三維模型圖等多種形式將知識進行可視化展示。平臺主要包括:節點查詢模塊與知識問答模塊。
節點查詢模塊的目的是統計被查詢實體有關的所有實體與關系,該模塊提供3種查詢方式:(1)指定一種實體進行查詢.(2)指定一個實體與關系進行查詢。(3)指定兩個實體,查詢兩實體之間是否有關系,并通過插件將三維模型與特征進行前端可視化。圖7所示為查詢具體特征節點所返回的界面。左鍵點擊圖中節點可進行了解節點所包含的詳細屬性信息,右鍵點擊節點可以對節點進行快速編輯。

圖7 實體查詢界面
知識問答通過挖掘用戶輸入問題背后的語義,使返回結果更加貼合用戶需求。在進行知識問答過程中,首先使用結巴分詞工具,通過導入自構建的領域字典進行問句分詞。然后結合第3小節所構建的問題模版,通過CNN網絡進行問題分類。最后根據模版與具體問句實體,將所查詢到的結果返回至前端界面。圖8為問題“連桿MBD模型包含哪些特征?”的問答情況,實現了知識問答的目標。

圖8 知識問答界面
本文搭建了關于機械設計領域的知識圖譜與問答推薦框架。在構建領域知識庫中,進行了三維模型的特征融合,減少特征冗余,提高知識庫質量。基于領域知識庫搭建,在知識庫的基礎上提出了MachineALBERT的方法進行非結構化機械設計文本的實體識別工作,實現了機械特征實體信息的高準確率識別。在知識問答階段,結合實際生產設計環境,構建了領域問答模版,便于對用戶問句語義進行解析。最終結合Web框架開發出一套原型系統,驗證該方法可行性。
本文提出了一種行之有效領域的知識圖譜構建與問答框架,但仍存在一些局限性:(1)知識抽取模型超參數是根據經驗所設,未來可能需要針對不同的應用繼續優化超參數。(2)連續問答是未來主要趨勢,但知識問答部分只可實現單句問答。因此,針對該問題需進行深入的研究,提升問答在實際中的應用能力。