刘知远副教授为一等奖队伍颁奖
作者 | 杨鲤萍 编辑 | 唐里
2019 年 10 月 19 日,第十八届中国计算语言学大会「中国法研杯」相似案例匹配评测研讨会在云南昆明完美落幕。会上,清华大学刘知远副教授、中国科学院软件研究所韩先培研究员、幂律智能科技有限公司 CEO 涂存超博士等均出席了该会议。
其中,基于大会开展的中国法研杯相似案例匹配评测竞赛,由来自支付宝的 AlphaCourt 团队摘得桂冠,这是一支致力于搭建属于支付平台的「互联网法院」的队伍。本次大赛中,他们充分运用了数据挖掘、深度学习、神经网络等方法,实现了对「多篇法律文书的相似度计算与判断」等任务的多模型融合、优化以及可视化探索,最终以 71.88 的优良成绩,夺下了本次大赛冠军!
在大赛中,我们也能看到京东、华宇元典、同济大学等强劲对手的身影,但究竟 AlphaCourt 团队是在哪些技术与方法上略胜一筹,才从 711 支参赛队伍中脱颖而出?我们有幸采访到冠军团队,并将其冠军方案解析如下,也许我们可以一起来找到答案。
比赛任务简介
本届法研杯司法人工智能挑战赛主要围绕「相似案例匹配评测」主题展开,比赛任务则涉及到类案的理解与判断等问题,其中最具代表性的则是:民间借贷相似案例。如果能通过 AI 技术将大量类案进行分类与判断等,将大大减少重复性的人力成本等实际问题。
因此,本次的任务第一步是针对多篇法律文书进行相似度的计算和判断;然后对于每份文书提供文书的标题和事实描述,从两篇候选集文书中找到与询问文书更为相似的一篇。其中,相似案例匹配的数据限于民间借贷一类文书。
民间借贷相似案例匹配举例
在数据集方面,本任务所使用的数据集是来自「中国裁判文书网」公开的法律文书,每组数据由三篇法律文书组成。对于每篇法律文书,仅提供事实描述;对于每份数据,用(A,B,C)来代表该组数据;对于训练数据,保证文书数据 A 与 B 的相似度是大于 A 与 C 的相似度。
在这样的赛题背景下,各个参赛团队开始运用他们的技术方法不断提高 AI 判断的准确度。
AlphaCourt 团队
本次冠军团队 AlphaCourt 来自支付宝安全实验室。参赛成员包括:
这个小组的日常业务是根据用户反馈的欺诈等风险信息,通过 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 又更近了一步。