曹發(fā)鑫,孫媛媛,王治政,潘丁豪,林鴻飛
(大連理工大學計算機科學與技術學院,遼寧 大連 116024)
相似案例匹配(SCM)旨在從以往的裁判文書中找出與當前審判案件相似的文書作為判決的重要依據(jù),有效提升了司法部門的辦案效率[1]。在之前的工作中,法律從業(yè)人員需要通過人工檢索的方式尋找相似案件。截至2022 年,最高人民法院在中國裁判文書網(wǎng)上公布了上億篇裁判文書,對類似案件的發(fā)展提供了很大的幫助。利用相似案例匹配實現(xiàn)這些裁判文書的篩選,在節(jié)省成本的同時提高了查找效率。
中國裁判文書網(wǎng)上公布的裁判文書覆蓋刑事、民事、行政等不同案件類型。同時,每類案件中又根據(jù)案由分為上百個類別。值得注意的是不同原因的案件在描述和結構上有所不同。相似案例匹配通常針對的是具有相同案由的案件。我國法律文件通常由以下部分組成:本案當事人的信息,之前的訴訟記錄,案情描述,包含對案情描述分析在內的庭審意見,最終裁決以及相關的法律條文。案情描述部分包括案件的細節(jié)和相應的證據(jù)。一般而言,判斷兩個案例的相似性,往往等同于判斷兩個案例案情事實之間的相似性,這是因為案情事實描述比其他部分包含更多的信息。
作為相似案例匹配的核心技術,文本匹配是自然語言處理的基礎任務之一,可以應用到很多下游任務中,如信息檢索、問答系統(tǒng)、查重系統(tǒng)等。文本匹配包含眾多子任務,包括自然語言推理(NLI)、智能問答等。自然語言推理主要判斷句子在語義上的關系,一般可分為蘊含、矛盾、中立。相似案例匹配和自然語言推理都是關注文本的相似度,但是與自然語言推理相比,相似案例匹配面臨著一些挑戰(zhàn),具體如下:
1)法律文本通常具有篇幅較長的特點,以2019 年“中國法研杯”相似案例匹配數(shù)據(jù)集[2]為例,文本的平均長度達到679 個字符,現(xiàn)有的文本匹配方法很難處理長文本匹配。
2)相似案例匹配是在相同案由案件上的匹配,這些案件文本之間的差異很小,傳統(tǒng)的文本匹配模型很難判斷兩個文本是否相似。主體、金額、利率等差異最終會導致判決的不同。例如,在私人貸款的情況下,利率有3 種情況:若沒有承諾利息,則法官不支持利息索賠;當利率高于24%時,法院不支持利率過高的部分;當利率高于36%時,借款人可以要求返還超額部分。
3)傳統(tǒng)的文本匹配方法通常采用余弦相似度來衡量文本之間的相似性,但經(jīng)過BERT[3]編碼的詞向量因受到各向異性的影響不適合計算文本的余弦相似度。
針對上述問題,本文針對相似案例匹配任務建立融合法律關鍵要素的相似案例匹配模型。Sentence-BERT[4]模型是對預訓練的BERT 模型進行修改,使用孿生網(wǎng)絡結構來獲得更優(yōu)的句向量,進行下游任務的相似度計算。以Sentence-BERT 作為基本結構,案件信息在對文本編碼的同時引入案情關鍵要素,使得模型在進行文本匹配的過程中更多地關注案件要素等細粒度信息,進而提升模型的匹配效果。在訓練過程中,引入有監(jiān)督對比學習框架,進一步提升模型性能。
傳統(tǒng)文本匹配注重對文本基本特征的提?。?],需要依賴人工選擇特征,可解釋性好。但是這些基于詞匯重合度的匹配算法只停留在字詞匹配層面,泛化能力一般。對于文本匹配,更需要關注語義層的信息。在信息檢索中,很多工作針對傳統(tǒng)模型進行改進,例如將LDA 模型應用到檢索任務中[6]。
基于深度學習的文本匹配主要可以分為以下兩個發(fā)展方向[7]:基于表示型的文本匹配模型和基于交互型的文本匹配模型?;诒硎拘偷奈谋酒ヅ淠P椭饕P注構建模型的表示層。HUANG 等[8]提出DSSM 模型,在訓練階段分別用復雜的深度學習網(wǎng)絡構建待匹配的兩個不同的文本向量,通過計算兩個語義向量的余弦相似度來表征語義相似度。SHEN 等[9]提出CDSSM 模型,在單詞序列上加入卷積結構,從文本中分別提取詞和句子級別的語境特征?;诮换バ偷奈谋酒ヅ淠P蜕釛壛艘酝ぷ髟谧詈竽K中進行語義匹配的思路,在輸入層就對文本進行交互,并且將交互信息作為模型輸入進行后續(xù)建模。PANG 等[10]提出MatchPyramid 模型,借鑒了圖像識別的方式進行文本匹配,首先構建了文本之間的相似度矩陣,然后采用卷積神經(jīng)網(wǎng)絡提取交互信息,因此可以學習到文本之間的多維度特征。CHEN 等[11]基于NLI 任務提出一種有效的交互型匹配方法(ESIM),采用BiLSTM 和Tree-LSTM 分別對文本序列和文本解析樹進行編碼,在匹配層采用注意力機制來得到詞向量之間的詳細交互關系,聚合層通過BiLSTM 得到各文本向量之間的編碼,從而進一步增強了文本序列的信息傳遞。
基于預訓練模型的研究方法是近年來NLP 任務主流的研究方法之一。DEVLIN 等[12]在超大規(guī)模數(shù)據(jù)集的基礎上,提出基于自注意力機制的雙向Transformer[13]框架(BERT),在11 個NLP 任務中達到SOTA 效果。REIMERS 等[4]提出Sentence-BERT,對BERT 進行改進,使用孿生網(wǎng)絡結構來獲得語義上有意義的句向量,采用余弦相似度進行比較找到語義相似的句子。LI 等[14]在Sentence-BERT 的基礎上提出BERT-flow,分析BERT 句向量分布的性質,然后利用標準化流無監(jiān)督地將BERT 句向量的分布變換成更規(guī)整的高斯分布。SU 等[15]通過降低語義向量的維度提高BERT 在語義向量相似度計算方面的效果。PEINELT 等[16]將主題模型和BERT 結合實現(xiàn)了語義相似度分析,在特定領域上有優(yōu)異的表現(xiàn)。GAO 等[17]提出SimCSE,在BERT 的基礎上運用對比學習的框架極大提升了無監(jiān)督文本匹配的性能。與傳統(tǒng)方法相比,基于BERT 的文本匹配方法雖然已取得不錯的效果,但在判斷法律文書等結構相似的文本之間的相似度方面仍然具有較大的改進空間。因此,本文在Sentence-BERT 的基礎上,融入案件文本的關鍵要素,提升模型對于法律文書中細微特征的識別能力,從而提升模型匹配效果。
相似案例匹配任務本質在于確定給定案例文本之間的相似性,輸入數(shù)據(jù)格式為,A、B、C是3 篇有關民間借貸案件的裁判文書,A 是已有文書,B 和C 是兩篇候選的文書。此任務的目標為確定B 與C 之間與A 文本更相似的文本。通過預先定義的評價分數(shù)來衡量兩篇候選文書B、C 與A 之間的相似度得分,當B 的得分高于C 的得分時,認為B 相較于C 與A 更相似,標簽記為0 反之標簽為1。
基于Sentence-BERT 在句向量表示上的優(yōu)秀表現(xiàn),建立針對三元組進行改進的司法相似案例匹配模型,模型總體結構如圖1 所示。模型主要由以下4 個部分組成:特征抽取層,編碼層,交互層和輸出層。同時,引入對比學習模塊來進一步提升模型性能。
2.2.1 特征抽取層
在將案例文本進行編碼前,先從案例文本中抽取法律特征屬性,并且將這些屬性和原文本拼接進輸入模型進行學習。這么做的原因為法律文書有固定結構且用詞嚴謹、語義唯一,導致案件文本之間的差異很微小,文書之間的相似性會聚焦于一些細粒度的特征。因此,按照案由(民間借貸)以及參考《合同法》、《擔保法》、《婚姻法》相關司法解釋,總結具體的法律特征屬性。在通常情況下,相似案例會共享相同的法律特征。在借貸案件中,法律特征要素會影響具體判決,如表1所示,所有這些屬性都是由法律術語或數(shù)字組合而成,它們在法律文本中按照一定的范式存在。因此,使用正則表達式來提取這些具體的特征,這些特征可以更好地幫助模型判斷法律文本之間的相似性。
2.2.2 編碼層
選用BERT 編碼器來生成下游任務所需的詞向量。利用預訓練模型在進行編碼時,選擇將案例文本與上節(jié)中抽取到的法律要素進行拼接,同時編碼得到詞向量。
模型編碼部分主要分為三部分:詞嵌入層,段嵌入層,位置嵌入層,其中任務層和編碼層是通用結構,對任何任務都適用。對于具體的長度為l的文本a={a1,a2,…,al},長度為s的特征q={q1,q2,…,qs},因為預訓練模型的輸入文本限制長度不超過512,而文書中重要的信息包括法律案件的事實描述、法院裁判結果等都在文書的后半部分,因此選擇從后半部分截取文書的內容作為文書輸入。選擇將文書與特征進行拼接,在句首加入“[CLS]”標識符,同時使用“[SEP]”將文本與特征分割,并將此作為模型的輸入。需要注意的是,為了充分考慮文本之間的交互,使用3 個共享權重的BERT 模型。
BERT 模型在不同層的Transformer 編碼器中能夠捕獲豐富的語言信息[18],同時研究表明BERT 的相似層之間能夠學習到相似的語言知識。因此,選擇BERT 特定編碼層的輸出進行融合,可以得到更加豐富的文本特征。利用BERT 模型的第1、5、9、12 層作為增強特征,定義BERT 模型的隱藏層狀態(tài)向量H=[Hi,1,Hi,2,…,Hi,12],其中i表示A、B、C 文本,因此經(jīng)過BERT 的輸出如下:
其中:j?[1,5,9,12];?Rm×n×d,m為輸入的batch數(shù)量,n為一個batch 中包含的所有句子的字符總和,d為詞嵌入層的隱藏層大小。
2.2.3 交互層
2.2.4 輸出層
交互層得到的Uab和Uac分別表示A、B 的相似度和A、C 的相似度,將兩者相減可以對比出在各種不同維度上A、B 還是A、C 的相似度更高,最終線性層對這些維度進行加權,得到一個綜合的相似度判定。在模型中,將兩者差值輸入到多層感知分類器(MLP)中進行預測:
其中:pi表示預測標簽為yi的概率值,yi的值為0 或1,0 代表A、B 文本的相似度大于A、C 文本的相似度,1 則反之。整個模型是端到端模型,采用交叉熵損失函數(shù)進行訓練:
2.2.5 對比學習層
除交叉熵損失外,另外添加基于對比學習的損失來計算文本之間的相似度得分。對比學習的核心思想是拉近相似樣本的距離,拉遠不相似樣本的距離。相似樣本的構造可以分為有監(jiān)督和無監(jiān)督兩種,本文采用有監(jiān)督對比學習,通過將監(jiān)督樣本中的相似樣本作為正樣本,不相似樣本作為負樣本,進行對比學習。
其中:τ為超參數(shù),是一個大于0 的常數(shù);Sim 為兩個文本的相似度計算,采用余弦相似度進行計算。采用聯(lián)合學習方法進行模型訓練,最終損失如下:
其中:α為權重,本文設置為0.5。
CAIL2019-SCM[2]是用于相似案例匹配的數(shù)據(jù)集,該數(shù)據(jù)集由8 138 個三元組裁判文書構成,所有的裁判文書來自中國裁判文書網(wǎng),并且與民間借貸案件有關。每個三元組的格式為,其中,A為待比較文書,B、C 為候選文書。在訓練集中,A 和B 的相似度默認大于A 和C 的相似度,驗證集和測試集中標簽是不確定的。裁判文書中包含事實描述部分,文本長度為500~800 個字符。三元組內文本之間的相似度由專業(yè)的法律從業(yè)者根據(jù)以往經(jīng)驗進行標注。表2 顯示了數(shù)據(jù)集的數(shù)量以及樣本分布,可以看出數(shù)據(jù)的標簽分布基本是平衡的。
表2 CAIL2019-SCM 數(shù)據(jù)集設置Table 2 Setting of the CAIL2019-SCM dataset 單位:個
對于測試數(shù)據(jù),通過對B 和C 文本的相似度的計算預測結果標簽,A 和B 文本相似則標簽為0,A和C 文本相似則標簽為1(數(shù)據(jù)集可以保證每個三元組中B 和C 文本必然包含一篇與A 相似的文本和一篇不相似的文本)。通過與真實的標簽比較,計算模型的準確率,即標簽一致的占比:
其中:NC是關系預測正確的樣本數(shù)量;NP是預測的樣本數(shù)量。
對于基線模型,首先選擇原數(shù)據(jù)集論文中提供的3 個基準模型:BERT(選擇用RoBERTa[19]代替),LSTM[20]和CNN[21],在后兩者的實現(xiàn)細節(jié)上,選擇用RoBERTa 作詞嵌入,選擇BiLSTM、CNN 做編碼層,然后通過分類器進行訓練。除了官方提供的3 個基準模型以外,還選擇了以下模型作為基線模型:
1)ESIM。采用BiLSTM 和注意力機制來獲得文本更好的交互信息,并且采用多種交互形式將特征進行融合。
2)Roformer[22]。應用了旋轉式位置編碼的思想,這是一種配合注意力機制達到“使用絕對位置編碼的方式實現(xiàn)絕對位置編碼”的設計,能夠使RoBERTa 等模型可以編碼的序列長度增大,對長文本具有很好的處理效果。
3)ERNIE-DOC[23]。采用回溯式Feed 機制和增強的循環(huán)機制,使模型獲取更長的有效上下文長度,以獲得整個文檔的相關信息。
4)Backward。為2019 年“中國法研杯”相似案例匹配任務第二名的模型。采用Cross-Encoder 的方式對文本進行編碼,即文書A、B 和A、C 分別用同一個BERT 模型進行編碼,然后將編碼結果相減,用分類器進行訓練。
5)AlphaCourt。為2019 年“中國法研杯”相似案例匹配任務第一名的模型。選擇Triplet Loss 損失函數(shù)進行訓練,并且采用模型融合的方法提升訓練結果。
6)LFESM[24]。在ESIM 的基礎上進行改動,用BERT 編碼層代替GloVe[25]+BiLSTM 進行編碼,同時從案例文本中提取一部分法律特征,以one-hot 的方式進行編碼,與經(jīng)過BERT 編碼的詞向量融合進行訓練。該模型是目前CAIL2019-SCM 數(shù)據(jù)集上的SOTA 模型。
實驗在PyTorch 環(huán)境中進行,在Ubuntu 系統(tǒng)上采用GPU(RTX3090)進行模型訓練。優(yōu)化器為AdamW。為了減少過擬合現(xiàn)象的發(fā)生,采用權重衰減策略,權重衰減系數(shù)為0.01。學習率為1×10-5,同時采用學習率衰減策略,模型每處理200 個batch,學習率減少20%。Dropout 設置為BERT 模型的默認參數(shù)0.1??紤]到顯存的問題,batchsize 設置為3。超參數(shù)τ設置為0.08??紤]到文書中重要的信息都位于后半部分,選擇從后截斷文本,規(guī)定輸入序列與抽取特征的和經(jīng)過分詞后的字符總數(shù)必須小于512。在詞嵌入層使用的預訓練模型為包含12 個Transformer 的Chinese-RoBERTa-wwm-ext(base),RoBERTa[19](base)的隱藏層大小為768。
表3 顯示了所提模型和基線模型的準確率比較。由表3 可以看出,所提模型在驗證集和測試集上都取得了當前最好的效果。在原數(shù)據(jù)集論文中提供的3 個基準模型中,表現(xiàn)最好的是CNN 模型,原因在于CNN 模型能夠充分考慮到文本局部的特征,挖掘到更細粒度的信息,從而提升匹配效果。ESIM 模型在驗證集上的效果相對于原數(shù)據(jù)集論文中提供的基線模型有所提升,但是在測試集上表現(xiàn)一般,原因在于雖然該模型充分考慮了文本之間的交互,但是忽略了文書中細粒度特征,而法律文書之間的差異通常體現(xiàn)在一些細微的法律要素上。Roformer 模型通過對編碼位置的更改,能夠將BERT 模型輸入的序列長度增加至1 024,充分提取文本內的信息,相較于BERT 模型的效果有所提升,但忽略了文本之間的交互。ERNIE-DOC 同樣通過循環(huán)機制使模型具有更長的有效上下文長度,以獲得整個文本的相關信息,但是并沒有關注不同文本之間的交互匹配信息。Backward 采用BERT 模型傳統(tǒng)的文本匹配方式計算文本之間的相似度,雖然能夠充分考慮文本之間的交互,結果相較于之前未進行交互的模型提升明顯,但是也會進一步限制文本輸入BERT 的長度,因此會損失掉一些文本信息。AlphaCourt 選擇Rank 模型解決本文中相對相似的問題,損失函數(shù)采用Triplet Loss,同時融入法律特征等輔助模型進行相似性比較,但是該模型不能充分利用法律特征的語義信息,僅利用了詞頻、詞數(shù)等信息。LFESM 相對于ESIM 模型進行了進一步改進,利用BERT 模型進行編碼能夠充分挖掘文本的上下文信息,但是利用one-hot 編碼對法律特征要素進行處理,同樣會損失特征的語義信息。相較于基線模型表現(xiàn)最好的LFESM 模型,所提模型在驗證集和測試集上的結果分別提升了0.46 和1.05 個百分點。
表3 CAIL2019-SCM 數(shù)據(jù)集上的實驗結果Table 3 Experimental results on the CAIL2019-SCM dataset %
與所有基線模型相比,本文提出的基于Sentence-BERT 的相似案例匹配模型充分考慮文書的序列信息,融入法律特征要素,同時采用對比學習的方法對BERT 輸出的詞向量進行進一步優(yōu)化,最終通過分類任務完成整個匹配過程,使模型具備較好的泛化能力,在CAIL2019-SCM 數(shù)據(jù)集上取得了較好的效果。
為了更好地證明模型中各部分的作用,進行了消融實驗研究,實驗結果如表4 所示。由表4 可以看出:將人工提取的法律特征要素去掉(w/o 法律要素)后,只將法律文本送入編碼層,然后通過分類器完成匹配,驗證集和測試集的準確率比融入法律特征要素的模型分別下降了1.74 和2.00 個百分點,說明了法律特征要素融入模型中進行訓練的有效性;直接取RoBERTa 最后一層Transformer 的隱藏層輸出,而不取中間第1、5、9、12 層(w/o 預訓練中間層),驗證集和測試集的準確率分別下降了3.54 和2.22 個百分點,說明了BERT 的中間層能夠學習到一些有用的語義信息,幫助模型更好地區(qū)分文本的細粒度;去掉對比學習的輔助任務(w/o 對比學習)后,驗證集和訓練集的效果分別下降了0.27 和0.90 個百分點,說明了加入對比學習后,對于模型的泛化能力有了顯著提升。
表4 CAIL2019-SCM 數(shù)據(jù)集上的消融實驗結果Table 4 Ablation experiment results on the CAIL2019-SCM dataset %
為了探索對比學習權重α取值對于實驗結果的影響,設置了一組實驗來進行驗證,表5 展示了在聯(lián)合訓練階段取不同權重的實驗結果。由表5 可以看出,在α=0.50 時模型準確率最高,并且在α>0.50 之后準確率有較大下降,說明對比學習框架不能直接加入所提模型,需要找到一個合適的權重值。
表5 不同學習權重下的準確率Table 5 Accuracy under different weights
所提模型的目的之一是希望通過關注案件文本中的關鍵要素來找出不同案件文本之間的細微差異。為了進一步驗證融合案件要素的有效性,隨機從測試集中選取案例進行說明,具體如下:
案例A被告姚某某,福建某有限公司法定代表人,被告因生產(chǎn)經(jīng)營需要,向原告借款700 000 元,原告陸續(xù)將借款以現(xiàn)金和銀行轉款的方式足額交付給被告后,于2016 年2 月1 日,被告法定代表人向原告出具收款收據(jù),并加蓋被告公司財務專用章,內容記載借到原告700 000 元,年息12%計算,未約定借款期限。借款后,被告未支付利息,經(jīng)原告催要未果,引起糾紛。
案例B被告楊某某,秦嶺某機械制造有限公司法定代表人,以生產(chǎn)經(jīng)營缺少資金為由分6 次向原告處借款63 萬元,約定年利率為12%,原告以轉賬或現(xiàn)金的方式將63 萬元借款交付給了被告,被告向原告出具了6 份收款收據(jù),從2016 年6 月份利息結算至2017 年12 月底,被告又拖欠原告13.43 萬元利息及63 萬元借款本金未付。原告催要未果,現(xiàn)訴至本院。
案例C被告孫某某以個人生活需要為由,于2016 年1 月7 日分2 次向原告借款120 000 元,2017 年1 月7 日被告為原告重新出具了收款收據(jù),總計利息為37 800 元,原/被告未約定借款期限。原告向被告提供借款后,經(jīng)原告多次催要,被告未償還原告借款本金及利息。原/被告均認可2017 年1 月7 日之后借款利息調整為月息2%。上述事實有收款記錄、庭審筆錄為證。
在案例內包含A、B、C 3 個文本,其中黑體部分是案例中出現(xiàn)的要素。從案例中可以直觀地看出,雖然3 個案例同時均有收款收據(jù)作為說明,但A 和B具有共同的法律要素,例如被告人均為某公司的法定代表人,借錢用途均為生產(chǎn)經(jīng)營需要,年利率均為12%。C 中被告是以個人生活為由借錢,身份為自然人。同時,借款利率與前2 個案例不同,考慮到A 和B 的相同法律要素較多,測試集中將A 和B 標為相似案例,證明了本文中考慮要素匹配的必要性。
本文針對由民間借貸案件構成的相似案例匹配任務,建立一種基于法律關鍵要素的相似案例匹配模型。相似案例匹配存在篇幅較長、結構相似、語義差距小等挑戰(zhàn),所提模型通過融合特定的法律要素,并且與案情文本相結合,使模型學習到充分的語義信息。同時,參考孿生網(wǎng)絡的設計,建立適配三元組的相似案例匹配模型。最后,通過增加對比學習損失,增強了模型識別不同文本的能力,進而提高模型的泛化性。實驗結果表明,所提模型在CAIL2019-SCM[2]數(shù)據(jù)集上相比于對照模型具有明顯優(yōu)勢。后續(xù)將更加注重法律先驗知識的應用,同時進一步提高模型檢索效率,以便能夠更好地應用于類案推薦任務。