田杰文,楊 亮,張 琍,毛國慶,林鴻飛
1.大連海洋大學 信息工程學院,遼寧 大連 116023
2.大連理工大學 遼寧 大連 116024
3.北京計算機技術及應用研究所,北京 100854
4.北京國雙科技有限公司,北京 100083
在過去的幾年里,司法領域所產生的數據量增長迅速。自然語言處理是一個成熟的人工智能的子領域,其中利用人工智能進行法律判決預測[1-2]在司法領域的應用逐漸變得成熟,法律判決預測任務是計算機在閱讀案件的事實描述之后進行預測該法律案件的判決結果的過程,這一過程包括罪名預測、刑期預測、罰金預測等。利用人工智能進行法律判決預測一方面可以以更廉價方式為不熟悉法律的人提供更簡單高效的獲取高質量法律資源的途徑,另一方面也可以為法律從業(yè)者提供一定程度的法律參考有助于提高其工作效率以及減少因人為因素而帶來的不必要的麻煩。從另一個角度來看,充分利用人工智能進行法律判決預測也有利于提升司法部門的工作效率,還能響應號召進一步推動司法系統(tǒng)的公平公正公開透明。
中國大陸是大陸法系的實行地區(qū),法院只利用案件的事件陳述和成文法進行法律判決,而不會參考判例的判決,法官會根據案件所涉及的相關法律條款以及該案件的事實陳述,結合現實具體情況綜合考量做出最終判決。
現有大多數的工作都是試圖將法律判決任務形式化為文本分類任務,這些工作一般采用現成的分類模型[3-5]從文本中提取淺層特征[6-7],或將案例歸檔[8],或通過手工注釋案例和設計具體特征來獲得對案例描述的更深層次的語義理解[9],或者采用機器學習和自然語言處理的神經網絡方法,可以更好地對法律文本進行分析處理[10-12]。
本文旨在通過引入適當的機制,利用神經網絡模型將刑事案件的文本事實描述與法律條款相結合來解決罪名預測問題,為了更好地理解法律文書和更具體的表述,綜合分析了相關的法律條款和裁判文書,總結形成了分類模型,然后利用現有的神經網絡模型結合自監(jiān)督學習方法學習文本特征,再將句子級特征合并為案例級特征后,通過神經網絡模型來解決罪名預測問題。在實驗中,采用2018“中國法研杯”司法人工智能挑戰(zhàn)賽構建的數據集[13]。實驗結果表明,本文的方法和模型與對比模型相比能夠有效地從數據文本中提取到特征,最大程度上確保預測的準確率,在2018“中國法研杯”司法人工智能挑戰(zhàn)賽構建的數據集上精度達到了88.1%。
為了減少人工和提高相關的工作效率,人工智能與法律領域的聯系越來越緊密,法律判決預測的相關研究越來越受人關注。在早期研究中傾向使用統(tǒng)計學模型進行預測,Kort等[14]利用數學和統(tǒng)計學模型分析大量的歷史案例來預測美國聯邦最高法院的最終判決。Ulmer等[15]使用基于規(guī)則的方法分析法律文本數據來幫助法官對事實證據進行分析。Keown等[16]利用數學模型分析特定情況下的現有法律案件進行預測。然而這些方法都被限制在很少標簽的小數據集下。后來,隨著計算機算力的提高,一些基于機器學習[6,9]的方法被提出,他們都是將一些手工設計的特征與線性分類器相結合,用來提高模型的性能。這樣做的缺點就是這些方法嚴重依賴手工設計的特征,使得設計出的模型不能更好地解決其他問題。
近年來,隨著神經網絡的應用越來越廣泛,研究人員更傾向于使用神經網絡來解決法律相關問題。Luo等[11]提出了一個分層注意力網絡來識別處理事實描述與相關法律條款之間的關系來提高預測性能。Zhong等[12]將法律判決預測任務的子任務的依賴關系形式化為一個有向無環(huán)圖來建模,從而提出了一個基于神經網絡的多任務學習框架,用于有效地共同解決這些子任務。Hu等[10]人工定義了10個判別屬性,并通過模型學習這些屬性來對易混淆的罪名進行分類。Long等[17]利用閱讀理解對判決流程進行法律判決預測。Wu等[18]利用自監(jiān)督學習的方法解決對話系統(tǒng)中的問題。
上述基于統(tǒng)計學模型和機器學習的方法,都需要花費大量的數據和人工來保證對判決預測的準確性,再加上有的模型需要利用人工設計特征提取,模型在泛化問題上存在嚴重不足?;谏疃葘W習的方法使用神經網絡來解決法律判決預測問題才是當下研究的熱點。但是訓練時長增長,亦或是因使用自監(jiān)督學習而產生大量的參數,而導致所需的硬件代價過大以及模型預測的準確率低,是當前利用深度學習進行預測無法繞開的問題。本文設計提出了結合ALBERT和TextCNN的罪名預測模型ALBT,利用輕量級BERT進行預訓練能夠大幅減少訓練時長,并且確保能夠提取到足夠的語義表示,然后通過拼接結構簡單的TextCNN模型進行分類預測,在保證分類準確性的前提下進一步節(jié)省時間,大幅減少訓練時長。實驗結果表明模型能夠高水平地完成罪名預測任務。
BERT[19]全稱為Bidirectional Encoder Representation from Transformers,Devlin等2018年于Google提出的預訓練模型,其結構圖如圖1所示,BERT模型使用雙向Transformer編碼器進行文本處理,利用大規(guī)模無標注的語料訓練來獲得文本中包含的豐富的語義表示。BERT主要包含了2個預訓練任務,第一個是Masked LM即給定一句話,隨機抹去這句話中的一個或幾個詞,要求根據剩余詞或句來預測被抹去的詞是什么。第二個就是下一句話預測(next sentence prediction,NSP),即給定一篇文章中的兩句話,判斷第二句話在文本中是否緊跟在第一句話之后。BERT的核心的模塊是Transformer編碼器,Transformer模型為Encoder-Decoder[20-21]結構,而ALBERT只使用其中的Encoder結構作為特征提取器,具體結構如圖2所示。Encoder包括自注意力機制(self-attention)用于探索發(fā)現上下文中詞語之間的關系和前饋神經網絡(feed forward neural network)兩部分組成。并且每層之間都加入了一個求和歸一化層(Add&Norm),用來把本層的輸入和輸出相加然后歸一化處理[22]。最后再把兩層網絡進行殘差連接[23]。
圖1 BERT模型結構Fig.1 BERT model structure
圖2 Transformer Encoder結構Fig.2 Transformer Encoder structure
由于BERT模型使用了12層Transformer編碼器,從而產生了數以億計的參數,使訓練速度變慢,然而一味地堆疊參數并不能使模型性能變得更加優(yōu)越,甚至可能導致模型性能的下降。Lan等[24]基于BERT提出ALBERT對BERT加以改進用以精簡由于使用多層Transformer編碼器而產生的大量的參數量,并且能夠適當提升模型的性能。
Kim等[25]提出了TextCNN,使用卷積神經網絡來進行文本分類的模型,模型為了能夠更好地捕捉文本中局部的相關性,使用了多個大小不同的卷積核來提取句子中的關鍵信息。TextCNN模型結構如圖3所示。
圖3 TextCNN模型結構Fig.3 TextCNN model structure
模型的第一層嵌入層(embedding layer)首先接受由ALBERT訓練好的向量,預先訓練的詞嵌入可以利用其他語料庫得到更多的先驗知識,由預先訓練好的向量構成一個由N×K的嵌入矩陣M,N代表句子的長度,K代表詞向量的長度。然后進入到模型的第二層卷積層(convolution layer)提取句子的特征,卷積核的大小為w∈Rhk,其中h代表卷積核的高度,k代表卷積核的寬度,卷積核只在高度上從上到下滑動進行卷積操作,在寬度上和詞向量的維度保持一致,最后得到的列為1,行為(n-k+1)的特征映射(feature mapping)如式(1)所示:
模型的第三層是一個1-max pooling層,最大池化層,即為從每個滑動窗口產生的特征向量中篩選出一個最大的特征,然后將這些特征拼接起來構成向量表示。經過這層之后不同長度的句子在經過池化層之后都能變成定長表示。
經池化操作后,獲得一維向量,再通過ReLU激活函數輸出,添加Dropout層,防止過擬合,經過全連接層輸出并在全連接層添加正則化參數。最后全連接層的所有輸出值都連接到softmax層,最后輸出預測罪名的結果。
自監(jiān)督學習的卷積神經網絡ALBT結構如圖4所示,主要由輸入層、ALBERT層、TextCNN層、輸出層組成。
圖4 ALBT模型結構Fig.4 ALBT model structure
將事實描述從輸入層輸入到ALBERT層中,經過編碼后將文本數據處理成序列化數據,再輸入到Transformer編碼器,經過自監(jiān)督的多層雙向Transformer編碼器的訓練最終輸出文本的特征向量表示,之后進入到TextCNN層中,卷積層再提取特征表示,池化層防止過擬合,減少參數,加速計算,最終經過softmax分類器進行分類,完成罪名預測過程。
由于BERT的局限性,故ALBERT做出以下幾點改進:
參數因式分解(factorized embedding parameterization)也叫矩陣分解,本質上是一個低秩分解的操作,通過對詞嵌入(embedding)部分的降維來達到減少參數的目的,經過參數因式分解之后的時間復雜度變化如式(2)、(3)所示,其中V代表詞表大小,H代表隱藏層維度大小,E代表詞向量維度大小,當H?E時,模型的參數量可以大大減少。
跨層參數共享技術(cross-layer parameter sharing),顧名思義就是可以在不同的層之間共享參數,可共享的分為全連接層、注意力層。通過跨層參數共享技術可將大量的參數減低到一個較低水平。
通過使用參數因式分解技術和跨層參數共享技術可以大大地減少模型所產生的參數量,加快模型的運算速度,減少硬件上的內存開銷,加快模型的訓練速度。
句子間順序預測(sentence-order prediction,SOP),不同于BERT的下一句話預測(NSP),ALBERT使用句間順序預測,給定模型兩個句子,讓模型預測兩個句子的前后順序,相比原先的NSP、SOP技術更加復雜,能夠使模型學習到更多的上下文之間豐富的語義關系。
模型通過引入自監(jiān)督學習機制在和簡單的卷積神經網絡相結合構成整體模型ALBT,并且經過上述改進技術,使得模型大大減少了自監(jiān)督學習過程中所產生的大量的參數,大幅加快了模型的訓練速度,而且在經過大量實驗之后發(fā)現上述改進能夠有效提高模型預測的準確率,這說明相關改進是十分必要的。
本文采用2018“中國法研杯”司法人工智能挑戰(zhàn)賽(CAIL2018)構建的數據集CAIL2018-small,其中數據來自“中國裁判文書網(http://wenshu.court.gov.cn/)”公開的刑事法律文書,考慮到數據集中包含一些無事實描述的無用文書案例,在實驗中將無效數據剔除后,有訓練集數據154 177條、驗證集數據17 088條和測試數據32 433條,涉及202個罪名和183個法律條款。
為了檢驗實驗模型的預測能力,選擇了5種主流的對照模型與本文的模型進行預測效果對比,所涉及的模型包括基于RNN的網絡模型、基于CNN的網絡模型、基于注意力機制的網絡模型、基于拓撲的多任務學習框架模型。具體分別是:
(1)BiLSTM[26]:使用雙向的LSTM來獲取上下文的信息,最后用全連接層和sigmod激活函數作為輸出層。
(2)CNN[27]:使用多卷積核的CNN作為案情描述的編碼器,使用最大池化層對卷積后的特征進行篩選。
(3)DPCNN[28]:提出一個深層金字塔卷積網,是第一個廣泛有效的深層文本分類卷積神經網絡。
(4)Fact-Law[29]:利用SVM分類器從案情描述文本中抽取法條特征,將法條信息融入基于注意力機制的神經網絡模型。
(5)TopJudge[11]:將子任務之間的依賴視為有向無環(huán)圖,并提出一個拓撲的多任務學習框架,該框架將多任務學習和有向無環(huán)圖依賴融入到判決預測中。
根據對所使用的數據集中所涉及罪名的統(tǒng)計可以看出司法領域的實際數據分布不平衡,訓練數據中同一罪名的數據量相差太大,有一半的相同罪名的數據不足500條,同一罪名的數據最多的有8 000條以上,而最少的僅有12條。故本文采用微平均F值Fmicro、宏平均F值Fmacro作為模型的評價指標。計算公式如式(4)、(5)所示:
表1展示了基線模型和本文提出的模型在2018“中國法研杯”司法人工智能挑戰(zhàn)賽構建的數據集CAIL2018-small上進行罪名預測的實驗結果。
表1 各模型的實驗結果對比Table 1 Comparison of experimental results of each model 單位:%
通過表1的對比實驗結果可以看出,本文提出的模型在相同數據集的情況下在罪名預測任務上的實驗結果要明顯優(yōu)于其他所有對比實驗模型。與對比實驗中最好的模型相比微平均和宏平均分值高出3.5和14.6個百分點。
模型通過引入自監(jiān)督學習的方法,并且對其加以優(yōu)化改進,在技術層面上利用參數因式分解和參數共享兩種技術相結合的方式,而后在原先NSP的基礎上通過改進,利用SOP技術,盡可能多地學習到文本中的語義信息,在保證模型預測準確率的前提下大大減少了因自監(jiān)督學習所帶來的參數量暴增的問題。
但是由于法律條款的嚴謹性,相似的犯罪行為就會導致出現一些名稱相似的罪名,這些罪名的事實描述也十分相似,但是卻又存在著不同點,這導致模型可能無法正確地區(qū)分它們,所以模型在區(qū)分混淆罪名時表現不理想。
針對現有的罪名預測模型方法上,本文提出了ALBT模型來解決罪名預測問題,結合ALBERT和TextCNN模型進行罪名預測,用ALBERT模型進行模型預訓練來獲得更加豐富的上下文文本表示,利用ALBERT相比于基礎BERT來說參數量大大減少的優(yōu)勢,使模型更加輕量,訓練速度也更加快,再結合結構簡單的卷積神經網絡TextCNN模型進行罪名預測,從結果上看取得了不錯的效果,結果要優(yōu)于基線模型。
本文仍存在一些不足之處:對于一些易混淆罪名的分類效果不理想,比如“騙取貸款罪”與“貸款詐騙罪”,兩項罪名相同點都是實施了集資行為,但是不同點是前者具有非法占有目的,而后者不具有非法占有目的,如何能更加細粒度的從案件事實描述中提取出有效的信息來區(qū)分易混淆的罪名,目前模型在對這一問題的表現上欠佳,將來需要更加深入的研究和探索。