韓曉暉,王文同,宋連欣,劉廣起,崔超然,尹義龍
(1.齊魯工業(yè)大學(山東省科學院)山東省計算中心(國家超級計算濟南中心),山東 濟南 250014;2.山東省計算機網(wǎng)絡(luò)重點實驗室,山東 濟南 250014;3.山東大學 軟件學院,山東 濟南 250101;4.山東財經(jīng)大學 計算機科學與技術(shù)學院,山東 濟南 250014)
近年來,隨著以裁判文書為代表的司法大數(shù)據(jù)不斷公開,如何利用機器學習、自然語言處理等技術(shù)來賦予計算機理解法律文本、學習法律知識、解決法律問題的智能逐漸成為司法和計算機交叉領(lǐng)域的研究熱點。相關(guān)技術(shù)既可以為法官、律師等專業(yè)人員提供輔助參考,提高他們的工作效率,也可以為缺乏法律知識的非專業(yè)人士提供低成本的法律援助,因而具有重要的應(yīng)用價值和社會意義。
司法判決預(yù)測(Law Judgement Prediction,LJP)是司法智能研究的主要方向之一。相關(guān)研究大都將LJP視為分類問題求解,以判決結(jié)果的各種可能性作為類別,以案件的事實描述等信息作為分類模型的輸入,輸出類別的預(yù)測值。目前,研究者已經(jīng)在勝訴/敗訴預(yù)測、適用法律條文(以下簡稱法條)預(yù)測、刑事案件的罪名及刑期預(yù)測等LJP任務(wù)上取得了不錯的進展[1-7]。
在已有LJP工作中,二審判決預(yù)測任務(wù)尚未受太多關(guān)注。該任務(wù)旨在基于一審審判情況及上訴材料(如新發(fā)現(xiàn)的事實、上訴理由等)來預(yù)測二審程序的判決結(jié)果。二審判決預(yù)測一方面可以幫助上訴人預(yù)估自己的上訴收益;另一方面也可以輔助一審法院提前排查其判決中的不足[8]。針對此任務(wù),Katz等[9]提出一種隨機樹模型來預(yù)測美國上訴法院是否會改變下級法院的判決,但該模型使用的部分特征是針對美國法律體系的特點設(shè)計的,如法官、法院的歷史行為等,因而不具有良好的普遍適用性。
由于涉及兩階段的審判程序,二審判決預(yù)測是一項具有挑戰(zhàn)性的任務(wù)。首先,司法審判是對案件事實的一種回溯性認知活動,二審程序通過再一次審查和認知案件事實來衡量一審判決在事實認定、適用法律、定罪量刑方面是否正確,從而作出維持原判、改判或發(fā)回重審的裁決[8]。因此,二審判決結(jié)果實質(zhì)上取決于一、二審法院對案件事實的認知是否一致。如何捕捉兩審法院的認知異同,是二審判決預(yù)測的關(guān)鍵問題和難點所在。其次,盡管深度學習模型在LJP任務(wù)中已表現(xiàn)出較好的預(yù)測性能,但模型的黑盒特性使得預(yù)測不具有很好的可解釋性,往往難以被司法專業(yè)人士認可。部分研究通過在模型中引入注意力機制等方式來定位案件事實中對結(jié)果貢獻大的部分,以此作為對預(yù)測原理的一種解釋[10],但這種方式通常難以很好地表達二審法院改變一審判決的原因。因此,如何提升可解釋性是二審判決預(yù)測面臨的另一個挑戰(zhàn)。
針對上述挑戰(zhàn),本文提出了一種基于有序多任務(wù)學習的二審判決結(jié)果預(yù)測方法SIJP-SML(Second Instance Judgement Prediction framework based on Sequential Multi-task Learning),該模型通過兩個時序依賴的多任務(wù)學習部分對從一審到二審的完整審判邏輯建模。前序多任務(wù)學習模型對一審程序建模,以捕捉一審法院對案情的認知;后序多任務(wù)學習模型對二審程序建模,在捕獲二審法院案情認知的基礎(chǔ)上融合兩審法院的認知來預(yù)測二審判決結(jié)果。本文的主要貢獻包括以下三點:
(1)提出的SIJP-SML以案情和上訴理由為輸入,通過端到端的方式完成二審判決預(yù)測,無須人工設(shè)計特征,普遍適用性更好。
(2)為增強預(yù)測的可解釋性,SIJP-SML在多任務(wù)學習中引入了法院觀點生成任務(wù),在對二審判決結(jié)果預(yù)測的同時,模擬生成法院對判決的解釋。
(3)在6萬余份二審裁判文書數(shù)據(jù)上構(gòu)建的實驗證明了SIJP-SML的有效性和合理性,其F1值達到63.9%,優(yōu)于所有基線方法。
本文接下來第1節(jié)簡述并分析現(xiàn)有的相關(guān)研究工作;第2節(jié)給出二審判決預(yù)測任務(wù)的形式化定義;第3節(jié)介紹本文提出的SIJP-SML;第4節(jié)使用真實二審裁判文書數(shù)據(jù)集對SIJP-SML進行實驗分析;第5節(jié)總結(jié)全文并討論未來可能的研究工作。
LJP研究最早可追溯到20世紀60年代前后。初期的研究探討了使用數(shù)學和統(tǒng)計學模型來預(yù)測判決結(jié)果的可能性,并在小規(guī)模的數(shù)據(jù)集上取得了一定的成功[11-15]。之后,出現(xiàn)了一些基于規(guī)則的司法預(yù)測專家系統(tǒng)[16-17],但規(guī)則的質(zhì)量嚴重依賴于其制定者對法律的理解程度,并且隨著規(guī)則數(shù)量的增加,規(guī)則之間的沖突也愈發(fā)嚴重。
隨著機器學習技術(shù)的發(fā)展,研究者開始將LJP任務(wù)作為一個自動分類問題來求解。起初,一些研究嘗試從案件信息中提取淺層文本特征,并使用SVM、隨機森林等經(jīng)典的分類模型來預(yù)測判決結(jié)果。如Lin等[18]使用了21種法律標簽作為特征;Aletras等[19]、Sulea等[20]使用了n-gram特征。由于淺層特征的語義表示能力有限,這類方法的性能和泛化能力往往較弱。
近期,得益于基于深度學習的自然語言處理技術(shù)的突破,越來越多研究者使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)、門控循環(huán)單元(Gated Recurrent Unit,GRU)、長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)等深度神經(jīng)網(wǎng)絡(luò)構(gòu)建LJP模型,在利用上述模型對案件事實進行編碼的基礎(chǔ)上,預(yù)測民事判決結(jié)果[1]、判決適用法條[2-3]、刑事案件的罪名[4-5]和刑期[6-7]等,獲得了比SVM、隨機森林等分類模型更好的性能。許多研究還利用預(yù)測任務(wù)之間的互補性,基于多任務(wù)學習對兩個以上的任務(wù)進行聯(lián)合建模,使它們相互促進,提高彼此的性能。如劉宗林等[21]提出了一種罪名和適用法條的聯(lián)合預(yù)測模型,通過融合案情語義編碼表示和罪名關(guān)鍵詞向量,提升易混淆罪名的預(yù)測精度。Li等[22]提出一種多通道注意力神經(jīng)網(wǎng)絡(luò)模型MANN,來對罪名、適用法條和刑期進行聯(lián)合預(yù)測。Xu等[23]提出一種基于“法條蒸餾”的注意力網(wǎng)絡(luò)模型LADAN,在對法條進行社群劃分的基礎(chǔ)上使用圖神經(jīng)網(wǎng)絡(luò)來學習易混淆法條之間的細微差別,進而利用學習到的差異來構(gòu)建適用法條、罪名、刑期的聯(lián)合預(yù)測框架。Zhong等[24]認為司法判決的各子任務(wù)之間存在先后順序,因此提出一種基于拓撲的多任務(wù)學習模型TOPJUDGE,用有向無環(huán)圖表示子任務(wù)之間的依賴,以此確定任務(wù)的學習順序。Yang等[25]在該工作的基礎(chǔ)上考慮了后續(xù)任務(wù)的預(yù)測結(jié)果對前序任務(wù)輸出的驗證作用,提出一種多視角雙反饋神經(jīng)網(wǎng)絡(luò)MPBFN。
在已有LJP研究中,僅少數(shù)工作關(guān)注了二審判決預(yù)測任務(wù)。Katz等[9]提出一種隨機樹模型來預(yù)測美國上訴法院的判決結(jié)果,但該模型使用了部分針對美國法律體系設(shè)計的特征,如法官、法院的歷史行為等,因而不具有很好的普適性。本文提出將SIJP-SML模型以案情和上訴理由為輸入,通過一種有序多任務(wù)學習框架對一、二審程序的完整審判邏輯進行建模,預(yù)測過程以端到端的形式進行,普適性更好。
由于許多機器學習模型的黑盒特點,預(yù)測的不可解釋性一直是制約LJP技術(shù)被廣泛接受和應(yīng)用的瓶頸問題。針對此問題,Jiang等[26]在構(gòu)建罪名分類器時,使用深度強化學習從輸入的文本中提取簡短、易讀且具有決定性意義的片段作為理據(jù),為預(yù)測結(jié)果提供了一種“反省解釋”。Ye等[10]提出一種帶注意力機制的序列到序列模型(Sequence to Sequence,Seq2Seq),根據(jù)案件的事實描述生成具有罪名區(qū)分性的解釋文本。Yang等[27]在罪名預(yù)測模型中引入判決解釋生成步驟來提高預(yù)測的可解釋性。受該項工作啟發(fā),本文提出將SIJP-SML引入法院觀點生成作為子任務(wù),并進一步通過注意力機制在法院觀點生成過程中融入上訴理由的影響。
本文通過在刑事二審裁判文書中抽取一、二審相關(guān)的文本內(nèi)容作為學習語料來對提出的SIJP-SML進行訓練。首先給出一份刑事二審裁判文書d的形式化表示如式(1)所示。
d=[f1st,r1st,v1st,p2nd,f2nd,r2nd,v2nd]
(1)
其中:
(1)f1st為一審程序認定的案件事實,包括犯罪行為、犯罪結(jié)果、犯罪工具等信息。
(2)r1st為一審判決結(jié)果,可包括罪名、刑期、適用法條等。由于罪名和刑期是在事實認定的基礎(chǔ)上依據(jù)法律條款確定的,為簡化問題,本文只關(guān)注適用法條集合l1st。
(3)v1st為一審法院觀點,是一審法院對判決作出的解釋性說明。
(4)p2nd為當事人依法向二審法院提出的不服原審判決的上訴理由。
(5)f2nd為二審法院認定的案件事實,其中可能包括新發(fā)現(xiàn)事實fnew,即f2nd=[f1st;fnew]。
(6)r2nd為二審判決結(jié)果,包括二審對一審結(jié)果作出的裁決y∈{0,1}(其中y=0表示“維持原判”,y=1表示“改判/發(fā)回重審”)(1)由于在司法實踐中,改判和發(fā)回重審的裁決標準有一定重合,本文將二者視為一類看待,詳見《刑事訴訟法》第二百三十六條。及二審適用法條集合l2nd,即r2nd=[y,l2nd]。
(7)v2nd為二審法院觀點,是二審法院對判決作出的解釋性說明。
通常,完整的d只有在二審程序完成后才能獲得,即對于二審判決預(yù)測任務(wù)來說,輸入只有一審情況[f1st,r1st,v1st]、上訴理由p2nd和新發(fā)現(xiàn)事實fnew,目標輸出為[r2nd,v2nd]。定義1形式化描述了二審判決預(yù)測任務(wù)。
(2)
本文提出的SIJP-SML方法(圖1)通過兩個時序依賴的多任務(wù)學習部分來對一審到二審的完整審判邏輯進行建模。前序一審判決模型M1st和后續(xù)二審判決模型M2nd均使用編碼層將輸入的文本進行編碼后傳遞給各子任務(wù)。M1st和M2nd的子任務(wù)中均包括一個適用法條預(yù)測任務(wù)和一個法院觀點生成任務(wù)來引導模型對案情認知。在此基礎(chǔ)上,M2nd進一步加入一個二審判決預(yù)測子任務(wù)來預(yù)測二審結(jié)果。下面從編碼層開始詳細介紹SIJP-SML方法的細節(jié)。
圖1 SIJP-SML框架示意圖
很多模型可以用來對案情描述等文本進行編碼表示,如雙向長短時記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,BiLSTM)、GRU、CNN、BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pre-Training)等。盡管BERT、GPT等大規(guī)模預(yù)訓練模型在很多自然語言處理場景中展現(xiàn)出強大的能力,但有研究指出BERT因長度限制需要對普遍較長的案情描述進行截斷,導致在司法文本處理中表現(xiàn)一般[28]。此外,使用案情描述這類長文本對BERT、GPT進行fine-tuning所需的計算資源和時間開銷也非常大??紤]到編碼器的選擇并不是本文關(guān)注的重點,因此在SIJP-SML中,采用了在LJP研究中使用較多且性能較好的BiLSTM。
由于一、二審判決模型的編碼過程不同,以下分別進行介紹。
3.1.1M1st編碼層
3.1.2M2nd編碼層
(3)
(4)
其中,Wf,p為權(quán)重矩陣。則受注意力影響之后的序列編碼向量表示g通過式(5)計算:
(5)
(6)
(7)
(8)
(13)
其中,ni為第i個訓練案例中一審或二審法院觀點的詞匯數(shù)量。
(14)
對應(yīng)的損失函數(shù)如式(15)所示。
(15)
SIJP-SML的學習目標是最小化有序多任務(wù)學習框架的總體損失L,L由各子任務(wù)的損失加權(quán)融合得到:
(16)
本節(jié)通過在真實二審裁判文書數(shù)據(jù)集上構(gòu)建實驗來分析SIJP-SML的性能。所有的實驗均在一臺配置為雙路32核Intel Xeon CPU/256G內(nèi)存/12GB顯存TITAN XP×2的服務(wù)器上完成。
本文使用的實驗數(shù)據(jù)集收集自中國裁判文書網(wǎng)(2)https://wenshu.court.gov.cn,共包含61 236個刑事案例的二審裁判文書,其中維持原判的50 776例,改判或發(fā)回重審的10 460例。在所有的案例中,共涉及618項罪名、15 756項法條。參照Zhong等[24]的工作,本文過濾掉不常見的法條,只關(guān)注出現(xiàn)頻率不少于100的法條,共計345條。對于數(shù)據(jù)集中的每份裁判文書,使用正則表達式提取其中的“一審案情”“一審法院觀點”“一審適用法條”“上訴理由”“二審案情”“二審法院觀點”“二審適用法條”“二審判決結(jié)果”部分作為訓練語料。在實驗中,每一類別的70%作為訓練集,10%作為驗證集,20%作為測試集。
本文首先使用百度中文詞法分析器(Lexical Analysis of Chinese,LAC)(3)https://github.com/baidu/lac對裁判文書進行分詞,然后使用Word2Vec對詞匯進行向量化,詞向量的維度設(shè)為200,整個數(shù)據(jù)集的詞匯量為135.2萬。SIJP-SML模型中BiLSTM的隱層維度設(shè)為256。在SIJP-SML模型的訓練過程中,batch的大小設(shè)為50,學習率為0.003,dropout值為0.5。
本文使用宏觀精確率(Macro-Precision,MP)、宏觀召回率(Macro-Recall,MR)和宏觀F1值(Macro-F1,F(xiàn)1)作為模型性能的評價測度,計算如式(17)~式(19)所示。
其中,TP、FP、FN分別為預(yù)測結(jié)果中真正例、假正例、假負例的個數(shù)。
TextCNN[31]: 該模型對輸入的詞向量序列使用CNN進行編碼,通過過濾器(filter)從輸入中獲得語義特征,經(jīng)過一個全連接層后,由sigmoid()函數(shù)輸出二審判決結(jié)果的預(yù)測值。過濾器窗口的大小設(shè)為[3,4,5],每個過濾器窗口100個feature map,采用ReLU(Rectified Linear Units)作為激活函數(shù)。
Seq2Seq[32]: 該模型使用一個LSTM編碼器和一個LSTM解碼器對輸入文本向量序列進行編碼和解碼,基于學習到的隱藏狀態(tài)向量使用一個全連接層和sigmoid函數(shù)輸出二審判決結(jié)果的預(yù)測值。
HAN(Hierarchical Attention Network)[33]: 該模型使用BiGRU獲得詞匯級別和句子級別的注意力來對文本進行嵌入表示,然后分別經(jīng)過一個多層感知機和一個全連接層后,由sigmoid()函數(shù)輸出二審判決結(jié)果的預(yù)測值。
TOPJUDGE[24],(4)https://github.com/thunlp/TopJudge: 基于拓撲的多任務(wù)學習模型,該模型使用有向無環(huán)圖來描述子任務(wù)之間的依賴關(guān)系。本文將二審判決預(yù)測任務(wù)添加為原始TOPJUDGE模型中最終任務(wù)的后續(xù)任務(wù)。
在TextCNN、Seq2Seq、HAN和TOPJUDGE的訓練過程中,詞向量維度、學習率、dropout、batch的大小均與4.2節(jié)SIJP-SML的設(shè)置相同。
SIJP-SML與基線方法的實驗結(jié)果如表1所示。
表1 SIJP-SML與基線方法性能比較
從表1中可以看出:
(1)在二審判決預(yù)測任務(wù)上,基于深度學習的方法依然優(yōu)于基于淺層文本特征的方法。TFIDF+SVM在各項評測指標上的性能均低于其他方法,印證了基于CNN、LSTM、GRU等深度神經(jīng)網(wǎng)絡(luò)的編碼器能夠更好地捕捉案件事實描述中豐富的語義信息,使得預(yù)測的效果得到提升,這與大部分已有LJP研究的實驗結(jié)果一致。
(2)在基于深度神經(jīng)網(wǎng)絡(luò)的單任務(wù)預(yù)測模型中,基于LSTM的Seq2Seq方法比TextCNN、HAN整體性能要好。盡管Seq2Seq的MP值低于TextCNN,但其MR和F1值均高于后者,其中F1值較TextCNN有11.83%的提升,主要原因是: 案件的事實描述文本通常較長,由于LSTM能夠更好地建模詞匯序列的長距離依賴,因此表現(xiàn)得更好一些。盡管HAN在詞匯級編碼的基礎(chǔ)上又進行了句子級別的編碼,但其整體性能要略低于Seq2Seq。分析可能的原因是: 影響二審是否會改變一審判決的因素往往在于案件的細節(jié),而詞匯級的表示學習更能捕捉文本的語義細節(jié),將語義表示進一步抽象到句子級別反而會降低預(yù)測的性能。
(3)基于多任務(wù)學習的方法的性能優(yōu)于單任務(wù)學習的方法。TOPJUDGE雖在MP指標上低于TextCNN和Seq2Seq,但由于其考慮了多任務(wù)之間的共性和依賴性,在綜合性能上高于其他的基線方法,其F1值較TextCNN、Seq2Seq和HAN的提高分別為15.5%、3.28%和5.66%。
(4)SIJP-SML在所有的方法中獲得了最好的綜合性能。盡管其MP值略低于TextCNN、MR值略低于TOPJUDGE,但F1值卻遠高于其他方法。相較于基線方法中綜合性能最好的模型TOPJUDGE,SIJP-SML的F1值有14.1%的提升。這表明SIJP-SML通過有序多任務(wù)學習框架對一審到二審的完整審判邏輯進行建模,比將二審判決預(yù)測直接視為一個單審判階段的LJP任務(wù)效果更好,證明了SIJP-SML的模型結(jié)構(gòu)的合理性。
為了進一步驗證SIJP-SML中針對上訴理由的注意力機制及整個有序多任務(wù)學習框架的重要性,本文對SIJP-SML進行了消融實驗,具體結(jié)果如表2所示。
表2 SIJP-SML模型消融實驗結(jié)果
其中,除SIJP-SML之外的各模型定義如下:
SIJP-SML-att: 在SIJP-SML的M2nd中只使用f2nd作為輸入,不考慮上訴理由的影響。
由表2可見,SIJP-SML在所有評價測度上的性能遠高于M1stM2nd先獨立學習一、二審的認知向量再求向量相似度的方式。這表明,SIJP-SML基于有序多任務(wù)學習對兩審程序按時序依賴關(guān)系進行聯(lián)合建模的方式更符合二審判決時的裁決邏輯,因而達到了更好的預(yù)測性能。與SIJP-SML-att相比,SIJP-SML在MP、MR和F1測度上的提升分別為23.53%、14.3%和35.41%。分析原因發(fā)現(xiàn),在SIJP-SML的二審認知向量學習的過程中,通過注意力機制來納入上訴理由的影響,能夠指導模型更加聚焦于二審事實中影響判決的關(guān)鍵要素,進而提高了預(yù)測的準確性。綜上,有序多任務(wù)學習框架和針對上訴理由的注意力機制都對SIJP-SML的性能提升有正面影響。
為了直觀地分析SIJP-SML中法院觀點生成任務(wù)對提升預(yù)測可解釋性的幫助,本節(jié)首先分別以二審判決結(jié)果為“維持原判”和“改判/發(fā)回重審”的案例為例,列舉了SIJP-SML生成的法院觀點,見表3和表4。在案例1(表3)中,被告人的罪名為“販賣毒品罪”,上訴理由為“量刑過重”,請求法院“從輕處罰”;在生成的一審法院觀點中,準確覆蓋了判處“販賣毒品罪”的理據(jù)“販賣”“其”“毒品”,并且包含“從輕處罰”的依據(jù)“如實”“供述”“犯罪”“事實”,與真值中提及的依據(jù)一致;在生成的二審法院觀點中,包含了維持原判的依據(jù)“上訴”“理由”“不能”“成立”。在案例2(表4)中,被告的罪名為“交通肇事罪”,上訴理由為“量刑過重”“請求緩刑”;在生成的一審法院觀點中,包含了定罪的理據(jù)“重大”“交通”“肇事”“死亡”等關(guān)鍵詞匯,并成功地生成了真值中描述的“從輕處罰”依據(jù)“投案自首”,但是未能包含“不宣告緩刑”的依據(jù);而在生成的二審法院觀點中,成功地捕捉到了改判緩刑的關(guān)鍵要素,即“上訴人”獲得了“被害人”(親屬)的“諒解”。
表3 法院觀點生成案例1
表4 法院觀點生成案例2
可見,生成的法院觀點內(nèi)容覆蓋法院觀點真值的內(nèi)容越多,越有助于提升預(yù)測的可解釋性。因此,本文進一步分析了生成的法院觀點詞匯對法院觀點真值中詞匯的覆蓋率情況(去除停止詞),如式(20)所示。
(20)
圖2給出了測試樣本的覆蓋率分布情況。通過分析發(fā)現(xiàn),52%以上的測試樣本覆蓋率超過50%,即SIJP-SML生成了一半以上的真值中的詞匯;69%以上的測試樣本覆蓋率超過40%。
圖2 生成的法院觀點對法院觀點真值的詞匯覆蓋率
上述分析證明,通過引入法院觀點生成任務(wù),能夠使SIJP-SML的預(yù)測具有一定的可解釋性。
本文提出一種基于有序多任務(wù)學習的二審判決預(yù)測方法SIJP-SML。該方法通過兩個時序依賴的多任務(wù)學習部分來對從一審到二審的完整審判邏輯進行建模,通過捕捉兩審法院對案情的認知異同來預(yù)測二審判決結(jié)果。同時,為增強預(yù)測的可解釋性,SIJP-SML引入法院觀點生成作為子任務(wù)。在6萬余份二審裁判文書數(shù)據(jù)上的實驗結(jié)果表明,SIJP-SML比TOPJUDGE、HAN、Seq2Seq等基線LJP模型在二審判決預(yù)測任務(wù)上表現(xiàn)出更好的綜合性能,其F1測度上的分數(shù)相較于性能最好的基線方法TOPJUDGE有14.1%的提升。通過消融實驗,證明了SIJP-SML的設(shè)計合理性。通過案例分析和覆蓋率統(tǒng)計,證明了生成的法院觀點文本使SIJP-SML的預(yù)測具有較好的可解釋性。在未來的工作中,將考慮在有序多任務(wù)學習中引入罪名、刑期預(yù)測等更多的子任務(wù),并探索更好的模型架構(gòu),以期進一步提升SIJP-SML的性能;此外,減輕類別間數(shù)據(jù)不平衡給預(yù)測性能帶來的負面影響也是需要進一步研究的問題。