• Re27:读论文 LADAN Distinguish Confusing Law Articles for Legal Judgment Prediction


    诸神缄默不语-个人CSDN博文目录

    论文名称:Distinguish Confusing Law Articles for Legal Judgment Prediction
    论文ACL官方下载地址:https://aclanthology.org/2020.acl-main.280/(这个网站上的视频不知道为啥打不开,我在papertalk上找到了讲解视频:https://papertalk.org/papertalks/6897
    ArXiv下载地址:https://arxiv.org/abs/2004.02557
    官方GitHub项目prometheusXN/LADAN: The source code of article “Distinguish Confusing Law Articles for Legal Judgment Prediction”, ACL 2020

    这篇论文是2020年ACL论文,做的是CAIL数据集上的LJP任务,主要关注区分易混淆法条的问题。
    本文提出的端到端模型LADAN (Law Article Distillation based Attention Network) 用相似法条的区别来attentively提取案例事实描述文本中的特征,解决了这一问题。
    用法条及其之间的TFIDF相似性构建图,将易混淆法条聚类到社区中,用GNN模型(不是直接聚合,而是搞了个GDO (graph distillation operator) 算子)来学习整个社区的特征和社区法条之间的细微差异。每个案例学习宏观和微观两个特征,宏观特征用于预测社区(事实描述和法条间的相似性),微观特征是通过被选中社区的注意力向量attentively抽取出来的,用于区分社区内的法条。

    1. Background & Motivation

    LJP任务图示:
    在这里插入图片描述

    LJP任务中,由于相似法条对应的案例很容易被误判,所以易混淆罪名很常见。
    易混淆罪名示例:
    在这里插入图片描述

    以前解决这一问题的方法往往依赖领域知识(如Few-shot1定义discriminative attributes以作区分),这使其对不同法系的泛化能力变弱。
    本文希望能提出自动抽取法条文本特征的模型来辅助LJP任务,如FLA2用对法条的注意力机制从事实描述中抽取特征。如下图a所示,其缺点在于独立学习每个法条的注意力向量,这样语义上相似的法条可能就会学到相似的注意力向量,这对易混淆罪名的预测很低效。
    如果想要解决相似案例的问题,直觉想法是删除法条之间的重复内容,仅使用剩余的不同内容,来做注意力机制。但这样就会导致不相似法条出现相似的剩余内容,如上图所示。(除此以外还有个问题,就是这个过程不可微分,因此无法直接插入端到端神经网络)

    在这里插入图片描述

    信息传播GNN会出现过平滑问题,使节点表征靠近,这与我们所期待的区分相似GNN的目标正好相悖,因此本文提出distillation operation,蒸馏而非聚合,来抽取相似法条之间的可区分特征。

    2. LADAN模型

    在这里插入图片描述
    案例事实描述文本表示为两部分:基础表征 v f b \mathbf{v}^b_f vfb(匹配法条社区,直接表征得到),可区分表征 v f d \mathbf{v}^d_f vfd(区分同社区法条,通过fact re-encoder module得到)。
    两个表征concat起来后传入下游LJP任务(这一步可以用MTL,或者别的LJP模型,如TOPJUDFE/MPBFN等)。

    获得基础表征:使用一种流行文本表征模型(如CNN或Bi-RNN)
    获得可区分表征:用law distillation module将法条划分到社区中,然后抽取每个社区的distinction vector/distinguishable features β i \beta_i βi(先用GDO算出每个法条的表征,然后池化出每个社区的表征)。通过案例的基础表征预测出该案例所属的社区,用该社区的distinguishable feature(上图中的 β c ^ \beta_{\hat{c}} βc^)来attentively抽取案例的可区分表征(用fact re-encode module)。

    2.1 law distillation module

    1. graph construction layer (GCL):划分法条到社区中
      先构建法条的全连接图,边权是TF-IDF向量的余弦相似度→根据阈值 τ \tau τ移边
      得到一个由disconnected subgraphs组成的图,每个subgraph是一个由易混淆法条构成的社区
    2. 在每个社区中,用graph distillation layer学习其distinction vector。
      参考graph convolution operator (GCO),本文提出graph distillation operator (GDO),移除节点相似特征以学习distinction vector。
      对法条 L i L_i Li,GDO用一个可训练权重矩阵 Ψ \Psi Ψ捕获其与图中邻居之间的相似信息,用矩阵 Φ \Phi Φ抽取其有效语义特征。每一层聚合 L i L_i Li及其邻居相似信息、然后从表征中删掉:
      在这里插入图片描述
      一个社区的distinction vector:
      在这里插入图片描述
      (MaP是max pooling,MiP是min pooling)

    2.2 fact re-encoder module

    1. 预测案例属于哪个社区:
      在这里插入图片描述
      在这里插入图片描述
    2. 用对应社区的distinction vector β c ^ \beta_{\hat{c}} βc^ 来attentively抽取案例的distinguishable features
      参考HAN3,基于词-句两个级别的Bi-GRUs来attentively抽取distinguishable features
      词级别:
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      句子级别:
      在这里插入图片描述

    2.3 预测和训练

    得到了concat后的事实描述表征:
    在这里插入图片描述

    在这里插入图片描述

    损失函数-多任务:
    在这里插入图片描述

    损失函数-预测法条属于的社区:
    在这里插入图片描述

    在这里插入图片描述

    3. 实验

    3.1 数据集

    CAIL

    预处理工作:

    1. 删除多法条和多罪名场景
    2. 仅保留超过100个案例样本的法条和罪名(在训练集和验证集中计算得到)
    3. 删除二审样本(在论文中没提,但在代码中有,后续直接使用LADAN预处理数据的论文会提及)
    4. 将刑期改为分类标签

    在这里插入图片描述

    3.2 baseline

    细节略。

    1. CNN
    2. HARNN
    3. FLA4
    4. Few-Shot1
    5. TOPJUDGE
    6. 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安装教程

    操作步骤:

    1. 下载各种需要的数据(LADAN官方GitHub项目链接里都给了),law_processed文件夹放到training_code文件夹下面,别的几个文件在代码里直接改路径就行
    2. 首先预处理CAIL数据:tongji_3.py→make_Legal_basis_data.py(这两个好像都是直接用于small数据的,但是改成big好像差不太多)
    3. 然后运行训练代码(后面几篇后续研究中,LADAN的baseline用的是LADAN+MTL,所以我跑的是LADAN+MTL_small.py),运行命令是python LADAN+MTL_small.py --gpu 0 --data_folder /data/cail_ladan/legal_basis_data_small。我现在能正常运行small数据集上的代码,但是改成big数据集后就跑不了了,我也不知道为啥,TF1是我所不了解的领域。准备以后再看怎么解决这个问题吧

    4.2 PyTorch复现

    我需要写LJP主流方法用PyTorch实现的包,先把坑放在这里,以后写。

    5. 其他在本文撰写过程中使用到的参考资料

    ACL 2020 论文介绍 - 知乎


    1. Few-shot charge prediction with discriminative legal attributes ↩︎ ↩︎

    2. Learning to predict charges for criminal cases with legal basis ↩︎

    3. Hierarchical attention networks for document classification ↩︎

    4. Re7:读论文 FLA/MLAC/FactLaw Learning to Predict Charges for Criminal Cases with Legal Basis ↩︎

  • 相关阅读:
    xen-timer
    mysql中如何使用乐观锁和悲观锁
    离线安装harbor容器镜像仓库(harbor-v2.3.5)
    必考设计模式
    我的C#基础
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java快递柜管理系统25b40
    6.3 Cookie对象操作
    OPNET Modeler 的安装及其相关配置
    NewStarCTF2023week2-Upload again!
    【阿卡乐谱】【日常分享】超级强大的简谱-大海啊,故乡
  • 原文地址:https://blog.csdn.net/PolarisRisingWar/article/details/126472752