语言:
- 德语
标签:
- 摘要生成
- arxiv:2005.00661
- arxiv:2111.09525
- arxiv:2112.08542
- arxiv:2104.04302
- arxiv:2109.09209
许可证: mit
评估指标:
- rouge
小部件示例:
- 文本: "针对连环纵火案,维尔茨堡刑事警察局于周三成立了专案调查组。埃斯特费尔德市长罗莎琳德·施劳德评论该系列纵火事件时表示:'我感觉纵火者越来越肆无忌惮'。最近两起纵火案尤为反常,因为它们发生在光天化日之下且位于繁华街道。纵火者是否来自埃斯特费尔德?诺伯特·瓦尔茨是埃斯特费尔德纵火案的最新受害者。周二下午,一名不明身份者点燃了他的花园小屋。'他脑子里在想什么,发生了什么——这简直难以置信!很可能就是本地人,因为作案者熟悉环境。'来自埃斯特费尔德的诺伯特·瓦尔茨说道。埃斯特费尔德首位女市长罗莎琳德·施劳德不愿证实纵火者可能是本镇居民:'民众当然有各种猜测,但我不想参与其中。'据施劳德称,市民们对火灾的反应是提高了警惕:'人们更关注邻里动态。'只要凶手未被抓获,连环纵火案恐怕不会停止。'作案者来自埃斯特费尔德周边地区并不奇怪。因此我们呼吁能提供案件相关线索的目击者联系刑事警察局。'下弗兰肯警察局发言人菲利普·许默尔表示。巴伐利亚州刑警总局已悬赏2000欧元征集能抓获凶手的线索。"
示例标题: "新闻示例"
德语新闻标题生成模型
这是一个用于生成德语新闻标题的模型。
虽然该任务与摘要生成非常相似,但在长度、结构和语言风格上仍存在差异,这使得最先进的摘要模型并不完全适合标题生成,需要针对此任务进行进一步微调。
本模型以谷歌的mT5-base作为基础模型。
该模型仍在开发中
数据集与预处理
模型基于2015至2021年间BR24发布的新闻文章进行微调。这些德语文本文涵盖政治、体育、文化等多种新闻主题,重点关注与巴伐利亚(德国)居民相关的议题。
在预处理阶段,过滤掉了符合以下任一条件的文章-标题对:
- 极短文章(正文词数少于标题词数的3倍)
- 标题仅包含未出现在正文中的词汇(经过词形还原并排除停用词)
- 标题仅为已知文本格式名称(如"Das war der Tag"这种总结当日要闻的固定栏目)
此外,所有文章都添加了前缀summarize:
以利用mT5预训练的摘要生成能力。
过滤后的语料库包含89098个文章-标题对,其中87306个用于训练,902个用于验证,890个用于测试。
训练
经过多次测试运行后,当前模型采用以下参数进行训练:
- 基础模型: mT5-base
- 输入前缀: "summarize: "
- 训练轮次: 10
- 学习率: 5e-5
- 预热比例: 0.3
- 学习率调度器类型: constant_with_warmup
- 每设备训练批次大小: 3
- 梯度累积步数: 2
- 混合精度训练: 关闭
每5000步保存一个检查点并在验证集上评估。训练结束后,选择验证集上交叉熵损失最优的检查点作为最终模型。
使用方式
由于模型基于mT5微调,其使用方式与T5模型类似(参见文档)。另一种推理方式是使用HuggingFace的摘要生成管道。
两种情况下都需要在输入文本前添加summarize:
前缀。
为获得更高质量的标题,建议增加生成时的束搜索宽度。本模型评估时使用的束宽为5。
示例:直接模型调用
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_id = ""
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
text = "Als Reaktion auf die Brandserie wurde am Mittwoch bei der Kriminalpolizei Würzburg eine Ermittlungskommission eingerichtet..."
input_text = "summarize: " + text
input_ids = tokenizer(input_text, return_tensors="pt").input_ids
outputs = model.generate(input_ids, num_beams=5)
generated_headline = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_headline)
示例:使用HuggingFace管道
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, pipeline
model_id = ""
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
headline_generator = pipeline(
"summarization",
model=model,
tokenizer=tokenizer,
num_beams=5
)
text = "Als Reaktion auf die Brandserie wurde am Mittwoch bei der Kriminalpolizei Würzburg eine Ermittlungskommission eingerichtet..."
input_text = "summarize: " + text
generated_headline = headline_generator(input_text)[0]["summary_text"]
print(generated_headline)
局限性
与大多数最先进的摘要模型一样,本模型在生成文本的事实性方面存在问题[^factuality]。因此强烈建议人工核查生成的标题。
对于本模型可能再现的偏见分析(无论源自我们的微调还是底层mT5模型)超出了本工作范围。我们假设模型中存在偏见,相关分析将是未来工作。
由于模型训练基于2015-2021年的新闻文章,新闻主题变化和(如政治)形势变迁可能导致额外的偏见和事实错误。
评估
模型在包含890个文章-标题对的保留测试集上进行评估。
每个模型使用束宽为5的束搜索生成标题。
量化评估
为评估生成标题相对于原文的事实性,我们使用3种最先进的摘要评估指标(参数根据相应论文或GitHub仓库推荐设置)。由于这些指标仅支持英语,本事实性评估前通过DeepL API将德语文本和生成标题翻译为英文。
-
SummaC-CZ [^summac]
得分区间-1到1,表示蕴涵概率与矛盾概率的差值(-1:标题完全不蕴涵于文本且完全矛盾,1:标题完全蕴涵于文本且无矛盾)。
参数:
-
QAFactEval [^qafacteval]
使用论文报告表现最佳的Lerc Quip分数。得分区间0到5,表示基于标题与文本生成问题的答案重叠度(0:无重叠,5:完全重叠)。
参数:
-
DAE (依存弧蕴涵) [^dae]
输出二进制值0或1,表示标题中所有依存弧是否都蕴涵于文本(0:至少一个依存弧不蕴涵,1:所有依存弧都蕴涵)。
参数:
- 模型检查点: DAE_xsum_human_best_ckpt
model_type
: model_type
max_seq_length
: 512
每个指标计算测试集中所有文章-标题对的得分,并报告测试集平均分。
可观察到我们的模型得分 consistently 低于T-Systems模型。经人工评估发现,为匹配标题特有的结构和风格,标题生成模型需要比摘要模型更具抽象性,这导致生成输出中出现更多幻觉内容。
定性评估
BR AI + Automation Lab成员的定性评估表明,该模型能成功生成符合新闻标题语言风格的标题,但也证实了当前最先进摘要模型普遍存在的事实一致性问题。
未来工作
未来工作将聚焦于生成与文本事实一致性更高的标题。可能方向包括:
- 使用共指解析作为额外预处理步骤,使文本内部关系对模型更明确
- 使用对比学习[^contrastive_learning]
- 针对不同新闻主题使用不同模型,因为不同主题易出现不同类型错误,更专业化的模型可能提升性能
- 在生成步骤使用事实性度量模型对束搜索候选进行重排序
- 分析模型中存在的偏见
[^factuality]: Maynez等人在ACL 2020发表的《On Faithfulness and Factuality in Abstractive Summarization》
[^summac]: Laban等人在TACL 2022发表的《SummaC: Re-Visiting NLI-Based Models for Inconsistency Detection in Summarization》
代码: https://github.com/tingofurro/summac
[^qafacteval]: Fabbri等人在arXiv 2022发表的《QAFactEval: Improved QA-Based Factual Consistency Evaluation for Summarization》
代码: https://github.com/salesforce/QAFactEval
[^dae]: Goyal等人在arXiv 2021发表的《Annotating and Modeling Fine-Grained Factuality in Summarization》
代码: https://github.com/tagoyal/factuality-datasets
[^contrastive_learning]: Cao和Wang在EMNLP 2021发表的《CLIFF: Contrastive Learning for Improving Faithfulness and Factuality in Abstractive Summarization》