1. Background & Motivation
LJP任务图示:
LJP任务中,由于相似法条对应的案例很容易被误判,所以易混淆罪名很常见。
易混淆罪名示例:
以前解决这一问题的方法往往依赖领域知识(如Few-shot1定义discriminative attributes以作区分),这使其对不同法系的泛化能力变弱。
本文希望能提出自动抽取法条文本特征的模型来辅助LJP任务,如FLA2用对法条的注意力机制从事实描述中抽取特征。如下图a所示,其缺点在于独立学习每个法条的注意力向量,这样语义上相似的法条可能就会学到相似的注意力向量,这对易混淆罪名的预测很低效。
如果想要解决相似案例的问题,直觉想法是删除法条之间的重复内容,仅使用剩余的不同内容,来做注意力机制。但这样就会导致不相似法条出现相似的剩余内容,如上图所示。(除此以外还有个问题,就是这个过程不可微分,因此无法直接插入端到端神经网络)
信息传播GNN会出现过平滑问题,使节点表征靠近,这与我们所期待的区分相似GNN的目标正好相悖,因此本文提出distillation operation,蒸馏而非聚合,来抽取相似法条之间的可区分特征。
2. LADAN模型
2.1 law distillation module
- graph construction layer (GCL):划分法条到社区中
先构建法条的全连接图,边权是TF-IDF向量的余弦相似度→根据阈值τ 移边
得到一个由disconnected subgraphs组成的图,每个subgraph是一个由易混淆法条构成的社区
2.2 fact re-encoder module
- 预测案例属于哪个社区:
2.3 预测和训练
得到了concat后的事实描述表征:
损失函数-多任务:
损失函数-预测法条属于的社区:
3. 实验
3.1 数据集
CAIL
预处理工作:
- 删除多法条和多罪名场景
- 仅保留超过100个案例样本的法条和罪名(在训练集和验证集中计算得到)
- 删除二审样本(在论文中没提,但在代码中有,后续直接使用LADAN预处理数据的论文会提及)
- 将刑期改为分类标签
3.2 baseline
细节略。
- CNN
- HARNN
- FLA4
- Few-Shot1
- TOPJUDGE
- MPBFN-WCA
3.3 实验设置
细节略。
3.4 主实验结果
细节略。
3.5 实验分析
3.5.1 消融实验
3.5.2 案例分析
LADAN encoder的注意力可视化:
4. 代码复现
4.1 官方TensorFlow实现
环境配置可以参考官方GitHub项目中的issue:file not found · Issue #4 · prometheusXN/LADAN:
安装可以参考我之前写的博文:TensorFlow安装教程
首先预处理CAIL数据,然后下载其他数据、Python包……等,然后运行训练代码。我现在跑出来了,细节略,以后补。
4.2 PyTorch复现
我需要写LJP主流方法用PyTorch实现的包,先把坑放在这里,以后写。