个人公众号:阿黎投喂舍
Fine-tune BERT for Extractive Summarization: BERT和文本摘要
论文链接:http://arxiv.org/pdf/1903.10318v2.pdf
源码:http://github.com/nlpyang/BertSum
BERT论文系列导读
What does BERT learn: 探究BERT为什么这么强
TinyBert:超细节应用模型蒸馏,有关蒸馏的疑问看他就够了
[论文分享] | RoBERTa:喂XLNet在吗,出来挨打了
导读
文本摘要主要分为抽取式文本摘要和生成式文本摘要,抽取式文本摘要因为发展的时间比较长,因此在工业界应用的范围比较广。比较常用的抽取式文本摘要的算法就是Textrank,但是呢,本文要介绍一篇和BERT相关的抽取式摘要的模型。当然作为对比,本文也介绍了另一篇文章,结合了Textrank和BERT的模型,希望对大家有所启发。
Bert With Summarization
首先介绍一下模型的结构,原始的BERT的输出是针对Token而不是句子的,而且原始BERT的输入只有两个句子,并不适合文本摘要。
因此首先作者对BERT的结构做了一些更改,让他变得更适合文本摘要这个任务,作者的更改可以在下图体现到:
- 作者使用[CLS]和[SEP]区分每一个句子,在原始的BERT中[CLS]表示一整个句子或者句子对的内容,在这里作者修改了模型结构,使用[CLS]来区分每一个句子
- 作者对每一个句子增加了segment embedding,segment embedding由句子的奇偶顺序决定,例如对于句子[sen1, sen2, sen3, sen4, sen5]他们的segment embedding就是[EA, EB, EA, EB, EA]。
Summarization layer
得到了句子的向量之后,接下来要做的工作就是判断这句话是否要组成文本的摘要。这就是一个二分类的工作了,作者尝试了三种summarization layer,分别是
-
传统的全连接层
-
Inter-sentence Transformer
结构如下图所示,初始位置的句子向量为position embedding,之后每一个位置的输入都是由上一个位置的输入经过多头Attention层,layer norm和全连接层之后的输出结果。最后的输出依然是一个二分类。
-
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效果。
缺点:
- RNN是一层的和多层Transformer对比不太合理
- 实验结果显示生成式模型的效果还差于规则的结果,这点保持怀疑
- 没有解释对于过长的文本的是怎么处理的
推荐资料
这里给大家推荐另一篇论文——Sentence Centrality Revisited for Unsupervised Summarization。本文结合了Bert和Textrank算法,使用微调Bert作为Sentence encoder,来计算文本之间的相似度。最后的效果也是超过了SOAT的效果。
- 论文链接:http://arxiv.org/pdf/1906.03508.pdf
- 源码:http://github.com/mswellhao/PacSum
下面是提问和思考环节
- 两篇文章对BERT的使用有什么区别
- PACSUM对BERT做了怎么样的微调