Fine-tune BERT for Extractive Summarization: BERT和文本摘要

语言: CN / TW / HK

个人公众号:阿黎投喂舍

Fine-tune BERT for Extractive Summarization: BERT和文本摘要

论文链接:https://arxiv.org/pdf/1903.10318v2.pdf

源码:https://github.com/nlpyang/BertSum

BERT论文系列导读

What does BERT learn: 探究BERT为什么这么强

TinyBert:超细节应用模型蒸馏,有关蒸馏的疑问看他就够了

量化技术及Albert动态量化

DistillBert: Bert太贵?我便宜又好用

[论文分享] | RoBERTa:喂XLNet在吗,出来挨打了

XLNet论文导读-超越Bert的后浪

导读

文本摘要主要分为抽取式文本摘要和生成式文本摘要,抽取式文本摘要因为发展的时间比较长,因此在工业界应用的范围比较广。比较常用的抽取式文本摘要的算法就是Textrank,但是呢,本文要介绍一篇和BERT相关的抽取式摘要的模型。当然作为对比,本文也介绍了另一篇文章,结合了Textrank和BERT的模型,希望对大家有所启发。

Bert With Summarization

首先介绍一下模型的结构,原始的BERT的输出是针对Token而不是句子的,而且原始BERT的输入只有两个句子,并不适合文本摘要。

因此首先作者对BERT的结构做了一些更改,让他变得更适合文本摘要这个任务,作者的更改可以在下图体现到:

  1. 作者使用[CLS]和[SEP]区分每一个句子,在原始的BERT中[CLS]表示一整个句子或者句子对的内容,在这里作者修改了模型结构,使用[CLS]来区分每一个句子
  2. 作者对每一个句子增加了segment embedding,segment embedding由句子的奇偶顺序决定,例如对于句子[sen1, sen2, sen3, sen4, sen5]他们的segment embedding就是[EA, EB, EA, EB, EA]。

Summarization layer

得到了句子的向量之后,接下来要做的工作就是判断这句话是否要组成文本的摘要。这就是一个二分类的工作了,作者尝试了三种summarization layer,分别是

  1. 传统的全连接层

  2. Inter-sentence Transformer

    结构如下图所示,初始位置的句子向量为position embedding,之后每一个位置的输入都是由上一个位置的输入经过多头Attention层,layer norm和全连接层之后的输出结果。最后的输出依然是一个二分类。

  1. RNN层

    这里是在BERT之后接了LSTM层,LSTM是非常适合NLP任务的一种结构,当然最后输出也是一个二分类的结果。

实验结果

作者在CNN Daily和NYT两个公开数据集上进行了实验,实验效果如下图所示,其中

  • Lead是抽取文本的前三句话作为摘要
  • REFRESH是优化了ROUGE矩阵的抽取式文本摘要系统
  • NEUSUM是抽取式文本摘要的state-of-art的效果
  • PGN是Pointer Generator,生成式文本摘要
  • DCA是当前生成式文本摘要的state-of-art的效果

结论:抽取式文本摘要的效果优于生成式(甚至PGN的效果不如规则?)这一点我保持怀疑。BERT+Transformer的效果超过了目前抽取式模型的SOTA效果。

缺点:

  1. RNN是一层的和多层Transformer对比不太合理
  2. 实验结果显示生成式模型的效果还差于规则的结果,这点保持怀疑
  3. 没有解释对于过长的文本的是怎么处理的

推荐资料

这里给大家推荐另一篇论文——Sentence Centrality Revisited for Unsupervised Summarization。本文结合了Bert和Textrank算法,使用微调Bert作为Sentence encoder,来计算文本之间的相似度。最后的效果也是超过了SOAT的效果。

  • 论文链接:https://arxiv.org/pdf/1906.03508.pdf
  • 源码:https://github.com/mswellhao/PacSum

下面是提问和思考环节

  1. 两篇文章对BERT的使用有什么区别
  2. PACSUM对BERT做了怎么样的微调