彭仕鑫,肖 彪,趙正彩*,徐寶德,丁國智,尉 淵,蘇宏華,王 萌
(1.南京航空航天大學 機電學院,江蘇 南京 210016;2.北京星航機電裝備有限公司,北京 100071)
隨著我國航天領域技術的不斷發展,航天類產品規模日趨龐大。復雜薄壁類零件作為國防裝備核心關鍵零件,具有壁薄、體積大、特征復雜等特點。有些復雜薄壁零件的最小壁厚度為1 mm,致使零件剛度差、易變形。同時,一個復雜薄壁零件包含的典型特征數可能多達20余個,需從工藝的角度去把控零件加工質量和精度。因此,復雜薄壁零件的工藝流程極其復雜,從毛坯料至加工成完整零件過程中包含的工藝知識數量十分龐大。由于不同工藝員設計經驗的差異,使得工藝編制質量一致性差。此外,大多數工藝數據是以簡單的圖紙和工藝卡片的形式存在,工藝知識結構化程度低、工藝關聯度低,使得知識整理的難度大,導致數據缺乏有效的挖掘和重用[1]。
重用和共享工藝知識是制造企業保持競爭力的有效手段[2],如何將企業內部積累的多源異構數據轉換為統一規范的結構化知識,以及如何更快速方便地使用這些知識,已成為當前學者們研究熱點[3-4]。
知識圖譜技術可以有效解決上述工藝知識重用和共享的問題。CHANG Z Y等人[5]提出了一種強化工藝員主觀能動性的工藝知識重用方法。李秀玲等人[6]將潛在語義分析技術引入到了工藝知識重用中。李柏林等人[7]針對復雜曲面精加工工藝規劃效率低和加工實例數據難以有效重用的問題,構建了復雜曲面精加工工藝規劃知識圖譜。段陽等人[8]基于等價實體判別的數據融合算法,構建了金屬切削加工知識圖譜。
另外,知識圖譜的應用也十分廣泛,這在電商、金融證券、醫療、公共安全以及娛樂生活等領域[9]體現得尤為明顯。尤其是在輔助智能問答、自然語言理解、大數據分析、推薦計算、物聯網設備互聯、可解釋性人工智能等多個方面,展現出了豐富的應用價值[10]。
NIE T等人[11]利用知識圖譜,結合構建技術,對飛機電源系統進行了故障診斷。LU D等人[12]將知識圖譜應用于協同過濾的推薦系統中,有效提高了推薦的準確性,緩解了用戶歷史交互數據稀疏的問題。CHEN X等人[13]構建了基于企業風險的知識圖譜,并將其應用于智能問答系統中,有效地提高了系統回答的準確性。盛林等人[14]基于關系路徑的知識圖譜推理方法,對旋轉機械故障進行了診斷,解決了征兆缺少時故障診斷準確率低的問題。
相對于其他領域,知識圖譜在機械加工工藝領域仍處于起步階段,缺乏研究與應用的實例,針對大規模生產企業的知識整合和重用技術也不成熟。
因此,為了提升航天復雜薄壁零件的工藝設計效率,筆者通過分析典型零件的加工工藝知識體系和數據特點,提出面向加工工藝領域的知識圖譜構建方法,并利用Neo4j圖數據庫對工藝知識進行可視化表示;基于構建的知識圖譜進行工藝知識檢索、工藝路線推薦等實際應用;最后,驗證復雜薄壁零件加工工藝知識圖譜構建的合理性和可行性。
知識圖譜(knowledge graph)的概念由Google公司于2012年首次提出[15],并作為構建下一代智能化搜索引擎的核心基礎[16]。本質上,知識圖譜是以三元組(頭實體、關系、尾實體和實體、屬性、屬性值)形式描述客觀世界的實體及其之間關系的語義網絡[17]。
相對于傳統的數據儲存工具和知識表示方法,知識圖譜擁有以下優勢[18-21]:1)圖結構的數據存儲方式,數據調取速度更快;2)數據檢索更有深度和廣度,可以匹配出與搜索結果相關的完整知識體系;3)具有強大的推理能力,可以模仿人的思考過程推理出隱含知識;4)知識圖譜支持可視化展示,更方便進行人機交互。
由于航天復雜薄壁零件的加工工藝知識圖譜屬于一種領域知識圖譜,對知識有嚴苛的專業性和準確性要求。因此,筆者將航天復雜薄壁零件作為圖譜構建對象,采用自頂向下和自底向上法相結合的構建方法,既能保留自頂向下中概念層次清晰的優勢,保證本體的準確率和覆蓋率,也具有自底向上的圖譜更新快、支持大數據量構建的特點[22]。
知識圖譜構建時,首先根據對歷史工藝數據的分析,在專家指導下進行本體構建,確立良好的概念層次,再通過對實體、關系和屬性的知識抽取完成數據層的構建,最后將模式層與數據層關聯映射并導入Neo4j圖數據庫中,得到工藝知識圖譜。
構建流程如圖1所示。
圖1中,流程包括:模式層構建、數據層構建、知識儲存及可視化、知識更新。
模式層的構建要對歷史工藝文件和數據使用需求進行分析,并采用本體構建的方法構建模式層。本體就是用來描述某個領域內的概念及概念間關系,使得這些概念和關系在共享的范圍內具有大家共同認可的、明確的、唯一的定義[23]。
筆者采用自頂向下的方式構建模式層,分析工藝文件得出圖譜的組織結構,構建復雜薄壁零件加工工藝知識圖譜模式層,如圖2所示。

圖2 復雜薄壁零件加工工藝知識圖譜模式層
筆者利用protégé軟件完成class(類)、object properties(對象屬性)和data properties(數據屬性)的添加;最后,將本體建模結果保存為OWL文件,便于其后續與數據層相互映射。
知識圖譜數據層通常使用關系型數據庫存儲大量加工實例[24]。筆者利用MySQL數據庫儲存復雜薄壁零件的加工實例和關系。數據層依據模式層設定的結構層次和規則進行構建,從數據源中抽取出本體概念及其屬性,使構建的模式層實例化。數據層的構建包括知識抽取和本體關系建立兩個部分。
1.3.1 知識抽取
知識抽取的目的是從不同數據源、不同結構數據中提取出三元組,并存入知識圖譜中,其質量直接影響知識圖譜的優劣[25]。
筆者構建知識圖譜的數據源是以PDF格式保存的歷史工藝文件,包括結構化數據和非結構化數據,知識抽取內容主要包括對實體、屬性和屬性值的抽取。
1)結構化數據的知識抽取
在工藝文件中,結構化數據包括零件、工序、工步的實體及相關屬性。該部分利用PDFplumber庫將實體及屬性提取出來,生成實例表,儲存在MySQL數據庫中。
此處以MySQL數據庫中儲存的零件實例為例,如表1所示。

表1 MySQL數據庫中存儲的零件實例
2)非結構化數據的知識抽取
非結構化數據的抽取方法通常有基于規則和字典的方法、機器學習的方法和深度學習的方法等[26]。采用基于規則的方法進行知識抽取、編寫規則模板的方法改進方便、易于理解,并且在小規模的數據集上相對容易實現。
在工藝文件中,對于加工特征的描述相對固定,動賓搭配組合常用“加工……”等。因此,此處采用人工總結匹配模板對特征本體進行抽取,抽取規則以句號、逗號等標點作為規則的終止符。
1.3.2 知識融合
工藝文件是由不同的工藝員編寫的,所以無法保證特征實體名稱的規范性。在抽取得到的特征實體中會出現共指問題,如“上端面”、“前端面”、“左端面”等都指代同一個端面特征,這是由于零件附圖的方向導致同一特征出現不同特征名稱問題。
因此,知識抽取的特征實體還需進行融合并統一規范命名處理。
特征實體知識融合流程如圖3所示。
針對特征實體名稱的融合。筆者采用編輯距離對特征實體進行相似度計算,將相似度大于閾值的特征名稱聚類,統一指代相同的特征名稱。編輯距離即指一個字符串變成另一個字符串所需的最小編輯次數,編輯操作包括替換、插入和刪除。一般來說,編輯距離越小則兩個字符串相似度越大。
編輯距離的遞推公式為:
leva,b(i,j)=
(1)
式中:a,b為字符串;i,j為長度;leva,b(i-1,j)為刪除ai;leva,b(i,j-1)為插入bj;leva,b(i,j-1)+1(ai≠bj)為替換bj;1(ai≠bj)為一個指示函數。相等時為0,不相等時為1。
筆者將實體融合的結果保存在MySQL數據庫中,如表2所示。

表2 MySQL數據庫中存儲的特征實例
1.3.3 本體關系建立
由于工藝文件中缺少對本體關系的描述,難以通過知識抽取的方式得到本體之間的關系,所以要采用建立關系表的方式將抽取得到的實體聯系起來。具體步驟是:
根據模式層設置的四組對象屬性,將具有相互關系的所有本體實例的id抽取出來,每類本體id之間一一對應,并將本體關系表儲存在MySQL數據庫。
“零件有特征”關系如表3所示。

表3 MySQL數據庫中存儲的“零件有特征”關系
目前,知識圖譜的主要存儲方式有三種[27]:基于關系型數據庫的儲存、基于RDF結構的存儲方式、基于免費開源的圖數據庫。
三種存儲方式優缺點如表4所示[28]。

表4 三種知識圖譜儲存方式的優缺點對比
結合關系型數據庫擁有成熟的技術架構,對數據高效的全局操作,以及圖數據庫在搜索查詢方面的優勢[29]。筆者對知識的存儲主要采用MySQL關系型數據庫和Neo4j圖數據庫結合的方法。
以MySQL數據庫作為儲存數據的媒介,其主要儲存各類本體實例;以Neo4j圖數據庫為中心,將所有三元組在Neo4j圖數據庫中進行可視化展示;將模式層與數據層分別導入Neo4j圖數據庫中,通過對類、對象屬性和數據屬性的映射使模式層與數據層結合,實現知識圖譜的實例化。
具體包括以下兩個部分:
1)模式層導入Neo4j數據庫
將模式層以OWL文件導出,利用neosemantics jar工具導入Neo4j數據庫中,在Neo4j中建立類節點和關系節點。Cypher語句導入如下:
CALLsemantics.liteOntoImport('file:///C:/Users/user/Desktop/model.owl', 'RDF/XML')
其中:“file:///C:/Users/user/Desktop/model.owl”為文件路徑;
2)數據層導入Neo4j數據庫
采用Neo4j中的apoc插件和MySQL JDBC驅動實現Neo4j與MySQL數據庫的連接與數據傳輸功能,在Neo4j中建立各類的實體節點、實體關系和屬性。兩個數據庫數據對應的規則是MySQL數據庫的每個表都對應著Neo4j中的每個類節點或關系節點;表的每列對應著不同的屬性,每行則對應輸入的每個實例數據。將MySQL數據庫與Neo4j連接Cypher語句如下:
callapoc.load.driver('com.mysql.jdbc.Driver')
以“零件有特征”關系為例,下面是將MySQL數據庫中的數據導入Neo4j圖數據庫中,生成三元組的Cypher語句:
call apoc.load.jdbc('jdbc:mysql://localhost:/復雜薄壁零件?user=root&password=root&use Unicode=true &characterEncoding=utf8','select * from零件有特征')YIELD row
match (from:零件實例{零件id:row.零件id}),(to:特征實例{特征id:row.特征id})
merge (from)-[r:有特征]->(to)
構建復雜薄壁零件加工工藝知識圖譜是為了讓工藝員更快速、方便地檢索和重用歷史加工工藝數據,但是該知識圖譜難以包括所有復雜結構零件以及相關的工藝知識,并且隨著航天技術的發展會出現越來越多的復雜結構零件。因此,為了滿足相關企業的需求并保證知識圖譜的準確性,在知識圖譜系統構建完成后需要定期對知識庫進行更新,從邏輯上分別對模式層和數據層兩個層面的更新以更新知識庫。
1)模式層的更新。主要對模式層中實體、概念、關系、屬性及其類型進行增加、刪除、修改的操作。更新的結果重新導入Neo4j圖數據庫中生成新的節點;
2)數據層的更新。主要將新的實體、屬性和屬性值重新映射到知識圖譜中。對于少量的數據更新可以直接在Neo4j圖數據庫中使用Cypher語句進行實例、屬性、關系的增加、刪除和修改操作;而對于批量的數據更新則可將知識抽取的結果轉成CSV文件格式,并放入Neo4j的安裝目錄import文件夾下,然后利用Cypher語句將三元組直接導入Neo4j圖數據庫中并在各類節點中進行更新。
基于上述復雜薄壁零件工藝知識圖譜構建方法,筆者對325份工藝文件進行知識抽取,共形成23 596個節點和43 713個實體關系;將這些三元組數據導入Neo4j圖數據中,可構成可視化的復雜薄壁零件加工工藝知識圖譜。
某個零件關聯信息的展示如圖4所示。

圖4 復雜薄壁零件加工工藝知識圖譜可視化模型(部分)
傳統信息檢索方式是根據關鍵詞進行匹配,搜索結果只是自然語言的表層信息,并沒有深入到語義信息[30]。而知識圖譜可以準確直觀地表達出實體之間的關聯關系。基于知識圖譜豐富的語義網絡,用戶可以更快速、全面、準確地檢索到相互關聯的工藝知識。
以“后端框”為例,加工工藝信息查詢結果如圖5所示。

圖5 “后端框”加工工藝信息查詢結果
可以雙擊特征或節點查看與之關聯的工步信息,由此僅需搜索零件的名稱或代號就可獲得該零件相關屬性、工藝流程以及特征構成信息,提高檢索效率和信息關聯深度。
零件加工工藝路線是對零件生產的整體規劃,直接影響零件的質量和生產效益[31]。由于復雜薄壁零件結構和用途的特殊性,對于工藝路線的規劃要求更加嚴格,特別是典型零件的工藝路線蘊含了寶貴的經驗,對技術人員設計新的零件有借鑒作用。利用知識圖譜對工藝路線精準推薦,能夠輔助工藝人員進行工藝設計,減少重復低效的工作。
2.2.1 相似度計算
根據工藝人員在對新零件進行工藝設計時的思路和經驗,可以認為零件的工藝路線與零件之間的相似程度關聯密切,也就是說兩個零件越相似則它們的工藝路線就越相似。因此,可將新零件與歷史零件進行相似度計算,并將結果大于閾值的零件工藝路線推薦給用戶。
基于零件的數據屬性描述和特征拓撲信息進行相似度評價,數據屬性包括分零件名稱、零件代號、零件材料和特征信息等。
常用的文本相似度計算方法有歐式距離、余弦距離、杰卡德系數等[32]。零件名稱和代號分別以短語和字符串的形式出現,利用Word2vec詞向量模型獲得每個零件名稱詞向量,利用BOW詞袋模型將每個零件代號向量化,然后使用余弦相似度計算兩零件向量之間的相似度。
假設零件A在空間中的向量a的坐標為(x1,x2),零件B在空間中的向量b的坐標為(y1,y2),則A、B的余弦相似度計算公式為:

(2)
式中:Ai,Bi為向量a,b的第i維;n為向量的維度;θ為a,b之間的夾角;cos(θ)為當前的兩個零件相似度值,夾角越小則余弦值越接近1,表示兩個向量的相似度越高。
零件是許多特征的集合,零件的特征和零件材料都是零件的標簽。利用Jaccard系數比較兩個零件屬性標簽集合的相似性,系數越大,則表示兩個樣本集相似度越高。
假設零件A的屬性標簽的集合為Ax,零件B的屬性標簽集合為By,則其相似度計算公式為:
(3)
此外,兩個零件特征的拓撲關系差異也會影響其相似性。可利用矩陣表示特征之間的關系,然后計算兩個零件特征的拓撲關系矩陣得到相似度。
特征單元之間包括無關系、鄰接關系、包含關系、參數關系、位置關系和同一特征,分別用0、0.2、0.4、0.6、0.8、1來表示[33]。系數則根據各關系對相似度的影響程度而定,系數越大,則對零件特征拓撲關系相似度的影響也越大。
以某復雜薄壁零件為例,零件模型如圖6所示。

圖6 示例零件模型圖
圖6中,數字標注的是零件的部分典型特征,它們的拓撲關系矩陣如表5所示。

表5 示例零件特征拓撲關系矩陣
根據兩個零件的特征拓撲關系矩陣,其相似度計算公式如下:
(4)
式中:m,n為零件A,B的特征單元數量;aij,bij為A,B零件特征拓撲關系矩陣元素。
筆者設置權重值來表達數據屬性和特征拓撲信息對綜合相似度影響的大小。權值越大,說明該因素對零件綜合相似度的影響程度也越大。其計算表達式如下:
S=w1cosθ1+w2cosθ2+w3J(Ax,By)+w4St(AB)
(5)
式中:w1為零件名稱相似度的權值;w2為零件代號相似度的權值;w3為零件屬性標簽相似度的權值;w4為特征拓撲關系相似度權值。
其中,w1+w2+w3+w4=1,最后選取一定的相似度閾值,可將大于閾值的歷史零件工藝路線推薦給用戶。
2.2.2 推薦結果分析
該部分利用實例將模型推薦結果與實際工藝路線進行對比,并對基于知識圖譜的工藝路線推薦效果進行分析。筆者推薦的工藝路線主要包括零件在各個分廠加工的整體路線和具體的加工工序路線:
1)實驗數據選擇
框段類零件是復雜薄壁零件的典型代表,也具有結構復雜、特征眾多、加工工藝路線復雜的特點。因此,選擇框段類零件作為驗證對象可以確保實驗的可行性和可靠性。
圖6中零件的相關數據信息如表6所示。

表6 實驗數據信息
2)推薦結果及分析
筆者將該零件作為目標零件,把相關信息都輸入相似度算法模型中,得到相似度排列,如表7所示。

表7 “后端框”零件工藝路線推薦列表
表7中,相似度最高的零件和目標零件的模型圖及工藝文件中的工藝路線如圖7所示。

圖7 零件模型及工藝路線對比
由圖7可知:兩個模型十分相似,并且兩個零件工藝路線完全一致。這說明基于工藝知識圖譜和該相似度計算模型進行新零件工藝路線推薦是可行的,可以大幅度減少人工設計工藝路線的時間。
筆者構造樣本數據,對推薦模型進行500次測試,并以HR(hit rate,準確率)、MRR(mean reciprocal rank,平均倒數排名)、NGCG(normalized discounted cummulative gain,歸一化折損累計增益)三個指標對模型進行評價,得到的結果如表8所示。

表8 推薦模型效果測試結果
表8中,HR用于表示推薦的準確率,即推薦列表中是否存在目標零件的工藝路線。其計算公式如下:
(6)
式中:hit(i)為如果推薦結果中有目標零件的工藝路線i,hit(i)就為1,否則為0。
MRR用于表示目標零件的工藝路線在推薦列表的具體順序位置。其計算公式如下:
(7)
式中:rank(i)為目標零件的工藝路線在推薦結果中出現的位置,如果沒有出現,則rank(i)就為+∞。
NGCG用于評判推薦列表的排序結果是否優秀,即評判模型推薦得分與實際情況是否相符。其計算公式如下:
(8)
式中:rel(i)為列表中的結果與目標結果的相關性得分,由人為進行打分;IDCG為理想情況下最大的DCG值。
在500次的測試結果中,有94.7%的推薦列表中存在與目標零件相符的工藝路線;MRR為78.7%,說明與目標零件相符的工藝路線大多數出現在推薦列表前列;NGCG為81.1%,說明大多數情況下人為打分的排序結果與推薦模型計算的排序結果完全相符。
在測試中也會出現綜合相似度最高的零件工藝路線與目標零件實際工藝路線存在差異的情況,其最大的原因是在大多數情況下工藝員根據自身經驗進行工藝路線設計,而每個工藝員設計工藝的水平有差異,使得工藝設計標準化程度低,所以最相符的工藝路線不一定是推薦得分最高的工藝路線。
總體來說,基于知識圖譜的工藝路線推薦對工藝設計工作具有指導作用,可以有效提高工藝路線設計效率。
為驗證上述方案的可行性,筆者將知識圖譜與工藝推薦模型相結合,設計并實現了復雜薄壁零件加工工藝知識圖譜的可視化系統功能。
該系統整體框架采用前后端分離的B/S架構,用戶可輸入服務器IP地址進入該系統。其前端采用Vue.js框架構建頁面,運用HTML、CSS等技術對頁面進行渲染,并使用MySQL數據儲存用戶與系統的交互數據;后端采用基于Python的輕量級web框架Flask進行開發。
系統總體架構如圖8所示。

圖8 系統架構設計圖
圖8中,自左向右分別是表示層、業務層、數據層。
表示層是系統可視化界面,支持用戶與系統進行交互操作,當客戶輸入需求信息,客戶端向web服務器發送請求,通過Ajax調用RESTFUL API接口與后端數據庫進行交互,最終將系統運行結果展示給用戶。
業務層主要負責系統數據業務的邏輯處理,將表示層收到的用戶輸入信息進行判斷后傳遞給數據層,同時將數據層返回的信息傳遞給表示層。
數據層是為整個推薦系統提供數據支持,分為MySQL數據庫和Neo4j數據庫,存儲航天復雜結構零件所有的三元組數據和普通的關系型數據。
該系統主要提供以下功能:
1)知識檢索
該模塊可以查詢零件、特征、工序、工步所有實體信息與關系,采用Py2neo接口調用Neo4j的引擎,并將三元組返回給前端展示,幫助工藝員快速檢索到某零件的工藝規程;并且該模塊使用插件對三維模型和特征進行前端展示,工藝員可以根據三維特征和對應的工步對新零件進行工藝設計。
知識檢索界面如圖9所示。

圖9 知識檢索界面
在圖9中,點選左圖的三維模型特征,在右圖會更新特征節點信息,同時可以對右圖的節點信息進行查看和編輯。
2)工藝路線推薦
該模塊利用相似零件的工藝路線進行自動推薦。利用相似度模型取相似度大于閾值的零件及相應數據生成推薦列表。
某框段零件的工藝路線推薦如圖10所示。

圖10 工藝路線推薦界面
筆者針對如何高效組織、重用工藝知識的問題,提出了自頂向下和自底向上結合的復雜薄壁零件加工工藝知識圖譜構建方法,并利用相似度模型實現了工藝路線推薦目的。
研究結果表明:
1)利用Neo4j圖數據庫對模式層和數據層相互映射,可實現對圖譜的構建和工藝知識的可視化表示,減少了數據冗余并提高了知識檢索效率;
2)綜合零件屬性和特征拓撲關系的相似度計算,完成了基于知識圖譜的工藝路線推薦任務,推薦準確率達到了94.7%;
3)利用Web框架將知識圖譜和工藝路線推薦集成為可視化系統。實踐證明,筆者提出的航天復雜薄壁零件加工工藝知識圖譜構建方法,能夠有效提高知識的可重用性、工藝檢索和設計效率。
然而,筆者的工作仍存在一些局限性:1)復雜薄壁零件加工工藝知識圖譜數據源單一,在機械工藝領域覆蓋還不全面,后續將進一步完善知識抽取算法,擴大知識圖譜的覆蓋范圍;2)基于知識圖譜的工藝路線推薦并沒有完全表現出知識圖譜強大的推理能力。因此,針對如何利用知識圖譜進行具體工步及工藝參數等工藝知識的推理,將是筆者后續的研究和關注的重點。