文本摘要(text summarization)任务:研究范式,重要模型,评估指标(持续更新ing...)

772 阅读12分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天

本文首发于CSDN。

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

本文是作者在学习文本摘要任务的过程中,根据学习资料总结逐步得到并整理为成文的相关内容。相关学习资料(包括论文、博文、视频等)都会以脚注等形式标明。有一些在一篇内会导致篇幅过长的内容会延伸到其他博文中撰写,但会在本文中提供超链接。 本文将主要列举里程碑式的重要文本摘要论文。 注意:除文首的表格外,本文所参考的论文,如本人已撰写对应的学习博文,则不直接引用原论文,而引用我撰写的博文。 本文会长期更新。

经典文本摘要论文:文本摘要经典论文

@[toc]

1. 任务类型

1.1 生成式摘要(重写)和抽取式摘要(句子压缩任务)

1.1.1 生成式摘要abstractive summarization

本节内容参考了以下论文的文献综述部分:[^4]

序列生成(文本生成NLG)问题,一般使用seq2seq (S2S) 架构(encoder-decoder架构)。

sentence-fusion和重写(paraphrasing)

rephrasing and introducing new concepts/words(语出Friendly Topic Assistant for Transformer Based Abstractive Summarization

基于结构的方法:

常见问题及针对该问题提出的解决方案:

  1. 文本重复
    1. PGN(Get to the point: Summarization with pointer-generator networks.)中提出的coverage机制就是用来解决这一问题的(虽然我觉得实验上好像文本重复问题还是非常严重)
  2. 事实不一致问题
    1. 衡量原文与摘要的事实一致性: The Factual Inconsistency Problem in Abstractive Text Summarization: A Survey Assessing The Factual Accuracy of Generated Text Multi-Fact Correction in Abstractive Text Summarization Evaluating the Factual Consistency of Abstractive Text Summarization Asking and Answering Questions to Evaluate the Factual Consistency of Summaries FEQA: A Question Answering Evaluation Framework for Faithfulness Assessment in Abstractive Summarization Falsesum: Generating Document-level NLI Examples for Recognizing Factual Inconsistency in Summarization QAFactEval: Improved QA-Based Factual Consistency Evaluation for Summarization Investigating Crowdsourcing Protocols for Evaluating the Factual Consistency of Summaries
    2. 直接解决事实不一致问题: Joint Parsing and Generation for Abstractive Summarization Masked Summarization to Generate Factually Inconsistent Summaries for Improved Factual Consistency Checking
  3. 文本不连贯(fluent或coherent)
  4. 原文太长,难以直接输入模型(Transformer模型的quadradic复杂度)
    1. 抽取+生成范式:证明这种范式比直接生成的效果更好:Bottom-Up Abstractive Summarization, Improving neural abstractive document summarization with explicit information selection modeling
    2. 切分数据范式
    3. 改进模型

典型的使用seq2seq+attention范式做生成式摘要的论文:

1.1.2 抽取式摘要extractive summarization

本节内容参考了以下论文的文献综述部分:[^4][^5]

缺点:在话题切换时缺乏连贯性。

  1. Term Frequency-Inverse Document Frequency Method
  2. Cluster Based Method:聚类出各主题,文档表示方法为单词的TF-IDF得分,High frequency term represents the theme of a cluster,基于句子与簇中心的关系选择摘要句
  3. Text Summarization with Neural Network
  4. Text Summarization with Fuzzy Logic
  5. Graph based Method
  6. Latent Semantic Analysis Method: LSA
  7. Machine Learning approach
  8. Query based summarization

常见范式:做句子的二分类任务(该句是否属于摘要),将预测为“属于”的句子拼起来,组成摘要。 identify and then concatenate the most representative sentences as a summary(语出Friendly Topic Assistant for Transformer Based Abstractive Summarization

模型分成3层来做表示学习(单词→句子→文档),使用attention等机制提高表示能力。

  1. 用基于图的表征来捕获显著textual units:TF-IDF similarity(Lexrank: Graph-based lexical centrality as salience in text summarization.) ;discourse relation(Textrank: Bringing order into text.);document-sentence two-layer relations(An exploration of document impact on graph-based multi-document summarization.);multi-modal (Graph-based multi-modality learning for topic-focused multidocument summarization.) 和 query information (Mutually reinforced manifold-ranking based relevance propagation model for query-focused multi-document summarization. )
  2. 使用GNN方法捕获文档间关系:Graph-based neural multi-document summarization.(构建discourse图并用GCN表示textual units); Hierarchical transformers for multi-document summarization.(用entity linking technique捕获句子间的全局依赖,用基于图的神经网络模型对句子进行排序)

使用深度学习方法做抽取式摘要的经典论文:

1.2 单文档摘要和多文档摘要

1.2.1 单文档摘要single-document summarization

主题论文总结4:单文档摘要(以罗列为主)(持续更新ing...)

1.2.2 多文档摘要multi-document summarization

本节内容参考了以下论文的文献综述部分:[^5]

看了几篇MDS的论文感觉无非就是一种长文本摘要啊……有的论文就是单纯把多篇文档拼在一起,用[END]token作间隔。(A Multi-Document Coverage Reward for RELAXed Multi-Document Summarization

输入的多文档可能是冗余的,甚至含有自相矛盾的内容(A common theory of information fusion from multiple text sources step one: cross-document structure.

迁移单文档摘要的模型到多文档摘要上,以回避缺乏小规模数据集的问题: Generating wikipedia by summarizing long sequences.:定义Wikipedia生成问题,并提出WikiSum数据集。 Towards a neural network approach to abstractive multi-document summarization.

Multi-news: A large-scale multi-document summarization dataset and abstractive hierarchical model. :提出MultiNews数据集,在抽取过程后应用seq2seq模型生成摘要。 Leveraging graph to improve abstractive multi-document summarization.:用显式图表征建模文档间关系,结合预训练语言模型处理长文本。

1.3 重要研究方向

  1. 长文本摘要
  2. 结构化文本摘要:主题论文总结1:structured text summarization(持续更新ing...)_诸神缄默不语的博客-CSDN博客
  3. 对话/会议摘要:主题论文总结2:会议/对话摘要任务(持续更新ing...)_诸神缄默不语的博客-CSDN博客
  4. 维基百科生成:主题论文总结3:维基百科生成任务(持续更新ing...)_诸神缄默不语的博客-CSDN博客
  5. 科技文献(论文)摘要:主题论文总结5:科技文献(论文)摘要

2. 抽取式摘要

2.1 无监督方法

重要模型: LEAD-3算法 TextRank算法

2.2 有监督方法

重要模型: Fine-tune BERT for Extractive Summarization BertSum算法(官方源代码:nlpyang/BertSum: Code for paper Fine-tune BERT for Extractive Summarization;热心网友写的可以直接用中文数据作为输入的版本:425776024/bertsum-chinese: chinese bertsum ; bertsum 抽取式模型中文版本;给出案例数据、全代码注释;下载即可训练、预测、学习

3. 生成式摘要

3.1 抽取+生成

3.1.1 解耦的

对范式的介绍: Abstractive multi-document summarization via phrase selection and merging.:分成两个阶段:第一步,通过无监督的方法或语言学知识来抽取原文中的关键文本元素(key textual elements)。第二步,用语言学规则或文本生成方法来rewrite或paraphrase抽取出来的元素,生成原文的准确摘要。(转引自LCSTS: A Large Scale Chinese Short Text Summarization Dataset

重要模型:SPACES模型(苏剑林的介绍博文:SPACES:“抽取-生成”式长文本摘要(法研杯总结) - 科学空间|Scientific Spaces;官方源代码:bojone/SPACES: 端到端的长本文摘要模型(法研杯2020司法摘要赛道);热心网友写的PyTorch版复现(不完全复现):eryihaha/SPACES-Pytorch: 苏神SPACE pytorch版本复现

3.1.2 端到端(end2end)的

3.2 纯生成式方法

3.2.1 基础seq2seq模型

Transformers版,参考PyTorch官方教程:Language Modeling with nn.Transformer and TorchText — PyTorch Tutorials 1.11.0+cu102 documentation

其他参考资料:LCSTS: A Large Scale Chinese Short Text Summarization Dataset:seq2seq (RNN) 没有代码

3.2.2 Pointer-Generator模型

Get to the point: Summarization with pointer-generator networks.

4. 评估指标

本节内容参考了:[^1]

以下评估指标往往也用于翻译、QA等其他文本生成(NLG)任务。

常用术语: 模型生成的句子、预测结果——candidate 真实摘要、标签——reference、ground-truth

precision:candidate中匹配reference的内容占candidate比例 recall:candidate中匹配reference的内容占reference比例

示例:

Reference: I work on machine learning.

Candidate A: I work.

Candidate B: He works on machine learning.

在这个例子中,用unigram[^2]衡量匹配:A就比B的precision更高(A的匹配内容I work占candidate 100%,B的on machine learning占60%),但B的recall更高(60% VS 40%)。

4.1 人工评估指标

文本的流畅程度、对原文的忠实程度、对原文重要内容的包含程度、语句的简洁程度等

4.2 ROUGE (Recall Oriented Understudy for Gisting Evaluation)

出处:ROUGE: A Package for Automatic Evaluation of Summaries

感觉没有2004年之后的文本摘要论文不使用这个指标的,如果看到有的话我会专门来这里提一嘴的。

分类:ROUGE-N(常用其中的ROUGE-1和ROUGE-2), ROUGE-L,ROUGE-W,ROUGE-S(后两种不常用) 原版论文中ROUGE主要关注recall值,但事实上在用的时候可以用precision、recall和F值。

4.2.1 计算指标

每种rouge值原本都是计算recall的,和前面第4节开头介绍的precision和recall值计算方法差不多,主要区别在于这个匹配文本的单位的选择:

ROUGE-N:基于n-grams,如ROUGE-1计算基于匹配unigrams的recall,以此类推。 ROUGE-L:基于longest common subsequence (LCS) ROUGE-W:基于weighted LCS ROUGE-S:基于skip-bigram co-occurence statistics(skip-bigram指两个共同出现的单词,不管中间隔了多远。要计算任何bigram的出现可能 Cn2C_n^2

以ROUGE-L为例,AA 是candidate,长度 mmBB 是reference,长度 nnP=\frac{LCS(A,B)}{m}$$$$R=\frac{LCS(A,B)}{n}$$$$F=\frac{(1+b^2)RP}{R+b^2P}

4.2.2 对rouge指标的更深入研究和改进

A Graph-theoretic Summary Evaluation for ROUGE

4.3 BLEU (Bilingual Evaluation Understudy)

更常用于翻译领域。 出处:Bleu: a Method for Automatic Evaluation of Machine Translation

precision用modified n-gram precision估计,recall用best match length估计。

Modified n-gram precision: n-gram precision是candidate中与reference匹配的n-grams占candidates的比例。但仅用这一指标会出现问题。 举例来说:

Reference: I work on machine learning.

Candidate 1: He works on machine learning.

Candidate 2: He works on on machine machine learning learning.

candidate 1的unigram precision有60%(3/5),candidate 2的有75%(6/8),但显然candidate 1比2更好。 为了解决这种问题,我们提出了“modified” n-gram precision,仅按照reference中匹配文本的出现次数来计算candidate中的出现次数。这样candidate中的onmachinelearning就各自只计算一次,candidate 2的unigram precision就变成了37.5%(3/8)。

对多个candidate的n-gram precision,求几何平均(因为precision随n呈几何增长,因此対数平均能更好地代表所有数值[^7]): Precision=exp(n=1Nwnlogpn), where wn=1/nPrecision=\exp(\sum_{n=1}^Nw_n\log p_n),\ \text{where} \ w_n=1/n

Best match length: recall的问题在于可能存在多个reference texts,故难以衡量candidate对整体reference的sensitivity[^8]。显然长的candidate会包含更多匹配文本,但我们也已经保证了candidate不会无限长,因为这样的precision可能很低。因此,我们可以从惩罚candidate的简洁性(文本短)入手来设计recall指标: 在modified n-gram precision中添加一个multiplicative factor BPBP

BP=\begin{cases}1,& \text{if}\ c >r\\ \exp \left( 1-\dfrac{r}{c}\right) ,&\text{otherwise}\end{cases} \end{aligned}$$ 其中 $c$ 是candidates总长度,$r$ 是reference有效长度(如reference长度平均值),随着candidate长度($c$)下降,$BP$ 也随之减少,起到了惩罚短句的作用。 ## 4.4 Perplexity ## 4.5 METEOR (Metric for Evaluation for Translation with Explicit Ordering) 出处:[METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments](https://www.cs.cmu.edu/~alavie/METEOR/pdf/Banerjee-Lavie-2005-METEOR.pdf) 也是常用于翻译领域。 这个指标声称是跟人工评估指标关联性更高。 BLEU的问题在于 $BP$ 值所用的长度是平均值,因此单句得分不清晰。而METEOR调整了precision和recall的计算方式,用基于mapping unigrams的weighted F-score和penalty function for incorrect word order来代替。 **Weighted F-score:** 首先,我们要找到candidate和reference间最大的可以形成对齐(alignment)的映射(mappings)子集(subset)。在经过Porter stemming[^3]、用了WordNet同义词后,假设找到的对齐数是 $m$,则precision就是 $m/c$($c$ 是candidate长度)、recall是 $m/r$($r$ 是reference长度),F就是 $F=\frac{PR}{\alpha P+(1-\alpha)R}$ **Penalty function:** 考虑candidate中的单词顺序: $$Penalty=\gamma(\frac{c}{m})^\beta,\ \text{where}\ 0\leq\gamma\leq1$$ 其中 $c$ 是matching chunks数,$m$ 是matches总数。因此如果大多数matches是连续的,$c$ 就会小,penalty就会低。<font color='red'>这部分我的理解是:连续的matches组成一个chunk。但我不确定,可能我会去查阅更多资料。</font> 最终METEOR得分的计算方式为: $$(1-Penalty)F$$ ## 4.6 Bertscore 使用该指标的论文:[Rewards with Negative Examples for Reinforced Topic-Focused Abstractive Summarization](https://aclanthology.org/2021.newsum-1.4/) ## 4.7 其他指标 [Revisiting Automatic Evaluation of Extractive Summarization Task: Can We Do Better than ROUGE?](https://aclanthology.org/2022.findings-acl.122/) [Benchmarking Answer Verification Methods for Question Answering-Based Summarization Evaluation Metrics](https://arxiv.org/abs/2204.10206) SARI [InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation](https://arxiv.org/abs/2112.01589) SPICE [Play the Shannon Game With Language Models: A Human-Free Approach to Summary Evaluation](https://arxiv.org/abs/2103.10918) Reference-free Summarization Evaluation via Semantic Correlation and Compression Ratio:还没有放出来 # 5. 其他正文及脚注中未注明的参考资料 1. [文本摘要(Text Summarization)这一经典NLP任务目前存在什么问题?有什么新的趋势? - 明明如月的回答 - 知乎](https://www.zhihu.com/question/357307901/answer/1361358224) 2. [BERT时代下的摘要提取长文总结 - 知乎](https://zhuanlan.zhihu.com/p/338154240) [^1]: [Metrics for NLG evaluation. Simple natural language processing… | by Desh Raj | Explorations in Language and Learning | Medium](https://medium.com/explorations-in-language-and-learning/metrics-for-nlg-evaluation-c89b6a781054) [^2]: 参考[unigram_百度百科](https://baike.baidu.com/item/unigram/8675709) 父词条:n-gram unigram: 1个word bigram: 2个word trigram : 3个word (注意此处的word是英文的概念,在中文中可能会根据需要指代字或词) 中文中如果用字作为基本单位,示例: 西安交通大学: unigram 形式为:西/安/交/通/大/学 bigram形式为: 西安/安交/交通/通大/大学 trigram形式为:西安交/安交通/交通大/通大学 [^3]: Porter stemming总之简单地来说就是一个英文的stemming方法。中文的怎么办我还没看。 具体内容我还没看。我简单找了一些相关资料以供参考: 官网:[Porter Stemming Algorithm](https://tartarus.org/martin/PorterStemmer/)(是个C语言程序) 介绍算法和Java代码(从C语言移植的)的博文:[波特词干算法 - 残阳似血的博客](http://qinxuye.me/article/porter-stemmer/) [^4]: [An Overview of Text Summarization Techniques](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7860024) [^5]: [Re5:读论文 TWAG: A Topic-guided Wikipedia Abstract Generator_诸神缄默不语的博客-CSDN博客](https://blog.csdn.net/PolarisRisingWar/article/details/123846410) [^7]: 其实我也没有看懂具体为什么就这样了。 [^8]: 这里为什么用sensitivity,我也很迷惑。