張衛(wèi)娜
(西安思源學院,西安 710038)
隨著互聯(lián)網(wǎng)絡的快速普及以及智能手機的風靡,英語世界中各種各樣的社交媒體上出現(xiàn)了海量的文本信息,例如日更的新聞文本、各大購物平臺上的商品評價文本、影視書籍平臺的評論文本、手機短信、各種垃圾郵件等[1-2]。其中,短文本的數(shù)量在節(jié)奏明快的互聯(lián)網(wǎng)信息時代最為龐大,可謂是數(shù)不勝數(shù),這給我們提出了一個緊迫的需求和研究課題,那就是如何從這些短文本中及時且準確地提取出富有價值的信息,協(xié)助用戶快速高效地篩選出有用的信息,滿足各種需求,譬如情感分類[3]、垃圾郵件與色情信息過濾及新聞分類等[4]。
英文短文本主要的特征是長度稍短,其中介于100~200個單詞長度的短文本最為常見。短文本分類是自然語言處理中一個非常經(jīng)典且關注點極高的低層級任務之一,旨在為給定的文本分配預定義好的類別,其被廣泛應用在問答系統(tǒng)、對話系統(tǒng)、情感分析系統(tǒng)以及其他系統(tǒng)等等。近年來,各種各樣的神經(jīng)網(wǎng)絡模型被嘗試應用到文本分類任務當中,例如CNN卷積神經(jīng)網(wǎng)絡模型[5-7]、自注意力模型以及生成對抗式網(wǎng)絡[8]、RNN循環(huán)神經(jīng)網(wǎng)絡模型[9-11]模型。相比于支持向量機SVM模型[12]等傳統(tǒng)的統(tǒng)計學習方法,基于深度學習的模型性能更加優(yōu)越,提供了更好的分類結果。預訓練語言模型Bert(bidirectional encoder representations from transformers)是基于大規(guī)模語料庫利用多任務預訓練技術的一種自注意力模型[13]。與基于CNN/RNN模型和傳統(tǒng)模型相比,它通常在許多任務中取得優(yōu)異的性能,從命名體識別任務、文本分類到閱讀理解任務等。
盡管深度學習模型在文本分類任務中的性能出色,但是這些模型中的大多數(shù)通常沒有做到很好地捕捉長距離的語義信息問題[14]。針對這點不足,很多研究者也提出了相應的解決方案。Yang等人的HAN模型設計了一種分層注意機制將文本分為句子和單詞兩個層次,并使用雙向RNN作為編碼器[15]。Lei等人提出的MEAN[16]模型試圖通過注意力機制將3種情感語言知識整合到深度神經(jīng)網(wǎng)絡中,從而緩解這一問題。雖然基于自注意力機制的模型在一定程度上緩解了這個問題,但依舊沒有徹底解決。究其原因,很多模型是僅僅從句子或者文檔直接對句子的表示進行建模的,并沒有顯式地將語言知識考慮進去,導致上下文的語義聯(lián)系不強。例如句子:“Though this movie is a little bit repetitive and vague,it really engages our senses through the way few current movie do”,可以發(fā)現(xiàn)句子中既包含了負面情感和正面情感。雖然句子的前半句對電影是持否定態(tài)度,然而聯(lián)合句子的上下文可以發(fā)現(xiàn)“through the way few current movie do”是強烈的表達了對電影的肯定,如果不考慮語言知識的話,最終的分類器給出的預測分類結果可能是錯誤的,將此句子判定為負類。這恰恰是自注意力模型不能夠達到的效果。
為了更好地捕捉長距離上下文信息以及語義依賴,同時有效地將語言知識引入到文本分類任務中,本文基于Bert預訓練語言模型與Bi-LSTM模型提出了一種新穎的英文文本分類模型。首先,我們先使用Bert模型得到的嵌入來表示輸入,然后將該語義嵌入向量當做Bi-LSTM模型的輸入來做進一步的特征表示和提取。具體而言,Bert模型能夠很好地對語言知識進行建模與提取,提升網(wǎng)絡的特征表達能力。與此同時,Bi-LSTM模型能夠對輸入的前后兩個方向的長距離上下文語義特征進行建模,捕捉文本中單詞間的語義依賴關系。在多個數(shù)據(jù)集上的實驗結果表明,本文的Bert-Bi-LSTM模型能夠高效且有效地對句子中的長距離上下文依賴語義信息進行建模,同時結合語言知識,有效提升了文本分類的性能。
近來幾年中,深度神經(jīng)網(wǎng)絡在自然語言處理中放異彩,在不同任務中均取得了良好的效果。其中,CNN和RNN,包括長短期記憶LSTM型網(wǎng)絡(long-short term memory)[17]以及門控遞歸單元GRU(gate recurrent unit)[18]網(wǎng)絡非常適合與文本中單詞和序列的處理和特征提取。文獻[5]和[7]均利用CNN來構建文本分類模型。首先,它們使用word2vec處理輸入文本,然后將語義表示向量輸入給CNN以提取特征,最后使用softmax函數(shù)來判斷文本的類別?;贑NN的方法不僅僅能夠實現(xiàn)自動提取特征,同時長于處理高維度的文本數(shù)據(jù)。然而,CNN處理當前時間步的輸入,不能夠很好地對前一個時間步輸入和后一個時間步的輸入同時進行建模。針對此,Zhu等人于2015年設計了一種基于LSTM網(wǎng)絡的分類模型,該模型將使用詞語序列技術來對評論文本進行詞序列建模而完成特征抽取和分類,因為LSTM網(wǎng)絡具有捕捉文本句子中的長距離型上下文語義關系[19]。C-LSTM首先使用CNN捕獲文本的局部信息,然后使用LSTM網(wǎng)絡對卷積核的每個輸出進行編碼以捕獲全局信息[20]。
近年來,類似于計算機視覺領域中的研究工作,預訓練模型在NLP的多個任務中均取得了非常好的結果。預訓練模型通常通過利用大量未標記語料庫來學習通用的語言表示,并在針對不同任務的預訓練模塊之后接續(xù)額外的任務特定層。例如,ELMO(embeddings from language models)模型[21]致力于從語言模型中提取上下文敏感特征,從而刷新了幾個主要NLP基準任務的SOTA性能,包括問答任務[22]、情感分析[23]和命名實體識別[24]。如圖1所示,GPT(generative pre-training)[25]是一種基于微調方法的單向預訓練語言模型。在預訓練階段,GPT使用大規(guī)模連續(xù)語料來訓練多層Transformer 編碼器。而BERT模型是基于多層雙向變換器,并在大規(guī)模語料庫上進行掩碼語言模型預訓練任務訓練和下一個句子預測預訓練任務。Bert模型通過多頭自注意力機制大大增強了對輸入數(shù)據(jù)的不同部分的上下文語義表示的關注。
圖1 GPT模型
本節(jié)主要介紹文中所涉及到的相關模型和技術,分別是Bert預訓練語言模型與Bi-LSTM網(wǎng)絡。
圖2中所展示的模型是Transformer模型的編碼器部分,而這個編碼器恰恰是構成Bert模型的基本單位。從圖2中可以看出,編碼器主要是包含了一層多頭注意力網(wǎng)絡、兩層加法與歸一化網(wǎng)絡、一層前饋型網(wǎng)絡,以及跳躍連接機制。
圖2 Transformer的編碼器
圖1所示的GPT是一種基于預訓練技術的單向預訓練語言模型,其基本組成器件是Transformer模型的解碼器部分,同時只是利用了單一方向的解碼器。
如圖3所示,Bert模型則是利用了Transformer模型的編碼器部分建立了雙向的編碼器模型。不同于GPT模型,Bert模型沒有使用Transformer模型的解碼器,主要原因是解碼器接觸到的都是不完整的句子,而編碼器則可以看到語料庫中完整的句子,有助于捕捉完整的語言信息從而提升文本分類的性能。
圖3 BERT模型
如圖14所示,針對標準RNN網(wǎng)絡在訓練階段中一直存在梯度消失抑或爆炸的現(xiàn)象,HochReiter與Schmidhuber兩名學者于20世紀90年代提出了LSTM網(wǎng)絡。
圖4 LSTM網(wǎng)絡
LSTM網(wǎng)絡的每個單元中主要包含了3個門,分別是輸入門i、遺忘門f和輸出門o。遺忘門主要是控制遺忘上一個時間步傳來的信息類型和數(shù)量;輸入門控制當前時間步內主要接收哪些信息來更新門狀態(tài);而輸出門控制了當前時間步的信息流。在LSTM單元在第t個時間步的計算公式如下:
X=[ht-1,xt]
(1)
ft=sigmoid(WfX+bf)
(2)
it=sigmoid(WiX+bi)
(3)
ct=ft*ct-1+it*tanh(WcX+bc)
(4)
ot=sigmoid(WoX+bo)
(5)
ht=ot*tanh(ct)
(6)
其中:*表示矩陣對應元素的乘法;xt∈Rn為輸入向量,而W∈Rm*n是各個門的參數(shù),b∈Rm是偏置向量。而上標n與m分別代表了單詞向量的維度數(shù)目與語料庫中的詞匯表尺寸。此外,[·]則表示拼接操作。
盡管LSTM網(wǎng)絡基于門控機制和記憶單元提取了長距離的依賴信息,但是它忽略了從后往前這個方向的上下文信息,而這對于文本分類任務來說至關重要。自然而言地,我們想到了利用從前往后與從后往前兩個方向的LSTM網(wǎng)絡,即Bi-LSTM,這樣便能夠實現(xiàn)雙向的上下文依賴信息的捕捉。
圖5 Bi-LSTM網(wǎng)絡
圖5展示了Bi-LSTM網(wǎng)絡的基本結構。給定上一個時間步的隱藏狀態(tài)ht-1和當前時間步的輸入xt,兩個方向的LSTM的輸出可通過以下公式得到:
(7)
(8)
3.1.1 網(wǎng)絡的輸入
Bert雙向編碼器預訓練語言模型,其一般是接受一個個由于多個單詞組成的英文句子作為輸入.每個句子在輸入之前需要做一些預處理,即在句首加上表示句子開始的[CLS]標識以及在句末插入表示句子結束的[SEP]標識。隨后,輸入的英文句子經(jīng)過預處理轉換為3種輸入向量嵌入,分別是單詞向量、段向量以及位置向量嵌入等,而最終的輸入是將以上3種向量嵌入相加而來。
其中,由于預訓練的過程中需要確定兩個不同句子的順序先后,因此段向量嵌入主要是通過[CLS]標識將輸入文本的句子兩兩之間進行相連,從而達到區(qū)分的目的。位置向量嵌入主要用于區(qū)分文本序列中處于不同位置的單詞各自間的語義信息的差別。
給定x是由k個單詞所組成的一個輸入的英文句子,該英文句子可被形式化表示為x=x1x2…xi…xk,其中xi(1≤i≤k)是第i個英文單詞。
3.1.2 掩碼語言模型預訓練任務
掩碼語言模型(MLM,masked language model)預訓練任務主要目的在于讓模型學習到句子的上下文特征,該任務隨機地將文本中的單詞用特殊標識[MASK]進行掩蓋,然后在輸入給模型進行預測被掩蓋掉的單詞。具體而言,我們需要對語料庫中15%的單詞進行掩蓋,然后通過softmax對掩蓋的單詞位置所輸出的最終隱藏輸出向量進行單詞預測。掩碼操作的例子如下:
原本的句子:After watching the movie,I think it is better than the one I saw last week.
掩蓋后的句子:After watching the movie,I think it is [MASK]than the one I saw last week.
如果直接對語料庫中15%的單詞進行掩蓋,而如前所述輸入向量中并沒有包含[MASK]標識,因此需要想辦法解決這個小問題。針對要使用[MASK]標識隨機掩蓋的單詞,具體的策略是:1)其中的80%直接使用[MASK]去替代;2)用任意的單詞替代原有單詞的比例為10%;3)而余下另外的10%保持原樣。舉例如下:
1)After watching the movie,I think it is [MASK]than the one I saw last week.
2)After watching the movie,I think it is no than the one I saw last week.
3)After watching the movie,I think it is better than the one I saw last week.
3.1.3 下一個句子預測預訓練任務
為了提升模型理解兩個句子之間的語義聯(lián)系,強化模型的長距離上下文語義信息的捕捉能力,需要在下一個句子預測類型的預訓練任務里面,對給定文本中的兩個句子的相鄰關系。具體而言,我們需要從文本語料庫中任意挑選兩個句子A和B構成一個訓練樣本,按照B屬于句子A下一句的語言邏輯關系的樣本的數(shù)學概率為50%(其標識為IsNext),而從數(shù)據(jù)集中隨機抽選句子B的數(shù)學概率為50%(其標識為NotNext)。
3.1.4 Bert模型的輸出
如圖6所示,BERT預訓練語言模型的輸出為隱藏狀態(tài)向量或隱藏狀態(tài)向量的時間步長序列,其數(shù)學表示如下:
h=[h1,h2,…,hi,…,hk]
(9)
圖6 模型的整體結構
其中:k為單詞向量的維度(一般而言k=768),i的取值范圍為1≤i≤k。需要指出的是,英文文本的最大長度取值為150,這么做是為了降低模型的計算復雜度和推理速度。
如前所述,單方向的LSTM網(wǎng)絡只能夠捕捉一個方向的序列信息,不能做到同時對從左向右和從右向左的兩個方向的上下文語義信息進行建模嗎。因此本文結合從前往后和從后往前雙方向的LSTM網(wǎng)絡,即Bi-LSTM網(wǎng)絡,來捕捉前后兩個方向的全局語義信息。
如圖6所示,本文利用Bi-LSTM網(wǎng)絡作為深層語義特征抽取層,對Bert預訓練語言模型輸出的隱藏狀態(tài)的時間步長序列向量h進一步對文本進行全局語義特征抽取。
具體而言,Bi-LSTM網(wǎng)絡層的真實輸入為上一個時間步的隱層向量ht-1和當前時間步輸入xt的拼接。需要注意的是,在第0個時間步中,上一個時間步的隱層向量和當前時間步的輸入是相同的。在第t個時間步,Bi-LSTM網(wǎng)絡的輸入為[ht-1,xt],那么從前往后方向的LSTM網(wǎng)絡的隱藏狀態(tài)輸出向量為:
(10)
而從后往前的LSTM網(wǎng)絡的隱藏狀態(tài)的輸出向量為:
(11)
最終,在第t個時間步,Bi-LSTM層的隱藏狀態(tài)向量為當前時間步t的由后往前和由前往后雙方向產(chǎn)生的隱層向量的拼接結果,具體為公式(12):
經(jīng)過所有的時間步,我們可以得到一個包含長距離型上下文語義信息隱層向量的集合,即H={h1,h2,…,hi,…,ht}(1≤i≤t)。
在將隱藏狀態(tài)向量輸入到分類器層之前,本文使用了一個全連接層作為線性層將句子的高級全局上下文語義信息表征向量處理為一個實值向量,其維度數(shù)目等于文本的類別總數(shù)n。上述全連接層的處理過程的數(shù)學化表示為:
g(ht)=Wght+bg
其中:Wg表示全連接層的權重向量矩陣,bg表示全連接層的偏置向量。
一般而言,對于文本多分類任務,我們可以使用softmax函數(shù)輸出各個文本類別的條件概率值的,其中的最大值則是預測輸入文本所對應的標簽類別。Softmax層的條件概率值計算的數(shù)學公式為:
為了更好地配合端到端的深度模型設計和訓練,本文主要是利用交叉熵損失函數(shù)來評估樣本的真值標簽和模型輸出的預測值之間的誤差:
其中:N表示類別總數(shù),i與j分別表示文本索引和類別索引,yi表示的是模型輸出的預測值,而θ是模型的待優(yōu)化的參數(shù)集合,分別是各層的權重參數(shù)和偏置參數(shù)。
本文主要在英偉達3 080 ti型號的顯卡上利用PyTorch框架搭建模型,而后完成訓練和推理實驗,選用VSCode作為編程軟件,Python的版本為V3.6.8。本文主要基于Word2Vec詞向量來建立所有的詞向量,其維度數(shù)量為300,文本最大長度為150,至于Bi-LSTM網(wǎng)絡層的節(jié)點數(shù)量設置為16。訓練過程總的Epoch數(shù)量是10,數(shù)據(jù)集的批次大小設置為32。此外,所選Adam優(yōu)化器的學習率的初值被這設定陳恒0.001,而λ=0.1。為了更好地擬合模型的同時保持訓練過程的穩(wěn)定,失活概率為0.3的Dropout引入模型的訓練。此外,Bert預訓練語言模型的詞嵌入的維度默認為768維。
本文主要使用下列3個常見的英文數(shù)據(jù)集來訓練和測試模型:
1)MR數(shù)據(jù)集:該數(shù)據(jù)集是基于簡短電影評論文本構建而成的,由Pang和Lee兩人于2005年首次應用到自然語言處理中的情感分類任務中。其中,訓練集主要包含5 331條正面評論的負面樣本以及3 610條正面樣本。
2)SST-2數(shù)據(jù)集:該數(shù)據(jù)集是MR數(shù)據(jù)集的變體。需要注意的是,非常積極和正向的評價文本被標記為正樣本,而負面積極和極度負面的評價文本則會被標記為負面樣本??傮w上,訓練集被劃分為3 310條負面樣本以及3 610條正面樣本。
3)CoLA數(shù)據(jù)集:CoLA語料庫是一個二元單句分類任務所使用的數(shù)據(jù)集。CoLA數(shù)據(jù)集是被經(jīng)過人工標注的,主要是針對語法的接受性。本文使用該語料庫的公開獲取版本,其中包含8 551條訓練數(shù)據(jù)和1 043個測試數(shù)據(jù)5,總共有6 744個正面樣本和2 850個負面樣本。該數(shù)據(jù)集的文本平均長度為7.7個單詞。由于CoLA的測試集沒有進行標注,因此本文從訓練集中劃分出5%樣本作為驗證集,并使用原始驗證集作為測試集。
在模型評價指標的選取上,本文主要使用準確率Accuracy去衡量和評估所設計的模型以及對比模型的有效性和性能。Accuracy可通過如下公式進行計算:
其中:TP和TN分別代表l了輸入的英文句子被正確地預估為正樣本的數(shù)量和被錯誤地預估為正樣本的數(shù)量,而FN和TN分別代表了被錯誤地預估為負樣本的數(shù)量,以及被正確地預估為負樣本的數(shù)量。
為了充分地評估本文所設計的Bert-Bi-LSTM分類模型是否能夠準確地提取到局部和全局的高級上下文語義信息,我們將該模型與多個基準模型進行了對比和評估實驗。除了原本的Bert預訓練語言模型直接應用于英文文本分類任務,本文還選取了幾個相關的深度學習網(wǎng)絡模型作為基準模型進行對比實驗。關于選取的基準模型的詳細信息說明如下:
1)SVM:為體現(xiàn)對比實驗的全面性,本文特地選取了傳統(tǒng)分類模型SVM作為一個基準對比模型。
2)MLP:傳統(tǒng)模型多層感知機的隱藏層數(shù)量為2,分別包含512和100個隱藏單元,該感知機使用了經(jīng)過TF詞頻加權的詞袋向量。
3)CNN-non-static:該模型的輸入向量和MLP的保持一致,同時沒有改變模型原本的訓練參數(shù)。
4)LSTM:Bert模型的隱層輸出向量是單向長短期記憶網(wǎng)絡的輸入。
5)Bi-LSTM:雙向LSTM網(wǎng)絡的輸入和單向的保持一致。
6)Bert:在本文的實驗中,我們使用的是原始的預訓練Bert模型。
為了保證對比實驗是公平比較,所有的模型均是從零開始訓練。
本文在表1中提供了上述各個基準對比模型在MR數(shù)據(jù)集、SST-2數(shù)據(jù)集與CoLA數(shù)據(jù)集上的準確率結果。從表1中列出的實驗結果可以發(fā)現(xiàn),基于深度學習的分類模型在3個數(shù)據(jù)集上的性能均一致高于傳統(tǒng)的基于機器學習的分類模型。最為重要的是,經(jīng)過實驗對比可以看出,本文所提出的結合Bert與Bi-LSTM的模型的性能超越了所有的基準對比模型。特別地,本文的模型的性能同時優(yōu)于單獨利用那個Bert模型和Bi-LSTM網(wǎng)絡去實現(xiàn)分類的情況,這個結果說明結合二者構建的分類模型性能優(yōu)越,兼?zhèn)涠叩膹姶蟮纳舷挛恼Z義信息的挖掘能力和雙向長距離依賴捕捉能力。
表1 不同模型在3個數(shù)據(jù)集上的準確率結果
在僅僅利用到局部語義信息的模型之中,Bert模型超越了SVM、MLP與LSTM模型。此外,Bi-LSTM模型的性能相比于單向的LSTM模型有所提升,這得益于Bi-LSTM同時捕捉到了前后兩個方向的上下文信息。注意到,Bi-LSTM模型在MR數(shù)據(jù)集上的性能是略低于CNN- non-static模型的,但是在結合Bert預訓練語言模型之后,這在此證明了Bert預訓練模型強大的語義信息表達和提取能力對文本分類模型的性能提升很有幫助。
圖7 模型的訓練曲線
為了探究不同數(shù)據(jù)集中文本的不同的最大長度對模型性能的影響,本文將所提出的Bert-Bi-LSTM模型在3個數(shù)據(jù)集上均完成了消融實驗。從表2中可以觀察到,隨著文本最大長度邊長,本文所提的模型在3個數(shù)據(jù)集上的性能提升趨勢基本一致,但是在長度越過150時,模型性能的增益變小,甚至出現(xiàn)了輕微下降的現(xiàn)象。因此為了在模型的性能與計算成本之間做出較好的權衡,本文選擇了150作為最終的文本最大長度值。
表2 不同的最大句子長度對本文所提模型性能的影響
針對英文文本分類任務中現(xiàn)存的主要問題和不足,本文主要提出了一種新穎的基于Bert-Bi-LSTM分類模型。相比于現(xiàn)有的分類方法,該模型能夠通過Bert預訓練語言模型引入外部的語言知識提升分類的準確性,同時還能基于Bi-LSTM網(wǎng)絡對詞嵌入向量進行前后兩個方向的上下文語義依賴信息進行建模。充分的對比實驗結果表明,本文結合Bert預訓練元模型和Bi-LSTM網(wǎng)絡搭建的模型在3個公共數(shù)據(jù)集上的性能顯著勝于其他基準對比模型,其能夠借助外部的語言知識去提升分類的準確率。此外,本文提出的算法同時利用Bi-LSTM網(wǎng)絡來捕獲雙向的長距離型上下文語義依賴信息,大大提高了分類模型的特征提取與表示能力。