摘 ?要: 大數(shù)據(jù)時代海量的文本數(shù)據(jù)蘊含著極大的科研價值,文本分類技術(shù)得到廣泛的關(guān)注。文本分類在信息檢索、自動問答等應(yīng)用領(lǐng)域占據(jù)重要地位,是自然語言處理研究的關(guān)鍵技術(shù)之一。本文針對神經(jīng)網(wǎng)絡(luò)分類方法訓(xùn)練時間長性能仍可提高,提出一種嵌入式注意力機(jī)制模塊(Eam),用來增強(qiáng)已有的文本分類神經(jīng)網(wǎng)絡(luò)模型。該模塊將重點關(guān)注數(shù)據(jù)中什么是最有意義及哪里含有的信息量更為豐富,從而高效提取文本中有價值的信息區(qū)域加速模型收斂。本文以增強(qiáng)TextCNN、ImdbCNN為例,在公開數(shù)據(jù)集IMDB上證明Eam的有效性,同等參數(shù)配置情況下能夠提升模型的準(zhǔn)確率、召回率及F1值,較原模型能夠更快收斂減少訓(xùn)練時間。
關(guān)鍵詞: 文本分類;神經(jīng)網(wǎng)絡(luò);注意力機(jī)制;TextCNN
中圖分類號: TP391.1 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.036
本文著錄格式:熊寬. 一種基于嵌入式注意力機(jī)制的文本分類方法[J]. 軟件,2020,41(06):171176
【Abstract】: The huge amount of text data in the era of big data contains great scientific research value, and the text classification technology has received widespread attention. Text classification occupies an important position in the fields of information retrieval, automatic question answering and other applications, and is one of the key technologies in natural language processing research. Aiming at the long training time performance of neural network classification method, this paper proposes an embedded attention mechanism module (Eam) to enhance the existing neural network model of text classification. This module will focus on what is most meaningful in the data and where the amount of information is more abundant, so as to efficiently extract valuable information areas in the text and accelerate model convergence. This paper takes Enhanced TextCNN and ImdbCNN as examples, and proves the validity of Eam on the public dataset IMDB. It can improve the accuracy, recall and F1 value of the model under the same parameter configuration, which can converge faster and reduce the training time than the original model.
【Key words】: Text classification; Neural Networks; Attention mechanism; TextCNN
0 ?引言
文本分類(Text Categorization)是指依據(jù)文本的內(nèi)容,由計算機(jī)根據(jù)某種自動分類算法,把文本判分為預(yù)先定義好的類別[1]。文本分類是自然語言處理(NLP)領(lǐng)域中一項具有挑戰(zhàn)性的任務(wù),它在情感分類、自動問答、輿情分析等領(lǐng)域具有廣泛的應(yīng)用[2]。
傳統(tǒng)的文本分類方法主要根據(jù)文本與類別標(biāo)簽的相關(guān)性來對文本進(jìn)行標(biāo)簽,該標(biāo)簽根據(jù)統(tǒng)計指標(biāo)估算。例如,詞袋模型[3]計算共現(xiàn)詞的出現(xiàn)頻率,n元語法模型[4]計算單詞對的頻率,而TF-IDF模型[5]計算不同文檔中每個單詞的權(quán)重得分。
上述基于統(tǒng)計的方法不僅丟失了詞序信息,而且存在數(shù)據(jù)稀疏和維數(shù)災(zāi)難問題。隨著分布假說理論和文本的分布表示方法的提出,這一問題得到有效解決[6,7]。其主要有基于矩陣的分布表示方法,該方法通過構(gòu)建“詞-上下文”矩陣獲取文本表示;基于聚類的分布表示運用聚類構(gòu)建詞與上下文的表示;基于神經(jīng)網(wǎng)絡(luò)的分布表示方法通過詞向量(Word Embdding)構(gòu)建目標(biāo)詞與上下文的關(guān)系。與傳統(tǒng)的文本分類算法相比,基于分布表示的分類算法在保留詞序信息的前提下,有效解決數(shù)據(jù)稀疏和維數(shù)災(zāi)難問題,準(zhǔn)確度及性能方面有了提升。但仍存在模型參數(shù)多、時間復(fù)雜度高等問題,導(dǎo)致模型的訓(xùn)練時間長、所需計算資源大。
為解決上述問題,本文提出一種適用于文本分類的嵌入式注意力機(jī)制,該嵌入式注意力機(jī)制能夠有效挖掘文本中最有意義的信息和信息含義最豐富的區(qū)域。本文以增強(qiáng)TextCNN、ImdbCNN為例,在IMDB數(shù)據(jù)集上進(jìn)行驗證,實驗表明該種嵌入式注意力機(jī)制能夠有效提升原模型的正確率、召回率及F1值,同時降低loss損失。
1 ?相關(guān)工作
文本分類相關(guān)任務(wù)的核心在于如何獲取文本表示。通常將文本表示方法分類兩類,一類是傳統(tǒng)的離散表示,另一類是基于分布假說理論的分布表示方法。
1.1 ?離散表示
離散形式的表示方法有詞袋模型(Bag-of- Words)和n元短語模型(N-grams)模型,該類模型將文本中的每個單詞或者單詞對視為一個離散的實體,采用獨熱編碼(One-hot Encoding)的形式來表示其在文檔中出現(xiàn)的頻率。詞袋模型忽略文檔中單詞的順序、語法句法等重要因素,僅僅將文檔看作是若干單詞的集合,而n元短語模型雖然解決前N–1個單詞語義信息丟失的問題,但當(dāng)N過大時,模型參數(shù)空間也會隨著增大,導(dǎo)致數(shù)據(jù)稀疏維數(shù)過高。將獨熱編碼轉(zhuǎn)化為word2vec的表示形式能更好地反映單詞間語義的聯(lián)系[4],為突出單詞對文檔的重要性,TF-IDF(詞頻逆文檔頻率)方法用于提高文檔分類的性能[5]。離散表示形式丟失了詞序信息,而且存在數(shù)據(jù)稀疏和維數(shù)災(zāi)難問題。
1.2 ?分布表示
基于分布假說理論的分類表示方法利用分布表示,能有效保留詞序信息降低數(shù)據(jù)稀疏性[6,7],分布表示方法分三類。基于矩陣的分布表示通過構(gòu)建“詞-上下文”矩陣,此類模型矩陣中的每個元素為詞和上下文共現(xiàn)次數(shù),利用TF-IDF、取對數(shù)等技巧進(jìn)行加權(quán)和平滑,使用SVD、NMF等手段對矩陣進(jìn)行分解降維[8,9]?;诰垲惖姆植急硎居直环Q之為分布聚類[10],此類方法通過聚類來構(gòu)建詞與其上下文之間的關(guān)系,代表方法有布朗聚類[11]?;谏窠?jīng)網(wǎng)絡(luò)的分類表示通過詞向量技術(shù)對上下文及目標(biāo)詞間的關(guān)系進(jìn)行建模。
2003年神經(jīng)網(wǎng)絡(luò)語言模型(Neural Network Language Model,NNLM)被Bengio等提出并應(yīng)用,且證實NNLM可以對更長的依賴關(guān)系進(jìn)行建模[8]。此后一系列基于此的模型被提出,但都無法擺脫高復(fù)雜度的束縛[12,13,14,15]。2013年Mikolov提出CBOW(Continuous Bag of-Words)和Skip-gram模型,該模型在之前模型的基礎(chǔ)上進(jìn)行簡化保留核心部分,使得神經(jīng)網(wǎng)絡(luò)模型在自然語言處理中獲取詞向量變得更加高效[16]。
Kim直接將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)體系結(jié)構(gòu)用于文本分類[17]。在字符級別使用CNN體系結(jié)構(gòu)來表示文本[4],將多任務(wù)學(xué)習(xí)框架與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)結(jié)構(gòu)結(jié)合起來共同跨多個相關(guān)任務(wù)學(xué)習(xí)[18],采用遞歸結(jié)構(gòu)掌握上下文信息,并通過使用最大池化層來識別文本中的關(guān)鍵組成部分[19]。分布表示方法雖然能從大規(guī)模數(shù)據(jù)集中自動學(xué)習(xí)特征,但存在可解釋性差、訓(xùn)練時間長、訓(xùn)練參數(shù)多等不足。
1.3 ?注意力機(jī)制
注意力在人類感知中起著重要的作用,人類視覺系統(tǒng)的一個重要特性是不會立即處理整個場景[20]。取而代之的是,人類利用一連串的部分瞥見,并有選擇地專注于突出部分,以便更好地捕獲視覺結(jié)構(gòu)。
注意力機(jī)制由Bahdanau等人[21]在機(jī)器翻譯領(lǐng)域提出,為結(jié)合注意力來提高大規(guī)模分類任務(wù)中CNN的性能,一種使用編碼器-解碼器風(fēng)格的注意力模塊的殘余注意力網(wǎng)絡(luò)被提出[22]。通過細(xì)化特征圖,該網(wǎng)絡(luò)不僅性能良好,而且對嘈雜的輸入也具有較強(qiáng)的魯棒性。
注意力機(jī)制的好處是它們允許處理可變大小的輸入,著眼于輸入中最相關(guān)的部分以做出決策。當(dāng)注意力機(jī)制用于計算單個序列的表示時,通常稱為自我注意力或內(nèi)部注意力。自注意力機(jī)制通常與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)或卷積神經(jīng)網(wǎng)絡(luò)(CNN)一起使用,事實證明,自注意力對機(jī)器閱讀和學(xué)習(xí)句子表示等任務(wù)很有用。自注意力不僅可以改進(jìn)基于RNN或卷積的方法,而且可用于構(gòu)建強(qiáng)大的模型來提高機(jī)器翻譯任務(wù)的性能[23]。本文所提出的嵌入式注意力機(jī)制是自注意力的一種。
2 ?Eam模型
如圖1所示在模塊Eam中,輸入的數(shù)據(jù)將先經(jīng)過Eam-channel處理,處理完成后輸入Eam-spatial,最后產(chǎn)生最終輸出。在文本數(shù)據(jù)中,對于任意給定的中間態(tài)特征圖 作為嵌入的注意力模塊(Embeddable attention module)模型的輸入數(shù)據(jù)。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)的特性,本文將該卷積塊設(shè)置為通道維度(Eam-channel)和空間維度(Eam-spatial)的組合模型。而通道維度的產(chǎn)物通常是一維的 ,空間維度的產(chǎn)物通常是二維的 。
3 ?實驗
3.1 ?數(shù)據(jù)集及訓(xùn)練環(huán)境
IMDB:IMDB數(shù)據(jù)集為2分類數(shù)據(jù)集,共89527個單詞5萬條來自網(wǎng)絡(luò)電影數(shù)據(jù)庫的評論。其中訓(xùn)練集與測試集分別為2.5萬條,每部分正負(fù)評論各占50%,數(shù)據(jù)集由Keras官網(wǎng)提供。
實驗采用Keras+Tensorflow相結(jié)合的形式,Keras作為上層語言,tensorflow作為keras的后端支持。Pyhon版本為3.6.10,keras版本為2.2.4,tensorflow版本為tensorflow-gpu1.8.0。
3.2 ?評價指標(biāo)
本文采用正確率(Accuracy)、精準(zhǔn)率(Precision)、召回率(Recall)、F1值來評價模型性能。表1評價的混淆矩陣覆蓋每次的預(yù)測情況,TP是被正確地劃分為正例的個數(shù),F(xiàn)P是被錯誤地劃分為正例的個數(shù),F(xiàn)N是被錯誤地劃分為負(fù)例的個數(shù),TN是被正確地劃分為負(fù)例的個數(shù)。P表示實際正例個數(shù),N表示實際負(fù)例個數(shù),表示方式如式(5)~(6)所示。
在進(jìn)行性能評價時,查準(zhǔn)率用作評價分類器的正確率,召回率用作評價分類器的覆蓋率,F(xiàn)1值是查準(zhǔn)率與召回率的調(diào)和平均值,以其評價分類器的綜合性能。它們的表示方式如式(7)~(10)所示。
3.3 ?超參數(shù)設(shè)置
模型預(yù)訓(xùn)練的詞向量維度為400并進(jìn)行隨機(jī)初始化,權(quán)重隨機(jī)初始化為標(biāo)準(zhǔn)差為0.1的正態(tài)分布隨機(jī)數(shù),同時所有詞向量在訓(xùn)練時進(jìn)行微調(diào)。丟棄率(dropout)設(shè)為0.5,卷積核大?。╧ernel-size)設(shè)為3,濾波器個數(shù)設(shè)為250,隱藏層的維度設(shè)為250,L2正則化權(quán)重為0.0001,學(xué)習(xí)率為0.01,學(xué)習(xí)率的下降率為0.05,每個batch中32個樣本,訓(xùn)練輪次(epoch)為5,并在每個epoch過程中采用EarlyStopping防止過擬合,使用Adam加快模型訓(xùn)練速度。
3.4 ?結(jié)果分析
本文選取TextCNN及ImdbCNN作為基礎(chǔ)模型,在二者中分別嵌入Eam模塊,使用IMDB數(shù)據(jù)集進(jìn)行實驗論證。
如表2所示,經(jīng)測試集驗證,模型準(zhǔn)確率(accuracy)提高,loss損失下降。查準(zhǔn)率(precision)低于原模型,召回率在經(jīng)Eam模塊加強(qiáng)后有5%的提升效果,遠(yuǎn)高于原模型。由于查準(zhǔn)率低于原模型但召回率高于原模型,無法直觀衡量其增強(qiáng)效果,為進(jìn)一步證明Eam模塊的有效性,本文引入二者的調(diào)和平均數(shù)F1值來評價增強(qiáng)模型的性能,數(shù)據(jù)表明在引入Eam模塊后F1值穩(wěn)定提升。
由于采用EarlyStopping防范過擬合策略,模型TextCNN-eam和模型ImdbCNN-eam分別在訓(xùn)練輪次(epoch)為3和2時停止訓(xùn)練。表3表明Eam增強(qiáng)模型整體用時普遍小于原模型,但單次訓(xùn)練時長要大于原模型。結(jié)合表4可知,總訓(xùn)練的超參數(shù)個數(shù)對訓(xùn)練時長有較大的影響,雖然嵌入式注意力機(jī)制模塊可提升原有模型性能,但由于疊加多層網(wǎng)絡(luò)結(jié)構(gòu)導(dǎo)致超參數(shù)過多單次訓(xùn)練時長較長,在超大規(guī)模的文本分類任務(wù)中性能與訓(xùn)練時長可能無法 ?平衡。
本文在確定超參數(shù)卷積核大小、丟棄率時,分別設(shè)置不同對比組以確定最佳的參數(shù)設(shè)定值。在數(shù)據(jù)集IMDB上進(jìn)行驗證時,不同的參數(shù)對于模型正確率的影響是不一致的。從圖5可以看到卷積核對單個模型自身的影響是有限的,對準(zhǔn)確度的影響稍小。圖6表明當(dāng)丟棄率大于0.7時,即每次訓(xùn)練隨機(jī)丟棄的連接層大于70%時,模型性能急速下降處于欠擬合狀態(tài);當(dāng)丟棄率設(shè)置為0.5時,模型正確率達(dá)到最高;當(dāng)丟棄率小于0.5時,除ImdbCNN外正確率都在下降,訓(xùn)練集的正確率仍在上升,這表明模型出現(xiàn)過擬合。綜合考慮模型正確率及訓(xùn)練時長,最終確定卷積核大小為3丟棄率為0.5作為最佳參數(shù)配置。
4 ?結(jié)論與展望
為提升文本分類的正確率加快模型訓(xùn)練速度,本文提出一種嵌入式的自注意力機(jī)制模塊Eam,并將Eam分別嵌入TextCNN、ImdbCNN模型進(jìn)行對比論證。由于自注意力機(jī)制能夠有效獲取文本中的關(guān)鍵信息,最終實驗結(jié)果表明經(jīng)Eam增強(qiáng)的后模型較原有模型性能、準(zhǔn)確度、召回率、F1值都有所提升。目前Eam模塊仍存在一些不足,如單次訓(xùn)練時間長、訓(xùn)練參數(shù)多,在大規(guī)模語料庫上性能可能存在問題,長文本分類結(jié)果不理想。后續(xù)工作將圍繞兩方面展開:選擇不同規(guī)模的語料庫及多種模型驗證Eam模塊的有效性;在Eam中使用Top-k池化替代最大池化,獲取到更為豐富的語義信息從而進(jìn)一步增強(qiáng)其特征表示能力。
參考文獻(xiàn)
[1] 陶永才, 楊朝陽, 石磊, 衛(wèi)琳. 池化和注意力相結(jié)合的新聞文本分類方法[J]. 小型微型計算機(jī)系統(tǒng), 2019, 40(11): 2393-2397.
[2] Tang D, Qin B, Liu T. Document modeling with gated recurrent neural network for sentiment classification[C]// ?Proceedings of the 2015 conference on empirical methods in natural language processing. 2015: 1422-1432.
[3] Joachims T. Text categorization with support vector machines: Learning with many relevant features[C]//European conference on machine learning. Springer, Berlin, Heidelberg, 1998: 137-142.
[4] Zhang X, Zhao J, LeCun Y. Character-level convolutional networks for text classification[C]//Advances in neural information processing systems. 2015: 649-657.
[5] Robertson S. Understanding inverse document frequency: on theoretical arguments for IDF[J]. Journal of documentation, 2004.
[6] Harris Z S. Distributional structure[J]. Word, 1954, 10(2-3): 146-162.
[7] Firth J R. A synopsis of linguistic theory, 1930-1955[J]. Studies in linguistic analysis, 1957.
[8] Pennington J, Socher R, Manning C D. Glove: Global vectors for word representation[C]//Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014: 1532-1543.
[9] Lebret R, Collobert R. Word emdeddings through hellinger PCA[J]. arXiv preprint arXiv: 1312. 5542, 2013.
[10] Pereira F, Tishby N, Lee L. Distributional clustering of English words[C]//Proceedings of the 31st annual meeting on Association for Computational Linguistics. Association for Computational Linguistics, 1993: 183-190.
[11] Brown P F, Desouza P V, Mercer R L, et al. Class-based n-gram models of natural language[J]. Computational linguistics, 1992, 18(4): 467-479.
[12] Mnih A, Hinton G. Three new graphical models for statistical language modelling[C]//Proceedings of the 24th international conference on Machine learning. ACM, 2007: 641-648.
[13] Mnih A, Hinton G E. A scalable hierarchical distributed language model[C]//Advances in neural information processing systems. 2009: 1081-1088.
[14] Mnih A, Kavukcuoglu K. Learning word embeddings efficiently with noise-contrastive estimation[C]//Advances in neural information processing systems. 2013: 2265-2273.
[15] Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Eleventh annual conference of the international speech communication association. 2010.
[16] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in neural information processing systems. 2013: 3111-3119.
[17] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv: 1408. 5882, 2014.
[18] Liu P, Qiu X, Huang X. Recurrent neural network for text classification with multi-task learning[J]. arXiv preprint arXiv: 1605. 05101, 2016.
[19] Lai S, Xu L, Liu K, et al. Recurrent convolutional neural networks for text classification[C]//Twenty-ninth AAAI conference on artificial intelligence. 2015.
[20] Itti L, Koch C, Niebur E. A model of saliency-based visual attention for rapid scene analysis[J]. IEEE Transactions on pattern analysis and machine intelligence, 1998, 20(11): 1254-1259.
[21] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv: 1409. 0473, 2014.
[22] Wang F, Jiang M, Qian C, et al. Residual attention network for image classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 3156-3164.
[23] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
[24] 陳海紅. 多核SVM 文本分類研究[J]. 軟件, 2015, 36(5): 7-10.
[25] 劉騰飛, 于雙元, 張洪濤, 等. 基于循環(huán)和卷積神經(jīng)網(wǎng)絡(luò)的文本分類研究[J]. 軟件, 2018, 39(01): 64-69.
[26] 張曉明, 尹鴻峰. 基于卷積神經(jīng)網(wǎng)絡(luò)和語義信息的場景分類[J]. 軟件, 2018, 39(01): 29-34.
[27] 吳亞熙, 岑峰. 基于卷積神經(jīng)網(wǎng)絡(luò)的多層級目標(biāo)檢測方法[J]. 軟件, 2018, 39(4): 164-169.
[28] 陳海紅. 多核SVM 文本分類研究[J]. 軟件, 2015, 36(5): 7-10.