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