藍(lán)雯飛,徐 蔚,汪敦志,潘鵬程
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
進(jìn)入21世紀(jì)以來,互聯(lián)網(wǎng)行業(yè)蓬勃發(fā)展,伴隨而來的是信息快速傳遞的大數(shù)據(jù)時(shí)代.在海量的數(shù)據(jù)信息中,信息的表達(dá)方式呈現(xiàn)多樣化,例如文本、圖像和語(yǔ)音等.其中,文本作為信息的一種重要承載方式,相對(duì)于圖像和語(yǔ)音等載體而言,具有容量占有率少,更方便地存儲(chǔ)和管理的特點(diǎn).但是,文本的表達(dá)并沒有圖像和語(yǔ)音那么的直觀,需要人為地去閱讀整個(gè)文本,然后理解其表達(dá)的含義,這種傳統(tǒng)的人工方式顯然不能適應(yīng)當(dāng)今信息呈現(xiàn)爆炸式增長(zhǎng)的大數(shù)據(jù)時(shí)代.因此,在海量的文本信息中,如何快速準(zhǔn)確地獲取人們所需的,成為了一項(xiàng)值得研究的課題.
文本分類早期的研究主要是基于知識(shí)工程[1],其分類的規(guī)則需要人工地去定義然后提煉出來,再按照分類規(guī)則去構(gòu)建分類器,該方法不僅耗費(fèi)大量的時(shí)間和精力,而且還要求領(lǐng)域內(nèi)的專家具有一定的經(jīng)驗(yàn).為了克服這種手工分類方式帶來的困難,隨著機(jī)器學(xué)習(xí)的興起,機(jī)器學(xué)習(xí)文本分類技術(shù)開始取代早期的分類方法[2].深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)的一個(gè)分支,近年來隨著高性能計(jì)算的發(fā)展以及大數(shù)據(jù)時(shí)代的來臨,已經(jīng)在學(xué)術(shù)界以及工業(yè)界引起了廣泛的影響,并滲入了各行各業(yè).深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)最大的不同之處在于深度學(xué)習(xí)有自動(dòng)獲取特征的能力,這樣就免去了傳統(tǒng)方法在繁雜的特征工程中耗費(fèi)的成本,本文的主要工作是利用深度學(xué)習(xí)模型解決中文新聞文本分類的問題.
在文本表示方面,Collobert等人[3]提出了使用神經(jīng)網(wǎng)絡(luò)的方法自動(dòng)學(xué)習(xí)詞匯的向量化表示,其基本原則是:一個(gè)詞包含的意義應(yīng)該由該詞周圍的詞決定.首先將詞匯表中的每一個(gè)詞隨機(jī)初始化為一個(gè)向量,然后用大規(guī)模的語(yǔ)料作為訓(xùn)練數(shù)據(jù)來優(yōu)化此向量,使相似的詞具有相近的向量表示.這樣的訓(xùn)練方法能夠?qū)⑦m合出現(xiàn)在窗口中間位置的詞聚合在一起,而將不適合出現(xiàn)在這個(gè)位置的詞分離開來,從而將語(yǔ)義(語(yǔ)法或者詞性)相似的詞映射到向量空間中相近的位置.與替換中間詞的方法不同,Mikolov等人[4,5]提出了一種使用周圍詞預(yù)測(cè)中間詞的連續(xù)詞袋模型(CBOW).CBOW模型將相鄰的詞向量直接相加得到隱層,并用隱層預(yù)測(cè)中間詞的概率.同詞袋模型一樣采用的是直接相加,所以周圍詞的位置并不影響預(yù)測(cè)的結(jié)果.Mikolov等人還提出了一種連續(xù)Skip-gram模型,同CBOW模型的預(yù)測(cè)方式相反,連續(xù)Skip-gram模型通過中間詞來預(yù)測(cè)周圍詞的概率.
在構(gòu)建語(yǔ)言模型方面,Socher[6]采用了RNN進(jìn)行句法解析,Irsoy等人[7]將RNN建立起深層結(jié)構(gòu),成為了一個(gè)典型的三層結(jié)構(gòu)的深度學(xué)習(xí)模型.但是RNN在求解過程中存在梯度爆炸和消失問題[8],并且不適用于長(zhǎng)文本,所以后來的研究者又在此基礎(chǔ)上提出了長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)LSTM(Long Short-Term Memory)[9],它是一種時(shí)間遞歸神經(jīng)網(wǎng)絡(luò),適合于處理和預(yù)測(cè)時(shí)間序列中間隔和延遲相對(duì)較長(zhǎng)的重要事件.如今,LSTM已經(jīng)被應(yīng)用在了許多領(lǐng)域,如機(jī)器翻譯[10]、圖像分析[11]、語(yǔ)音識(shí)別[12]等.總之,基于LSTM模型解決自然語(yǔ)言處理問題已經(jīng)成為了當(dāng)下的主流研究方向.
RNN適合處理隨時(shí)間變化的序列性問題,自然語(yǔ)言正好符合這一特點(diǎn),因?yàn)槿祟愄幚碚Z(yǔ)言的方式是按照從前往后隨時(shí)間的順序進(jìn)行的,如果我們想要知道一句話的下一個(gè)詞是什么,必須要知道前面幾個(gè)詞,所以利用RNN處理自然語(yǔ)言問題是最為直觀的一種方式.由于普通的RNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)不能解決長(zhǎng)時(shí)依賴問題,所以更多地使用的是改進(jìn)后的LSTM模型,圖1和圖2所示的是利用LSTM解決分類問題的兩種典型的模型結(jié)構(gòu)圖.
圖中的輸入層x0,x1,x2,……,xt對(duì)應(yīng)的是詞向量,在輸入層之上是一層正向的LSTM層,由一系列的LSTM單元組成,而如何將詞向量融合為高一級(jí)別的句向量,圖1和圖2有各自不同的方式:圖1把LSTM最后時(shí)刻的輸出作為高一級(jí)的表示,圖2把所有時(shí)刻的LSTM輸出加和求平均后的結(jié)果作為高一級(jí)的表示.最后,在softmax層,進(jìn)行全連接操作,得到最終預(yù)測(cè)的類別y.
圖1 NLP中的第一種LSTM分類模型Fig.1 First LSTM classification model in NLP
圖2 NLP中的第二種LSTM分類模型Fig.2 Second LSTM classification model in NLP
注意力機(jī)制最早是在圖像領(lǐng)域提出來的[13],研究的動(dòng)機(jī)是受人類注意力機(jī)制的啟發(fā).而在NLP領(lǐng)域,最早是在機(jī)器翻譯上應(yīng)用注意力機(jī)制[14,15].機(jī)器翻譯使用的是一種典型的序列到序列(sequence to sequence)的模型[16],也是一種編碼到解碼(encoder to decoder)的模型[17].傳統(tǒng)的機(jī)器翻譯模型僅根據(jù)最后一個(gè)詞學(xué)到的表達(dá)和當(dāng)前要預(yù)測(cè)翻譯的詞聯(lián)系起來,而加入注意力機(jī)制后,將源語(yǔ)言端的每個(gè)詞學(xué)到的表達(dá)和當(dāng)前要預(yù)測(cè)翻譯的詞進(jìn)行聯(lián)系.相比傳統(tǒng)的機(jī)器翻譯,加入注意力機(jī)制后的模型,效果有明顯的提高.
上面提到的NLP中的兩種LSTM分類模型,一種是利用LSTM最后時(shí)刻的輸出作為高一級(jí)的表示,而另一種是將所有時(shí)刻的LSTM輸出求平均作為高一級(jí)的表示.這兩種表示都存在一定的缺陷,第一種缺失了前面的輸出信息,另一種求平均沒有體現(xiàn)每個(gè)時(shí)刻輸出信息的不同重要程度.為了解決此問題,引入Attention機(jī)制,本文對(duì)LSTM模型進(jìn)行改進(jìn),設(shè)計(jì)了LSTM-Attention模型,如圖3所示.
圖3 LSTM-Attention模型Fig.3 LSTM-Attention model
圖中輸入序列為一段文本分詞后的各個(gè)詞的向量表示x0,x1,x2,…,xt,將每個(gè)輸入傳入LSTM單元,得到對(duì)應(yīng)隱藏層的輸出h0,h1,h2,…,ht.這里,在隱藏層引入Attention,計(jì)算各個(gè)輸入分配的注意力概率分布值α0,α1,α2,…,αt,其思想是計(jì)算該時(shí)刻的隱藏層輸出與整個(gè)文本表示向量的匹配得分占總體得分的比重,αi,j∈[0,t]的計(jì)算公式如下:
(1)
(2)
其中w,W,U為權(quán)值矩陣,b為偏置量,tanh為非線性激活函數(shù).
得到各個(gè)時(shí)刻的注意力概率分布值以后,計(jì)算包含文本信息的特征向量v,計(jì)算公式如下:
(3)
最后,利用softmax函數(shù)得到預(yù)測(cè)類別為y,計(jì)算公式如下:
y=softmax(Wvv+bv).
(4)
本文采用梯度下降法訓(xùn)練模型,通過計(jì)算損失函數(shù)的梯度逐步更新模型的參數(shù),最終到達(dá)收斂.為了使目標(biāo)函數(shù)收斂得更加平穩(wěn),同時(shí)也為了提高算法的效率,每次只取小批量樣本進(jìn)行訓(xùn)練.模型使用交叉熵?fù)p失函數(shù),計(jì)算公式如下:
(5)
本文的實(shí)驗(yàn)是在Window10系統(tǒng)下進(jìn)行的,使用的CPU是Inter Core i5-2450M 2.5GHz,內(nèi)存大小為6GB.實(shí)驗(yàn)編程語(yǔ)言為Python3.0,開發(fā)工具為Pycharm,使用到的深度學(xué)習(xí)框架為Tensorflow1.0.1.本文的實(shí)驗(yàn)數(shù)據(jù)集來源于搜狗實(shí)驗(yàn)室中的搜狐新聞數(shù)據(jù),從中提取出用于訓(xùn)練中文詞向量的中文語(yǔ)料,大小約為4GB左右.然后選取了5個(gè)類別的新聞數(shù)據(jù),分別為財(cái)經(jīng)、汽車、娛樂、軍事和體育.每個(gè)類別新聞為2000條,共10000條新聞,利用這10000條數(shù)據(jù)來評(píng)估模型的分類效果.
本文采用LSTM模型,對(duì)中文新聞文本進(jìn)行分類.為了評(píng)價(jià)分類模型的效果,通過精確率(Precision)和召回率(Recall)以及F1值對(duì)分類結(jié)果進(jìn)行衡量. 為了說明注意力機(jī)制對(duì)分類結(jié)果的影響,將本文使用的LSTM-Attention模型的分類結(jié)果,與經(jīng)典的LSTM兩個(gè)分類模型的分類結(jié)果進(jìn)行對(duì)比.另外,為了說明基于LSTM模型分類的優(yōu)勢(shì),在同樣的數(shù)據(jù)集上利用傳統(tǒng)的機(jī)器學(xué)習(xí)分類模型對(duì)文本進(jìn)行分類,然后將分類結(jié)果進(jìn)行對(duì)比,使用的機(jī)器學(xué)習(xí)方法包括支持向量機(jī)(SVM)[18]、最近鄰(KNN)[19]、樸素貝葉斯(NB)[20].為了排除由于特征構(gòu)建方式不同而導(dǎo)致實(shí)驗(yàn)結(jié)果沒有可比性,利用傳統(tǒng)機(jī)器學(xué)習(xí)的特征構(gòu)建方式同樣是基于詞向量,每條新聞文本的特征取為所有詞向量均值.
TensorFlow中的 TensorBoard 可視化工具,可以通過讀取 TensorFlow訓(xùn)練后保存的事件文件,展示各個(gè)參數(shù)的變化圖.圖4、圖5分別所示的是TensorBoard中,LSTM、LSTM-Attention在模型訓(xùn)練完成后,模型訓(xùn)練損失值隨迭代次數(shù)的變化圖.
從圖中可以看出所有模型在利用梯度下降法進(jìn)行訓(xùn)練時(shí),函數(shù)損失值是逐漸下降的,并最終趨于穩(wěn)定收斂狀態(tài).引入Attention機(jī)制后的LSTM模型,相比于原來的模型而言,由于模型復(fù)雜度的增加,造成起始的損失值變大,但收斂速度是有所增加的.由此可見,Attention機(jī)制對(duì)模型的分類識(shí)別能力是有一定的影響力的.
圖4 LSTM模型訓(xùn)練損失變化圖Fig.4 LSTM training loss change diagram
圖5 LSTM-Attention模型訓(xùn)練損失變化圖Fig.5 LSTM-Attention training loss change diagram
表1所示的是不同分類模型的整體平均Precision值、Recall值和F1值比較結(jié)果.
表1 不同分類模型的平均分類結(jié)果比較
從表1所示的結(jié)果可以看出,在相同的數(shù)據(jù)集上,以word2vec訓(xùn)練的詞向量作為文本特征,除了NB分類模型分類效果較差,其他分類模型均取得了較好的分類效果,可以證明word2vec訓(xùn)練的詞向量能夠很好的描述文本特征.另外,LSTM分類模型以及LSTM-Attention分類模型的分類效果要比傳統(tǒng)的機(jī)器學(xué)習(xí)分類模型好,原因在于Attention計(jì)算了文本中每個(gè)詞分配的注意力概率分布值,這樣可以有效地提取出文本中的關(guān)鍵詞,而關(guān)鍵詞對(duì)文本的語(yǔ)義表達(dá)起到了重要的作用,說明Attention對(duì)文本分類性能的提升起到了一定的作用.
本文利用word2vec訓(xùn)練大規(guī)模中文新聞?wù)Z料,從大量的文本信息中得到中文詞的詞向量,作為文本的特征表達(dá).相比于傳統(tǒng)的機(jī)器學(xué)習(xí)提取特征的方法,word2vec可以自動(dòng)將語(yǔ)義信息濃縮進(jìn)數(shù)學(xué)向量中.基于詞向量的文本表示方法,本文對(duì)LSTM分類模型進(jìn)行了改進(jìn),引入了Attention機(jī)制.Attention的計(jì)算是可微的,可以通過反向傳播訓(xùn)練,適用于深度學(xué)習(xí)中的網(wǎng)絡(luò)結(jié)構(gòu),由此設(shè)計(jì)了LSTM-Attention模型.從實(shí)驗(yàn)結(jié)果也可以看出,引入Attention機(jī)制后的LSTM模型對(duì)文本的分類效果有了一定程度的提升.但是,Attention機(jī)制的應(yīng)用也有一定的限制,它需要耗費(fèi)一定的計(jì)算成本,因?yàn)樾枰獮槊總€(gè)輸入輸出組合分別計(jì)算注意力分配的概率值,一旦輸入輸出序列增加,Attention計(jì)算量隨之呈指數(shù)級(jí)增長(zhǎng).