这是一个EMNLP2019的paper Text Summarization with Pretrained Encoders 的学习记录
左边的是原始的Bert模型,右边的是用于文本摘要的Bert模型。
主要的区别是在最上方输入文档时原始的Bert模型只用一个[CLS]标记,用于文本摘要的Bert模型每个句子开头都有一个[CLS]标记。在下面的Segment Embeddings中也对不同的句子进行区分,然后经过Transformer层得到的输出也不同,在每个句子的起始部分[SEP]变成了[CLS]标记,用来表示句子基本的含义。
Encoder就是如上图所示,Decoder使用了随机初始化的6层的Tranformer,然后使用两个不通的优化器进行分别优化。并且使用了两步训练的方式,首先训练一个提取式的模型,然后在此基础上再去训练生成式的模型,可以提高生成式模型的效果。
从结果来看,效果还是很好的。
由于我本地GPU环境太慢,因此使用colab进行。
首先看一下GPU
然后下载数据集到colab,这里我使用的是cnn/dailymail的数据集,我直接将数据集上传到了google dirve中然后挂载到colab,之后就可以直接从google drive复制数据集了。
解压之后放到同一个文件夹下,这里如何复制到文件夹下也是一个问题,最终通过google我选择了使用rsync的方式。
但是colab提够的GPU性能还是不够,训练需要的时间有点长。。。
需要700多个小时,大约需要30天,遂放弃。
虽然从头训练需要化很长时间,但是它还提供了预训练好的模型,所以可以测试一下它的效果。
文章还是使用的上一篇提到的新闻,结果如下:
the deal , first reported by the real deal , was for $ 150 million , according to a source familiar with the deal. the building sold fairly quickly after being publicly placed on the market only two months ago. the incentive to sell the building at such a huge loss was due to the soaring rent the owners pay to cooper union , a new york college , for the land under the building
但是看结果好像是提取式摘要,并不是生成式的。