王得強(qiáng), 吳 軍, 王立平
(清華大學(xué) 機(jī)械工程系, 北京 100084)
如今隨著數(shù)字信息技術(shù)的發(fā)展, 各行業(yè)中的文本信息數(shù)據(jù)量飛速增長(zhǎng)。這些數(shù)據(jù)中蘊(yùn)含著豐富的信息資源, 有著巨大的潛在可挖掘價(jià)值, 但其中仍存在著許多信息雜亂無(wú)序的問(wèn)題, 如何從這些潛在信息量巨大的散亂文本數(shù)據(jù)中提取到可用的資源已成為各行業(yè)研究中高度關(guān)切的問(wèn)題。而作為解決該問(wèn)題的一項(xiàng)關(guān)鍵技術(shù)----文本分類, 通過(guò)對(duì)行業(yè)文本數(shù)據(jù)進(jìn)行規(guī)范歸類, 有助于更好地管理與挖掘文本信息, 從而促進(jìn)行業(yè)信息的挖掘利用, 推動(dòng)行業(yè)發(fā)展。近年來(lái), 研究人員對(duì)文本分類的研究也取得了一定的進(jìn)展, 但仍然存在準(zhǔn)確率和分類速度難以兼?zhèn)涞膯?wèn)題。
現(xiàn)在常用的文本分類技術(shù)有支持向量機(jī)(SVM: Support Vector Machines)[1]、 樸素貝葉斯、 K最近鄰(KNN: K-Nearest Neighbor)[2]、 隱馬爾可夫模型(HMM: Hidden Markov Model)[3]等。而隨著近幾年深度學(xué)習(xí)算法在自然語(yǔ)言處理領(lǐng)域取得越來(lái)越多的優(yōu)秀成果, 利用神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類成為一個(gè)重要的研究方法, 目前使用較多的模型有循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN: Recurrent Neural Network)[4]和卷積神經(jīng)網(wǎng)絡(luò)(CNN: Convolution Neural Networks)等模型。而對(duì)在計(jì)算機(jī)視覺領(lǐng)域表現(xiàn)尤佳的卷積神經(jīng)網(wǎng)絡(luò)(CNN)在文本分類領(lǐng)域中, CNN可充分發(fā)揮自身含有的多層感知器的擬合功能, 在文本分類過(guò)程中發(fā)揮了很好的非線性關(guān)系映射能力和高維復(fù)雜數(shù)據(jù)學(xué)習(xí)能力, 在語(yǔ)音識(shí)別、 計(jì)算機(jī)視覺等領(lǐng)域中發(fā)揮了重要且效果顯著的作用[5]。針對(duì)英文文本, Kim等[6]提出了一種適用的分類模型, 主要方法是先對(duì)詞向量進(jìn)行數(shù)據(jù)的預(yù)處理, 然后將其輸入到CNN中, 經(jīng)模型處理后輸出句子類別。胡榮等[7]基于文本分類技術(shù)提出了一種針對(duì)課程評(píng)論的隱式評(píng)價(jià)對(duì)象的識(shí)別方法; 高云龍等[8]考慮不同的數(shù)字特征, 提出一種改進(jìn)CNN的短文本分類模型; 齊玉東等[9]在原有的CNN文本分類模型上進(jìn)行了改進(jìn), 提出了一種適用于海軍軍事文本的分類模型, 改進(jìn)后的分類模型在準(zhǔn)確率和召回率等方面比K近鄰算法、 SVM、 TextCNN等模型相比均有所改善。梁斌等[10]則在CNN模型中引入了Attention機(jī)制, 這樣構(gòu)建的新的混合模型不僅如期地加快了模型的訓(xùn)練速度, 而且在一定程度上提升了模型分類的精確性; 顏亮等[11]提出了一種混合模型結(jié)構(gòu)方法, 結(jié)合VDCNN(Very Deep Convolutional Neural Networks)及BiGRU的特點(diǎn)和優(yōu)勢(shì)構(gòu)建了文本分類模型, 最終實(shí)現(xiàn)了模型分類精度的有效提升; 張玉環(huán)等[12]將LSTM(Long Short-Term Memory)神經(jīng)網(wǎng)絡(luò)和GRU(Gated Recurrent Unit)神經(jīng)網(wǎng)絡(luò)相結(jié)合構(gòu)建新的情感分類模型, 在降低訓(xùn)練時(shí)間的同時(shí), 提升了分類的精確性。此外, 在手術(shù)病例中由于不直接包含切口數(shù)量, 導(dǎo)致切口數(shù)量無(wú)法被直接抽取, 盧淑祺等[13]結(jié)合文本分類的思路, 將切口數(shù)量抽取問(wèn)題轉(zhuǎn)換為文本分類問(wèn)題, 利用雙向LSTM神經(jīng)網(wǎng)絡(luò)與Attention機(jī)制構(gòu)建了分句切口數(shù)目提取模型。Qiao等[14]在研究文本分類時(shí)提出了單詞本身嵌入和與局部上下文交互的區(qū)域嵌入方法, 提高了對(duì)文本的表示能力, 并在多個(gè)數(shù)據(jù)集上獲得了優(yōu)于以往模型的效果。
通過(guò)調(diào)研發(fā)現(xiàn), 目前在文本分類方面的深度學(xué)習(xí)模型應(yīng)用基本上可以達(dá)到較高的準(zhǔn)確率或令人滿意的分類效率(訓(xùn)練速度、 分類速度等), 但由于各分類模型在準(zhǔn)確率和效率方面無(wú)法兼得, 即目前有不少深度學(xué)習(xí)模型在文本分類方面實(shí)現(xiàn)了較高的準(zhǔn)確率, 但訓(xùn)練速度仍有待提升; 有些模型的表現(xiàn)則恰恰相反。綜上, 如何設(shè)計(jì)一種模型, 使其在實(shí)現(xiàn)較高的文本分類準(zhǔn)確率的同時(shí), 依然可以具有較高的效率, 成為由于當(dāng)今在文本分類方面的一項(xiàng)需要深入研究的重點(diǎn)工作。筆者針對(duì)當(dāng)前各行業(yè)中文本信息的準(zhǔn)確快速分類需求進(jìn)行了模型設(shè)計(jì), 旨在進(jìn)一步提高模型分類準(zhǔn)確率的同時(shí), 使模型的訓(xùn)練和分類速度獲得提升。
筆者主要貢獻(xiàn)有如下3個(gè)方面。
1) 構(gòu)建了基于Attention的改進(jìn)CNN-BiLSTM/BiGRU混聯(lián)文本分類模型(簡(jiǎn)稱CBLGA), 即首先并聯(lián)不同卷積核的卷積神經(jīng)網(wǎng)絡(luò)(CNN)同時(shí)提取多種不同文本向量的局部特征, 并利用BiLSTM和BiGRU并聯(lián)保證模型在不同的數(shù)據(jù)集上均可以有不錯(cuò)的運(yùn)行效果, 通過(guò)BiLSTM和BiGRU組合提取了與文本中的上下文有密切關(guān)系的全局特征, 綜合利用文本的局部特征和全局特征信息。
2) 構(gòu)建了基于Attention的改進(jìn)CNN-BiLSTM/CNN混聯(lián)文本分類模型(簡(jiǎn)稱CBLCA), 即首先利用CNN對(duì)文字序列的局部特征進(jìn)行挖掘, 再將CNN的輸出分為兩部分, 其中一部分輸入BiLSTM網(wǎng)絡(luò)中, 用于對(duì)文字序列的整體特征進(jìn)行挖掘。另一部分則保留文字序列的局部特征, 并通過(guò)調(diào)整輸出大小直接匹配BiLSTM網(wǎng)絡(luò)的輸出, 最后整合兩部分的模型結(jié)構(gòu)以獲取文本序列的局部特征和全局特征。
3) 建立一套針對(duì)不同長(zhǎng)度的文本采取相應(yīng)措施的分類流程。即針對(duì)短文本則采用一種混合模型進(jìn)行分類處理, 此時(shí)模型的選擇重點(diǎn)偏向于分類的準(zhǔn)確率; 根據(jù)1)、 2)所述模型的結(jié)構(gòu)特點(diǎn), 此時(shí)選用1)中的模型即可在實(shí)現(xiàn)很高準(zhǔn)確率的同時(shí)保證訓(xùn)練速度。而針對(duì)較長(zhǎng)的文本時(shí), 則采用兩種混合模型“分工參與”的方法進(jìn)行分類處理, 此時(shí)考慮長(zhǎng)文本的內(nèi)容分布特點(diǎn), 在重點(diǎn)內(nèi)容部分, 模型的選擇重點(diǎn)偏向于分類的準(zhǔn)確率, 而在較長(zhǎng)篇幅的細(xì)節(jié)內(nèi)容部分, 模型的選擇重點(diǎn)偏向于分類的速度。兩種模型結(jié)合, 即使面對(duì)長(zhǎng)文本, 模型也可以在提升準(zhǔn)確率的同時(shí)保證訓(xùn)練速度仍有一定程度的提升。
考慮到筆者在設(shè)計(jì)文本分類模型時(shí)引入了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和注意力機(jī)制, 所以首先在本節(jié)引出神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和注意力機(jī)制的相關(guān)知識(shí)。
適于文本分類的CNN結(jié)構(gòu)如圖1所示。對(duì)中文文本進(jìn)行數(shù)據(jù)清洗、 過(guò)濾等預(yù)處理操作后, 采用jieba分詞機(jī)制進(jìn)行分詞, 拆分訓(xùn)練集、 驗(yàn)證集和測(cè)試集后輸入CNN通過(guò)訓(xùn)練得到詞向量, 進(jìn)而映射成二維句子矩陣, 之后采用大小分別為1、3、5的卷積核對(duì)映射形成的二維矩陣進(jìn)行卷積運(yùn)算, 提取特征向量, 若用f代表Relu激活函數(shù), 當(dāng)卷積核的權(quán)重向量為W、 輸入數(shù)據(jù)為X時(shí), 則卷積層的運(yùn)算特征圖C可表示為
C=f(X?W+b)
(1)
其中?為卷積運(yùn)算;b為偏移量。
圖1 適于文本分類的CNN模型結(jié)構(gòu)Fig.1 The model structure of convolutional neural network (CNN) applied to text classification
采樣操作可以篩選出強(qiáng)特征。在下采樣后進(jìn)行連接, 之后生成特征向量, 再經(jīng)softmax分類器輸出二分類的結(jié)果。可以看出, CNN借助卷積運(yùn)算操作的優(yōu)勢(shì)可實(shí)現(xiàn)對(duì)多層網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行監(jiān)督學(xué)習(xí), 在卷積運(yùn)算時(shí)設(shè)計(jì)不同尺寸的卷積核提取不同的文本特征, 不僅降低了整個(gè)神經(jīng)網(wǎng)絡(luò)模型參數(shù)的個(gè)數(shù), 同時(shí)也提升了模型訓(xùn)練的性能。
圖2 LSTM模型結(jié)構(gòu)Fig.2 The model of LSTM
LSTM是由循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)衍生的, 相比RNN, LSTM引入了多個(gè)門控制器, 配合設(shè)計(jì)的跨層連接, 增強(qiáng)了模型對(duì)位于遠(yuǎn)近時(shí)刻的信息的記憶能力, 有效削減了梯度消失造成的影響, 可以解決傳統(tǒng)的RNN不具備記憶能力的缺陷, 增強(qiáng)網(wǎng)絡(luò)對(duì)長(zhǎng)期序列信息的記憶能力。其結(jié)構(gòu)如圖2所示。
LSTM在t時(shí)刻有隱藏狀態(tài)h(t)和細(xì)胞狀態(tài)C(t)。可以看出, LSTM與普通RNN明顯不同的是它引入了輸入門、 遺忘門和輸出門3種門結(jié)構(gòu), 前一時(shí)刻的隱藏細(xì)胞狀態(tài)在經(jīng)過(guò)遺忘門時(shí)按照一定概率被忘記, 輸入門和遺忘門的結(jié)果共同形成細(xì)胞狀態(tài)C(t), 輸出門則會(huì)根據(jù)長(zhǎng)期記憶和短期記憶決定輸出狀態(tài)。當(dāng)用于分類情景時(shí), 在LSTM頂部加入softmax層即可使模型輸出分類結(jié)果。
由上可見, LSTM中設(shè)計(jì)巧妙的門控機(jī)制使其可以有效緩解梯度消失問(wèn)題, 但較復(fù)雜的模型結(jié)構(gòu)使模型的占用資源較大、 運(yùn)行時(shí)間更長(zhǎng)。
圖3 GRU模型結(jié)構(gòu)Fig.3 The model of GRU
GRU作為L(zhǎng)STM的改進(jìn), 在整體思路上對(duì)序列數(shù)據(jù)的處理模式與LSTM類似, 主要從模型結(jié)構(gòu)上對(duì)LSTM進(jìn)行了改進(jìn): 將LSTM中的輸入門、 遺忘門和輸出門3種門結(jié)構(gòu)整合成了更新門和重置門2種門結(jié)構(gòu), 如圖3所示, 不變的處理思路和簡(jiǎn)化的結(jié)構(gòu)使GRU在保持長(zhǎng)效記憶能力的同時(shí)降低了參數(shù)量和計(jì)算量。
“注意力”最早起源于人們對(duì)視覺的研究, 由此遷移到信息技術(shù)領(lǐng)域并產(chǎn)生了注意力機(jī)制[15], 提高了對(duì)數(shù)據(jù)資源的處理能力。在筆者的應(yīng)用中, 具體是在輸入序列進(jìn)入神經(jīng)網(wǎng)絡(luò)后, 由Attention機(jī)制對(duì)網(wǎng)絡(luò)的中間層輸出結(jié)果進(jìn)行暫存, 之后將暫存的中間結(jié)果送入模型中進(jìn)行訓(xùn)練與選擇, 在模型的輸出部分, 將訓(xùn)練后暫存的中間結(jié)果與輸出序列進(jìn)行關(guān)聯(lián), 經(jīng)過(guò)此運(yùn)算, 對(duì)神經(jīng)網(wǎng)絡(luò)的輸出序列, 其中每個(gè)輸出項(xiàng)的生成概率都會(huì)取決于注意力機(jī)制在輸入序列中的選擇, 進(jìn)而形成目標(biāo)性更強(qiáng)的模型。
從數(shù)學(xué)模型視角看, Attention機(jī)制的本質(zhì)可以用一個(gè)映射函數(shù)“f:v→R”表示: 一個(gè)查詢“query”到一系列“鍵key-值value對(duì)”的映射。這個(gè)映射函數(shù)的目的就是調(diào)節(jié)分配重要的權(quán)重給更重要的部分, 由此可以看出, Attention機(jī)制會(huì)幫助人們理解和分析模型在關(guān)注什么, 以及它在多大程度上關(guān)注特定的輸入-輸出對(duì)[15]。注意力機(jī)制的基本概念依賴于在到達(dá)輸出時(shí)能訪問(wèn)輸入句子的所有部分, 使模型對(duì)序列中的不同部分施加不同的注意力, 進(jìn)而可以推導(dǎo)出依賴關(guān)系。
如圖4所示, 筆者構(gòu)建的第1個(gè)特征融合模型由CNN并聯(lián)組合和BiLSTM/BiGRU并聯(lián)組合共兩個(gè)組合串聯(lián)融合組成, 可稱為CNN-BiLSTM/BiGRU-Attention模型(簡(jiǎn)稱CBLGA模型), 設(shè)計(jì)詞嵌入層作為其中CNN部分的第1層, 生成句子矩陣后, 作為后續(xù)層的輸入以表征句子的語(yǔ)義信息, 之后進(jìn)入第2層進(jìn)行卷積運(yùn)算操作, 提取局部特征。
在進(jìn)行卷積操作時(shí), 設(shè)置了不同大小的卷積核尺寸以實(shí)現(xiàn)同時(shí)提取多種不同文本向量的局部特征, 此處設(shè)置3種卷積核的尺寸分別為1、3、5, 數(shù)量均為256個(gè), 選擇步長(zhǎng)stride大小為2, 選擇padding為same模式, 使輸出長(zhǎng)度等于輸入長(zhǎng)度, 對(duì)其進(jìn)行卷積運(yùn)算, 提取文本中多種特征詞向量的局部特征; 第3層進(jìn)行下采樣操作, 這里采用的是最大值采樣方法提取突出特征。經(jīng)采樣生成的固定維度的特征向量進(jìn)入到用于防止過(guò)擬合的Dropout層, 筆者對(duì)神經(jīng)元以20%的概率隨機(jī)丟棄, 之后將3個(gè)Dropout層輸出的特征拼接, 作為BiLSTM和BiGRU并聯(lián)組合模型輸入特征的一部分。
作為融合了3種不同CNN網(wǎng)絡(luò)輸出的Concatenate層, 同時(shí)也是BiLSTM/BiGRU部分的第1層, 此時(shí)其每個(gè)詞向量的維度設(shè)置為256×3=768維; 下面兩層均是維度為64的隱藏層, 輸入BiLSTM和BiGRU模型時(shí)采取兩個(gè)方向共同進(jìn)行的方式, 之后對(duì)產(chǎn)生的雙向時(shí)序信息進(jìn)行保存, 對(duì)BiLSTM和BiGRU輸出的特征進(jìn)行融合, 隨后將Attention機(jī)制引入到融合后的特征中, 輸入全連接層, 最后經(jīng)過(guò)softmax層輸出文本類別名稱。由于在新模型中設(shè)計(jì)了CNN結(jié)構(gòu)對(duì)文本進(jìn)行卷積操作, 加快了文本特征的提取速度, 同時(shí)多種尺度的CNN網(wǎng)絡(luò)結(jié)合BiLSTM與BiGRU模型, 在Attention機(jī)制的影響下, 有力地保證了新模型具有高分類精度。
圖4 CBLGA模型結(jié)構(gòu)簡(jiǎn)圖Fig.4 The model of CBLGA
圖5 CBLCA模型結(jié)構(gòu)簡(jiǎn)圖Fig.5 The model of CBLCA
除了文本分類模型CBLGA外, 筆者構(gòu)建的第2個(gè)混聯(lián)文本分類模型是一種基于Attention的改進(jìn)(CNN-BiLSTM)/CNN混聯(lián)文本分類模型(簡(jiǎn)稱CBLCA模型), 模型結(jié)構(gòu)如圖5所示。
該模型由卷積神經(jīng)網(wǎng)和BiLSTM串聯(lián)后再與卷積神經(jīng)網(wǎng)絡(luò)并聯(lián)組合而成, 設(shè)計(jì)詞嵌入層作為其中CNN部分的第1層, 之后進(jìn)入第2層進(jìn)行卷積操作, 提取局部特征。此處只有一種卷積核, 設(shè)置其尺寸大小為3, 一共256個(gè), 選擇步長(zhǎng)stride大小為2, 并選擇padding為same模式, 以這種結(jié)構(gòu)提取文本中多種特征詞向量的局部特征; 第3層進(jìn)行下采樣操作, 并采用最大值采樣方法以提取關(guān)鍵特征。然后進(jìn)入用于防止過(guò)擬合的Dropout層, 經(jīng)Dropout機(jī)制處理后, 將輸出的特征向量復(fù)制為兩份, 其中一份作為BiLSTM網(wǎng)絡(luò)輸入特征的一部分, 另一份則直接與BiLSTM的輸出進(jìn)行融合。
綜上, 本模型的思路是首先關(guān)注文本序列的局部特征, 通過(guò)CNN網(wǎng)絡(luò)實(shí)現(xiàn), 考慮到卷積操作在提取文本特征時(shí)可通過(guò)調(diào)整步長(zhǎng)提高速度, 因而可以賦予模型一定的快速性優(yōu)勢(shì); 同時(shí)重點(diǎn)關(guān)注文本的整體特征, 再將CNN的輸出分為兩部分, 其中一部分輸入BiLSTM網(wǎng)絡(luò)中, 以提取與文本內(nèi)容的上下文有關(guān)聯(lián)的全局特征。另一部分用于保留CNN提取的文本內(nèi)容的局部特征, 直接與BiLSTM網(wǎng)絡(luò)的輸出進(jìn)行融合, 局部特征與全局特征進(jìn)行融合, 有助于提高模型的分類精度。其中CNN的文本分類原理如2.1節(jié)中所述, 此處不再贅述。
筆者建立了一套針對(duì)不同長(zhǎng)度的文本進(jìn)行相應(yīng)預(yù)處理和后續(xù)分類工作的預(yù)處理方法, 主要流程結(jié)構(gòu)如圖6所示。以文本長(zhǎng)度300作為分界線, 當(dāng)文本長(zhǎng)度小于300時(shí), 視為短文本, 此時(shí)采用一種混合模型進(jìn)行分類處理, 模型的選擇重點(diǎn)偏向于分類的準(zhǔn)確率; 根據(jù)2)、 3)所述模型的結(jié)構(gòu)特點(diǎn), 此時(shí)選用2)中的模型即可在實(shí)現(xiàn)很高準(zhǔn)確率的同時(shí)保證訓(xùn)練速度。
圖6 針對(duì)不同長(zhǎng)度文本進(jìn)行相應(yīng)處理的流程圖Fig.6 Processing for different length of textHT
當(dāng)文本長(zhǎng)度大于300時(shí), 視為長(zhǎng)文本, 此時(shí)采用兩種混合模型“分工參與”的方法進(jìn)行分類處理, 考慮到長(zhǎng)文本的內(nèi)容分布特點(diǎn), 即行業(yè)文本的重要內(nèi)容或者中心思想大多分布在整篇文本的頭部和尾部, 占整篇文章的比例大約各為20%, 剩下的60%內(nèi)容較長(zhǎng)、 位置處于中間的文本主要發(fā)揮對(duì)主體內(nèi)容的解釋作用, 所以在提取行業(yè)文本序列中的特征時(shí), 筆者對(duì)輸入文本的序列的頭部和尾部進(jìn)行了更加精細(xì)地分析和處理, 對(duì)以上兩個(gè)區(qū)域采用更注重準(zhǔn)確率的模型進(jìn)行分類處理; 而對(duì)中間部分的處理過(guò)程可以相對(duì)弱化, 這一部分篇幅較長(zhǎng), 多數(shù)是細(xì)節(jié)內(nèi)容, 如果對(duì)長(zhǎng)文本一律采用注重細(xì)節(jié)結(jié)構(gòu)的、 準(zhǔn)確率高的模型, 則會(huì)使模型的訓(xùn)練時(shí)間增加和分類速度下降, 增加了計(jì)算機(jī)運(yùn)行負(fù)擔(dān)。所以本方案對(duì)文本的中間部分采用更注重分類效率的模型進(jìn)行分類處理; 兩種模型相互配合, 則可以在把握文本重點(diǎn)的信息和全局特征的同時(shí)提高分類效率。
為檢驗(yàn)?zāi)P驮谥圃煨袠I(yè)中的應(yīng)用效果, 實(shí)驗(yàn)時(shí)筆者在中國(guó)知網(wǎng)上選取了30 000條“并聯(lián)機(jī)構(gòu)”和“生產(chǎn)線”兩類行業(yè)數(shù)據(jù)作為數(shù)據(jù)集, 考慮到亂碼數(shù)據(jù)、 無(wú)標(biāo)簽數(shù)據(jù)等其他指標(biāo)不合格數(shù)據(jù)對(duì)模型訓(xùn)練的不利影響, 在經(jīng)過(guò)數(shù)據(jù)清洗和特征處理環(huán)節(jié)后, 最終的數(shù)據(jù)集中剩下27 814條數(shù)據(jù), 其中包含“并聯(lián)機(jī)構(gòu)”類13 983條, “生產(chǎn)線”類13 831條, 對(duì)清洗后的原始數(shù)據(jù)集的順序進(jìn)行隨機(jī)打亂處理, 任意抽取其中10項(xiàng)數(shù)據(jù)如圖7所示, 其中“cat”代表文本類別, “review”代表文本簡(jiǎn)介, “cat_id”代表類別代號(hào)。
按照1 ∶1 ∶8的比例將原數(shù)據(jù)集劃分成測(cè)試集、 驗(yàn)證集和訓(xùn)練集, 分別用于模型的測(cè)試、 驗(yàn)證和訓(xùn)練工作。
圖7 數(shù)據(jù)集中的部分?jǐn)?shù)據(jù)展示Fig.7 Display of partial data in dataset
該研究的實(shí)驗(yàn)環(huán)境為Windows10操作系統(tǒng), CPU型號(hào)為Intel Core i5-6300, 采用Nvidia GeForce GTX 950M(2GByte)的顯卡驅(qū)動(dòng), 模型搭建采用Python語(yǔ)言, 開發(fā)工具使用Jupyter-notebook。實(shí)驗(yàn)迭代5次, 評(píng)價(jià)標(biāo)準(zhǔn)主要考慮準(zhǔn)確率、 損失率和迭代時(shí)間。
對(duì)于文本向量, 該實(shí)驗(yàn)?zāi)P涂梢暈橐粋€(gè)由3層網(wǎng)絡(luò)組成的模型結(jié)構(gòu), 分別是輸入層、 隱藏層和分類層。在實(shí)驗(yàn)測(cè)試時(shí), 筆者對(duì)模型中的多個(gè)超參數(shù)進(jìn)行了適當(dāng)?shù)卣{(diào)整和設(shè)置, 通過(guò)多次實(shí)驗(yàn), 在每次迭代完成后, 根據(jù)實(shí)驗(yàn)的準(zhǔn)確率和損失率對(duì)超參數(shù)進(jìn)行選擇和設(shè)置。最終在多次實(shí)驗(yàn)結(jié)果比較后, 選擇模型的各項(xiàng)超參數(shù)如表1所示。
表1 各神經(jīng)網(wǎng)絡(luò)的參數(shù)
將筆者提出的CNN-BiLSTM/BiGRU-Attention(簡(jiǎn)稱CBLGA)模型和基于Attention的改進(jìn)(CNN-BiLSTM)/CNN混聯(lián)文本分類模型(簡(jiǎn)稱CBLCA模型)與其他典型模型進(jìn)行對(duì)比實(shí)驗(yàn), 除了考慮LSTM、 BiLSTM模型外, 還選擇了以下常見的3種模型進(jìn)行對(duì)比。
1) GRU。它主要是由Collobert等[16]提出的, 可看作是對(duì)LSTM的進(jìn)一步改進(jìn), 其參數(shù)更少, 理論上具有更好的收斂效果。
2) BiGRU。它主要是由Feng等[17]提出的, 借助雙向GRU網(wǎng)絡(luò)的全局特征獲取能力, 實(shí)現(xiàn)了特定文本信息的快速抽取。
圖8 CNN-BiLSTM-Attention模型結(jié)構(gòu)簡(jiǎn)圖Fig.8 Structure of CNN-BiLSTM-Attention model
3) CNN-BiLSTM-Attention。經(jīng)調(diào)研發(fā)現(xiàn), 該模型結(jié)構(gòu)在許多文本分類的研究中出現(xiàn), 借助CNN和BiLSTM對(duì)文本進(jìn)行特征提取和融合, 最終取得了較好的分類效果, 模型結(jié)構(gòu)簡(jiǎn)圖如圖8所示。
本實(shí)驗(yàn)中各模型采用的損失函數(shù)均為“交叉熵”損失函數(shù), 在選取優(yōu)化器時(shí), 考慮SGD(Stochastic Gradient Descent)、 AdaGrad、 RMSProp和Adam優(yōu)化器, 其中由于Adam優(yōu)化器在運(yùn)算時(shí)對(duì)梯度的均值和方差進(jìn)行了綜合考慮, 這是由于其在設(shè)計(jì)時(shí)綜合吸收了AdaGrad和RMSProp兩種優(yōu)化器的優(yōu)點(diǎn), 基于此而不斷迭代更新網(wǎng)絡(luò)參數(shù), 很適合應(yīng)用于大規(guī)模的數(shù)據(jù)及參數(shù)的場(chǎng)景, 所以筆者選取Adam作為各個(gè)模型的優(yōu)化函數(shù)。
此外, 各個(gè)模型的訓(xùn)練次數(shù)“Epoch”均為5次, 激活函數(shù)均采用“Relu”函數(shù), 下采樣均為“Maxpooling”方法。實(shí)驗(yàn)共進(jìn)行了5次迭代, 以準(zhǔn)確率為指標(biāo), 最終選用在測(cè)試集上表現(xiàn)最好的結(jié)果作為該模型的準(zhǔn)確率, 其對(duì)應(yīng)的損失率則作為該模型的損失率, 取5次迭代的平均訓(xùn)練時(shí)間作為該模型的訓(xùn)練時(shí)間, 同時(shí)記錄模型的測(cè)試時(shí)間, 各模型與筆者所提的新型混聯(lián)模型結(jié)果對(duì)比如表2所示。
表2 模型與筆者所提的新型混聯(lián)模型結(jié)果對(duì)比
從表2可看出, 相比單一的LSTM或GRU模型, BiLSTM或BiGRU模型不僅具有更高的分類準(zhǔn)確率, 而且損失率也大大減小, 只是由于模型結(jié)構(gòu)更復(fù)雜, 其訓(xùn)練時(shí)間更長(zhǎng); 進(jìn)一步地, 融合CNN模型和Attention機(jī)制的CNN-BiGRU-Attention模型則在準(zhǔn)確率、 損失率、 訓(xùn)練速度和測(cè)試速度方面表現(xiàn)的更好, 說(shuō)明了該模型的有效性。筆者提出的新模型CBLGA, 即使對(duì)比各方面表現(xiàn)均不錯(cuò)的CNN-BiGRU-Attention模型, 新模型CBLGA仍然表現(xiàn)出了更高的準(zhǔn)確率、 更低的損失率、 更快的訓(xùn)練速度和測(cè)試速度, 除了在訓(xùn)練時(shí)間上比單一結(jié)構(gòu)的GRU稍微長(zhǎng)外, 新模型CBLGA在各項(xiàng)指標(biāo)上的表現(xiàn)均優(yōu)于其他5種典型的傳統(tǒng)文本分類模型, 有力地說(shuō)明了筆者所提的新模型CBLGA在保證訓(xùn)練速度的情況下有效提升了文本分類的準(zhǔn)確率、 降低了損失率。另外也可以看到, 相比新模型CBLGA, 新模型CBLCA雖然準(zhǔn)確率和損失率表現(xiàn)得稍差, 但其訓(xùn)練速度和測(cè)試速度有了明顯的提升, 而且新模型CBLCA在各項(xiàng)指標(biāo)上的表現(xiàn)均優(yōu)于表中前3種典型的文本分類模型, 有力地說(shuō)明了該方案所提的新模型CBLCA在保證訓(xùn)練速度的情況下有效提升了文本分類的準(zhǔn)確率、 降低了損失率。
在長(zhǎng)文本適應(yīng)性處理方法的驗(yàn)證方面, 筆者融合CBLGA和CBLCA模型對(duì)長(zhǎng)文本的不同位置進(jìn)行相應(yīng)地處理, 結(jié)果表現(xiàn)出了更高的效率和準(zhǔn)確率, 說(shuō)明了該方案的提出對(duì)于解決分類模型在建立時(shí)對(duì)輸入文本長(zhǎng)度的過(guò)敏問(wèn)題有很好的效果。
筆者在行業(yè)文本分類技術(shù)中引入了CNN網(wǎng)絡(luò)進(jìn)行特征抽取、 提出了兩種新型混聯(lián)神經(jīng)網(wǎng)絡(luò)模型----CNN-BiLSTM/BiGRU-Attention(簡(jiǎn)稱CBLGA)和基于Attention的改進(jìn)(CNN-BiLSTM)/CNN混聯(lián)文本分類模型(簡(jiǎn)稱CBLCA模型), 針對(duì)短文本數(shù)據(jù), 相比結(jié)構(gòu)較簡(jiǎn)單的LSTM、 GRU分類模型, 新型模型在迭代時(shí)間沒有顯著增加的基礎(chǔ)上, 在準(zhǔn)確率和損失率方面均有明顯的效果改善; 相比BiGRU分類模型, 新型模型不僅在準(zhǔn)確率和損失率方面均有明顯的效果改善, 而且大大縮短了迭代時(shí)間; 而與另一種使用較為廣泛的基于Attention機(jī)制的BiLSTM神經(jīng)網(wǎng)絡(luò)相比, 新型模型則不僅進(jìn)一步地提高了準(zhǔn)確率, 而且在損失率指標(biāo)上也有所改善, 同時(shí)可以看出, 新型模型的訓(xùn)練時(shí)間也得到了明顯的降低。說(shuō)明了該模型既能充分發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)快速抓取文本部分特征的優(yōu)勢(shì), 又能比較好地發(fā)揮BiLSTM/BiGRU模型對(duì)較長(zhǎng)文本序列的全文特征的抽取, 綜合二者可以發(fā)現(xiàn), 新型模型在快速抽取文本局部特征的同時(shí)充分考慮了詞的上下文語(yǔ)義信息, 因此可以在提高分類準(zhǔn)確率的同時(shí)也可以保證模型的訓(xùn)練速度。
而針對(duì)長(zhǎng)文本數(shù)據(jù), 筆者提出了長(zhǎng)文本適應(yīng)性處理方法----融合CBLGA和CBLCA模型對(duì)長(zhǎng)文本的不同位置進(jìn)行相應(yīng)地處理, 該方案的提出不僅使文本分類的效率大大提高, 同時(shí)也解決了分類模型在建立時(shí)對(duì)輸入文本長(zhǎng)度的過(guò)敏, 即模型建立時(shí)需要給定可處理的文本長(zhǎng)度len(txt), 在單一模型結(jié)構(gòu)下, 當(dāng)len(txt)過(guò)大時(shí), 無(wú)疑加重了模型的訓(xùn)練和處理負(fù)擔(dān), 占用資源過(guò)大, 容易造成資源浪費(fèi); 而當(dāng)len(txt)過(guò)小時(shí), 無(wú)疑減小了模型的可使用范圍和處理能力, 當(dāng)面對(duì)長(zhǎng)文本輸入時(shí), 雖然也可以處理, 但由于模型的自動(dòng)限制, 使只有部分文本進(jìn)入模型, 很容易造成“一知半解”, 分類結(jié)果也不準(zhǔn)確。而筆者提出的長(zhǎng)文本適應(yīng)性處理方法則解決了這個(gè)問(wèn)題。對(duì)各有數(shù)據(jù)分類需求的行業(yè)提供了有價(jià)值的可參考方案。
未來(lái)將繼續(xù)探索適用于行業(yè)應(yīng)用的高效文本分類模型, 并將文本分類模型應(yīng)用于多個(gè)行業(yè)的實(shí)際應(yīng)用中, 為促進(jìn)行業(yè)信息的挖掘利用、 推動(dòng)行業(yè)發(fā)展做出貢獻(xiàn)。