孫濤 袁健美2)?
1) (湘潭大學數學與計算科學學院,湘潭 411105)
2) (湘潭大學,智能計算與信息處理教育部重點實驗室,湘潭 411105)
針對快速獲取鈣鈦礦材料帶隙值的問題,建立特征融合神經網絡模型(CGCrabNet),利用遷移學習策略對鈣鈦礦材料的帶隙進行預測.CGCrabNet 從材料的化學方程式和晶體結構兩方面提取特征,并擬合特征和帶隙之間的映射,是一個端到端的神經網絡模型.在開放量子材料數據庫中數據(OQMD 數據集)預訓練的基礎上,通過僅175 條鈣鈦礦材料數據對CGCrabNet 參數進行微調,以提高模型的穩健性.數值實驗結果表明,CGCrabNet 在OQMD 數據集上對帶隙的預測誤差比基于注意力的成分限制網絡(CrabNet)降低0.014 eV;本文建立的模型對鈣鈦礦材料預測的平均絕對誤差為0.374 eV,分別比隨機森林回歸、支持向量機回歸和梯度提升回歸的預測誤差降低了0.304 eV、0.441 eV 和0.194 eV;另外,模型預測的SrHfO3 和RbPaO3 等鈣鈦礦材料的帶隙與第一性原理計算的帶隙相差小于0.05 eV,這說明CGCrabNet 可以快速準確地預測鈣鈦礦材料的性質,加速新材料的研發過程.
近年來,隨著密度泛函理論的不斷完善和計算機計算能力的逐漸提升,第一性原理高通量計算在預測新材料和優化材料性質等方面取得較大的發展[1].然而,基于第一性原理計算在快速計算時的準確性是有限的,在需要獲取高精度的計算結果的時候,利用該方法所需要的計算量是很大的,巨大的計算量成為了高通量計算的瓶頸.對此,尋找一種更快、消耗計算量更少的方式來預測新材料的屬性,則可加快新材料的研發過程.近年來,隨著機器學習技術的發展,可以有效地對數據和目標標簽之間復雜的非線性關系進行建模,已經被廣泛應用到材料信息學中[2].
2018 年,Xie 和Grossman[3]提出了一種晶體圖卷積神經網絡(crystal graph convolutional neural networks,CGCNN),預測了帶隙等多種晶體材料的性質,并且預測的平均絕對誤差要低于或接近基于密度泛函理論(Density functional theory,DFT)的方法.2019 年,Chen等[4]提出了一種通用的材料圖網絡(MatErials graph network,MEG Net) 來預測分子和晶體的性質.在QM9 分子數據集上對13 個分子屬性進行測試,提高了對大部分分子屬性的預測精度.2020 年,Karamad等[5]提出一種軌道圖卷積神經網絡(orbital graph convolutional neural network,OGCNN),在CGCNN 模型的基礎上加入了原子軌道相互作用特征,在多個晶體材料數據庫上驗證模型的性能,證明了模型具有高精度的晶體性質預測能力.
對于缺乏材料結構信息的數據集,研究人員嘗試不利用材料的結構信息,通過其他的材料信息如元素組成等對材料性質進行預測.2018 年,Jha等[6]提出一種僅通過元素組成來預測材料化學性質的深度學習模型ElemNet.在OQMD 數據庫構成的數據集上對每個材料化合物的最低形成焓進行預測,能夠以較快的速度和較高的精度預測材料性質.2020 年,Goodall 和Lee[7]提出一種從化學計量比中深度表征學習方法Roost,它將化學計量式視為元素之間的密集加權圖,利用消息傳遞操作在組成材料的各元素之間傳遞信息,從而更新元素的組成.通過在OQMD 數據庫和MP 數據庫構成的數據集上進行實驗測試,發現Roost 可以有效地對缺少晶體材料結構的數據進行性質預測任務.2021 年,Wang等[8]提出一種基于注意力的成分限制網絡(compositionally restricted attention-based network,CrabNet),在28 個基準數據集上進行測試,大多數的預測精度都與其他方法接近或更高.
鈣鈦礦材料的化學通式為ABX3,是一類結構相似的化合物的總稱.鈣鈦礦材料具有合適的且可調的帶隙寬度等優良的性質,是太陽能電池、光催化材料和熱電器件等領域的候選材料[9].帶隙是一個重要的物理性質,它一開始就劃定了該材料的應用范圍.Guo 和Lin[10]利用機器學習模型,預測了無鉛雙鈣鈦礦鹵化物的帶隙性質.Gao等[11]利用梯度提升回歸算法從5796 種無機雙鈣鈦礦材料中篩選帶隙合適的材料,得到K2NaInI6和Na2MgMnI6兩種候選材料,并且DFT 計算證實了熱穩定性和良好的光學性能.對鈣鈦礦材料的帶隙快速預測可以減小候選材料的搜索空間,加快新材料的研發過程.
本文構建了一個深度學習模型CGCrabNet用于研究鈣鈦礦材料的帶隙性質.該模型通過輸入化學式和結構信息,使材料的帶隙值作為模型輸出,通過反向傳播算法更新模型參數.首先在OQMD數據集中預訓練了CGCrabNet 模型,并且與其他深度學習帶隙預測模型進行比較.其次將預訓練的CGCrabNet 模型在鈣鈦礦材料數據集上進行微調.最后,將本文建立的深度學習模型用于對鈣鈦礦材料的帶隙進行預測,并與隨機森林回歸、支持向量回歸和梯度提升回歸的預測結果進行對比分析.
本文建立了一種基于化學式和晶體結構作為原始輸入的特征融合神經網絡模型,簡稱為CG CrabNet 模型.模型的數學表達式為
其中z為帶隙值,f表示神經網絡模型,x1∈表示元素信息矩陣,x2∈表示原子占比矩陣,Nf表示化學式中元素種類數,y1∈Rp×I表示節點特征,每個節點的特征由One-Hot 編碼表示,y2表示相鄰節點信息,p表示晶體圖中節點總數,I表示節點特征維度,θ表示模型參數.
CGCrabNet 模型對化學式信息的特征提取模塊參考CrabNet 模型[8]構建.模型輸入的化學式用于構造元素信息矩陣x1和原子占比矩陣x2,其中元素信息矩陣是由組成化學式的所有元素的原子序數構成的,原子占比矩陣是由化學式中每個元素對應原子數占晶體總原子數的比例分數構成的.例如SiO2的元素信息矩陣為 [8 14]T,原子占比矩陣為 [0.67 0.33]T.
對于元素信息矩陣,使用元素嵌入將原子序數表示成固定維度的向量,向量維度取決于通過測試確定的元素嵌入方法.對于原子占比矩陣,通過分數編碼將其表示為一個dm維的向量.分數編碼靈感來源于Vaswani等[12]提出的位置編碼器,是將一個0 到1 之間的分數表示成一個固定維度向量的過程.元素特征構造中的全連接層的作用是進行維度變換,使其可以和分數編碼后的向量相加,得到化學式中每個元素的元素特征向量.然后將元素特征向量經過N個多頭注意力機制,多頭注意力機制的頭數用n表示,這樣可以使化學式的每個元素特征向量都包含化學式中其他元素信息.最后在多頭注意力機制后連接一個全連接殘差網絡,用來得到化學式中所有元素的元素原貢獻向量p、元素不確定性向量u和元素對數向量l,通過(2)式和(3)式來計算z1和偶然不確定性S:
對于輸入的晶體結構,將其轉化成晶體圖數據,包括節點特征y1和相鄰節點信息y2.首先由節點嵌入層將每個節點i的One-Hot 特征變成一個連續、密集的分布式特征向量vi.然后考慮相鄰節點信息y2,利用圖卷積層通過非線性圖卷積函數迭代更新原子特征向量vi,更新公式為
接下來,圖池化層用于生成晶體的整體特征向量vc,如下所示:
其中κ(x)=ln(1+ex),M表示晶體圖中節點個數.最后將其輸入到由全連接層組成的全連接網絡中,就可以得到z2.
CGCrabNet 模型架構如下圖1 所示.CGCrab Net 模型將基于成分網絡得到的z1和基于結構網絡得到的z2加權求和,如(6)式所示,即為目標晶體性質:

圖1 CGCrabNet 模型算法Fig.1.CGCrabNet model algorithm.
其中w1+w2=1.
在CGCrabNet 模型訓練過程中,需要一個合適的損失函數來衡量模型輸出值和真實值之間的差異.在建立損失函數的過程中,這里主要考慮偶然不確定性,并且假設偶然不確定性是異方差的,即不確定性取決于模型的輸入,不同的輸入對應的噪聲輸出是不同的[13].假設材料數據不確定性的概率分布為拉普拉斯分布,拉普拉斯分布如下:
其中Xi為模型第i個輸入材料數據,θ為CGCrab Net 模型參數,ρ(Xi) 為Xi的偶然不確定性,z(Xi)為材料帶隙性質的計算值,從數據庫中直接獲得.對(7)式取對數如下:
因為希望似然估計越大越好,也就是負對數似然值越小越好,所以用等式(8)右邊構造一個損失函數:
式中,Xi的偶然不確定性ρ(Xi) 可以看成關于Xi的一個未知函數,也可以通過模型學習得到,所以模型同時預測材料的性質和方差ρ(Xi).可以看到,在模型學習偶然不確定性時,是不需要真實樣本值的.因為如果一個樣本i很難預測,為了最小化損失函數,ρ(Xi) 會適當變大,而損失函數中的ln(2ρ(Xi))防止了網絡預測樣本數據不確定性為無窮大的情況.
在實際訓練中,我們訓練網絡來預測對數方差Si=ln(2σ(xi)),從而損失函數為
這樣做是因為在數值上對數方差比方差更穩定,而且可以避免學習到方差為0 從而導致無法計算損失函數的情況.另外,通過學習對數方差Si,使得方差ρ(Xi) 被解析到正值,給出有效的方差值.
本文使用Lamb 優化器[14]更新模型權重,在進行大批量數據訓練時,可以保持梯度更新的精度.在訓練過程中,學習率是一個很關鍵的超參數.學習率設置的過大,模型可能很難收斂,設置的過小,則參數更新過于緩慢.這里使用周期性學習率(CLR)[15],學習率每2 個epoch 在1×10-4—1×10-2之間循環,以實現一致的模型收斂.
本文使用了OQMD (the open quantum materials database)[16]和Materials Project[17]數據庫中的材料結構和性質數據.針對OQMD 數據庫,參考Yamamoto[18]的數據獲取方法,得到包含材料化學式、晶體圖結構和帶隙的樣本數據,這里獲取的帶隙是由GGA+U計算得到的[19].由于獲取的OQMD 數據庫中大部分材料帶隙值為0,為了樣本的數據均衡性,考慮將原數據集中帶隙值為0 的樣本移除數據集,最終得到30368 個樣本構成本文使用的OQMD 數據集.針對Materials Project 數據庫,按照鈣鈦礦結構的一些性質例如化學通式(ABX3)、空間群數(221)和空間群名稱()等,使用API 接口篩選數據,然后清除一些非鈣鈦礦結構數據,得到175 條包含CIF 文件、化學式和帶隙值的鈣鈦礦數據,參考CGCNN[3],由CIF 文件得到相應的晶體圖信息,構成本文鈣鈦礦材料數據集①https://github.com/STsuntao/CGCrabNet/tree/master.本文CGCrabNet 模型先在OQMD 數據集中和文獻中提出的模型進行對比,驗證其對帶隙的預測能力.然后將CGCrabNet 應用到鈣鈦礦材料帶隙預測任務中,兩個數據集的訓練集、驗證集和測試集的劃分比例均為6∶2∶2.為了防止過擬合,訓練中加入提前停止策略,超參數取值如表1 所列.

表1 超參數取值Table 1.Hyperparameter value.
首先,在OQMD 數據集上對One-Hot[20],Mag pie[21]和Mat2vec[22]三種元素嵌入方法進行測試.Magpie 是一系列原子特征的集合,包括化學計量特征、元素屬性特征、電子結構特征和離子化合物屬性.Mat2vec 是將物理、化學、材料科學方向的一些詞匯表示成 200 維詞嵌入向量的方法,包含了對每個元素的向量表示.三種方法表示的元素向量均可以在開源項目CrabNet[8]中獲得,測試結果如表2 所列.由測試結果,確定模型中元素嵌入方法使用Mat2vec 方法.

表2 元素嵌入法測試結果(單位: eV)Table 2.Elemental embedding method test results (in eV).
為了驗證CGCrabNet 模型預測能力,在OQMD數據集上,按照同樣的訓練集、驗證集、測試集劃分方式,復現了CGCNN 模型[3]、Roost 模型[7]、Crab Net 模型[8]和HotCrab 模型[8](即CrabNet 中元素嵌入方法改為One-Hot 得到的模型)進行對照實驗,實驗結果如表3 所列,可以看出CGCrabNet模型在驗證集和測試集上的平均絕對誤差都要低于其他模型,在測試集上平均絕對誤差比CrabNet模型降低了0.014 eV.圖2 是CGCrabNet 模型訓練過程訓練集和驗證集損失值變換圖,可以看到驗證集損失值趨于穩定,并且沒有出現過擬合的情況.

表3 深度學習模型測試結果(單位: eV)Table 3.Deep learning model test results (in eV).

圖2 CGCrabNet 預訓練損失值變化Fig.2.CGCrabNet pre-training loss value change.
圖3 和圖4 分別是CGCrabNet 模型在驗證集和測試集上預測帶隙值和計算帶隙值的散點圖,圖中黑色虛線是由坐標軸上的點線性擬合得到的一次函數,該擬合函數越接近函數y=x,說明預測效果越好,進一步驗證該模型的預測能力.

圖3 驗證集預測帶隙值Fig.3.Predicted band gap values on the validation set.
為了研究鈣鈦礦材料的帶隙性質,將CGCrab-Net 模型用于鈣鈦礦材料的帶隙預測.由于本文使用的鈣鈦礦數據集較小,所以訓練模型時加入遷移學習策略.首先對OQMD 數據集進行檢驗,將其中包含的鈣鈦礦結構數據移除數據集,最終得到29827 條樣本;接下來在調整后的OQMD 數據集上預訓練CGCrabNet 模型,并保存模型參數;最后,將預訓練的CGCrabNet 模型在鈣鈦礦材料數據集上進行微調.模型微調時batch_size 變為16,其他訓練細節和預訓練時保持不變,訓練39 代時模型訓練提前終止.可以看到,在預訓練的基礎上微調模型,加上設置的提前終止條件,可以在快速收斂的同時有效防止過擬合.
此外,還用隨機森林回歸模型(RF)[23]、支持向量回歸模型(SVR)[24]、梯度提升回歸模型(GBR)對鈣鈦礦材料的帶隙性質進行預測,在建立鈣鈦礦材料特征時,使用Atom_DL 原子分布式特征[25]拼接得到.為得到穩定的預測模型,對3 種回歸模型的參數進行網格搜索,利用5 折交叉驗證對模型進行評估.5 折交叉驗證將數據集平均劃分成5 份,依次用其中的一份作為測試集,其他數據作為訓練集來得到誤差.最后,計算5 個誤差的平均值作為模型最終的誤差.所有的機器學習算法模型都是使用開源庫Scikit-learn[26]實現的,各回歸模型的超參數如表4 所列.

表4 回歸模型參數Table 4.Regression model parameters.
為說明遷移學習的重要性,在僅用鈣鈦礦數據的情況下使用CGCrabNet 模型對其帶隙進行了預測,測試集的平均絕對誤差為0.536 eV;加入遷移學習策略之后,測試集的平均絕對誤差為0.374 eV,預測精度有明顯提高.同時,在鈣鈦礦數據集上復現了MEGNet 和CGCNN 模型,用于對比預測效果.各模型預測效果的平均絕對誤差值如圖5 所示,可以看到,隨機森林回歸模型和梯度提升回歸模型的平均絕對誤差(MAE)要低于支持向量回歸模型,這是因為RF 和GBR 都是集成學習模型,考慮了多個基本學習器;MEGNet 和CGCNN模型在測試集上的MAE 較高,這是由于鈣鈦礦數據集較小,在小數據集上訓練MEGNet 和CGCNN模型容易出現過擬合現象.

圖5 鈣鈦礦材料帶隙預測的平均絕對誤差對比Fig.5.MAE of band gap prediction for perovskite materials.
分別利用CGCrabNet 模型、隨機森林回歸、支持向量回歸和梯度提升回歸預測帶隙值與計算帶隙值繪制成散點圖如圖6 所示,兩條黑色實線內部的點表示預測值與計算值相差小于1 eV,數據點越靠近紅色實線表示模型的預測效果越佳.可以看出微調之后的CGCrabNet 模型在鈣鈦礦材料數據集上預測效果良好.

圖6 預測帶隙與計算帶隙散點圖Fig.6.Predicting and calculating band gap scatter maps.
表5 列出了鈣鈦礦材料數據集測試集中的35 個樣本的帶隙計算值和帶隙預測值,帶隙預測值包括特征融合神經網絡模型(CGCrabNet)、隨機森林回歸(RF)、支持向量回歸(SVR)和梯度提升回歸(GBR)預測的帶隙值.從表5 可以看出,CGCrabNet 模型對SrHfO3和RbPaO3等鈣鈦礦材料預測的帶隙值與計算值的平均絕對誤差小于0.05 eV,并且對于大多數預測的鈣鈦礦材料,CG CrabNet 預測的帶隙比其他3 個回歸模型預測的帶隙更接近帶隙計算值.
本文針對鈣鈦礦材料帶隙預測任務,構建了一個深度學習帶隙預測模型.比較了Roost 模型、Crab Net 模型、HotCrab 模型、CGCNN 模型和CGCrab Net 模型在OQMD 數據集上對材料化合物的帶隙預測效果.利用遷移學習將在OQMD 數據集上預訓練的CGCrabNet 模型,用于對鈣鈦礦材料的帶隙性質進行預測研究.同時,本文在鈣鈦礦材料數據集上建立了隨機森林回歸模型、支持向量回歸模型和梯度提升回歸模型,用于和本文建立的模型進行比較.實驗結果表明,在OQMD 數據集上,CGCrabNet 對帶隙的預測精度比CrabNet 等模型有一定提升;在鈣鈦礦材料數據集上,本文建立的模型利用遷移學習策略對鈣鈦礦材料預測的平均絕對誤差為0.374 eV,分別比隨機森林回歸、支持向量機回歸和梯度提升回歸的預測誤差降低了0.304 eV,0.441 eV 和0.194 eV;另外,模型預測的SrHfO3和RbPaO3等鈣鈦礦材料的帶隙與第一性原理計算的帶隙的誤差小于0.05 eV,這說明CGCrabNet 模型可以快速準確地預測新材料的性質,加速新材料的研發過程.
此外,本文的CGCrabNet 模型考慮了材料的化學式和晶體圖結構兩種特征作為輸入,未來可以探索更多的材料特征輸入模型,通過多種特征精準學習出材料特征和性質的映射關系;另一方面,本文將特征融合神經網絡模型應用到鈣鈦礦材料的帶隙預測任務中,進一步可以將其應用到其他材料的物理化學性質的研究中.