譚紅葉,王加偉,李 茹,張 虎,趙紅燕
(山西大學 計算機與信息技術學院,山西 太原 030006)
目前,智能司法預測受到了法律界與學術界的廣泛關注,其目標是提高法律人員的工作效率,促進司法公平與公正,提升司法便民服務水平. 智能司法預測的核心任務包括自動定罪與自動量刑. 其中,自動定罪又稱罪名預測,是根據給定犯罪事實預測行為人所犯罪名.
已有的罪名預測方法主要有兩種:統計分析方法和文本分類方法. 統計分析方法的主要思想是從大量屬于同一類罪名的歷史案例中提取共同模式,然后構造相應規則與統計算法模擬真實決策過程[1,2],但這類方法很難擴展到不同罪名的案例中. 文本分類方法的主要思想是基于給定訓練數據(一般由事實描述及相應罪名組成)自動學習分類模型,如:基于淺層事實文本表示的k-近鄰模型[3]、 基于深度神經網絡的罪名預測模型[4,5]等. 目前,主流的方法主要采用基于深度學習的方法,不僅顯著提高了系統預測性能,而且不需要人工設計復雜的特征,但這類方法沒有充分利用對準確定罪起重要作用的法律條文知識,而且缺乏可解釋性.
現實中,法官定罪的基本原則是以事實為依據、 以法律為準繩. 其中,法律條文(簡稱法條)對每種罪名的定義、 刑罰種類及刑罰幅度進行了規范描述. 當犯罪事實與某一法條的罪名定義一致時,相應罪名成立.
圖1 給出了“受賄罪”的相關法條與相關案例. 可以看出相應罪名定義與犯罪事實具有很強的一致性與關聯性. 如:“受賄罪”的法條定義中“國家工作人員、 職務便利、 收受他人財物”分別與犯罪事實中的“村民委員會主任、 職務便利、 收受賄送”一一對應. 示例中還可看出:法條是對罪名及其特征的概括性、 區分性定義,而犯罪事實是對犯罪行為的具體描述,因此二者之間是“概括-具體”的關系. 因此,引入法條并準確建立罪名定義與犯罪事實的關聯映射,是提升罪名預測的準確率與可解釋性的有效途徑.

圖1 法條與犯罪事實對比示例Fig.1 An example of comparison between the articleand the criminal facts
本文提出一個新方法將法條融合到罪名預測模型中. 該方法主要特點為:① 通過法條與事實之間的注意力機制,計算每個事實句的權重,并保留相關事實句,以獲得更好的犯罪事實表示; ② 基于事實-罪名預測與法條-罪名預測這兩個預測模型構建聯合學習框架,從詞、 句子、 篇章3個層級準確構建了事實與法條的語義表示. 在3個基準數據集上進行了相關實驗與可視化分析,結果表明,與非預訓練語言模型相比,本文所提方法取得顯著的性能提升; 與BERT預訓練語言模型相比,該方法在準確率與可解釋性方面也取得了具有競爭性的結果.
罪名預測的研究已經開展了幾十年. 從20世紀50年代開始,研究者們就嘗試采用統計分析方法預測罪名. 他們首先分析大量歷史案例,找到共同模式與規則,然后構建統計算法來模擬決策過程[1,2,6-8]; 之后,人們又提出基于分類思想利用標準的機器學習算法(如K-最近鄰分類器)進行罪名預測[3,9-11]. 但這些方法大多基于淺層的法律文檔表示,且訓練數據通常較小,因此預測性能較差,不能有效處理復雜的法律案件.
近幾年受神經網絡在很多自然語言處理任務上取得實質進展的啟發[12-15],研究人員嘗試將罪名預測任務形式化為一個深層神經網絡分類任務來解決. 如Hu等人[5]提出基于屬性的注意力機制和多任務學習模型,來提升小樣例易混淆罪名的預測準確率; Zhong等人[16]提出拓撲多任務學習框架,將法條、 罪名與刑期之間的依賴關系融合到統一的司法判決框架中,在所有預測子任務上取得了一定的提升; 與Zhong等人[16]類似,為了有效利用法條、 罪名與刑期多個子任務間的依賴關系,Yang等人[17]設計了一個多視角的前向預測和后向驗證框架,并通過注意機制將事實描述的詞語搭配特征整合到模型中,獲得了所有預測任務的改進; Ye等人[18]從自然語言生成的角度,基于序列到序列模型自動生成法院意見; Zhong等人[19]針對可解釋性不足的問題,提出了一種通過反復提問和回答的強化學習方法,為判斷預測提供可解釋的結果. 此外,也有學者嘗試從基于外部知識指導的角度,引入法條等知識在預測過程中增加外部語義信息[4,20,21]. 如Luo等人[4]利用法條增強罪名預測:首先構建基于支持向量機(SVM)的法條過濾器[22],篩選出top-k相關法條,然后使用法條注意力模塊選擇支持度最強的法條,最后將事實和法條表示拼接起來作為罪名預測的輸入; Cheng等人[20]提出了一種基于知識注意的神經網絡模型,引入有關罪名的法律圖式知識,并利用知識的層次表示作為區分易混淆罪名的特征; Xu等人[21]提出一種新的圖形神經網絡來自動學習易混淆法條之間的細微差別,并設計了一種新的注意機制,充分利用學習到的差別,從事實描述中提取區分性特征.
本文工作受文獻[4]啟發,但與該文獻不同的是:① 文獻[4]基于SVM的法條過濾器是獨立于罪名預測模型訓練的,因此,可能會導致額外的誤差; 本文采用聯合學習框架,不會引入額外誤差. ② 文獻[4]只是簡單地將事實隱向量和法條隱向量直接拼接得到最終表達,缺乏深層次語義交互; 本文通過注意力機制,對事實與法條建立緊密的互動機制,關注事實句與法條之間的關鍵語義交互作用,自動調整事實句與法條之間的關聯度,然后再基于關聯度獲得更好的事實隱表示,因此模型獲得了更好的法條、 事實的語義表示. 模型在149個常見罪名(罪名種類比文獻[4]多了將近3倍)的數據集上取得了更優的性能,表明本文方法更具通用性.
本文提出一個基于事實-法條注意力交互機制的罪名預測方法, 該方法的總體框架結構如圖2 所示.

圖2 模型總體框架示意圖Fig.2 Framework of our model

本文利用注意力序列編碼器對事實進行編碼,如圖3 所示,該編碼器包含Bi-GRU (Bi-directional Gated Recurrent Units)[23]和注意力模塊[14]. Bi-GRU是長短期記憶模型(LSTM)的變體[13],它通過門控機制優化參數大小,但保留了LSTM長距離依賴的有效性. 引入Bi-GRU編碼器來融合事實-法條中詞之間的語義上下文信息. 同時引入注意力機制自動計算和分配詞的權重,從而更精確地捕捉重要顯著的特征.

圖3 注意力序列編碼器Fig.3 Attentive sequential encoder


(1)


(2)

(3)
本文構建注意力交互機制的目標是希望對事實和罪名標簽建立直接關聯,但罪名是類別標簽,通常很短,只包含稀疏或有限的語義信息. 由于法條包含對罪名的詳細定義或解釋,是罪名的語義擴展,因此引入法條對罪名與事實之間的相容性進行間接建模.


(4)
與事實編碼器不同,法條編碼器額外增加了一個法條-罪名分類器來實現法條和事實的聯合表示. 由于法條是對應罪名的語義延伸,可能會帶來一些噪聲,從而影響語義表達的準確性. 為了減少由此產生的語義偏差,受自動編碼器(Autoencoder,AE)的啟發,采用一個預測器,使法條語義與其對應的罪名標簽更加一致.
分類器以每個法條的嵌入ak作為輸入,并執行罪名預測任務. 此外,利用基于法條的損失函數,通過反向傳播對法條向量進行微調,可以使法條的隱表示更快地收斂到一個固定的精確值. 法條-罪名分類器引起的法條-罪名損失與事實-罪名損失通過線性組合,實現聯合優化. 該模塊在圖2中以法條-罪名分類器表示.
通常,事實描述包含多個句子,但不是每一句都對罪名預測有用,或都能映射到法條上. 因此,本文設計了一個法條-事實注意力交互機制,自動為每個事實句分配相應權重,去除不相關句子,獲得更好的事實表示. 受閱讀理解任務原文與問題的相互作用機制[20]的啟發,我們采用相似方法來計算“句子-法條”的關聯度,并將關聯度作為句子重要性的衡量標準. 句子-法條對之間的相關性用式(5)來計算

(5)

該初始關聯度僅僅通過事實和法條的隱層表示直接計算得到,難以根據不同上下文動態調整. 為了基于訓練數據動態學習高階關聯度(軟關聯值),采用一層感知機網絡MLP(Multi-Layer Perceptron)模塊來計算軟關聯值,并將ReLU激活函數引入非線性,以提升模型擬合能力. 形式上,我們聚合交互特征Ii,:,其中Ii,:代表關聯度矩陣I(包含了句子si與法條ak的關聯值)的第i行. 軟關聯值αsi具體按照式(6)~式(8)計算
qi,:=ReLU(WaIi,:+ba),
(6)
ui=MaxPooling(qi,:),
(7)

(8)
式中:qi,:為句子-法條關聯值的隱層表示; MaxPooling為最大池化操作,用于完成注意力權重的特征整合; 軟關聯值αsi可以被視作基于法條約束的第i個事實句子的語義重要程度.


(9)

(10)
各部分的損失計算如式(11)、 式(12)

(11)

(12)
式中:b代表每批事實輸入的批大小(batch-size),c代表法條總數. 將上述兩部分結合起來,得到最終的總損失函數
Ltotal=Lfact+γ·Lart,
(13)
式中:γ是法條預測損失部分的權重,具體使用Adam優化算法最小化總損失Ltotal.
本文采用近期罪名預測工作中經常使用的3個標準數據集,其中的樣例來源于中國裁判文書網公開的電子文書,是Hu等人針對小樣本和易混淆類罪名預測問題所構建[5]. 3個數據集分別為Criminal-S, Criminal-M和Criminal-L,主要區別在于規模不同,但均包含149個罪名. 數據集具體信息見表 1.

表 1 數據集的劃分情況Tab.1 Splitting of the datasets
犯罪事實經常包含數字特征,如:受賄金額、 毒品重量、 犯罪年齡,這些特征不能直接建模. 為提升模型擴展能力,我們構建了離散化步驟,基于這些特征的分布將其轉化成類別型特征. 如毒品重量分為3類:輕、 中等、 重; 年齡分為成年、 未成年兩類等.
參數設置上,使用skip-gram模型預訓練詞向量[24],維度設置為256. 基于法條長度的統計,將法條的輸入序列長度固定為20. GRU隱狀態的size設為128,設定學習率隨著訓練的進行逐漸衰減,初始學習率為0.001,衰減率為0.8. 使用 dropout策略避免過擬合,dropout rate設為0.5. 優化器使用AdamOptimizer[25].
使用準確率Acc.與Macro-F1(F1)來評價實驗中所有方法.
本文與6個強基線系統進行了對比,包括文本分類模型與罪名預測模型,其中有5個是非預訓練語言模型,另一個是Bert預訓練語言模型[26]. 具體為:① 基于TFIDF表示的SVM分類模型[27]; ② 具有多個不同卷積與最大池化的CNN事實編碼器; ③ 具有最大池化層的兩層LSTM編碼器; ④ Luo等人提出的罪名預測與法條抽取聯合建模的Law Att. 模型[4]; ⑤ Hu等人提出的基于屬性的罪名預測模型Attribute Att.[5]; ⑥ 專門為罪名預測精調后的Bert模型.

表 2 與非預訓練語言模型的對比結果Tab.2 Comparison results with non pre-trained language model
表 2 給出了本文模型與5個非預訓練語言模型的對比結果. 可以看出,本文所提方法在3個數據集上的Acc.與F1值均明顯超過其他非預訓練語言模型. 尤其是在Criminal-L數據集上,本文方法的F1值比最好的非預訓練語言模型(Attribute Att.)高6%.
值得指出的是,Hu構造3個數據集的主要目標是驗證模型Attribute Att.在小樣本易混淆案罪名上的有效性. 盡管我們不是面向該類問題,但本文方法無論數據集規模如何,都取得了很好的結果.
從表 2 還可看出,本文方法在Criminal-S, Criminal-M, Criminal-L數據集上的F1值分別比Law Att.模型高了13.7%, 6.2%和10.7%. 正如相關工作部分所指出的,盡管Luo等人利用基于淺層文本表示的SVM模型選擇top-k個相關法條,但該過程可能會引入錯誤并進行錯誤傳播. 本文所提方法沒有引入額外的法條抽取步驟,而是關注每個事實句與法條的關聯交互. 利用這種新的法條-事實交互機制,可以產生相應的關聯度矩陣賦予事實相關部分或不相關部分以相應權重,從而獲得更好的隱層語義表示. 這一過程很好地模擬了真實世界中人類法官利用相關法條核實事實描述,并給出相應罪名的情況.

表 3 與BERT模型的實驗結果對比Tab.3 Comparison results with BERT
表 3 顯示了與BERT預訓練語言模型的詳細比較結果. 可以發現本文模型在Acc.上可以達到與BERT相當的結果. 但是,在Criminal-S 和 Criminal-M數據集上的 F1值與Bert相比具有明顯差距. 可能的原因在于:這些不正確罪名出現次數很少; 事實與法條對相同語義的描述差別很大,具體表現為法條用詞很抽象,事實用詞很具體. 而本文模型不能在小樣本條件下學習到準確的事實-法條語義關聯.
但是,本文模型結構相對簡潔,而且通過利用分層注意機制(如3.6所示)在給定的事實中選擇出更富含信息量的詞和句子,因此具有更好的可解釋性. 此外,本文模型通過采用法條這種重要的領域知識進行決策,這些知識提供了另一種形式的可解釋性.
本文的模型參數γ是法條-罪名預測損失權重懲罰因子. 通過敏感性分析,發現該參數對模型性能幾乎沒有影響,具體見表 4. 這表明本文模型在聯合損失優化過程中具有良好的魯棒性.

表 4 不同懲罰因子γ下獲得的實驗結果Tab.4 Results with different penalty factor(γ) values
本文方法的特點是法條-事實交互機制與基于事實、 法條聯合嵌入表示的預測器的融合. 設計了消融實驗來驗證這兩個模塊的有效型. 具體結果如表 5 所示,其中,w/o Joint表示刪除聯合表示模塊(即,法條-罪名預測器),使得Lart不參與總損失最小化的優化過程. 可以觀察到,刪除法條-罪名預測器后,性能下降,其中F1值下降了2.8%. w/o Article表示刪除了法條-事實交互機制,也就是將模型退化成了初始的Bi-GRU編碼器. 發現模型性能衰退明顯,F1值在Criminal-L數據集上降低了11.6%. 綜上可以看出,兩個模塊在模型中都起到關鍵作用,其中事實-法條注意力交互機制對最終的預測更為重要.

表 5 消融實驗結果Tab.5 Results of ablation
為了表明本文模型的語義表示能力,使用t-SNE算法[28]在二維平面中對事實向量進行可視化. 如圖4 所示,不同數字代表不同罪名,每個點代表一個犯罪事實文本.

圖4 犯罪事實表示的t-SNE 示意圖Fig.4 Figure of t-SNE of criminal fact representation
可以觀察到,同類罪名犯罪事實的語義表示接近,不同罪名的語義表示差異明顯. “引誘、 教唆、 欺騙他人吸毒”等罪名與“走私、 販賣、 運輸、 制造毒品”等罪名的空間位置相鄰,而與“過失致人死亡”罪的空間位置較遠,此結果符合現實中各罪名的真實語義.
圖5 給出一個被告被判挪用學校公款的案例. 其中,淺色表示事實句重要程度,深色表示詞語重要程度. 可以看出,本文模型準確定位出了“利用” “便利” “挪用” “公款”等關鍵詞及其相應句子. 從圖中還可看出,通過法條-事實交互機制獲得的句子權重可以引導和約束詞-注意力權重.

圖5 層次注意力機制的可視化示例Fig.5 Visualization of the hierarchical attentive mechanism
本文模型不僅比現有的大多數方法更精確,而且在給定事實中選擇的相關詞和相關句子具有更好的解釋能力. 如圖5所示,將一個案例可視化,并給出直觀的解釋. 圖中每一行都是一個句子(太長的句子只給出一部分示例). 其中,淺色表示句子的權重,深色表示詞的權重. 由于本文引入了層次結構,可以通過句子權重來調整約束詞的權重,以確保只強調重要句子中的重要詞.
圖5 所示為被告人挪用公款罪. 很明顯,我們的模型可以捕捉到“挪用”、 “公款”及其對應的句子. 此外,含有不相關詞語的句子,則不予考慮. 表明從法條-事實交互機制中獲得的句子權重可以指導和抑制詞的注意權重.
本文提出了一種新方法將法條和事實整合到罪名預測任務中. 該方法首先建立了事實與法條之間的內在交互機制,以衡量事實句與法條之間的關聯度; 然后,基于事實-罪名預測與法條-罪名預測這兩個預測模型構建聯合學習框架,從詞、 句子、 篇章3個層級準確構建了事實與法條的語義表示. 在3個基準數據集上的實驗結果表明,與現有的非預訓練語言模型相比,本文模型取得的效果顯著提升,并取得了與預訓練語言模型BERT相當的結果. 此外,可視化結果也顯示了本文模型具有更好的解釋性和有效性.