周海波,李 天
(西華師范大學(xué) 電子信息學(xué)院,四川 南充 637009)
近年來,由于網(wǎng)絡(luò)社交媒體的普及,人們在社交媒體上進(jìn)行聊天評論的活動(dòng)更為頻繁。不同于日常的交流,網(wǎng)友在社交媒體上的評論往往更傾向于利用反諷、諷刺(以下將這一語言現(xiàn)象統(tǒng)稱為諷刺)等隱喻方式表達(dá)自己的觀點(diǎn)和看法。雖然傳統(tǒng)的自然語言處理方法對于直抒胸臆的表達(dá)方式的情感分類和文本分類的精確率已經(jīng)達(dá)到了一個(gè)較高的水平,但對于諷刺這一類隱喻表達(dá)方式的情感分類精確率依然不高。而人工審查的方式費(fèi)時(shí)費(fèi)力,需要較高的時(shí)間和經(jīng)濟(jì)成本。本文在調(diào)查了現(xiàn)有的相關(guān)文本分類技術(shù)和情感分類技術(shù)后提出了一種BERTCNN 中間任務(wù)轉(zhuǎn)移模型對目標(biāo)文本進(jìn)行諷刺識(shí)別分類。本文針對目標(biāo)任務(wù)特點(diǎn)進(jìn)一步改進(jìn)了BERT模型,首先對相關(guān)的中間任務(wù)進(jìn)行微調(diào),再對目標(biāo)任務(wù)生成文本向量。另外,基于諷刺(隱含的消極)和情緒之間的相關(guān)性,本文探索了一個(gè)遷移學(xué)習(xí)框架,將情緒分類作為中間任務(wù),將知識(shí)注入到諷刺檢測的目標(biāo)任務(wù)中,再結(jié)合CNN 卷積網(wǎng)絡(luò)對文本特征進(jìn)一步提取,最后通過Softmax 函數(shù)完成分類。實(shí)驗(yàn)證明,本文提出的模型在此任務(wù)上的性能好于以往的大多數(shù)模型。
BERT(Bidirectional Encoder Representations from Transformers)是一種用于自然語言處理任務(wù)的預(yù)訓(xùn)練模型,由Google 在2018 年發(fā)布[1]。BERT 通過預(yù)先訓(xùn)練來捕獲句子中語義和語法結(jié)構(gòu)之間的關(guān)系,這種預(yù)訓(xùn)練可以被用于各種自然語言處理任務(wù),如語言推理、問答和文本分類。在文本分類中,BERT 通過在預(yù)訓(xùn)練階段學(xué)習(xí)語義和語法結(jié)構(gòu)的關(guān)系,然后在訓(xùn)練階段通過這些知識(shí)來對文本進(jìn)行分類。
BERT 的模型結(jié)構(gòu)使用了Transformer 模型的編碼部分,由12 層Transformer 疊加而成。模型的輸入由3 種嵌入層累加構(gòu)成,分別為:
(1)詞嵌入(token embeddings),將每個(gè)詞轉(zhuǎn)換成固定維度的向量;
(2)分段嵌入(segment embeddings),用于區(qū)分不同的句子;
(3)位置嵌入(position embeddings),用于表征詞語位置關(guān)系。
原理如圖1 所示。
圖1 BERT 原理圖Fig.1 BERT schematic diagram
BERT 處理下游任務(wù)如文本分類任務(wù)一般采用微調(diào)(fine-tune)的方式,這種方式只需要少量的原模型參數(shù)調(diào)整。
同樣,也可以將BERT 預(yù)訓(xùn)練模型生成的文本向量作為輸入輸出到其他模型中,如在BERT+CNN模型中,文本會(huì)先經(jīng)過BERT 模型進(jìn)行預(yù)處理,然后將輸出的文本向量作為CNN 模型的輸入;在CNN模型中,文本向量會(huì)經(jīng)過卷積層和池化層,捕獲文本中的特征;最后將捕獲的特征和BERT 模型的輸出結(jié)合在一起,輸入到全連接層進(jìn)行分類。
CNN(Convolutional Neural Network)最開始是一種用于圖像處理的神經(jīng)網(wǎng)絡(luò)模型,同樣也可以用來處理文本數(shù)據(jù)[2]。在文本分類中,CNN 通過使用卷積層來捕獲文本中的特征,然后通過全連接層將捕獲的特征進(jìn)行分類。
CNN 模型的網(wǎng)絡(luò)結(jié)構(gòu)主要包括3 個(gè)部分:輸入層、卷積層和池化層。
(1)輸入層:將文本轉(zhuǎn)換成向量的形式作為模型的輸入;
(2)卷積層:使用卷積核在輸入矩陣上進(jìn)行卷積操作,捕獲文本中的特征,卷積核是一個(gè)矩陣,其會(huì)在輸入矩陣上進(jìn)行移動(dòng)并與輸入矩陣進(jìn)行卷積操作;
(3)池化層:使用池化操作來減少卷積層輸出矩陣的維度,池化操作會(huì)在輸出矩陣上進(jìn)行滑動(dòng),并選擇最大值或平均值作為新矩陣的值。
最后,通過連接全連接層,將捕獲的特征輸入到輸出層進(jìn)行分類,原理如圖2 所示。
圖2 CNN 文本分類原理圖Fig.2 Schematic diagram of CNN text classification
遷移學(xué)習(xí)(Transfer Learning)指在解決一個(gè)新的問題之前,先使用已經(jīng)解決過類似問題的模型來解決新問題,這樣可以減少訓(xùn)練數(shù)據(jù)的需求,并提高模型的訓(xùn)練效率和性能[3]。遷移學(xué)習(xí)常用于自然語言處理、計(jì)算機(jī)視覺等領(lǐng)域,可以幫助在缺少大量數(shù)據(jù)的情況下提高模型的性能。
基于BERT 的文本分類工作就可以視為一種遷移學(xué)習(xí)的方式,即通過已有的通過大量文本訓(xùn)練的BERT 模型結(jié)合目標(biāo)任務(wù)做參數(shù)微調(diào),這種微調(diào)不會(huì)花費(fèi)太多算力和時(shí)間。而遷移學(xué)習(xí)在目標(biāo)任務(wù)的數(shù)據(jù)量不足的情況下可以采取訓(xùn)練與目標(biāo)任務(wù)相關(guān)的中間任務(wù)做參數(shù)微調(diào)的方式以達(dá)到更好的分類效果。
提高BERT 預(yù)訓(xùn)練模型下游文本分類任務(wù)的精確性有兩種方法:
(1)將BERT 預(yù)訓(xùn)練模型再訓(xùn)練;
(2)使用遷移學(xué)習(xí)的方法針對目標(biāo)任務(wù)進(jìn)行中間任務(wù)訓(xùn)練微調(diào)。
第一種方法模型在性能上可能有較大精度的提升,但這是一個(gè)費(fèi)時(shí)費(fèi)力的過程,這種方法往往需要大量的運(yùn)算資源和大量的數(shù)據(jù)集,適用于專業(yè)領(lǐng)域極強(qiáng)的文本分類,如出現(xiàn)專業(yè)術(shù)語較多的文本分類上[4]。
本文從語法上講諷刺文本識(shí)別的分類應(yīng)該與文本情緒分類有一定的聯(lián)系[5]。已有文獻(xiàn)證明對于BERT 預(yù)訓(xùn)練模型進(jìn)行相關(guān)中間任務(wù)的訓(xùn)練可以有效微調(diào)BERT 預(yù)訓(xùn)練模型[6]。故本文采取遷移學(xué)習(xí)訓(xùn)練中間任務(wù)的方式對BERT 預(yù)訓(xùn)練模型進(jìn)行微調(diào),以達(dá)到預(yù)訓(xùn)練模型更適合于諷刺文本分類的目的,本文使用遷移學(xué)習(xí)訓(xùn)練中間任務(wù)的模型圖如圖3 所示。
圖3 遷移學(xué)習(xí)訓(xùn)練中間任務(wù)的模型圖Fig.3 Model diagram of transfer learning training intermediate task
完成BERT 模型對中間任務(wù)數(shù)據(jù)集的情緒分類訓(xùn)練之后,本文利用完成了中間任務(wù)訓(xùn)練進(jìn)行權(quán)重參數(shù)微調(diào)后的BERT 模型將目標(biāo)文本向量化,由于目標(biāo)文本為短文本數(shù)據(jù)集,數(shù)據(jù)多以字符數(shù)小于25的文本為主。卷積神經(jīng)網(wǎng)絡(luò)(CNN)對短文本的分類有較好效果[7],故本文提出融合卷積神經(jīng)網(wǎng)絡(luò)(CNN)對BERT 進(jìn)行擴(kuò)展,以提取更準(zhǔn)確的特征向量,流程圖如圖4 所示。
圖4 融合卷積神經(jīng)網(wǎng)絡(luò)(CNN)對BERT 擴(kuò)展流程圖Fig.4 Flow chart of extending BERT by fusing convolution neural network(CNN)
本文提出的BERT-CNN 中間任務(wù)轉(zhuǎn)移模型的網(wǎng)絡(luò)結(jié)構(gòu)模型如圖5 所示,使用了3 個(gè)卷積通道尺寸分別為2×768,3×768,4×768 的卷積核,通過卷積核的文本向量進(jìn)行ReLu 激活函數(shù)操作以防止梯度爆炸并加快網(wǎng)絡(luò)的訓(xùn)練速度,Relu 操作后進(jìn)行文本向量的特征融合,特征融合之后的文本向量由全連接層連接Softmax 激活函數(shù)進(jìn)行分類。
圖5 BERT-CNN 中間任務(wù)轉(zhuǎn)移模型Fig.5 BERT-CNN Intermediate task transfer model
目前開源數(shù)據(jù)集平臺(tái)中,尚且缺少完整規(guī)模較高質(zhì)量的簡體中文諷刺文本識(shí)別的文本數(shù)據(jù)集,故本文采用github 上開源的英文數(shù)據(jù)集SemEval2018-Task3。該數(shù)據(jù)集的文本數(shù)據(jù)來源于Twitter 社交媒體,由1 286 條評論組成,其中612 條諷刺評論,674條非諷刺評論。數(shù)據(jù)大多為社交媒體平臺(tái)上字符數(shù)小于25 的短文本網(wǎng)絡(luò)評論,標(biāo)注方法為眾包由多人標(biāo)注完成。數(shù)據(jù)集分為兩個(gè)子任務(wù)數(shù)據(jù)集,第一個(gè)子任務(wù)為粗粒度的諷刺識(shí)別任務(wù),即僅對文本是否為諷刺文本進(jìn)行分類;第二個(gè)子任務(wù)為細(xì)粒度的諷刺識(shí)別任務(wù)即在第一個(gè)子任務(wù)的基礎(chǔ)上將諷刺細(xì)分為3 類諷刺類型。本文使用的是第一個(gè)子任務(wù),僅做文本是否屬于諷刺文本的分類。
遷移學(xué)習(xí)中中間任務(wù)學(xué)習(xí)的數(shù)據(jù)集本文采用EmoNet 數(shù)據(jù)集,該數(shù)據(jù)集的文本數(shù)據(jù)來源于Twitter社交媒體,是一個(gè)情感分類的數(shù)據(jù)集,有兩種標(biāo)簽:negative(消極)和positive(積極),分別使用0,1 表示。
由于使用數(shù)據(jù)集為英文文本數(shù)據(jù)集,故不需要分詞等一般操作,基于此類文本的特殊性做數(shù)據(jù)預(yù)處理:
(1)Twitter 評論文本中往往存在一些網(wǎng)絡(luò)鏈接等,對諷刺識(shí)別任務(wù)沒有幫助,故將此類鏈接全部刪除;
(2)Emoji 表情、標(biāo)點(diǎn)符號(hào)等非文本部分對諷刺識(shí)別存在幫助,故將其保留并轉(zhuǎn)換為文本形式;
(3)某些類似錯(cuò)誤單詞等非法詞匯會(huì)極大的增加網(wǎng)絡(luò)訓(xùn)練的詞匯量,且這類詞匯往往對訓(xùn)練無法提供有效幫助,故對數(shù)據(jù)集中出現(xiàn)次數(shù)沒有超過5次的無效詞匯進(jìn)行刪除操作。
實(shí)驗(yàn)在PyTorch 深度學(xué)習(xí)框架下使用Hugging Face 庫中的對應(yīng)函數(shù)構(gòu)建目標(biāo)模型,Hugging Face 是一個(gè)開源的機(jī)器學(xué)習(xí)模型庫,其中包含大量訓(xùn)練好的機(jī)器學(xué)習(xí)模型。具體實(shí)驗(yàn)環(huán)境配置見表1。
表1 環(huán)境配置Tab.1 Environment configuration
BERT 模型采用的是由谷歌提供的開源BERT預(yù)訓(xùn)練模型BERT-Base,Cased:12-layer,768-hidden,12-heads,110M parameters,具體參數(shù)見表2。
表2 BERT 模型參數(shù)設(shè)置表Tab.2 Model parameter setting table
卷積神經(jīng)網(wǎng)絡(luò)CNN 的參數(shù)情況見表3。
表3 CNN 卷積網(wǎng)絡(luò)的參數(shù)情況表Tab.3 CNN Model parameter setting table
本文使用F1值和準(zhǔn)確率作為本文模型實(shí)驗(yàn)的評價(jià)指標(biāo),公式(1)~公式(4)。
精確率:
召回率:
準(zhǔn)確率:
F1值:
其中,TP為預(yù)測為正,實(shí)際為正;FP為預(yù)測為正,實(shí)際為負(fù);TN為預(yù)測為負(fù),實(shí)際為負(fù);FN為預(yù)測為負(fù),實(shí)際為負(fù)。
為了驗(yàn)證本文提出方法的分類效果,本文與一般常用文本分類模型SVM、TextCNN、LSTM 進(jìn)行了對比實(shí)驗(yàn),模型使用的是Hugging Face 庫中的對應(yīng)模型,文本向量由Word2vec 預(yù)訓(xùn)練模型方法生成,訓(xùn)練時(shí)均采取不更新預(yù)訓(xùn)練模型參數(shù)的方式進(jìn)行,實(shí)驗(yàn)結(jié)果見表4。
表4 與常用模型對比實(shí)驗(yàn)結(jié)果Tab.4 Comparison of experimental results with common models%
為了驗(yàn)證中間任務(wù)學(xué)習(xí)和融合模型的效果提升,本文還設(shè)計(jì)了以下實(shí)驗(yàn),將本文提出的模型BERT(有中間任務(wù)訓(xùn)練)+CNN 與BERT(無中間任務(wù)訓(xùn)練)、BERT(有中間任務(wù)訓(xùn)練)和BERT(無中間任務(wù)訓(xùn)練)+CNN 模型進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表5。
表5 驗(yàn)證中間任務(wù)學(xué)習(xí)和融合模型的效果實(shí)驗(yàn)結(jié)果Tab.5 Validate the effect of intermediate task learning and fusion model%
由表4 和表5 實(shí)驗(yàn)結(jié)果可以看出,BERT 預(yù)訓(xùn)練模型對文本數(shù)據(jù)集的分類效果更好;而進(jìn)行了中間任務(wù)訓(xùn)練的BERT 模型的使用效果要優(yōu)于直接使用BERT 模型;BERT 和CNN 的融合模型效果也優(yōu)于直接使用BERT 模型進(jìn)行分類,說明BERT-CNN中間任務(wù)轉(zhuǎn)移模型對比常規(guī)模型具有更好的性能優(yōu)勢。
本文針對短文本諷刺文本分類的特點(diǎn)提出了一種基于BERT-CNN 中間任務(wù)轉(zhuǎn)移模型,實(shí)驗(yàn)證明該模型在短文本諷刺文本數(shù)據(jù)集上相較其他常見模型具有更好的性能?,F(xiàn)在的短文本諷刺文本的文本識(shí)別分類依然存在一些問題,比如缺少簡體中文類諷刺文本數(shù)據(jù)集,文本數(shù)據(jù)集缺少更多輔助信息等,在后續(xù)的研究中將針對這些問題展開進(jìn)一步工作。