雷景生, 錢 葉
(上海電力大學 計算機科學與技術學院, 上海 200082)
文本分類是自然語言處理領域中非常重要的一部分。其研究內容主要包括新聞文本的類別劃分和情感分析。得益于網(wǎng)絡媒體的迅速發(fā)展,使得該領域的研究具備海量文本數(shù)據(jù)的支持,這些數(shù)據(jù)蘊含著豐富的信息。如何管理這些數(shù)據(jù),并從中準確高效地獲取有價值的信息,這是目前很多研究者關注的問題[1]。
近年來,對于文本分類的研究已經(jīng)取得了不錯的進展。PANG B等人[2]利用詞袋模型,結合貝葉斯、最大熵、支持向量機等分類器對電影評論數(shù)據(jù)進行情感分類,并取得了較好的結果。但隨著技術的更新,淺層的分類模型在分類任務中無法很好地保留文本上下文信息的問題逐漸暴露出來,因此研究者開始將目光轉向對深度學習模型的研究。
深度學習模型強調模型結構的深度和對特征的學習,因而廣泛應用于圖像領域的研究[3]。YANN L C等人[4]將卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)應用于文本分類任務中,顯著地提升了文本分類的準確率。MIKOLOV T等人[5]提出將循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)應用于文本分類任務中,相較于CNN利用卷積層提取特征,RNN在當前時間的輸出是由上一時間的輸出和當前時間的輸入共同決定的,所以能更好地學習該詞上下文的信息。但是隨著時間序列的增長,RNN模型容易出現(xiàn)梯度消失和梯度爆炸的問題。
為了解決RNN結構上的缺陷,基于RNN的各種變體不斷出現(xiàn),如長短期記憶神經(jīng)網(wǎng)絡[6](Long Short-Term Memory,LSTM)、門限循環(huán)單元[7](Gated Recurrent Unit,GRU)等,并在自然語言任務中取得了不錯的結果。這些模型的共性是利用詞嵌入模型(word2vec)將分詞后的文本中每個單詞映射成一個向量,將文本細化成句、詞級別,然后將結果傳入下游模型進行特征提取和分類處理。因此,文本信息特征表示的優(yōu)劣對下游模型的準確率影響重大,而且文本本身還存在特征稀疏的情況。分詞后的文本特征已經(jīng)有相當程度的丟失,詞嵌入模型的輸出結果并不能完整地表示原始文本的語義[8]。另一方面,由于應用場景的不同,使得每一次任務都需要對當前場景下的語料進行訓練,故對于模型的靈活性和泛化性都是較大的挑戰(zhàn)。因此,為了最大限度地保留句子本身的含義,人們開始將研究重點轉向以句子為單位的特征表示方法。
目前,基于大語料庫的預訓練模型已經(jīng)逐步成為自然語言處理技術的研究趨勢。由于這些預訓練模型是以龐大的語料庫作為基礎訓練出來的,因此相較于特定場景的語料庫訓練出的模型更能適應不同場景下的文本任務。為了更好地解決預訓練模型中句子級的文本分類問題,盡可能地保留句子中詞與詞之間的內在聯(lián)系,PETERS M E等人[9]對預訓練模型進行了改進,提出語言模型嵌入(Embeddings from Language Models,ELMo)算法。ELMo是一種新型深度語境化詞表征方法,利用深度雙向語言模型(Bi-directional Long Short-Term Memory,BiLSTM)內部狀態(tài)的函數(shù)在大語料上訓練出對應的語言模型,以此來獲取句子中的句法特點以及詞在不同語境中的語義特征。在此基礎上,Google公司提出了使用transformer編碼器[10]的思想,利用attention機制的模型結構進行計算的時間復雜度相較于傳統(tǒng)的深度神經(jīng)網(wǎng)絡大幅降低,同時可以捕捉長距離的依賴關系。但是ELMo算法[11]嚴格來說是屬于單向訓練的語言模型,其雙向結構存在著時間先后的關系,不是真正意義上同步進行的,因此Google提出了真正意義上使用雙向的預訓練語言模型——來自tranformer的雙向編碼器表示(Bidrectional Encoder Representations from Transformers,BERT)模型[12]。BERT模型利用attention機制,使得模型的上下層全部直接互相連接,真正實現(xiàn)了模型中所有層的雙向連接。本文采用利用知識增強的語義表示(Enhanced Representation through Knowledge Integration,ERNIE)模型[13]是在BERT模型的基礎上,對BERT預訓練時的邏輯進行了改進,同時預訓練的數(shù)據(jù)大量采用了中文數(shù)據(jù)集,因此更加符合中文文本任務的使用需求。另外,為了進一步提取文本上下文的信息,本文在ERNIE模型的基礎上加入了雙向門限循環(huán)單元(Bidirectional Gated Recurrent Unit,BiGRU),將ERNIE模型訓練后的詞向量作為BiGRU的輸入進行進一步的特征提取,以得到更好的文本分類結果。
為了解決文本在上游模型轉換過程中上下文信息丟失的問題,同時為了尋求一個更適合中文情感分析的預訓練模型。本文提出了ERNIE-BiGRU模型的思路,整個模型由3個部分組成。首先,對經(jīng)過預處理的數(shù)據(jù)集使用ERNIE預訓練模型(以下簡稱“ERNIE模型”)進行預訓練,得到句子級的詞向量表示;然后,將模型輸出作為BiGRU層的輸入,進一步提取句子中每個詞的上下文信息;最后,使用softmax層進行情感分類。其模型的整體結構如圖1所示。
圖1 基于ERNIEBiGRU的中文文本分類模型
ERNIE模型是一種基于知識遮蔽策略的增強型模型。通過對詞、實體等語義單元的掩碼,使得模型學習完整概念的語義表示。ERNIE模型在結構上主要分為transformer編碼和知識整合兩個部分。前者使用transformer作為模型的基本編碼器,生成對應的詞向量表示,以保留詞在文本中的上下文信息;后者則通過多階段的知識遮蔽策略,將短語和實體層次的知識整合到語言表示中。ERNIE模型結構如圖2所示。
圖2 ERNIE模型結構示意
由圖2結構可以看出,模型的輸出部分包含了文本上下文信息的詞向量表示,且每個詞向量[T1,T2,T3,…,Tn]都包含了整個序列的文本信息。由于傳統(tǒng)的語言模型是以預測下一個詞為訓練目標的,因此使用雙向編碼會使得需要預測的詞在多層上下文之間間接地“看到自己”,也就是說,如果要預測t時刻的輸入En,則每個輸入都會在隱藏層中看到目標En的信息,造成信息泄漏。為了解決這一問題,BERT模型將對應位置的輸入變成[mask]標記,隨機將輸入序列的一部分遮蔽住。ERNIE模型在此基礎上進行了進一步的優(yōu)化,提出了一個多階段的知識遮蔽策略,將字的遮蔽上升為短語和實體層面的遮蔽。
ERNIE模型是基于多層雙向transformer編碼器構建的語言模型。transformer編碼器用的是全attention機制。attention[14]機制類似于人類理解句子的原理,是根據(jù)句子中的關鍵點去理解句子的整體意思,其原理為
(1)
式中:Q,K,V——輸入字向量矩陣;
dk——輸入向量維度。
在計算過程中,transformer編碼器將句子中任意兩個單詞通過一個計算步驟直接聯(lián)系起來,并將所有單詞的表示進行加權求和,而權重是由該詞的表示與被編碼詞表示的點積通過softmax層得到的,以此來極大地縮短遠距離依賴特征之間的距離,大幅提高了特征的有效利用率。
ERNIE模型通過對實體概念知識的學習來進一步增強句子中完整概念的語義表示。為了實現(xiàn)這樣的功能,該模型采用了多階段的知識遮蔽策略。
第1階段是基本遮蔽,把整個句子看作一個基本語言單位的序列,以字為單位進行遮蔽,但這一方式是在字的層面上進行隨機遮蔽,因此很難對高層語義進行完全建模。
第2階段是短語級遮蔽,也就是將一個短語作為基本遮蔽單位。隨機選擇句子的短語,將同一短語中的所有字變成[mask]標記并對此進行預測,因此短語信息在embedding過程中可以很好地保留下來。
第3階段是實體級遮蔽,包括人員、地點、組織、產(chǎn)品等可以用適當?shù)拿Q表示實體信息。在這個階段,首先分析句子中的命名實體成分,然后隨機選擇句子中的實體,對其中的每一個字進行[mask]標記并預測。
經(jīng)過3個階段的處理后,最終可以得到一個由豐富的語義信息組成的詞表示形式,句子中各成分之間的關聯(lián)性可以很好地保留下來,在對完整的重要信息進行遮蔽的同時,其重要成分的語義信息也不會丟失。
GRU是LSTM的一種變體。它在LSTM的基礎上進行了簡化,將LSTM中的輸入門和遺忘門合并成了單一的更新門,同時也將細胞狀態(tài)和隱藏層狀態(tài)混合在一起。GRU的更新門根據(jù)當前的數(shù)據(jù)對先前的數(shù)據(jù)進行篩選,重置門將先前的信息經(jīng)過處理后作為新的輸入。GRU的結構比LSTM更加簡單,所需參數(shù)也更少,在降低計算復雜度、提高模型訓練速度的同時,也降低了過擬合的可能性。GRU的結構圖示意如圖3所示。
圖3 GRU結構示意
GRU中的計算公式為
zt=σ(ωz?[ht-1,xt])
(2)
rt=σ(ωr?[ht-1,xt])
(3)
(4)
(5)
式中:zt——更新門;
σ——sigmoid非線性激活函數(shù);
ωz,ωr,ω——權值矩陣;
ht,ht-1——t時刻和前一時刻的隱藏層狀態(tài);
xt——t時刻的輸入;
rt——重置門。
單向的GRU只能學習當前時刻之前的信息,而無法對當前時刻之后的信息進行學習,因此本文采用BiGRU來代替?zhèn)鹘y(tǒng)的GRU,利用雙向保留信息的方式來得到一個詞在前后文中的聯(lián)系。在文本分類場景下,BiGRU可以通過上下文的信息得到一個詞在文本中的語義特征,并盡可能地保留這個詞在上下文中的信息,提高了分類的準確率。BiGRU的結構模型如圖4所示。
圖4 BiGRU的結構模型
由圖4可以看出,t時刻BiGRU單元的隱藏狀態(tài)是由t時刻前向隱藏層狀態(tài)的輸出和t-1時刻反向隱藏層狀態(tài)的輸出共同決定的。因此,對于一個句子中的每個詞而言,該詞的語義特征是由該詞所處句子中的位置以及該詞對應上下文的信息共同決定的。
為了驗證基于ERNIE-BiGRU模型的中文文本分類方法的性能,本文采用帶有標簽的文本數(shù)據(jù)集對其進行驗證和分析。實驗環(huán)境及配置如表1所示。
表1 實驗環(huán)境及配置
采用THUCNews數(shù)據(jù)集進行實驗。THUCNews數(shù)據(jù)集是根據(jù)新浪新聞RSS訂閱頻道2005—2011年間的歷史數(shù)據(jù)篩選過濾生成,包含74萬篇新聞文檔,均為UTF-8純文本格式。本文在原始新浪新聞分類體系的基礎上,抽取了20萬條新聞標題,文本長度在20~30,一共10個分類類別(包括財經(jīng)、房產(chǎn)、股票、教育、科技、社會、時政、體育、游戲、娛樂),每類2萬條數(shù)據(jù)。將這20萬條數(shù)據(jù)劃分成訓練集、驗證集和測試集,其中,訓練集16萬條,驗證集2萬條,測試集2萬條。數(shù)據(jù)集中每個類別的數(shù)據(jù)量保持一致,以保證類的分布平衡。
ERNIE-BiGRU模型有兩種訓練方式:一是不斷更新整個模型的參數(shù);二是固定ERNIE模型的部分參數(shù),只更新BiGRU模型的參數(shù)??紤]到實驗設備和時間成本,本文采用第2種訓練方法進行測試,通過不斷調整模型參數(shù)得到最佳模型性能的參數(shù)設定值。
由于數(shù)據(jù)集中有一些數(shù)字、英文以及一些特殊符號,因此在實驗之前應首先對數(shù)據(jù)集進行預處理,將一些非中文的信息進行清洗,然后將處理后的數(shù)據(jù)集放入模型中進行實驗。
為了驗證模型的可靠性,本文將與以下模型的結果進行對比。
(1) CNN模型 KIM Y[15]對使用CNN模型進行文本分類的方法作了系統(tǒng)的闡述。該方法先將經(jīng)過分詞處理的文本信息通過word2vec轉換成對應的詞向量,然后利用CNN模型對詞向量進行文本分類。
(2) BiGRU模型 邢長征等人[16]利用LSTM的變種GRU搭建多層GRU結構來進行文本分類。該模型使用多層GRU結構從多方面提取文本信息。
(3) BiGRU+attention模型 由王偉等人[17]利用BiGRU模型對文本深層次的信息進行特征提取,然后使用attention機制為提取的文本深層次信息分配相應的權重。attention機制是由RUSH A M等人[18]提出的,目的是從大量信息中有選擇地篩選出少量重要信息,并聚焦到這些重要信息上。該模型證明了在提取上下文語義特征方面引入attention機制可以提升模型的性能;從另一方面印證了在BERT模型中使用self-attention計算詞向量可以提升文本分類的性能。
(4) transformer模型 該模型利用一個只基于attention機制的結構來處理序列模型相關的問題,在摒棄傳統(tǒng)CNN和RNN的情況下,不僅能夠提升模型的性能,還可以減少訓練時間。
(5) BERT模型 該模型提出了較為完善的預訓練模型概念,但相較于ERNIE模型,BERT模型只使用了字級別的基本遮蔽,對語義信息的獲取仍存在欠缺。
模型1~4均采用word2vec對文本數(shù)據(jù)進行詞向量轉換,并將詞向量傳入模型進行計算。BERT模型與ERNIE-BiGRU模型的基本參數(shù)一致。以上所有模型的超參數(shù)相同,epoch值均為10。在相同條件下,對每個模型進行多次實驗,并取其最高值作為該模型的實驗結果。實驗部分的偽代碼如下所示。
Input 實驗數(shù)據(jù)集、預訓練模型和預訓練詞庫文件
Output 文本分類結果及多個評價指標
Begin
1.設置優(yōu)化器、學習率以及其他模型參數(shù)
2.劃分測試集、驗證集和測試集
3.數(shù)據(jù)預處理
4.數(shù)據(jù)的分詞及序列化表示
5.運行預訓練模型,得到句子級別的向量表示
6.傳入BiGRU模型進行特征提取
7.利用softmax分類器進行分類
8.計算精確率、召回率、損失值和F1值
End
自然語言處理中的評價指標很多,其中,針對文本分類的評測標準一般包括精確率P,召回率R和F1值,具體的計算公式為
(6)
(7)
(8)
式中:Tp——當實際值和預測值均為正時的數(shù)據(jù)數(shù)量;
Fp——當實際值為負、預測值為正時的數(shù)據(jù)數(shù)量;
Fn——當實際值為正、預測值為負時的數(shù)據(jù)數(shù)量。
由式(8)可以看出,F1值是由精確率和召回率共同決定的。
ERNIE模型的代碼是在BERT模型的基礎上進行改進的,同時加入ERNIE自身的預訓練模型。參照BERT-Base的參數(shù)設置,網(wǎng)絡層一共12層,采用12頭模式,隱藏層768維共110M個參數(shù),其他主要參數(shù)如表3所示。
表3 部分實驗參數(shù)設置
為了直觀地反映各種模型的優(yōu)劣,在每一個epoch后使用驗證集進行測試。通過驗證集的準確率vacc和損失值vloss的變化來表示每個模型經(jīng)過每一個epoch后性能的變化。其中,準確率vacc的變化如圖5所示,損失值vloss的變化見圖6。
圖5 驗證集準確率的變化曲線
圖6 驗證集損失值的變化曲線
由圖5可以看出,所有模型的準確率在每一次epoch后整體都呈現(xiàn)上升趨勢。其中ERNIE-BiGRU模型的準確率從第1個epoch開始就明顯高于其他模型,且一直穩(wěn)定在92%以上。transformer模型的準確率隨著epoch的變化波動較大,且準確率整體低于其他模型,由此可見,使用單向transformer提取文本特征會造成前后文信息的丟失,導致文本特征提取的效果不佳。使用BiGRU-attention模型與單BiGRU模型在該數(shù)據(jù)集上面的表現(xiàn)差異并不大,表明對于文本分類任務而言,embedding部分的結果對下游模型的影響很大,也從側面證明了ERNIE-BiGRU模型使用雙向transformer生成的embedding可以很好地保留一個詞前后文的信息,顯著提升了文本分類的準確率。BERT模型準確率的變化趨勢與ERNIE-BiGRU模型相似,但整體稍低。上述結果表明,在中文文本分類任務中,ERNIE-BiGRU模型取得的效果最好。
損失值的大小表明了模型在訓練過程中的收斂情況。損失值太小,表明模型可能會出現(xiàn)欠擬合的情況;反之,則說明模型可能會出現(xiàn)過擬合的情況。由圖6可以看出,BERT模型和ERNIE-BiGRU模型的損失值一直處于較低的穩(wěn)定值,說明預訓練模型在該數(shù)據(jù)集中具備較好的收斂效果。
使用驗證集對經(jīng)過10個epoch后的訓練模型進行驗證,分別得到10個類別的精確率、召回率和F1值。對10個類別的3個評價指標分別取平均值,得到不同模型在每一輪的訓練情況。最后將訓練好的模型通過測試集進行測試,得到的結果如表3所示。每一輪epoch后的F1值如圖7所示。
表3 不同模型的測試結果
圖7 不同模型F1值的變化曲線
由表3可知,ERNIE-BiGRU模型在精確率、召回率和F1值這3個評價指標上的表現(xiàn)均優(yōu)于其他模型。由圖7可以看出,CNN模型、BiGRU模型和BiGRU-attention模型的結果相差不大,這表明如果embedding部分沒有很好地提取文本特征,下游模型的改變對結果的影響不會很大。transformer模型較差的表現(xiàn)表明了embedding后的下游模型是決定文本分類結果的重要部分。BERT模型和ERNIE-BiGRU模型在訓練過程中均能快速達到并持續(xù)保持較高的F1值,而ERNIE-BiGRU模型的F1值更高。雖然兩者在訓練的時間成本上要高于其他模型,但其性能是其他模型所無法比擬的。因此,實驗證明了ERNIE-BiGRU模型在中文文本分類任務上具有較強的性能。
本文采用ERNIE-BiGRU模型進行中文文本分類,相較于傳統(tǒng)的中文文本分類方法,使用ERNIE預訓練模型替代word2vec模型作為embedding層將文本數(shù)據(jù)轉換成對應的向量表示,并將此結果作為BiGRU模型的輸入進行訓練,得到最終的分類結果。從實驗結果來看,該模型使用BERT模型作為embedding層可以很好地保留語義信息,BiGRU模型的分類效果也同樣顯著,在文本分類任務中表現(xiàn)較好。但是,該模型的訓練時間較長,如何縮短訓練時間仍有待進一步完善。同時,由于ERNIE模型有長度限制,因此如何將此模型更好地應用于長文本分類任務中有待進一步研究。