诸神缄默不语-个人CSDN博文目录
本文是作者在学习文本摘要任务的过程中,根据学习资料总结逐步得到并整理为成文的相关内容。相关学习资料(包括论文、博文、视频等)都会以脚注等形式标明。有一些在一篇内会导致篇幅过长的内容会延伸到其他博文中撰写,但会在本文中提供超链接。
本文将主要列举里程碑式的重要文本摘要论文。
注意:除文首的表格外,本文所参考的论文,如本人已撰写对应的学习博文,则不直接引用原论文,而引用我撰写的博文。
本文会长期更新。
经典文本摘要论文:文本摘要经典论文
本节内容参考了以下论文的文献综述部分:1
序列生成(文本生成NLG)问题,一般使用seq2seq (S2S) 架构(encoder-decoder架构)。
sentence-fusion和重写(paraphrasing)
rephrasing and introducing new concepts/words(语出Friendly Topic Assistant for Transformer Based Abstractive Summarization)
基于结构的方法:
常见问题及针对该问题提出的解决方案:
典型的使用seq2seq+attention范式做生成式摘要的论文:
本节内容参考了以下论文的文献综述部分:12
缺点:在话题切换时缺乏连贯性。
常见范式:做句子的二分类任务(该句是否属于摘要),将预测为“属于”的句子拼起来,组成摘要。
identify and then concatenate the most representative sentences as a summary(语出Friendly Topic Assistant for Transformer Based Abstractive Summarization)
模型分成3层来做表示学习(单词→句子→文档),使用attention等机制提高表示能力。
使用深度学习方法做抽取式摘要的经典论文:
主题论文总结4:单文档摘要(以罗列为主)(持续更新ing…)
本节内容参考了以下论文的文献综述部分:2
看了几篇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.:用显式图表征建模文档间关系,结合预训练语言模型处理长文本。
重要模型:
LEAD-3算法
TextRank算法
重要模型:
Fine-tune BERT for Extractive Summarization
BertSum算法(官方源代码:nlpyang/BertSum: Code for paper Fine-tune BERT for Extractive Summarization;热心网友写的可以直接用中文数据作为输入的版本:425776024/bertsum-chinese: chinese bertsum ; bertsum 抽取式模型中文版本;给出案例数据、全代码注释;下载即可训练、预测、学习)
对范式的介绍:
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版本复现)
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) 没有代码
Get to the point: Summarization with pointer-generator networks.
本节内容参考了:3
以下评估指标往往也用于翻译、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.
在这个例子中,用unigram4衡量匹配:A就比B的precision更高(A的匹配内容I work
占candidate 100%,B的on machine learning
占60%),但B的recall更高(60% VS 40%)。
文本的流畅程度、对原文的忠实程度、对原文重要内容的包含程度、语句的简洁程度等
出处: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值。
每种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的出现可能 C n 2 C_n^2 Cn2)
以ROUGE-L为例, A A A 是candidate,长度 m m m; B B B 是reference,长度 n n n:
P = L C S ( A , B ) m P=\frac{LCS(A,B)}{m} P=mLCS(A,B) R = L C S ( A , B ) n R=\frac{LCS(A,B)}{n} R=nLCS(A,B) F = ( 1 + b 2 ) R P R + b 2 P F=\frac{(1+b^2)RP}{R+b^2P} F=R+b2P(1+b2)RP
A Graph-theoretic Summary Evaluation for ROUGE
更常用于翻译领域。
出处: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中的on
、machine
和learning
就各自只计算一次,candidate 2的unigram precision就变成了37.5%(3/8)。
对多个candidate的n-gram precision,求几何平均(因为precision随n呈几何增长,因此対数平均能更好地代表所有数值5):
P r e c i s i o n = exp ( ∑ n = 1 N w n log p n ) , where w n = 1 / n Precision=\exp(\sum_{n=1}^Nw_n\log p_n),\ \text{where} \ w_n=1/n Precision=exp(n=1∑Nwnlogpn), where wn=1/n
Best match length:
recall的问题在于可能存在多个reference texts,故难以衡量candidate对整体reference的sensitivity6。显然长的candidate会包含更多匹配文本,但我们也已经保证了candidate不会无限长,因为这样的precision可能很低。因此,我们可以从惩罚candidate的简洁性(文本短)入手来设计recall指标:
在modified n-gram precision中添加一个multiplicative factor B P BP BP:
B P = { 1 , if c > r exp ( 1 − r c ) , otherwise \begin{aligned} BP=\begin{cases}1,& \text{if}\ c >r\\ \exp \left( 1-\dfrac{r}{c}\right) ,&\text{otherwise}\end{cases} \end{aligned} BP={1,exp(1−cr),if c>rotherwise
其中 c c c 是candidates总长度, r r r 是reference有效长度(如reference长度平均值),随着candidate长度( c c c)下降, B P BP BP 也随之减少,起到了惩罚短句的作用。
出处:METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
也是常用于翻译领域。
这个指标声称是跟人工评估指标关联性更高。
BLEU的问题在于 B P BP BP 值所用的长度是平均值,因此单句得分不清晰。而METEOR调整了precision和recall的计算方式,用基于mapping unigrams的weighted F-score和penalty function for incorrect word order来代替。
Weighted F-score:
首先,我们要找到candidate和reference间最大的可以形成对齐(alignment)的映射(mappings)子集(subset)。在经过Porter stemming7、用了WordNet同义词后,假设找到的对齐数是 m m m,则precision就是 m / c m/c m/c( c c c 是candidate长度)、recall是 m / r m/r m/r( r r r 是reference长度),F就是 F = P R α P + ( 1 − α ) R F=\frac{PR}{\alpha P+(1-\alpha)R} F=αP+(1−α)RPR
Penalty function:
考虑candidate中的单词顺序:
P e n a l t y = γ ( c m ) β , where 0 ≤ γ ≤ 1 Penalty=\gamma(\frac{c}{m})^\beta,\ \text{where}\ 0\leq\gamma\leq1 Penalty=γ(mc)β, where 0≤γ≤1
其中 c c c 是matching chunks数, m m m 是matches总数。因此如果大多数matches是连续的, c c c 就会小,penalty就会低。这部分我的理解是:连续的matches组成一个chunk。但我不确定,可能我会去查阅更多资料。
最终METEOR得分的计算方式为:
( 1 − P e n a l t y ) F (1-Penalty)F (1−Penalty)F
使用该指标的论文:Rewards with Negative Examples for Reinforced Topic-Focused Abstractive Summarization
Revisiting Automatic Evaluation of Extractive Summarization Task: Can We Do Better than ROUGE?
Benchmarking Answer Verification Methods for Question Answering-Based Summarization Evaluation Metrics
SARI
InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
SPICE
Play the Shannon Game With Language Models: A Human-Free Approach to Summary Evaluation
Reference-free Summarization Evaluation via Semantic Correlation and Compression Ratio:还没有放出来
An Overview of Text Summarization Techniques ↩︎ ↩︎
Re5:读论文 TWAG: A Topic-guided Wikipedia Abstract Generator_诸神缄默不语的博客-CSDN博客 ↩︎ ↩︎
Metrics for NLG evaluation. Simple natural language processing… | by Desh Raj | Explorations in Language and Learning | Medium ↩︎
参考unigram_百度百科
父词条:n-gram
unigram: 1个word
bigram: 2个word
trigram : 3个word
(注意此处的word是英文的概念,在中文中可能会根据需要指代字或词)
中文中如果用字作为基本单位,示例:
西安交通大学:
unigram 形式为:西/安/交/通/大/学
bigram形式为: 西安/安交/交通/通大/大学
trigram形式为:西安交/安交通/交通大/通大学 ↩︎
其实我也没有看懂具体为什么就这样了。 ↩︎
这里为什么用sensitivity,我也很迷惑。 ↩︎
Porter stemming总之简单地来说就是一个英文的stemming方法。中文的怎么办我还没看。
具体内容我还没看。我简单找了一些相关资料以供参考:
官网:Porter Stemming Algorithm(是个C语言程序)
介绍算法和Java代码(从C语言移植的)的博文:波特词干算法 - 残阳似血的博客 ↩︎