張菊玲 楊曉梅
摘 要:為了解決傳統(tǒng)的基于機器學(xué)習(xí)方法的文本分類耗時耗力、不具備通用性、效果不好的問題及提高短文本分類的效果,文章提出了一種基于多類型池化的卷積神經(jīng)網(wǎng)絡(luò)分類方法。文章首先使用CNN(卷積神經(jīng)網(wǎng)絡(luò))提取短文本的特征信息,然后利用多種類型的池化操作對提取的特征信息進行篩選,得到最終的分類依據(jù)。通過實驗表明,文章提出的方法在短文本分類上要優(yōu)于其他CNN分類模型和一些傳統(tǒng)的機器學(xué)習(xí)方法。
關(guān)鍵詞:自然語言處理;文本分類;卷積神經(jīng)網(wǎng)絡(luò);特征提取;池化操作
0 引言
文本分類問題是自然語言處理領(lǐng)域中一個非常經(jīng)典的問題,也是實際應(yīng)用中管理文本信息的一種重要方法,并在信息過濾、信息組織管理、文本信息異常檢測、語義辨析和情感分析等領(lǐng)域得到廣泛的應(yīng)用和發(fā)展。本文提出一種基于多類型池化的卷積神經(jīng)網(wǎng)絡(luò)模型對短文本進行分類,實驗結(jié)果表明,基于多類型池化的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在短文本分類上表現(xiàn)效果良好。
1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它是一種深度學(xué)習(xí)的經(jīng)典方法。一般的,CNN的基本結(jié)構(gòu)包括3種類型的網(wǎng)絡(luò)層:卷積層、激活函數(shù)層、池化層。卷積層是CNN中必不可少的一種網(wǎng)絡(luò)層,是構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)的基本框架。在視覺中,卷積層的輸入一般是一個二維的張量I,相應(yīng)的,在張量I上進行卷積操作就需要一個二維的卷積核K,設(shè)m和n分別為卷積核的長和寬,且卷積核一般小于輸入張量大小,每個卷積核的參數(shù)在訓(xùn)練過程中都是通過BP算法[1]優(yōu)化得到的。卷積運算是一種特殊的矩陣乘法運算,通過公式(1)或公式(2)的卷積運算得到包含數(shù)據(jù)信息的特征圖S。
(1)
(2)
由于m和n的有效取值范圍比較小,故一般采用公式(2)的實現(xiàn)方式。
激活函數(shù)層主要用來引入非線性因素,常用的激活函數(shù)有ReLU函數(shù)[2]、Tanh函數(shù)等。激活函數(shù)中線性整流單元ReLU是最常用的,其數(shù)學(xué)公式見公式(3)。
(3)
池化是指使用一定區(qū)域的統(tǒng)計特征來代替當(dāng)前區(qū)域的操作。池化操作方法一般有最大池化和平均池化,如圖1所示。
2 基于多類型池化的方法
2.1 模型訓(xùn)練基本流程
短文本分類模型在訓(xùn)練過程中一共經(jīng)歷4個階段,整體模型訓(xùn)練流程如圖2所示。
首先設(shè)置訓(xùn)練迭代次數(shù)Num和訓(xùn)練目標(biāo)e;每次迭代開始,選取一小部分訓(xùn)練數(shù)據(jù)通過詞向量矩陣映射成連續(xù)稠密的連續(xù)詞向量數(shù)組;再將數(shù)據(jù)傳入卷積神經(jīng)網(wǎng)絡(luò)層,進行特征提取、組合和特征篩選,得到模型的預(yù)測結(jié)果;再進行反向傳播算法,更新相應(yīng)的神經(jīng)網(wǎng)絡(luò)參數(shù),訓(xùn)練次數(shù)加1,判斷訓(xùn)練次數(shù)是否達到總訓(xùn)練次數(shù)Num或目標(biāo)是否達到e。如果上述兩個條件都沒有達到就繼續(xù)進行模型訓(xùn)練,否則模型訓(xùn)練結(jié)束。
2.2 詞向量
進行文本分類時,得到的數(shù)據(jù)是由多個單詞所組成的多個語句。顯然這樣的數(shù)據(jù)不能直接拿來使用,必須要對它們進行處理。傳統(tǒng)的做法是使用one-hot編碼[3]來對每個句子進行編碼,假設(shè)詞典的大小為vocab_size,文本中出現(xiàn)的每個詞都在詞典中,其中第i個詞用向量x=[0,0, … ,0,1,0, … ,0]表示,向量x中第i位為1,其余位全為0,用one-hot編碼表示文本很簡單。
如公式(4)所示,word為文本單詞,v為詞向量化后所對應(yīng)的詞向量,d為向量v的維數(shù):
(4)
2.3 多尺寸卷積
設(shè)卷積前的輸入為xi(i=1,2,…,n),卷積核權(quán)重為wj(j=1,2,…,k),卷積輸出為yj(l=1,2,…,m),L為對應(yīng)的損失函數(shù),卷積可以分為前向傳播和后向傳播兩個過程,如公式(5)和(6)所示。
(5)
(6)
本文引入多尺寸的卷積核,在進行短文本的卷積時,可以捕獲更多的文本信息。
2.4 多類型池化
卷積層提取到對應(yīng)的特征信息后,需要對這些特征信息進一步篩選。本文使用多種類型的池化操作對特征信息篩選。
設(shè)池化前的輸入是xi(i=1,2,…,n),池化核權(quán)重是wj(j=1,2,…,k),池化輸出是yl(l=1,2,…,m),由公式(7)計算池化輸出。
yj=max(wj×xi)(7)
池化層的作用是固定句子長度和特征篩選,多類型池化操作如圖3所示。
3 實驗結(jié)果
本文使用上述方法進行了TREC數(shù)據(jù)分類,基本學(xué)習(xí)率lr=0.025,衰減系數(shù)=0.95。本文使用stop-early的優(yōu)化技巧,防止模型訓(xùn)練的過擬合。本研究設(shè)置了一組對比實驗,只使用最大池化方式訓(xùn)練的模型Only-maxPooling,只使用平均池化方式訓(xùn)練的模型Only-argPooling和多類型池化方式Multi-typePool(見圖3)。
TREC數(shù)據(jù)集涉及6類不同的問題類型,訓(xùn)練數(shù)據(jù)集包含 5 452條帶標(biāo)簽問題,同時包含500條測試問題數(shù)據(jù)。在該數(shù)據(jù)集上,各個模型表現(xiàn)效果如表1所示。
從實驗結(jié)果可以看出,本文所提出的模型在TREC數(shù)據(jù)集上的表現(xiàn)效果要優(yōu)于其他的網(wǎng)絡(luò)模型。
4 結(jié)語
本文所提出的基于多類型池化的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在短文本分類上相對于其他CNN系網(wǎng)絡(luò)結(jié)構(gòu)和傳統(tǒng)機器學(xué)習(xí)方法來說優(yōu)勢明顯。下一步可以對數(shù)據(jù)集和詞向量進行操作。
[參考文獻]
[1]JAAFAR H, RAMLI N H, NASIR A S A. An improvement to the k-nearest neighbor classifier for ECG database[J].IOP Conference Series Materials Science and Engineering,2018(1):12046.
[2]LI X,GUO Y. Active learning with Multi-Label SVM classi?cation[C]//Beijing:Proceedings of Twenty-Third International Joint Conference on Artificial Intelligence,2013.
[3]ASADI R,REGAN A. A spatial-temporal decomposition based deep neural network for time series forecasting[EB/OL].(2014-11-28)[2018-10-20].https://arxiv.org/pdf/1902.00636.
(編輯?王永超)
Text classification based on multi-type pooling convolution neural network
Zhang Juling, Yang Xiaomei
(School of Information Management, Xinjiang University of Finance and Economics, Urumqi 830000, China)
Abstract:To solve the problems of traditional text classification based on machine learning method, such as time consuming, labor consuming, lack of generality and poor effect, and to improve the effect of short text classification, a CNN(Convolution Neural Network)classification method based on multi-type pooling was proposed. Firstly, CNN is used to extract the feature information of the short text, and then various types of pooling operations are used to screen the extracted feature information to obtain the final classification basis. Experiments show that the short text classification in this paper is superior to other CNN classification models and some traditional machine learning methods.
Key words:natural language processing; text classification; convolutional neural network; feature extraction; pooling operation
基金項目:新疆自然科學(xué)基金項目;項目編號:2019D01A27。新疆財經(jīng)大學(xué)校級一般項目;項目編號:2019XYB005。
作者簡介:張菊玲(1977— ),女,四川簡陽人,副教授,博士;研究方向:大數(shù)據(jù),邏輯綜合,信息安全風(fēng)險評估。