王浩暢,孫銘澤
(東北石油大學 計算機與信息技術(shù)學院,黑龍江 大慶 163318)
文本分類(text classification)是自然語言處理(natural language processing,NLP)學科的一門重要研究方向,而短文本分類則是文本分類的一個重要分支。隨著自然語言處理技術(shù)研究的不斷深入,文本分類算法研究也獲得了巨大突破[1]。文本分類由最初依靠人工進行規(guī)則提取方式,轉(zhuǎn)向基于機器學習的自動分類方式,通過機器學習方法提取文本分類規(guī)則進行自動分類,將機器學習算法應用到文本分類領(lǐng)域[2]。
文本分類過程一般包括:文本預處理、特征提取、模型選擇、損失函數(shù)計算、測試評估[3]。文本分類方法經(jīng)過長期的研究在很多場景下已經(jīng)得到了應用,但是短文本分類研究起步比較晚,且一直沒有什么通用的、效果良好的方法。短文文本分類一般存在兩個問題,其一是短文本提供的詞語少,提供的有效信息有限;其二是根據(jù)分詞結(jié)果構(gòu)建的詞頻或者特征矩陣稀疏,大多數(shù)算法重點放在處理稀疏矩陣,效果都不好。因此短文本分類重心放在特征處理和分類算法環(huán)節(jié)上,就需要加深對深度學習模型的研究。
深度學習模型在文本分類上表現(xiàn)出了相對較好的分類效果,得益于模型在復雜特征提取和文本表示方面有著更強大的能力[4]。例如,快速文本分類FastText[5]模型,具有模型結(jié)構(gòu)簡單、訓練速度快的特點,能夠處理樣本數(shù)量大、類別標簽多的任務,文本分類任務中將整篇文檔的詞疊加得到文檔向量。卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)文本分類模型TextCNN[6],簡化了卷積層,具有參數(shù)數(shù)目少、計算量少、訓練速度快等優(yōu)勢。在循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN[7])和CNN基礎上,Lai S[8]等提出了一種循環(huán)卷積神經(jīng)網(wǎng)絡(recurrent convolutional neural network,RCNN)分類方法,汲取了RNN和CNN共同的優(yōu)勢,具有訓練時間更短、訓練速度更快、處理樣本更多等優(yōu)勢,采用雙向循環(huán)結(jié)構(gòu),能最大程度捕捉下文信息,極大提高了分類的準確率,分類效果更明顯。
近年來,隨著深度學習的發(fā)展,使得預訓練語言模型受到廣泛關(guān)注,預訓練模型是利用訓練好的詞向量初始化網(wǎng)絡文本表征問題。當前最好的預訓練模型有Bert[9]、ERNIE[10]模型。李可悅等[11]提出基于BERT的社交電商文本分類算法,采用BERT預訓練語言模型,完成社交電商文本句子層面的特征向量表示,有針對性地將獲取特征向量輸入分類器進行分類,能夠高效準確地判斷文本所描述商品的類別。邢照野等[12]提出基于改進ERNIE模型的中文文本分類,通過利用知識增強的語義表示預訓練模型生成基于上下文信息的詞向量,有效提高了中文文本分類性能。
伴隨文本分類技術(shù)的成熟,對于短文本分類技術(shù)的需求日益突顯,一些研究者陸續(xù)開始著重短文本分類技術(shù)研究。王玉燕等[13]針對短文本存在篇幅短、特征稀疏、主題多變等問題,提出基于深度學習的短文本分類技術(shù),采用CNN和RNN系列模型,結(jié)合場景需要,應用到文本分類方案中,通過實驗驗證,各個模型都表現(xiàn)出了更好的性能。呂飛亞等[14]針對短文本分類中存在特征表示高維稀疏、語義分布不明顯、上下文語意聯(lián)系不強等問題,會對信息抽取造成困擾,提出了基于BiLSTM與Bert的短文本分類方法,其中BiLSTM層獲取更多上下文不同距離的語義信息,注意力機制層對經(jīng)過的編碼數(shù)據(jù)進行轉(zhuǎn)變加權(quán)提升序列的學習任務。
段丹丹等[15]針對短文本分類算法存在的特征稀疏、用詞不規(guī)范和數(shù)據(jù)海量問題,提出一種基于Transformer的雙向編碼器表示BERT的中文短文本分類算法,使用BERT預訓練語言模型對短文本進行句子層面的特征向量表示,將獲得的特征向量輸入到Softmax回歸模型進行訓練分類。齊佳琪等[16]針對短文本分類中存在的長度短、數(shù)據(jù)海量、文本噪音大等問題,提出了ERNIE詞向量與深金字塔卷積神經(jīng)網(wǎng)絡模型的短文本分類研究,運用ERNIE實體掩碼方式捕獲詞匯和語義信息,使用卷積神經(jīng)網(wǎng)絡進行特征提取,取得了很好的分類效果。
根據(jù)以上研究,該文針對短文本存在的特征詞少、規(guī)范性少、數(shù)據(jù)規(guī)模量大的難點,提出將ERNIE預訓練模型與RCNN模型進行融合的短文本分類方法。該模型以ERNIE作為詞向量,對實體和詞語義單元掩碼,后連接Transformer[17]的Encoder層,對ERNIE層輸出詞嵌入向量進行編碼,優(yōu)化模型過擬合問題,增強泛化能力,RCNN模型對ERNIE輸入的詞向量進行特征提取,卷積層利用大小不同的卷積核提取大小不同的特征值,池化層進行映射處理,最后通過softmax進行分類,提高了中文短文本分類性能。
ERNIE模型是一種基于知識增強策略的持續(xù)學習語義理解模型,通過不斷吸收大量文本數(shù)據(jù)里的結(jié)構(gòu)、語義、詞匯等知識,實現(xiàn)模型效果不斷進化。與BERT相比,ERNIE也是由微調(diào)和預訓練兩部分組成,不同的是其預訓練過程利用了更豐富的語義知識和語義任務,在多個NLP任務上效果顯著。ERNIE模型結(jié)構(gòu)是經(jīng)過多層、雙向Transformer編碼和ERNIE詞向量構(gòu)成,如圖1所示。
圖1 ERNIE模型
由圖1模型看出,E1,E2,…,EN表示文本輸入,經(jīng)過Transformer編碼后,輸出ERNIE詞向量。在整個預訓練過程中,ERNIE使用的數(shù)據(jù)是對整個詞語進行屏蔽,從而學習到詞與實體表達。
1.1.1 ERNIE結(jié)構(gòu)詳解
ERNIE結(jié)構(gòu)是由12個Encoder組成,從輸入上看第一個輸入是一個特殊的CLS,CLS表示的是分類任務。底層是單詞輸入,其中共有768個隱藏單位,對輸入的單詞通過Mask機制進行中文實體掩碼,然后把結(jié)果傳輸?shù)较乱粋€Encoder層,最后輸出結(jié)果。
1.1.2 ERNIE Encoder模型結(jié)構(gòu)
ERNIE Encoder基本上是Transformer的Encoder部分,并且Encoder在結(jié)構(gòu)上全部是一樣的,但并不共享權(quán)重。ERNIE Encoder結(jié)構(gòu)如圖2所示。
圖2 ERNIE Encoder結(jié)構(gòu)
由圖2可以看出,最下層輸入的是embedding的向量,然后經(jīng)過一個位置信息的嵌入,輸出到多頭自注意力機制層,進行多頭自注意力計算。接下來ERNIE Encoder的輸出會經(jīng)過一層Add&Norm層,Add表示對來自多頭自注意力機制層的輸入和輸出進行殘差連接,Norm表示對輸入和輸出進行歸一化處理,歸一化處理后的結(jié)果會傳入前饋神經(jīng)網(wǎng)絡層。然后再經(jīng)過一層Add&Norm層,通過同樣的處理后會輸出歸一化的詞向量列表。
RCNN是卷積神經(jīng)網(wǎng)絡用于目標檢測的模型,其中CNN具有良好的特征提取和分類回歸性能。算法步驟如下:(1)候選區(qū)域選擇;(2)CNN特征提取;(3)分類與邊界回歸。RCNN模型如圖3所示。
1.2.1 候選區(qū)域選擇
候選區(qū)域選擇是一種傳統(tǒng)的區(qū)域提取方法,方法用的是選擇性搜索(selective search,SS[18])方法,SS用來查看現(xiàn)有的小區(qū)域,合并兩個最有可能的區(qū)域,然后重復操作,最后輸出候選區(qū)域。候選區(qū)域一般為1k~2k左右,可理解為將信息劃分為1k~2k個網(wǎng)格,之后再對網(wǎng)絡進行特征提取或卷積操作。
1.2.2 CNN特征提取
CNN特征提取可以再次提取文本中的關(guān)鍵信息及深層結(jié)構(gòu)信息,且CNN可以并行運行,能夠加快訓練速度。如圖3所示,CNN由若干個卷積層、池化層、全連接層組成。卷積層會將Encoder層輸出的向量提取出不同長度詞語的信息和結(jié)構(gòu)信息。如輸入一個句子,卷積層首先會對這個句子進行切分,假設C1~Cn為1到n個單詞,對每個單詞進行詞嵌入,可以得到X1~Xn詞向量。假設詞向量共d維,將X1~Xn詞向量拼接(X1,X2,…,Xn),那么對于這個句子便可以得到n行d列的矩陣X。
圖3 RCNN模型
文本生成的詞向量通過拼接構(gòu)建成的句子向量是二維向量,因此卷積過程可由如下公式表示:
s(i,j)=(X,W)(i,j)=
式中,X為卷積核,W為被卷積矩陣,m為對應矩陣的詞向量行數(shù),n為矩陣的維數(shù),i和j為映射后的行和列,s(i,j)為卷積和W對應的輸出矩陣的對應位置元素的值。
池化層會對卷積層獲得的特征值進行特征映射處理,由于不同尺寸的卷積核得到的特征值大小是不一樣的,因此池化層會對每個特征圖使用池化函數(shù),使得它們的維度相同,最常用的就是最大池化層,提取出特征圖句子的最大值,這樣卷積核得到的特征就是一個值,然后對所有的卷積核使用最大池化層,最后經(jīng)過全連接層把所有卷積核連接起來,就可以得到最終的特征向量。為了防止過擬合,全連接層還引入了drop out機制。
1.2.3 分類與邊界回歸
分類與邊界回歸共有兩個子步驟:第一個是對前一步的輸出向量進行分類;第二個是通過邊界回歸框回歸獲得精確的區(qū)域的信息。目的是準確定位和合并完成分類的預期目標,并避免多重檢測。
步驟1:對輸入的數(shù)據(jù)集進行預處理,得到輸入文本,記為E=(E1,E2,…,Ei,…,En),其中Ei(i=1,2,…,n)表示文本的第i個字。
步驟2:將每個Ei輸入到ERNIE預訓練層,進行Mask掩碼,然后經(jīng)過Transformer編碼器編碼后,將文本E進行序列特征化,輸出文本W(wǎng)i=(W1i,W2i,…,Wni),其中Wni表示文本中第i句中的第n個詞的詞向量,將W1~Wn詞向量拼接(W1,W2,…,Wn),得到矩陣W,即ERNIE詞向量。
步驟3:將ERNIE詞向量輸入到RCNN模型,RCNN模型經(jīng)過再次特征提取,將ERNIE輸入的詞向量W經(jīng)過卷積層操作,輸出Xi=(X1i,X2i,…,Xni),將X1~Xn詞向量拼接(X1,X2,…,Xn)得到的矩陣X,然后經(jīng)過池化層映射處理,得到統(tǒng)一的特征值,經(jīng)過全連接層連接和softmax回歸,生成新的特征向量,最后輸出。ERNIE-RCNN模型如圖4所示。
圖4 ERNIE-RCNN模型
實驗選用的是THUCNews中文新聞數(shù)據(jù)集[19],THUCNews是根據(jù)新浪新聞RSS訂閱頻道05到11年間的歷史數(shù)據(jù)篩選過濾生成,包括74萬篇新聞文檔,均為UTF-8純文本格式。從THUCNews中抽取了20萬條新聞標題,其中18萬條作為訓練集,1萬條作為測試集,1萬條作為驗證集,文本長度在20到30之間。一共10個類別,分別為財經(jīng)、家居、房產(chǎn)、教育、科技、時尚、時政、體育、游戲、軍事,每個類別數(shù)據(jù)共2萬條,數(shù)據(jù)分類均衡。
實驗采用的硬件GPU為NVIDIA-SMI,內(nèi)存容量為8 G,CPU為Intel(R)Core(TM)i7-9700KCPU @ 3.60 GHz,Python版本為3.7.7。
實驗用了文本分類中常用的評價指標:精確率、召回率、F1值,計算公式如下:
式中,TP為實際值和預測值均為正值時數(shù)據(jù)的數(shù)量,F(xiàn)P為實際值為負值、預測值為正值時的數(shù)據(jù)數(shù)量,F(xiàn)N為實際值為正值、預測值為負值時數(shù)據(jù)的數(shù)量,P為精確率,R為召回率。
為對比模型分類性能,選擇TextRNN、Transformer、TextCNN、TextRCNN、Bert、ERNIE、Bert-RCNN[20]7種模型與ERNIE-RCNN模型進行三組對比實驗,為進一步比較模型的性能,查閱了兩篇使用同樣數(shù)據(jù)集文章,進行一組簡單對比。
對比1:從圖5可以看出,ERNIE-RCNN模型準確率最高,說明分類效果最好。其中相對ERNIE和Bert-RCNN差別不大,但相對TextRNN、Transformer、TextCNN、TextRCNN模型,分類效果有明顯差別。
圖5 模型準確率的變化
對比2:從表1可以看出,ERNIE-RCNN模型在精準率、召回率、F1值這三個指標上均優(yōu)于其他模型,其中在精確率上,比TextRNN、Transformer、TextCNN、TextRCNN、Bert、ENRIE、Bert-RCNN分別提高了4.23、4.11、3.74、3.39、1.09、0.65、0.78個百分點。TextRC-NN、Transformer、TextCNN、TextRCNN模型分類結(jié)果差距不大,說明embedding部分沒有很好地提取文本特征,下游模型的變化對分類結(jié)果影響不大,而對于Transformer模型分類也并不理想,說明embedding后的下游模型是決定分類結(jié)果的重要部分。
對比3:從表2可以看到,ERNIE-RCNN模型比Bert、ENRIE、Bert-RCNN模型訓練時間更短一些,ERNIE-RCNN模型隨著數(shù)據(jù)的增加,模型訓練效果時間成本更低。
表1 不同模型的測試結(jié)果
表2 不同模型的訓練時間
對比4:齊佳琪等[16]和雷景生等[21]使用共同THUCNews中文新聞數(shù)據(jù)集,針對其論文的實驗結(jié)果與本實驗結(jié)果進行了精確率、召回率、F1值上的對比,如表3所示??梢钥闯?,ERNIE-RCNN模型在精確率、召回率上比ERNIE-BiGRU模型分別高出了0.64、0.83個百分點,比ERNIE-CNN模型分別高出了1.02、1個百分點,表明ERNIE-RCNN模型具有更好的分類效果。
表3 使用THUCNews數(shù)據(jù)集模型比較
在解決中文短文本存在難點時,提出一種基于ERNIE-RCNN模型的中文短文本分類方法,利用ERNIE預訓練模型提取文本特征信息,輸出對應的詞向量,將輸出結(jié)果作為RCNN模型的輸入進行訓練。從實驗結(jié)果表明,ERNIE-RCNN模型在測試集上具有更高的準確率,分類性能更強。不足之處是訓練時間效果并不明顯,還需進一步提高模型訓練性能,縮短訓練時間。