關立剛,陳平華
(廣東工業(yè)大學計算機學院,廣州510006)
隨著互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)的快速發(fā)展,每天產(chǎn)生的文本數(shù)據(jù)呈爆炸式增長[1]。由于文本數(shù)據(jù)的混亂,很難通過手工方式進行組織和區(qū)分。文本分類是計算機應用于根據(jù)特定的分類系統(tǒng)或標準自動分類文本集[2-3]。在文本分類中,如何通過預處理獲取文本特征信息,一直是學界研究的熱點問題[4]。隨著深度學習技術的飛速發(fā)展,相比較于傳統(tǒng)的文本分類算法如樸素貝葉斯、支持向量機(Support Vector Machine,SVM)等[5-8],深度學習在文本分類上的應用所取得了更好的效果。
卷積神經(jīng)網(wǎng)絡(CNN)是一種前饋神經(jīng)網(wǎng)絡,最初受到貓眼視覺機制的啟發(fā)[9],它的神經(jīng)元可以響應部分覆蓋范圍的周圍區(qū)域,并且在圖像識別和語音識別等任務中具有出色的性能[10]。與其他深度學習結(jié)構(gòu)相比,CNN 需要的參數(shù)少。Kalchbrenner 提出將CNN 應用于自然語言處理并設計動態(tài)神經(jīng)網(wǎng)絡(DNN)來處理不同長度的文本[11];Kim 將經(jīng)過預處理的詞向量作為輸入,利用卷積神經(jīng)網(wǎng)絡實現(xiàn)句子級別的分類任務[13]。
對于序列化數(shù)據(jù)的輸入,循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)能夠獲取文本的全局特征信息[14],類似于人擁有記憶能力。在RNN 中,對于輸入的序列數(shù)據(jù),讀取的當前單詞輸出與之前的輸出有關聯(lián)。但是在傳統(tǒng)的RNN 中,會出現(xiàn)梯度消失和梯度爆炸等問題[15]。
為了解決梯度爆炸問題,可在訓練過程中使用梯度裁剪(gradient clipping),即在訓練過程中,如果反向傳播的梯度大于所給的定值,將梯度進行同比縮放[15]。在解決梯度消失問題時,提出了長短期記憶(LSTM)。作為RNN 的子類,LSTM 不僅繼承了RNN 模型的優(yōu)點,而且解決了RNN 的梯度消失問題。而且,它具有更強的“記憶能力”,可以更好地獲得文本的全局特征信息[17]。以LSTM 為基礎的雙向循環(huán)神經(jīng)網(wǎng)絡(Bidirectional LSTM,BiLSTM)不僅可從前往后讀取文本,同時也從后往前讀取,能進一步獲取文本的全局特征,從而提高文本分類的準確率[18]。
本文的主要貢獻如下:
(1)將CNN 與BiLSTM 進行結(jié)合。在提取文本特征信息時,既可以讓CNN 提取文本局部特征,又可以讓BiLSTM 提取文本全局特征。
(2)結(jié)合注意力(Attention)機制,可以進一步獲取對文本分類結(jié)果產(chǎn)生影響的重點單詞的特征。
(3)引入殘差連接,從而克服神經(jīng)網(wǎng)絡模型層數(shù)過深時,神經(jīng)網(wǎng)絡的退化問題。
LSTM 作為升級版的循環(huán)神經(jīng)網(wǎng)絡,其基本神經(jīng)元由一個記憶單元(Constant Error Carrousel,CEC)和三種門(Gate)結(jié)構(gòu)組成,其中CEC 是LSTM 的重點。CEC是一種自連接單元,可保留持久的記憶信號,使LSTM能夠編碼遠距離上下文歷史信息[19]。LSTM 模型中三種門分別是遺忘門(Forget Gate)、輸入門(Input Gate)和輸出門(Output Gate)。LSTM 依靠門信號對信息進行添加和刪除,其中信號值1 表示“讓所有信息通過”、信號值0 表示“不讓任何信息通過”。圖1 是LSTM 神經(jīng)元的網(wǎng)絡結(jié)構(gòu)圖。
LSTM 中遺忘門表達式:
LSTM 中輸入門表達式:
LSTM 中CEC 更新表達式:
LSTM 中輸出門表達式:
表1 LSTM 符號說明
作為傳統(tǒng)的序列模型,LSTM 通常只在一個方向上讀取文本。圖3 表示從后往前讀取文本的后向LSTM模型。
圖1 LSTM模型
圖2 模型
圖3 模型
由于自然語言具有結(jié)構(gòu)依賴性,依靠實現(xiàn)文本分類將忽略單詞的語境含義[15],即文本單詞之間的關系是雙向的。以從前往后讀取文本的模型為例,對于讀取的當前詞而言,不僅僅之前讀取的單詞為其提供信息,之后的單詞也為其提供信息。例如,我身體現(xiàn)在很難受,所以我打算__一天。只依據(jù)“難受”,可以推出我打算“請假”、“去醫(yī)院”、“休息”等。但如果加上后面的“一天”,就排除了“去醫(yī)院”,能選擇的范圍就變小了,類似“請假”、“休息”之類的被選擇概率就會更大。因此,結(jié)合兩種模型的雙向信息流模型,雙向LSTM(Bidirectional LSTM,BiLSTM),可以更好地表示文本特征[20]。BiLSTM 模型如圖4 所示。
圖4 BiLSTM模型
雖然BiLSTM 模型可用于提取文本中文本的全局信息特征,但是無法獲得文本的局部信息特征。并且文本向量的特征不能進一步高維特征表示。因此卷積神經(jīng)網(wǎng)絡和BiLSTM 模型進行融合。利用卷積神經(jīng)網(wǎng)絡對BiLSTM 模型獲取的文本信息特征矩陣和文本的輸入信息矩陣進行拼接得到新的特征矩陣,對其進行卷積獲取文本信息特征的進一步抽取。解決了BiLSTM 無法獲取文本的局部特征和單卷積神經(jīng)網(wǎng)絡(CNN)模型無法得到單詞在上下文語義的問題。圖5是BiLSTM-CNN 模型的結(jié)構(gòu)圖。
圖5 CNN模塊
在圖5 中,xj(j=1,…,n)是文本中的第j 個單詞的輸入向量,其維度為K。和是第j 個單詞的輸入向量xj經(jīng)過BiLSTM 模型得到的特征向量,其維度分別是和。在圖5 中,將拼接后的向量作為該單詞的特征向量,其維度為,作為BiLSTM-CNN 模型的輸出。同時將其作為CNN 模塊的輸入向量,對其進行一維卷積。CNN 模塊中的濾波器的數(shù)目為K。在圖5 中,使用K 個大小為的濾波器,padding 形式為same,得到了K 個特征向量。當然,濾波器 的 大 小 可 以 為 其 他,例 如,等。
為了實現(xiàn)文本的深度挖掘,我們可以通過多層神經(jīng)網(wǎng)絡的結(jié)果對BiLSTM-CNN 模型進行分層并挖掘文本的深層特征[10]。但當神經(jīng)網(wǎng)絡參數(shù)過多時,會出現(xiàn)梯度消失和高層網(wǎng)絡參數(shù)更新停滯等問題,并且基于BiLSTM-CNN 模型的堆疊得到的神經(jīng)網(wǎng)絡無法獲取對文本分類結(jié)果產(chǎn)生影響的重點單詞的特征。因此本文針對BiLSTM-CNN 模型堆疊所產(chǎn)生的上述兩個問題提出了注意力殘差雙向LSTM(Deeply Attention Hierarchical BiLSTM-CNN ResNet,DAHBLCR)模型進行改進。在使用了LSTM 取代了傳統(tǒng)的RNN 之后,反向傳播中梯度消失的問題已不存在。但是,隨著網(wǎng)絡模型堆疊的層數(shù)過深,無法解決網(wǎng)絡的退化問題。引入殘差連接之后,可以解決網(wǎng)絡模型過深時,每個層只有少量的隱藏單元對不同的輸入改變它們的激活值,而大部分隱藏單元對不同的輸入都是相同的反應??梢詭椭柧毟顚哟蔚纳窠?jīng)網(wǎng)絡。注意力機制會決定每個特征向量對分類結(jié)果的貢獻。例如,中國成功研發(fā)出一戰(zhàn)略合金,或?qū)⒋龠M量產(chǎn)超音速導彈?!皩棥睂τ谲娛滦侣剚碚f屬于重點單詞,而其他單詞為非重點單詞。
圖6 為DAHBLCR 模型結(jié)構(gòu)圖,在整個堆疊的深度神經(jīng)網(wǎng)絡模型中,每一層由BiLSTM-CNN、ResNet 和Attention 三個模塊組成。Attention 模塊如圖7 所示。
為了解決挖掘文本的深層特征信息,網(wǎng)絡層數(shù)而導致的梯度消失以及高層網(wǎng)絡中的特征很難有效的傳遞,而引入殘差網(wǎng)絡連接。如圖6 所示,在ResNeti模塊中輸入是xi-1和ci,輸出為
對于深度神經(jīng)網(wǎng)絡中第i 層中的BiLSTM-CNNi模塊來說,殘差網(wǎng)絡在模塊中的作用可以表示為:
圖6 Deeply Attention Hierarchical BiLSTM-CNN ResNet(DAHBLCR)模型
為了獲取對分類結(jié)果產(chǎn)生影響的重點單詞的特征,在深度神經(jīng)網(wǎng)絡第i 層中加入Attentioni模塊,如圖7 所示。在Attentioni模塊中,輸入是,輸出是。其中xi也是深度神經(jīng)網(wǎng)絡模型中第i+1 層的輸入。在Attentioni模塊中,注意力模型在模塊中的作用通過MLPi結(jié)構(gòu)表現(xiàn)出來。具體表示為:
式中,Wi為第i 層獲取的第j 個單詞的特征向量經(jīng)過一個神經(jīng)網(wǎng)絡獲取其隱層表示向量的狀態(tài)轉(zhuǎn)移參數(shù)矩陣,bi和對應的偏置項。vi為隨機初始化的權值向量,用于對第j 個單詞的隱層表示向量進行Softmax 標準化的參數(shù)向量。為第i 層獲中的第j 個單詞的權重。Wi,bi,vi的更新由模型訓練時最小化損失函數(shù)反向傳播所獲得。
圖7 Attentioni 模塊
在文本分類訓練和測試中,本文將上面提出的DHABLCR 引入到文本分類模型中。如圖8 所示。
圖8 文本分類模型
對于訓練中的文本矩陣w={w1,w2,w3,…,wn}由n的單詞組成,并且每個單詞是由分詞之后的詞向量經(jīng)過Word2Vec 獲得的128 維的詞向量。整個深度神經(jīng)網(wǎng)絡(DHABLCR)模型的層數(shù)為m,最終的輸出為,其中Max Pooling 層對輸入的序列xm中的第j 個單詞的輸入特征向量選擇最高值作為第j 個單詞的顯著特征,將上述n 個顯著特征拼接成一個n 維的向量,作為文本的顯著特征向量。最后,經(jīng)過一個Softmax 層進行分類。
為了驗證模型的有效性與泛化能力,使用的數(shù)據(jù)集如下:
數(shù)據(jù)集1:20Newsgroups 數(shù)據(jù)集,該數(shù)據(jù)集的新聞主題個數(shù)為20 個,新聞文檔的個數(shù)為20000 左右。
數(shù)據(jù)集2:復旦大學收集的開源數(shù)據(jù)集。其中類別數(shù)為20,本文從中選取了40000 條數(shù)據(jù)。
數(shù)據(jù)3:IDMB,一個大型的電影評論數(shù)據(jù)集,其中共有50000 條電影評論,每條評論含有積極和消極兩個情感標簽。
并將上述3 份數(shù)據(jù)集,每份數(shù)據(jù)集劃分為訓練集和測試集,大小比例為7:3。
表2 模型的參數(shù)
對于本文實驗中的中文數(shù)據(jù),采用的是Jieba 工具包對原始文本數(shù)據(jù)進行分詞,英文數(shù)據(jù)直接使用空格進行切分。
將3.2 得到的分詞,經(jīng)過預訓練好的Word2Vec 模型,將每個詞映射成200 維的詞向量。
實驗環(huán)境:Ubuntu 16.04 操作系統(tǒng),CPU 為i7 6800K,顯卡為GTX 1080ti,內(nèi)存為16G Kingston 駭客神條DDR4 3000,以及SSD 硬盤為512G 浦科特M7VC SATA3 固態(tài)。
開發(fā)工具為:主要為TensorFlow,其他的為numpy、pandas、scipy、scikit-learn。
本文比較了文本分類與其他文獻方法的準確性。
表3 20 Newsgroups 數(shù)據(jù)集
表4 復旦大學數(shù)據(jù)集
表5 IDMB 數(shù)據(jù)集
由表3-5 可知,基于上述所用的數(shù)據(jù)集,本文提出的模型不僅與基準模型相比,如CNN、BiLSTM、CLSTM 和Attention Based LSTM,還與傳統(tǒng)的機器學習算法進行對比,如SVM 和LDA。實驗結(jié)果表明,本文提出的模型在與其他模型對比中提高了文本分類的準確率,具有更優(yōu)越的性能。
本文提出一種基于卷積神經(jīng)網(wǎng)絡和BiLSTM 網(wǎng)絡的深度文本表示模型,并將其用于新聞分類任務中。該模型既能夠利用BiLSTM 雙向讀取文本的全局特征,又可以利用卷積神經(jīng)網(wǎng)絡獲取文本的局部特征。同時引入注意力機制使得能夠獲取文本中重點單詞的特征,同時引入殘差網(wǎng)絡,使得本文提出的網(wǎng)絡模型在堆疊多層是不會出現(xiàn)梯度消失以及高層網(wǎng)絡中的參數(shù)更新停滯。實驗結(jié)果證明了本文提出的模型在文本分類中遠優(yōu)于傳統(tǒng)機器學習模型、單CNN 模型和單BiLSTM 等基準模型。
未來研究的重點是網(wǎng)絡模型層數(shù)與文本分類準確度的關系,以及模型在小數(shù)據(jù)量的微博話題分類上的應用。