梁順攀,豆明明,于洪濤,鄭智中
(燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島 066004)
如何有效進行文本特征抽取是文本分類研究的核心問題之一。近些年,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)等深度學(xué)習(xí)技術(shù)在文本分類領(lǐng)域取得了良好的效果。CNN具有快速捕獲局部特征提取能力,并且能很好學(xué)習(xí)復(fù)雜、高維和非線性映射關(guān)系。RNN能把近鄰位置信息進行有效整合[1],可以更好地利用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)無法建模的信息,處理與時間序列高度相關(guān)的問題[2],具備提取文本序列全局特征的優(yōu)勢。目前,注意力模型(attention model,AM)已經(jīng)成為神經(jīng)網(wǎng)絡(luò)中一個最新的研究熱點,文本分類任務(wù)中,主要作用在文本特征表示,它能夠?qū)﹃P(guān)鍵詞或重點短語賦予更高的權(quán)重,更好挖掘詞對之間隱含的關(guān)系,使得分類效果更好。
綜合考慮以上3種模型的優(yōu)勢,本文提出一種文本分類模型——TC-ABlstm模型。
隨著深度學(xué)習(xí)的不斷發(fā)展,用于文本分類的神經(jīng)網(wǎng)絡(luò)算法相較于傳統(tǒng)的分類方法,在分類效果有了很大提升。Kim等提出了基于CNN的分類模型,來解決文本情感分類問題,與傳統(tǒng)模型相比,該模型能自動快速提取文本特征,去除了繁雜人工設(shè)計特征,有效減輕了工作量,使得分類效果更好。Cao等[3]以微博數(shù)據(jù)為研究對象,結(jié)合CNN和支持向量機模型,使得分類效果有所提升;魏勇等[4]考慮到單詞語義對于文本分類的影響,對于詞向量的表示進行改進,提出一結(jié)合關(guān)聯(lián)語義和CNN的文本分類方法,取得較優(yōu)的結(jié)果。以上方法雖然在文本分類效果上均有所提升,但并未考慮到CNN模型提取的是文本信息的局部特征,容易遺失句子和文本中的相關(guān)信息,影響結(jié)果的準(zhǔn)確性。
捕獲文本的全局特征,能更好理解文本的含義。Socher提出一種基于RNN的分類模型,該模型主要通過遞歸計算來學(xué)習(xí)句子的序列特征。但RNN存在梯度消失和維度爆炸的問題。Cheng等[5]將RNN的變體長短期記憶(long short-term memory,LSTM)神經(jīng)網(wǎng)絡(luò)模型應(yīng)用在文本分類上,使得分類效果得到明顯提升,并且規(guī)避了以上出現(xiàn)的問題。由于句子具有結(jié)構(gòu)依賴性,當(dāng)前單詞不僅需要其前面單詞提供輔助信息,后面單詞也需要提供輔助信息,因此文本分類需要考慮上下文結(jié)構(gòu),而LSTM只考慮到單向信息,這對于文本分類準(zhǔn)確率會產(chǎn)生一定的影響。
注意力機制的核心是在有限資源下學(xué)習(xí)并關(guān)注最有效的信息,它是深度學(xué)習(xí)技術(shù)中過去近幾年最具價值的突破之一,得到了很多研究者的青睞。Bahdanau首次在機器翻譯任務(wù)種應(yīng)用了注意力機制,并取得良好的效果。wang等[6]在情感分類任務(wù)中提出一種注意力機制和LSTM的網(wǎng)絡(luò)模型,引入注意力機制主要是給不同的aspect分配不同的權(quán)重,以此提高情感分類的準(zhǔn)確性。Vaswani等[7]使用自注意力機制(Self-Attention)來獲取句子表示的方法并用于機器翻譯,使得翻譯性能更好。汪嘉偉等[8]將自注意力機制和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,捕捉句子局部特征和長距離依賴關(guān)系,使得分類效果有進一步提升。自注意力機制不需要依靠額外的信息,就能捕捉文本數(shù)據(jù)或特征的內(nèi)部相關(guān)性。但其本身不具備捕獲時序信息的特點,往往需要加入一個position embedding(即隨機生成的位置向量),才能更好學(xué)習(xí)句子的語序。
針對以上所提出的問題,進一步提高分類效果,本文分別做出以下改進:為了增加CNN的局部特征提取能力,本文基于Kim 提出的Text_CNN模型進行改進,在卷積層中引入Selu[9]函數(shù)作為其激活函數(shù),并在池化層采用K-max pooling方式代替常用的最大池化策略;再結(jié)合自注意力機制和BiLSTM,來獲取文本的長期依賴關(guān)系。構(gòu)建一種用于文本分類的并行神經(jīng)網(wǎng)絡(luò)模型TC-ABlstm。
本文聯(lián)合改進的卷積神經(jīng)網(wǎng)絡(luò)、BiLSTM模型以及自注意力機制3種模型的優(yōu)點,構(gòu)建了一個用于中文新聞分類的TC-ABlstm混合神經(jīng)網(wǎng)絡(luò)模型,如圖1所示。該模型在特征提取方面由兩部分構(gòu)成。
圖1 基于改進的Text_CNN和自注意力 BiLSTM的并行神經(jīng)網(wǎng)絡(luò)模型
第一部分:改進Text_CNN用于提取文本的局部特征。在文本分類中,CNN中常用ReLU作為激活函數(shù),與一般的線性和非線性函數(shù)相比,其處理方式更簡單,表達能力強,但易導(dǎo)致神經(jīng)元死亡。本文采用更新的Selu激活函數(shù)進行替換,提高模型魯棒性。另外,為了增強模型提取特征的能力,在池化層采用K-max pooling方式代替最大池化,盡可能保留更多有價值的特征。
第二部分:采用自注意力機制雙向長短期記憶模型BiLSTM解決長距離依賴問題。自注意力機制能夠?qū)τ袃r值的詞賦予更高的權(quán)重,增強詞對之間的語義關(guān)系,但其本身捕獲不到時序信息,考慮到循環(huán)神經(jīng)網(wǎng)絡(luò)處理序列數(shù)據(jù)的天然優(yōu)勢,其變形BiLSTM信息記憶能力更強,能夠很好地利用上下文特征信息和對非線性關(guān)系進行擬合,保留文本的順序信息的特點,將其代替自注意力模型通常采用求和的方式獲取句子的向量表示,更好表達句子的語義關(guān)系。
最后本文將兩種模型的優(yōu)勢相結(jié)合,保證提取特征的全面性,提高文本分類的準(zhǔn)確度。下面是對模型的展開描述。
在輸入神經(jīng)網(wǎng)絡(luò)模型之前,需要將原始的輸入文本信息轉(zhuǎn)化為其需要的向量形式,以便于后面的模型對特征進行抽取等操作。本模型采用已經(jīng)訓(xùn)練好的詞向量對本模型的embedding層進行初始化,設(shè)給定一個長度為n的句子L={l1,l2,l3,…,ln}, 其中詞li經(jīng)過embedding層后映射成為一個詞向量表示,即Wi={w1,w2,…,wj,…,wd}, 其中d為詞向量的維度,拼接后生成該句子的詞向量矩陣為:S={W1,W2,…,Wj,…Wn}, 其矩陣大小為n*d。在詞嵌入矩陣中,每個詞語都有與自己相對應(yīng)的詞向量表示。
CNN是深度學(xué)習(xí)的經(jīng)典算法之一,它是一種前饋神經(jīng)網(wǎng)絡(luò),包含卷積計算且具有一定的深度結(jié)構(gòu)[10]。CNN具有局部感知和權(quán)值共享的特點,減少權(quán)值數(shù)量,降低網(wǎng)絡(luò)模型的復(fù)雜度,并且具有強大的特征提取功能。本文改進的Text_CNN模型如圖2所示,包括輸入層、改進的卷積層和池化層、全連接層。
圖2 改進的Text_CNN
由輸入的詞向量矩陣可知S的大小為n*d,和卷積核F進行卷積操作,得到特征值ci, 其中,i為第i個特征值,則提取局部特征的公式如下
ci=f(F·Si+h-1+b)
(1)
(2)
可以看出,在x≤0 (即負半軸上)得到一個較小斜率的函數(shù),不再簡單置零,以此解決神經(jīng)元死亡問題,從而保留特征負值信息,增強對有效特征信息的學(xué)習(xí)能力。同時,Selu函數(shù)中引入了自歸一化的屬性,使模型即使在噪聲和擾動的情況下,仍可以保證其準(zhǔn)確性,使神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)更具魯棒性,從而提高分類的準(zhǔn)確性。
為充分提取文本局部特征,本文設(shè)置3個不同的卷積窗口,分別為2,3,4的卷積核,每個卷積核數(shù)均為50,其掃描整個詞向量矩陣時的步長設(shè)置為1,由以上的計算可知,通過卷積操作得到特征圖C為
C=(c1,c2,…,cn-k+1)
(3)
經(jīng)過卷積操作后,本文在CNN的池化層采取K-max pooling策略。由于CNN卷積層輸出的特征圖中存在至少一個重要特征,常用的最大池化操作針對每個濾波器的特征映射圖只保留最大值特征,無法對多個重要特征進行選取,容易造成特征信息丟失。因此選用K-max pooling池化方式,即在所有特征值中選取前k個重要特征供后續(xù)使用,減少重要特征丟失。其計算公式如下
Di=top_k_max(C)
(4)
其中,k=3, 為提取文本的前3個重要信息。
2.4.1 自注意力機制
近幾年,注意力機制在自然語言處理、圖像識別及語音識別等領(lǐng)域取得重要突破,是專家學(xué)者根據(jù)人類的選擇性視覺注意力機制而提出的。人們在觀察圖像時,會根據(jù)以往的經(jīng)驗獲得需要重點關(guān)注的內(nèi)容,并會對這一內(nèi)容投入更高的關(guān)注度,以期待獲得更多的信息,它的核心就是利用有限的注意力資源從眾多的信息中篩選出對當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息。同理,當(dāng)人們閱讀某某篇文章時,會選擇性地瀏覽比較重要的詞或句子,關(guān)注其中有價值的信息,而注意力機制的作用即過濾掉沒有價值的內(nèi)容,讓其能夠更好捕獲到有價值的信息,因此在文本分類中加入注意力機制具有重要的研究意義。
從文獻[11]中,我們了解到傳統(tǒng)注意力模型使用詞級別注意力機制方法生成句子表示的一維向量,只能以某個特定視角對句子進行語義表示,從而會產(chǎn)生網(wǎng)絡(luò)中間損失大量信息的情況。與傳統(tǒng)的注意力機制不同的是,自注意力機制通過映射為二維矩陣來表征句子信息的方式進行句子建模,獲得了語義信息更加豐富的特征表示,如圖3所示。
圖3 傳統(tǒng)注意力機制與自注意力機制
自注意力機也被稱為內(nèi)部注意力(intra-attention),是基于注意力機制的一種改進,其特點是學(xué)習(xí)句子內(nèi)部的詞依賴關(guān)系,通過一定的計算過程直接將句子中任意兩個單詞的關(guān)系聯(lián)系起來,不需要依靠額外添加信息來計算權(quán)重關(guān)系,其核心在于點乘注意力[11],本文采用的點乘注意力公式定義如下
(5)
雖然自注意力機制能夠?qū)W習(xí)到任意詞對之間的關(guān)系,但并不能捕捉序列的順序,假如將句子中詞的順序打亂,那么自注意力機制學(xué)到的是一樣的結(jié)果,往往需要添加position embedding獲取位置信息,來獲取句子的序列??紤]到BiLSTM捕獲句子時序性的天然優(yōu)勢,本文將兩者很好地結(jié)合起來,即能捕捉到貢獻程度較大詞,又能充分學(xué)習(xí)到詞對的語義關(guān)系,同時也保證了句子中詞語的序列關(guān)系。
2.4.2 BiLSTM模型
RNN是處理自然語言中長序列信息最常用的一種模型,用于提取文本的全局特征。但傳統(tǒng)的RNN存在梯度消失、維度爆炸的問題,LSTM是為了解決此問題而被提出。LSTM的模型結(jié)構(gòu)主要由3個門控(遺忘門、輸入門和輸出門)單元和一個記憶單元(constant error carrousel,CEC)組成,其作用分別是:遺忘門用來控制上一時刻單元中存儲的歷史信息,輸入、輸出門分別控制網(wǎng)絡(luò)的輸入與輸出。則該神經(jīng)元在t時刻的更新計算過程如下
ic=σ(Wi·[ht-i,xt]+bi)
(6)
ot=σ(Wo·[ht-i,xt]+bo)
(7)
ft=σ(Wf·[ht-i,xt]+bf)
(8)
ct=ft·ct-1+ic·tanh(Wc·[ht-i,xt]+bc)
(9)
ht=ot·tanh(ct)
(10)
其中,it,ot,ft分別是在t時刻的輸入門、輸出門和遺忘門,σ是sigmoid函數(shù),Wi,Wo,Wf,Wc代表3個不同門的權(quán)重矩陣和當(dāng)前輸入單元狀態(tài)權(quán)重矩陣。bi,bo,bf,bc代表3個不同門的偏置,和當(dāng)前輸入單元偏置項。其中,ct-1表示上一個時刻c的值,ct表示對記憶單元的更新,ht為當(dāng)前的輸出結(jié)果。
由于句子具有結(jié)構(gòu)依賴性,單詞與單詞之間的關(guān)系都是雙向的,一個單詞會受到前后單詞影響,因此本文采用的是RNN的變種雙向長短期BiLSTM模型,如圖4所示。
圖4 BiLSTM結(jié)構(gòu)
從圖4中可以看到,BiLSTM主要由LSTM單元組成,其正向和反向的隱藏狀態(tài)融合了詞本身含義以及其上下文語義,故正向和反向LSTM隱藏狀態(tài)的拼接可以更好表示單詞的語義。
通常情況下,自注意力機制要想獲得句子的向量表示,經(jīng)常采用加權(quán)求和的方式。為了能更好表達句子的語義,本模型在自注意力機制后,直接采用BiLSTM來捕獲句子的向量表示,如此即能解決信息冗余問題,又能很好捕獲到句子序列關(guān)系。其提取特征設(shè)置如下:
(11)
其中
通過BiLSTM模型最終的輸出表示是:h={h1,h2…h(huán)n}。
然后,通過改進的Text_CNN和自注意力BiLSTM模型分別完成對文本的特征提取后,將捕獲的局部和全局特征拼接融合形成文本新的特征表示。兩種特征融合的公式如式(12)
u=o⊕h
(12)
式中:u表示融合后的新特征,⊕代表拼接操作。
最后,利用softmax函數(shù)進行計算,輸出并行神經(jīng)網(wǎng)絡(luò)模型TC-ABlstm的分類結(jié)果,完成文本分類。
本實驗是在Anaconda平臺上設(shè)計實驗,采用keras框架完成的,后端采用Tensrflow。其它配置見表1。
為了檢驗本文所構(gòu)建模型的優(yōu)越性,本文在Sogou Lab提供的全網(wǎng)新聞數(shù)據(jù)集SougouC和復(fù)旦大學(xué)文本分類語料庫2個數(shù)據(jù)集上進行實驗對比,見表2。
表1 實驗環(huán)境配置
表2 語料集概要情況
SogouC中的數(shù)據(jù)是在2012年6月~7月,從新浪、網(wǎng)易、騰訊以及鳳凰資訊等若干個新聞?wù)军c采集,并且提供URL和正文信息,包括18個類別,本文采用其中9個類別作為本實驗數(shù)據(jù),其中70%作為訓(xùn)練集,30%作為測試集。
在輸入方面,本文使用預(yù)先訓(xùn)練好的Sougou news進行詞向量初始化,詞向量維度為200,文本長度設(shè)置為500,過長的文本數(shù)據(jù)會導(dǎo)致運行速度慢,影響分類效果。使用卷積窗口大小為2、3、4的卷積核,每種窗口的卷積數(shù)量均為50,采用k-max的池化策略,為能提取到更多有價值有效的特征,將k值設(shè)為3;設(shè)置BiLSTM中隱藏層的節(jié)點數(shù)為256;為避免過擬合,經(jīng)多次實驗設(shè)置epoch參數(shù)為5,batch_size設(shè)置為64。
(13)
將以下5種模型進行對比實驗,驗證其改進模型的有效性。
(1)Text_CNN:該模型是Kim所提出的,輸入部分使用預(yù)訓(xùn)練的詞向量,并通過卷積層、池化層和softmax輸出層來進行文本分類。
(2)PCNN(改進的Text_CNN):在(1)中的基礎(chǔ)上進優(yōu)化,針對卷積層和池化層進行改進,引入了Selu激活函數(shù)和k-max池化策略,并且所有的參數(shù)設(shè)置均與(1)相同。
(3)ABlstm模型:為了獲取文本的長期依賴性,提出的聯(lián)合自注意力機制和Bilstm模型。主要考慮從單模型的角度進行對比,驗證模型的有效性。
(4)TC-ABlstm:該模型為本文所提出的模型,將PCNN模型和ABlstm模型相結(jié)合,具有充分提取文本特征的特點,最后采用softmax函數(shù)進行分類。
(1)首先進行Text_CNN模型與PCNN(改進的Text_CNN)模型的分類結(jié)果進行比較:設(shè)置其所有的參數(shù)均相同,以Text_CNN模型為標(biāo)準(zhǔn),以準(zhǔn)確率和時間作為評判標(biāo)準(zhǔn),在兩個數(shù)據(jù)集上的實驗結(jié)果,如圖5~圖6所示。
圖5 SogouC語料集上準(zhǔn)確率對比
圖6 FD語料集上準(zhǔn)確率對比
從圖5~圖6可以看到,隨著迭代次數(shù)的增加,模型逐漸趨向平穩(wěn)狀態(tài),我們在參數(shù)設(shè)置相同的情況下,基于Text_CNN改進的模型PCNN準(zhǔn)確率要比原Text_CNN的準(zhǔn)確率高。在搜狗數(shù)據(jù)集上,PCNN的準(zhǔn)確率為83.94%,而Text_CNN的準(zhǔn)確率為81.97%,提高了約1.9%。由圖6可知在復(fù)旦文本數(shù)據(jù)集上,Text_CNN的準(zhǔn)確率達到了94.15%,而PCNN的準(zhǔn)確率達到了95.28%,相比較Text_CNN也有一定的提高。由此可見,在改進的模型中,引入的Selu激活函數(shù)和K-max池化策略,能夠有效提高CNN捕獲局部特征的能力,提高分類的準(zhǔn)確率。
由表3可知,數(shù)據(jù)質(zhì)量相同的情況下,改進的PCNN要比Text_CNN用時更少,不僅使準(zhǔn)確率有所提升,其效率也有得到了提高。
表3 運行時間/s
(2)為了更好了解本文提出的TC-ABlstm并行神經(jīng)網(wǎng)絡(luò)模型性能,依次和PCNN以及ABlstm單模型進行比較,見表4。
表4 準(zhǔn)確率對比/%
從表4中,我們可以看到,在兩個語料集上,基于自注意力機制和BiLSTM的模型進行文本分類的準(zhǔn)確率要高于PCNN模型,表明自注意力機制和BiLSTM的模型相比卷積神經(jīng)網(wǎng)絡(luò)來說更適合對較長文本進行處理。同時表中也顯示出在復(fù)旦文本數(shù)據(jù)集上,TC-ABlstm的準(zhǔn)確率達到98.61%,高于準(zhǔn)確率為95.28%的PCNN模型3.33%,同時相較于ABlstm的準(zhǔn)確率提升了1%左右。在搜狗數(shù)據(jù)集中,TC-ABlstm模型的分類準(zhǔn)確率達到了91.59%,比PCNN模型的準(zhǔn)確率提高6%左右,對比于ABlstm模型的87.14%提升4.45%。由此可見,本文所構(gòu)建的TC-ABlstm模型的準(zhǔn)確率均高于單個文本分類的模型,原因是單個模型在提取特征方面都有一定的局限性,兩者的優(yōu)勢結(jié)合對于特征提取更加全面。
(3)在搜狗數(shù)據(jù)集下,本文所提出的模型與其它的模型進行比較,見表5。
從表5中綜合分析,以上3種模型均為混合模型,TC-ABlstm相比其它兩種模型,準(zhǔn)確率均有所提升。這是因為本文模型不僅對CNN進行改進,增加了其提取特征的能力,同樣融合自注意力機制和BiLSTM模型捕獲了上下文語義信息,驗證該模型相對來說具有一定的優(yōu)越性。
表5 搜狗數(shù)據(jù)集
綜上幾種文本分類方法的對比可知,本文對于CNN模型進行優(yōu)化,更有利于CNN對于文本局部特征的提取。同時引入自注意力雙向長短時記憶模型ABlstm彌補CNN提取特征時忽略文本上下文語義以及句子全局特征提取不充分的缺點,有利于提高文本分類的準(zhǔn)確性。
本文提出了用于文本分類的并行神經(jīng)網(wǎng)絡(luò)模型TC-ABlstm。該方法對傳統(tǒng)的CNN進行改進,使用Selu激活函數(shù)代替Relu激活函數(shù),并在池化層采取K-max池化策略,增強了對文本局部特征的提取的能力;同時聯(lián)合自注意力機制和雙向長短期神經(jīng)網(wǎng)絡(luò)BiLSTM模型來提取文本全局特征的優(yōu)勢,增強對文本上下文的理解。實驗結(jié)果表明,該方法對于分類效果的性能有一定的提升。本文提出的模型主要集中在提高特征提取能力這一方面,為了使模型更加優(yōu)化,接下來從兩方面進行改進:首先,針對中文文本特征提取中,詞粒度表達不精確的情況,利用文本更細粒度的特征,增加文本表示的多樣性,提升文本表示的準(zhǔn)確性;其次,考慮到長文本進行分類時,文中存在很多無效的干擾信息,采用壓縮或提取主題句的方式,提前過濾掉一些冗余信息,保證精確度的同時,能夠保證運算效率。