唐 莊,王志舒,周 愛(ài),馮美姍,屈 雯,魯明羽
大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連116026
文本分類(lèi)是自然語(yǔ)言處理領(lǐng)域中一個(gè)經(jīng)典問(wèn)題,其核心任務(wù)是對(duì)文本的合理建模,提取到文本的特征表示,以便把數(shù)據(jù)集中的每個(gè)樣本劃分到正確的類(lèi)別中去。
由于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型具有自學(xué)習(xí)、自適應(yīng)和強(qiáng)大的泛化能力等優(yōu)點(diǎn),已被普遍應(yīng)用于文本分類(lèi)任務(wù)中。目前深度學(xué)習(xí)主流的神經(jīng)網(wǎng)絡(luò)模型包括卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1]、長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory Networks,LSTM)[2]以及兩者的各種變體。CNN通過(guò)固定窗口大小的卷積核一次滑動(dòng)多個(gè)單詞,提取到局部短語(yǔ)特征,然后用最大池化選擇最顯著的特征,這會(huì)過(guò)濾掉許多底層信息。Sabour 等人提出膠囊網(wǎng)絡(luò)(Capsule network)來(lái)解決上述信息損失問(wèn)題,用矢量膠囊代替標(biāo)量神經(jīng)元[3]。
雖然膠囊網(wǎng)絡(luò)改進(jìn)了傳統(tǒng)CNN 中的最大池化操作,但本質(zhì)上依舊是通過(guò)卷積提取到文本的局部短語(yǔ)特征,忽略了上下文序列對(duì)當(dāng)前詞的影響;transformer 作為一種新型的網(wǎng)絡(luò)模型,可以一次性遍歷整個(gè)文本序列從而提取到全局語(yǔ)義特征,已廣泛應(yīng)用于序列編碼-解碼任務(wù)中[4],但缺點(diǎn)是面對(duì)長(zhǎng)文本時(shí)不僅費(fèi)時(shí),且沒(méi)有考慮到局部關(guān)鍵詞對(duì)文本分類(lèi)的重要性,難以捕獲局部短語(yǔ)特征。本文結(jié)合了transformer 和膠囊網(wǎng)絡(luò)兩種模型各自的優(yōu)點(diǎn),通過(guò)集成的形式將兩個(gè)模型分別提取到的局部短語(yǔ)特征和全局語(yǔ)義特征進(jìn)行融合,從局部到全局兩個(gè)層次對(duì)文本序列進(jìn)行建模,從而提取到多層次的、更全面的文本特征表示。此外,本文針對(duì)傳統(tǒng)膠囊網(wǎng)絡(luò)模型中存在部分噪音膠囊干擾的問(wèn)題,提出了基于注意力機(jī)制的動(dòng)態(tài)路由算法,使得分類(lèi)效果進(jìn)一步提升。
早期的文本分類(lèi)任務(wù)采用詞袋模型、N-gram和TFIDF 等特征作為各種分類(lèi)算法的輸入[5],如支持向量機(jī)(SVM)[6]、邏輯回歸[7]、樸素貝葉斯[8]等。然而,特征提取過(guò)程不僅存在數(shù)據(jù)稀疏和維度爆炸問(wèn)題,且隨著數(shù)據(jù)量增大,處理海量數(shù)據(jù)過(guò)程會(huì)費(fèi)時(shí)費(fèi)力。
近年來(lái),深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型已被廣泛應(yīng)用于文本分類(lèi)任務(wù)中。神經(jīng)網(wǎng)絡(luò)模型能從原始的數(shù)據(jù)中自動(dòng)提取有用的特征,大大提高了文本分類(lèi)任務(wù)的性能。Kim等人首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到文本分類(lèi)任務(wù)中,提出了textCNN模型,該模型利用多個(gè)不同大小的卷積核提取句子的短語(yǔ)信息[9]。textCNN模型需要使用預(yù)訓(xùn)練好的詞向量等信息,針對(duì)該問(wèn)題,Zhang 等人提出字符級(jí)卷積神經(jīng)網(wǎng)絡(luò)CL-CNN,從字符層面訓(xùn)練神經(jīng)網(wǎng)絡(luò),該方法的優(yōu)點(diǎn)是不需要使用預(yù)訓(xùn)練好的詞向量以及語(yǔ)法句法結(jié)構(gòu)等信息[10]。Joulin等人提出快速文本分類(lèi)算法fastText,該算法在保持較高分類(lèi)精度的情況下加快了模型訓(xùn)練速度[11]。Conneau等人提出了一個(gè)具有29個(gè)卷積層的深度卷積網(wǎng)絡(luò)VD-CNN用于文本分類(lèi),加深了網(wǎng)絡(luò)結(jié)構(gòu)[12]。張?jiān)降热嗽诖笠?guī)模弱監(jiān)督數(shù)據(jù)上訓(xùn)練CNN模型,同時(shí)引入“預(yù)訓(xùn)練-微調(diào)”策略,減少了弱監(jiān)督數(shù)據(jù)中的噪聲干擾[13]。CNN 通過(guò)卷積提取到文本的局部短語(yǔ)特征,而LSTM則解決了循環(huán)神經(jīng)網(wǎng)絡(luò)中存在的長(zhǎng)期依賴(lài)問(wèn)題,主要針對(duì)時(shí)序性文本序列。Tai 等人結(jié)合了LSTM 和樹(shù)形網(wǎng)絡(luò),提出了Tree-LSTM 模型,該模型在兩個(gè)文本分類(lèi)任務(wù)中取得了不錯(cuò)的效果[14]。傳統(tǒng)的LSTM網(wǎng)絡(luò)以時(shí)間順序處理文本序列,但忽略了下文信息對(duì)當(dāng)前詞的影響,Zhang 等人提出雙向LSTM 網(wǎng)絡(luò)用于文本分類(lèi),該網(wǎng)絡(luò)引入逆序遍歷的LSTM 層,將每個(gè)單詞前向和后向傳遞的信息合并,進(jìn)一步提高分類(lèi)效果[15]。李梅等人提出一種基于注意力機(jī)制的CNNLSTM 聯(lián)合模型,將CNN 的輸出作為L(zhǎng)STM 的輸入,然后進(jìn)行分類(lèi)預(yù)測(cè)[16]。
除了CNN、LSTM 這兩種網(wǎng)絡(luò)模型,Sabour 等人在2017年底提出了一種名為膠囊網(wǎng)絡(luò)的新型神經(jīng)網(wǎng)絡(luò),用矢量輸出膠囊代替了CNN 的標(biāo)量輸出神經(jīng)元,并用路由協(xié)議機(jī)制代替了CNN 中最大池化操作,在圖像領(lǐng)域MNIST 手寫(xiě)字符識(shí)別數(shù)據(jù)集上取得了很好的分類(lèi)結(jié)果[3]。Zhao 等人在2018 年底首次將膠囊網(wǎng)絡(luò)引入文本分類(lèi)任務(wù)中,在多個(gè)數(shù)據(jù)集上分類(lèi)性能超過(guò)了CNN 和LSTM[17]。
圖1 集成模型框架圖
基于transformer-capsule 集成模型的文本分類(lèi)框架如圖1 所示,以處理Reuters-21578 數(shù)據(jù)集為例,本文提出的模型包括以下四個(gè)部分:向量表示、特征提取、特征集成以及文本分類(lèi)。
(1)向量表示:使用預(yù)訓(xùn)練的詞嵌入數(shù)據(jù)庫(kù)word2vec,將原始文本序列映射為300維的詞向量矩陣。
(2)特征提?。簩⒃~向量矩陣作為膠囊網(wǎng)絡(luò)和transformer 的輸入,其中膠囊網(wǎng)絡(luò)首先用256 個(gè)3×300 的卷積核、步長(zhǎng)為2 做卷積運(yùn)算,經(jīng)過(guò)擠壓函數(shù)后形成16 維主膠囊層,經(jīng)過(guò)一次基于注意力機(jī)制的路由協(xié)議后連接分類(lèi)膠囊層,得到文本的局部短語(yǔ)特征;而transformer模型通過(guò)增加單詞位置編碼、殘差連接、層歸一化、前饋連接等操作處理輸入序列并將序列信息壓縮成固定長(zhǎng)度的語(yǔ)義向量,提取到全局語(yǔ)義特征。
(3)特征集成:將提取到的局部短語(yǔ)特征和全局語(yǔ)義特征進(jìn)行拼接融合,綜合得到文本的詞法、句法和語(yǔ)義信息。
(4)文本分類(lèi):通過(guò)一層全連接層將集成特征輸入到分類(lèi)器中,單標(biāo)簽分類(lèi)用softmax分類(lèi)器,多標(biāo)簽分類(lèi)用sigmoid分類(lèi)器。
transformer-capsule 集成模型框架圖中采用上下雙通道的形式對(duì)文本序列進(jìn)行建模,上通道為膠囊網(wǎng)絡(luò)模型,下通道為transformer 模型,下面對(duì)這兩種模型進(jìn)行介紹。
傳統(tǒng)的LSTM 由于在序列化處理時(shí)依賴(lài)于前一時(shí)刻的計(jì)算,并行效率低,模型運(yùn)行速度慢。transformer模型通過(guò)多頭自注意力機(jī)制可以在并行計(jì)算的同時(shí)捕獲長(zhǎng)距離依賴(lài)關(guān)系,充分學(xué)習(xí)到輸入文本的全局語(yǔ)義信息。transformer 模型主要用于seq2seq,采用編碼器-解碼器結(jié)構(gòu),本文用作文本分類(lèi)任務(wù)只用到了其中的編碼器結(jié)構(gòu),通過(guò)增加單詞位置編碼、殘差連接、層歸一化處理、前向連接等操作處理輸入序列并將序列信息壓縮成固定長(zhǎng)度的語(yǔ)義向量。transformer 模型中位置編碼計(jì)算公式如下:
其中,pos是指當(dāng)前詞在句子中的位置,i是指向量中每個(gè)值的索引,dmodel是指詞向量的維度,在偶數(shù)位置使用正弦編碼,在奇數(shù)位置使用余弦編碼。將位置向量與詞向量相加得到融合詞向量,豐富了文本詞向量的表示。transformer模型中多頭自注意力機(jī)制計(jì)算公式如下:
其中,xi表示融合詞向量x 的第i維,m表示輸入x 的均值,σ表示輸入x 的標(biāo)準(zhǔn)差,α、β是可學(xué)習(xí)的參數(shù),?是為了防止除數(shù)為0 而設(shè)置的小數(shù)。層歸一化旨在增強(qiáng)反向傳播信息流動(dòng)性,加快訓(xùn)練收斂速度,解決網(wǎng)絡(luò)訓(xùn)練困難,難以擬合的問(wèn)題。transformer模型中前向連接計(jì)算公式如下:
其中,y是經(jīng)過(guò)層歸一化后的輸出向量,e為偏置項(xiàng)。在多頭自注意力模塊后跟兩個(gè)全連接,中間加一個(gè)relu激活函數(shù),構(gòu)成雙層前饋神經(jīng)網(wǎng)絡(luò)。
傳統(tǒng)的CNN通過(guò)卷積核來(lái)提取文本序列的底層局部短語(yǔ)特征,最大池化操作雖然減少了網(wǎng)絡(luò)層神經(jīng)元數(shù)量,但卻造成了信息損失。膠囊網(wǎng)絡(luò)使用一組向量神經(jīng)元(膠囊)來(lái)替代傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的標(biāo)量神經(jīng)元節(jié)點(diǎn),改變了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)標(biāo)量與標(biāo)量相連的結(jié)構(gòu)。在各個(gè)網(wǎng)絡(luò)層中每個(gè)膠囊攜帶的信息從1 維增加到了多維。下層膠囊通過(guò)動(dòng)態(tài)路由機(jī)制(Dynamic Routing)將該層膠囊保存的計(jì)算結(jié)果傳遞給上層膠囊,從而實(shí)現(xiàn)在提取局部短語(yǔ)特征的同時(shí)減少信息的損失。
由于文本中存在著與分類(lèi)標(biāo)簽無(wú)關(guān)的詞語(yǔ),比如停用詞和連接詞等,下層膠囊中不可避免地會(huì)出現(xiàn)噪音膠囊,這些膠囊攜帶的信息對(duì)分類(lèi)結(jié)果的準(zhǔn)確性會(huì)造成一定的影響,因此本文對(duì)傳統(tǒng)的動(dòng)態(tài)路由機(jī)制做出了改進(jìn),提出基于注意力機(jī)制(attention)的動(dòng)態(tài)路由算法,利用兩層全連接神經(jīng)網(wǎng)絡(luò)產(chǎn)生每個(gè)膠囊的注意力值,歸一化后作為最終的注意力值,再乘以原始膠囊的輸出。這樣可以降低噪音膠囊的權(quán)重,減少噪音膠囊傳遞給上層膠囊的信息。動(dòng)態(tài)路由算法描述如下:
其中,sj為上層膠囊的輸入,u為下層膠囊的輸出,M為相鄰兩層之間的權(quán)值矩陣,cij為耦合系數(shù),表示下層膠囊i激活上層膠囊j的可能性,bij初始值設(shè)置為0,通過(guò)動(dòng)態(tài)路由更新cij從而更新bij,擠壓函數(shù)squash 及更新bij的計(jì)算公式如下:
其中,vj為上層膠囊的輸出,由于膠囊輸出向量的模長(zhǎng)代表類(lèi)別的概率值,擠壓函數(shù)將向量的模長(zhǎng)限定在[0,1]區(qū)間,輸出向量的模長(zhǎng)越大,代表文本所屬該類(lèi)的概率越大。
膠囊網(wǎng)絡(luò)在提取文本局部短語(yǔ)特征的同時(shí)減少了信息損失,transformer單元通過(guò)自注意力機(jī)制遍歷整個(gè)文本序列,從而提取到全局語(yǔ)義特征。本文采用的集成模型可以結(jié)合膠囊網(wǎng)絡(luò)和transformer各自的優(yōu)勢(shì),綜合考慮到文本的局部短語(yǔ)信息和全局語(yǔ)義信息,提高分類(lèi)效果。
由于分類(lèi)標(biāo)簽數(shù)固定,膠囊網(wǎng)絡(luò)和transformer具有相同的輸出維度,因此本文在模型集成階段采用合并拼接的方式,即拼接兩種網(wǎng)絡(luò)生成的特征向量,再通過(guò)一層全連接層映射到最終的分類(lèi)向量中。假設(shè)膠囊網(wǎng)絡(luò)的輸出向量為HC=(hC1,hC2,…,hCn),transformer 單元的輸出向量為HT=(hT1,hT2,…,hTn),集成后的特征向量為H ,計(jì)算公式如下:
其中,Dense是一個(gè)映射到類(lèi)別數(shù)上的全連接層。對(duì)于單標(biāo)簽數(shù)據(jù)集,對(duì)集成后的特征向量H 使用softmax分類(lèi)器得到每個(gè)類(lèi)別的概率值,選擇其中數(shù)值最大的對(duì)應(yīng)類(lèi)別為預(yù)測(cè)的分類(lèi)類(lèi)別;對(duì)于多標(biāo)簽數(shù)據(jù)集,對(duì)特征向量H 使用sigmoid分類(lèi)器,設(shè)置閾值為0.5,所有概率值大于該閾值的則給該樣本添加對(duì)應(yīng)的標(biāo)簽。
本文在4個(gè)單標(biāo)簽數(shù)據(jù)集和1個(gè)多標(biāo)簽數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),單標(biāo)簽數(shù)據(jù)集包括電影評(píng)論MR(Movie Review)、觀點(diǎn)分類(lèi)Subj(Subjectivity dataset)、問(wèn)題分類(lèi)TREC(TREC question dataset)和新聞分類(lèi)AG。多標(biāo)簽數(shù)據(jù)集為路透社新聞?wù)Z料庫(kù)Reuters-21578。各個(gè)數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集以及類(lèi)別數(shù),如表1所示。
本文實(shí)驗(yàn)基于TensorFlow實(shí)現(xiàn),使用300維word2vec向量來(lái)初始化詞嵌入向量,使用Adam 優(yōu)化器,學(xué)習(xí)率為0.001,模型具體超參數(shù)設(shè)置如表2所示。
表1 數(shù)據(jù)集類(lèi)別劃分
表2 實(shí)驗(yàn)超參數(shù)設(shè)置
本文實(shí)驗(yàn)中單標(biāo)簽數(shù)據(jù)集分類(lèi)性能評(píng)價(jià)指標(biāo)是分類(lèi)精度(Accuracy),多標(biāo)簽數(shù)據(jù)集評(píng)價(jià)指標(biāo)包括準(zhǔn)確率(Precision)、召回率(Recall)、F1 值(F1 Score),F(xiàn)1 值計(jì)算公式如下:
為驗(yàn)證本文提出的transformer-capsule 集成模型的有效性,本文在單標(biāo)簽對(duì)比實(shí)驗(yàn)上選取深度學(xué)習(xí)領(lǐng)域比較主流的幾個(gè)基線模型:LSTM、BiLSTM、Tree-LSTM、CNN、CL-CNN、VD-CNN,在多標(biāo)簽Reuters-21578 數(shù)據(jù)集上添加了膠囊網(wǎng)絡(luò)Capsule-A、Capsule-B以及具有代表性的機(jī)器學(xué)習(xí)模型Binary Relevance(BR)[18]、Classifier Chains(CC)[19]、Label Powerset(LP)[20]進(jìn)行實(shí)驗(yàn)。兩個(gè)膠囊網(wǎng)絡(luò)模型都采用了較復(fù)雜的兩次路由迭代機(jī)制,唯一區(qū)別是兩者在N-gram 卷積時(shí)N的取值不同。Capsule-A 中N取值為3,每次滑動(dòng)三個(gè)單詞,而Capsule-B 中N分別取值3、4、5,最后結(jié)果為三種取值下各自實(shí)驗(yàn)結(jié)果的平均值。本文的capsule模型簡(jiǎn)化了一次路由操作,因此減少了一層卷積膠囊層,但結(jié)合了注意力機(jī)制,大大縮短了實(shí)驗(yàn)時(shí)間。
實(shí)驗(yàn)中四個(gè)單標(biāo)簽數(shù)據(jù)集分別為MR、Subj、TREC和AG,實(shí)驗(yàn)結(jié)果如表3所示,表格內(nèi)容為分類(lèi)精度。多標(biāo)簽Reuters-21578數(shù)據(jù)集評(píng)價(jià)指標(biāo)為準(zhǔn)確率、召回率和F1 值,實(shí)驗(yàn)結(jié)果如表4 所示,其中加粗?jǐn)?shù)值為該數(shù)據(jù)集的評(píng)價(jià)指標(biāo)在所列模型中的最大值。
從表3和表4可看出,與傳統(tǒng)的CNN和LSTM等神經(jīng)網(wǎng)絡(luò)模型相比,本文提出的transformer-capsule 集成模型在三個(gè)單標(biāo)簽數(shù)據(jù)集上分類(lèi)性能較好。在Reuters-21578 多標(biāo)簽數(shù)據(jù)集上,本文提出的transformer-capsule集成模型在三個(gè)指標(biāo)準(zhǔn)確率、召回率以及F1 值上相比于傳統(tǒng)的CNN和LSTM等神經(jīng)網(wǎng)絡(luò)模型以及機(jī)器學(xué)習(xí)模型性能提升很多,其中在F1 值上相比于膠囊網(wǎng)絡(luò)Capsule-B模型提升了3.6%,并且本文的模型在保證高準(zhǔn)確率的同時(shí)其召回率相比于Capsule-B模型提升了6.0%。
表3 單標(biāo)簽數(shù)據(jù)集分類(lèi)精度 %
表4 Reuters-21 578數(shù)據(jù)集準(zhǔn)確率、召回率及F1值%
圖2 P值、R值、F1值隨路由次數(shù)變化圖
圖3 Reuters-21578數(shù)據(jù)集上文本特征可視化結(jié)果圖
為了驗(yàn)證本文提出的基于注意力機(jī)制的動(dòng)態(tài)路由算法的有效性,在Reuters-21578數(shù)據(jù)集上設(shè)置了兩組對(duì)比實(shí)驗(yàn),對(duì)transformer-capsule 集成模型分別使用原始路由算法(routing)以及基于注意力機(jī)制的動(dòng)態(tài)路由算法(ATT-routing)進(jìn)行實(shí)驗(yàn),準(zhǔn)確率P 值、召回率R 值和F1 值隨路由迭代次數(shù)的實(shí)驗(yàn)結(jié)果分別如圖2 中(a)、(b)、(c)所示。
從圖2(a)中看出,使用原始路由算法和基于注意力機(jī)制的動(dòng)態(tài)路由算法的transformer-capsule集成模型在第二次迭代時(shí)的分類(lèi)準(zhǔn)確率最高,但隨著路由次數(shù)增加,原始路由算法的準(zhǔn)確率迅速下降,而使用注意力機(jī)制的路由算法則相對(duì)平穩(wěn)。從圖2(b)和(c)看出,路由迭代次數(shù)設(shè)置為3時(shí)的分類(lèi)性能最好,且基于注意力機(jī)制的動(dòng)態(tài)路由算法在每次迭代時(shí)的R值和F1值都要明顯優(yōu)于原始路由算法。
為了得到一個(gè)更直觀的比較結(jié)果,在Reuters-21578數(shù)據(jù)集上進(jìn)行了結(jié)果可視化實(shí)驗(yàn),使用t-SNE算法分別將transformer、膠囊網(wǎng)絡(luò)capsule以及transformer-capsule集成模型學(xué)到的文本特征映射到二維空間進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果分別如圖3中(a)、(b)、(c)所示,每種顏色代表一個(gè)類(lèi)別,每個(gè)節(jié)點(diǎn)代表所屬該類(lèi)的一個(gè)樣本。
從圖3中看出,單獨(dú)膠囊網(wǎng)絡(luò)學(xué)到的文本特征效果不是很好,多個(gè)類(lèi)別樣本之間存在著高度重合情況,而transformer 模型存在的缺點(diǎn)是類(lèi)內(nèi)樣本點(diǎn)分布較為散亂。從圖3(c)中看出,transformer-capsule 集成模型學(xué)習(xí)到的文本特征更加豐富,不僅類(lèi)間樣本重合較少,且具有高度類(lèi)內(nèi)聚合性,這表明該模型能夠有效地結(jié)合膠囊網(wǎng)絡(luò)以及transformer的優(yōu)點(diǎn),充分學(xué)習(xí)到文本的局部短語(yǔ)特征和全局語(yǔ)義特征。
本文針對(duì)文本分類(lèi)任務(wù),提出了一種基于transformercapsule的集成模型,在幾個(gè)文本分類(lèi)通用語(yǔ)料數(shù)據(jù)集上獲得了較好的性能。膠囊網(wǎng)絡(luò)可以有效地捕獲文本中的局部短語(yǔ)特征并且減少信息損失,transformer通過(guò)多頭自注意力機(jī)制遍歷整個(gè)文本來(lái)提取全局語(yǔ)義特征,通過(guò)特征集成得到文本的多層次、更全面的特征表示。此外,本文針對(duì)文本中存在停用詞等與分類(lèi)結(jié)果無(wú)關(guān)詞語(yǔ)形成噪音膠囊的情況,提出基于注意力機(jī)制的動(dòng)態(tài)路由算法,降低噪音膠囊的權(quán)重,減少其傳遞給后續(xù)膠囊的干擾信息,有效地提升了分類(lèi)性能。