周海波,李 天
(西華師范大學 電子信息學院,四川 南充 637009)
近年來,由于網絡社交媒體的普及,人們在社交媒體上進行聊天評論的活動更為頻繁。不同于日常的交流,網友在社交媒體上的評論往往更傾向于利用反諷、諷刺(以下將這一語言現象統稱為諷刺)等隱喻方式表達自己的觀點和看法。雖然傳統的自然語言處理方法對于直抒胸臆的表達方式的情感分類和文本分類的精確率已經達到了一個較高的水平,但對于諷刺這一類隱喻表達方式的情感分類精確率依然不高。而人工審查的方式費時費力,需要較高的時間和經濟成本。本文在調查了現有的相關文本分類技術和情感分類技術后提出了一種BERTCNN 中間任務轉移模型對目標文本進行諷刺識別分類。本文針對目標任務特點進一步改進了BERT模型,首先對相關的中間任務進行微調,再對目標任務生成文本向量。另外,基于諷刺(隱含的消極)和情緒之間的相關性,本文探索了一個遷移學習框架,將情緒分類作為中間任務,將知識注入到諷刺檢測的目標任務中,再結合CNN 卷積網絡對文本特征進一步提取,最后通過Softmax 函數完成分類。實驗證明,本文提出的模型在此任務上的性能好于以往的大多數模型。
BERT(Bidirectional Encoder Representations from Transformers)是一種用于自然語言處理任務的預訓練模型,由Google 在2018 年發布[1]。BERT 通過預先訓練來捕獲句子中語義和語法結構之間的關系,這種預訓練可以被用于各種自然語言處理任務,如語言推理、問答和文本分類。在文本分類中,BERT 通過在預訓練階段學習語義和語法結構的關系,然后在訓練階段通過這些知識來對文本進行分類。
BERT 的模型結構使用了Transformer 模型的編碼部分,由12 層Transformer 疊加而成。模型的輸入由3 種嵌入層累加構成,分別為:
(1)詞嵌入(token embeddings),將每個詞轉換成固定維度的向量;
(2)分段嵌入(segment embeddings),用于區分不同的句子;
(3)位置嵌入(position embeddings),用于表征詞語位置關系。
原理如圖1 所示。

圖1 BERT 原理圖Fig.1 BERT schematic diagram
BERT 處理下游任務如文本分類任務一般采用微調(fine-tune)的方式,這種方式只需要少量的原模型參數調整。
同樣,也可以將BERT 預訓練模型生成的文本向量作為輸入輸出到其他模型中,如在BERT+CNN模型中,文本會先經過BERT 模型進行預處理,然后將輸出的文本向量作為CNN 模型的輸入;在CNN模型中,文本向量會經過卷積層和池化層,捕獲文本中的特征;最后將捕獲的特征和BERT 模型的輸出結合在一起,輸入到全連接層進行分類。
CNN(Convolutional Neural Network)最開始是一種用于圖像處理的神經網絡模型,同樣也可以用來處理文本數據[2]。在文本分類中,CNN 通過使用卷積層來捕獲文本中的特征,然后通過全連接層將捕獲的特征進行分類。
CNN 模型的網絡結構主要包括3 個部分:輸入層、卷積層和池化層。
(1)輸入層:將文本轉換成向量的形式作為模型的輸入;
(2)卷積層:使用卷積核在輸入矩陣上進行卷積操作,捕獲文本中的特征,卷積核是一個矩陣,其會在輸入矩陣上進行移動并與輸入矩陣進行卷積操作;
(3)池化層:使用池化操作來減少卷積層輸出矩陣的維度,池化操作會在輸出矩陣上進行滑動,并選擇最大值或平均值作為新矩陣的值。
最后,通過連接全連接層,將捕獲的特征輸入到輸出層進行分類,原理如圖2 所示。

圖2 CNN 文本分類原理圖Fig.2 Schematic diagram of CNN text classification
遷移學習(Transfer Learning)指在解決一個新的問題之前,先使用已經解決過類似問題的模型來解決新問題,這樣可以減少訓練數據的需求,并提高模型的訓練效率和性能[3]。遷移學習常用于自然語言處理、計算機視覺等領域,可以幫助在缺少大量數據的情況下提高模型的性能。
基于BERT 的文本分類工作就可以視為一種遷移學習的方式,即通過已有的通過大量文本訓練的BERT 模型結合目標任務做參數微調,這種微調不會花費太多算力和時間。而遷移學習在目標任務的數據量不足的情況下可以采取訓練與目標任務相關的中間任務做參數微調的方式以達到更好的分類效果。
提高BERT 預訓練模型下游文本分類任務的精確性有兩種方法:
(1)將BERT 預訓練模型再訓練;
(2)使用遷移學習的方法針對目標任務進行中間任務訓練微調。
第一種方法模型在性能上可能有較大精度的提升,但這是一個費時費力的過程,這種方法往往需要大量的運算資源和大量的數據集,適用于專業領域極強的文本分類,如出現專業術語較多的文本分類上[4]。
本文從語法上講諷刺文本識別的分類應該與文本情緒分類有一定的聯系[5]。已有文獻證明對于BERT 預訓練模型進行相關中間任務的訓練可以有效微調BERT 預訓練模型[6]。故本文采取遷移學習訓練中間任務的方式對BERT 預訓練模型進行微調,以達到預訓練模型更適合于諷刺文本分類的目的,本文使用遷移學習訓練中間任務的模型圖如圖3 所示。

圖3 遷移學習訓練中間任務的模型圖Fig.3 Model diagram of transfer learning training intermediate task
完成BERT 模型對中間任務數據集的情緒分類訓練之后,本文利用完成了中間任務訓練進行權重參數微調后的BERT 模型將目標文本向量化,由于目標文本為短文本數據集,數據多以字符數小于25的文本為主。卷積神經網絡(CNN)對短文本的分類有較好效果[7],故本文提出融合卷積神經網絡(CNN)對BERT 進行擴展,以提取更準確的特征向量,流程圖如圖4 所示。

圖4 融合卷積神經網絡(CNN)對BERT 擴展流程圖Fig.4 Flow chart of extending BERT by fusing convolution neural network(CNN)
本文提出的BERT-CNN 中間任務轉移模型的網絡結構模型如圖5 所示,使用了3 個卷積通道尺寸分別為2×768,3×768,4×768 的卷積核,通過卷積核的文本向量進行ReLu 激活函數操作以防止梯度爆炸并加快網絡的訓練速度,Relu 操作后進行文本向量的特征融合,特征融合之后的文本向量由全連接層連接Softmax 激活函數進行分類。

圖5 BERT-CNN 中間任務轉移模型Fig.5 BERT-CNN Intermediate task transfer model
目前開源數據集平臺中,尚且缺少完整規模較高質量的簡體中文諷刺文本識別的文本數據集,故本文采用github 上開源的英文數據集SemEval2018-Task3。該數據集的文本數據來源于Twitter 社交媒體,由1 286 條評論組成,其中612 條諷刺評論,674條非諷刺評論。數據大多為社交媒體平臺上字符數小于25 的短文本網絡評論,標注方法為眾包由多人標注完成。數據集分為兩個子任務數據集,第一個子任務為粗粒度的諷刺識別任務,即僅對文本是否為諷刺文本進行分類;第二個子任務為細粒度的諷刺識別任務即在第一個子任務的基礎上將諷刺細分為3 類諷刺類型。本文使用的是第一個子任務,僅做文本是否屬于諷刺文本的分類。
遷移學習中中間任務學習的數據集本文采用EmoNet 數據集,該數據集的文本數據來源于Twitter社交媒體,是一個情感分類的數據集,有兩種標簽:negative(消極)和positive(積極),分別使用0,1 表示。
由于使用數據集為英文文本數據集,故不需要分詞等一般操作,基于此類文本的特殊性做數據預處理:
(1)Twitter 評論文本中往往存在一些網絡鏈接等,對諷刺識別任務沒有幫助,故將此類鏈接全部刪除;
(2)Emoji 表情、標點符號等非文本部分對諷刺識別存在幫助,故將其保留并轉換為文本形式;
(3)某些類似錯誤單詞等非法詞匯會極大的增加網絡訓練的詞匯量,且這類詞匯往往對訓練無法提供有效幫助,故對數據集中出現次數沒有超過5次的無效詞匯進行刪除操作。
實驗在PyTorch 深度學習框架下使用Hugging Face 庫中的對應函數構建目標模型,Hugging Face 是一個開源的機器學習模型庫,其中包含大量訓練好的機器學習模型。具體實驗環境配置見表1。

表1 環境配置Tab.1 Environment configuration
BERT 模型采用的是由谷歌提供的開源BERT預訓練模型BERT-Base,Cased:12-layer,768-hidden,12-heads,110M parameters,具體參數見表2。

表2 BERT 模型參數設置表Tab.2 Model parameter setting table
卷積神經網絡CNN 的參數情況見表3。

表3 CNN 卷積網絡的參數情況表Tab.3 CNN Model parameter setting table
本文使用F1值和準確率作為本文模型實驗的評價指標,公式(1)~公式(4)。
精確率:
召回率:
準確率:
F1值:
其中,TP為預測為正,實際為正;FP為預測為正,實際為負;TN為預測為負,實際為負;FN為預測為負,實際為負。
為了驗證本文提出方法的分類效果,本文與一般常用文本分類模型SVM、TextCNN、LSTM 進行了對比實驗,模型使用的是Hugging Face 庫中的對應模型,文本向量由Word2vec 預訓練模型方法生成,訓練時均采取不更新預訓練模型參數的方式進行,實驗結果見表4。

表4 與常用模型對比實驗結果Tab.4 Comparison of experimental results with common models%
為了驗證中間任務學習和融合模型的效果提升,本文還設計了以下實驗,將本文提出的模型BERT(有中間任務訓練)+CNN 與BERT(無中間任務訓練)、BERT(有中間任務訓練)和BERT(無中間任務訓練)+CNN 模型進行對比實驗,實驗結果見表5。

表5 驗證中間任務學習和融合模型的效果實驗結果Tab.5 Validate the effect of intermediate task learning and fusion model%
由表4 和表5 實驗結果可以看出,BERT 預訓練模型對文本數據集的分類效果更好;而進行了中間任務訓練的BERT 模型的使用效果要優于直接使用BERT 模型;BERT 和CNN 的融合模型效果也優于直接使用BERT 模型進行分類,說明BERT-CNN中間任務轉移模型對比常規模型具有更好的性能優勢。
本文針對短文本諷刺文本分類的特點提出了一種基于BERT-CNN 中間任務轉移模型,實驗證明該模型在短文本諷刺文本數據集上相較其他常見模型具有更好的性能。現在的短文本諷刺文本的文本識別分類依然存在一些問題,比如缺少簡體中文類諷刺文本數據集,文本數據集缺少更多輔助信息等,在后續的研究中將針對這些問題展開進一步工作。