何 濤,陳 劍,聞英友,孔為民
(1.東北大學(xué) 東軟研究院,遼寧 沈陽 110169;2.定陶區(qū)人民檢察院,山東 菏澤 274100)
隨著國內(nèi)司法業(yè)務(wù)信息化的發(fā)展,司法領(lǐng)域產(chǎn)生了巨量的文本數(shù)據(jù),目前辦案人員主要依靠手工分析案件卷宗、提取案件要素的工作方式,效率低下,已無法滿足智慧司法的客觀需要。如何在海量司法文書數(shù)據(jù)中自動抽取出有價值的信息,具有巨大的社會意義和商業(yè)價值。一種可行的方式是將司法文書進行細粒度分割,生成短文本子集,并通過深度學(xué)習(xí)等智能化方法對短文本進行多標簽分類,將案件要素抽取出來呈現(xiàn)給辦案人員。高效地將大規(guī)模司法短文本數(shù)據(jù)進行正確的歸類,是智慧司法系統(tǒng)的基本任務(wù),也是其他司法過程的基礎(chǔ)。
近年來,隨著計算能力和深度學(xué)習(xí)算法的快速發(fā)展,深度學(xué)習(xí)在人工智能的多個領(lǐng)域都取得了顯著的進展。通過使用非線性網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)復(fù)雜的函數(shù)表達,并在特征表達時使用分布式特征輸入,使深度學(xué)習(xí)憑借強大的特征學(xué)習(xí)能力,在自然語言處理領(lǐng)域取得令人矚目的成績。
Arevian[1]使用真實世界中的文本對循環(huán)神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,完成文本分類。Chen等人[2]采用擴展短文本特征的方式派生特定粒度的暗含主題,并在在多個主題粒度上,利用多主題來更精確的進行短文本建模。Fu等人[3]使用卷積神經(jīng)網(wǎng)絡(luò)對司法文書進行分類,達到了比傳統(tǒng)的基于Logistic回歸和支持向量機更好的效果。Kim[4]提出的TextCNN模型在文本分類方面取得了很好的效果,使得該模型成為CNN在自然語言處理中應(yīng)用最廣泛的模型。Kalchbrenner等[5]提出了動態(tài)的k-max pooling機制,使得文本特征提取能力進一步增強。Lei等[6]在標準卷積層使用基于張量的詞間操作代替串接詞向量的線性運算。Zhang等人[7]使用N-Gram模型擴展短文本,通過詞語之間的相似度閾值判定文本的分類。陳釗等人[8]使用情感詞典識別構(gòu)成二值特征作為外部輔助特征,提高了CNN模型的處理能力。Shi等人[9]提出了卷積循環(huán)神經(jīng)網(wǎng)絡(luò),在處理序列對象時比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型具有一些優(yōu)點。Vaswani等人[10]提出基于多頭自注意力機制的Transformer模型,大大提高了文本特征提取能力,為序列標注任務(wù)提出新的解決方法。Yang等[11]在LSTM模型運用Attention機制進行文本級分類,取得了較好的分類效果。Xiao等人[12]提出結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的方式提取文本特征,結(jié)合了兩種神經(jīng)網(wǎng)絡(luò)的特點。Hassan等人[13]針對卷積神經(jīng)網(wǎng)絡(luò)在捕獲文本特征長期依賴問題時需要多層網(wǎng)絡(luò),提出聯(lián)合CNN和RNN網(wǎng)絡(luò)模型。Yin等人[14]提出一個更為細化的卷積神經(jīng)網(wǎng)絡(luò)ATTCONV,該算法使用注意力機制擴展了卷積運算的上下文范圍。2018年10月底,Google公布BERT(bidirectional encoder representation from transformers)[15]預(yù)訓(xùn)練模型在11項NLP任務(wù)中刷新紀錄,引起業(yè)界的廣泛關(guān)注。
然而,現(xiàn)有的方法應(yīng)用于司法短文本多標簽分類時,還存在分類準確率不高的問題,主要原因是提取文本特征的方式仍然過于單一。為此,該文提出了一種基于深度學(xué)習(xí)堆疊模型的多標簽分類方法,融合了Transformer、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等各種深度學(xué)習(xí)算法的優(yōu)勢,解決了提取特征角度單一的問題,進一步提升了短文本多標簽分類性能。
提出的堆疊模型整體架構(gòu)如圖1所示。
圖1 短文本分類堆疊模型整體架構(gòu)
這種模型的優(yōu)勢在于,首先分別使用3種不同類型的深度學(xué)習(xí)網(wǎng)絡(luò)從不同角度提取文本特征,其次將不同模型的輸出結(jié)果以多標簽概率值進行融合,可以獲得比分類結(jié)果更加豐富的信息。第一基礎(chǔ)分類模型與第二基礎(chǔ)分類模型使用相同的結(jié)構(gòu)、相同的訓(xùn)練參數(shù),只是使用了不同的訓(xùn)練數(shù)據(jù),應(yīng)用在不同的過程中。
為驗證該方法的有效性,第一層分類模型分別使用BERT預(yù)訓(xùn)練模型、單通道TextCNN模型、Bi-GRU模型,混合分類模型使用自定義的包含兩個隱藏層的深度神經(jīng)網(wǎng)絡(luò)。
BERT預(yù)訓(xùn)練模型是在多層Transformer編碼器的基礎(chǔ)上實現(xiàn)的。Transformer編碼器作為文本特征提取器,其特征提取能力遠遠大于RNN和CNN模型,這也是BERT模型的核心優(yōu)勢所在。
Transformer是一個完全依賴自注意力來計算輸入和輸出的表示,而不使用序列對齊的遞歸神經(jīng)網(wǎng)絡(luò)或卷積神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)換模型。自注意力的計算方法如下:需要從編碼器的每個輸入向量中創(chuàng)建三個向量,一個Query向量、一個Key向量和一個Value向量。這些向量是通過將詞嵌入向量與3個訓(xùn)練后的矩陣Wq、Wk、Wv相乘得到的,維度默認為64。為了便于計算,將三個向量分別合并成矩陣,得到自注意力層的計算公式:
(1)
在Transformer的基礎(chǔ)上,BERT使用Masked LM來進行無監(jiān)督預(yù)訓(xùn)練。一個深度雙向模型,要比單向的“左-右”模型,或者淺層融合“左-右”和“右-左”的模型更高效。為了解決雙向訓(xùn)練中每個詞在多次上下文可以間接看見自己的問題,BERT采用隨機遮掩一定百分比的輸入token,然后通過預(yù)測被遮掩的token進行訓(xùn)練。
TextCNN使用雙通道,引入通道的目的是希望防止過擬合,可以在不同的通道中使用不同方式的詞向量嵌入方式,達到在小數(shù)據(jù)集合獲得比單通道更好的性能。其實直接使用正則化效果更好,該文使用單通道的TextCNN模型,其結(jié)構(gòu)如圖2所示。
圖2 TextCNN模型結(jié)構(gòu)
整個模型由四部分構(gòu)成:輸入層、卷積層、池化層、全連接層。TextCNN模型的輸入層需要輸入一個定長的文本序列,通過分析語料集樣本指定一個輸入序列的長度L,比L短的樣本序列需要填充,比L長的序列需要截取。對于詞向量的表示使用預(yù)訓(xùn)練好的word2vec作為輸入。
在自然語言處理領(lǐng)域,因為在詞向量上滑動提取特征沒有意義,所以每個卷積核在整個句子長度上進行一維滑動,即卷積核的寬度與詞向量的維度等寬,高度與步長可以自定義。通常,在TextCNN模型中使用多個不同尺寸的卷積核。卷積核的高度,可以理解為局部詞序的長度,窗口值是需要設(shè)置的超參數(shù),一般選取2~6之間的值。
在卷積層保留了特征的位置信息,為了保證特征的位置信息在池化層不被丟失,TexCNN模型選用k-max pooling池化方法。相比于最大池化方法,k-max pooling針對每個卷積核都保留前k個最大值,并且保留這些值出現(xiàn)的順序,即按照文本中的位置順序來排列這k個最大值,對于文本分類精度提升有很大作用。卷積層與池化層的核心作用就是特征提取,從定長文本序列中利用局部詞序信息,提取初級的特征,并組合初級的特征為高級特征。
GRU單元保持了LSTM的效果,同時又使結(jié)構(gòu)更加簡單。GRU只剩下更新門和重置門兩個門限。更新門用于控制前一時刻的狀態(tài)信息被帶入到當(dāng)前狀態(tài)的程度,更新門的值越大說明前一時刻的狀態(tài)信息帶入越多。重置門用于控制忽略前一時刻的狀態(tài)信息的程度,值越小說明忽略得越多。GRU單元結(jié)構(gòu)如圖3所示,GRU單元的計算公式為:
(2)
(3)
(4)
(5)
其中,Wxz、Wxr、Wxg是每一層連接到輸入向量xg的權(quán)重矩陣,Whz、Whr、Whg是每一層連接到前一個短期狀態(tài)h(t-1)的權(quán)重矩陣。
圖3 GRU單元結(jié)構(gòu)
在處理文本分類問題時,神經(jīng)網(wǎng)絡(luò)模型不僅要關(guān)注上文信息,同樣也要關(guān)注下文信息,將前向GRU和后向GRU結(jié)合起來,使得每一個訓(xùn)練序列向前和向后分別是兩個循環(huán)神經(jīng)網(wǎng)絡(luò),而且這兩個網(wǎng)絡(luò)連接著同一個輸出層,這便是Bi-GRU的優(yōu)點。
針對訓(xùn)練集,使用5折交叉驗證方法,首先將訓(xùn)練數(shù)據(jù)隨機分割成5個不同的子集,每個子集稱為一個折疊。使用第一層文本分類模型對數(shù)據(jù)進行5次訓(xùn)練和評估,每次使用4個折疊進行訓(xùn)練,使用另外一個折疊進行評估,評估的結(jié)果為每個類別的多標簽概率值,而不是分類結(jié)果。目前的堆疊模型,初級學(xué)習(xí)器都是輸出分類結(jié)果,讓混合器在此數(shù)據(jù)上進行投票,多標簽概率值數(shù)據(jù)遠比分類結(jié)果值包含更加豐富的信息。
(6)
將多個交叉驗證產(chǎn)生的多標簽概率值進行融合,對于單個樣本來說,相當(dāng)于將該樣本產(chǎn)生的三個多標簽概率值向量進行拼接,拼接后的數(shù)據(jù)作為下一層分類器的輸入數(shù)據(jù),標記仍然使用原來的label。對任意輸入樣本m,新數(shù)據(jù)標簽集表示為:〈sm;Pm;x1,x2,…,xQ〉 。
其中,Pm為經(jīng)過3個分類器的概率聯(lián)合,表示為:
(7)
經(jīng)過DNN混合器得到:Pm→Lm,Lm表示最終計算出的多標簽分類結(jié)果。
混合器采用自定義的深度神經(jīng)網(wǎng)絡(luò),輸入是基礎(chǔ)分類模型計算的聯(lián)合多標簽概率值,輸出為樣本的多標簽分類,其網(wǎng)絡(luò)結(jié)構(gòu)包含兩個隱藏層,每個隱藏層256個神經(jīng)元,采用He初始化方法;Dropout設(shè)置為0.5,使用ReLU激活函數(shù)。
為了驗證所提多標簽分類模型的有效性,使用中國裁判文書網(wǎng)公開的裁判文書,以從長文本中抽取案件要素為例,比較該模型與常用模型在分類性能上的差別。
本實驗搜集到中國裁判文書網(wǎng)公開的裁判文書10萬余份。為實現(xiàn)對文本進行分割并分類,需要定義復(fù)雜的短文本類別標簽集,針對不同的犯罪類型,標簽集包含的內(nèi)容也各不相同。以盜竊罪為例,需要定義的類別有:盜竊時間點、盜竊工具、手段方法、公然竊取、秘密竊取、入戶扒竊、造成其他損害、被盜物品價值、失竊者損失后果、處理情況、是否返還、如何到案、強制措施、認罪認罰情況、上訴抗訴等共15類標簽。由于目前并沒有公開的司法文書標注語料庫可供使用,因此從語料庫中選取盜竊類型且內(nèi)容較為詳實的2 900份文書進行標注,所有的標注工作均由經(jīng)過專業(yè)培訓(xùn)的人員手工標注完成。盡管不排除主觀因素對多標簽標注邊界的影響,但總體而言標注質(zhì)量較高,非常適合用于模型的訓(xùn)練。
標注工作完成后,短文本樣本的表示方式為: 〈sm,x1,x2,…,xQ〉,其中sm為輸入第m個的文本序列,xi為是否屬于標簽i的示性函數(shù),如果xi=1,表示sm屬于分類i,否則xi=0。
盜竊案件各要素標簽樣本分布如表1所示。
表1 盜竊案標簽樣本分布
從數(shù)據(jù)集中隨機抽取三部分作為訓(xùn)練集、驗證集、測試集,文書數(shù)量比例約為4∶1∶1。第一基礎(chǔ)分類模型主要用于獲取所有樣本的多標簽概率分布矩陣,每次使用80%的訓(xùn)練集數(shù)據(jù)進行訓(xùn)練。第二基礎(chǔ)分類模型,則使用全部的訓(xùn)練集數(shù)據(jù)重新訓(xùn)練3個第一層分類器,在原來分配的驗證集上獲取最佳模型?;旌掀魇褂枚鄻撕灨怕示仃囘M行訓(xùn)練,在訓(xùn)練第二基礎(chǔ)分類模型后,使用同一個混合器。兩個過程分布完成以后,在最終在測試集上得到整個堆疊模型的性能指標。
在機器學(xué)習(xí)中評估模型的性能通常使用精度P、召回率R、F1分數(shù)三個指標,計算公式分別為:
Pi=TPi/(TPi+FPi)
(8)
Ri=TPi/(TPi+FNi)
(9)
Fi=2Pi×Ri/(Pi+Ri)
(10)
其中,TP表示真正類的數(shù)量,F(xiàn)P表示假正類的數(shù)量,F(xiàn)N表示假負類的數(shù)量。由公式可知,P表示精度,R表示召回率,F(xiàn)1分數(shù)是精度和召回率的諧波平均值,只有當(dāng)召回率和精度都很高時,才能獲得較高的F1分數(shù)。為了證明提出的模型在性能方面的優(yōu)越性,在相同數(shù)據(jù)集上,分別與TextCNN、BiGRU、BERT等幾個模型進行比較,比較結(jié)果如表2所示。
表2 不同模型在測試集上分類性能
從統(tǒng)計數(shù)據(jù)可以看出,堆疊模型綜合計算BERT、TextCNN、BiGRU等強模型輸出的分類概率值,在F1分數(shù)上獲得進一步的提升,F(xiàn)1分數(shù)的加權(quán)平均值達到87.2%,比性能最好的BERT模型提高了3個百分點。
為提高短文本多標簽分類性能,提出一種融合深度學(xué)習(xí)與堆疊模型的短文本多標簽分類方法,該方法采取多層分類器結(jié)構(gòu),使用BERT、TextCNN、Bi-GRU等差異化較大、準確性較高的強分類器作為第一層學(xué)習(xí)模型,生成的多標簽概率矩陣用來訓(xùn)練第二層的混合器。
實驗表明,該方法優(yōu)于目前主流的幾種短文本多標簽分類模型,在性能上得到了進一步的提升。