王小鵬,孫媛媛,林鴻飛
(大連理工大學計算機科學與技術學院,遼寧大連 116024)
隨著智慧司法建設的推進,如何幫助辦案人員從海量的犯罪文書中獲取有用的信息成為了一項非常有意義的研究工作,司法領域的自然語言處理技術也因此受到了研究者的廣泛關注和重視,特別是對海量司法文書進行智能分析和處理已成為司法人工智能研究的重要內容。關系抽取作為信息挖掘的基礎性工作,不僅可實現司法信息的獲取,還在司法問答、刑期預判和司法知識圖譜構建等任務中有重要應用。
司法文書,是指司法機關制作的具有司法效力或司法意義的文書[1]。司法關系抽取則是在已知司法文書中具有司法屬性的名詞或短語實體基礎上,識別出實體之間的關系事實,據此構造三元組,如:[張三,攻擊關系,李四],“張三”“李四”是司法實體,他們之間的關系事實是攻擊關系。相較于通用領域的關系抽取研究,司法領域關系抽取面臨以下問題和挑戰:
1)通用領域預訓練語言模型在司法領域的應用存在一定局限性。首先,司法文本是按照嚴格的模板進行撰寫的,相較于通用語料庫(如維基百科語料),在文本結構上存在較大差異;此外,通用語料庫和司法文本語料庫的詞分布并不相同,因此很難確保通用領域預訓練語言模型在司法任務上的性能表現。
2)司法文書中,存在許多同一實體對應多個關系的情況,這將嚴重混淆關系提取。如“被告人張三和被告人李四系鄰居?!泵枋鲋小皬埲焙汀袄钏摹睆乃痉▽哟沃v是共犯關系,在社會層次中他們之間是鄰里關系。當數據集中關系重疊較多時,模型就很難清楚地識別出所有的關系標簽?,F有關系抽取模型使用的MaxPooling[2]和詞級注意[3]等方法雖然可以很好地將低層級語義合并生成高層級關系表示向量,使得模型在單標簽關系識別上表現優異,但對于多重關系抽取,這種高層次的關系向量卻很難準確地表達標簽特征,進而影響性能。
針對以上問題,本文提出了一種基于刑事Electra(Criminal-Efficiently learning an encoder that classifies token replacements accurately,CriElectra)的編-解碼關系抽取模型,解碼器由雙向長短期記憶(Bidirectional Long Short-Term Memory,BiLSTM)網絡[4]和膠囊網絡(Capsule Network,CapsNet)[5]構成,即CELCN(CriElectra-BiLSTM-CapsNet)。首先參考中文Electra[6]的訓練方法,在一百多萬份刑事案件數據集上訓練得到了CriElectra;然后在雙向長短期記憶網絡上加入CriElectra 的詞特征進行中文文本的特征提?。蛔詈罄媚z囊網絡對特征信息進行矢量聚類,實現實體間的關系抽取。本文在自行設計并構建的故意傷害罪關系抽取數據集上進行實驗,模型的F1 值可以達到79.88%,相較于其他基線方法,CELCN 可以取得非常不錯的效果。本文的主要工作如下:
1)基于司法業務需求和罪名特點,提出了一種側重于司法屬性和社會屬性的關系定義方案,并構建了故意傷害罪的關系抽取數據集。
2)提出了基于百萬刑事數據的預訓練語言模型CriElectra,該預訓練語言模型能夠更有效地學習表示司法領域文書中的語義信息。
3)基于膠囊網絡進行高維矢量空間的特征聚類,能夠有效地解決數據集中多標簽關系的識別任務。
關系抽取一般可分為基于機器學習的方法和深度學習的方法?;跈C器學習的方法是以自然語言處理(Natural Language Processing,NLP)技術中的統計學語言模型為基礎,從分類的角度研究關系抽取,即根據各種語言學特征識別實體對于每個標簽的可能性,然后再通過基于統計模型的分類器進行關系的分類[7]。這種方法可按照有無標注好的數據集分為有監督、無監督和弱監督三種方法,其中有監督的方法是指所有數據集都是通過人工標注形成的,該方法具有很高的準確性,但過分依賴標注的數據集,成本較大;無監督方法不需要人工語料作為支撐,能自動識別文本中三元組,因此在處理大規模數據語料時具有其他方法無法比擬的優勢,但缺少人工標注導致其準確率和召回率較低;弱監督的方法是指根據少量已標注好的語料三元組,在未標注的語料中發現新的三元組,進而形成大規模的語料集,但由于噪聲等問題并未完全解決,其性能也受到了限制?;谏疃葘W習關系抽取的方法,主要包括基于卷積神經網絡(Convolutional Neural Network,CNN)[8]的方法、基于循環神經網絡(Recurrent Neural Network,RNN)[9]的方法以及二者相結合的方法[10]。在此基礎上,Lu 等[11]引 入PCNN(Piecewise Convolutional Neural Network)對傳統卷積神經網絡的池化層進行改進,并使用句子級選擇注意力機制減輕錯誤標簽的影響,最終F1 值的結果比基于多示例學習的方法高了5%。Kiyavash 等[12]引入詞級別的注意力機制并結合BiLSTM 對文本進行建模從而實現結果的提升。Luo 等[13]結合雙向GRU(Gate Recurrent Unit)和PCNN 模型實現對實體結構等信息的提取,在NYT(New York Times)數據集上表現優異。
近年來,針對預訓練語言模型的研究發展迅猛,預訓練語言模型是一種動態詞向量表示方法,不同于靜態詞向量,該詞向量基于上下文信息表示單詞的語義知識,能夠很好地解決一詞多義的問題。在預訓練語言模型研究中,Peters等[14]提出的預訓練語言模型ELMo(Embedding from Language Models),利用BiLSTM 不僅解決了長距離信息丟失問題,還可對詞在復雜特征(如句法和語義)和變化的語言語境下進行建模。Devlin 等[15]提出自編碼語言模型BERT(Bidirectional Encoder Representation from Transformers),不同于GPT(Generative Pre-Training)[16]中單向的語義知識學習,它通過Transformer 實現了對文本的雙向特征表示,并在11項自然語言處理任務中取得了最佳成績。Yang 等[17]提出了自回歸預訓練模型XLNet(Transformer-XL Network),在多項自然語言處理任務中性能獲得了顯著的提升。在具體的任務應用中,李妮等[18]、王子牛等[19]、尹學振等[20]、王月等[21]采用基于BERT 的模型分別對通用領域、軍事領域、警情領域命名實體的識別進行了研究,實驗結果均有不同程度的提高。但隨著預訓練語言模型的進一步發展,研究者發現由于文本結構、詞分布的差異,開放領域的預訓練模型在特定領域表現一般,于是Lee 等[22]提出了生物醫學領域的BioBERT(Biomedical BERT),實驗結果表明,BioBERT 的F1值比BERT 高了2.8%;此外,2019 年清華大學公開了基于百萬刑事數據集和百萬民事數據集的刑事BERT 和民事BERT,從其公布的結果看,這兩種模型相較于通用BERT 可以在司法領域任務上實現快速的收斂。因此,特定領域語言模型的研究逐漸成為大家研究和探討的熱點。
為了改善CNN 和RNN 在特征學習過程中信息丟失問題,Hinton 等[23]首次提出了可自動學習部分與整體之間關系的膠囊網絡。Sabour 等[5]基于膠囊網絡進一步提出一種可識別高度重疊數字的動態路由算法,該膠囊網絡算法在低層特征到高層特征的聚類過程中,不僅關注特征存在的可能性,還關注特征的空間分布信息,使模型獲取的信息更加全面,因此在圖像識別任務上取得了非常不錯的效果。Hinton等[24]提出了一種基于EM(Expectation Maximization)算法的膠囊網絡,該方法將一維向量膠囊改進為二維向量膠囊,使得膠囊可以表示更多的特征信息。Zhang 等[25]將膠囊網絡引入關系抽取任務中,主要進行了兩部分的工作:首先在動態路由算法引進注意力值;其次,在邊界損失函數中設置了可學習閾值參數,從而優化了整個算法模型,在多標簽關系抽取數據集NYT-10 上,F1 值可以得到2%的提升。隨后,Zhang 等[26]將詞注意力機制與動態路由結合,提出了Att-CapNet(Attentive Capsule Network)模型,進一步改進了膠囊網絡,最近膠囊網絡也被逐漸應用于文本分類[27]和疾病分類[28]等NLP 任務,且都取得了很好的性能表現和提升。
CELCN 模型結構如圖1 所示,包含三部分:基于CriElectra 的預訓練層、基于BiLSTM 的特征提取層和基于CapsNet 的特征聚類層。該模型首先通過CriElectra 得到單個字符的動態語義向量表示;然后把字符向量輸入到BiLSTM 模型,對其序列和層級建模以提取語義和結構特征;接著通過CapsNet 對特征矩陣進行矢量空間的特征聚類,形成高層膠囊,再根據高層膠囊的模長預測關系標簽的可能性。
圖1 CELCN模型結構Fig.1 Structure of CELCN model
2.1.1 訓練CriElectra
BERT 在預訓練語言模型領域取得了非常好的成就,但BERT 采用的MLM(Mask Language Model)預訓練方式并不高效,它只有15%的Token 對參數的更新有用,其他的85%不參與梯度更新;除此之外,預訓練階段與特征提取階段存在信息不匹配,因為下游任務的特征提取階段,并不會出現“[Mask]”這個詞,而在上游預訓練過程中卻使用“[Mask]”替換Token。于是Clark 等[6]基于對抗網絡設計了預訓練模型Electra,該模型提出了RTD(Replace Token Detection)預訓練任務,與MLM 方式不同,RTD 的預訓練目標是學習區分輸入的詞是否被替換,盡管引入了“[Mask]”,但是在梯度傳播的過程中,模型還需關注有沒有發生過替換,因此降低了“[Mask]”的影響,在很大程度上緩解了MLM 引起的信息不匹配的負面影響。此外,由于RTD 在訓練過程中全部Token會參與參數更新,因此Electra 訓練速度更快,其實驗結果還表明,在句對分類、閱讀理解等任務上的Electra 性能要優于BERT,在自然語言推斷、句對分類任務上性能表現相當。
基于Electra 訓練更快、性能與BERT 相當等特點,本文基于中文Electra 提出了CriElectra,訓練數據來源于中國裁判文書網公開的文書數據,首先通過下載獲取百萬份刑事文書數據,然后通過篩選形成100 多萬份刑事案件數據集,其中所涉罪名包括盜竊、涉毒、交通駕駛罪等10 類469 個刑事罪名,地域包含23 個省、5 個自治區、4 個直轄市。
CriElectra 訓練示例如圖2 所示。
圖2 CriElectra訓練示例Fig.2 CriElectra training example
給定輸入序列E={e1,e2,…,en},由生成器G 進行MLM任務預測屏蔽詞,即隨機屏蔽輸入序列中的詞生成帶有“[MASK]”的序列,然后通過transformer 的結構編碼器得到一組包含上下文信息的向量hG(E)=[hg1,hg2,…,hgn],再經歸一化層預測屏蔽位置gt的詞,過程如下所示:
生成器訓練過程中的損失函數如下:
判別器的目標是判斷輸入序列中的詞是否發生替換,即將生成器得到序列D={d1,d2,…,dn}通過Transfomer 結構的編碼器得到hD(E)=[hd1,hd2,…,hdn],再經sigmoid 層輸出,過程如下所示:
其中dt∈dn,更具體地說,通過用生成器樣本替換屏蔽的標記來創建一個損壞的示例Ecorrupt,并訓練鑒別器來預測Ecorrupt中的哪些標記與原始輸入E相匹配。判別器訓練過程中的損失函數如下:
式(4)中:θG與θD分別為生成器和判別器的參數;I(a=b)為判別函數,當滿足條件a=b時,取1,不滿足時為0。CriElectra 訓練通過最小化生成器和判別器的交叉熵損失函數進行,具體可以表示為:
由于生成器的體積是判別器的1/4,為避免模型間損失失衡,因此使用λ=0.5 平衡生成器和判別器的損失。該模型Pytorch 和Tensorflow版本在之后將會開源(https://github.com/DUTIR-LegalIntelligence),供學者共同研究。
2.1.2 CriElectra應用
CriElectra 預訓練語言模型旨在讓下游任務模型能夠使用更好的司法文本的詞表示,文本中句子可以表示成字符的集合E={e1,e2,…,en},en表示句子中第n(n∈N)個字符。整個CriElectra 進行向量矩陣轉化的過程可以表示為:
其中:E為輸入到模型的句子向量表示;X∈為模型輸出的CriElectra 向量矩陣,X可以具體表示為X={x1,x2,…,xn};θElectra為Electra 模型相關參數。
特征編碼層所使用的模型為雙向的長短期記憶模型BiLSTM,它是RNN 的一種變體,包含了一個門控記憶細胞來捕獲數據中的長期依賴關系,并能夠避免由標準RNN 引起的梯度消失和爆炸問題。雙向長短期記憶循環模型由兩個不同方向的長短期記憶(Long Short-Term Memory,LSTM)網絡組成,兩個LSTM 分別從前向和后向學習單詞的上下文信息,再將二者拼接起來,作為當前時刻的輸出。隱藏層狀態可以用式(9)~(11)描述:
本文中膠囊網絡結構如圖3 所示,將BiLSTM 提取的特征h分割到低層膠囊u∈中,為保證膠囊的模長和為1,經非線性壓縮函數g得到每個低階膠囊utk,具體過程如下所示:
圖3 膠囊網絡模型結構Fig.3 Structure of capsule network model
式(12)、(13)中:[x;y]表示x和y垂直連接,‖‖表示計算向量的模長。通過動態路由算法實現低層膠囊ui與高層膠囊Rj之間的信息傳遞,偽代碼如算法1 所示。其中,z為路由的迭代次數。
訓練過程中,通過最小化高層膠囊的邊際損失實現訓練。第j個高層膠囊的損失函數Lj為:
式(14)、(15)、(16)中:若句子的關系為Rj高層膠囊對應的標簽,則Yj值取1,否則取0;m+=0.9 為上邊界,m-=0.1 為下邊界;λ=0.5,模型的全部損失是所有高層分類膠囊損失之和。
算法1 動態路由算法。
司法文本不同于其他領域文本,其每個罪名所涉及的概念與構成、罪名認定以及立案量刑的標準均不一致,所涉及的司法文書實體分布、業務也各有側重?;谝陨咸匦?,目前采用統一模型抽取所有司法文書當中的關系較為困難,因此本文選取故意傷害罪司法文書作為關系抽取的研究對象。
由于故意傷害罪關注的核心要素是人和物,本文在參考通用領域人物關系定義的基礎上,根據《刑法》中對社會屬性和司法屬性的關系需求,從“人”與“人”、“人”與“物”兩種粗粒度出發定義了9 種分類關系,具體如下。
親屬關系 指兩個自然人之間存在直系親屬或旁系親屬關系。
同事關系 指兩個自然人在同一個公司工作或同一時間從事同一份工作。
鄰里關系 指兩個自然人生活在同一個社區、同一個單元或同一個村。
感情關系 指兩個自然人之間未存在法律認可的情侶關系,如戀愛、情人關系。
施動關系 指兩個自然人是被告人和被害人的關系。
共犯關系 指兩個自然人同為被告人。
使用關系 在一起案件中,以某作案工具為中心,某自然人使用了該作案工具做出了攻擊行為,則該自然人與該作案工具之間是使用關系。
攻擊關系 在一起案件中,以某作案工具為中心,該作案工具攻擊了某個自然人,則該自然人與該作案工具之間是攻擊關系。
擁有關系 在一起案件中,存在的違禁作案工具的所屬關系,違禁作案工具指槍、爆炸物品、劇毒物品等物品或工具。
除此之外,還定義了一種NA 關系,表明“人”與“人”、“人”與“物”之間不存在關系或者存在的關系不屬于已定義的9 種關系。
本文標注的故意傷害罪的文書內容來自中國裁判文書網的公開文書數據。利用規則對犯罪事實描述部分進行抽取,再由志愿者進行手工標注,具體的數據分布如圖4 所示。除此之外,由于司法文本的特殊性,其中關系重疊的語料占比為7.66%。同時,為了更好地描述案件中實體間的邏輯指向關系,構建過程中對關系的方向性也進行標注,如三元組,它們的實體對都為E1 和E2,但由于實體在文中出現前后順序不一樣,因此兩實體之間的關系指向會發生變化,本文稱R1 和R2 互為反向關系。具體的數據集會再經整理和擴充后進行開源(https://github.com/DUTIR-LegalIntelligence),供學者共同研究。
圖4 關系分布Fig.4 Relationship distribution
對于CriElectra 預訓練語言模型,分別采用以下幾種模型進行實驗對比:
1)ELCN(Electra-BiLSTM-CapsNet)。預訓練層使用中文Electra預訓練模型(https://github.com/ymcui/Chinese-ELECTRA),模型結構為Electra-BiLSTM-CapsNet。
2)XBLCN(XBert-BiLSTM-CapsNet)。預訓練層使用清華大學公開的刑事BERT 預訓練模型(https://github.com/thunlp/OpenCLaP),模型結構為XBert-BiLSTM-CapsNet。
3)MBLCN(MBert-BiLSTM-CapsNet)。預訓練層使用清華大學公開的民事BERT 預訓練模型(https://github.com/thunlp/OpenCLaP),模型結構為MBert-BiLSTM-CapsNet。
為了評估BiLSTM 的特征提取的能力,分別采用以下幾種模型進行實驗對比:
1)CERCN(CriElectra-RNN-CapsNet)。特征提取層使用RNN,模型結構為CriElectra-RNN-CapsNet。
2)CECCN(CriElectra-CNN-CapsNet)。特征提取層使用CNN,模型結構為CriElectra-CNN-CapsNet。
3)CECN(CriElectra-CapsNet)。未使用特征提取層,模型結構為CriElectra-CapsNet。
對于膠囊網絡,分別采用以下幾種模型進行實驗對比:
1)CELMP(CriElectra-BiLSTM-MaxPooling)。特征提取層采用MaxPooling特征聚類層[2],模型結構為CriElectra-BiLSTM-MaxPooling。
2)CELAP(CriElectra-BiLSTM-AvgPooling)。特征提取層采用AvgPooling 特征聚類層,模型結構為CriElectra-BiLSTMAvgPooling。
實驗中,關系抽取模型的性能由從非結構化文本中關系標簽的最終提取結果的精確率(Precision,precision)、召回率(Recall,recall)以及F1 值(F1-score,F1)來進行評估。評價指標的計算式如下:
式(17)、(18)和(19)中:correct_num表示正確預測的標簽個數,predict_num表示預測的標簽總數,true_num表示實際正確的標簽總數。
CELCN 與ELCN 訓練的F1 曲線如圖5 所示。由圖5 可以看出,訓練前期基于CriElectra 的模型相較于基于中文Electera 的模型,收斂更快;當模型趨于穩定時,CELCN 模型的F1 值更高,性能更優。因此可表明,相較于中文Electra,在故意傷害罪關系抽取數據集上,CriElectra 預訓練模型能夠更好地提供司法文本中詞的向量表示,使得關系抽取的結果更優。
圖5 CELCN與ELCN的F1值曲線Fig.5 F1-score curves of CELCN and ELCN
為了進一步地研究CriElectra 與別的司法領域預訓練語言模型之間的性能差異,分別基于清華大學公開的刑事BERT 和民事BERT 展開實驗,CELCN 與XBLCN、MBLCN 訓練過程中的F1 值曲線如圖6 所示。由圖6 可以看出,三條曲線當中,民事BERT 不管是在收斂速度還是最終結果上表現都很一般;而CriElectra 與刑事BERT 相比性能表現相當。但由于CriElectra 在訓練構建過程中,所花費時間成本更低,因此,基于Electra 構建特定領域預訓練模型是一個很好的研究方向。
圖6 CELCN與MBLCN、XBLCN的F1值曲線Fig.6 F1-score curves of CELCN,MBLCN and XBLCN
以CriElectra 預訓練模型、中文Electra、刑事BERT 以及民事BERT 為預訓練層實驗的詳細精確率、召回率和F1 值如表1 所示??梢钥闯鍪褂肅riElectra(CELCN)相較于使用中文Electera(ELCN),精確率可以提升1.54 個百分點,召回率可以提升1.17 個百分點,F1 的提升可以達到1.93 個百分點,效果顯著。相較于使用民事BERT(MBLCN),CELCN 的精確率、召回率更高,F1 值可得到3.3 個百分點的提升。跟刑事BERT(XBLCN)相比,CELCN 性能表現相當。這也證明了CriElectra 能夠更好地學習到法律文本的詞向量表示。
為研究BiLSEM 的文本特征提取表現,本文分別基于RNN、CNN 做了對比實驗,同時為了解BiLSTM 是否對模型的性能有所幫助,還進行了CECN 模型實驗,實驗的詳細結果如表1 所示。從表1 中可以看出,BiLSTM 相較于RNN、CNN能夠取得更好的F1 值,這是因為本文所用數據集語料句子長度較長,而RNN 和CNN 的長距離學習能力較弱。對于CECN 模型,BiLSTM 能夠給模型帶來0.41 個百分點的F1 值提升,盡管提升有限,但在一定程度上表明基于BiLSTM 的特征提取層能夠使模型更好地學習到文本的特征表示。
表1 不同模型的性能對比 單位:%Tab.1 Performance comparison of different models unit:%
為研究膠囊網絡的性能表現,本文分別進行了基于Maxpooling 的特征聚類層和基于Avgpooling 的特征聚類層的實驗,其中CELCN、CELMP 和CELAP 在實驗過程中的F1 曲線如圖7 所示。從圖7 可以看出,盡管膠囊網絡的收斂速度較慢,但實驗的最終結果表明CELCN 的性能要明顯優于CELMP 和CELAP。
圖7 CELMP和CELAP的F1值曲線Fig.7 F1-score curves of CELMP and CELAP
實驗CELCN 與CELMP、CELAP 更詳細的精確率、召回率和F1 值的實驗對比結果如表1,其中CELCN 的精確率、召回率和F1 值分別為77.26%、82.68% 和79.88%,相較于CELMP 和CELAP,F1 值分別提升了3.53 個百分點和3.73 個百分點,表明了膠囊網絡在特征聚類方面的優勢。
為了進一步地研究膠囊網絡帶來的性能提升,本文從數據集中抽取一部分多標簽關系數據進行測試,實驗的測試結果如表2 所示,其中,CELCN 的準確率、召回率和F1 值分別為43.88%、41.32%和42.56%,比CELAP 的F1 值高0.26 個百分點,比CELMP 的F1 值高3.91 個百分點,進一步證明了膠囊網絡在多標簽關系抽取任務中的性能優勢。
表2 部分多標簽重疊關系數據上的實驗結果 單位:%Tab.2 Experimental results of some multi-label overlapping relationship data unit:%
本文針對司法領域提出了一種新的司法預訓練模型CriElectra,然后利用中文通用的人物關系語料,結合司法知識和人工標注方法構建以被告人、被害人以及作案工具為中心的故意傷害罪關系抽取數據集,并提出了CELCN 模型,很好地解決了故意傷害罪關系抽取語料中一對實體多種關系的情況,為司法領域中文關系抽取研究提供了技術基礎。在未來的工作中,將基于本文中CELCN 的研究,進一步開展多罪名的關系抽取研究。