劉騰飛,于雙元,張洪濤,尹鴻峰
(1. 北京交通大學(xué) 計算機(jī)與信息技術(shù)學(xué)院,北京 100044;2. 北京交通大學(xué)海濱學(xué)院 計算機(jī)科學(xué)系,河北 黃驊 061199)
文本分類問題是自然語言處理領(lǐng)域中的一個經(jīng)典問題,目的是標(biāo)記出文本所屬的類別。文本分類具有廣泛的應(yīng)用,如主題標(biāo)記[1]、情感分類[2,3]等。然而,好的文本表示方法對文本分類等自然語言處理任務(wù)的性能起著決定性作用。傳統(tǒng)的文本表示采用詞袋模型(BOW, Bag of Word)或向量空間模型(VSM, Vector Space Model)。詞袋模型不僅失去了文本的上下文信息,還面臨著高緯度、高稀疏性的問題;向量空間模型是在詞袋模型的基礎(chǔ)上,通過特征項提取(如采用文檔頻率、互信息等作為評價標(biāo)準(zhǔn))進(jìn)行降低維度,通過特征權(quán)重計算(如TF-IDF)來增加稠密性。
近來,基于神經(jīng)網(wǎng)絡(luò)模型的分布表示越來越受歡迎[4,5]。基于神經(jīng)網(wǎng)絡(luò)模型的分布表示稱為詞向量、詞嵌入或分布表示。神經(jīng)網(wǎng)絡(luò)詞向量表示技術(shù)通過神經(jīng)網(wǎng)絡(luò)技術(shù)對上下文,以及上下文與目標(biāo)詞之間的關(guān)系進(jìn)行建模[6],這種方法可以將文本映射到低維向量空間中,解決了詞袋模型的高緯度、高稀疏性,避免了維數(shù)災(zāi)難,同時還保留了詞語之間的相關(guān)性。用詞向量作為輸入,再用循環(huán)網(wǎng)路[6]或卷積網(wǎng)絡(luò)[7]對文本進(jìn)行分類,有很大的性能提升。
本文描述了一個結(jié)合了循環(huán)網(wǎng)絡(luò)和卷積網(wǎng)絡(luò)的文本表示和分類網(wǎng)絡(luò)模型。在該模型中,我們同樣使用詞向量作為輸入,用循環(huán)網(wǎng)絡(luò)對文檔進(jìn)行進(jìn)一步的表示,然后采用卷積網(wǎng)絡(luò)對文檔進(jìn)行有效的特征提取,再采用 maxSoft 回歸進(jìn)行分類。循環(huán)網(wǎng)絡(luò)能夠捕捉到文檔中詞序信息,而卷積網(wǎng)絡(luò)能夠很好的提取出有用的特征。我們在六個文本分類任務(wù)中測試本文所描述的網(wǎng)絡(luò)模型,都取得了比先前的方法更出色的性能。
近年來,隨著硬件性能的提升,深度學(xué)習(xí)在計算機(jī)視覺、自然語言處理等領(lǐng)域中的應(yīng)用越來越廣泛。在自然語言處理領(lǐng)域中,用神經(jīng)網(wǎng)絡(luò)模型做詞嵌入,用循環(huán)網(wǎng)絡(luò)、卷積網(wǎng)絡(luò)做文本分類任務(wù)等都有了很好的發(fā)展。
Bengio 等人在[4]中詳細(xì)的介紹了一個用三層神經(jīng)網(wǎng)絡(luò)國建語言模型的方法。[8]提出層級的思想替換 Bengio 方法的隱藏層到輸出層矩陣乘法,在效果和 maxSoft 方法持平的情況下,使得計算量減小。[5]介紹了他們的詞向量計算方法,而他們在2011年發(fā)表在 JMLR上的論文[9]系統(tǒng)的介紹了他們工作。Huang 等在[10]中對[9]的模型進(jìn)行改進(jìn),使用全文信息輔助已有的局部信息,他的另一個創(chuàng)新點(diǎn)是使用多個詞向量來表示多義詞。Mikolov在2013年的[11]提出了 CBOW 和 Skip-gram兩種模型, 在[12]中提出用負(fù)采樣和分級 maxSoft 來提升模型的計算速度。Jeffrey等在 GloVe模型[13]提出用全局“詞-詞”共現(xiàn)矩陣分解得到詞向量的表示方法。
相比于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),循環(huán)神經(jīng)網(wǎng)絡(luò)允許信息持久化,這使得循環(huán)網(wǎng)絡(luò)在語音識別,語言模型,機(jī)器翻譯等任務(wù)上取得了一定的成功。而循環(huán)網(wǎng)絡(luò)也有有不足:長期依賴問題、梯度消失或梯度爆炸問題。
LSTM(Long-Short Term Memory)是由Hochreiter等人在1997提出[14],在很多領(lǐng)域都得到了廣泛的應(yīng)用。LSTM 通過刻意的設(shè)計來避免長期依賴問題。LSTM也有一些變體,如Cho等人提出的GRU[15],Yao等人提出的Depth Gated RNN[16]等。
卷積神經(jīng)網(wǎng)絡(luò)的概念最早來自科學(xué)家提出的感受野。20世紀(jì) 80年代科學(xué)家提出的神經(jīng)認(rèn)知機(jī)感念,算是卷積神經(jīng)網(wǎng)絡(luò)的最初的實現(xiàn)。卷積神經(jīng)網(wǎng)絡(luò)在計算機(jī)視覺領(lǐng)域的應(yīng)用取得了巨大的成功。2012年 AlexNet獲得了 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比賽分類項目的冠軍,使得深度學(xué)習(xí)成為了熱門的研究方向。而后的幾年里,VGGNet,GoogleNet,ResNet等卷積網(wǎng)絡(luò)在圖像處理任務(wù)中都取得了巨大的成功。
統(tǒng)的文本分類主要工作有:特征表示、特征提取和分類器的選擇[6]。特征表示主要采用詞袋模型,特征提取采用文檔頻率、互信息等。分類器有Logistic回歸,樸素貝葉斯和支持向量機(jī)等。
近年來,隨著深度學(xué)習(xí)在自然語言處理領(lǐng)域的應(yīng)用,基于深度學(xué)習(xí)的文本分類模型得到發(fā)展,Yook提出的基于卷積網(wǎng)絡(luò)的分類方法[7],Liu等的基于 RNN的文本分類方法[17],Yang等的基于 rnn和attention模型的分類方法[18]和Lai的基于rcnn的文本分類方法[6]等。這些方法在文本分類任務(wù)中都取得了很好的性能。
本文描述了一個基于循環(huán)和卷積網(wǎng)絡(luò)的文本表示和分類模型,模型結(jié)構(gòu)如圖1所示,輸入Cn×k是n×k的矩陣,其中n是文本的最大長度,也是循環(huán)網(wǎng)絡(luò)的步長,k是詞向量的維度。在做下式(1)變換后,再使用Relu激活函數(shù)得到 h r1(式(2)),為了防止過擬合,在此之后加入dropout得到 h rd1(式(3))。最后,用 h rd1作為循環(huán)網(wǎng)絡(luò)的輸入。
在式(1)中,inW 是輸入層到循環(huán)層輸入的轉(zhuǎn)換矩陣,維度為×ku,其中u是循環(huán)層的隱藏單元數(shù),inb 是偏置項。
循環(huán)網(wǎng)絡(luò)做自然語言處理任務(wù),能夠提取到詞與詞之間的關(guān)系。在循環(huán)層,本文使用雙向循環(huán)網(wǎng)絡(luò),把前向循環(huán)輸出和后向循環(huán)的輸出級聯(lián)作為循環(huán)層的輸出。本文使用前向循環(huán)和后向循環(huán)的輸出級聯(lián)作為輸出,而在循環(huán)網(wǎng)絡(luò)內(nèi)部,試驗中分別使用的是RNN、LSTM和GRU和細(xì)胞單元。其中,前向循環(huán)輸出如式(4),后向循環(huán)輸出如式(5),循環(huán)層最終輸出如式(6)。
在式(4)和式(5)中, Wf和 Wb分別對應(yīng)的是前向循環(huán)和后向循環(huán)的當(dāng)前輸入到輸出的轉(zhuǎn)移矩陣 Wfc和Wbc分別對應(yīng)的是前向循環(huán)和后向循環(huán)的上文或下文到當(dāng)前輸出的轉(zhuǎn)移矩陣,c(i- 1)和 c(i +1)分別對應(yīng)的是前向循環(huán)和后向循環(huán)的上文或下文信息。
在循環(huán)層之后,使用卷積網(wǎng)絡(luò)提取特征,使用不同大小的卷積核,每種卷積核選擇100個,最后對每個卷積核卷積的結(jié)果再使用最大池化,得到的結(jié)果即視為卷積所得到的特征。對于每一個卷積核,每一步卷積操作如式(7),然后對該卷積核的每一步卷積結(jié)果做縱向級聯(lián),如式(8),再使用Relu激活函數(shù)得到 h r3。
在式(7)中,cW 是對應(yīng)的卷積核。
在卷積過后,使用最大池化層提取重要特征。池化層如式(10)。
同樣的,為防止過擬合,在池化層之后,加入dropout得到3hrpd (式(11))。
在此之后,是全連接層,如式(12),其中fcW和fcb 分別對應(yīng)的是轉(zhuǎn)移矩陣和偏置項。然后使用Relu激活函數(shù)得到4hr(式(13)),再后是dropout得到4hrd (式(14))。
輸出層也是一個全連接層,如式(15),其中oW和ob分別對應(yīng)隱藏層到輸出層的轉(zhuǎn)移矩陣和偏置項。
最后,使用 maxSoft 函數(shù)計算模型輸出的預(yù)測所屬的類別的概率, maxSoft 函數(shù)如式(16),最后的ip即是模型預(yù)測的文本是屬于類別i的概率。
本節(jié)主要介紹試驗使用的數(shù)據(jù)集、實驗設(shè)置和對實驗結(jié)果進(jìn)行對比分析。
我們使用六個文本分類任務(wù)數(shù)據(jù)集來測試本文描述的模型,這些數(shù)據(jù)集的概要如表1。
表1 據(jù)集概要Tab.1 A summary of the datasets
MR①http://www.cs.cornell.edu/people/pabo/movie-review-data/:MR(Movie reviews)是Pang等人標(biāo)注的用于情感分類的電影評論數(shù)據(jù)集[3],每個一句話是一個評論。該數(shù)據(jù)集分為正/負(fù)兩類評論,是二分類任務(wù)數(shù)據(jù)集,共有 10662個評論,正/負(fù)評論各5331個。
Subj②http://www.cs.cornell.edu/people/pabo/movie-review-data/:Sub(Subjectivity)是一個包含 5000個主觀和5000個客觀句子的情感分析數(shù)據(jù)集,最早有Pang 使用[3]。
SST③https://nlp.stanford.edu/sentiment/:SST(Stanfod Sentiment Treebank)是由Socher 等人標(biāo)注并發(fā)布[19],是MR的擴(kuò)展。該數(shù)據(jù)集一共包括11855條電影評論,被標(biāo)注為五類(非常正面、正面、中立、負(fù)面和非常負(fù)面)。該數(shù)據(jù)集提供已經(jīng)被分割好的訓(xùn)練集(8544)、驗正集(1101)和測試集(2210)。
SST2:在SST2中,去除SST中的中立評論,并且把非常正面和正面合并為正面,把非常負(fù)面和負(fù)面合并為負(fù)面。
詩意美是《雨巷》最為突出的特點(diǎn)之一。“藝術(shù)作品的形式美,歸根結(jié)底,也正是這樣一種生命感應(yīng)的產(chǎn)物”。詩歌作為一種充滿藝術(shù)性的作品形式,與其他體裁相比,簡潔而又含蓄,卻能將作者的心緒、感受完美地詮釋;精練的語言,短小的篇幅,卻能引人遐想。
IMDB④http://ai.stanford.edu/~amaas/data/sentiment/:IMDB數(shù)據(jù)集是一個二分類的情感分析數(shù)據(jù)集,包括50000個樣例,訓(xùn)練集和測試集各25000個樣例,是由Maas等人標(biāo)注發(fā)布[2]。
TREC⑤http://cogcomp.cs.illinois.edu/Data/QA/QC/:TREC是由Li等人完成標(biāo)注的問題分類任務(wù)數(shù)據(jù)集[20],該數(shù)據(jù)集分為訓(xùn)練集和測試集,其中訓(xùn)練集又隨機(jī)分為1000、2000、3000、4000和5500個樣例的訓(xùn)練集,本文使用的是包含 5500個訓(xùn)練樣例的訓(xùn)練集。
1. 詞向量:本文所用的詞向量是[12]在有1000億的英文單詞的GoogleNews上訓(xùn)練得到的詞向量。該詞向量是使用CBOW(continuous bag-of-words)模型結(jié)構(gòu)訓(xùn)練得到的,詞向量的維度是 300。對用在上述詞向量中沒有出現(xiàn)的詞,隨機(jī)初始化生成得到300的向量作為該詞對應(yīng)的詞向量。
2. 權(quán)重初始化:訓(xùn)練中的所有權(quán)重隨機(jī)初始化為標(biāo)準(zhǔn)差為0.1的正態(tài)分布隨機(jī)數(shù)。偏置項初始化為0.1。
3. 訓(xùn)練參數(shù):在實驗中,我們采用Adam優(yōu)化方法來訓(xùn)練我們的模型,學(xué)習(xí)率設(shè)置為0.001。對于全連接層,使用 2L正則化方法來防止過擬合,系數(shù)設(shè)置為0.0001。Dropout的系數(shù)設(shè)置為0.5。輸入批次為64,循環(huán)層隱藏單元為128,對于卷積層,使用卷積核大小分別為3、4和5的卷積核,每個大小的卷積核為100個。
4. 模型變體:在我們的試驗中,循環(huán)網(wǎng)絡(luò)使用了不同的細(xì)胞,得到如下四種模型:
· BRCNN(RNN cell):循環(huán)層的循環(huán)體使用的是基本的RNN循環(huán)細(xì)胞。
· BRCNN(LSTM cell):循環(huán)層的循環(huán)體使用的是基本的LSTM細(xì)胞。
如表2,我們分別和12種先前先進(jìn)的方法進(jìn)行對比:
· CNN-static、CNN-non-static 和 CNN-multichannel[7]:Kim等采用CNN卷積網(wǎng)絡(luò)對文本分類。其中,CNN-static即在訓(xùn)練過程中輸入詞向量不做改變,CNN-non-static是在訓(xùn)練過程中對詞向量進(jìn)行修改,而CNN- multichannel是采用多通道進(jìn)行卷積。
· RCNN[6]:Lai等提出的使用雙向循環(huán)網(wǎng)絡(luò)對文本分類。對循環(huán)網(wǎng)絡(luò)的前向輸出、詞向量和循環(huán)網(wǎng)絡(luò)后向輸出進(jìn)行級聯(lián)作為循環(huán)網(wǎng)絡(luò)的輸出,取最大池化后的輸出再使用 Softmax回歸對文本進(jìn)行分類。
· RNTN[19]: Socher等人提出的基于張量特征函數(shù)和解析樹的遞歸神經(jīng)張量網(wǎng)絡(luò)。
· DCNN[20]:Kalchbrenner等人使用 k最大池化的動態(tài)卷積網(wǎng)絡(luò)。
· Paragraph-Vec[21]:Le等人使用段落向量的邏輯回歸分類方法。
· MNB、NBSVM[1]:Wang使用的方法,其中MNB是多項式樸素貝葉斯分類方法,NBSVM是結(jié)合了樸素貝葉斯和支持向量機(jī)的分類方法。
· G-Dropout、F-Dropout[1]:Wang 使用的方法,其中 G-Dropout是高斯 Droupou分類方法,F(xiàn)-Dropout是快速Dropout分類方法。
· SVM[22]:是 Silva等人提出的基于支持向量機(jī)的分類方法。
本文分別在 4.1所述的六文本分類任務(wù)數(shù)據(jù)集上測試本文提出的文本分類模型,并和先前的先進(jìn)方法進(jìn)行比較分析,如表2。
1. 對比表2中的實驗結(jié)果,基于RNN cell的模型在六個文本分類任務(wù)中只取得了和先前先進(jìn)的方法相當(dāng)?shù)男阅?,而基于LSTM cell和GRU cell的模型在六個文本分類任務(wù)中都取得了不錯的性能,其中在MR、Subj、SST和TREC任務(wù)中比先前的分類模型取得了更高的精確度,而在SST2和IMDB分類任務(wù)中也取得了和先前的門類模型相當(dāng)?shù)男阅堋?/p>
2. 對比基于RNN cell、LSTM cell和GRU cell的模型?;?RNN cell的模型的性能低于基于LSTM cell和GRU cell的模型。而基于LSTM cell和GRU cell的模型取得相當(dāng)?shù)男阅?。這可能是由于循環(huán)網(wǎng)絡(luò)的長期依賴等問題影響了RNN的性能,而LSTM模型解決了RNN的長期依賴問題,所以取得了更好的性能,GRU是LSTM的一個變體,所以也能取得和LSTM相當(dāng)?shù)男阅堋?/p>
表2實驗結(jié)果對比。其中,對比方法的結(jié)果直接取自對應(yīng)的論文中的結(jié)果。
本文介紹了基于循環(huán)和卷積網(wǎng)絡(luò)的文本表示和分類模型,通過實驗分析,表明我們的模型能夠很好的完成文本分類任務(wù)。卷積層能夠得到文本的上下文信息,卷積層能夠很好的提取特征,在分類任務(wù)上能夠得到不錯的性能。
表2 實驗結(jié)果對比Tab.2 Results for the datasets
然而,在我們的試驗中,我們只是做了簡單的參數(shù)調(diào)整,在未來的工作中,可以參考[23]采用參數(shù)隨機(jī)搜索,或參考[24]使用貝葉斯優(yōu)化方法得到更好的參數(shù)來提高我們的模型的性能。
同樣的,我們還可以使用GloVe等其他詞向量模型訓(xùn)練的詞向量來測式我們的模型。
[1] Wang S, Manning C D. Baselines and bigrams: Simple, good sentiment and topic classification[C]//Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Short Papers-Volume 2. Association for Computational Linguistics, 2012: 90-94.
[2] Maas A L, Daly R E, Pham P T, et al. Learning word vectors for sentiment analysis[C]//Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics:Human Language Technologies-Volume 1. Association for Computational Linguistics, 2011: 142-150.
[3] Pang B, Lee L. Seeing stars: Exploiting class relationships for sentiment categorization with respect to rating scales[C]//Proceedings of the 43rd annual meeting on asso-ciation for computational linguistics. Association for Computational Linguistics, 2005: 115-124.
[4] Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model[J]. Journal of machine learning research,2003, 3(Feb): 1137-1155.
[5] Collobert R, Weston J. A unified architecture for natural language processing: Deep neural networks with multitask learning[C]//Proceedings of the 25th international conference on Machine learning. ACM, 2008: 160-167.
[6] Lai S, Xu L, Liu K, et al. Recurrent Convolutional Neural Networks for Text Classification[C]//AAAI. 2015, 333:2267-2273.
[7] Kim Y. Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014.
[8] Mnih A, Hinton G E. A scalable hierarchical distributed language model[C]//Advances in neural information processing systems. 2009: 1081-1088.
[9] Collobert R, Weston J, Bottou L, et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research, 2011, 12(Aug): 2493-2537.
[10] Huang E H, Socher R, Manning C D, et al. Improving word representations via global context and multiple word prototypes[C]//Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers-Volume 1. Association for Computational Linguistics, 2012:873-882.
[11] Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013a.
[12] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in neural information processing systems. 2013b: 3111-3119.[13] Pennington J, Socher R, Manning C D. Glove: Global Vectors for Word Representation[C]//EMNLP. 2014, 14: 1532-1543.
[14] Hochreiter S, Schmidhuber J. Long short-term memory[J].Neural computation, 1997, 9(8): 1735-1780.
[15] Cho K, Van Merri?nboer B, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. arXiv preprint arXiv: 1406.1078, 2014.
[16] Yao K, Cohn T, Vylomova K, et al. Depth-Gated Recurrent Neural Networks[J]. arXiv preprint arXiv:1508.03790, 2015.
[17] Liu P, Qiu X, Huang X. Recurrent neural network for text classification with multi-task learning[J]. arXiv preprint arXiv:1605.05101, 2016.
[18] Yang Z, Yang D, Dyer C, et al. Hierarchical attention networks for document classification[C]//Proceedings of NAACL-HLT. 2016: 1480-1489.
[19] Socher R, Perelygin A, Wu J Y, et al. Recursive deep models for semantic compositionality over a sentiment treebank[C]//Proceedings of the conference on empirical methods in natural language processing (EMNLP). 2013, 1631: 1642.
[20] Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences[J]. arXiv preprint arXiv:1404.2188, 2014.
[21] Le Q, Mikolov T. Distributed representations of sentences and documents[C]//Proceedings of the 31st International Conference on Machine Learning (ICML-14). 2014: 1188-1196.
[22] Silva J, Coheur L, Mendes A C, et al. From symbolic to sub-symbolic information in question classification[J]. Artificial Intelligence Review, 2011, 35(2): 137-154.
[23] Bergstra J, Bengio Y. Random search for hyper-parameter optimization[J]. Journal of Machine Learning Research, 2012,13(Feb): 281-305.
[24] Snoek J, Larochelle H, Adams R P. Practical bayesian optimization of machine learning algorithms[C]//Advances in neural information processing systems. 2012: 2951-2959.