彭亞男,尹 華,2,賀敏偉
(1.廣東財經(jīng)大學 信息學院;2.廣東省智能商務工程技術(shù)研究中心,廣東 廣州 510320)
在司法判決中,法官根據(jù)案情描述查找相關(guān)的法律條文,再根據(jù)法律條文和案情描述確定罪名,最后根據(jù)法律條文、罪名以及案情描述確定刑罰。法律條文推薦(法條推薦,法條預測)對確定罪名和量刑至關(guān)重要。法條推薦根據(jù)案情描述(定義為事實)預測所適用的法律條文,可作為法院判決的依據(jù)[1],是輔助法官進行司法判決的重要實踐,也是智慧法院的關(guān)鍵技術(shù)與應用之一。近年來,涌現(xiàn)出大量關(guān)于我國智能司法應用的文獻,研究者們主要從寬泛的人工智能法律應用以及判決預測任務等角度對當前的研究進行綜述[2-4],但較少針對性地系統(tǒng)梳理中文法條推薦方法。法條推薦任務的本質(zhì)是對案情描述和法律法規(guī)進行表示,提取出關(guān)鍵特征信息用于模型的訓練和預測。相比傳統(tǒng)的法條推薦算法,基于深度學習的方法利用逐層學習的方式,提取案情描述的深層語義特征,是當前的主流方法。本文從中文法條推薦任務的模型構(gòu)建模式出發(fā),首先將其分為基于分類任務、多任務學習以及基于匹配的法條推薦三類;然后,根據(jù)所采用的深度神經(jīng)網(wǎng)絡模型,深入分析當前中文法條推薦算法研究進展;并從實際應用角度進一步分析復雜場景下中文法條推薦算法研究;最后,歸納整理中文法條推薦數(shù)據(jù)集、評價指標以及實驗數(shù)據(jù),并對未來的研究方向和重點進行展望。
法條推薦任務的輸入通常為案情描述,輔以法律法規(guī)等法律知識,采用不同的模式構(gòu)造法條推薦模型。根據(jù)采用的模式,我們將法條推薦方法劃分為基于分類任務的法條推薦、多任務學習的法條推薦以及基于匹配的法條推薦三類。
此類方法將法條推薦任務轉(zhuǎn)化為文本分類任務,法律條文作為類標簽,結(jié)合案情描述構(gòu)建分類器,預測的類別即推薦的法律條文。根據(jù)特征抽取方法將其分為基于傳統(tǒng)機器學習的方法(如圖1a 所示)和基于深度學習的方法(如圖1b所示)。
Fig.1 Framework for law articles recommendation based on classification tasks圖1 基于分類任務的法條推薦框架
傳統(tǒng)機器學習方法需要人工提取特征,包括字符、詞以及短語級別的淺層語義特征[5]。此類淺層語義特征缺乏深層語義信息,難以區(qū)分相似法律條文。例如,Lin 等[6]通過人工的方法定義特殊法條之間的不同因素,從而獲得案情描述的深層次表示,但該方法需要大量的人工標注;Liu 等[5,7]提出將法律條文信息加入預測模型中,只考慮了少量的法律條文信息,不適用大規(guī)模的法條推薦。傳統(tǒng)機器學習方法的特征提取需要專業(yè)人員參與,標注成本高且具有數(shù)據(jù)特異性,難以適應不同場景?;谏疃葘W習的方法通過深度神經(jīng)網(wǎng)絡模型進行文本表示,自動提取案情描述的文本特征,具有抽取深層特征的優(yōu)勢,具體在第2 節(jié)詳細展開描述。
現(xiàn)實司法判決中,法條推薦與罪名預測、刑期預測并非獨立存在。因此有研究者采用多任務學習方法進行法條推薦。多任務學習包括多任務學習框架選擇和子任務依賴關(guān)系的確定兩部分,其中多任務學習框架有參數(shù)硬共享和軟共享兩種模式。參數(shù)硬共享通過在相關(guān)任務之間共享表示層或某些編碼層來實現(xiàn)參數(shù)共享,參數(shù)軟共享為每個任務學習一個網(wǎng)絡,但每個任務的網(wǎng)絡都可以訪問其他任務對應網(wǎng)絡中的信息。Zhong 等[8]將子任務之間的依賴關(guān)系形式化為有向無環(huán)圖,將所有子任務都按照拓撲順序進行排列,其中最典型的就是無依賴關(guān)系(圖2a)和序列依賴關(guān)系(圖2b)。無依賴關(guān)系的多任務學習將子任務獨立考量,但在學習模型的不同位置共享參數(shù)。范阿曼等[9]對3 個子任務使用了相同的基于BERT[10]特征提取子網(wǎng)絡,并共享了相應的特征提取子網(wǎng)絡權(quán)重;潘瑞東等[11]對于罪名預測和法條推薦兩個子任務在使用BERT 模型和知識蒸餾策略提取相應特征的時候共享參數(shù),降低模型計算復雜度并且提高模型推理速度。序列依賴的多任務法條推薦中,罪名預測依賴于法條預測,刑期預測依賴于法條預測和罪名預測;張春云等[12]在此基礎上加入基于自注意力機制的過程監(jiān)督層,通過引入過程監(jiān)督來獲取有效的先行任務相關(guān)依賴信息,從而為后續(xù)序列多任務依賴信息融合層抽取提供重要的特征保障;Yang 等[13]將每個任務的中間預測結(jié)果映射到潛在空間狀態(tài),再將潛在空間向量與案情語義向量合并,并將其用于前向任務預測(FP),同時建立后向任務驗證(BV),最后將前向預測和后向驗證結(jié)合得到最終的預測結(jié)果,解決了法條缺少依賴任務提升效果的問題。
Fig.2 Multi-task law articles recommendation framework圖2 多任務法條推薦框架
目前主流的法條推薦方法是將法條當作類別標簽,采用分類的思想將案情描述歸類到相關(guān)的法條中,但是法律條文是具有規(guī)范的表述形式,而現(xiàn)有的分類方法簡單的將法條作為類別標簽的索引,未深度利用法條的語義信息從而影響法條推薦質(zhì)量。因此,研究者們提出將法條推薦視為匹配任務,基于匹配的方法將法條推薦任務視為語義匹配任務,計算案情描述和法條的匹配程度,按照匹配程度進行推薦。該任務分為法條的嵌入表示層、案情嵌入表示層以及語義匹配層3個部分,具體如圖3所示。
Fig.3 Law articles recommendation based on matching圖3 基于匹配的法條推薦
在嵌入表示時,李琳等[1]從深層語義匹配出發(fā),從案情描述中提取與法條語義匹配的重要局部特征,再聯(lián)合案情描述和匹配概率分布,通過回歸樹輸出最終的推薦結(jié)果,并且具有一定的可解釋性;Wang 等[14]針對法條知識和結(jié)構(gòu)信息,將罪名和法條結(jié)構(gòu)以樹形進行表示,通過分解層將法律條文(子標簽)分解為對齊分量和剩余分量。對齊分量是同一罪名(父標簽)的子標簽的相似語義,進行聚合得到罪名表示;剩余分量表示每個子標簽的唯一特征,并將其聚合為子標簽的表示。將事實標簽之間的共同注意機制來生成有效的語義輸入匹配層得到法條和罪名預測結(jié)果;Fan 等[15]考慮現(xiàn)實中一個案情可能違背了多條法律條文,然而這些法律條文并非獨立的存在,它們之間存在著關(guān)系等問題,根據(jù)構(gòu)建先驗知識和外部知識構(gòu)建法律條文圖,用圖神經(jīng)網(wǎng)絡(Graph Neural Network,GNN)得到法條嵌入表示,并對案情描述進行編碼,將法條和案情描述的嵌入表示輸入到匹配層得到法條推薦的結(jié)果;
深度學習方法不依賴于人工獲取的文本特征,可以直接對文本內(nèi)容進行學習、建模[16],對文本表示具有天然的優(yōu)勢,本節(jié)從卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)、GNN 以及混合模型等具有代表性的深度學習模型出發(fā),對中文法條推薦算法進行歸納總結(jié)。
CNN 通過卷積和池化操作進行特征提?。?7],卷積層的作用是從句子中提取出語義組合信息,池化層進行降維,保留主要特征的同時減少參數(shù)和計算量,防止過擬合。TextCNN[18]是最早用于文本分類的卷積神經(jīng)網(wǎng)絡模型,結(jié)構(gòu)如圖4 所示。在CNN 的基礎上,DPCNN[19]、VDCNN[20]等算法相繼被提出。
Fig.4 Structure of TextCNN圖4 TextCNN結(jié)構(gòu)
在法條推薦研究中,Yan 等[21]在TextCNN 的卷積層提取案情特征時首先計算一些關(guān)鍵字間的相似性,并建立反向網(wǎng)絡,以充分利用法律法規(guī)信息。CNN 用于文本分類時具有從全局信息中提取局部特征的能力,但其無法捕獲長距離依賴關(guān)系[22]。為此,Zhong 等[8]提出一個判決預測框架TOPJUDGE,該方法使用CNN 編碼層對案情描述進行編碼,每個任務使用一個特定的LSTM 單元格,并以拓撲順序獲得每個任務的輸出,該方法利用了任務之間的相關(guān)性,相較于傳統(tǒng)的CNN、HLSTM 等單任務模型取得了更好的結(jié)果;Zhang 等[23]針對案情描述具有長距離依賴關(guān)系的特征,將DPCNN 用于法條推薦模型中,DPCNN 模型使用兩級等長卷積和最大池化,并在每次卷積后執(zhí)行最大池化。重復執(zhí)行卷積池循環(huán)塊可以捕獲合法文本的長距離依賴關(guān)系,該方法也可以克服CNN+LSTM 模型的時間復雜度高的問題。程豪等[24]提出基于分層學習的易混淆法條預測模型HLCLPM,該模型使用兩個CNN 分類器對法條進行分層預測,對易混淆法條完成第二層預測從而解決易混淆法條推薦問題,其中卷積層負責抽取文本的特征,最大池化層負責選擇最主要的特征值,SoftMax 用于預測在各個類別上的概率?;贑NN 的法條推薦主要通過卷積核從案情描述向量中提取特征,卷積核捕獲的特征數(shù)量與卷積核大小相關(guān)。CNN 具有較強的并行能力,并且由多層神經(jīng)網(wǎng)絡組成,理論而言,只要層次夠深就可以捕獲遠距離特征。
RNN 由輸入層、隱藏層和輸出層組成[25],結(jié)構(gòu)如圖5所示。RNN 在處理序列數(shù)據(jù)上有著良好的性能,具備處理變長輸入和長距離依賴的能力,但對長期的記憶影響較小,不能應對輸入很長的情況,面臨梯度爆炸和梯度消失等問題。針對該問題,研究者提出多種變體RNN,如 LSTM[26]、GRU[27]等,他們都可以有效解決長期記憶依賴和反向傳播中的梯度消失等問題。RNN 及其變體在文本分類中也取得了顯著的成果。例如,Wang 等[14]將法條預測視為標簽匹配問題,把標簽(罪名和法條)結(jié)構(gòu)以樹形進行表示,在編碼層利用GRU 將標簽和事實嵌入到低嵌入空間中,提出一種融合標簽的層次結(jié)構(gòu)和語義的分層匹配網(wǎng)絡?;赗NN 的法條推薦可以解決案情描述的長文本依賴以及序列信息問題,然而循環(huán)神經(jīng)網(wǎng)絡是順序計算,不能并行計算,存在計算效率問題。
Fig.5 Structure of RNN圖5 RNN結(jié)構(gòu)
GNN 是一種直接對圖結(jié)構(gòu)數(shù)據(jù)進行學習的框架[28]。GNN 通過節(jié)點及其周圍的鄰居信息不斷聚合,以學習到節(jié)點的高層表示?;贕NN 的法條推薦分為3 個步驟:首先進行案情描述的文本嵌入表示;然后按照法條共現(xiàn)信息、法條詞匯共現(xiàn)以及法條相似多等信息構(gòu)建法條圖,通過GNN 得到法條的嵌入表示;最后通過匹配層實現(xiàn)法條推薦,或通過融合層將法條知識與案情描述融合后分類獲得法條推薦模型。具體如圖6所示。
Fig.6 Law articles recommendation based on GNN圖6 基于GNN的法條推薦流程
在基于GNN 的法條推薦研究中,F(xiàn)an 等[15]提出基于圖的標簽匹配模型GLAM,通過建立語義法條圖、案情法條圖、詞匯圖以及法條—詞匯關(guān)聯(lián)圖構(gòu)造標簽異構(gòu)圖(即法條圖),然后采用GNN 對異構(gòu)圖進行編碼得到法條底層嵌入,同時對案情描述進行編碼,將得到的底層嵌入表示輸入到匹配層得到法條推薦的結(jié)果;Xu 等[29]提出一個端對端的法條推薦方法LADAN,該方法將GNN 中的聚合方案改為蒸餾操作,以提取相似法條之間的可區(qū)分特征。案情描述特征的基礎表示采用CNN 和Bi-RNN 編碼,易區(qū)分表示則是通過TF-IDF 建立法條關(guān)系圖,根據(jù)閾值將其劃分為子圖,經(jīng)過圖蒸餾層獲得各個子圖的區(qū)分向量,根據(jù)子圖的區(qū)分向量對案情描述進行注意力加權(quán)得到區(qū)分特征,該方法將案情描述作為整體進行特征表示;Yue 等[30]提出NeurJudge+方法,結(jié)合司法實際將案情描述事實分為不同部分,構(gòu)建法條和罪名兩個標簽相似圖,然后通過圖分解學習得到標簽的特有特征,使用CNN 和Bi-RNN 編碼案情描述、法律條文和罪名描述的語義向量,采用注意力機制得到關(guān)注標簽特性的案情表示。GNN 以圖的形式表示文本,直觀表達文本各元素之間豐富的關(guān)系,并且能夠利用節(jié)點間的連接關(guān)系保留全局圖信息?;贕NN 的法條推薦可以從多維度建立法條圖,當設計的圖結(jié)構(gòu)足夠有效時,其可以更好地捕捉結(jié)構(gòu)信息,從而更深入地融入法條知識。
單一深度學習模型各有優(yōu)劣,混合模型則綜合考慮各個單一模型的優(yōu)勢,例如CNN 可以從全局信息中提取局部關(guān)鍵信息,RNN 擅長處理長距離依賴關(guān)系。在混合模型研究中,陳文哲等[31]使用TextCNN 對案情進行編碼,采用Bi-LSTM 對犯罪序列編碼,然后將案情描述與犯罪序列拼接后經(jīng)過全連接層得到法律條文推薦;張青等[32]引入BiLSTM 模型解決案情描述長文本依賴問題,設計CNN 不同的卷積核尺寸提取不同粒度的專業(yè)術(shù)語特征信息。注意力機制允許編碼器回顧輸入序列,即編碼器會基于一個上下文向量來調(diào)節(jié)輸出從而使特征提取更為全面,因此有研究者提出融合CNN 與注意力機制的組合方法。例如,Yang等[13]在CNN 編碼器的基礎上提出一種基于任務間拓撲結(jié)構(gòu)的多視角雙反饋詞搭配注意機制網(wǎng)絡MPBFN-WCA;Wang 等[33]在基于CNN 對案情描述和法條定義進行嵌入表示的基礎上提出動態(tài)成對注意力模型DPAM。亦有研究者將RNN 與注意力機制組合,在關(guān)注案情描述文本序列信息和長距離依賴關(guān)系的同時使用注意力機制關(guān)注案情描述中法律規(guī)定的關(guān)鍵信息。例如,Yang 等[34]提出一個循環(huán)注意力模型RAN,首先使用LSTM 和自注意力機制對法條和案情描述進行編碼;然后在重復注意力模塊多次捕捉法條與案情描述之間的重復交互信息;最后輸出基于法條注意力的案情表述推薦結(jié)果。GNN 可有效處理長距離與非連續(xù)單詞的交互,其與其他神經(jīng)網(wǎng)絡融合的法條推薦模型在“2.3”節(jié)已經(jīng)詳細闡述。
法律案情描述以及法條定義通常包含大量法律專屬名詞,將知識整合到預先訓練的模型中,有助于提高法律概念之間的推理能力。例如,楊超群等[35]以遷移學習的思想訓練法律詞向量,使用FastText[36]預訓練4.2 G 通用中文詞向量作為初始向量,采用FastText 詞嵌入方法在初始向量的基礎上對法律詞向量進行分類;張青等[32]使用BERT預訓練模型獲取案件詞向量,唐光遠等[37]利用BERT 預訓練模型對案情描述和法條知識進行編碼。然而BERT 模型512 的字數(shù)限制會導致長案件文本相關(guān)信息丟失的問題,為此張青等[38]采用XLNET[39]預模型獲取案件豐富的語義信息;楊通超等[40]在KG-Bert 算法[41]和Lawformer 預訓練模型(采用法律領域真實的民事和刑事案件數(shù)據(jù)作為預訓練語料庫)[42]的基礎上提出KG-Lawformer 算法,將案情描述和法條文本分別看作三元組中的頭實體和尾實體描述信息,對其之間連接關(guān)系的進行學習,預測出案情與法條之間的對應關(guān)系。
低頻法條推薦是判決預測的重大挑戰(zhàn),因為法律領域的文本數(shù)據(jù)常常是不平衡的、缺失的,如何在有限的案例中訓練出一種穩(wěn)健且有效的低頻法條推薦方法成為研究者們關(guān)注的重點。例如,Wang 等[33]將每個法條集枚舉到一個成對的標簽集,將法條語義融入到成對標簽注意矩陣中意關(guān)注更為關(guān)鍵的信息,并將精確的標簽集擴展到所有可能標簽上的一個軟注意矩陣中,用于實現(xiàn)標簽概率預測,緩解標簽不平衡問題;張青等[38]通過引入法條的司法解釋來豐富案件向量表征,然后通過CNN 模型提取案件與法條的特征信息,加深案件與法條之間的潛在聯(lián)系,最后通過余弦相似距離法計算法條之間的相似性,解決低頻法條被忽略的問題;Chen 等[43]將遷移學習的思想應用于低頻法條推薦任務中,將數(shù)據(jù)分為低頻數(shù)據(jù)集和高頻數(shù)據(jù)集,在高頻數(shù)據(jù)集上訓練模型,并將分類器權(quán)重共享在低頻數(shù)據(jù)集中,實現(xiàn)了低頻數(shù)據(jù)集法條預測。
在司法實踐中,易混淆法條是影響法條推薦準確性的主要問題之一。程豪等[24]將法條劃分為136 條易區(qū)分法條和11 個易混淆法條集,第一層采用CNN 分類器預測出易混淆法條集或易區(qū)分法條結(jié)果,將輸出結(jié)果為易混淆法條集的案情描述輸入第二層分類器得到法條預測結(jié)果;Xu等[29]將案情描述的特征分為基礎表示和易區(qū)分表示,基礎表示采取CNN 和Bi-RNN 進行編碼;對于易區(qū)分部分建立法條關(guān)系圖,根據(jù)閾值將其劃分為各個子圖,經(jīng)過圖蒸餾層獲得各個子圖的區(qū)分向量;Yue 等[30]構(gòu)建兩個標簽相似圖(法條、罪名),通過圖分解學習得到標簽的特有特征,采用注意力機制得到關(guān)注標簽特性的案情表示,從而捕獲案情描述中的可區(qū)分部分;Hu 等[44]通過定義10 個易區(qū)分的屬性來解決易混淆的罪名,但該方法過于依賴專家從而難以大范圍推廣;Liu 等[45]提出融入罪名關(guān)鍵詞的法律判決預測多任務學習模型,判決結(jié)果包括法條推薦和罪名預測,該方法隨著數(shù)據(jù)量的增加同樣需要投入大量人工標注工作。
法條推薦的數(shù)據(jù)集通常由法律專家采集和標注,因此數(shù)據(jù)集獲取具有一定的難度。常用法條推薦數(shù)據(jù)集見表1。
Table 1 Common law articles recommendation datasets表 1 常用法條推薦數(shù)據(jù)集
現(xiàn)有基于深度學習的典型法條推薦模型研究通?;谏鲜鰯?shù)據(jù)集,其實驗結(jié)果也是后續(xù)研究的基準。為便于實驗比較,本文對這些模型在數(shù)據(jù)集上的性能表現(xiàn)進行統(tǒng)計,結(jié)果見表2。算法性能散點圖如圖7 所示??梢钥闯?,法條推薦的準確率最高達到0.954,精確率區(qū)間為0.539~0.913,召回值區(qū)間為0.371~0.906,F(xiàn)1 區(qū)間為0.452~0.894。表明后續(xù)研究需要進一步提升模型性能,以輔助判決預測任務的深入研究。
Table 2 Performance of the law articles recommendation model on the data sets表2 法律條文推薦模型在數(shù)據(jù)集上的性能表現(xiàn)
Fig.7 Scatter plot of algorithm performance for bar recommendation圖7 法條推薦算法性能散點圖
法條是司法判決的重要依據(jù),精準地推薦適用法條成為判決預測的前期任務。早期判決預測研究側(cè)重于直接進行罪名預測。在中國智慧司法建設的持續(xù)推進下,研究者們逐漸關(guān)注法條推薦的研究,形成了一系列研究成果,然而有關(guān)中文法條推薦的研究綜述較少。為系統(tǒng)總結(jié)中文法條推薦研究成果,快速推進該領域發(fā)展,本文從法條推薦模型構(gòu)建模式、基于深度學習的法條推薦算法和復雜場景下的法條推薦等3 個角度系統(tǒng)梳理了當前主要研究成果;重點以深度學習方法為切入點,總結(jié)分析基于CNN、循RNN、GNN 以及混合模型等的中文法條推薦方法;并在公開數(shù)據(jù)集基礎上總結(jié)比較了這些典型算法的性能。分析發(fā)現(xiàn),深度學習在法條推薦算法中的實踐應用已經(jīng)取得了一定成效,但仍然存在以下問題:①數(shù)據(jù)集構(gòu)造問題。目前法條推薦的數(shù)據(jù)集來源于法研杯比賽數(shù)據(jù)集和研究者個人構(gòu)造的數(shù)據(jù)集,缺少公認的評價標準。此外,目前公開的數(shù)據(jù)集主要集中在刑事案件方面,缺少民事、行政等其他方面的數(shù)據(jù)集,造成模型主要集中在刑事領域二難以遷移到其他領域;②復雜場景的中文法條推薦問題。復雜場景下法條推薦中低頻、易混淆法條推薦研究不夠充分。在實際情況下,低頻法條通常需要大量時間和人力查閱相關(guān)信息,易混淆法條描述通常極為相似,例如搶劫罪和盜竊罪等,而現(xiàn)有模型在識別與分辨低頻類和混淆罪名方面性能并不是很突出,因此在未來研究中迫切需要加強復雜場景下的法條推薦研究;③可解釋性問題。司法領域中每一項判決對司法的公正和當事人都具有重大影響,需要高度嚴謹,而深度學習是一種黑盒模型,訓練過程難以重現(xiàn),可解釋性較差。未來需對深度學習框架下的中文法條推薦可解釋性進行深入研究。