「中國法研杯」相似案例匹配競賽結果出爐,冠軍方案關鍵技術解讀

  • 2019 年 10 月 31 日
  • 筆記

劉知遠副教授為一等獎隊伍頒獎

作者 | 楊鯉萍 編輯 | 唐里

2019 年 10 月 19 日,第十八屆中國計算語言學大會「中國法研杯」相似案例匹配評測研討會在雲南昆明完美落幕。會上,清華大學劉知遠副教授、中國科學院軟件研究所韓先培研究員、冪律智能科技有限公司 CEO 塗存超博士等均出席了該會議。

其中,基於大會開展的中國法研杯相似案例匹配評測競賽,由來自支付寶的 AlphaCourt 團隊摘得桂冠,這是一支致力於搭建屬於支付平台的「互聯網法院」的隊伍。本次大賽中,他們充分運用了數據挖掘、深度學習、神經網絡等方法,實現了對「多篇法律文書的相似度計算與判斷」等任務的多模型融合、優化以及可視化探索,最終以 71.88 的優良成績,奪下了本次大賽冠軍!

在大賽中,我們也能看到京東、華宇元典、同濟大學等強勁對手的身影,但究竟 AlphaCourt 團隊是在哪些技術與方法上略勝一籌,才從 711 支參賽隊伍中脫穎而出?我們有幸採訪到冠軍團隊,並將其冠軍方案解析如下,也許我們可以一起來找到答案。

比賽任務簡介

本屆法研杯司法人工智能挑戰賽主要圍繞「相似案例匹配評測」主題展開,比賽任務則涉及到類案的理解與判斷等問題,其中最具代表性的則是:民間借貸相似案例。如果能通過 AI 技術將大量類案進行分類與判斷等,將大大減少重複性的人力成本等實際問題。

因此,本次的任務第一步是針對多篇法律文書進行相似度的計算和判斷;然後對於每份文書提供文書的標題和事實描述,從兩篇候選集文書中找到與詢問文書更為相似的一篇。其中,相似案例匹配的數據限於民間借貸一類文書。

民間借貸相似案例匹配舉例

在數據集方面,本任務所使用的數據集是來自「中國裁判文書網」公開的法律文書,每組數據由三篇法律文書組成。對於每篇法律文書,僅提供事實描述;對於每份數據,用(A,B,C)來代表該組數據;對於訓練數據,保證文書數據 A 與 B 的相似度是大於 A 與 C 的相似度。

在這樣的賽題背景下,各個參賽團隊開始運用他們的技術方法不斷提高 AI 判斷的準確度。

AlphaCourt 團隊

本次冠軍團隊 AlphaCourt 來自支付寶安全實驗室。參賽成員包括:

  • Kaggle Master 鮑晟霖
  • KDD 2019 冠軍得主易燦
  • 帝國理工博士劉星
  • 杜克大學碩士葉珩
  • 愛丁堡大學碩士林曉彤

這個小組的日常業務是根據用戶反饋的欺詐等風險信息,通過 AI 算法分析處理從而更好地防控,保護用戶賬戶安全。這也正是他們隊名「AlphaCourt——智能法院」的來歷,因為在他們業務範圍內,大家的職能與法院一樣,旨在分配正義,消除不公。

因此我們可以發現,團隊在本次競賽上有兩大主要優勢:

  • 一是業務涉及豐富的文本,沉澱了很多文本相關的算法;
  • 二是團隊曾搭建過詐騙案由的知識圖譜,這也更好的幫助他們輕車熟路地構建業務抽象要素框架,並與文本模型結合,豐富了模型的學習維度。

儘管團隊有着豐富、熟稔的經驗和技巧,但除了面臨法律案件中各種的難題,如:案件文本長、案件複雜度高、案情靈活多變、案件分析數值繁多等之外,他們依舊還有需要克服的其它困難及挑戰。

挑戰一:數據構建及句子相似度判定

在比賽過程中,團隊首先面臨的是賽題數據構建形式較少見這一大挑戰。隊長表示,雖然日常工作中他們很熟悉文本分類問題,但賽題是三段文本之間的對比,所以需要一定的轉換。

因此,一開始他們做了一個簡單的假設,把賽題轉化為了一個絕對相似的問題。假定文書數據 A 和文書數據 B 之間是符合絕對的相似,同時文書數據 A 和文書數據 C 之間是符合絕對的不相似,即原先的三元組數據拆分成兩兩文書數據之間是否絕對相似的問題,這樣就可以使用二分類模型來解決此類問題。

但實際上在第二階段檢查數據時,團隊發現之前的絕對相似假設存在一定問題。雖然數據(A,B,C)保證了文書數據 A 與 B 的相似度是大於 A 與 C 的相似度,但是另一條數據中會出現(A,D,B)的情況;當把這兩條三元組樣例同時拆分成兩兩對比相似的數據時,會發現產生數據的標籤存在衝突。

因此,團隊在第一階段使用二分類模型思路的情況下,重新考慮了三元組的相對相似問題。最終,他們採用了損失函數為 Triplet Loss 的 Rank 模型來解決三元組的相對相似的問題,從兩兩文本間的相似距離來評估兩兩文本之間相似度。

兩種模型的思路框架如下圖所示。

解決相對相似問題的模型

挑戰二:文本形式差異

隊長告訴我們,他們日常處理的是用戶自由填寫的文本,信息稀疏且沒有固定結構,而賽題則是半結構化的法律文書,所以需要構建賽題案由相關的業務抽象特徵。

因此,他們主要參考了合同法、擔保法、婚姻法及相關司法解釋,總結出了原告/被告屬性、擔保類型(一般、連帶)、計息方式、約定借期利率、約定逾期利率、抵押物、借款合意憑據等七個特徵。最終根據可行性以及數據表現,選用了原告被告特徵、擔保特徵、利息特徵等特徵。

原告被告特徵包括原告是否屬於公司、原告人數、被告是否屬於公司和被告人數;

擔保特徵包括文書中是否包含擔保人、擔保人個數、文書中是否包含抵押物和抵押物的個數;

利息特徵包括文書中是否包含利息和對利息金額的轉換。其他業務特徵包括文書中被告間是否存在夫妻關係和被告的死亡情況;

具體提取的結構化特徵如下圖所示:

具體提取的結構化特徵

雖然這些工作與建模關係不大,但在結果上證明了這些業務抽象特徵確實會帶來不錯的增益;同時,從參賽方案來看,這也是其他參賽對手沒有特別重視的細節之處。對於這一點的把控,不禁讓人感嘆:這確實是「細節決定成敗」最有力的說明!

挑戰三:模型優化

本次比賽有 711 支隊伍,共計 1003 位參賽者。激烈的競爭是在所難免的,而且在比賽過程中前幾名之間的分數差距基本都在 5 以內,互相你追我趕,頗有劍拔怒張之勢。因此,AlphaCourt 團隊也在不斷對模型進行優化,其中主要使用了兩個 Trick。

1、模型融合

第一個 Trick 是模型融合;團隊嘗試將 Bert 模型作為 Baseline 模型,然後對 Bert 模型進行進一步優化。優化方案包括:

對 Bert 模型內部的網絡層輸出進行提取,通過提取最後二層或三層中每層的第一個狀態輸出向量,嘗試與原先的 Bert 模型的輸出進行拼接,可以得到一個更加全面的特徵向量,如下圖(2)(3)所示;

結合正則表達式提取的業務抽象特徵和 TF-IDF 提取文本數據的詞頻統計等結構化特徵,與 Bert 模型的輸出進行拼接,結合結構化特徵的特徵合理性得到更加優化的特徵向量,如下圖(4)所示;

Bert 模型的除了輸出特徵向量外還提供了模型的狀態信息,該模型狀態信息可連接更深層的網絡模型,如 Bi-LSTM 和 Bi-GRU 網絡模型。通過更深層的網絡模型可以提取文本的更高維度特徵。通過池化和提取隱藏層狀態等操作聚合 Bi-GRU 網絡層的輸出特徵和隱藏層狀態的特徵,如下圖(5)所示。

五種網絡模型

通過以上構造的五種網絡模型,進行多模型離線的多模型融合可以進一步提高相似匹配的準確率,如下圖所示。

多模型離線的多模型融合

2、Triple Loss 過擬合

另一個 Trick 是 Triple Loss 過擬合的解決;由於樣本按照三元組形式輸入,即默認詢問文書數據 A 與文書數據 B 的相似度大於詢問文書數據 A 與文書數據 C 的相似度。此時在訓練過程中可能會出現一種極端的情況,即模型結果無腦輸出 B,就會出現過擬合問題。

AlphaCourt 團隊在這裡使用的解決方案是部分修改文本數據 B 和文本數據 C 的順序,使一半的數據變成(A,C,B)形式的三元組數據,即可以同時存在 B 和 C 的標籤。具體的操作流程如下所示。

解決 Triple Loss 過擬合方案

在構建訓練和驗證數據集 Datasets 時,在第奇數個三元組樣本附帶一個變量 op,值為 1。將第偶數個三元組樣本的文書數據 B 和文書數據 C 進行交換,並附帶一個變量 op,值為-1。構建的數據集經過數據加載器 Data Loader 會默認將數據集進行打亂,因此不會學習到數據的標籤規律。

最後學習到特徵向量經過 Triplet Loss 計算時,只要計算過程中附帶了變量 op,調整兩者歐式距離的正負結果,就可以保證 Triplet Loss 的計算結果保持正確。

以上則為本次冠軍方案最核心部分的解讀,除此之外,關於編碼層、特徵交互層、數據增廣、模型預訓練等細節內容詳情,可參考——

GitHub 開源代碼:

https://github.com/GuidoPaul/CAIL2019

AI 更廣泛的應用

從這個大賽我們可以看到,曾經局限於互聯網領域的 AI 技術,現在也在金融、法律甚至是礦工等領域開始漸漸發光發熱,起到實際作用。而且這也並非唯一一個舉辦法律 AI 大賽的會議,像這樣的比賽還有很多,比如:

Artificial Intelligence for Legal Assistance (AILA) 詳情查看:https://sites.google.com/view/fire-2019-aila/ Competition on Legal Information Extraction/Entailment 詳情查看:https://sites.ualberta.ca/~rabelo/COLIEE2019/

這些比賽都是聚焦於通過 AI 技術來解決法律案由中數據量大、數據繁雜、檢索力誤差等實際問題,我們也通過比賽得到了很多實用的優秀算法,幫助我們的生活變得更便利與幸福。

之前,我們很容易在互聯網、大數據等領域看到 AI 的身影;而現在,諸如法律、金融、醫療、交通、教育、零售以及文娛等各行各業中,也注入了強勁有力的 AI 實力。這或許也印證到,我們離全民 AI 又更近了一步。