竇文琦,陳艷平,秦永彬+,黃瑞章,劉麗娟
(1.貴州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院 公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025;2.貴州師范學(xué)院 麗瓊工作室,貴州 貴陽 550018)
在大數(shù)據(jù)和人工智能發(fā)展的背景下,智慧司法研究領(lǐng)域興起并日趨火熱,類案推薦、刑期預(yù)測、信息抽取等自動化研究成為了該領(lǐng)域的熱點(diǎn)研究方向。隨著我國司法機(jī)關(guān)不斷推進(jìn)案件信息公開,海量的裁判文書得以出現(xiàn)在互聯(lián)網(wǎng)上,這些裁判文書蘊(yùn)含了豐富的信息,對其進(jìn)行挖掘?qū)a(chǎn)生巨大的價值。案件要素識別作為司法信息抽取任務(wù)中一部分,為量刑、罪名預(yù)測等任務(wù)提供信息支撐。
以盜竊案為例,從“外衣口袋內(nèi)”這一關(guān)鍵信息可以推斷出被告存在扒竊的盜竊行為;“如實(shí)供述”表示被告認(rèn)罪態(tài)度好;“曾因犯盜竊罪”說明被告屬于累犯。這些包含重要信息的案件要素可以決定案件性質(zhì)、左右被告人量刑。案件要素在裁判文書中有多種不同的表現(xiàn)形式,使用人工查找的方式耗時耗力。因此,使用深度學(xué)習(xí)模型輔助司法工作顯得尤為重要。
針對案件要素識別的研究存在以下幾個難點(diǎn):傳統(tǒng)的案件要素識別方法主要通過裁判文書中的文本特征預(yù)測案件要素的標(biāo)簽類別,忽略了案件要素標(biāo)簽的司法語義信息;在裁判文書中,某些案件要素在裁判文書中的出現(xiàn)次數(shù)相對較少,導(dǎo)致模型無法充分學(xué)習(xí)到小樣本的特征,很難從中提取規(guī)律。針對以上問題,本文提出了一種基于機(jī)器閱讀理解的案件要素識別方法,主要研究工作如下:
(1)本文方法將案件要素標(biāo)簽信息作為先驗(yàn)知識輔助模型進(jìn)行案件要素的識別。針對每類案件要素進(jìn)行案件要素標(biāo)簽信息與上下文的語義交互,使模型充分學(xué)習(xí)到小樣本中的語義特征,提高了模型的整體性能。
(2)本文針對裁判文書中文字書寫歧義問題,使用對抗訓(xùn)練策略。在模型的詞嵌入部分應(yīng)用對抗擾動,提升了模型應(yīng)對噪聲樣本的魯棒性。
近年來,隨著神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的發(fā)展,越來越多的學(xué)者開始將其用于相關(guān)要素的識別任務(wù)中。如鄧文超[1]使用深度學(xué)習(xí)方法對單人單罪的刑事案件識別時間、地點(diǎn)、影響、行為等基本案件要素,并應(yīng)用于自動量刑、相關(guān)法律條文預(yù)測和相似案件推薦等司法任務(wù)中。劉等[2]提出多任務(wù)學(xué)習(xí)模型,對案情描述部分采用BiLSTM神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制進(jìn)行編碼,識別法條和罪名要素。使用文本分類方法進(jìn)行案件要素識別的模型有Att-BiLSTM、TextCNN、FastText、DPCNN[3]等。為了進(jìn)一步提升要素識別的效果,Liu等[4]采用基于BERT[5]的預(yù)訓(xùn)練語言模型將案件要素識別問題轉(zhuǎn)化為多標(biāo)簽分類任務(wù),加入Layer-attentive策略微調(diào),提升了案件要素識別的性能。Huang等[6]提出了SS-ABL框架,充分利用領(lǐng)域知識和未標(biāo)記數(shù)據(jù)改進(jìn)分類器。與以前僅用單一信息的方法相比,實(shí)現(xiàn)了顯著的性能改進(jìn)。
近年來,基于深度學(xué)習(xí)的機(jī)器閱讀理解方法受到了廣泛的關(guān)注。機(jī)器閱讀理解是指根據(jù)給定的問題,從文本中找到答案。Wan等[7]提出了一種新的基于Transformer的方法,能夠識別段落的相關(guān)性并通過具有級聯(lián)推理的聯(lián)合訓(xùn)練模型找到答案范圍,可以有效地處理長文檔。Li等[8]提出了一種多任務(wù)聯(lián)合訓(xùn)練方案,通過增強(qiáng)預(yù)訓(xùn)練語言模型的表示來優(yōu)化閱讀理解模塊,并通過膠囊網(wǎng)絡(luò)優(yōu)化答案類型分類模塊,設(shè)計了一個多任務(wù)聯(lián)合訓(xùn)練模型,同時獲取答案文本和答案類型。越來越多的學(xué)者將信息抽取任務(wù)轉(zhuǎn)化為機(jī)器閱讀理解方法,例如實(shí)體關(guān)系抽取[9,10]、事件抽取[11]、命名實(shí)體識別[12,13]等。Li等[9]使用機(jī)器閱讀理解方法處理命名實(shí)體識別任務(wù),在嵌套和非嵌套的NER上都表現(xiàn)出了良好的性能。Gupta等[14]提出了一種新穎的名詞短語生成方法構(gòu)造輸入問句,使用機(jī)器閱讀理解模型從句子中識別實(shí)體,并證實(shí)了模型的有效性。劉等[15]借助機(jī)器閱讀理解方法,引入先驗(yàn)知識,充分挖掘上下文的語義信息,提高了中文命名實(shí)體識別的精確性。
注意力機(jī)制在機(jī)器閱讀理解模型中的運(yùn)用比較廣泛,許多模型都是針對這一部分進(jìn)行改進(jìn)的。Shen等[16]在注意力機(jī)制層將問題和上下文匯總為單個特征向量。Yu等[17]發(fā)現(xiàn)BiDAF注意力考慮了文本到問題以及問題到文本的雙向注意力,它比簡單地使用從文本到問題的單向注意力效果更好。受此啟發(fā),本文方法采用BiDAF注意力策略,以便更好地進(jìn)行案件要素標(biāo)簽信息與上下文之間的語義交互。
本文方法中案件要素識別模型主要分為3個部分,如圖1所示,從左到右依次為嵌入層、交互層和預(yù)測層。①在嵌入層,使用FGM算法在word embedding部分添加對抗擾動,將對抗樣本和原始樣本混合一起訓(xùn)練模型以提升模型應(yīng)對噪聲樣本的魯棒性。案件要素標(biāo)簽信息構(gòu)建的問題與文本以拼接的形式進(jìn)行輸入。②在交互層,使用RoBERTa預(yù)訓(xùn)練語言模型以增強(qiáng)問題和文本的語義表征。通過雙向注意力從兩個方向出發(fā)為上下文和案件要素標(biāo)簽信息的交互提供補(bǔ)充信息。③在預(yù)測層,通過一層全連接網(wǎng)絡(luò)和softmax函數(shù)最終識別案件要素。
此節(jié)通過數(shù)據(jù)預(yù)處理構(gòu)建符合閱讀理解的輸入形式。給定一篇裁判文書
P={P1,P2,…,Pn}
(1)
其中,n表示文本P的長度。給P中所有的案件要素分配一個標(biāo)簽y∈Y,Y是所有標(biāo)簽種類(如案件要素標(biāo)簽again累犯,surrender自首等)的預(yù)定義列表。
首先將帶標(biāo)簽的數(shù)據(jù)集轉(zhuǎn)換為三元組(問題,答案,上下文)的形式。每個案件要素標(biāo)簽y∈Y都與一個問題相對應(yīng),問題表示為
Qy={Q1,Q2,…,Qm}
(2)
其中m表示問題Qy的長度。三元組(問題,答案,上下文)中每個“問題”與案件要素標(biāo)簽y∈Y相對應(yīng),“答案”即是案件要素存在與否,記為A,“上下文”代表一篇裁判文書P。最終表示為三元組 (Qy,A,P) 的形式,向模型輸入Qy、P,期望輸出A。
使用案件要素標(biāo)簽信息進(jìn)行問題的構(gòu)造,案件要素標(biāo)簽信息根據(jù)量刑規(guī)則制定。問題統(tǒng)一設(shè)為表1的形式。
表1 問題構(gòu)建
模型的輸入包括問題Qy、裁判文書P、特殊符號[CLS]和[SEP],它們組成輸入序列
{[CLS],Q1,Q2,…,Qm,[SEP],P1,P2,…,Pn,[SEP]}
(3)
如圖2所示,對于序列中的每一個token,其輸入表示是詞嵌入(token embeddings)、段嵌入(segment embeddings)和位置嵌入(position embeddings)三者的相加[5]。詞嵌入層將各個token轉(zhuǎn)換為768維的向量表示;段嵌入層用兩種向量表示,輔助區(qū)分Qy和P兩部分,第一個向量中各個token用0表示,第二個向量中各個token用1表示;位置嵌入層通過在每個位置上學(xué)習(xí)一個向量表示進(jìn)行序列順序信息的編碼。
圖2 模型輸入表示
本層使用RoBERTa[18]模型作為編碼器,結(jié)構(gòu)與BERT[5]一致。RoBERTa[18]是一種經(jīng)過預(yù)訓(xùn)練的深度雙向Transformer模型,可在各種任務(wù)中實(shí)現(xiàn)先進(jìn)的性能,結(jié)構(gòu)如圖3所示。
圖3 RoBERTa結(jié)構(gòu)
圖3中的TN代表第N個字符經(jīng)過RoBERTa網(wǎng)絡(luò)輸出的語義字符向量,Trm代表Transformer。每一層的輸入都是基于上一層的輸出,第i層的輸出可以表示為
Hi=TransformerBlock(Hi-1),1
(4)
其中,Hi∈Rt×d,t為序列長度,d為隱層維度,L表示Transformer層數(shù)。
在注意力交互部分,使用Q∈Rm×d和P∈Rn×d來分別表示編碼的問題和上下文。首先計算每對Q和P的相似性,相似矩陣表示為S∈Rn×m。其中Snm表示第n個上下文詞和第m個問題詞的相似性,此處使用的相似度函數(shù)為[17]
α(p,q)=W0[p;q;p⊙q]
(5)
(6)
其次計算從上下文到問題(P2Q)以及問題到上下文(Q2P)兩個方向的注意力。
P2Q注意力表示哪些問題詞與每個上下文詞最相關(guān)。P2Q注意力如圖4所示,構(gòu)造如下:
圖4 P2Q注意力
通過應(yīng)用softmax函數(shù)對相似矩陣S的每一行進(jìn)行歸一化,第n個上下文詞對問題詞的注意力權(quán)重an計算為
(7)
對于所有n,Σanm=1。 每個上下文關(guān)注的問題向量為
=∑manmQ
(8)
Q2P注意力表示哪些上下文詞與每個問題詞最相關(guān)。Q2P注意力構(gòu)造如下:
通過函數(shù)maxcol找出相似矩陣S每一列的最大值并進(jìn)行歸一化。問題詞對上下文詞的注意力權(quán)重b計算為
b=softmax(maxcol(S))∈Rn
(9)
問題關(guān)注的上下文向量為
=∑nbnP∈Rd
(10)
(11)
β(p,,)=[p;;p⊙;p⊙]∈Rn×3d
(12)
上一層通過雙向注意力交互生成的表示矩陣E經(jīng)過解析層得到最終的語義表征E’,輸入到預(yù)測層進(jìn)行預(yù)測。
在預(yù)測層,通過預(yù)測答案類型來判斷案件要素是否存在。將特殊符號[CLS]表示hCLS作為序列的整體表示,被傳遞到一個全連接層以計算概率分布,進(jìn)而表示答案類型
Ptype=softmax(FFN(hCLS))
(13)
其中,hCLS為特征向量,F(xiàn)FN表示全連接層,softmax表示層歸一化。
使用Focal Loss作為損失函數(shù),答案類型損失定義如下
L=FocalLoss(ptype,Y)
(14)
其中,Y為答案類型標(biāo)簽。
GAN之父Goodfellow首先提出對抗訓(xùn)練概念,其基本原理為在原始輸入樣本上添加擾動radv,得到一些對抗樣本,然后將對抗樣本放在模型中進(jìn)行訓(xùn)練。這樣不僅可以提高對抗樣本的魯棒性,還可以提高原始樣本的泛化性能。起初的對抗訓(xùn)練是針對CV任務(wù)的,為了將對抗訓(xùn)練遷移到NLP任務(wù)中,Goodfellow提出了FGM算法,F(xiàn)GM算法可以在連續(xù)的embedding上做擾動。本文方法使用FGM算法進(jìn)行對抗訓(xùn)練,將對抗擾動應(yīng)用于詞嵌入(word embedding)。設(shè)詞嵌入向量為S,模型參數(shù)為θ,給定模型的條件概率為p(y|S;θ)。 則S上的對抗性擾動radv定義為
radv=-∈g/g2
(15)
(16)
本文的數(shù)據(jù)集來自裁判文書網(wǎng),包含某省的脫敏裁判文書數(shù)據(jù)。在所有案件中盜竊案占了相當(dāng)大的比例,因此選用917篇盜竊案裁判文書作為實(shí)驗(yàn)數(shù)據(jù)集,表2詳細(xì)描述了相關(guān)案件要素的統(tǒng)計信息。
表2 數(shù)據(jù)集相關(guān)信息
評價指標(biāo)準(zhǔn)確率(Precision)、召回率(Recall)、F1值(F1-score)的計算方式如下
precision=TPTP+FP
(17)
recall=TPTP+FN
(18)
F1=2*recall*precisionrecall+precision
(19)
其中,TP表示正確預(yù)測為正例,F(xiàn)P表示錯誤預(yù)測為正例,F(xiàn)N表示錯誤預(yù)測為負(fù)例。
本文模型采用Python平臺,PyTorch 框架實(shí)現(xiàn),在NVIDIA Tesla P40 GPU平臺上進(jìn)行實(shí)驗(yàn)。批處理大小batch_size=16,訓(xùn)練輪數(shù)epoch=10,學(xué)習(xí)率learning_rate=2e-5,權(quán)重衰減指數(shù)weight_decay=0.01,最大總輸入序列長度max_seq_length設(shè)為512,問題最大長度max_question_length設(shè)為64,答案最大長度max_answer_length設(shè)為55,優(yōu)化器使用AdamW優(yōu)化器。
3.4.1 對比實(shí)驗(yàn)
將本文模型與案件要素識別常用的多標(biāo)簽分類模型作對比,模型分為無預(yù)訓(xùn)練和有預(yù)訓(xùn)練兩類,實(shí)驗(yàn)結(jié)果選取3次實(shí)驗(yàn)的平均值。
(1)無預(yù)訓(xùn)練模型選擇Att-BiLSTM、TextCNN、FastText、DPCNN[3]。其中,Att-BiLSTM是基于attention機(jī)制的雙向LSTM神經(jīng)網(wǎng)絡(luò)模型;TextCNN是用來做文本分類的卷積神經(jīng)網(wǎng)絡(luò);FastText能取得與深度網(wǎng)絡(luò)相媲美的精度,卻在訓(xùn)練時間上比深度網(wǎng)絡(luò)快許多數(shù)量級;DPCNN用來解決TextCNN在捕獲長距離特征時不理想的問題;
(2)有預(yù)訓(xùn)練模型選擇BERT[5]、ERNIE[19]、RoBERTa[18]、SS-ABL[6]。其中,BERT是Google提出的基于Transformer的預(yù)訓(xùn)練模型,下游多標(biāo)簽分類任務(wù)采用微調(diào)方法;ERNIE在BERT的基礎(chǔ)上采用短語和實(shí)體級別的mask;RoBERTa在BERT的基礎(chǔ)上使用更大的數(shù)據(jù)再次訓(xùn)練,改進(jìn)優(yōu)化函數(shù),采用動態(tài)mask方式訓(xùn)練模型;RoBERT+Seq2Seq_Attention是指用RoBERTa提取文本特征,用Seq2Seq_Attention框架進(jìn)行標(biāo)簽的識別;SS-ABL使用反繹學(xué)習(xí)方法實(shí)現(xiàn)基于BERT模型的案件要素識別。
本文的模型和其它模型在同一數(shù)據(jù)集下識別效果見表3,從實(shí)驗(yàn)結(jié)果可以看出,使用預(yù)訓(xùn)練模型比不使用預(yù)訓(xùn)練模型的效果要好,其中RoBERTa預(yù)訓(xùn)練模型表現(xiàn)最為出色,因?yàn)轭A(yù)訓(xùn)練方法可以讓模型基于一個更好的初始狀態(tài)進(jìn)行學(xué)習(xí),從而達(dá)到更好的性能。相比無預(yù)訓(xùn)練的多標(biāo)簽分類方法,本文方法提升了12.2%,相比有預(yù)訓(xùn)練的多標(biāo)簽分類方法,本文方法提升了3.2%。與對比方法相比較,本文方法在預(yù)訓(xùn)練模型RoBERTa的基礎(chǔ)上使用了機(jī)器閱讀理解方法,通過案件要素標(biāo)簽信息構(gòu)造的問題為模型的識別提供了輔助作用;通過雙向注意力機(jī)制進(jìn)行問題與上下文語義的進(jìn)一步交互,使模型更加關(guān)注于問題指示的上下文信息;通過對抗訓(xùn)練進(jìn)一步提高了模型的魯棒性,使模型在案件要素識別任務(wù)上有更好的效果。
表3 模型性能對比/%
3.4.2 消融實(shí)驗(yàn)
為了驗(yàn)證本文方法各模塊的有效性,我們對模型進(jìn)行了消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表4。MRC表示使用機(jī)器閱讀理解方法,Attention表示加入雙向注意力機(jī)制,AT表示對模型使用對抗訓(xùn)練,F(xiàn)Loss表示使用Focal Loss損失函數(shù)。
表4 模型消融實(shí)驗(yàn)/%
RoBERTa預(yù)訓(xùn)練模型為消融實(shí)驗(yàn)的基準(zhǔn)模型。
RoBERTa+MRC在基準(zhǔn)模型RoBERTa的基礎(chǔ)上使用了機(jī)器閱讀理解方法,F(xiàn)1值提升了3.3%。因?yàn)楸疚氖褂玫臋C(jī)器閱讀理解模型在輸入文本前加入了案件要素標(biāo)簽信息即案件要素類型的描述信息,這些案件要素類型的描述作為先驗(yàn)知識提升了模型的識別效果。
RoBERTa+MRC+Attention在RoBERTa+MRC的基礎(chǔ)上增加了雙向注意力機(jī)制,F(xiàn)1值提升了0.2%。經(jīng)過RoBERTa模型之后使用雙向注意力機(jī)制進(jìn)一步融合上下文和問題之間的交互信息,使模型更加關(guān)注于與問題有關(guān)的上下文語義表征,進(jìn)而提升識別效果。
RoBERTa+MRC+Attention+AT在RoBERTa+MRC+Attention的基礎(chǔ)上對模型加入了對抗訓(xùn)練,F(xiàn)1值提升了1.1%。使用對抗訓(xùn)練中的FGM算法在word embedding部分應(yīng)用對抗擾動,可以提高模型在應(yīng)對噪聲樣本的魯棒性。
RoBERTa+MRC+Attention+AT+Focal Loss在RoBERTa+MRC+Attention+AT的基礎(chǔ)上使用Focal Loss損失函數(shù),F(xiàn)1值提升了0.2%。Focal Loss損失函數(shù)降低了大量簡單負(fù)樣本在訓(xùn)練中所占的權(quán)重,可以更好地挖掘困難樣本。
3.4.3 細(xì)粒度實(shí)驗(yàn)
為了驗(yàn)證本文方法在應(yīng)對小樣本案件要素情況下的表現(xiàn),用本文方法與對比實(shí)驗(yàn)中的RoBERTa基線模型進(jìn)行細(xì)粒度對比,進(jìn)一步輸出每種案件要素的細(xì)粒度結(jié)果。實(shí)驗(yàn)結(jié)果見表5,本文方法在屬于案件要素類別young、surrender的小樣本數(shù)據(jù)上分別提升了5.5%和10.3%。例如,屬于surrender類別的案件要素在裁判文書中表現(xiàn)形式多樣,在數(shù)據(jù)樣本量較少的情況下僅通過學(xué)習(xí)裁判文書的文本特征很難進(jìn)行有效識別。本文使用的機(jī)器閱讀理解方法通過在輸入文本前拼接案件要素標(biāo)簽信息,獲得了一定的先驗(yàn)知識,使得模型充分學(xué)習(xí)到所要識別的案件要素特征。因此,本文使用的機(jī)器閱讀理解方法對小樣本案件要素的識別效果有所提高,可以有效改善樣本不均衡問題。
表5 細(xì)粒度實(shí)驗(yàn)F1/%
3.4.4 對抗訓(xùn)練對模型魯棒性的影響
為了驗(yàn)證對抗訓(xùn)練對模型魯棒性的影響,本小節(jié)將擾動參數(shù)∈設(shè)1.0,對比了模型在加入對抗訓(xùn)練和不加對抗訓(xùn)練的效果,實(shí)驗(yàn)結(jié)果見表6。
表6 對抗訓(xùn)練對模型的影響/%
實(shí)驗(yàn)結(jié)果表明,對抗訓(xùn)練在對大部分的案件要素類別的識別上都有一定的提升。與不加對抗訓(xùn)練時的模型相比,加入對抗訓(xùn)練后的F1值整體提升了1.1%。這說明在原有模型訓(xùn)練過程中注入對抗樣本,可以提升模型對微小擾動的魯棒性,進(jìn)而提升模型的整體性能。
3.4.5 Focal Loss對模型的影響
為了驗(yàn)證Focal Loss對模型性能的影響,在本文方法的基礎(chǔ)上分別選用CE Loss和Focal Loss兩種損失函數(shù)進(jìn)行比較。實(shí)驗(yàn)結(jié)果見表7,可以看出使用Focal Loss的效果更好。
表7 Focal Loss對模型的影響/%
雖然CE Loss可以平衡正負(fù)樣本的重要性,但是不能區(qū)分難易樣本,F(xiàn)ocal Loss可以降低易區(qū)分樣本的權(quán)重,并關(guān)注難區(qū)分樣本的訓(xùn)練。Focal Loss在CE Loss的基礎(chǔ)上添加了調(diào)制因子,其中的參數(shù)γ∈[1,5] 取值對模型的影響見表8。從實(shí)驗(yàn)結(jié)果可以看出,γ取值為2時效果最好,我們選擇γ取值為2時的Focal Loss作為本文模型的損失函數(shù),使模型達(dá)到最佳表現(xiàn)。
表8 選取Focal Loss中不同γ值的影響/%
本文提出了一種基于機(jī)器閱讀理解的案件要素識別方法,利用案件要素標(biāo)簽信息構(gòu)造問題輔助模型識別。使用RoBERTa預(yù)訓(xùn)練語言模型增強(qiáng)問題和上下文的語義表征,通過雙向注意力機(jī)制更好地融合問題到上下文以及上下文到問題的語義信息。實(shí)驗(yàn)結(jié)果表明,本文方法可以有效改善小樣本案件要素的識別性能。同時,本文采用的對抗訓(xùn)練FGM算法進(jìn)一步提升了模型的魯棒性。
在未來工作中,我們將進(jìn)一步識別更多類別的案件要素,并將其應(yīng)用到法律判決預(yù)測的真實(shí)場景中。