劉秀磊,孔凡芃,諶彤童,劉旭紅
(1.北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點實驗室 北京 100192;2.北京信息科技大學(xué) 數(shù)據(jù)與科學(xué)情報分析實驗室 北京 100192;3.北京跟蹤與通信技術(shù)研究所 北京 100192)
航天科技開源情報[1]的分類問題是航天情報工作開展的第一步。如何利用機器學(xué)習(xí)的新技術(shù)來提升航天科技開源情報的分類效果,是當前航天情報學(xué)領(lǐng)域迫切需要解決的問題。
早期航天科技開源情報的分類研究主要集中于傳統(tǒng)的機器學(xué)習(xí)方法,如文獻[2]結(jié)合貝葉斯算法與web技術(shù)研發(fā)了一套服務(wù)器-客戶端模式的航天文本分類系統(tǒng)。文獻[3]研究了基于SVM的航天情報分類方法,并提出多分類流程以應(yīng)對不同類別數(shù)據(jù)的分類操作。然而這些方法大都需要人工特征工程,且文本表示無法準確反映文本間的關(guān)系,不能保障較高的分類準確性。深度學(xué)習(xí)的廣泛發(fā)展與應(yīng)用,使得文本分類的效果得到顯著提升。文獻[4]提出基于Attention機制的TextRCNN-A文本分類算法,能夠捕捉上下文內(nèi)容信息,也可以更好地消除單詞歧義??梢?,在航天科技開源情報分類的研究中,能否準確捕捉到上下文語義信息對于提高相關(guān)文本分類的準確率具有一定影響。
傳統(tǒng)的文本向量表示方法主要是詞袋模型,如One-Hot直接映射表示方式[5]、基于詞頻的TF-IDF模型[6]等,但這些模型并未考慮詞與詞之間的關(guān)聯(lián)性,且向量長度較大,易造成矩陣稀疏問題。后來出現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的文本向量化模型,如文獻[7]提出的word2Vec模型,可用來表示詞與詞之間的關(guān)系。文獻[8]提出的Glove模型可以利用全局統(tǒng)計信息,進行矩陣分解來獲取詞向量,但上述模型在表達多義詞方面存在較大缺陷。由此,文獻[9]提出Elmo模型,在獲得預(yù)先訓(xùn)練的詞向量后,根據(jù)實際上下文數(shù)據(jù)對向量表示進行動態(tài)調(diào)整,能夠?qū)W到語法和語義等復(fù)雜的詞匯用法。文獻[10]提出了用Encoder-Decoder和Attention機制的Transformer模型,最大的優(yōu)點是能夠高效并行化。文獻[11]提出了基于Transformer的雙向編碼器模型(bidirectional encoder representations from transformers,BERT),具有優(yōu)秀的表達詞句能力,該模型既提供了簡單的接口來處理下游的自然語言處理任務(wù),又可以作為預(yù)訓(xùn)練語言模型進行文檔向量的研究,具有較強的遷移性。
通過對航天科技開源情報文本數(shù)據(jù)的分析發(fā)現(xiàn),相關(guān)情報的文本內(nèi)容較長,且含有大量的領(lǐng)域性專有名詞,相關(guān)特點制約了航天科技開源情報分類的準確率,而現(xiàn)有的應(yīng)用于航天科技開源情報分類任務(wù)中的模型不能很好地關(guān)注相關(guān)專有名詞并提取情報的內(nèi)容特征?;诖耍疚奶岢龌贐ERT與極端梯度提升模型(extreme gradient boosting, XGBoost)[12]的融合模型用于航天科技開源情報的分類研究。利用BERT模型提取航天科技開源情報的關(guān)鍵特征,同時結(jié)合使用分類效果較好的XGBoost模型對BERT提取到的關(guān)鍵特征進行分類,從而提升分類準確率。
本文提出的基于BERT-XGBoost融合模型的航天科技開源情報分類方法主要由兩部分組成:一部分是基于BERT的航天科技開源情報特征提取;另一部分是基于XGBoost的航天科技開源情報特征分類,將情報數(shù)據(jù)進行向量化后作為BERT模型的輸入,BERT模型的輸出為給定長度的航天科技開源情報特征向量。
在融合模型的整體結(jié)構(gòu)中,使用航天科技開源情報文本內(nèi)容以及對應(yīng)的分類標簽訓(xùn)練出BERT分類模型,并使用梯度下降的策略不斷調(diào)整模型,以得到分類準確率較高的模型。由于原BERT模型最后輸出層的結(jié)果為相關(guān)文本的類別,所以在此模型的基礎(chǔ)上,將模型最后的輸出層改為線性輸出,模型中其他層的參數(shù)不變,以此輸出提取的特征向量。
當BERT模型作為編碼器將航天科技開源情報映射成特征向量后,將特征向量與對應(yīng)的文本分類標簽一同輸入至XGBoost模型中進行后續(xù)訓(xùn)練。由于XGBoost模型是一種決策樹[13]集成算法,輸入的特征向量會被構(gòu)建成樹,當初始樹構(gòu)建成功后,新的樹會去修正模型中已有的樹的誤差,當模型分類結(jié)果中沒有更多提升時,停止樹的構(gòu)建。所有樹的葉子結(jié)點分數(shù)總和對應(yīng)于評估劃分類別的得分,選取得分最高的類別確定為最終劃分類別。
利用XGBoost模型對BERT提取出的特征向量進行分類,能夠使融合模型更充分地學(xué)習(xí)數(shù)據(jù)與標簽之間的真實聯(lián)系,以達到更加高效的分類效果。
航天科技開源情報中存在較多專有名詞,對航天科技開源情報的分類具有較大影響,由于Multi-Head Self-Attention機制可以精準地關(guān)注到文本中的關(guān)鍵信息,有利于捕捉到相關(guān)情報中的專有名詞,所以本文利用內(nèi)含Multi-Head Self-Attention機制的BERT模型對航天科技開源情報進行特征提取,從而實現(xiàn)更為精準的文本分類。模型特征提取結(jié)構(gòu)如圖1所示。輸入一條航天科技開源情報數(shù)據(jù)到BERT模型中,經(jīng)過模型的計算后輸出對應(yīng)的文本特征向量,作為后續(xù)融合模型中XGBoost模型的輸入。
圖1 模型特征提取結(jié)構(gòu)圖
Multi-Head Attention機制在Attention基礎(chǔ)上,重復(fù)多次線性變換與點積計算的過程來實現(xiàn)Multi-Head,這樣做可以讓模型在不同表示的子空間里學(xué)習(xí)到更多上下文相關(guān)信息,從而可以更全面地捕捉到文本中的關(guān)鍵信息。以“美國陸軍加速研發(fā)激光武器”為例,進行Attention的可視化,驗證Multi-Head關(guān)注上下文信息的能力,結(jié)果如圖2、3所示。
圖2 One head可視化結(jié)果
圖2、3中不同顏色塊代表不同Attention頭的結(jié)果,同一種顏色的程度越深,Attention值越大,線條兩端的字符依賴關(guān)系也越強。從圖2 one head的結(jié)果可以看出“激”這個字只能學(xué)習(xí)到和“激”的依賴關(guān)系,而圖3 two head的結(jié)果中“激”可以同時學(xué)到“激”、“光”的依賴關(guān)系,從而驗證出Multi-Head可以從不同的表示子空間里學(xué)習(xí)相關(guān)信息。
圖3 Two head可視化結(jié)果
由此可見,Multi-Head Self-Attention機制可以有效地關(guān)注航天科技開源情報中的專有名詞,有利于模型的特征提取,為后續(xù)利用XGBoost模型進行特征分類做好準備。
XGBoost模型可以基于特征粒度上并行,相較于softmax分類器及線性分類器來說,XGBoost模型可以更加充分地利用數(shù)據(jù)特征擬合數(shù)據(jù)。因此利用XGBoost模型對BERT提取出的特征向量進行分類。XGBoost使用梯度上升框架,核心是最小化第k棵樹的殘差。XGBoost使用二階泰勒展開公式來求解目標函數(shù),展開后公式為
XGBoost模型涉及諸多參數(shù),參數(shù)的調(diào)節(jié)對于模型的訓(xùn)練至關(guān)重要,其主要參數(shù)如表1所示。Booster參數(shù)選擇gbtree,該參數(shù)值表示采用樹的結(jié)構(gòu)來運行數(shù)據(jù),符合本文提取的特征分類;由于航天科技開源情報文本類別共有5個,所以類別數(shù)量參數(shù)Num_class取值為5;Max_depth表示樹的深度,一般取值在5到10之間,本文取值為8;多分類問題決定Objective的參數(shù)值選擇multi:softmax;其他參數(shù)按照一般要求設(shè)置。
表1 XGBoost模型主要參數(shù)
由于BERT模型對航天科技開源情報提取出的特征向量較為復(fù)雜,為了能夠更好地考慮這些復(fù)雜特征對相關(guān)文本分類效果的影響,選取XGBoost模型對BERT提取出的特征向量進行分類。
將航天科技開源情報進行向量化,表示為x,用于訓(xùn)練BERT模型,最終輸出特征向量Outputvec;將原始分類標簽y與BERT輸出的特征向量共同組成XGBoost模型的輸入Inputx;通過XGBoost模型輸出最終的分類結(jié)果。具體公式為Outputvec=BERT(x),Inputx=(Outputvec,y),Outputfinal=XGBoost(Inputx)。
融合模型訓(xùn)練過程的偽代碼如下。
算法1BERT 與XGBoost融合模型應(yīng)用于航天科技開源情報分類訓(xùn)練過程。
Input dataoriginal:航天科技開源情報原始文本;modelpre:預(yù)訓(xùn)練模型BERT-Base,Chinese;
Output Test set error rate: Testerror; modelBERT: the BERT model after training;
modelXGBoost: the XGBoost model after training;
1)model=Load(modelpre);∥加載中文預(yù)訓(xùn)練模型
2)data,label=DataProcessing(dataoriginal); ∥數(shù)據(jù)預(yù)處理
3)datainput=DataVectorization(modelpre,data); ∥文本數(shù)據(jù)處理成BERT模型輸入數(shù)據(jù)
4)datatrain, datadev, datatest=SplitData(datainput); ∥劃分數(shù)據(jù)集
5)modelBERT=Train(model,datatrain,datadev)
6)features=OutputFeature(datatrain,modelBERT); ∥BERT分類輸出訓(xùn)練集特征向量
7)training the XGBoost model modelXGBoostwith features;
8)set the maximum number of iterations epochs;
9)set the initial bert error rate besterror;
10)initial epoch=0;
11)repeat
12)Train(datatrain, datadev, modelBERT); ∥訓(xùn)練BERT模型
13)features=OutputFeature(datatest,modelBERT); ∥BERT輸出測試集特征向量
14)result=Prediction(features,modelXGBoost); ∥XGBoost輸出分類結(jié)果
15)testerror=ComputError(result); ∥計算測試集錯誤率
16)if testerror<=berterrorthen
17)besterror← testerror;
18)Save(modelBERT);
19)features=OutputFeature(datatrain,modelBERT);
20)training the XGBoost model modelXGBoostwith features;
21)Save(modelXGBoost);
22)end if
23)Save(testerror);
24)until(epoch>epochs)。
本文實驗數(shù)據(jù)是某平臺所提供的公開科工資訊文本,來源于各大國防科技網(wǎng)站,總數(shù)據(jù)量為61 027條,主要類別為航天工業(yè)、船舶工業(yè)、兵器工業(yè)、航空工業(yè)與電子工業(yè)。本文借鑒文獻[15]中文本預(yù)處理的方法,對航天科技開源情報數(shù)據(jù)中的無效信息進行清理,并將處理后的文本內(nèi)容用于后續(xù)分類任務(wù)中。
經(jīng)統(tǒng)計,航天科技開源情報各類別數(shù)據(jù)的數(shù)量差距較大,故在此基礎(chǔ)上,設(shè)計數(shù)據(jù)均衡與非均衡兩組實驗作為對比。航天工業(yè)、船舶工業(yè)、兵器工業(yè)、航空工業(yè)與電子工業(yè)在均衡情況下的數(shù)據(jù)量均為4 053條,在非均衡情況下的數(shù)據(jù)量分別為13 454條、15 804條、4 053條、20 846條、6 870條,5個類別的均衡數(shù)據(jù)總量為20 265條,非均衡數(shù)據(jù)總量為61 027條。實驗數(shù)據(jù)均按照約8∶1∶1的比例進行訓(xùn)練集、驗證集與測試集的劃分。
本文在模型的訓(xùn)練過程中,依據(jù)BERT提取特征向量長度的不同設(shè)計了對比實驗,根據(jù)數(shù)據(jù)集中不同類別的數(shù)據(jù)量差距較大的特點,設(shè)計了數(shù)據(jù)集均衡與非均衡情況下的對比實驗,最后設(shè)計了融合模型與其他部分主流語言模型在相同數(shù)據(jù)集上的對比實驗,以探究融合模型的分類效果。
2.2.1融合模型訓(xùn)練 本文融合模型中BERT模塊用的是“BERT-Base,Chinese”模型,網(wǎng)絡(luò)結(jié)構(gòu)一共12層,隱藏層有768個神經(jīng)單元,采用12頭模式,共有110 M參數(shù)。模型訓(xùn)練過程中使用2.1節(jié)中提及的非均衡數(shù)據(jù)集。模型設(shè)置參數(shù)隨機失活率為0.1、模型Epoch為3、學(xué)習(xí)率為5e-5。將提取到的特征向量輸入到XGBoost模型中,以得到正確的分類結(jié)果。BERT訓(xùn)練損失和準確率及XGBoost訓(xùn)練錯誤率如圖4、5所示。
圖4 融合模型-BERT模塊訓(xùn)練損失和準確率
由圖4可知,BERT模型在迭代超過5 400輪后,訓(xùn)練集和驗證集上的損失與準確率數(shù)據(jù)波動幅度變小,逐漸趨于穩(wěn)定,驗證集的準確率基本保持不變,說明模型訓(xùn)練擬合效果已達最優(yōu)。由圖5可知,XGBoost在訓(xùn)練之初,模型的訓(xùn)練錯誤率就比較低,推測可能是BERT較為精準地提取出了航天科技開源情報的特征,使得XGBoost模型在后續(xù)分類時能夠取得較好效果。
圖5 融合模型-XGBoost模塊訓(xùn)練錯誤率
融合模型最后在測試集上的準確率為90.01%,相較于相同參數(shù)下單獨使用BERT模型進行分類的準確率提高了1.5%,說明融合了BERT與XGBoost的模型有利于提升航天科技開源情報的分類準確率。
由于融合模型中BERT模塊提取的文本特征向量長度不同,信息量也不同,由此會導(dǎo)致模型分類準確率不同,因此設(shè)計對比實驗,探究模型分類準確率隨文本特征向量長度的變化情況,實驗結(jié)果如圖6所示。
圖6 不同長度文本特征向量的模型分類準確率
由圖6可知,隨著提取的文本特征向量長度的增加,模型的分類結(jié)果表現(xiàn)出先升后降的波動變化,當提取的文本特征向量長度為110左右時,模型分類準確率最高達到90.02%。當提取的文本特征向量長度大于120時,考慮可能是由于文本特征向量過長導(dǎo)致模型提取的特征達到飽和,從而影響模型的分類效果,導(dǎo)致模型的分類準確率呈現(xiàn)波動降低態(tài)勢。
2.2.2均衡與非均衡數(shù)據(jù)集對比 本文設(shè)計數(shù)據(jù)集均衡與非均衡情況下的F1值對比實驗,來探究數(shù)據(jù)集對航天科技開源情報分類的影響。由于在實驗2.2.1中得到結(jié)論,當BERT模塊提取的特征向量長度為110時模型分類準確率最好,所以為了較全面的做對比,本文挑選大于110維及小于110維的特征向量長度進行實驗,設(shè)置模型提取的最大文本特征向量長度分別為100維、110維和128維。融合模型在數(shù)據(jù)集均衡與非均衡情況下的測試集準確率如圖7所示。融合模型在非均衡數(shù)據(jù)集下的準確率優(yōu)于均衡情況,考慮到非均衡情況下的數(shù)據(jù)量多于均衡情況,推測可能是由于非均衡數(shù)據(jù)量較多使得模型的學(xué)習(xí)效果更好,由此分類準確率更高。同時本文采用了可以評價模型性能的F1值進行對比,結(jié)果如表2所示。當類別為“兵器工業(yè)”、“電子工業(yè)”時,均衡數(shù)據(jù)集下的F1值高于非均衡情況,考慮到這兩個類別下的數(shù)據(jù)量相對最少,非均衡情況下其他類別的數(shù)據(jù)可能對這兩個類別的數(shù)據(jù)分類產(chǎn)生干擾;當類別為“航空工業(yè)”、“船舶工業(yè)”時,非均衡數(shù)據(jù)情況下的F1值高于均衡情況,可能是因為這兩個類別的數(shù)據(jù)量相對較多,使得非均衡情況下模型訓(xùn)練更為充分,學(xué)習(xí)到的特征更多,所以F1值更高。
圖7 融合模型在不同類型數(shù)據(jù)集下的分類準確率
表2 數(shù)據(jù)集均衡與非均衡情況下 F1值對比
綜合融合模型在測試集上的準確率結(jié)果以及在各類別上的F1值分析發(fā)現(xiàn),模型在均衡數(shù)據(jù)集以及非均衡數(shù)據(jù)集上的F1值差距并不明顯,但是在測試集上的準確率非均衡數(shù)據(jù)集結(jié)果均高于均衡數(shù)據(jù)集,因此非均衡數(shù)據(jù)集更有利于模型學(xué)習(xí)航天科技開源情報文本的特征。
2.2.3融合模型與部分主流語言模型對比 在本文融合模型提出之前,研究者們針對語言模型做了很多相關(guān)研究,如:基于CNN的TextCNN模型;基于BiLSTM的TextRNN模型等。本文在上文研究使用的數(shù)據(jù)集基礎(chǔ)上,為部分主流語言模型設(shè)置了相同的基本超參數(shù):隨機失活率為0.5;迭代輪數(shù)為20;學(xué)習(xí)率為e-3;最大文本長度為256。同時將部分主流語言模型與本文提出的融合模型在航天科技開源情報分類任務(wù)中的表現(xiàn)做了對比,除上述提及參數(shù)設(shè)置相同外,根據(jù)2.2.1節(jié)的結(jié)論,設(shè)置融合模型中BERT模塊提取的最大特征長度為110維。
BERT_XGBoost、BERT、TextRCNN、DPCNN、TextRNN、TextCNN、FastText以及Transformer模型在測試集上的準確率結(jié)果分別為90.01%、88.50%、88.16%、87.83%、87.27%、85.54%、85.06%、80.57%。可以看出,BERT_XGBoost融合模型在測試集上的準確率相較于其他主流模型更高,同時融合模型的分類準確率比單獨使用BERT模型進行分類的結(jié)果高1.5%,說明融合模型的分類效果更好,能夠在一定程度上提升航天科技開源情報分類的準確率。同時本文對比了各模型在不同類別下的F1值,其結(jié)果如表3所示。
從表3可以看出,在5個類別中,BERT_XGBoost融合模型的F1值結(jié)果相較于其他任何模型來說都是最高的,說明融合模型在這5個類別上的分類結(jié)果更為出色。
表3 各模型在不同類別下的F1值對比
綜合融合模型與其他主流語言模型在測試集上的準確率結(jié)果對比,以及在各類別上的F1值對比,分析發(fā)現(xiàn),相較于其他主流語言模型,融合模型的準確率更高,在各類別上的F1值也更高,說明融合模型更適合航天科技開源情報文本的分類,并且融合模型能夠提升航天科技開源情報文本分類的效果。
本文的主要工作是解決航天科技開源情報的分類問題,針對航天科技開源情報文本內(nèi)容較長且含有大量專有名詞的特點,提出BERT-XGBoost融合模型的分類方法,使用BERT模型提取出相關(guān)開源情報文本的特征,并利用XGBoost模型對BERT提取的特征進行分類。通過與部分主流語言模型在相同數(shù)據(jù)集上的準確率對比,驗證了融合模型能夠有效提升在航天科技開源情報文本分類上的準確率。但本文尚未研究數(shù)據(jù)集中存在的圖片信息對分類效果的影響,且本文所用數(shù)據(jù)集規(guī)模較小,在后續(xù)的工作中,將嘗試在融合模型的基礎(chǔ)上融入圖片信息用來豐富句子特征表示,同時研究融合模型在更大規(guī)模數(shù)據(jù)集上的分類性能。