岳溪朝馮燕劉健于燁泳席慷杰錢權
(1.上海大學計算機工程與科學學院,上海200444;2.國家超級計算無錫中心,江蘇無錫214072;3.上海大學材料基因組工程研究院材料信息與數據科學中心,上海200444;4.之江實驗室,浙江杭州311100)
材料基因組工程融合了高通量計算、高通量實驗和材料數據庫,旨在實現材料研發的“時間減半和成本減半”,而基于材料數據庫的數據驅動新材料研發被認為是材料研發的第四范式[1].然而,材料數據種類多(實驗、計算、生產、文獻數據等)、表現形式多樣(文本格式、圖像格式、視頻格式等),因此如何規范化存儲材料數據是相關研究的首要問題.在材料數據標準化方面,國際化標準組織最早曾發布了產品模型數據交互規范(standard for the exchange of product model data,STEP)[2],通過編寫材料數據手冊的方式實現存儲、查詢數據.在關系數據庫出現后,材料科學研究人員更傾向于將材料數據存儲在關系數據庫中.隨著數據庫技術的發展,材料領域出現了一大批材料數據庫[3],一些較為知名的材料數據庫如表1所示.此外,研究人員使用本體、知識圖譜等技術來增強材料數據語義性,進一步擴展了材料數據庫的使用范圍,其中MatOWL[4]較為著名.

表1 一些知名材料數據庫Table 1 Some well-known materials databases
計算材料學從微觀、介觀到宏觀等不同尺度進行材料微結構模擬及性能計算,但通常計算量大、應用范圍受限.近年來,隨著機器學習和人工智能的迅速發展,越來越多的傳統學科開始使用機器學習方法進行研究.在材料學領域,使用機器學習方法,從數據出發,運用數據內部蘊含的統計規律建立模型,可以為材料學研究提供有價值的指導.然而,材料數據非常寶貴,尤其是敏感的工藝參數,因此需要研究如何在保護數據隱私的情況下進行機器學習.
此外,由于材料領域知識貫穿于數據驅動的新材料研發的各個環節,采用知識圖譜的知識庫進行異構材料數據的集成與導航,以實現數據與知識雙驅動的材料研究,將進一步提高新材料的研發效率.因此,材料基因工程專用數據庫平臺將有助于提高材料數據質量,簡化機器學習模型的部署和使用,并通過機器學習方法及材料知識圖譜,使機器學習在材料科學研究領域得到更好的應用.
材料基因專用數據庫體系結構如圖1所示,包括數據層、融合層、管理層、學習層和知識層這5個層次,反映了材料基因工程從材料數據→材料信息→材料知識這一基本認識規律.圖1中,LIMS(laboratory information management system)代表實驗室信息管理系統,ETL(extract transform load)代表數據抽取、轉換和加載,XML(extensible markup language,XML)代表可擴展標記語言,XSD(XML schema definition)代表XML模式定義,SPARK是一款分布式計算框架,REST(representational state transfer)代表表述性狀態轉移.

圖1 材料基因組工程專用數據庫層級架構Fig.1 Hierarchical architecture of database for material genome engineering
數據層:對于材料實驗、計算、生產和海量文獻等多源數據,在標準統一的協議下進行數據的采集、規范化與網絡傳輸.
融合層:在數據采集的基礎上,結合材料數據語義進行多源、異構材料數據的集成與融合.
管理層:采用關系型和無模式NoSQL混合存儲、分布式內存計算等大數據處理技術,實現專用數據庫的數據存儲與開放共享,并在超算平臺上實現系統部署和運行.
學習層:采用特征篩選、機器學習等方法實現數據驅動,以及基于知識圖譜采用知識推理技術,發現知識驅動的材料“組分-工藝-結構-性能”間的內稟關系,優化材料設計、加工工藝與提升材料性能.
知識層:通過數據與知識之間的傳遞與反饋,實現對機器學習結果的語義表達與知識管理,并通過構建知識圖譜實現數據與知識的可視化展示.
最后,結合高性能鋁基復合材料、熱障陶瓷涂層、非調質特殊鋼3類材料進行示范應用和推廣.
接下來,將就專用數據庫平臺中幾個關鍵部分,如材料數據的規范化、面向材料數據的機器學習以及模型跨域部署、保護材料數據隱私下的機器學習等方面進行重點介紹.
材料數據具有來源眾多、類型繁雜、列多變、高維稀疏、關系復雜等特點,材料數據若要滿足可發現(findability)、可訪問(accessibility)、可互操作(interoperability)、可重用(reusability)原則[6],規范化處理是前提和基礎.本工作提出的材料數據規范設計方案以層次化設計思想為基礎,將復雜數據規范分成多個不同層級,從最簡單的結構開始,首先為每一層級制定子規范,然后逐步組合子規范,最后得到完整數據規范.
就具體實現技術而言,將材料數據以XML[7]格式進行存儲.針對復雜的材料實驗或者計算數據,首先使用巴科斯范式(Backus-Naur form,BNF)這一上下文無關文法的形式化標記方法,來設計層次化的數據規范方案.在此基礎上,使用XSD[8]實現巴科斯范式,具體過程如圖2所示.包含XSD格式的數據規范可保證數據結構的完整性及數據類型的準確性.此外,借助可擴展樣式語言(extensible stylesheet language,XSL)[9]實現數據的定制化展示和定制化下載,便于數據的頁面展示和導出,實現與機器學習模塊的無縫銜接.基于XSD/XSL的材料數據規范化具有規范性、語義性,便于數據擴展和數據共享,可為簡單數據、表格型數據和非結構化數據等多種多源異構數據提供規范化表示.

圖2 材料數據規范化處理流程Fig.2 Processing flowchart of materials data standardization
材料數據由于其本身的特異性,使得機器學習的挑戰主要體現在以下方面:小樣本(樣品少或樣品的實驗結果分散性大,遵循某種分布的樣本少)、數據的維度高(相比于樣本量,樣本的維度高,數據呈現高稀疏性)、數據含噪聲(制備或者表征中引入的誤差)、多模態融合(如材料微結構的圖像表示,以及工藝數據的自然語言刻畫)等.目前圍繞材料數據已經開展了很多相關的機器學習研究[10].
更為重要的是,利用寶貴的材料數據建立的機器學習模型如何在不同組織間跨域部署以及快速應用是一個難點.不同組織內由于面對的材料體系不同,因此需要對快速部署的機器學習模型進行遷移,為新的目標領域提供模型支撐.機器學習模型的跨域部署過程如圖3所示,首先通過導出工具將訓練好的機器學習模型導出為統一的中間表示,然后部署到可以解析并執行該中間表示的運行環境,即可完成模型遷移和部署.圖3中,PMML(predictive model markup language)代表預言模型標記語言,ONNX(open neural network exchange)代表開放神經網絡交換,BIN(binary)代表二進制文件.

圖3 機器學習模型跨域部署流程Fig.3 Flowchart of cross-domain deployment of machine learning model
1.2.1 機器學習模型調度與運行
為了兼容ONNX[11]、PMML[12]等多種機器學習模型導出格式,數據庫平臺根據所上傳模型的格式創建不同的機器學習模型運行環境,并將輸入數據轉換為運行環境所需格式,最終將不同環境得到的計算結果進行輸出.如圖4所示,為避免過多的機器學習任務并發執行而產生線程的頻繁創建、銷毀及切換,防止內存不足導致運行錯誤,數據庫平臺采用任務隊列及線程池技術,確保正在執行的機器學習任務數與當前硬件環境相匹配.機器學習模型僅在使用時被加載進內存,執行結束后,自動地對模型進行垃圾回收,直到下次使用時才會重新加載.

圖4 機器學習任務在數據庫平臺上的調度流程Fig.4 Scheduling process of machine learning tasks on the database platform
1.2.2 機器學習模型版權保護
經數據訓練后的機器學習模型是寶貴的資產,數據庫平臺采用區塊鏈技術對機器學習模型版權進行保護[13].區塊鏈通過分布式記錄來確保版權的所有人信息不會被輕易篡改,從而達到版權保護的目的.考慮到版權保護主要涉及版權所有人以及版權交易信息,因此區塊鏈中會以版權所有人的變更信息來記錄交易情況,用戶可以追溯任何一條版權交易的記錄,用來維護自身權益.同時,數據庫平臺設計了一種組合競拍算法,提供適合多個版權的組合拍賣服務.該算法可以通過不同用戶的出價,自動計算出最優于賣家的出價組合進行拍賣.
機器學習模型跨域部署模塊的主要運行界面如圖5所示,圖中SVR(support vector regression)代表支持向量回歸.用戶可上傳、搜索、使用、評估機器學習模型,模型擁有者可以自行選擇是否通過區塊鏈對已上傳的模型進行版權保護.對于已上傳區塊鏈的模型,系統會為其生成一個ID,用于交易、拍賣或者驗證版權所有人信息等.

圖5 機器學習模型跨域部署運行界面Fig.5 Running interface of machine learning model cross-domain deployment
材料數據在很多情況下是“小數據”,很難訓練出泛化能力出眾的模型.解決小樣本問題可以通過數據增強來擴充數據集,但是增強的數據會與實際數據存在差異.除此之外,由于材料數據需要花費大量的人力和物力,使得很多研究機構不愿共享數據.而聯邦學習[14]可以解決該問題,即在不泄露參與方數據的情況下,又能讓多個參與方一起協同訓練出一個共享模型.
根據數據的分布特征不同,聯邦學習分為橫向聯邦學習、縱向聯邦學習和聯邦遷移學習(見圖6).以用戶2為例,橫向聯邦學習適用于數據集中共享相同的特征空間,但樣本不同的場景;縱向聯邦學習適用于數據集共享相同的樣本ID空間,但特征空間不同的場景;聯邦遷移學習適用于數據集不僅樣本不同,而且特征空間也不同的場景.

圖6 不同聯邦學習下的數據分布Fig.6 Data distribution under different federated learning
在聯邦學習中,主要包括3種隱私保護策略:差分隱私、同態加密和安全多方計算.差分隱私可對聯邦學習訓練過程中的數據進行擾動;同態加密可對聯邦學習訓練過程中的數據進行加密,使學習過程基于密文進行;安全多方計算可對聯邦學習的整個訓練過程進行保護.
(1)差分隱私是Dwork等[15]在2006年首次提出的一種隱私定義.差分隱私可以使函數的輸出結果對數據集中的任何特定記錄都不敏感,因此能被用于抵抗成員推理攻擊.(ε,δ)-差分隱私的定義如下.
定義1對于只有一個記錄不同的兩個數據集D和D′,隨機化機制M可保護(ε,δ)-差分隱私,并且對于所有的S?Range(M),有

式中:ε表示隱私預算;δ表示失敗概率.
在機器學習中,差分隱私添加噪聲的機制主要包括拉普拉斯機制、指數機制和高斯機制.差分隱私根據噪聲擾動的使用方式和位置,可以對輸入、目標函數、算法以及輸出添加擾動.
(2)同態加密由Rivest等[16]在1978年提出,是一種不需要對密文進行解密的密文計算方式.目前的同態加密方法主要分為3類:部分同態加密、些許同態加密和全同態加密.同態加密方法由一個四元組組成,

式中:KeyGen表示密鑰生成函數,可以根據密鑰生成元g生成密鑰對{pk,sk}=KeyGen(g);Enc表示加密函數;Dec表示解密函數.
在機器學習中,同態加密通常用于避免梯度下降過程中的數據泄露,對梯度或權重進行加密,然后將加密后的梯度或權重發送給各參與方進行解密和模型更新.
(3)安全多方計算[17]要求每個參與方{P1,P2,···,PN}在保護個人隱私的前提下共同計算一個函數f,這一過程中既要保證輸出結果的正確性,也要保證輸入、輸出信息的隱私性.具體定義為

每個參與者Pi在保護自身xi隱私的同時得到正確的Yi.
安全多方計算通常使用3種不同框架來實現,包括不經意傳輸、秘密共享和閾值同態加密,其中秘密共享是安全多方計算的核心.在機器學習中,安全多方計算的關鍵點是在沒有可信第三方的條件下,參與訓練各方安全地計算一個共同的約束函數.以秘密分享技術以及多層感知機對日本國立材料科學研究所(National Institute for Materials Science,NIMS)鋼數據集[18]中材料硬度的預測為例,在數據集上模擬的秘密共享客戶端斷線的情況下,材料硬度的預測值和測量值的對比如圖7所示.從實驗結果可以看出,基于安全多方計算的隱私保護策略可以在保護數據隱私的情況下,使模型預測精度維持在較高的水平.

圖7 NIMS鋼數據集不同比例客戶端掉線情況下預測準確率對比Fig.7 Comparisons of prediction accuracy on NIMS steel dataset with different proportions of client dropout
材料領域知識貫穿于數據驅動新材料研發的各個環節,傳統的知識表示有基于規則、基于框架等方法[19-20],目前較常用的是基于知識圖譜的方法.基于知識圖譜的知識庫一方面可以實現異構材料數據的集成與導航,另一方面可以基于知識圖譜中的領域知識豐富機器學習模型,實現數據與知識雙驅動的材料領域研究[21].
針對多源異構的材料數據,可以利用網絡本體語言(web ontology language,OWL)[22]進行集成.本體包含了對某一領域中概念和性質的描述,通過概念之間的關系來實現對數據實體的限定和規范,進而將對數據的操作轉換成對概念的操作,從而擴大了對多源異構數據的兼容性.因此,通過構建OWL可以將概念與概念、概念與數據以及數據與數據之間連接起來,并通過圖數據庫(如Neo4j)進行存儲,從而有效解決多源異構數據的集成問題.
OWL主要由個體(individuals)、屬性(properties)和類(classes)組成,其中individuals表示每條具體數據,properties表示數據之間的關系,而classes表示數據所屬的概念層.知識圖譜的構建流程(以Neo4j圖數據庫作為存儲媒介)如圖8所示,圖中CSV(comma-separated values)代表字符分割值,API(application programming interface)代表應用程序編程接口.首先,對來源于數據庫平臺的不同數據模型進行解析,提取其中的概念和數據,并根據OWL規則將概念層和數據層分別轉換成individuals、properties和classes,完成OWL文件;然后,利用OWL API對得到的OWL文件進行解析和本體創建.

圖8 OWL構建流程圖Fig.8 Flowchart of OWL construction
在Neo4j中,一個本體為一張圖,本體的起始節點是owl:things,所有的classes節點都由此進行擴展.以錫焊料性能數據中的基本信息表為例(見圖9),概念層僅包含從異構數據模型中抽取的表名及字段名構成的classes概念類節點,類與類之間主要通過父子關系進行連接.而數據層由概念層不同類組成的實體數據及實體數據之間的關系組成,因此通過對異構數據模型進行本體構建,從概念層上為數據提供了一個統一的操作接口,從而實現跨域數據的集成、查詢、導航等功能.對于已通過模板校驗并上傳至數據庫中的數據,知識圖譜模塊使用從數據歸檔模塊導出的數據,利用OWL進行集成,最終形成知識圖譜.

圖9 錫焊料知識圖譜構建示例Fig.9 An example of Tin solder knowledge graph construction
除此之外,知識圖譜的不斷發展為數據與知識的雙驅動材料研究模型提供了技術支持.知識圖譜不僅能對機器學習中的挖掘結果進行知識表達,還能結合材料領域的知識模型和機器學習中的數據模型進行混合推理,從而提高模型的準確性、可靠性和可解釋性[23-24].
整個數據庫平臺從功能角度可分為4大部分(見圖10),分別是數據存儲模塊、數據歸檔模塊、機器學習模型跨域部署模塊、知識圖譜模塊.各模塊之間通過RestAPI進行通訊,不同模塊可分別部署在不同的物理機上.

圖10 材料基因工程數據庫平臺系統結構Fig.10 System architecture of materials genome engineering database platform
(1)數據混合存儲系統.材料數據存在多源異構等特性,本數據庫平臺采用關系型和非關系型相結合的混合存儲模式,通過數據庫適配器將不同類型的數據存入對應的數據庫中.具體而言,使用PostgreSQL數據庫存儲用戶、權限管理、元數據等關系型數據;使用MongoDB數據庫存儲圖片、視頻等非結構化數據;使用Redis數據庫存儲會話及用戶狀態等數據;使用Neo4j存儲由知識圖譜模塊處理得到的圖結構數據.所有數據庫中的數據經數據聚合器處理后存入ElasticSearch,以提供高效的全文檢索.
(2)數據歸檔模塊.材料數據來源于多種錄入方式,數據歸檔模塊中的數據導入器可支持手工導入、批量上傳、自動采集等多種錄入方式.為避免錄入方式多樣帶來的數據格式不規范問題,所有錄入的數據需經過模板進行校驗,校驗通過則存入數據庫中,否則返回報錯信息.模板通過XSD文件進行定義,但手工編輯XSD文件具有較高門檻且容易出錯.為方便用戶創建模板,數據管理模塊提供了模板設計器,以可視化的方式創建模板.數據導出器可根據用戶自定義的XSL文件將已存入數據庫的XML文件轉換為HTML進行展示,或轉換為CSV文件用于機器學習和知識圖譜的構建.
(3)機器學習跨域部署模塊提供機器學習模型的上傳、評估、使用等功能.模型運行環境負責優化并運行已上傳至數據庫平臺的模型;模型管理器負責模型格式正確性校驗以及對模型運行環境的控制.用戶上傳模型至數據庫平臺后,無需配置相關運行環境即可使用該模型,且用戶可直接使用從數據歸檔模塊中導出的數據來評估該模型在特定數據集上的性能,或對特定數據集進行建模和預測以輔助材料領域研究.
(4)知識圖譜模塊通過數據歸檔模塊獲取數據,并轉換為OWL后存儲至數據混合存儲系統中,提供實體關系查詢以及知識圖譜可視化展示功能.
材料基因專用數據庫已在無錫超算中心集群中部署,由9臺服務器經虛擬化后組成云服務器構成硬件環境,其中5臺服務器擁有4核心8 GB內存,3臺服務器擁有16核心32 GB內存,1臺服務器擁有48核心128 GB內存.所有虛擬機裝有CentOS7操作系統,并位于同一網段中.外網訪問集群需要通過虛擬專用網(virtual private network,VPN).連接VPN后,客戶機可通過加密信道與服務器進行通訊.另外,數據庫平臺部署過程中,1臺4核心8 GB內存的虛擬機用于部署Nginx作為負載均衡器及靜態文件服務器,另外4臺4核心8 GB內存虛擬機用于部署PostgreSQL、MongoDB、Redis、Neo4j,其余4臺大內存虛擬機用于部署ElasticSearch、數據管理模塊、機器學習跨域部署模塊、知識圖譜模塊.
圖11顯示使用機器學習進行材料正向預測及逆向設計的全流程.首先,對多源、異構的材料數據進行規范化,并存入數據庫中;然后,使用數據庫查詢并導出結構化數據;接著,進行數據預處理,實施特征工程并訓練機器學習模型,完成正向材料性能預測;最后,若進行逆向設計,即給定性能要求時,逆向給出工藝及成分設計參數,則需對機器學習模型進行選擇并評估后,使用單目標或多目標算法進行逆向求解.

圖11 材料正向預測與材料逆向設計流程Fig.11 Process of materials forward prediction and reverse design
下面以Mn-Zn-Sn體系反鈣鈦礦化合物負膨脹材料為例,說明材料基因數據庫平臺在材料逆向設計中的應用.該化合物的化學組成可表示為Mn3(MnxZnySnz)N,且要求x+y+z=1.逆向設計的目標是通過設計成分配比,使得發生負膨脹時的起始溫度(T1)、結束溫度(T2)以及負膨脹系數(α)符合應用需求.
(1)構建數據庫.根據負膨脹材料數據的結構構建數據模板進行數據規范化描述.本數據庫平臺提供可視化的模板設計工具(見圖12).模板設計器提供字符串、數字、帶單位數值、日期、文件作為基本類型,以及列表、容器、選擇、表格作為復合類型.同時,模板設計器還提供了歷史模板復用功能.在負膨脹材料數據模板中,材料成分被設計為一個由元素名稱及浮點數組成的表格,同時將起始溫度、結束溫度、負膨脹系數設計為浮點數.

圖12 可視化材料數據模板設計器Fig.12 Visual template designer for materials data
(2)數據的可視化展示.用模板設計器完成模板創建后,數據管理模塊會生成數據錄入表單,通過表單錄入數據項后,模板校驗其合法性,只有通過校驗的數據才會以XML的形式存入數據庫中,以確保入庫數據的規范化.針對材料數據顯示的多樣性和個性化,專用數據庫平臺將數據存儲和數據展示分離,通過設計不同的XSL樣式文件,實現數據的個性化展示和下載.如圖13所示,存入數據庫中的XML數據可根據自定義的XSL樣式文件通過數據導出器轉換為HTML格式,在瀏覽器中進行顯示;或通過XSL文件轉換得到CSV結構化文件,用于機器學習或知識圖譜構建.

圖13 負膨脹材料數據可定制化展示Fig.13 Customized data display of negative expansion materials
(3)機器學習模型構建和逆向設計.為了實現機器學習過程自動化與智能化,本數據庫平臺采用工作流的方式將機器學習建模、模型調參、模型選擇和逆向設計集成起來,系統運行界面如圖14所示.目前本數據庫平臺已集成數據預處理、建模、優化等8大類30余種算法.

圖14 負膨脹材料逆向設計工作流Fig.14 Reverse design workflow for negative expansion materials
(4)實驗驗證.從文獻和實驗中收集負膨脹數據131條,利用機器學習建模和多目標優化算法——非支配排序遺傳算法-Ⅱ(non-dominated sorting genetic algorithms-Ⅱ,NSGA-Ⅱ)進行逆向設計,并結合實際應用需求篩選出2組可供實驗的樣本點.依照預測的材料組分,采用真空燒結與放電等離子燒結相結合的方法,制備出2種反鈣鈦礦錳氮化物,并測試負膨脹性能,測試結果如圖15所示.模型預測結果與實驗結果對比如表2所示,可以看出總體誤差較小,平均預測精度88.25%,體現了數據驅動方法對于新材料研發的加速作用.

表2 負膨脹材料實驗結果與模型預測結果對比Table 2 Comparison between experimental results and model prediction results of negative expansion materials

圖15 Mn3.3Zn0.5Sn0.2N和Mn3.3Zn0.6Sn0.1N的負膨脹材料性能Fig.15 Negative expansion materials performance of Mn3.3Zn0.5Sn0.2N and Mn3.3Zn0.6Sn0.1N
材料基因專用數據庫平臺為材料數據的規范化存儲、個性化展示和使用提供了一個集成框架,不但考慮了數據和模型的版權及隱私保護問題,還提供了機器學習模型跨域部署以及基于知識圖譜的數據集成與導航功能.使用本系統對材料數據進行管理將大大提高數據的質量及可用性,在很大程度上解決了當下材料數據由于不規范而帶來的數據預處理繁瑣甚至數據不可用的問題.機器學習的跨域部署降低了運行機器學習任務的難度,允許在不泄露原始材料數據的同時共享機器學習模型.而知識圖譜將為數據與知識的雙驅動材料研究模型提供技術支持.
未來進一步的研究方向如下:①數據采集方面,如何更加便捷地轉換不同來源的材料數據,尤其是文獻數據,這對于豐富數據來源、擴大數據規模非常重要;②數據模板方面,如何平衡模板的靈活性與簡潔性之間的矛盾,尤其是數據要方便導出進行機器學習十分關鍵;③機器學習模型方面,如何面向材料數據自身特性,研發適合材料數據的機器學習算法,尤其是研發隱私保護下的機器學習算法尤為迫切;④逆向設計方面,如何將材料學領域知識更好地與機器學習模型相結合,達到自動化與智能化的要求.