方強強,朱全銀,張柯文,馮萬利,李 翔,王文川,胥心心,王勝標
(淮陰工學院 計算機與軟件工程學院,江蘇 淮安 223003)
關鍵字: 化工裝備分類;卷積神經網絡;Attention注意力機制;數據挖掘
化工裝備是化工產業(yè)的基礎,一切化工生產都離不開化工裝備的使用,而同一化工裝備在不同化工使用場景中由于使用功能不同,被分為不同類型,這就對化工裝備的功能性分類提出了需求。計算機在化工裝備分類中的應用主要是對化工裝備名稱組成的文本進行分類,得到化工裝備名稱分類結果。
近年來隨著微博、Twitter的興起,越來越多的研究者將目光轉向短文本的研究。如Bollegala等[1]提出預測短文本分類中特征缺失問題;劉震等[2]提出中文短文本聚合模型研究;高云龍[3]提出一種基于改進卷積神經網絡的短文本分類,增強了短文本語義聯系;Hua等[4]提出了通過收集和分析語義知識來理解短文本。由于化工裝備名稱較短,因此適用于短文本研究,而對化工裝備名稱文本進行分類有利于化工裝備的出售、購買及維修,對化工裝備的流通具有積極意義。
相對于機器學習,深度學習更加適合應用于數據量大的實驗,并且深度學習算法能夠自學習,即自己從數據中學習特征,自學習的能力降低了發(fā)現特征的成本節(jié)省了資源消耗。卷積神經網絡[5](Convolutional Neural Network,CNN)作為應用最廣泛的深度學習算法具有以下優(yōu)點:(1)共享卷積核,對高維數據處理無壓力;(2)無需手動選取特征,訓練完數據就可以迅速得到特征矩陣,分類效果好?;诖耍珻NN算法在計算機文本處理中受到了廣大研究者的青睞,相應的改進算法有:盧泓宇等[6]提出了一種增強特征選擇模型;Shi等[7]提出了基于廣義大裕度所示的DCNNs算法;Wang等[8]提出了一種用于點云學習的動態(tài)圖卷積神經網絡;Chen等[9]提出了深度流形學習與卷積神經網絡相結合的動作識別系統(tǒng)。
化工裝備名稱文本雖然能夠進行文本分類,但是由于化工裝備名稱長度較短,不同名稱之間語義聯系較弱,特別是在實際應用中,同一化工裝備根據使用場景的不同,往往被分為不同類型,這就造成化工裝備文本分類準確率不高的問題。本文通過Attention注意力機制,改變相同化工裝備在不同使用場景下的權重,增強化工裝備之間的語義聯系,再結合卷積神經網絡提取化工裝備語義特征實現準確分類。
卷積神經網絡是一種前饋神經網絡,通常包含輸入層、卷積層、池化層、全連接層、輸出層,是由卷積運算來代替?zhèn)鹘y(tǒng)矩陣乘法運算的神經網絡,輸入層可以將數據作為輸入及提取數據特征;卷積層對輸入層提取的數據特征進行卷積操作,進一步提取數據特征,卷積公式為:
(1)
其中x(t)和h(t)是卷積的變量,p是積分變量,t是使函數h(-p)位移的量;池化層對卷積層提取的特征進行壓縮,一方面可以降低網絡計算的復雜度,將不同長度的句子輸入和不同大小的卷積核池化得到一個相同維度的輸出,另一方面也可以對特征做進一步提??;全連接層是將得到的特征映射到樣本空間中,以減少特征位置對分類的影響,并對池化層輸入進行分類;輸出層對最終分類結果進行輸出。CNN具體結構如圖1所示:
圖1 卷積神經網絡結構圖
Attention模型最初應用于圖像識別,模仿人看圖時,目光的焦點在不同的物體上移動。當神經網絡對圖像或語言進行識別時,每次集中于部分特征上,識別更加準確。權重是衡量特征重要性的最直觀方法,Attention模型的結果就是在每次識別時,計算每個特征的權值,然后對特征進行加權求和,權值越大,該特征對當前識別的貢獻就大。
在2014年Google mind團隊[10],在RNN模型上使用了Attention機制來進行圖像分類,取得了很好的效果。接著Attention機制被廣泛應用在基于卷積神經網絡CNN和循環(huán)神經網絡(Recurrent neural network,RNN)等神經網絡模型的各種自然語言處理任務中,并取得了不少突破性進展。Chen等[11]結合Attention機制和RNN算法解決了基于視覺的無序多標簽分類;Han等[12]通過分層注意力機制結合CNN算法對多個視圖進行3D全局特征學習。這些基于Attention機制的深度學習算法的提出說明了注意力機制與CNN算法結合的有效性。
Attention機制的本質可以表示為一個查詢(Query)到一系列鍵值對(鍵Key-值Value)的映射。計算Attention時主要分為兩個過程:第一個過程根據Query和Key計算權重系數,并通過softmax函數對計算得到的權重系數進行歸一化處理,其中,Key=Value;第二個過程是根據權重和相應的鍵值Value進行加權求和得到最終的Attention特征。Attention計算過程如圖2所示:
圖2 Attention計算過程
Query和某個Keyi的相關性計算公式為:
Sim(Query,Keyi)=Query·Keyi
(2)
歸一化后相關性αi為:
(3)
Attention值公式為:
(4)
ATT-CNN算法是在CNN算法的基礎上,加入Attention注意力機制,進一步提取化工裝備名稱之間的特征。即在CNN算法輸入層與卷積層之間加入Attention層,將輸入層的特征(feature map)與Attention 層提取得到的特征(attention feature map)一起作為輸入送入卷積層與卷積核進行卷積運算,在經過池化層、全連接層與輸出層得到最終的分類模型。輸入層和Attention層進入卷積層模型如圖3所示:
圖3 輸入層和Attention層進入卷積層模型
公式為:
Aij=match-score(F0,n[:,i],F1,n[:,j])
(5)
F0,m=W0·AT
(6)
F1,m=W1·A
(7)
其中,A為Attention矩陣,AT為矩陣A的轉置矩陣,W0為F0,m權重,W1為F1,m權重,F0,m、F1,m為特征矩陣,F0,n、F1,n為Attention特征矩陣;ATT-CNN具體結構如圖4所示:
圖4 ATT-CNN結構圖
從模型的訓練過程與測試過程對本文算法進行描述。模型訓練過程包括對原始數據集的預處理,得到訓練集數據矩陣。Attention層、卷積層、池化層及全連接層對訓練集數據矩陣進行特征提取,并對提取得到的特征做訓練。最后輸出層輸出得到的化工裝備分類模型。具體ATT-CNN模型訓練過程如算法1:
算法1 ATT-CNN模型訓練過程
輸入:訓練集中的化工裝備名稱文本數據
輸出:訓練好的ATT-CNN模型
Step1:預處理訓練集樣本,將樣本通過Word2vec[13]算法轉化為數據矩陣形式;
Step2:確定ATT-CNN網絡模型的結構、迭代次數以及訓練參數;
Step3: Attention層對訓練集數據矩陣進行特征提取,得到特征Attention feature map,并和原來的feature map一起作為輸入層輸入;
Step4:將步驟3得到的兩種特征輸入卷積層、池化層、全連接層與輸出層得到分類模型。
測試過程即驗證訓練后模型性能,測試過程的輸入是預處理后的待分類測試集,輸出是測試集分類后的分類結果及準確率、召回率和F1值。測試流程如算法2所示:
算法2 ATT-CNN模型測試過程
輸入:預處理后待分類測試集
輸出:測試集分類結果及分類準確率
Step1:預處理測試集樣本,將樣本通過Word2vec算法轉化為數據矩陣形式;
Step2:選擇算法1訓練好的分類模型;
Step3:輸入預處理后的測試集矩陣;
Step4:輸出測試集分類結果以及分類準確率、召回率和F1值。
圖5 文本數據轉化為數值型數據
卷積神經網絡可以根據需求搭建不同層數的卷積層、池化層等,以及設置不同的網絡參數,本文全部采用單層設置構建神經網絡,具體參數如表1所示:
表1 參數設置
通過采用機器學習與深度學習中常用分類算法以及本文算法對同一數據集做分類實驗,并使用準確率、召回率和F1值作為評判算法分類效果優(yōu)劣的評價標準。具體實驗步驟及流程如下:
Step1:對化工裝備文本數據集進行預處理,得到預處理后的數據集并轉化為數值型數據;
Step3:將訓練矩陣分別通過不同分類算法訓練出分類模型;
Step4:將測試矩陣輸入Step3中訓練得到的分類模型,得到分類結果;
Step5:輸出各分類算法預測分類結果。
圖6 各算法實驗流程
3.3.1與傳統(tǒng)機器學習分類方法相比較
通過使用機器學習中k最近鄰算法(k-Nearest Neighbor, kNN)、樸素貝葉斯算法(Naive Bayes, NB)、隨機森林算法(Random Forest, RF)、邏輯回歸算法(Logistics Regression, LR)4種算法對化工裝備名稱文本進行分類實驗。目的是將ATT-CNN方法與傳統(tǒng)機器學習分類方法進行比較。各方法分類結果如表2所示:
表2 機器學習算法分類結果(%)
由表2可知機器學習方法不能夠準確地對化工裝備名稱文本進行分類,分類準確率最高的邏輯回歸算法僅為85.2%,不具有實際使用價值,與機器學習算法相比,ATT-CNN方法具有更高的分類準確率。
3.3.2與CNN算法相比較
采用原始的CNN算法與本文提出的改進的ATT-CNN算法對化工裝備名稱文本數據集進行分類實驗,結果表明,CNN算法雖然也可以對化工裝備名稱文本做出分類,但本文提出的ATT-CNN算法化工裝備名稱文本的分類準確率更高,分類結果更準確(見表3)。
表3 CNN算法和ATT-CNN算法分類結果 (%)
本文提出的ATT-CNN算法對化工裝備名稱文本的分類準確率高于其他傳統(tǒng)機器學習分類算法和原始卷積神經網絡算法。將傳統(tǒng)的CNN算法加入Attention注意力機制后,化工裝備的分類準確率為96.42%、召回率為96.31%、F1值為95.70%。
為了提高化工裝備分類的準確率,本文提出了一種基于ATT-CNN的化工裝備分類算法,通過將卷積神經網絡中加入Attention注意力機制,提高了化工裝備名稱之間的語義聯系,解決了同一化工裝備在不同化工場景中被分為不同類型的問題。實驗結果表明,本文算法的準確率、召回率和F1值均比傳統(tǒng)機器學習算法以及原始CNN算法更準確,可以有效提高化工裝備分類準確率。