張 軍,邱龍龍
(1.東華理工大學(xué)軟件學(xué)院,江西 南昌 330013; 2.東華理工大學(xué)信息工程學(xué)院,江西 南昌 330013)
文本分類任務(wù)是一類典型的自然語言處理(Natural Language Processing, NLP)問題。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多的自然語言處理問題有了新的解決方法。許多學(xué)者都試圖使用深度學(xué)習(xí)模型對各類NLP任務(wù)提供解決思路并取得了突破性進(jìn)展[1-3]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)[4-5]是深度學(xué)習(xí)中的一類經(jīng)典模型,它最初被用來解決機(jī)器視覺和圖像處理領(lǐng)域的問題,之后也被應(yīng)用于包括詞向量訓(xùn)練和文本分類等在內(nèi)的自然語言處理任務(wù)中。然而,文本分類任務(wù)是典型的時間序列任務(wù),CNN并沒有對應(yīng)的機(jī)制對時序問題進(jìn)行有效的處理。
針對這一問題,有學(xué)者提出了循環(huán)神經(jīng)網(wǎng)絡(luò)模型(Recurrent Neural Networks, RNN)[6-8],它在結(jié)構(gòu)設(shè)計(jì)上考慮了時序任務(wù)的特性,為以文本分類任務(wù)為代表的各種時序任務(wù)提供了有效的解決思路。然而,由于RNN模型的訓(xùn)練算法基于梯度下降思想,其在訓(xùn)練時容易出現(xiàn)梯度消失問題。長短時記憶(Long-Short Time Memory, LSTM)[9-10]網(wǎng)絡(luò)試圖采用門控單元解決梯度消失問題,但由于LSTM不能同時考慮當(dāng)前時刻的前后時刻對當(dāng)前時刻的影響,在一定程度上影響了模型的性能。為了解決這個問題,Devlin等人提出了BERT (Bidirectional Encoder Representations from Transformers)模型[11-13],引入了基于注意力(Attention)機(jī)制[14]的自注意力(Self-Attention)機(jī)制和多頭注意力(Multi-Headed Attention)機(jī)制,同時考慮了當(dāng)前詞的前后單詞對當(dāng)前詞的影響,從而能夠生成更加準(zhǔn)確的文本表征,進(jìn)而提升文本分類準(zhǔn)確率。同時,由于BERT模型能夠并行地處理文本,使得其擁有更高的訓(xùn)練效率。
由于BERT模型的多頭注意力機(jī)制會為每個單詞生成一個表征向量,再將文本中所有單詞的表征向量組成一個矩陣來表征文本,這會為后續(xù)的下游分類任務(wù)帶來問題:網(wǎng)絡(luò)層無法直接接受矩陣作為輸入,導(dǎo)致分類任務(wù)無法進(jìn)行。為了解決這個問題,BERT在每個文本的前面加上一個無意義的符號[CLS],在經(jīng)過多頭注意力機(jī)制的計(jì)算后,[CLS]對應(yīng)的表征向量也學(xué)習(xí)到了文本的語義和上下文信息,故可以使用該向量來表征文本并進(jìn)行下游分類任務(wù)。然而,該方法雖然解決了分類層輸入的問題,但是使用該方式訓(xùn)練文本分類模型仍然存在不足:由于[CLS]對應(yīng)的向量沒有考慮到文本的整體和局部特征,導(dǎo)致得到的文本表征向量不夠準(zhǔn)確,進(jìn)而會限制文本分類模型的性能。
為了解決這個問題,本文將池化操作引入到文本分類模型中,結(jié)合預(yù)訓(xùn)練BERT模型生成更加準(zhǔn)確的文本表征向量,以此提高文本分類模型的性能。結(jié)果表明,在引入池化操作后,分類模型的性能在實(shí)驗(yàn)的所有文本分類任務(wù)中均得到了提升。
為了更好地理解BERT模型的工作原理,本章將詳細(xì)介紹BERT模型的邏輯結(jié)構(gòu)。BERT是一個基于Transformer[15]框架的通用語言模型,可為文本生成高質(zhì)量的表征向量。圖1展示了BERT模型的邏輯結(jié)構(gòu)。它由若干個編碼器組成,每個編碼器稱為一個Transformer塊。輸入的文本經(jīng)過嵌入層計(jì)算生成嵌入向量X,再將向量X輸入到Transformer塊中進(jìn)行運(yùn)算。并將前一層Transformer塊的輸出向量輸入到后一層Transformer塊中,如此迭代計(jì)算若干次后生成BERT模型對該文本的表征向量。
圖1中,X是文本中單詞的嵌入向量,它由3種相同維度的嵌入相加得到,包括嵌入向量token,嵌入向量position以及嵌入向量segment。其中,嵌入向量token包含字符的語義信息;嵌入向量position包含單詞的位置信息,引入該嵌入向量是為了防止BERT模型并行處理文本時丟失單詞的位置信息,它基于一定的規(guī)則生成;嵌入向量segment是針對文本對相關(guān)任務(wù)設(shè)計(jì)的,它標(biāo)識某個單詞屬于哪個文本。BERT模型的輸入經(jīng)過嵌入層處理后得到嵌入向量X,該向量被輸入到Transformer塊中作進(jìn)一步處理。
圖1 BERT模型的邏輯結(jié)構(gòu)
圖2展示了Transformer塊的內(nèi)部結(jié)構(gòu)。每個Transformer塊都實(shí)現(xiàn)了多頭注意力機(jī)制,并包含一個帶有歸一化層的前饋神經(jīng)網(wǎng)絡(luò)。多頭注意力機(jī)制包含了多個自注意力機(jī)制,并對多個自注意力機(jī)制的輸出進(jìn)行組合、降維。
圖2 Transformer塊的內(nèi)部結(jié)構(gòu)
對于每個自注意力機(jī)制,BERT模型首先會針對文本中的每個單詞生成3個n維(即最終表征向量的維度)向量Q、K、V,這3個向量用于計(jì)算Attention分?jǐn)?shù)值。自注意力機(jī)制利用該分?jǐn)?shù)值決定文本中其他單詞對當(dāng)前單詞的關(guān)注程度,以此來生成帶有上下文信息的表征向量。Q、K、V向量分別由對應(yīng)單詞的嵌入向量X乘以權(quán)重矩陣WQ、WK、WV得到。WQ、WK、WV會在BERT模型預(yù)訓(xùn)練前被隨機(jī)初始化,并在BERT模型預(yù)訓(xùn)練過程中被不斷更新。Q、K、V向量的計(jì)算過程如圖3所示(以n=3為例)。
圖3 Q、K、V向量的計(jì)算過程
在BERT模型生成某個單詞的表征向量時,將該單詞對應(yīng)的Q向量與文本中其他所有單詞的K向量分別進(jìn)行點(diǎn)乘,得到一組Attention分?jǐn)?shù)值,然后將這組分?jǐn)?shù)值進(jìn)行Softmax歸一化處理,之后將歸一化后的每個Attention分?jǐn)?shù)值與對應(yīng)單詞的V向量分別相乘后再相加,最后生成自注意力機(jī)制對該單詞的輸出向量r。
BERT模型中引入了基于自注意力機(jī)制的多頭注意力機(jī)制進(jìn)行并行計(jì)算,以提高模型的效率,同時能夠?qū)W習(xí)到單詞不同的子語義空間,提升模型性能。該機(jī)制會設(shè)置多組WQ、WK、WV權(quán)重矩陣,通過如圖3所示的計(jì)算過程產(chǎn)生多組Q、K、V向量,然后利用這多組Q、K、V向量同時對文本中的單詞進(jìn)行自注意力計(jì)算,從而可以得到多個輸出向量,包含更加豐富的上下文信息。之后,將這些輸出向量組成矩陣,并對之進(jìn)行降維處理后,得到多頭注意力機(jī)制的輸出z。
多頭注意力機(jī)制的輸出向量z經(jīng)過Transformer塊中前饋神經(jīng)網(wǎng)絡(luò)的計(jì)算后,生成一個n維的輸出向量r。第i層Transformer塊的輸出ri將作為第i+1層Transformer塊的輸入,并在第i+1層Transformer塊中繼續(xù)進(jìn)行相同的多頭注意力和前饋神經(jīng)網(wǎng)絡(luò)計(jì)算。此過程迭代計(jì)算k次后可得到BERT模型對當(dāng)前詞的最終輸出rk。
對文本中的每個單詞都進(jìn)行上述計(jì)算之后,能夠得到每個單詞對應(yīng)的n維表征向量rk。BERT將這些向量組合成一個sentence_length×n維(sentence_length為文本的長度)的矩陣作為文本的表征。為了解決分類層不能使用矩陣作為輸入的問題,BERT在每個文本前面加上了一個無意義的符號[CLS],可以使用該符號對應(yīng)的表征向量作為文本的表征。在使用時,只需將BERT輸出矩陣的第一個行向量取出來輸入到分類層進(jìn)行訓(xùn)練即可。
直接使用[CLS]對應(yīng)的向量作為文本的表征會存在以下問題:該方法沒有從單詞表征的每個維度上分別考慮不同單詞對文本語義的貢獻(xiàn),導(dǎo)致生成的文本表征有局限性,進(jìn)而導(dǎo)致文本分類模型性能下降。本文考慮到文本的整體特征和局部特征2方面,通過將平均池化(mean-pooling)和最大池化(max-pooling)引入到文本分類模型中,得到文本的整體和局部特征,以此解決上述問題。
在卷積神經(jīng)網(wǎng)絡(luò)中,池化操作通常和卷積操作配合使用,一般用來解決計(jì)算機(jī)視覺和圖像處理領(lǐng)域的問題。由于網(wǎng)絡(luò)經(jīng)過卷積操作的運(yùn)算后,會生成高維度的特征圖,需要對這些特征圖進(jìn)行降維,而池化操作可以起到降維作用以達(dá)到減少參數(shù)量的目的。常見的池化操作包括平均池化[16-17]和最大池化[18]:平均池化使用池化窗口中所有節(jié)點(diǎn)的平均值作為輸出,最大池化使用池化窗口中所有節(jié)點(diǎn)的最大值作為輸出??梢钥闯觯骄鼗C合考慮了窗口中的所有節(jié)點(diǎn)的值,而最大池化更傾向于考慮窗口中最突出的節(jié)點(diǎn)。
為了將池化操作引入到文本分類模型,首先需要定義池化窗口的大小。由于需要在單詞表征的每個維度上考慮不同單詞對文本語義的貢獻(xiàn),故可以將池化窗口的大小設(shè)置為sentence_length×1。在該窗口中進(jìn)行池化操作,可以綜合考慮單詞表征的每個維度的信息。
在BERT的輸出矩陣上,使用大小為sentence_length×1的池化窗口分別進(jìn)行平均池化和最大池化操作,得到2個n維的向量:mean_vec、max_vec。如上文所述,這2個向量分別包含了單詞表征各維度上的整體特征和局部特征。將這2個n維向量連接成一個2n維的向量作為文本的表征輸入到分類層進(jìn)行訓(xùn)練。
然而,最大池化操作只考慮每個池化窗口的最大值,即對于單詞表征的每個維度只會考慮一個最突出的單詞,這在文本較長或語義豐富時是不足以體現(xiàn)文本的特征的。故本文在最大池化的基礎(chǔ)上引入K-MaxPooling[19-21]池化,即進(jìn)行K次池化操作,取池化窗口中最大的K個值。經(jīng)過K-MaxPooling操作后,會得到K個n維的向量,將這K個向量進(jìn)行拼接,得到一個K×n維的向量,將其與平均池化所得的向量mean_vec拼接成一個(K+1)×n維的向量作為文本的表征。
本節(jié)將重點(diǎn)介紹引入池化操作的文本分類模型的結(jié)構(gòu)。如圖4所示,在整體上,模型利用預(yù)訓(xùn)練BERT模型的多頭注意力機(jī)制提取文本的上下文信息并獲取輸出矩陣;再使用大小為sentence_length×1的池化窗口對BERT的輸出矩陣進(jìn)行各種池化操作得到文本的表征向量;最后將文本的表征向量輸入到歸一化層和全連接層得到模型的預(yù)測值。
圖4 基于BERT和池化操作的文本分類模型結(jié)構(gòu)
具體地,文本首先被輸入到BERT模型中,得到一個輸出矩陣。本文使用BASE版本預(yù)訓(xùn)練BERT模型,該模型包含了12個Transformer塊,多頭注意力機(jī)制中“頭”的個數(shù)為12,隱層輸出的向量維度為768。接著,對BERT的輸出矩陣進(jìn)行不同的池化操作以提取文本的表征向量,主要包括3種不同的池化操作:Mean_Pool、Mean_Max_Pool以及Mean_K_MaxPool。通過這3種方式生成的文本表征向量如圖5所示。
圖5 3種不同池化操作提取文本表征向量
從圖5中可以看出,Mean_Pool只使用平均池化,并將平均池化所得的向量mean_vec作為文本的表征向量。Mean_Max_Pool使用了平均池化和最大池化,將2種池化操作所得的向量mean_vec和max_vec進(jìn)行拼接作為文本的表征向量。而Mean_K_MaxPool則使用平均池化和K_MaxPooling池化,將mean_vec和K_MaxPooling池化所得的K個向量進(jìn)行拼接作為文本的表征向量。可以使用式(1)~式(3)描述上述操作。
Mean=mean_vec
(1)
Mean_Max=con(mean_vec,max_vec)
(2)
Mean_KMax=con(mean_vec,top1_vec,…,topK_vec)
(3)
其中,函數(shù)con對向量進(jìn)行拼接操作,Mean、Mean_Max和Mean_KMax分別為Mean_Pool、Mean_Max_Pool和Mean_K_MaxPool所提取的文本表征向量。
本文使用Layer Normalization (LN)對文本的表征向量進(jìn)行歸一化,相較于Batch Normalization,LN更加適合處理NLP領(lǐng)域的問題,并且LN的性能不受批次大小的影響。最后使用一層全連接層計(jì)算樣本的預(yù)測向量。
在文本分類模型的訓(xùn)練過程中,本文使用交叉熵函數(shù)作為損失函數(shù)。在使用交叉熵?fù)p失之前,需要對全連接層輸出的預(yù)測向量進(jìn)行Softmax操作,使其滿足概率的基本性質(zhì)。Softmax函數(shù)和交叉熵?fù)p失函數(shù)定義如式(4)、式(5)所示。
(4)
(5)
其中,m為類別的數(shù)量;pic為樣本i的預(yù)測向量中類別c對應(yīng)的預(yù)測值;Sic為經(jīng)過Softmax操作后樣本i屬于類別c的概率;yic取值為0或1,當(dāng)樣本i的真實(shí)值等于c時取值為1,否則取值為0。
為了驗(yàn)證引入池化操作對文本分類模型性能的影響,本文設(shè)計(jì)多組對比實(shí)驗(yàn),分別在中、英文語言環(huán)境下以及不同類別個數(shù)的任務(wù)中訓(xùn)練模型,并對各種模型進(jìn)行評估。本實(shí)驗(yàn)將使用[CLS]向量作為文本表征的模型用作基準(zhǔn)模型,并且將引入池化操作后的模型與基準(zhǔn)進(jìn)行對比。
本實(shí)驗(yàn)的硬件環(huán)境包括GTX 1660ti GPU(6 GB顯存)、16 GB 3000 MHz的DDR4內(nèi)存條。軟件環(huán)境包括Python3.8、PyTorch1.8.0以及NumPy1.19.2。為了提升訓(xùn)練效率,本文的所有實(shí)驗(yàn)均設(shè)置在GPU上運(yùn)行,并且設(shè)置mini批次的大小為32。其他一些重要的參數(shù)配置如下:損失函數(shù)為交叉熵?fù)p失、采用Dropout機(jī)制[22](節(jié)點(diǎn)失活概率為0.4)、采用Adam優(yōu)化器[23](β1=0.9,β2=0.999)。
本實(shí)驗(yàn)的英文數(shù)據(jù)集使用斯坦福大學(xué)收集的標(biāo)準(zhǔn)文本分類數(shù)據(jù)集SST,該數(shù)據(jù)集由11855條電影評論構(gòu)成,每條電影評論對應(yīng)一個從0到1的浮點(diǎn)情感分?jǐn)?shù)值,該分?jǐn)?shù)值越高說明對應(yīng)的情感越積極。斯坦福大學(xué)還將該數(shù)據(jù)集分成了3類:訓(xùn)練集8544條、驗(yàn)證集1101條、測試集2210條。
為了在二分類、三分類以及五分類任務(wù)中驗(yàn)證文本分類模型的性能,本實(shí)驗(yàn)通過以下方式將SST數(shù)據(jù)集中樣本對應(yīng)的浮點(diǎn)分?jǐn)?shù)值分別轉(zhuǎn)換為二標(biāo)簽、三標(biāo)簽和五標(biāo)簽分類任務(wù)對應(yīng)的離散值:按照標(biāo)簽個數(shù)平分區(qū)間[0,1]得到對應(yīng)個數(shù)的子區(qū)間,分?jǐn)?shù)值落在某一子區(qū)間,就將其歸為相應(yīng)的類別。通過這種方式,可將SST數(shù)據(jù)集劃分為SST-2、SST-3以及SST-5數(shù)據(jù)集。
本實(shí)驗(yàn)的中文數(shù)據(jù)集采用豆瓣的影評數(shù)據(jù),從豆瓣的官網(wǎng)上爬取影評及對應(yīng)的星級,將星級作為影評數(shù)據(jù)的標(biāo)簽。本文對爬取到的數(shù)據(jù)進(jìn)行重采樣,生成二分類數(shù)據(jù)集和五分類數(shù)據(jù)集,分別記作Db-2、Db-5。其中,Db-2包含7000條訓(xùn)練集、1000條驗(yàn)證集、2000條測試集,Db-5包含15297條訓(xùn)練集、3000條驗(yàn)證集、7000條測試集。
本實(shí)驗(yàn)除了將本文提出的引入池化操作的文本分類模型與原始的BERT模型進(jìn)行比較之外,還驗(yàn)證了BERT的一些變體在所有實(shí)驗(yàn)任務(wù)中的表現(xiàn)。這些變體模型主要包括RoBERTa[24]、ALBERT[25]以及SpanBERT[26]。其中,RoBERTa使用了動態(tài)掩碼技術(shù),移除了BERT中的NSP任務(wù),并且使用了更大的語料庫進(jìn)行預(yù)訓(xùn)練;ALBERT是一種輕量的BERT模型,它對Embedding層進(jìn)行因式分解并且使用跨層參數(shù)共享技術(shù)達(dá)到減少參數(shù)量的目的;SpanBERT在MLM任務(wù)中對連續(xù)的標(biāo)記片段進(jìn)行掩碼,以此改進(jìn)BERT中的掩碼語言模型。
3.3.1 準(zhǔn)確率
為了驗(yàn)證引入不同池化方法對文本分類模型性能的影響,表1、表2統(tǒng)計(jì)了各模型分別在SST-2、SST-3、SST-5、Db-2、Db-5任務(wù)中的分類準(zhǔn)確率。其中,CLS表示直接使用[CLS]對應(yīng)的向量作為文本表征的BERT模型,即基準(zhǔn)模型;Mean_Pool為引入平均池化的模型;Mean_Max_Pool為引入平均池化和最大池化的模型;Mean_2_MaxPool、Mean_3_MaxPool、Mean_4_MaxPool為引入平均池化和K值分別為2、3、4的K-MaxPooling池化的模型。
表1 SST數(shù)據(jù)集中各模型的準(zhǔn)確率對比
從表1可以看出,在引入了池化操作后,模型的準(zhǔn)確率在SST數(shù)據(jù)集的所有任務(wù)中相較于基準(zhǔn)和BERT的3種變體模型均有所提升。在SST-2任務(wù)中,Mean_4_MaxPool模型取得了最高的準(zhǔn)確率,相較于基準(zhǔn)提升了1.4%。在SST-3和SST-5任務(wù)中,Mean_3_MaxPool取得了最高準(zhǔn)確率,相較于基準(zhǔn)模型分別提升了1.5%、3.0%。
在SST任務(wù)中,BERT變體模型的準(zhǔn)確率均低于BERT模型。ALBERT模型在3種變體模型中的表現(xiàn)最好,在SST-2、SST-3、SST-5任務(wù)中分別達(dá)到了85.3%、69.1%、54.2%的準(zhǔn)確率。由于RoBERTa使用了更大的語料庫進(jìn)行預(yù)訓(xùn)練,導(dǎo)致下游分類任務(wù)的樣本量遠(yuǎn)小于預(yù)訓(xùn)練任務(wù),進(jìn)而加深模型的過擬合現(xiàn)象,降低模型分類性能;SpanBERT在英文數(shù)據(jù)集SST中的表現(xiàn)并不突出,這是由于它對連續(xù)片段進(jìn)行掩碼是考慮到多個字組成一個詞的問題,從而對一個詞語或者短語進(jìn)行掩碼,以更好地提取文本上下文信息,這更符合中文的語言特征,因此它在中文環(huán)境下表現(xiàn)更加優(yōu)異。
從表2可以看出,引入了池化操作后,模型的準(zhǔn)確率在中文豆瓣數(shù)據(jù)集的2個任務(wù)中也均有所提升。在Db-2和Db-5任務(wù)中,Mean_3_MaxPool模型取得了最高準(zhǔn)確率,相較于基準(zhǔn)模型,準(zhǔn)確率分別提升了1.5%、2.2%。特別地,在Db-5任務(wù)中,SpanBERT模型在所有未引入池化操作的模型中準(zhǔn)確率達(dá)到最高值55.0%,這說明SpanBERT模型確實(shí)更適用于中文環(huán)境。
表2 豆瓣數(shù)據(jù)集中各模型的準(zhǔn)確率對比
此外,在所有的任務(wù)中,相較于只引入了平均池化的Mean_Pool模型,Mean_Max_Pool模型和Mean_K_MaxPool(K=2,3,4)模型的準(zhǔn)確率都更高。說明引入最大池化和K-MaxPooling后,模型提取的文本表征向量更加準(zhǔn)確,分類效果更好。由于Mean_K_MaxPool比Mean_Max_Pool提取了更多的特征,所以其準(zhǔn)確率更高。然而,并不是K的值越大模型的效果就越好,可以看出在大部分任務(wù)中,Mean_3_MaxPool取得了最高準(zhǔn)確率,即K=3是一個比較好的選擇。這是由于K的值太大時,在單詞表征的每個維度上會取較多的值,其中一些較小的值不能很好地體現(xiàn)文本的特征,反而會影響模型整體的性能,其次,當(dāng)K值很大的時候,會導(dǎo)致文本的表征向量維度過大,進(jìn)而導(dǎo)致模型的效率降低。
3.3.2 精確率、召回率以及F1-Score
準(zhǔn)確率是一種傳統(tǒng)且容易計(jì)算的評價(jià)指標(biāo)。然而,當(dāng)數(shù)據(jù)集中的正、負(fù)樣本個數(shù)不均衡時,使用準(zhǔn)確率評估分類模型的性能是不合理的。在文本分類任務(wù)中,還可以使用精確率、召回率和F1-Score等指標(biāo)評估文本分類模型的性能。其中,精確率precision和召回率recall可以使用式(6)、式(7)計(jì)算得到。
(6)
(7)
這2個公式中,TP是指預(yù)測為正、實(shí)際也為正的真陽性的樣本數(shù)量;FP是指預(yù)測為正、實(shí)際為負(fù)的假陽性的樣本數(shù)量;FN是指預(yù)測為負(fù),實(shí)際為正的假陰性的樣本數(shù)量。
然而,使用精確率和召回率評估分類模型也有局限性:1)它們都只從一個方面(實(shí)際值或者預(yù)測值)去評估模型性能;2)由于FP和FN的和為固定值,無法使precision和recall這2個評價(jià)指標(biāo)同時增大。有另一種評價(jià)指標(biāo)F1-Score同時考慮了precision和recall,可以更加客觀地評估分類模型,其計(jì)算如式(8)所示。
(8)
表3和表4統(tǒng)計(jì)了各模型分別在SST-2、SST-3、SST-5、Db-2、Db-5任務(wù)中的F1-Score值。
從表3可以看出,在SST-2和SST-3任務(wù)中,Mean_3_MaxPool取得了最高的F1-Score值,相較于基準(zhǔn)模型,F(xiàn)1-Score值分別提升了1.7%、3.1%。在SST-5任務(wù)中,Mean_4_MaxPool取得了最高的F1-Score值,相較于基準(zhǔn)模型提升了2.1%。結(jié)合表1的準(zhǔn)確率情況,可以推斷:英文數(shù)據(jù)集SST中,模型在K=3或4時能取得最優(yōu)性能,并且在這2種情況下的準(zhǔn)確率和F1-Score值比較接近,故在一般情況下可以取K=3以提高模型的訓(xùn)練效率。而對于BERT的3種變體模型,與其在SST任務(wù)中的準(zhǔn)確率情況類似,在這3種變體模型中,仍以ALBERT的表現(xiàn)最好,并且其F1-Score值在SST-2和SST-3任務(wù)中超過了BERT模型。
表3 SST數(shù)據(jù)集中各模型的F1-Score值對比
表4 豆瓣數(shù)據(jù)集中各模型的F1-Score值對比
表4為各模型在Db-2和Db-5任務(wù)中的F1-Score值,可以看出,Mean_3_MaxPool模型在這2個任務(wù)中取得了最高的F1-Score值。相較于基準(zhǔn)模型,Mean_3_MaxPool模型的F1-Score值分別提高了2.1%、2.3%。綜合表2,可以得出結(jié)論:在中文環(huán)境下,當(dāng)K=3時,模型的準(zhǔn)確率和F1-Score值均取得了最優(yōu),說明模型提取文本的3個明顯局部特征和平均特征時能夠最準(zhǔn)確地表征文本。此外,SpanBERT模型在2個中文任務(wù)中的表現(xiàn)優(yōu)于BERT和其他2個BERT變體模型,進(jìn)一步證實(shí)了連續(xù)片段掩碼更加適用于中文環(huán)境中。
整體上看來,F(xiàn)1-Score值和準(zhǔn)確率所體現(xiàn)的模型性能的情況是一致的:Mean_3_MaxPool或Mean_4_MaxPool模型在所有任務(wù)中取得了最高的準(zhǔn)確率和F1-Score值。此外,當(dāng)Mean_4_MaxPool模型取得最優(yōu)性能時,Mean_3_MaxPool模型的準(zhǔn)確率和F1-Score值相較于Mean_4_MaxPool相差不大,并且Mean_3_MaxPool模型提取的特征向量維度更小,具有更高的訓(xùn)練效率,故可以認(rèn)為K=3時的Mean_3_MaxPool模型為最優(yōu)模型。
通過以上多組對比實(shí)驗(yàn),可以看出在模型中引入池化操作后提取的文本表征向量更加準(zhǔn)確,模型的分類性能也更好。然而,本文所提出的模型性能較基準(zhǔn)模型提升有限,主要考慮到以下原因:1)預(yù)訓(xùn)練BERT模型結(jié)構(gòu)復(fù)雜,參數(shù)數(shù)量十分龐大,而下游任務(wù)的訓(xùn)練樣本較少,無法從根本上解決模型的過擬合現(xiàn)象;2)BERT模型沒有針對中文的語言特征設(shè)計(jì)適用于中文環(huán)境的模塊,在一定程度上限制了模型的分類性能。
本文的后續(xù)研究工作將重點(diǎn)從上述2點(diǎn)切入,以便更進(jìn)一步提升模型的性能。對于第1點(diǎn),后續(xù)研究工作將使用更大的數(shù)據(jù)集訓(xùn)練文本分類模型,達(dá)到緩解過擬合現(xiàn)象的目的;對于第2點(diǎn),百度團(tuán)隊(duì)提出的ERNIE模型[27]針對中文的語言特征進(jìn)行了改進(jìn),其在中文環(huán)境下的性能比BERT更加優(yōu)秀,后續(xù)將考慮結(jié)合ERNIE模型和池化操作訓(xùn)練文本分類模型,以求在中文環(huán)境下達(dá)到更高的分類性能。
為了生成更加準(zhǔn)確的文本表征向量,本文通過在預(yù)訓(xùn)練BERT模型的輸出矩陣中引入不同種類的池化操作,提取到文本不同的特征,再將不同池化操作所得的向量進(jìn)行拼接作為文本的表征向量。使用到的池化操作主要包括平均池化、最大池化以及K_MaxPooling,其中,K_MaxPooling中的K為超參數(shù),本文在實(shí)驗(yàn)部分對K取值為2、3、4分別進(jìn)行實(shí)驗(yàn)并對模型進(jìn)行對比和評估。
為了更好地評估模型的性能,對本文訓(xùn)練的分類模型和基準(zhǔn)模型進(jìn)行了關(guān)于準(zhǔn)確率和F1-Score等評價(jià)指標(biāo)的多組測試實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),在所有的任務(wù)中,引入池化操作后模型的性能得到了不同程度的提升。Mean_3_MaxPool模型在大多數(shù)任務(wù)中取得了最高的準(zhǔn)確率和F1-Score值,表明引入平均池化、最大池化以及K_MaxPooling池化能夠提取更加準(zhǔn)確的文本表征向量,進(jìn)而提升文本分類模型的性能。