戴非凡, 司衛云, 倪進平
(上海理工大學 光電信息與計算機工程學院, 上海 200093)
人工智能技術在司法領域的應用最早出現于上世紀70年代,美國法律界提出“電腦輔助法律研究”(Computer-assisted legal research)的構想,并依托硅谷等在數據挖掘、機器學習等人工智能方面的突出優勢和大膽創新,首次設計并研發了“法律機器人”(Lex Machine)[1]。近年來,隨著人工智能技術在國內的高速發展,中國法律科技市場也逐漸向人工智能與法律的結合上發展[2]。
中國傳統司法界存在文獻繁瑣,法規眾多,案件信息復雜,法官負擔重,判案效率低等問題。其次,中國刑法采用相對確定的法制定刑,法官可在量刑幅度范圍內行使自由裁量權[3],從而難以避免同案裁量的差異性。因此,如何高效、準確、科學地設計一個公平公正的輔助量刑系統至關重要。運用恰當的機器學習算法進而構建專家模型是司法領域亟需解決的問題[4-5]。
然而,由于法律數據具有數量大、復雜化、多元化、速率快和不穩定等特點,導致基于機器學習算法的專家智能審判系統的建立尚處于起步階段。并且在國內,就機器學習與司法大數據的跨學科研究多數仍處于仿真或理論分析階段,缺乏較系統和成熟的技術支持。
因此,本文搭建了專家智能審判系統,初步實現了將多種機器學習算法用于司法判案,利用FCM、PCA、DNN和嶺回歸等多種算法,設計了一套完整的高精度刑期預測模型,以減輕法官工作負擔,同時減少量刑過程中的主客觀偏差和不公正現象。
本文處理的數據來源于貴州法院,整理了從2016年1月至2017年5月所涉及的“故意傷害罪”案件,此類案件共5 000多宗。通過數據分析可知,法律案件的刑期判罰范圍在0~240個月之間,跨度較大,若直接利用數據構造單一的回歸模型會導致較大的刑期偏差。為了減小偏差,設計了如圖1所示的模型框架。專家系統的建立和刑期預測主要包括數據預處理、數據挖掘和刑期預測三個階段。研究可得闡釋分述如下。
(1)數據預處理階段:將采集的數據運用CRF序列標注模型和傳統規則方法相結合的方式進行要素識別與提取;然后,清洗問題數據并對特殊文本進行類型轉化。
(2)數據挖掘階段:首先,利用模糊C均值聚類算法對預處理后的數據進行模糊分析,為分類模型提供科學有效的標簽;然后,利用PCA主成分分析法對已提取的案件要素進行降維處理,減少計算復雜度;最后,利用深度神經網絡對降維后的數據進行訓練,實現案件的分類。
(3)刑期預測階段:利用嶺回歸技術對各類案件進行建模分析,通過建立可靠的專家智能審判系統,進而達到對判罰刑期進行有效預測的目的。

圖1 故意傷害罪判罰刑期預測流程
模糊C均值算法(Fuzzy C-Means Algorithm, FCM)是通過考查樣本間的相互關系,分析隸屬度,對類與類之間有交叉的數據集進行聚類[6]。通過引入隸屬度因子m,將類內加權平均誤差和目標函數推廣到無限族,并給出交替優化(AO)算法,使得聚類結果更加客觀真實地反映事實[7]。
考慮到分類模型的訓練過程必須是一個監督學習的過程,因而,需要為每一個案件貼上模糊標簽。而對于這類模糊數據,運用FCM算法將給樣本提供較科學的類別標簽。對此流程中各步驟可闡述如下。
Step1隨機初始化模糊矩陣U,使每個樣本j對c個類中的每個類i都有一個初始隸屬度uij,并且滿足下式約束:
(1)
Step2定義FCM的目標函數為:
(2)
其中,ci為每類的聚類中心,xj為樣本,m為隸屬度因子。
Step3將帶有等式約束(1)的目標函數采用拉格朗日乘數法進行轉化得到:
(3)
Step4分別對式(3)變量uij和ci求導,令導數為零,進而得到聚類中心ci和隸屬度矩陣uij的迭代公式為:
(4)
(5)

Step6若迭代次數大于最大迭代數,則算法停止。
本文利用深度神經網絡(Deep Neural Network,DNN)實現對貴州法院故意傷害罪案件的分類,進而構建一個高精度的故意傷害罪的案件分類器。總地來說,首先運用詞袋模型(Bag of Words)[8],將法律案件中各要素的文本信息轉化為計算機可理解的數據形式[9];然后使用主成分分析算法(Principal Component Analysis,PCA)[10],在保證準確度的同時,降低特征維度并提高模型構建效率[11];最后實現DNN模型的構造。
典型的深度學習模型(Deep Learning),是機器學習算法中一個重要的分支[12]。神經網絡中最基本的單元為神經元[13],研究給出的模型結構如圖2所示,其輸入與輸出關系可表示為:
(6)
其中,ai表示第i個神經元的輸入;wi表示對應第i個神經元的連接權重;θ表示神經元閾值;f表示激活函數;y表示神經元的輸出。
將如上結構的多個神經元按照一定的層次結構連接起來,就得到了神經網絡,主要是由輸入層、隱藏層、輸出層組成。DNN就可以認為是有很多隱藏層的神經網絡,如圖3所示。神經網絡隱藏層的層數可以依照數據的復雜程度合理增減,以此提高模型的表達能力,但模型的復雜度也會隨著隱藏層層數的增加而增加。

圖2 神經元模型

圖3深度神經網絡結構圖
較常用且易于實現的線性回歸在處理例如本文的較高維數據時常會出現多重共線性問題、求逆運算不穩定、模型解釋性較差、預測準確性較低等問題[14-16]。
分析可知,嶺回歸算法[17]是針對共線性數據分析的有偏估計的一種回歸方法,通過犧牲解的無偏性,以丟失部分信息、降低精度為代價獲得更加準確的預測結果。同時因為引入了懲罰項,有效防止過擬合,提高模型的泛化性能[18]。嶺回歸目標函數為:
(7)
其中,λ為正則化系數。將上式兩端對W求導,得到最優解W*為:
W*=(XTX+λI)-1XTy.
(8)
針對同樣呈現高維特性的故意傷害罪數據,本文依據各案件的犯案要素,對每一類樣本基于該算法建立一種回歸分析模型來預測該類作案人員的刑期。
不同于普通的語料庫數據,貴州法院故意傷害罪案件數據以虛擬編號的形式存儲,其字典示例見表1。為了讓計算機能夠理解這類數據,采用了詞袋模型對數據進行有效編碼,其結果見表2,得到一個5 348×78的特征矩陣。表2中列表示案件要素,1表示該案件中存在該要素,0表示不存在。詞袋模型完成了對原始故意傷害罪案件文本要素到文本向量空間的映射。
表1 故意傷害罪案件要素字典示例
Tab. 1 Example of a dictionary of elements of intentional injury crimes

ID案件要素集12345?{102,101,102001,201,106001,…,202,201001,106,202004,101001}{102,101,201,106001,…,102005,201001,106,202004,101001,102005}{102,101,201,106001003,…,106,101001,104,102001,104004,106001}{102,101,201,106001003,202,…,101001,104,102001,104004,202002}{102,101,201,202,201002,106,…,104,102001,104004,106001,202004}……
本文將Xie-Beni (XB) 作為度量FCM聚類方法優劣的評價指標,其表達式為:
(9)
式(9)表明,當實現目標函數極小化,同時滿足類間距離極大化,即不同類之間的樣本分散較開時,聚類效果較好。

表2 故意傷害罪詞袋模型示例
實驗中,分別運用K-Means和FCM對預處理后的故意傷害罪案件的刑期進行聚類,并將2種算法的聚類結果進行了對比。在K-Means聚類實驗中,設置最大迭代次數為1 000次,類別個數k為5;在FCM聚類實驗中,設置最大迭代次數為100次,類別個數c為5,模糊(隸屬度)加權指數m依據經驗值取為2.0,XB為0.0565,效果如圖4所示,其中橫、縱坐標均表示刑期(月數),紅色×表示FCM各類聚類中心,5種不同的顏色代表不同的類別。其中,表3是K-Means和FCM刑期聚類分布的平均偏差。由表3易見,對于法律數據,FCM聚類比K-Means聚類有更好的聚類效果,能夠為分類器提供更可靠的類別標簽。

圖4 FCM聚類效果圖
表3 故意傷害罪案件聚類分布對比表
Tab. 3 Comparison table of cluster distribution of intentional injury crime cases

方法刑期聚類中心/月群聚案件個數/宗平均偏差距離/月K-Means1041801281723 6291 0821542372460.160.361.171.011.01FCM834631261743 3071 2672632652460.090.220.700.880.72
(1)PCA結果分析。經統計,貴州法院故意傷害罪案件數據共有不重復要素(屬性)78個,研究將3.2節中的詞袋模型輸出作為PCA主成分分析的輸入,提取原始數據的85%主成分,即將78維的特征空間投影到35維的特征空間下,在保證數據特性的同時實現維數的約減,大大減少了計算開銷,使得數據更易使用,同時也能在一定程度上去除數據噪聲。
(2)DNN結果分析。本文提出的DNN分類器模型是基于TensorFlow深度學習框架構建的。具體實現過程可闡釋如下。
首先,在DNN分類器訓練前,將聚類得到的結果作為5 348個案件的真實類別標簽,將這些帶有標簽的數據作為DNN分類器訓練的原始數據,并基于交叉驗證法隨機提取80%的數據量(4 278)作為DNN分類器模型的訓練集,剩余的20%(1 070)作為測試集用于模型評估。
其次,分別對比實驗了3層、4層、5層DNN模型后,最終選擇5層神經網絡模型為本文的DNN分類器,具體網絡結構見表4。其中,使用Relu()函數作為隱藏層的激活函數;使用Softmax()函數作為輸出層的激活函數;運用Momentum算法作為反向傳播的優化器,使其收斂速度更快,震蕩更小。

表4 DNN網絡結構
在實驗階段,為了突出DNN算法的有效性和優越性,本文將其與經典的SVM分類算法進行了比較,結果見表5。分析可知,基于DNN算法的分類模型比基于SVM算法的分類模型具有更高的分類精度,能給案件提供更精準的預判。最后統計分類結果中屬于各類的案件刑期的分布情況見表6,例如,分類結果屬于第一類的案件中,絕大部分案件的真實刑期分布在144~240個月之間。通過明確刑期分布區間,可為后續的建模分析奠定基礎。

表5 SVM與DNN分類算法效果對比圖

表6 各類案件刑期分布
將訓練集依據FCM的結果分為5組不同類的案件。其中,屬于第一類的案件有280宗,屬于第二類的案件有233宗,屬于第三類的案件有237宗,屬于第四類的案件有1 308宗,屬于第五類的案件有3 290宗,并分別對這5組數據構建回歸預測模型。基于式(8)求得的模型參數W*值可得多元線性回歸預測模型:
(10)


(11)
根據每一類的回歸模型,對測試集案例進行刑期預測,λ取為e-10,可以得到每一類案件的刑期預測模型見表7。

表7 各類案件刑期預測模型
將測試集分別輸入到對應類別的回歸模型中得到每個案件的刑期預測值,并與實際值進行比較,得到平均絕對值誤差(MAE),結果如圖5~圖9所示。其中,每幅子圖的橫坐標表示屬于該類的案件個數,縱坐標表示每個案件對應的刑期(月數);圓形點(藍色)表示每個案件的實際刑期,三角形點(紅色)表示每個案件的預測刑期。從圖5~圖9可以看出,整體案件的預測刑期與真實刑期大致接近。

圖5 第一類案件刑期預測結果

圖6 第二類案件刑期預測結果

圖7 第三類案件刑期預測結果

圖8 第四類案件刑期預測結果

圖9 第五類案件刑期預測結果
最后,通過對比了嶺回歸(Ridge)、Lasso回歸、線性回歸(LR)、前向逐步回歸(FSR)這幾種較常用的經典回歸預測算法的MAE,結果如圖10所示,明顯發現嶺回歸算法更適用于本文設計的基于故意傷害罪司法數據的專家智能審判系統預測模型的構建。

圖10 各預測模型預測刑期偏差對比圖
Fig. 10 Comparison of predictive models for predicting sentence deviation
本文結合幾種典型的機器學習算法,如模糊C均值聚類算法、主成分分析技術、深度神經網絡和嶺回歸算法等,針對貴州法院故意傷害罪案例數據,設計并構建專家智能審判系統,進而對判罰刑期做出精準預測,為輔助判案提供理論依據。并利用真實案例加以驗證,得出本文搭建的模型能夠以較小的偏差對判案刑期進行有效預測,為司法工作注入前所未有的創造力。下一步,將針對樣本分布不均勻等問題,在數據處理和算法上進一步改進,構建預測精度更高的專家系統模型。