於 韜 廖聞劍 黃珊珊
(1.武漢郵電科學(xué)研究院 武漢 430070)(2.南京烽火天地通信科技有限公司 南京 210017)(3.南京烽火星空通信發(fā)展有限公司 南京 210017)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)上產(chǎn)生了規(guī)模龐大的數(shù)據(jù),包括文本、圖片、音頻、視頻等信息,中文新聞數(shù)據(jù)是數(shù)據(jù)信息的一種重要載體。面對(duì)紛繁復(fù)雜的文本數(shù)據(jù),快速而準(zhǔn)確地找到個(gè)人所需的信息變得越來(lái)越費(fèi)事耗力,如何幫助用戶(hù)快速定位目標(biāo)信息,從而發(fā)現(xiàn)潛在信息,助力科學(xué)研究和提升商業(yè)價(jià)值,成為當(dāng)前信息處理領(lǐng)域所面臨的一大挑戰(zhàn)。文本分類(lèi)技術(shù)作為一種高效的信息檢索與數(shù)據(jù)挖據(jù)信息技術(shù),有助于數(shù)據(jù)信息的組織與管理,是解決上述問(wèn)題的關(guān)鍵技術(shù),具有廣泛的研究和應(yīng)用價(jià)值。
文本分類(lèi)技術(shù)和其他的分類(lèi)技術(shù)沒(méi)有本質(zhì)的區(qū)別,核心方法是提取文本的特征然后選擇適當(dāng)?shù)姆诸?lèi)器進(jìn)行分類(lèi)。在特征選擇方面,常用的特征計(jì)算量有TF-IDF,互信息量,信息增益,χ2統(tǒng)計(jì)量等方法,也有更深層次的潛在狄利克雷分布(LDA)模型[1],LDA模型帶有一定的語(yǔ)義信息,姚全珠[2]等將LDA模型生成的主題分布作為文本的特征構(gòu)造分類(lèi)器進(jìn)行分類(lèi)。在分類(lèi)器選擇方面,常用的分類(lèi)器有支持向量機(jī)(SVM)[3~4],樸素貝葉斯(Naive Bayes)[5]和最小近鄰(KNN)[6]等。
近年來(lái),隨著深度學(xué)習(xí)的興起,深度學(xué)習(xí)方法逐漸成為自然語(yǔ)言處理領(lǐng)域的熱門(mén)。Bengio[7]等提出用神經(jīng)網(wǎng)絡(luò)訓(xùn)練詞向量表示,Mikolov[8~9]等提出一種結(jié)合赫夫曼編碼的詞袋模型(CBOW)和Skip-gram模型,提升了詞向量訓(xùn)練的性能。Zhou[10]等利用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)建模,提取文本的序列信息進(jìn)行文本分類(lèi)。在神經(jīng)網(wǎng)絡(luò)的選擇上,也有學(xué)者嘗試使用卷積神級(jí)網(wǎng)絡(luò)(CNN)進(jìn)行建模。Kim[11]等利用不同尺度的卷積核多方位地提取文本特征,從而達(dá)到文本分類(lèi)的目的。Zhang[12]等比較了不同層面的詞嵌入對(duì)于文本分類(lèi)結(jié)果的影響。注意力機(jī)制最早運(yùn)用了圖像處理領(lǐng)域,現(xiàn)在也逐漸應(yīng)用了自然語(yǔ)言處理領(lǐng)域來(lái)挖掘文本更深層次的語(yǔ)義信息。Bahdanau[13]等將注意力機(jī)制應(yīng)用于機(jī)器翻譯任務(wù)中,提升了機(jī)器翻譯的效果。Lu?ong[14]等提出了全局注意力模型和局部注意力模型。Lin[15]等將引入自注意力機(jī)制引入句子分類(lèi)任務(wù)中,挖掘句子內(nèi)部的聯(lián)系從而提升句子分類(lèi)性能。
綜上所述,本文提出了一種結(jié)合注意力機(jī)制的文本分類(lèi)方法。首先利用卷積神經(jīng)網(wǎng)絡(luò)提取文本的全局特征,考慮不同的詞對(duì)于文本分類(lèi)影響程度的不同,引入注意力機(jī)制構(gòu)建模型,提取更加豐富的文本特征,達(dá)到提升分類(lèi)效果的目的。
結(jié)合注意力機(jī)制的新聞文本分類(lèi)模型分成兩部分,模型總體構(gòu)架如圖1如示,左半部分利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,右半部分引入注意力機(jī)制提取,考慮不同詞對(duì)于分類(lèi)的不同影響,為文本分類(lèi)提供更多的信息。下面將具體描述該模型的每個(gè)部分。
文本是不能直接被計(jì)算機(jī)所理解,在進(jìn)行文本處理的第一步是將文本數(shù)字化。一種最簡(jiǎn)單而直接的詞向量表示方法是獨(dú)熱表示(one-hot Repre?sentation),用一個(gè)很長(zhǎng)的向量來(lái)表示一個(gè)詞,向量的長(zhǎng)度是詞典的大小,向量只在該詞在詞典中索引的位置取1,其他所有位置取0。這種詞向量表示方法不能表達(dá)語(yǔ)義信息,同時(shí)由于巨大的單詞表導(dǎo)致向量的維數(shù)很大,容易發(fā)生維數(shù)災(zāi)難。

圖1 整體結(jié)構(gòu)圖
另一種表示方法是分布式表(Distributed Rep?resentation),它可以將詞映射成一個(gè)固定長(zhǎng)度的向量,這些向量是帶有語(yǔ)義信息的,語(yǔ)義關(guān)系越緊密的詞在向量空間內(nèi)的距離會(huì)更近?,F(xiàn)在最流行的word2vec便是采用這樣的詞向量表示方法。如式(1)所示,文本d可視為詞的序列:

其中l(wèi)表示文本的長(zhǎng)度, ||V表示詞匯表 ||V的大小,wordi∈R||V表示文本中第i個(gè)詞。假設(shè)詞向量矩陣M∈Rd×|V|,其中d表示詞向量的維度,第i個(gè)詞的詞向量如式(2)所示。

經(jīng)過(guò)詞嵌入之后,文本被轉(zhuǎn)化成詞嵌入序列,如式(3)所示。

其中xi表示文本第i個(gè)詞的詞嵌入。接下來(lái)利用卷積神經(jīng)網(wǎng)絡(luò)提取文本的特征,如圖2所示。

圖2 卷積特征提取
卷積為w×d的卷積核在文本詞嵌入矩陣X上向右滑動(dòng),提取窗口w上的文本特征。為了提取盡量豐富的文本特征,本文設(shè)計(jì)了三種尺度的卷積核:3×d,4×d和5×d,每一種尺度的卷積核選取200個(gè)。卷積的計(jì)算公式如式(4):

其中W 為卷積核的權(quán)值,h為窗口的大小,Xi:i+w-1為i到i+w-1窗口內(nèi)的詞嵌入矩陣,b為偏置,f為激活函數(shù),在本文中選擇relu函數(shù)。最后對(duì)每一個(gè)特征向量ci進(jìn)行池化操作,池化能夠降低特征維數(shù),避免過(guò)擬合現(xiàn)象的發(fā)生。常見(jiàn)的池化有均值池化和最大化池化,本文采用最大化池化,即選擇卷積結(jié)果的最大值。將池化后的結(jié)果,拼接之后便得到總的特征向量:

考慮到每一個(gè)詞對(duì)于分類(lèi)的貢獻(xiàn)程度不同,本文引入了注意力機(jī)制來(lái)提取更加全面的文本特征。首先讓詞向量矩陣X通過(guò)一個(gè)雙向GRU[16]網(wǎng)絡(luò),獲取文本的表示。

其中xt表示第i個(gè)詞的詞嵌入,t表示t時(shí)刻GRU前向隱藏層的狀態(tài),表示t時(shí)刻GRU后向隱藏層的狀態(tài)。將前向和后向的隱藏狀態(tài)進(jìn)行連接得到 ht,假設(shè)隱藏層的長(zhǎng)度為 u,那么 ht∈R2u,H∈Rl×2u表示所有隱藏狀態(tài)的集合:

然后將隱藏層狀態(tài)集合H經(jīng)過(guò)非線性變換得到隱含表示u,再通過(guò)隨機(jī)初始化的注意力機(jī)制矩陣us與u進(jìn)行點(diǎn)乘運(yùn)算并使用softmax得到每個(gè)隱藏狀態(tài)ht的權(quán)重αi。最后將每個(gè)隱藏狀態(tài)hi乘以對(duì)應(yīng)的權(quán)重αi并求和,得到最終的注意力詞對(duì)分類(lèi)的注意力矩陣v,該過(guò)程可描述為

最后,將兩部分網(wǎng)絡(luò)得到的特征向量c和a拼接在一起,經(jīng)過(guò)全連接層映射成類(lèi)別,最后通過(guò)softmax函數(shù)計(jì)算屬于某一類(lèi)別的概率。
本文實(shí)驗(yàn)在Windows操作系統(tǒng)下進(jìn)行,使用的CPU為Intel Core i5-4590 3.3GHz,內(nèi)存大小為8G。使用Python3.5編程,開(kāi)發(fā)工具為Pytorch 0.4。本文實(shí)驗(yàn)數(shù)據(jù)采用清華大學(xué)自然語(yǔ)言處理實(shí)驗(yàn)室中文文本分類(lèi)數(shù)據(jù)(THUCTC)[17],該數(shù)據(jù)包含74萬(wàn)篇新聞文檔,劃分出14個(gè)候選分類(lèi)類(lèi)別:財(cái)經(jīng)、房產(chǎn)、家居、教育、科技、時(shí)尚、時(shí)政、體育、游戲、娛樂(lè)。選取了其中10個(gè)類(lèi)別50000條數(shù)據(jù)作為訓(xùn)練集、10000條數(shù)據(jù)作為測(cè)試集、5000條數(shù)據(jù)作為驗(yàn)證集。
3.2.1 預(yù)訓(xùn)練詞向量
本文使用gensim工具包詞向量訓(xùn)練工具預(yù)訓(xùn)練詞向量,為了保證訓(xùn)練出來(lái)的詞向量的準(zhǔn)確性,應(yīng)選擇盡量大的語(yǔ)料庫(kù)來(lái)進(jìn)行訓(xùn)練。為此,選取了三種公開(kāi)的語(yǔ)料庫(kù)來(lái)進(jìn)行訓(xùn)練:維基百科中文語(yǔ)料庫(kù)、搜狗新聞CA語(yǔ)料庫(kù)和微信公眾號(hào)語(yǔ)料庫(kù)。在詞向量的訓(xùn)練過(guò)程中,詞向量的維度設(shè)置為512維,滑動(dòng)窗口大小設(shè)為5。
3.2.2 實(shí)驗(yàn)方法
為了考察注意力機(jī)制的引入對(duì)于分類(lèi)結(jié)果的影響,將本文模型與經(jīng)典的CNN分類(lèi)模型進(jìn)行比較。同時(shí),還將一些傳統(tǒng)的分類(lèi)模型如樸素貝葉斯(NB)、最大近鄰(KNN)和支持向量機(jī)(SVM)加入對(duì)比實(shí)驗(yàn),對(duì)比傳統(tǒng)機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法對(duì)文本分類(lèi)任務(wù)的優(yōu)劣。模型的評(píng)價(jià)指標(biāo)采用準(zhǔn)確率(Precise),召回率(Recall)和 F1值來(lái)衡量。深度學(xué)習(xí)網(wǎng)絡(luò)權(quán)重初始化為標(biāo)準(zhǔn)差為0.1的正態(tài)分布隨機(jī)數(shù)。采用Adam方法對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,學(xué)習(xí)率設(shè)置為0.001。為了防止過(guò)擬合,在全連接層引入Dropout[18]策略,系數(shù)設(shè)為 0.5。GRU隱藏層長(zhǎng)度為100,輸入批次大小為64。
表1所示的是不同分類(lèi)模型的Precision值、Recall值和F1值的比較。從表1可以看出,各個(gè)分類(lèi)器在分類(lèi)問(wèn)題上均表現(xiàn)出較好的分類(lèi)結(jié)果。對(duì)比傳統(tǒng)機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型可以發(fā)現(xiàn),深度學(xué)習(xí)模型性能均優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)模型。實(shí)驗(yàn)展現(xiàn)了深度學(xué)習(xí)方法的優(yōu)勢(shì),得益于深度學(xué)習(xí)方法強(qiáng)大的擬合能力,另外深度學(xué)習(xí)方法不需要添加過(guò)多的人工特征就可以達(dá)到優(yōu)秀的分類(lèi)性能。對(duì)比經(jīng)典的CNN分類(lèi)模型和文本模型,在引入了注意力機(jī)制之后,考慮了不同的詞對(duì)于分類(lèi)的貢獻(xiàn)度的不同,為分類(lèi)模型提供了更加豐富的特征,從而提升了分類(lèi)模型的整體性能。

表1 不同分類(lèi)模型分類(lèi)結(jié)果比較
本文提出了一種結(jié)合注意力模型的新聞文本分類(lèi)方法。首先利用word2vec訓(xùn)練大規(guī)模中文預(yù)料,從大量文本信息中得到詞的詞向量,作為文本的特征表達(dá)。經(jīng)典的CNN文本分類(lèi)模型沒(méi)有考慮到不同詞對(duì)分類(lèi)的貢獻(xiàn)程度,本文利用注意力機(jī)制訓(xùn)練注意力網(wǎng)絡(luò)并在經(jīng)典的CNN文本分類(lèi)模型中加入該特征。實(shí)驗(yàn)比較了傳統(tǒng)文本方法和深度文本分類(lèi)方法的優(yōu)劣以及注意力機(jī)制的引入對(duì)于分類(lèi)結(jié)果的影響。實(shí)驗(yàn)結(jié)果表明,本文提出的新聞文本方法能夠提供更豐富的特征,提高分類(lèi)模型的性能。