当前位置:网站首页>Re12:读论文 Se3 Semantic Self-segmentation for Abstractive Summarization of Long Legal Documents in Low
Re12:读论文 Se3 Semantic Self-segmentation for Abstractive Summarization of Long Legal Documents in Low
2022-07-28 16:03:00 【诸神缄默不语】
论文名称:Semantic Self-segmentation for Abstractive Summarization of Long Legal Documents in Low-resource Regimes
AAAI官方预印版论文下载地址:https://www.aaai.org/AAAI22Papers/AAAI-3882.MoroG.pdf
官方软件demo:http://137.204.107.42:37338/
本文是2022年AAAI论文,关注法律文书生成式摘要。
本文关注的难点及对应的解决方案:
- 法律文书过长,标准Transformer复杂度随输入长度呈平方增长,小GPU放不下,直接truncate输入会导致信息缺失问题→将文本切分为多个较小的语义连续块(semantically coherent chunks),每次只在这些较短的块上做生成式摘要。
- 标注数据少→将文本切分为多个chunks,一起训练生成模型,作为数据增强操作。
文章目录
1. 模型Re3
数据切分(先切分原文,然后将摘要与对应的原文chunk匹配,形成原文-摘要对)→摘要生成
数据切分阶段:
- 切分原文(以句子为单位进行合并):
- 句子表征:使用在度量学习(metric learning)任务上微调过的Legal-Bert预训练模型实现句嵌入。
- 规定每个连续块token的最大长度和最小长度,当chunk加入新句子后的token数仍在二者范围内时,如果 新句子表征与当前chunk中每一句表征的余弦相似度的平均值 大于 新句子与下一chunk(这个chunk是look-ahead生成的,是后文直接组成chunk最小长度)中每一句表征的余弦相似度的平均值,则将新句子加入该chunk。
- 匹配摘要:将摘要中的每一句与其ROUGE-1-P值最高的chunk进行匹配。(Precision最高:该chunk中包含该句的内容最多)。
- 训练阶段丢弃没有匹配摘要的chunk。
摘要生成阶段:直接用已有的生成模型。论文中比较了BART(quadratic Transformer)和LED(linear Transformer,能输入更长的序列)的base模型的效果。
优化:
- look-ahead chunk的优势:不需要人工规定新句子能否加入chunk的余弦相似度平均值的阈值。
- 设置chunk的最小长度是为了充分利用GPU,最大长度是为了chunk能够完整地放进GPU。
2. 实验
2.1 实验设置
- 微调Legal-Bert预训练模型的度量学习任务:比较了使用triplet loss和contrastive loss的区别。
在Legal-Bert上训练了1个epoch,batch size为8,学习率为 2 × 1 0 − 5 2\times 10^{-5} 2×10−5 - BART和LED模型都使用了base版本,因为large版本太大了放不进GPU。
训练阶段:5个epoch,batch size为1,linear schedule( 5 × 1 0 − 5 5\times 10^{-5} 5×10−5)
推理阶段:beam size和length penalty都是2
2.2 主实验结果
baseline是PEGASUS(论文里没有写具体配置)和直接使用chunk最大token长度来进行truncation的BART、LED模型,此外比较了不同的chunk最大长度和最小长度的实验结果(显然长度越长效果越好。比较了一个GPU内存占比和结果的tradeoff):

2.3 模型分析
2.3.1 label scarcity问题
仅使用10个或100个标记数据。结果证明了Se3方法在低资源条件下的效果:
2.3.2 Ablation Study
语义连续chunk的效果,baseline是:1. 不考虑语义连续信息,直接用句子组成chunk。2. 使用BERT。3. 使用没有在度量学习任务上微调过的Legal-Bert。
2.3.3 其他指标分析
- BERTSCORE
- eventual redundancy:(1) 只出现过一次的n_gram的占比 (2) Normalized Inverse of Diversity (NID) (考虑到不同chunk摘要合并时可能产生冗余)

3. 论文阅读时产生的其他问题
- 语义连续块只是表征的相似性较高,但并没有真的含有某种语义。而且感觉这种截断方式很简单粗暴。既然最后都要和摘要匹配,为什么不先用摘要匹配然后再切分,感觉这样更有可能保留更合理的语义结构信息。但是确实这样会导致测试阶段难以操作……除非先训练个模型来选,但是这样又感觉无异于先抽取后生成范式了。
- 在训练阶段直接丢弃没有匹配摘要的原文连续块感觉不合理,测试时候咋办?
- 虽然原文声称文本信息必须要阅读全文后才能得到,但其实各连续块之间也没有信息交互,事实上还是分块做的。
- 感觉衡量冗余度的标准有些奇怪,真实摘要的这个值就比较低,所以生成结果的指标即使高也感觉是偏离真实值了,这样能说明它效果好吗?
4. 代码复现
官方没有给出代码,我发邮件问了作者还没有回复。
但是看起来这个代码倒是不难写,等我有需要了复现一下,跟demo展示的结果对比对比。
边栏推荐
- Some opinions on bug handling
- LeetCode-学会复杂带随机指针链表的题(详解)
- 局域网无法访问apache服务器
- 【深度学习】:《PyTorch入门到项目实战》第九天:Dropout实现(含源码)
- Interesting kotlin 0x0a:fun with composition
- 有趣的 Kotlin 0x07:Composition
- Leetcode learn to insert and sort unordered linked lists (detailed explanation)
- Configure HyperMesh secondary development environment on vs Code
- 有趣的 Kotlin 0x09:Extensions are resolved statically
- 【深度学习】:《PyTorch入门到项目实战》第五天:从0到1实现Softmax回归(含源码)
猜你喜欢

HyperMesh auto save (enhanced) plug-in instructions

LeetCode-学会对无序链表进行插入排序(详解)

Each account corresponds to all passwords, and then each password corresponds to all accounts. How to write the brute force cracking code

每一个账号对应所有密码,再每一个密码对应所有账号暴力破解代码怎么写?...

Im im development optimization improves connection success rate, speed, etc

Using pyqt to design gui in ABAQUS

Optimization of network request success rate in IM instant messaging software development

Leetcode daily practice - the number of digits in the offer 56 array of the sword finger

FX3开发板 及 原理图

Quickly master kotlin set functions
随机推荐
Im im development optimization improves connection success rate, speed, etc
Introduction and implementation of queue (detailed explanation)
Brother Ali teaches you how to correctly understand the problem of standard IO buffer
Sort 1-insert sort and Hill sort
mysql cdc 如果binlog日志文件不全,全量阶段能读到所有数据吗
做题笔记5(有序数组的平方)
Oracle table partition
每一个账号对应所有密码,再每一个密码对应所有账号暴力破解代码怎么写?...
[pointer internal skill cultivation] character pointer + pointer array + array pointer + pointer parameter (I)
Some suggestions on optimizing HyperMesh script performance
MySQL CDC if the binlog log file is incomplete, can you read all the data in the full volume stage
Implementation of transfer business
"Wei Lai Cup" 2022 Niuke summer multi school training camp 3 j.journey 0-1 shortest path
egg(十九):使用egg-redis性能优化,缓存数据提升响应效率
Hdu1847 problem solving ideas
有趣的 Kotlin 0x07:Composition
Microsoft question 100 - do it every day - question 16
小程序:获取元素节点信息
Interesting kotlin 0x06:list minus list
重置grafana登录密码为默认密码