梁 蕾,宋慶明,沈思遠,吳 敏
(上海飛機制造有限公司制造工程技術中心, 上海 201324)
自動或智能的工藝設計一直是計算機輔助工藝設計系統(CAPP)的目標。實現工藝設計的智能化,需要給工藝設計軟件賦能,使之具有設計問題理解、設計結果生成、設計知識學習等能力。上述能力的核心是工藝設計知識,涉及知識如何獲得、表達、更新以及在特定條件下觸發應用。而工藝知識的獲取即工藝知識庫構建一直是關鍵問題。現有工藝知識庫的構建方法為人工構建,包括本體及產生式規則等方法。
本體通常由概念集、關系集、屬性集、實例集和規則集構成,各工藝知識研究略有差異,但都包括概念集與關系集。文獻[1]建立涵蓋工藝參數、刀具、機床、零件、零件特征與材料等概念的本體,可解析基于特征類型、基本參數以及零件材料的屬性等。文獻[2]利用本體描述了裝配對象、屬性與工藝適用條件。文獻[3]面向零件裝配問題,設計并構建了幾何特征增強的本體模型,使用本體對3D 模型中關鍵的幾何特征進行了標注。文獻[4]利用本體標注工藝案例,采用了一種層次表示法對產品結構、裝配關系(精度)信息等進行表達。產生式的基本形式為“IF P THEN Q”。P 是產生式的前提,也稱為前件,給出了該產生式可否使用的先決條件,由事實的邏輯組合來構成。文獻[5]特別針對企業工藝信息是文本描述的特點,對工藝文本進行話語分析從而生成規則。該文給出的示例是用于機床設備的選擇。文獻[6]分別建立了零件特征族集與工序序列族集,采用產生式規則建立二者間的關系。文獻[7]定義了偏好關系,并建立了典型的工藝條件屬性,建立了屬性與工序序列間的邏輯關系,以典型的工藝條件屬性為規則前件,加工工藝鏈為規則后件。
無論是本體還是產生式規則,皆由人工構建,對構建人員的專業能力及信息技術能力要求極高,一方面能夠匯總、歸納與分析工藝現象與工藝方法,總結形成知識庫;另一方面需要掌握本體與產生式規則的表示方法與管理方法。再者,人工構建本體及產生式等知識庫是復雜的工程過程,在多人協助的情況下,難以保證規則無沖突、本體概念理解一致、規則與概念覆蓋充分等要求。特別是,面向飛機等復雜產品,構建工藝知識庫是極具挑戰性的難題。現今,深度學習等人工智能技術發展迅速,基于深度學習方法的語義分析技術已經在分詞、命名實體識別、機器翻譯等領域得到了廣泛的應用。本文基于深度學習方法的語義分析方法,提出了基于語義分析的工藝知識庫構建方法。該方法能夠自動地從歷史工藝數據中歸納出工藝知識,極大地降低了人工投入,能夠保證工藝知識庫的覆蓋度,并且知識與歷史應用情境關聯,實現在相同情境匹配下知識的推送重用。在某型號支線客機航電與電氣專業上構建了工藝知識庫并實現了工藝知識推送軟件。
本文所構建的工藝知識庫為工序名稱庫、工序語句庫及工藝過程庫。工序名稱是簡要表明本步工序的操作內容的詞語或短語。工序語句描述了本步工序的操作內容,包括:遵照規范、圖紙、操作對象、所需零件、參數、操作等。工藝過程是由工序名稱及語句構成,描述了一類零件工序過程。各知識庫示例如表1 所示。工序語句中的“【圖紙】”與“【位置】”等為變量槽,由工藝員依據設計任務填寫。變量槽能夠擴大語句的應用情境,能夠應用于相同操作方法的不同工況下,變量槽總共設計了12種。

表1 工藝知識庫中知識條目的示例
本文所提出的基于語義分析的工藝知識庫構建方法是一種自底向上的歸納式構建方法。該方法能夠保留各類知識條目的應用情境,從而通過情境匹配實現知識的重用。工藝知識庫構建過程分為語義化表達、聚類分析、工藝模板構建,輸入為歷史裝配大綱數據,輸出為各類工藝知識庫(見圖1)。

圖1 工藝知識庫的構建過程
其中,語義化表達通過自然語言處理技術實現工序語句的理解,形成可計算的語義向量。聚類分析,分為工序名稱的聚類分析及工序語句的聚類分析,在獲得語義向量的基礎上,利用層次聚類算法對語義向量進行聚類。聚類所形成的每個類簇則為語義最相近的工序名稱或是工序語句的集合,即表達同種工藝方法或是操作方法。工藝知識確認,由人工分析聚類結果,擬定每個類簇所代表的工藝方法或操作方法的標準表達方法,并將工序語句內參數替代為參數槽,形成最終的工藝知識庫。工藝過程庫是依據工序名稱與工序語句和情境的關聯關系,反向替換原裝配大綱中的語句和名稱獲得。本文將重點介紹語義分析方法。
工序名稱及工序語句是由自然語言描述的非結構化數據,是不可計算的。自然語言處理計算是實現語言可計算并使得計算理解自然語言的技術。目前,最常用的自然語言處理技術是基于深度神經網絡的方法,被廣泛地應用于中文分詞、命名實體識別、機器翻譯等。本文提出基于深度神經網絡的工藝語言分析方法,具體為基于雙向長短時記憶網絡(Bi-directional Long-Short Term Memory Network,BiLSTM)的自編碼器(autoencoder)。該方法以工序名稱或工序語句為輸入,以實數向量為輸出。該實數向量便為工序名稱或工序語句的語義編碼,用于后續的聚類分析。
基于雙向長短時記憶網絡的自編碼器模型結構如圖2 所示,由編碼器與解碼器兩部分構成。編碼器輸出語義表示向量,語義表示向量再輸入到解碼器中。若解碼器的輸出能夠還原編碼器的輸入,則表明語義表示向量完全包含了輸入語句的信息。具體地,編碼器首先將每個字采用隨機實數向量表示,作為編碼器輸入,然后將該向量輸入到LSTM 網絡中。LSTM 的具體結構可參見文獻[15],此處不再詳述。采用兩層LSTM 結構,即從句首至句尾和從句尾到句首的兩層,從而建模整句的語義信息。之后,為由Sigmoid 函數構成的輸出層。最后將輸出層向量拼接為語義向量。解碼器的過程與編碼器相反,以語義向量為輸入,但模型結構完全相同,不再贅述。模型參數的訓練采用輸入與輸出的差為損失,采用反向傳播算法獲得。

圖2 雙向長短時記憶網絡的自編碼器模型
本文采用某型號支線客機的電氣與航電專業535 份裝配大綱為基礎數據,驗證了本文所提出方法。在基礎數據中包含558 種工序名稱和1153 種工序語句,這顯然是不合理的,存在了大量的不同名稱相同工藝方法與不同語句相同操作的歧義現象,是由工藝人員間個體論述方式的差異造成的。
雙向長短時記憶網絡的自編碼器模型字的隨機向量設置維度為100 維,LSTM 網絡窗口設置為5,輸出維度設置為50 維度,Sigmoid 層輸出也為50 維度,語義向量的維度為5(窗口)×50(輸入維度)=250維。
通過語義分析、聚類分析及工藝知識確定的過程,形成了工序名稱庫含工序名稱152 項,工序內容語句庫152 項,基礎數據的覆蓋度為97.1%;形成工藝過程庫含工藝過程247項。

表2 工序語句庫示例
由于本文所構建的工藝知識庫的知識關聯了歷史工藝數據,能夠表達工藝知識的應用情境,因此能夠實現在工藝設計任務的情況下,推送與知識應用情境相同的工藝知識。因此,研發了基于工藝知識庫的工藝知識推送軟件,應用效果如圖3所示。

圖3 工藝知識推送軟件示例

表3 工序內容庫示例

表4 工藝過程庫示例

續表4
本文提出了基于語義分析的工藝知識庫構建方法。該方法基于語義分析技術能降低人工構建知識庫的成本與周期,并且所構建的知識庫攜帶應用情境信息,能夠實現基于情境匹配的工藝知識推送,從而實現知識的重用,提升工藝設計效率和質量。具體構建過程為:通過雙向長短時記憶網絡的自編碼器模型的方法實現工序內容的理解,形成可計算的語義向量;再通過層次聚類算法,形成語義最相近的工序名稱或是工序語句的集合;最后,由人工分析聚類結果,擬定每個類簇所代表的工藝方法或操作方法的標準表達方法,反向替換原裝配大綱中的語句和名稱獲得。在某型號支線客機的航電與電氣專業的數據及工藝設計任務上進行了驗證與實例分析,證明了本文所提出的方法。