涂文博,袁貞明,俞 凱
(杭州師范大學(xué) 信息科學(xué)與工程學(xué)院,杭州 311121)
(移動健康管理系統(tǒng)教育部工程研究中心,杭州 311121)
在自然語言處理(Natural Language Processing,NLP)領(lǐng)域,文本分類是一項重要任務(wù),具有廣泛的應(yīng)用場景,比如知識問答、文本主題分類、文本情感分析等.很多專家學(xué)者提出不同方法來解決文本分類問題,文獻[1]提出基于規(guī)則特征的支持向量機(Support Vector Machines,SVM)模型對問答系統(tǒng)的問題進行分類,文獻[2]樸素貝葉斯(Na?ve Bayes)與SVM 相結(jié)合,提出了一種簡潔高效的情感和主題分類模型.文獻[3]使用三支決策方法提取文本特征,提高了基于規(guī)則特征的文本分類模型的準(zhǔn)確率.隨著深度學(xué)習(xí)技術(shù)發(fā)展迅速,不同的神經(jīng)網(wǎng)絡(luò)模型開始被應(yīng)用到文本分類任務(wù)當(dāng)中,以循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[4]為代表的序列模型(Sequence Models)被大規(guī)模使用[5,6].文獻[7]把注意力模型添加到序列模型中,完成文本分類任務(wù)并獲得比較好的結(jié)果.文獻[8]將一直用于圖像處理的卷積神經(jīng)網(wǎng)絡(luò)(Conventional Neural Network,CNN)[9]首次應(yīng)用到文本分類領(lǐng)域,并獲得較好的結(jié)果.之后,文獻[10-12]將卷進神經(jīng)網(wǎng)絡(luò)模型做了不同程度的改變,用于文本分類任務(wù).本文對文本分類領(lǐng)域使用的RNN 模型和TextCNN 模型分別作介紹,并提出一種組合RNN 和TextCNN 的混合模型,在公開數(shù)據(jù)集上對這幾種模型進行對比,以評估不同類型模型的性能,并驗證了組合模型的性能要優(yōu)于單獨的模型.
文本表示,即將字符文本通過某種形式表示成計算機可以處理的數(shù)值化數(shù)據(jù).由于機器學(xué)習(xí)和深度學(xué)習(xí)的算法模型都不能直接處理字符文本,所以在使用機器學(xué)習(xí)或深度學(xué)習(xí)模型做NLP 任務(wù)時,需要將原始的字符文本做數(shù)值化表示,轉(zhuǎn)換成數(shù)值向量.并且,不同的文本表示形式對算法模型結(jié)果的影響也有所不同.根據(jù)NLP 任務(wù)和算法模型的不同,可以將文本的字或詞作為最小表示單位(本文中,以字作為文本的最小表示單位),進行數(shù)值向量化.
文本表示方法大致分為兩種,一種是One-Hot 式編碼.這種方式是從待數(shù)值化的所有文本中建立一個全局的完備字典,該字典包含文中出現(xiàn)的所有字,用字典序的數(shù)字來表示一個字.采用這種方法編碼,字典大小就是字的向量維度.在向量中,只有該字的字典序?qū)?yīng)位置上的數(shù)字為1,其他位置均為0.這種方法有兩個主要缺點,一是字的向量十分稀疏,二是字與字之間沒有任何關(guān)聯(lián),比如它并不能表現(xiàn)出同性字或意義相近的之間的相似性.另外一種方法是分布式表示法(Distributed Representation)[13],它基于“上下文相似的詞,其語義也相似”這一假說,其基本思想是使用統(tǒng)計學(xué)方法通過訓(xùn)練把句子中的每個字映射成K維的實數(shù)向量,通過字與字的實數(shù)向量之間的距離(如歐氏距離、余弦距離等)來描述字之間的語義相似性,即相似語義的字具有相似的數(shù)值向量.現(xiàn)在的NLP 任務(wù)中,使用的大多是基于分布式表示法的文本表示模型.代表的有文獻[14]提出的Word2Vc 模型和斯坦福大學(xué)提出的GloVe 模型[15].在本文的實驗部分,采用Word2Vec 模型訓(xùn)練的字向量作為文本分類模型的輸入數(shù)據(jù).
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是NLP 任務(wù)中被廣泛使用的網(wǎng)絡(luò)模型.它通過循環(huán)使用同一個網(wǎng)絡(luò)神經(jīng)元來處理任意長度的序列,將序列前面的特征傳遞給后面作為輸入,從而捕獲到完整的序列上下文特征信息用于序列分類或序列標(biāo)注.
當(dāng)序列長度較長時,神經(jīng)網(wǎng)絡(luò)參數(shù)的訓(xùn)練過程會遇到梯度爆炸和梯度消失問題[15-17],造成模型的參數(shù)學(xué)習(xí)緩慢甚至停止學(xué)習(xí).文獻[17]提出LSTM 模型,對RNN 做了改進,其目的是解決RNN 存在的梯度爆炸問題.LSTM 的神經(jīng)元結(jié)構(gòu)如圖1所示.
圖1 LSTM 神經(jīng)元結(jié)構(gòu)
定義,序列的t位置為時刻t,LSTM 神經(jīng)元由三個“門”控制:遺忘門ft,輸入門it和輸出門ot.三個門的值為0 或1.在時刻t,LSTM 的參數(shù)更新方式如下:
其中,xt是t時刻的輸入向量,ht-1為t-1 時刻的輸出向量.輸入門it控制是否將當(dāng)前時刻信息存放在記憶細胞C中;遺忘門ft控制是否使用記憶細胞的歷史信息;輸出門決定是否讓當(dāng)前記憶細胞的信息參與當(dāng)前時刻輸出值的計算.WC、Wf、Wi、Wo分別為隱藏單元的權(quán)重矩陣,bC、bf、bi、bo分別為偏置矩陣.σ和tanh 分別為Sigmoid 函數(shù)和tanh 函數(shù),定義由公式(7)和公式(8)給出.
BiLSTM 是使用兩個LSTM 網(wǎng)絡(luò)分別從前向和后向處理序列,這樣能更全面地提取序列的上下文信息.
本文的實驗部分,采用BiLSTM 作為RNN 的替代模型,用來與其他模型對比.使用BiLSTM 處理文本分類 的基本流程結(jié)構(gòu)如圖2所示.
圖2 LSTM 模型用于文本分類示意圖
其中,xi為字向量,y為文本序列的類別.SoftMax是用于多分類的激活函數(shù),假設(shè)Z=[z1,z2,…,zn]是一個n維的特征向量,其SoftMax 值由下式給出:
卷積神經(jīng)網(wǎng)絡(luò)(Conventional Neural Network,CNN)被廣泛應(yīng)用于計算機視覺中.隨著詞嵌入和深度學(xué)習(xí)技術(shù)的發(fā)展,現(xiàn)在很多學(xué)者開始在NLP任務(wù)中使用 CNN.
卷積操作是CNN 的重要特征之一.卷積層以特征映射為組織方式,其中的每一個單位與前一層的局部感受野相連接,利用共享的卷積核(或稱過濾器)與局部感受野做卷積運算,再經(jīng)過激活函數(shù)(如ReLUv、tanh) 做非線性運算,得到特征值.給定一個矩陣X∈RM×N,和卷積核F∈RM×N,一般m?M,n?N,其卷積如式(10)所示:
圖3是文獻[8]提出用于文本分類的TextCNN 模型結(jié)構(gòu)示意圖,在本文的實驗部分,使用該模型作為CNN 在文本分類領(lǐng)域的代表模型與其他模型對比.
TextCNN 通過不同的通道數(shù)目和卷積核大小,使用一維卷積的方式提取句子矩陣的特征.Max-overtime 池化層的作用是從提取的特征矩陣中選出最大值,跟其他通道的最大值拼接,組合成篩選過的特征向量,繼 而通過SoftMax 層對文本進行分類.
圖3 TextCNN 模型示意圖
鑒于以上描述,BiLSTM 和CNN 在應(yīng)對文本分類問題時,各有特色,BiLSTM 由于具有自動學(xué)習(xí)記憶文本序列特征的特點,對于文本特征的提取、語音的理解和長文本依賴問題有很好的適用性;而TextCNN 憑借不同的卷積核和通道數(shù)目,比較適合提取更復(fù)雜的文本特征.我們嘗試將這兩個模型進行組合,組成的混合模型結(jié)構(gòu)如圖4所示.
在BiLSTM 模型中,其每一個神經(jīng)元都可以有輸出,該輸出表示為句子截至到該字符時,網(wǎng)絡(luò)模型提取到的句子特征.該法提取的句子特征為二維張量,適合TextCNN 做深層次的特征提取.
BiLSTM+TextCNN 組合模型的思想是,將BiLSTM 的每一個神經(jīng)元輸出的特征連結(jié)成句子的特征矩陣,用作卷積神經(jīng)網(wǎng)絡(luò)的輸入,進行特征的二次提取.具體的,句子中的字組成的字向量序列,經(jīng)過BiLSTM 模型編碼成二維矩陣,編碼的過程即遞歸模型學(xué)習(xí)的過程,該過程將句子的字向量特征過濾、融合成句子的特征矩陣.遞歸模型的特點在于捕獲長距離的文本語義特征,對長距離的語義進行關(guān)聯(lián)特征提取,而BiLSTM 模型保證了句子的前后向語義信息都可以被捕獲.經(jīng)過BiLSTM 模型輸出的句子特征矩陣包含了句子中字與字之間長距離的語義信息,使用TextCNN 對句子的特征矩陣做卷積操作,并通過池化進行特征篩選,繼而提取句子特征矩陣中相鄰文字的關(guān)聯(lián)特征,這樣相互結(jié)合,使得句子的語義特征得以全面且深度的提取,從而可以獲得更準(zhǔn)確的分類結(jié)果.BiLSTM+TextCNN 組合模型的參數(shù)學(xué)習(xí)過程如下:
算法1.BiLSTM+TextCNN 模型參數(shù)學(xué)習(xí)過程1)隨機初始化模型的參數(shù),設(shè)置模型批處理數(shù)據(jù)量batchsize 大小和迭代次數(shù)epochs.
2)將字向量表示的句子輸入到BiLSTM 網(wǎng)絡(luò)中,獲得經(jīng)BiLSTM 提取的句子特征矩陣.3)將特征矩陣輸入到TextCNN 模型中,進行文本特征的二次提取.4) 將第3) 步由TextCNN 提取的特征輸入到全連接網(wǎng)絡(luò)層和SoftMax 層中獲得文本的分類結(jié)果.5)經(jīng)由代價函數(shù)計算模型中參數(shù)的梯度,進行反向傳播,更新參數(shù)值.6)重復(fù)2)-5)步直至滿足設(shè)定的epochs 次數(shù)止.
圖4 BiLSTM+CNN 模型示意圖
模型的代價函數(shù)是模型參數(shù)學(xué)習(xí)過程中的目標(biāo)函數(shù)或準(zhǔn)則.通過最小化代價函數(shù)來優(yōu)化模型,獲得更準(zhǔn)確的擬合參數(shù).模型采用交叉熵損失函數(shù),其表示如式(11)所示.
其中,n為分類任務(wù)中的類別數(shù)目,y為數(shù)據(jù)集中的真實標(biāo)簽值,a為模型經(jīng)過學(xué)習(xí)后預(yù)測的標(biāo)簽值.模型參數(shù)學(xué)習(xí)的過程就是在最小化該損失函數(shù).
實驗采用的數(shù)據(jù)集是由清華大學(xué)自然語言處理與社會人文計算實驗室公開的新聞文本數(shù)據(jù)集1數(shù)據(jù)集版權(quán)歸清華大學(xué)自然語言處理與社會人文計算實驗室所有.詳見http://thuctc.thunlp.org/,該數(shù)據(jù)集包含836 075 條新聞文本,共14 個候選分類類別:體育、財經(jīng)、房產(chǎn)、家居、彩票、教育、科技、股票、時尚、時政、星座、游戲、社會、娛樂.由于星座和社會的數(shù)據(jù)量過少,在實驗中略去該兩類數(shù)據(jù),使用原數(shù)據(jù)集中的12 個類別的新聞文本進行實驗,共計824 900 條.數(shù)據(jù)集劃分百分之八十為訓(xùn)練集,百分之二十為測試集.
實驗設(shè)置為使用上述數(shù)據(jù)集進行文本分類,并評估效果.作為對比,實驗增加一個BP 神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)模型作為分類任務(wù)的基準(zhǔn),用以對比BiLSTM 模型、使用TextCNN 模型和本文提出的BiLSTM+TextCNN 的組合模型的性能.模型的主要超參數(shù)如表1所示.
模型采用F1 值作為評估標(biāo)準(zhǔn).F1 值由查準(zhǔn)率(Precision,P)和查全率(Recall,R)經(jīng)過計算獲得.定義y為模型輸出的字標(biāo)簽預(yù)測分類值集合,為數(shù)據(jù)集字標(biāo)簽的真實值集合,模型的查準(zhǔn)率P(y,)由式(12)給出定義:
查全率R(y,)由下式給出:
F1 值由式(14)給出定義,它是P值和R值的調(diào)和平均數(shù),其中β=1.
F1 值越高,模型表現(xiàn)越好.
表1 實驗中模型采用的主要超參數(shù)
經(jīng)過多次實驗,幾個模型在不同類別的分類表現(xiàn)如表2所示.表中列舉了幾個模型對所有12 個分類的F1 值結(jié)果(數(shù)值為多次實驗數(shù)據(jù)中,最高三次的均值).從結(jié)果中可以看出,BPNN 模型由于結(jié)構(gòu)較為簡單,其性能整體落后于其他三個模型,BiLSTM 模型在體育、財經(jīng)、房產(chǎn)、股票、社會這五個分類上與TextCNN模型的表現(xiàn)較為接近,但在其他分類上要弱于TextCNN模型.而本文提出的組合BiLSTM 和TextCNN 的模型,其表現(xiàn)整體上要好于其他兩個單獨的模型.
究其原因,BPNN 模型結(jié)構(gòu)較為簡單,只是兩層全連接網(wǎng)絡(luò)的組合,對文本的上下文信息的特征捕獲能力不強,做不到字與字之間關(guān)聯(lián)語義特征的提取,因而整體性能要弱于業(yè)界較為通用的文本分類模型.不過由于其模型結(jié)構(gòu)簡單,在運行速度上要優(yōu)于其它模型.BiLSTM 模型由于循環(huán)使用神經(jīng)元學(xué)習(xí)序列中潛在的關(guān)聯(lián)特征,并選擇性記憶序列中的語義信息,對文本的上下文特征捕獲能力較強,自然獲得較高的分類準(zhǔn)確率.TextCNN 模型使用不同的卷積核,對文字序列的相鄰語義特征捕獲能力較強,并能通過多層卷積融合較長距離的語義關(guān)系,因而可以得到較好的表現(xiàn).并且,CNN 模型很適合并行計算,借由GPU 的加速,TextCNN模型的訓(xùn)練時間要比BiLSTM 快很多.本文提出的BiLSTM+TextCNN 模型,結(jié)合了BiLSTM 模型和TextCNN 模型的特點,使用BiLSTM 對文本序列的上下文特征做篩選和提取,再經(jīng)TextCNN 進行更進一步、更細粒度的特征選擇與融合,將句子中的長、短距離文字的關(guān)聯(lián)信息和句子的語義信息較為全面的捕獲,故其性能表現(xiàn)要優(yōu)于單獨的BiLSTM 模型或TextCNN 模型.不過由于組合了兩個復(fù)雜模型,混合模型在時間復(fù)雜度上要差一些.
另外,除了BPNN 模型外,其他模型的F1 值均超過了0.9,并有過半數(shù)目的分類問題F1 值超過了0.95,這說明幾個模型在文本分類問題上都能夠得到較為準(zhǔn)確的結(jié)果,并且將序列模型和卷積模型組合會得到更佳的效果.
表2 不同神經(jīng)網(wǎng)絡(luò)模型在數(shù)據(jù)集上的分類效果F1 值對比
文本分類問題一直是NLP 領(lǐng)域關(guān)注的重點,有很廣泛的應(yīng)用場景.在處理文本分類任務(wù)時,主流的模型有以BiLSTM 為代表的序列模型和以TextCNN 為代表的卷積模型.本文介紹了這兩個主流的文本分類模型,并提出新的組合模型,通過實驗對比了不同模型的性能表現(xiàn).未來,將多種模型組合起來解決某一類問題或是后續(xù)研究的重點.