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 实验设置
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展示的结果对比对比。