李 琳 解書貴 能沛然 陶曉輝
(1.武漢理工大學計算機與人工智能學院 武漢 430070)(2.南昆士蘭大學理學院,圖文巴 4350)
對于結構清晰、表達嚴謹?shù)姆晌臅?,讓機器理解法律文書并進行閱讀理解,有助于提高人類工作效率。法律領域中閱讀理解的目的是通過法律文書訓練機器模型,使其可以根據(jù)給定的案例描述對各種問題進行回答。一個優(yōu)秀的法律領域閱讀理解系統(tǒng)可以輔助法官、律師等專業(yè)人士工作[1],也可以讓老百姓方便了解到各個案件的基本情況,有著廣泛的應用前景[2],如罪名預測[3]、證據(jù)預測、法律條文推薦[4]、智能庭審[5]等。本文主要研究法律領域的證據(jù)預測。
法律文書結構嚴謹,具有邏輯性,且表述完整,這種結構適合被用于專注于文本的自然語言處理。問答系統(tǒng)是自然語言處理的一個任務,其直接面向用戶,針對用戶提出的問題,系統(tǒng)給出相應的答案。而證據(jù)預測能為答案的預測提供決策支持,存在一定研究意義。
法律文書中能夠對答案提供決策支持的證據(jù)一般都不超過3句,而法律文書通常有著超過20句以上句子。證據(jù)預測需要依據(jù)當前的案例描述進行推理和回答,要直接從文書的大量語句中準確的預測出少量的和答案相關的語句具有一定難度,且文書中太多的樣本數(shù)據(jù)會對預測結果產(chǎn)生負面影響,降低證據(jù)預測準確率。
本文提出了一種面向法律文書基于語句選擇的法律證據(jù)預測方法,來過濾法律判決書中眾多和答案完全不相關的語句。在綜合考慮問題、語句以及答案的情況下,為了提高預測準確率,本文使用一個緊密連接的編碼器堆棧作為基礎模型,為獲取不同語句間的交互信息而設計了一個二進制交叉熵。該方法涉及到的基礎模型分為訓練與測試兩部分。
模型的訓練使用上文提到的基于BERT的基礎模型。方法分為語句選擇,答案預測,證據(jù)預測三個模塊,均使用基礎模型,不同之處在于輸入和輸出,并設計了不同的Loss。1)語句選擇模塊,輸入法律判決書中的句子以及問題,過濾完全不相關的語句以降低對證據(jù)預測的的干擾。2)答案預測模塊,輸入法律判決書中的句子以及問題,輸出問題對應的答案。3)證據(jù)預測模塊,輸入過濾后的句子,問題,以及答案,來預測證據(jù)。
模型的測試按照如下三個步驟:1)輸入法律判決書與問題,使用基礎模型,得到語句選擇后的句子;2)輸入法律判決書與問題,得到預測出的答案;3)使用前兩步預測出的句子與答案,并結合問題,三者作為輸入,使用基礎模型,預測出證據(jù)。
本文使用該方法在CJRC 2020數(shù)據(jù)集中進行實驗,結果來源于競賽榜單或本研究進行的實驗,均采用了未集成的單模型結果。實驗結果表明,本文提出模型的證據(jù)預測的Joint F1分數(shù)達到了70.07%,其結果優(yōu)于傳統(tǒng)的文本分類模型,同時有助于證據(jù)對答案預測提供決策支持。
本文的主要貢獻總結如下:
1)提出語句選擇方法,避免在判決書中因無關語句分散預測模型的注意力,降低預測的質量。
2)提出分模塊訓練,聯(lián)合測試的方法。將預測出的答案、選擇后的句子、問題三者結合,從句子關系這一角度進行證據(jù)預測,提高證據(jù)預測準確率。
3)在公開的中國刑事法律文書數(shù)據(jù)集上對比主流的模型,實驗結果表明本文的方法提升了證據(jù)預測任務的準確率。
本文后續(xù)結構如下:首先討論人工智能在法律領域的研究現(xiàn)狀及背景、闡述句子匹配問題以及BERT在匹配中的優(yōu)點。接下來介紹本文的方法以及各個模塊。然后給出實驗數(shù)據(jù)集、評價指標和實驗環(huán)境,綜合討論實驗結果并進行樣例分析。最后對全文工作進行總結展望。
早期法律領域自然語言處理基于機器學習來提高性能[5]。法律判決預測或法律閱讀理解,都是將相應任務當作文本分類任務看待,研究重點在提取語義特征[6]。后來,深度學習技術被用于解決法律領域相關問題,其中Yang等在法律判決預測的工作中運用一種多視角雙反饋網(wǎng)絡進行了研究[7]。如今法律領域的應用也愈發(fā)廣泛,如罪名預測[3]、證據(jù)預測、法律條文推薦[4]、智能庭審[5]等。
隨著各國公開法律文書,研究人員在英語之外的語言中進行了探索。如Ahmed Elnaggar等[8]在德語法律文書的翻譯、摘要、多標簽分類工作中進行了研究。羅旭東等探索了神經(jīng)網(wǎng)絡在法律立法、閱讀理解、推理等領域的應用。Cui等提出中文數(shù)據(jù)集CMRC2018[9]。為了進一步增加中文數(shù)據(jù)集,Cui等提出了CMRC2019數(shù)據(jù)集[10]。
機器閱讀理解在法律體系中起著重要作用,在最高人民法院信息中心和中國中文信息學會的指導下,中國法研杯CAIL 2019比賽得以開展并公開了相關數(shù)據(jù)集。本文研究主要基于中國法研杯2020閱讀理解任務的數(shù)據(jù)集CJRC 2020[11]。
法律領域的證據(jù)預測屬于句子間關系的預測任務。句子存在匹配、矛盾、蘊含等關系。較常見的是匹配關系。匹配研究大多集中于Question &Answer和句子匹配領域,Seq2Seq和QACNN[12]這兩種模型是語義匹配任務的經(jīng)典模型。
證據(jù)預測的句子關系比較特殊,在現(xiàn)有的關系判斷任務中,它沒有涉及到。雖然可歸類到匹配中,但不能簡單地視為匹配,因為證據(jù)和問答之間考慮的是關聯(lián)性,而非語義上的匹配。
本文提出的面向法律文書基于語句選擇的證據(jù)預測方法,考慮到了證據(jù)和問題、答案之間的關聯(lián)關系。通過計算法律文書與問題的關系,得到語句之間關聯(lián)程度,實現(xiàn)證據(jù)預測。
證據(jù)預測即從正文中抽取出支撐答案的語句。2018年HotpotQA數(shù)據(jù)集發(fā)布[13],其提供了證據(jù)用于支撐答案。證據(jù)預測的難度在于閱讀理解的問題本身可能無法有效地提供查找證據(jù)句子的線索。Nishida K等[14]將可解釋的多跳QA(Question&Answer)的證據(jù)預測看作是一個以查詢?yōu)橹行牡恼蝿?,使用RNN對問題的注意力機制來預測證據(jù)。Hai Wang等[15]通過遠程監(jiān)督的方式來生成不完美的標簽,用它們來訓練,進行證據(jù)的預測。Yilin Niu[16]等設計了一種自訓練方法(STM),在迭代過程中生成證據(jù)標簽來監(jiān)督證據(jù)提取器,來輔助進行答案預測。
上述方法直接從文本+問題來獲取證據(jù),而本文認為過多的句子會對后續(xù)的證據(jù)預測以及答案預測產(chǎn)生感染,因此提出了模塊化的模型,基于語句選擇模塊來進行證據(jù)預測。
證據(jù)預測可以使用許多閱讀理解的經(jīng)典模型,如Seo等提出的BIDAF[17],微軟提出的機器閱讀理解模型R-Net[18]等等,這些都是學習詞嵌入為主的語言模型,類似的模型還有很多。自BERT[19]模型提出以來,在包括機器閱讀理解的多個NLP領域的任務中取得了最好的結果。
本文前期的實驗結果表明,CAIL 2020數(shù)據(jù)集中,使用BERT進行句子級的編碼在CAIL2020比賽的閱讀理解任務中取得了較好的結果,因此本文使用BERT作為編碼模型。
本文使用基于BERT的編碼器堆棧作為基礎模型(Base Model),如圖1所示。基礎模型被用于語句選擇、答案預測以及證據(jù)預測三個模塊。三個模塊各自的輸入輸出如下描述:
1)語句選擇模塊的輸入部分A為法律文書與問題,輸出B為過濾后的句子。該模塊的輸入詳見
3.5.1 節(jié)模型訓練部分的語句選擇模塊部分。
2)答案預測模塊的輸入部分A為法律文書與問題,輸出B為答案。該模塊的輸入詳見3.5.1節(jié)模型訓練部分的答案預測模塊部分。
3)證據(jù)預測模塊的輸入部分A為過濾后的語句,問題與預測的答案,輸出為預測出的證據(jù)。該模塊的輸入詳見3.5.1節(jié)模型訓練部分的證據(jù)預測模塊部分。
接下來對基礎模型的幾個主要結構進行逐一介紹。
受到Nai等的工作的啟發(fā)[20],本文使用基于BERT的緊密連接的編碼器堆棧作為基礎模型。其學習模型深層的語義信息和表面的語義信息,大大減少模型剛開始學習到的特征的損失。如圖1下半部分的DencseEncoder Block所示,BERT不同編碼層學習了語言的不同表示形式,法律文書由案件的詳細內(nèi)容構成,嚴謹?shù)慕Y構表明模型各層的信息特征都可能是有用的。故在語句選擇模塊、答案預測模塊及證據(jù)預測模塊,本文都使用此基礎模型,來提升證據(jù)預測準確率。
圖1 基礎模型,用于語句選擇、證據(jù)預測和答案預測這三個模塊
實際上,證據(jù)和問題、答案之間有一定的關聯(lián)性,包括在法律文書中,不同句子之間也有一定的關聯(lián)性,探索不同語句之間的關聯(lián)性對于下游的預測證據(jù)有推動作用。本文為了更全面地考慮這些關聯(lián)性,關注語句之間的交互增加了一個多頭自注意力層[21],公式如下:
其中Q、K、V是來自不同語句[CLS]標簽的線性投影,分別表示注意力查詢(query)、鍵(key)和值(value)。多頭自注意力層關注不同語句的[CLS]標簽也是為了關注語句之間的交互,讓模型去學習它們之間的關聯(lián)性,進而促進證據(jù)預測的工作。
在語句選擇模塊中,本文采用類似閾值的思想,對數(shù)據(jù)集中不同的語句C進行排名,并且為每個語句設置分數(shù)S。將語句i得分S(Ci)根據(jù)排名進行設置,排名越高得分越高,包含答案的語句得分設為正無窮,最低分為0。為了減少計算量,本文采用了類似于計算二進制交叉熵損失的方式,首先定義每對語句i,j的標簽li,j如下:
這樣可以保證與問題和答案相關度更高的語句得分更高,包含答案的語句得分再高于其他語句,并且控制得分在0~1之間。二進制交叉熵的計算方式如下:
其中P(Ci,Cj)是本文模型預測出語句Ci比語句Cj相關度更高的概率。本文選擇前10個語句作為文檔經(jīng)過語句選擇模塊過濾后的文檔,更好地用于證據(jù)的推測。模型的其余部分與Nai等的研究相似[21]。
3.5.1 模型訓練
訓練時,語句選擇模塊、答案預測模塊、證據(jù)預測模塊共用一個基礎模型,基礎模型詳細介紹見3.1節(jié)到3.4節(jié)的內(nèi)容。
三個模塊各自訓練。接下來著重介紹語句選擇模塊的訓練,在這里我們對模塊的輸入與輸出做詳細的介紹。答案預測模塊和證據(jù)預測模塊的訓練與其相類似。
語句選擇模塊:語句選擇模塊的作用是過濾語句,防止無關語句分散注意力,同時可以減少訓練時間,增加性能,最大化地減少傳遞給后續(xù)任務的無關信息。這一模塊對于之后的預測支持語句的工作至關重要。
對于文檔中每個語句,如圖1所示,其中的In?put-A變 為[CLS]+問 題+[SEP]+文 檔 語 句+[SEP]。將其作為輸入BERT的數(shù)據(jù),其中BERT使用基線模型。輸出的[CLS]標簽作為每個問題與語句對的摘要向量。Output-B變?yōu)楹Y選后的語句編號。
語句選擇模塊算法偽代碼如下所示。
答案預測模塊:與語句選擇模塊類似,輸入In?put-A變?yōu)椋跜LS]+問題+[SEP]+文檔語句+[SEP],輸出Output-B變?yōu)轭A測出的答案。盡管使用語句選擇模塊進行證據(jù)預測已經(jīng)能取得不錯的效果,但依舊有提升空間,本文考慮加入另一因素,即預測出的答案,來輔助進行證據(jù)預測。
證據(jù)預測模塊:證據(jù)預測模塊也與語句選擇模塊類似,輸入Input-A變?yōu)椋跜LS]+問題+[SEP]+文檔語句+[SEP]+答案+[SEP],共同用于輸入,其中問題直接來自于數(shù)據(jù)集,文檔來自于語句選擇模塊,回答為使用答案預測模塊預測的回答。輸出Output-B變?yōu)轭A測出的證據(jù)。
在使用語句選擇模塊后,大量無效語句被剔除,本文認為不僅可以通過像CogQA[22]那樣從問題開始對證據(jù)進行推導,還可以加入新的因素,通過答案進行倒推。與答案預測和證據(jù)預測進行聯(lián)合訓練不同的是,證據(jù)預測模塊并不會對答案預測提供幫助,而是利用答案預測輔助推導證據(jù)。這是因為目前答案預測的準確度遠超證據(jù)預測,聯(lián)合訓練會對答案預測任務帶來負面影響。
3.5.2 模型測試
如圖2所示,模型測試過程可看作上述三個模塊的結合。測試數(shù)據(jù)先經(jīng)過語句選擇模塊和答案預測模塊后,得到了篩選后的語句、答案,它們再與問題一起作為證據(jù)預測模塊的輸入進行測試,并預測證據(jù)。
圖2 測試過程中模型流程圖
為了客觀描述證據(jù)預測方法的有效性,本文使用CJRC 2020數(shù)據(jù)集進行一系列實驗對比和分析,其由5054個包含證據(jù)的問答對構成,其中民事案件、刑事案件和行政案件的判決書各自約1650個,且其中所有問題均需要進行多步推理方能得出答案。
數(shù)據(jù)集的一個樣例如圖3所示,其中加粗部分為答案所在,下劃線部分為證據(jù)所在。本文按照5∶1∶1比例劃分訓練集、測試集與驗證集。
圖3 CJRC 2020數(shù)據(jù)集的一組問答及證據(jù)
4.2.1 實驗設置
本文在Linux服務器上進行實驗,該服務器為4路E5處理器,4塊TITANX GPU。由于官方基線模型有所更改,本文使用的預訓練模型是Cui[10]等基于Pytorch發(fā)布的基于全詞遮罩(Whole Word Masking)的中文預訓練模型RoBERTa-wwm-ext,模型整體結構與RoBERTa-base完全相同。
由于條件的限制,本文將批次大?。╞atch size)設置為2,最大序列長度(max seq length)設置為512,通道的滑動窗口的步幅設置為128,最大問題長度設置為64,最大答案長度設置為55,在四塊TITANX GPU上面以1e-6的初始學習率訓練8個小時。
4.2.2 評價指標
為準確的評估模型的效果,本文對于證據(jù)預測要用到的答案預測和證據(jù)預測均采用F1和EM以及二者相結合的Joint F1和Joint EM,評價指標詳細見中國法研杯CAIL 2020司法人工智能挑戰(zhàn)賽網(wǎng)站。需要額外說明的是,官方基線模型基于金山Spider Net進行編寫,目前Spider Net已經(jīng)在Hot-PotQA榜單中登頂。由于Spider Net目前并未發(fā)表論文,本文無法對其進行介紹。
4.3.1 綜合性能分析
本文在CJRC 2020數(shù)據(jù)集中進行實驗,實驗結果如表1所示,表中結果來源于競賽榜單和本研究所進行的實驗,均采用了未集成的單模型結果。本文模型取得了很好的效果,其中基線模型為法研杯官方所提供,基于金山Spider Net進行編寫,需要額外說明的是,Spider Net目前已經(jīng)在HotPotQA榜單中登頂。
表1 基于CJRC 2020數(shù)據(jù)集的實驗結果(加粗為最優(yōu)結果)
本文的模型較官方基線模型而言在Sup_F1指標上提高了6.53%,證明本文在證據(jù)預測部分所做的工作是有效的。其中Ans_F1部分的提高歸功于答案預測模塊的工作,Joint F1為二者共同考慮的結果。實驗證明,與其他的模型相比,本文的模型可以更準確地進行證據(jù)的預測并取得更好的結果。
實驗中,使用圖神經(jīng)網(wǎng)絡進行推理并不會比采用CapsNet或ResNet2d進行分類得到明顯的提升。經(jīng)過分析本文發(fā)現(xiàn),在問句或答案中不含有實體的文段中,圖神經(jīng)網(wǎng)絡的表現(xiàn)顯著低于本文的模型。由于本文的模型額外加入了語句選擇模塊,相比其他方法而言降低了無關語句對模型的干擾。本文的證據(jù)預測模塊利用得到的答案輔助尋找證據(jù),這一點也使本文的模型性能有了較大的提升。
4.3.2 樣例分析
如圖4所示,樣例中問題為原告孫x0的傷情如何,其中原告孫x0在文中多次出現(xiàn),但傷情并未以原文的形式出現(xiàn)在文中。正因為如此,圖神經(jīng)網(wǎng)絡找到了“原告孫x0”這一個實體和“傷情”這個名詞,并且通過推理在文中找到了“原告孫x0”對應的語句。但是關于“傷情”這個名詞僅僅找到第6句“跌落摔傷”,并沒有準確找到和“傷情”對應的第8句“左側股骨近端粉碎性骨折”。
圖4 樣例分析
在文章中沒有與問題對應的實體,造成證據(jù)推測出現(xiàn)了偏差,得出錯誤證據(jù)。本文采用方法為先進行答案預測,再利用答案輔助證據(jù)預測,始終可以為模型提供更合適的文段,得到了更好的效果,證明本章節(jié)提出的證據(jù)預測模塊起到了相應的作用。
本文提出的答案預測模塊正確地預測出了答案,并利用語句選擇模塊篩除了無關語句,保留了與問題最為相關或包含回答的共計10條語句,之后綜合利用問題和回答進行證據(jù)的預測。本文的面向法律文書基于語句選擇的證據(jù)預測方法,相較官方給出的基線模型而言得到了更為準確的結果。
本文以法律領域閱讀理解證據(jù)預測為研究任務,提出了面向法律文書基于語句選擇的證據(jù)預測方法。設計了語句選擇模塊以去除不相關語句,并利用問題和答案共同進行證據(jù)的推斷,取得了良好的效果。
在之后的研究工作中,可繼續(xù)探索其它更優(yōu)模型在語句選擇和證據(jù)預測任務上是否有更好的效果。本文模型使用的是非端到端多模塊設計方式,存在一定的弊端,當?shù)谝浑A段語句選擇其結果的好壞會影響到下一步驟,從而影響整個訓練的結果。后續(xù)考慮面對包含較多實體的文段、多跳閱讀理解任務時,從圖神經(jīng)網(wǎng)絡入手,通過探索句子之間的關聯(lián)性、不同實體之間的關系,來提高各個階段的準確率。