張 青,王肖霞,孫豫峰,楊風暴
(中北大學 信息與通信工程學院,山西 太原 030051)
法條的自動推送方法研究大多數采用神經語言模型對法律案件進行訓練,獲取案件的語義信息,再進行特征提取獲取更加抽象的文本特征信息,進而實現法條的自動推送。目前應用于法律領域的神經語言模型是在通用領域進行訓練,法條自動推送作為新興起的研究任務,暫時還沒有專門為法律領域訓練的神經語言模型。同時法律領域較通用領域而言,法律案件文本內容更加復雜且法律專業術語偏多,專業術語特征信息能夠幫助模型理解法律案件,因此,尋找合適的神經語言模型與特征提取模型來獲取有效的案件語義信息與特征信息成為本文的主要研究內容。
本文針對公益訴訟案件內容復雜難以理解,專業術語特征信息難以有效提取等問題,提出了基于BBCAL(BERT-BiLSTM-CNN-Attention based on law)模型的法條自動推送方法。該模型通過解決法律案件的兩大問題來提升法條自動推送能力。一是針對法律案件較其它文本而言內容復雜難以理解的問題,通過BERT模型來獲取法律案件詞向量,引入BiLSTM模型來建立長序列信息,挖掘詞向量更深層次的含義。二是針對法律案件專業術語偏多難以有效提取的問題,引入CNN模型,構造不同的卷積核尺寸來捕獲不同粒度專業術語的特征信息,獲取法律文本的專業術語特征信息,再結合注意力機制(Attention),來獲得與當前任務最相關的特征,進而提高法條自動推送效果,最后輸入分類層實現法條的自動推送。
目前大部分法條的自動推送智能化研究[1-3]是采用文本分類[4,5]技術來實現,基于深度學習[6,7]的方法可以自動提取文本的語義信息,能夠節省時間,彌補了由于人為失誤而造成語義信息提取不完善的缺點。Li等[8]構造了卷積神經網絡(convolutional neural networks,CNN)應用于法律文本分類任務中,通過CNN模型獲取文本的局部特征信息來提高文本分類精度。但是CNN模型需要提前設置卷積尺寸的大小,以至于無法建模更長的序列信息,忽略了文本上下文關系。為解決這類問題,黃等[9]將BiLSTM模型引入分類任務當中,采用前向LSTM與后向LSTM對文本進行雙向編碼建模長序列信息,進而捕獲法律文本的上下文關系。但是BiLSTM模型并不適合單獨進行分類任務,因為在訓練過程中模型會丟棄一些在某些情況下可能有用的信息,無法聚焦文本局部特征問題。Li等[10]提出聯合LSTM與CNN模型的優勢,提取文本的局部特征信息以及上下文信息,結果表明其在分類任務上有較好的效果。但是CNN-BiLSTM模型將不同特征在一起進行編碼,有可能忽略了文本重要特征,注重于次級特征。Xiao等[11]提出了在BiLSTM與CNN模型中引入Attention[12],對重要的特征信息賦予更高的權重,進而提高分類的效果。
在以上的方法中,模型的輸入為初始化的文本詞向量,未能考慮文本中上下文的聯系。為了使語義信息的提取能夠達到理想的效果,該模型在訓練過程中會浪費大量時間,而且需要補充廣泛的語料庫進行嵌入學習,只有當語料庫內容足夠充足時才能達到理想的狀態。
Google AI提出一種基于深度學習的BERT[13](bidirectional encoder representations from transformers)語言預訓練模型。BERT模型生成的向量能夠由周圍的單詞進行動態通知,能夠更高效處理一詞多義的問題,而且該向量表示還包含了其它形式的重要信息,這些信息產生更精確的特征表示,捕獲大量的語義信息。Sun等[14]采用BERT模型來獲取文本的語義信息,再進行微調應用于分類任務中。楊[15]融合BERT、CNN與Attention模型進行罪名與法條的預測,通過BERT模型獲取法律文本的語義信息,再通過Attention對重要的語義信息賦予更高的權重,最后利用CNN模型提取法律案件的局部特征信息,在一定程度上提高了法條預測效果,但是該方法也忽略文本的長序列信息。
在公益訴訟案件的法條自動推送任務中,為了能夠更好捕獲法律案件中的語義信息,以及有效提取法律案件中專業術語特征信息,提出了一種基于BBCAL模型的法條自動推送方法。該方法主要由4個部分組成,分別為預處理、BERT預訓練、BiLSTM-CNN-Attention以及輸出部分,整體流程如圖1所示。

圖1 BBCAL模型
公益訴訟案件文本包含了多方面內容,如違法事實、行政部門不作為、損害后果、涉及的法律法規等,因此需要對文本進行預處理,提取模型所需要的內容。篩選其中的違法事實與涉及的相關法條,根據篩選出的法條建立一個法律法規字典,每一個法條對應一個索引,最后將篩選的違法事實作為文本的內容,涉及的法律法規索引作為標簽,標記后的文本見表1,將其作為BERT預訓練模型的輸入。
BERT使用Transformer作為算法的主要框架,它能更徹底捕捉語句中的雙向關系,獲取法律案件中豐富的語義信息。BERT主要包括文本嵌入模塊和特征提取模塊。
2.2.1 文本嵌入模塊
BERT預訓練模型中文本嵌入模塊包含了MASK掩蓋語句(MLM)和預測下一段語句(NSP)兩項任務。MLM任務可以用來訓練獲得語句的雙向特征,即在文本的每個句子中用[MASK]來隨機遮蔽15%的詞,然后讓模型預測被遮蔽的詞。其中,并不是每個句子中都用[MASK]去隨機遮蔽,而是有80%的概率去遮蔽,10%的概率用其它的詞代替,10%的概率保持不變。NSP任務可以

表1 標記后的文本
用來捕捉兩個句子的聯系,目的是預測下一個句子是否與當前句子有關。
公益訴訟案件文本嵌入過程如圖2所示,將標記后的文本輸入到模型中,進行Token嵌入(Token Embeddings)、句子嵌入(Segment Embeddings)與位置嵌入(Position Embeddings),該3種嵌入表示再次進行處理后得出最終的文本嵌入表示,其中[CLS]和[SEP]分別為開始標志與結束標志。記文本嵌入表示為Vi,其計算如式(1)所示
Vi=TiWt+SiWs+PiWp
(1)
式中:Ti,Si,Pi分別為字符編碼、分割編碼、位置編碼,Wt,Ws,Wp為可調參數。
2.2.2 特征提取模塊
特征提取模塊采用Transformer框架為基礎進行構建,利用多個Transformer堆疊對文本向量進行深層次編碼,原理如圖3所示,其中Vi為文本嵌入表示,Qi為經過Transformer特征提取后的輸出。
Transformer中采用編碼器-解碼器架構,由多個編碼(encoder)層與解碼(decoder)層構成。在每一個encoder層首先使用自注意力機制(self-attention)結構進行數據處理,可以使當前節點不僅能關注當前的詞,也能注意到周圍詞的影響,從而獲取具有上下文聯系的語義信息,然后在將處理后的數據輸入前饋神經網絡中進行前向傳播。而每個子層后都引入了殘差連接與歸一化算法來解決深層網絡中出現的梯度消散問題。decoder層由3個子層組成,同樣包含了encoder層中的二個子層,不同的是在二個子層之間引入了Attention層,來幫助節點獲取當前需要關注的重點特征信息。文本的嵌入表示輸入到encoder層,多頭自注意力機制處理完數據后輸入前饋神經網絡中進行并行計算,繼續輸入到下一個encoder層,再重復以上的計算。encoder層的內部原理如圖4所示。

圖4 encoder層內部原理
(1)多頭自注意力機制
多頭自注意力機制其結構由多個自注意力機制連接而成,其中每一個自注意力機制內部結構均相同。其內部原理結構如圖5所示。

圖5 自注意力機制原理
圖5中,該機制通過輸入表示初始化3個向量,即Query(q)、Key(k)和Value(v),其中q表示對字嵌入乘以一個權重矩陣、k用以表示周圍各個字的向量特征信息、v表示目標字的上下文關系信息,再通過學習獲得最適合的向量。記自注意力機制的輸入為 {I1,I2,…,IN}, 首先對其初始化3個向量矩陣,q與k計算單詞之間的相似性,然后再與v進行點乘運算后得出注意力分數,記該機制的最終輸出結果為Zi,計算公式如下所示
qi=linear(Ii)=IiWiq
(2)
ki=linear(Ii)=IiWik
(3)
vi=linear(Ii)=IiWiv
(4)
(5)
其中,Ii為輸入的向量,Wiq,Wik,Wiv為可訓練的參數。
BERT語言模型由于引入了多頭自注意力機制結構,使其無法對向量進行后續的處理。這是因為前饋神經網絡每次只能處理一個輸入向量,無法處理由多個自注意力機制產生的多個輸出,因此需要將多個輸出轉換成一個輸出,即將多個矩陣乘以一個權重矩陣從而轉換成一個輸出。記該輸出為M,計算如式(6)所示
M=Concat(Z1,Z2…,ZN)WP
(6)
式中:WP為可訓練的權重矩陣,Concat表示對內部向量進行拼接。
(2)前饋神經網絡
多頭自注意力機制處理后的向量矩陣需要再執行前向傳播,即需要輸入前饋神經網絡中進行處理,但是需要先進行殘差連接與歸一化操作,以解決神經網絡的退化等問題,如式(7)所示
L=LayerNorm(I⊕M)
(7)
式中:⊕為殘差連接,I,M分別為經過轉換后的輸入與輸出,LayerNorm表示正則化操作。
最后使用前饋神經網絡對該向量矩陣進行處理,前饋神經網絡包含了線性映射與激活函數兩部分,如式(8)所示
Q=linear(ReLU(linear(L)))
(8)
式中:ReLU為激活函數,linear為線性映射。
為了進一步挖掘詞向量更深層次的含義以及提取專業術語特征信息,將經由BERT模型后得到的詞向量表示Q輸入BiLSTM-CNN-Attention模型中。首先通過BiLSTM模型來對BERT詞向量雙向編碼,再通過設置CNN不同卷積核尺寸獲取法律案件的專業術語特征信息,最后引入Attention對不同專業術語特征信息賦予不同的權重,如圖6所示。

圖6 BiLSTM-CNN-Attention

從目前的情況來看,行政事業單位越來越重視財務內部監督,專職會計職能逐漸向管理會計職能轉變,內部控制各項制度逐漸規范。而財務體制的改革涉及財政、人事、職能、內部機構運行等方面,實際情況中,行政事業單位內部控制仍然缺乏健全的相互監督機制。因此,行政事業單位要根據實際的運營情況,對財務監督的相關機制進行完善。在完善的過程中,要對具體的監督職責進行劃分,確保具體的職責落實到各個崗位以及工作人員,并在劃分過程中分離不相容的崗位以及人員,避免出現一人多崗的現象,進而使財務監督的相關部門形成相互影響、相互制約的關系[2]。
(9)

經由BiLSTM模型提取了詞向量更深層次的含義,但是卻忽略了法律案件的專業術語特征信息,因此引入CNN模型,設置不同的卷積核提取法律案件專業術語特征信息。將BiLSTM的輸出輸入CNN模型當中,設置不同的卷積核,提取專業術語特征信息C, 最后采用Attention對提取的不同特征信息賦予不同的權重,得到最終的文本表示向量CAttention, 如以下公式所示
C=f(W·H+b)
(10)
CAttention=Attention(C)
(11)
其中,b為偏置項,f為非線性函數。
最終的輸出為多分類任務,采用softmax函數來計算文本所屬每一個類別的概率,最大的概率為預測法條的類別。計算如式(12)所示
(12)
式中:Zn為第n個值,j為預測法條數量。
這里選擇交叉熵做為損失函數,如式(13)所示
(13)
式中:yc為樣本值,P(Zn) 為softmax輸出概率。
本文實驗的環境配置見表2。

表2 實驗環境配置
BERT-BiLSTM-CNN的參數設置見表3。
本實驗采用精確率precision、召回率recall和F1_score作為實驗結果的評價指標。公式如下所示
(14)
(15)
(16)
其中,c表示被預測為正類的測試樣本中真正為正類的測試樣本;m表示所有被預測為正類的測試樣本(包括正確類和錯誤類);n表示為所有真正的正類測試樣本(包括預測正確的和預測成負類)。

表3 BERT-BiLSTM-CNN參數設置
為了驗證本文方法的有效性,在公益訴訟案件數據集上分別對7種神經網絡模型在法條自動推送的任務上進行了實驗對比,具體實驗結果見表4。

表4 各模型法條自動推送結果
3.4.1 各模型結果對比
比較表4中既未經過BERT預訓練也未添加Attention的CNN、BiLSTM、BiLSTM-CNN這3種模型,可以發現,CNN模型法條自動推送的結果要優于BiLSTM模型,在各個指標上均有提高,在F1_score上提高1.32%,說明了法條自動推送任務中更加依賴于法律案件中專業術語的特征信息。BiLSTM-CNN模型的分類結果在F1_score上分別比CNN與BiLSTM提高了2.07%與3.39%,表明了結合法律案件上下文聯系與專業術語特征信息的分類效果更優。
比較表4中有無經過BERT預訓練與Attention機制的兩組模型,即CNN與BERT-CNN模型、BiLSTM與BERT-BiLSTM模型、BiLSTM-CNN與BERT-BiLSTM-CNN模型。通過比較發現,無論是哪一種模型,對文本進行BERT預訓練后的分類效果都有很大程度的提升,添加了BERT預訓練模型相比于未添加的模型在F1_score上分別提升了7.72%、8.18%以及7.06%,由此可以看出,經過BERT預訓練后的模型能夠有效獲取法率案件語義信息,再經由特征提取能夠很好標識法律文本,從而使得法條自動推送效果更為準確。
比較表4中有無添加Attention機制的兩組模型,可以看出BiLSTM-CNN-Attention相比于BiLSTM-CNN在F1_score指標上提高了0.69%,BBCAL在F1_score上相比于BERT-BiLSTM-CNN提高了3.40%,說明了加入Attention 機制能使模型忽略句子中無關特征,去除噪聲的干擾,且能夠更加高效合理地注重于關鍵專業術語特征信息,并賦予這些關鍵專業術語特征信息更高的權值。
3.4.2 卷積核尺寸與數量對模型的影響
由表5可以看出,卷積核尺寸的大小會影響著提取專業術語特征信息的能力。在卷積核尺寸為[2,3,4]時,模型效果達到最優,這是因為在法律案件當中,粒度為2和4的專業術語分布最多,通過融合可以準確提取其特征信息。隨著卷積核尺寸的不斷增大,模型的效果不斷降低,這是因為在提取特征信息時,過多的無用信息會造成干擾,無法準確有效提取專業術語特征信息,通過分析最終確定卷積核尺寸為[2,3,4]。

表5 卷積核尺寸的影響
從表6中可以看出,選取不同數量的卷積核也會影響著法條的自動推送效果。當卷積核數量為64時,模型的分類效果較低,這是因為卷積核數量較少時特征圖的數量也就較少,CNN模型擬合能力不夠容易欠擬合,造成分類效果下降。而卷積核數量選取過多時,不僅會增加模型訓練的時間,還會造成果過擬合的問題,導致出現差異性較大的案例時法條自動推送效果不理想。當卷積核數量為128與256時,法條自動推送的效果較好,后者的卷積核數量是前者的一倍,但是F1_score只提高了0.32%,結合卷積核越多訓練時間越長且容易造成過擬合,最終確定CNN模型的卷積核數量為128。
3.4.3 丟失率對模型的影響
除此之外,還進一步考慮了丟失率對法條自動推送模型的影響,丟失率可以按照一定比例隨機讓一部分隱層節點失效,在訓練樣本較少的情況之下,可以防止模型過擬合以影響文本分類效果。在BERT-CNN、BERT-BiLSTM-CNN、

表6 卷積核數量的影響
BBCAL這3種模型上進行丟失率的比較。根據以往經驗,分別選取了丟失率為0.4、0.5、0.6、0.7和0.8,來進行實驗結果對比。由圖7所示,在3種模型當中,當丟失率為0.5與0.6時,模型能夠達到理想效果。在本文方法上,當丟失率為0.5時,法條自動推送F1_score為87.53%,達到最優,說明了相比于丟失率為0.6時,丟失率為0.5可以保留更多的特征信息,因此最終確定丟失率為0.5。

圖7 丟失率的影響
3.4.4 模型的收斂曲線與混淆矩陣
為了進一步的提升該模型的有效性與穩定性,分別研究了損失(loss)與精準(accuracy)收斂曲線,如圖8、圖9所示,圖8為loss與epoch的變化曲線,圖9為accuracy與epoch的變化曲線。由圖8可以看出當epoch達到18之后,loss趨于穩定,模型達到收斂。而圖9當中,當epoch達到15之后accuracy就開始收斂,模型趨于穩定。隨著epoch的增大,訓練的次數就越多,需要花費大量的時間去進行訓練,甚至會出過擬合的現象,綜合以上因素,最終確定epoch為15。
使用文本的方法,得到混淆矩陣,見表7。

圖8 損失收斂曲線

圖9 精準收斂曲線
本文面向公益訴訟法律案件,提出了一種融合案件語義信息與法律專業術語特征信息的法條自動推送模型,通過BERT模型獲取法律案件的詞向量表示,解決了一詞多義的問題,引入BiLSTM模型來挖掘BERT模型詞向量更深層次的含義,解決長期依賴問題,再輸入后續模型中提取專業術語的特征信息,最后進行分類任務。研究表明,經過BiLSTM模型挖掘后的向量以及提取法律專業術語特征信息的模型在法條自動推送任務上效果更優,因為BERT將多個Transformer編碼器堆疊在一起進行雙向學習,再通過BiLSTM模型記憶的特點,可以更好獲取復雜法律案件的上下文信息,理解復雜法律案件,而CNN模型可以有效提取不同粒度的專業術語特征信息,再通過Attention關注重要專業術語特征信息,最終提升了法條自動推送效果。

表7 混淆矩陣