论文名称:Augmenting Legal Judgment Prediction with Contrastive Case Relations
论文下载地址:https://aclanthology.org/2022.coling-1.235/
论文官方GitHub地址:dgliu/COLING22_CTM: Experiments codes for COLING '22 paper “Augmenting Legal Judgment Prediction with Contrastive Case Relations”
本文结合了案例数据集的关系(contrastive case relations,包括案例相似/不相似关系(即标签关系)和频率),提出CTM (case triple modeling) 框架,用案例及其相似/不相似的案例构成三元组来做对比学习,实现LJP任务中的法条预测和罪名预测任务。
没做刑期预测的原因:high difficulty and variance
本文认为数据集中的关系信息会给建模带来更多的限制,如低频样本训练不够充分(本文的统计信息是MPBFN模型上频率越低、预测准确率越低)。(作者说,动机是传统单案例建模范式对有益信息的利用不足,本文的做法就充分利用到了案例关系和频率信息。其他引入图之类的工作也是想要利用这些信息,但是没有直接改变建模范式)
本文使用案例关系,参考了相似案例匹配SCM任务。
本文是第一篇基于案例关系将案例三元组结构引入LJP任务的工作。
1. 模型思想和做法概述
左图是传统LJP任务的范式,右图是本文所采用的范式:同时利用案例本身及其相似、不相似的案例(经抽样),进行编码,用以实现预测任务。(还结合了案例频率信息)
(这种框架可以结合到其他LJP模型上)
不考虑案例关系和频率,可能会造成表现瓶颈,如低频法条/罪名的案例无法得到充分训练。
案例明显幂分布,以前模型(MPBFN)的预测准确率随频率降低而下降:
但是我用baseline画这个图就明显没有这样的趋势:我还没有跑过MPBFN模型,不知道是因为这个模型本身表现能力就太弱,还是因为本文使用的数据集预处理方式与我的不同,没有去掉超低频的案例样本,导致出现这种现象。
作者说,他们也试过移除超低频样本后,仍然会呈现下降趋势,只是没有保留超低频样本时这么明显。长尾问题应该是大部分模型的通病
2. CTM框架详解
本文仅考虑单标签场景。
抽样相似/不相似样本→分别得到4个文本表征(法条和罪名各是一个三元组,原案例-相似案例-不相似案例)→relational attention module,限制样本关系→category decoder module分类高低频样本,选择不同的decoder来分类
2个相似样本:法条/罪名相同
1个不相似样本(法条罪名共用):罪名都不同,且法条和罪名都属于高频样本
文本表征模型:本文用的是HAN模型
有监督对比学习:对法条和罪名分别建模,计算原样本对三元组样本的attention
这个做法参考了1,主要参考第二篇,让相似表征attention靠近,不相似attention离远。整个类似传统triplet loss,但是把表征距离换成了attention距离
然后这里还列举了一些别的理由,一个是说attention取值高说明这一维度对相似度计算影响更大,我没搞懂这跟选attention而不选表征有什么关系;一个说这种做法对原样本和相似样本的attention去噪。
作者说之所以没直接用传统triplet loss而是叠了一层attention操作,背后的原因在于,如果直接对特征表征做约束,对模型的训练影响会太大:因此引入了一组新的参数来将它们投影到新的空间中,用更大的参数容量来缓解不利的影响。而1中VQA任务有类似的形式,因此选择用attention来描述。
高低频分类器:2层MLP
预测出标签属于高低频(文中的head/tail)哪一类,接不同的decoder
decoder:LSTM表征→接一层MLP输出多任务分类预测结果
encoder和decoder都是可换的。
损失函数:多任务分类+对比学习+高低频分类+罚项
2.1 Notation
案例:
由句子组成的事实描述文本:
y
l
y_l
yl:法条标签
y
c
y_c
yc:罪名标签
y
a
∈
{
0
,
1
}
y_a\in\{0,1\}
ya∈{0,1}:category label(案例是否高频)
案例三元组:
在限制下生成表征:
2.2 损失函数
L
M
\mathcal{L}_M
LM:多任务学习的损失函数
L
R
\mathcal{L}_R
LR:relational attention module用于限制的损失函数
L
C
\mathcal{L}_C
LC:category decoder module的损失函数
(各项子损失函数见后文)
λ
\lambda
λ:tradeoff parameter
∣
∣
θ
∣
∣
||\theta||
∣∣θ∣∣:正则化项
2.3 case triple module
contrastive case relation:考虑标签和频率信息,通过抽样的方式,构建案例三元组
阈值
ϕ
\phi
ϕ:将法条和罪名分为高低频
相似案例:具有相同的法条/罪名标签
罪名不相似案例:罪名标签不同,且标签属于高频(论文里说这是为了用海量的反向参考来充分训练低频标签)
(罪名不相似案例就被视作不相似案例。这能减少运算量)
得到:
2.4 fact description encoder module
hierarchical Bi-GRU2(类似一些SOTA方法)获得3个表征:
方法:
2.5 relational attention module
案例及其相似与不相似案例之间的attention,和它自己的anchor attention:
2.6 category decoder module
减轻高低频案例之间的影响
先识别频率:
(为什么这个MLP是2层,而且没有bias,而且用relu,我也不知道!)
(↑作者说当时这么写主要是为了跟上面attention的计算对称,所以没有什么严谨的理论支持……感觉好像用别的架构也影响不大,所以别的超参也可以试试)
根据识别出的类选择对应的解码器(结构相同),本文用类似TOPJUDGE的结构(在实验过程中也用了其他解码器):
2.7 judgment prediction module
用解码后得到的表征预测法条和罪名
分别过MLP,损失函数直接相加(视作多任务场景):
3. 实验
3.1 数据集
CAIL
与LADAN等相比,没有删除极端少的标签,即实验环境有所不同。
3.2 baseline
MTL
TopJudge
MPBFN
LADAN3
NeurJudge4
3.3 实验设置
超参设置等内容略。
3.4 主实验结果
3.5 模型分析
3.5.1 兼容性研究
就是说这个框架可以应用在各种encoder和decoder上。
3.5.2 消融实验
3.5.3 Analysis of Gain Sources
3.5.4 Visualization of Case Representations
4. 代码复现
我直接尝试复现了LADAN原始数据上的模型官方代码效果。解决方案see:分享一些在CAIL经LADAN式预处理后得到数据上进行复现后的解决方案 · Issue #2 · dgliu/COLING22_CTM
参考文献:
FaceNet: A Unified Embedding for Face Recognition and Clustering
这一篇的三元组是样本-匹配样本-不匹配样本,似乎就是直接用样本距离来实现限制:
Differential Attention for Visual Question Answering
用target image – supporting image – opposing image,分别表征,学习原样本与三种表征之间的attention,然后进行对比学习。
本文是设计了两种对比学习的变体。
第一种变体是DAN,用的triplet loss比较直觉。
感觉CTM就是直接用了DAN变体,用triplet loss靠近原样本和相似样本的attention(这篇文章的逻辑是,VQA任务中image-based attention应该更靠近人所选择的attention,所以要原图和supporting image的attention靠近):
其中triplet loss是:
(原文没说t是啥,但是我看了一下附录里面对triplet loss部分的详解,用的就是f(也写了就是表征),所以我觉得应该就是表征的意思)
另一种变体是DCN
看起来是将attention转化为上下文结合进了原样本表征中,直接实现分类任务:
supporting context:
两项是不同的投影(计算相似度)。
opposing context:
在实验中DCN的效果比DAN要好 ↩︎ ↩︎Hierarchical attention networks for document classification ↩︎
Re27:读论文 LADAN Distinguish Confusing Law Articles for Legal Judgment Prediction ↩︎
Re38:读论文 NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction ↩︎