趙琪琿, 李大鵬, 高天寒, 聞英友
(1. 東北大學(xué) 軟件學(xué)院, 遼寧 沈陽 110169; 2. 東北大學(xué) 計算機科學(xué)與工程學(xué)院, 遼寧 沈陽 110169; 3. 東北大學(xué) 計算機科學(xué)與工程學(xué)院/東軟研究院, 遼寧 沈陽 110169)
近年來,人工智能技術(shù)的穩(wěn)健發(fā)展使得自然語言處理、計算機視覺、語音識別等領(lǐng)域都取得了顯著的進步.在法律智能[1]這個新興的研究領(lǐng)域中,自然語言作為法律的載體,有著形式豐富的文本數(shù)據(jù),所以面向自然語言處理的法律智能各項任務(wù)都得到了長足的發(fā)展,如智能案例檢索、法律判決預(yù)測、法律風(fēng)險提示、法律智能問答等.這些任務(wù)可以極大簡化法律工作者的工作,并且可以給與非法律工作人員專業(yè)的法律建議.其中法律判決預(yù)測作為重要的一項子任務(wù),以其自身的實用性以及對于法律從業(yè)人員的參考性,得到了學(xué)術(shù)界的極大關(guān)注.法律判決預(yù)測(legal judgment prediction, LJP)包含三個子任務(wù):罪名預(yù)測、刑期預(yù)測和法條預(yù)測.罪名預(yù)測任務(wù)的目的是通過給定的一段司法文本(一般為案情描述)來自動判定所屬罪名.這一任務(wù)是法律人工智能中重要的一項子任務(wù),它能夠給與法官等法律從業(yè)人員輔助參考意見,極大簡化了他們的工作量,有著重要的實用價值.
過去幾年,學(xué)術(shù)界一直把案件罪名預(yù)測這一任務(wù)等同于文本分類任務(wù)去處理.文本分類是自然語言處理領(lǐng)域的經(jīng)典且重要的任務(wù)[2].文本分類任務(wù)通常可以分為3類.第一類是基于數(shù)學(xué)和定量分析方法[3-4],都是基于少量數(shù)據(jù)和少量標(biāo)簽的數(shù)據(jù)集.第二類是基于人工構(gòu)建特征工程的方式,再通過傳統(tǒng)機器學(xué)習(xí)算法去做預(yù)測. Liu等[5]在K最近鄰算法(K-nearest neighbors,KNN)中使用了詞和段落級別的特征去預(yù)測罪名.Liu等[6]的方法是首先使用支持向量機(SVM)去做第一次分類,然后再利用文本數(shù)據(jù)的詞級別特征和詞共現(xiàn)頻率做重新排序,得到罪名分類結(jié)果.Katz等[7]利用了案例配置信息如:地點、時間等,作為罪名預(yù)測的特征信息.但是這類方法是通過人工提取淺層特征,不僅需要法律專業(yè)人員提供幫助,而且還不足以完全提取法律文書的不同層次的語義特征.第三類是利用深度神經(jīng)網(wǎng)絡(luò)模型來預(yù)測罪名.近期隨著基于深度學(xué)習(xí)的語言模型的發(fā)展,越來越多的法律相關(guān)工作應(yīng)用了神經(jīng)網(wǎng)絡(luò)模型作為法律文本數(shù)據(jù)的特征提取器.Luo等[8]在使用注意力的神經(jīng)網(wǎng)絡(luò)中融入了法條信息.Jiang等[9]提出了一種基于神經(jīng)網(wǎng)絡(luò)與強化學(xué)習(xí)相結(jié)合的方法解決了罪名預(yù)測任務(wù)以及其中的可解釋性問題.Long等[10]開創(chuàng)性地把罪名預(yù)測任務(wù)從普遍的文本分類任務(wù)轉(zhuǎn)化成了文本閱讀理解任務(wù),取得了良好的效果.Zhong等[11]基于有向無環(huán)圖(directed acyclic graph,DAG)定義子任務(wù)之間的拓?fù)湫缘囊蕾囮P(guān)系這個理論,創(chuàng)建了罪名預(yù)測系統(tǒng).Duan等[12]融合了外部知識從而對罪名預(yù)測模型進行了加強.
案件罪名預(yù)測任務(wù)目前有兩個待解決的問題:一是如何應(yīng)對具有長尾效應(yīng)的數(shù)據(jù)集,也就是如何保證模型能夠盡可能從只有少量樣本的數(shù)據(jù)中學(xué)習(xí)到更多的信息;二是罪名混淆問題,其根本原因就是不同罪名所依賴的法條可能在語義上存在很大的相似性,例如在危險駕駛罪和交通肇事罪中,就包含大量重疊的詞匯描述.
為了解決上述問題,本文受文獻[13-14]工作的啟發(fā),提出了一種基于圖注意力網(wǎng)絡(luò)(graph attention network, GAT)的罪名預(yù)測模型,名為CP-GAT(charge prediction based on graph attention network).本文使用CAIL2018[15]數(shù)據(jù)集中的法律文書即裁判文書作為構(gòu)建圖數(shù)據(jù)集的基礎(chǔ).所構(gòu)建的圖結(jié)構(gòu)包含兩種節(jié)點:文書節(jié)點、詞節(jié)點及兩種邊:詞節(jié)點之間的邊、詞節(jié)點與文書節(jié)點之間的邊.本文提出的方法首先將數(shù)據(jù)集中關(guān)于案情描述部分的文本數(shù)據(jù)和案例對應(yīng)的法條文本數(shù)據(jù)做分詞,然后把去重后的詞與每個文書作為圖的節(jié)點.詞節(jié)點間的邊權(quán)值是通過計算詞共現(xiàn)矩陣從而得到的,文書詞節(jié)點間的邊權(quán)值是通過計算TF-IDF(term frequency-inverse document frequency)[16]得到的.通過上述流程得到可以用于輸入到圖注意力網(wǎng)絡(luò)的數(shù)據(jù),最后通過GAT模型提取到圖節(jié)點的特征信息,進而把基于司法文書的罪名預(yù)測問題轉(zhuǎn)化為圖節(jié)點的分類問題.本文提出的方法在CAIL2018這個數(shù)據(jù)集上進行罪名預(yù)測任務(wù)的表現(xiàn)好于對比實驗所用的模型,并且在選取數(shù)據(jù)集中長尾數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)的情況下,依然取得了遠(yuǎn)高于實驗對比模型的預(yù)測效果,進一步證明了本文方法行之有效.
本文提出的罪名預(yù)測方法(CP-GAT)的整體結(jié)構(gòu)如圖1所示,共包含三層結(jié)構(gòu),第一層是圖結(jié)構(gòu)構(gòu)建層,這一層的主要工作是通過數(shù)據(jù)預(yù)處理手段把案例文書(包括案例對應(yīng)的事實描述,法條信息)數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的圖數(shù)據(jù),其中把法條也加入到圖數(shù)據(jù)的構(gòu)建中,這也是融合法條知識的一種手段,可以提高模型本身的性能;第二層是基于圖注意力網(wǎng)絡(luò)的特征提取層,在這一層中使用了圖注意力網(wǎng)絡(luò)對節(jié)點進行特征提取;第三層是罪名預(yù)測層,本文使用了softmax分類器對罪名做出預(yù)測.
圖1 CP-GAT的整體架構(gòu)圖
本文所使用異質(zhì)圖結(jié)構(gòu)的數(shù)據(jù)是基于CAIL2018數(shù)據(jù)集中的案例以及案例中包含的事實描述(fact)與對應(yīng)法條(relevant law article)所構(gòu)建成.異質(zhì)圖包含多種類型的節(jié)點或者關(guān)系,每個節(jié)點屬于一個特定的對象類型,每條關(guān)系屬于一個特定的關(guān)系類型,這樣的圖被稱作異質(zhì)圖,真實世界中的圖大部分都可以被自然地建模為異質(zhì)圖,所以目前基于異質(zhì)圖的研究如火如荼.本文所構(gòu)建的圖數(shù)據(jù)中包含兩種節(jié)點:詞節(jié)點、案例節(jié)點,兩種邊:詞-詞、詞-案例.圖數(shù)據(jù)的可視化樣例如圖2所示,包含兩種節(jié)點,例如:王某是詞節(jié)點,A185是案例節(jié)點,代表第185篇案例文書.
圖2 基于裁判文書構(gòu)建的圖樣例
本文構(gòu)建后的圖數(shù)據(jù)的節(jié)點數(shù)量為案例個數(shù)與文本數(shù)據(jù)(案例中的事實描述與法條)中不重復(fù)詞個數(shù)的總和.圖中的邊計算方式分為兩種,如下所示:
(1)
其中:Sij代表節(jié)點i與節(jié)點j間的邊權(quán)值.詞-案例類型的邊權(quán)值是通過計算TF-IDF(term frequency-inverse document frequency)詞頻-逆文檔頻率值得到的.其中:TF是詞頻,其含義是單詞出現(xiàn)在文檔中的次數(shù);IDF是逆文檔頻率,其含義是衡量詞語在文檔中的普遍重要性.某一特定詞語的逆文檔頻率是由總文檔數(shù)目除以包含該詞語的文檔數(shù)目,再將得到的商取以10為底的對數(shù)得到的.為了得到更好的實驗效果,本文方法使用固定大小的滑動窗口來計算TF-IDF值.第二種類型的邊是詞-詞類型的邊,通常這種類型的邊權(quán)值都是計算詞之間的相似度,本文采用計算詞語與詞語的PMI(point-wise mutual information)點分互信息的值來給詞-詞邊賦權(quán)值:
(2)
其中:NW(i)是在語料集上包含詞語i的滑動窗口個數(shù);NW(i,j) 是包含詞語i和詞語j的滑動窗口個數(shù);NW 是整體滑動窗口的個數(shù).PMI是一種計算詞關(guān)聯(lián)度的方式,其值的大小代表兩個詞之間的關(guān)系是否緊密.PMI的基本思想是統(tǒng)計兩個詞語在文本中同時出現(xiàn)的概率,概率越大,其相關(guān)性就越緊密,關(guān)聯(lián)度越高.
本文方法所構(gòu)建的圖結(jié)構(gòu)數(shù)據(jù),便于在全局的層面上對共現(xiàn)信息進行建模,也可以更好地應(yīng)用圖注意力網(wǎng)絡(luò)對圖中節(jié)點進行特征提取.
本文在圖節(jié)點的特征提取部分,使用了圖注意力網(wǎng)絡(luò)(GAT)對整個圖結(jié)構(gòu)進行建模,從而獲取網(wǎng)絡(luò)中的案例節(jié)點對應(yīng)的特征表達(dá).
卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)無法將非歐氏空間上的數(shù)據(jù)作為網(wǎng)絡(luò)的輸入,因為非歐氏空間上的數(shù)據(jù)是無法保證平移不變性的.圖神經(jīng)網(wǎng)絡(luò)(graph neural networks,GNN)的出現(xiàn)解決了非歐式空間數(shù)據(jù)的處理問題.Kipf等[17]提出一種圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN),該網(wǎng)絡(luò)是直接作用在圖數(shù)據(jù)上的,并且可以通過節(jié)點的鄰居信息來得到自身節(jié)點的特征向量,圖卷積網(wǎng)絡(luò)屬于頻域方法,該網(wǎng)絡(luò)的思想是利用圖的拉普拉斯矩陣的特征值和特征向量來研究圖的性質(zhì).門控圖神經(jīng)網(wǎng)絡(luò)(gated graph neural network,GGNN)[18]主要是解決過深層的圖神經(jīng)網(wǎng)絡(luò)導(dǎo)致過度平滑的問題,使用門控循環(huán)單元(gated recurrent unit, GRU)更新節(jié)點狀態(tài).
本文采用圖注意力網(wǎng)絡(luò)對整個圖進行建模,GAT模型在GCN的基礎(chǔ)上進行了改進,結(jié)合了 Attention 機制,Attention機制可以為不同節(jié)點分配不同權(quán)重,在訓(xùn)練時依賴于成對的相鄰節(jié)點,而不依賴具體的網(wǎng)絡(luò)結(jié)構(gòu).CAT假設(shè)圖中包含N個節(jié)點,則輸入網(wǎng)絡(luò)的節(jié)點向量記作:h={h1,h2,…,hN},hi∈F,圖注意力網(wǎng)絡(luò)的輸出向量記作:F.本文方法所使用的模型在計算節(jié)點間的信息聚合時引入了自注意力機制(self-attention),對應(yīng)的計算公式為
eij=a(Whi,Whj) .
(3)
其中eij表示節(jié)點j對于節(jié)點i的重要性,并且節(jié)點i必須是節(jié)點j的一階鄰居,在計算節(jié)點間的注意力得分時則使用了masked attention來實現(xiàn)上述對于鄰居節(jié)點必須為一階鄰居的假設(shè)要求.計算節(jié)點間注意力分值的過程如圖3所示.
圖3中hi是需要計算注意力分值的節(jié)點特征向量,此處假設(shè)節(jié)點i有4個一階鄰居節(jié)點,即:hj1,hj2,hj3,hj4,為4個一階鄰居節(jié)點對應(yīng)的特征向量.aij1,aij2,aij3,aij4為經(jīng)過注意力機制計算后對應(yīng)的分值.
計算注意力分值的公式如下:
αij=softmaxj(eij) .
(4)
圖3 計算節(jié)點間注意力分值的過程圖
本文中用到的注意力機制是通過單層前饋神經(jīng)網(wǎng)絡(luò)來實現(xiàn)的,其中激活函數(shù)使用LeakyReLU函數(shù),進而計算注意力分值的公式可以擴展為
(5)
其中:βT是前饋神經(jīng)網(wǎng)絡(luò)的可訓(xùn)練參數(shù);W是可訓(xùn)練的參數(shù).GAT中還加入了多頭注意力機制,經(jīng)過K頭注意力機制計算后的特征向量進行拼接后,對應(yīng)的輸出特征向量表達(dá)如下:
(6)
(7)
在輸出層,本文采用softmax分類器,將經(jīng)過GAT模型計算后的向量記作H,并輸入到分類器中,對應(yīng)的公式如下:
O=softmax(H) .
(8)
本文在模型訓(xùn)練階段,采用交叉熵?fù)p失函數(shù)作為本方法的損失函數(shù),公式如下:
(9)
其中:γD為帶標(biāo)簽的文書索引集合;Y是輸出特征的維度,為實驗使用數(shù)據(jù)集中包含的罪名類別的總個數(shù).
為了驗證本文提出方法的有效性,本文使用CAIL2018法律數(shù)據(jù)集中的CAIL-big數(shù)據(jù)集,該數(shù)據(jù)集中的每個案例都包含案例事實描述,對應(yīng)法條,對應(yīng)罪名以及刑期.在數(shù)據(jù)集的前期處理工作中,本文首先過濾出小于10個詞的樣本,然后篩選出單罪名的樣本,最后把處理后的數(shù)據(jù)再分為兩部分,分別是CAIL-N(訓(xùn)練集數(shù)量為1 001 185)和CAIL-S(訓(xùn)練集數(shù)量為80 000),其中CAIL-N數(shù)據(jù)集包含更多的案例、法條以及罪名數(shù)量,相較于CAIL-N,CAIL-S數(shù)據(jù)集規(guī)模較小.表1展示了所用數(shù)據(jù)集的詳細(xì)信息.
表1 實驗數(shù)據(jù)集統(tǒng)計信息
本文使用準(zhǔn)確率、精確率、召回率、宏平均F1值作為方法的實驗評價標(biāo)準(zhǔn).
本文在實驗中使用了以下對比模型:
TFIDF+SVM:該方法使用了TF-IDF為文本構(gòu)建特征信息,然后使用SVM[19]作為分類器.
CNN[20]:該方法使用了多種過濾器的CNN來提取文本特征信息,最后使用softmax作為分類器.
RCNN[21]:方法靈活地結(jié)合RNN和CNN構(gòu)造了新的模型,利用了兩種模型的優(yōu)點,提升了文本分類的性能.
HARNN[22]:該方法使用了層次化注意力機制的RNN作為文本特征提取器,也使用softmax作為分類器.
FLA[8]:該模型在文本特征提取器中利用注意力機制融入了案例對應(yīng)的法條信息,進一步提升了罪名預(yù)測效果.
TOPJUDGE[23]:該方法框架是通過使用有向無環(huán)圖結(jié)構(gòu)來捕捉LPJ子任務(wù)之間的拓?fù)湟蕾囮P(guān)系的拓?fù)涠嗳蝿?wù)框架.
GCN:該方法創(chuàng)新性提出了可用于節(jié)點分類等任務(wù)的圖卷積網(wǎng)絡(luò),取得了良好的效果.
本文使用THULAC[24]作為中文分詞工具,THULAC是目前針對中文分詞效果優(yōu)秀并且運行速度很快的工具包.對于基于CNN的對比模型,設(shè)置了文本的最大長度為512個詞,過濾器個數(shù)設(shè)置為256,針對多窗口CNN模型,分別設(shè)置了2,3,4,5的滑動窗口長度.對于基于RNN的對比模型,設(shè)置了單句最大長度為64,單個文本數(shù)據(jù)包含最大的句子個數(shù)為64.本文使用的詞向量維度設(shè)置為200維,使用skipgram[25]方法訓(xùn)練詞向量.
本文提出的CP-GAT方法所使用的實驗參數(shù),則是選取了實驗中最優(yōu)結(jié)果的參數(shù),在圖注意力網(wǎng)絡(luò)中,首先是采用了3層圖注意力網(wǎng)絡(luò),節(jié)點向量維度設(shè)置為200維,窗口大小設(shè)置為25.在計算注意力分值時,僅計算節(jié)點的一階鄰居,在每一層都采用了6頭注意力機制來產(chǎn)生節(jié)點的輸出.實驗設(shè)置最大輪數(shù)為100輪,并且使用Adam(adaptive moment estimation)[25]作為模型訓(xùn)練的優(yōu)化器,其學(xué)習(xí)率設(shè)置為0.02, Dropout為0.5,L2損失權(quán)重設(shè)置為0.001.
從表2,表3中可得到,本文提出的方法在所有對比指標(biāo)上都好于對比模型.基于卷積神經(jīng)網(wǎng)絡(luò)和基于循環(huán)神經(jīng)網(wǎng)絡(luò)的方法在對比指標(biāo)上都要好于傳統(tǒng)機器學(xué)習(xí)模型SVM.而在文本特征信息的提取效果上基于RNN的方法也要好于基于CNN的方法.而TOPJUDGE本質(zhì)也是基于CNN的框架,只是將多個任務(wù)進行了一定程度的關(guān)聯(lián),從而達(dá)到了很好的效果.基于圖神經(jīng)網(wǎng)絡(luò)的方法在對比指標(biāo)上全面領(lǐng)先于深度學(xué)習(xí)和傳統(tǒng)機器學(xué)習(xí)方法,尤其是在宏觀F1值這個指標(biāo)上表現(xiàn)要優(yōu)秀很多,而宏觀F1值在一定程度上也驗證了對易混淆罪名的處理能力,本文提出的方法在這個指標(biāo)上也達(dá)到了最優(yōu)效果,進一步證明了本文模型處理易混淆罪名的有效性.
表2 基于CAIL-N數(shù)據(jù)集的罪名預(yù)測結(jié)果
本文也進行了有關(guān)模型結(jié)構(gòu)的消融實驗,實驗結(jié)果如表4所示.實驗中控制的模型結(jié)構(gòu)變量包括:圖卷積層的層數(shù),使用的多頭注意力機制的頭數(shù).在本文進行的消融實驗中,選取了1,2,3,4層不同層數(shù)的圖卷積結(jié)構(gòu),4,6,8頭的多頭注意力機制.從表4中可以看到,當(dāng)模型采用的層數(shù)為3,注意力機制頭數(shù)為6時,取得了最優(yōu)效果.
表3 基于CAIL-S數(shù)據(jù)集的罪名預(yù)測結(jié)果
表4 消融實驗——采用不同層數(shù)及注意力頭數(shù)的 CP-GAT預(yù)測結(jié)果(CAIL-N)
而由于本文實驗用到的數(shù)據(jù)集是不平衡的數(shù)據(jù)集,部分罪名樣本數(shù)量很少,為了進一步驗證基于圖神經(jīng)的方法在處理小樣本數(shù)據(jù)方面的優(yōu)勢,將數(shù)據(jù)集中的罪名按照數(shù)量進行了分類統(tǒng)計,分別為數(shù)量小于10(罪名個數(shù)為49),數(shù)量在10到100之間(罪名個數(shù)為51),數(shù)量大于100(罪名個數(shù)為49).實驗的對比模型使用了深度學(xué)習(xí)模型中表現(xiàn)較好的HARNN和基于圖神經(jīng)網(wǎng)絡(luò)的兩個方法,實驗結(jié)果如表5所示.
由表5可以得到,基于圖神經(jīng)網(wǎng)絡(luò)的方法處理小樣本數(shù)據(jù)的能力要強于本文選用的基于RNN的對比模型,而本文提出的方法在F1值這個指標(biāo)上是領(lǐng)先于所有對比模型的,尤其是在樣本數(shù)量小于10的罪名樣本的罪名預(yù)測上.以上實驗表明,本文提出的方法在小樣本罪名預(yù)測任務(wù)上同樣具有很高的有效性.
表5 分類數(shù)據(jù)集的罪名預(yù)測的宏觀F1值
本文提出的罪名預(yù)測方法CP-GAT效果能夠領(lǐng)先于其他對比模型,主要原因在于圖注意力網(wǎng)絡(luò)對于圖結(jié)構(gòu)數(shù)據(jù)的強大建模能力,圖注意力網(wǎng)絡(luò)本身是基于GCN的基礎(chǔ)上引入attention思想去計算每個節(jié)點的鄰居節(jié)點對它的權(quán)重,從而實現(xiàn)從局部信息去獲取到整個網(wǎng)絡(luò)整體信息,同時通過堆疊隱藏的自注意層能夠獲取臨近節(jié)點的有用特征,不僅避免大量矩陣運算,而且可以更加精確獲得節(jié)點的特征信息.并且CP-GAT也融合了法條信息,法條信息中包含了大量模型可以用到的知識,進一步提升了罪名預(yù)測效果.
本文基于圖注意力網(wǎng)絡(luò)提出了一種新的罪名預(yù)測方法(CP-GAT),該方法首先通過文本數(shù)據(jù)構(gòu)建異質(zhì)圖數(shù)據(jù),然后在異質(zhì)圖上使用圖注意力網(wǎng)絡(luò)進行圖節(jié)點特征學(xué)習(xí),得到用于預(yù)測罪名的案例節(jié)點特征向量,最后通過分類層得到案例所屬罪名.通過實驗驗證,CP-GAT在所有對比指標(biāo)上都要好于其他對比方法,并且在處理小樣本數(shù)據(jù)上也具有很高的有效性.
以后的研究工作:1)通過改進圖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)更好地提高小樣本數(shù)據(jù)的預(yù)測效果;2)更好地結(jié)合外部知識以提高罪名預(yù)測任務(wù)的效果,并使罪名預(yù)測任務(wù)具有可解釋性.