博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记 | Text Summarization with Pretrained Encoders
阅读量:4289 次
发布时间:2019-05-27

本文共 2741 字,大约阅读时间需要 9 分钟。

该论文来自EMNLP2019,

在这里插入图片描述

文章目录

概述

本文提出了基于BERT的文档级编码器,该编码器能够表达文档的语义,并获得文档的句子表示。并分别提出了抽取式和生成式的摘要模型。

抽取式模型:
在该编码器的基础上,叠加几个句子间的transformer层
生成式模型:
本文提出了一种新的微调schedule,采用不同的optimizer应用于encoder和decoder,以减少两者间的不匹配(encoder是预训练的,而decoder没有)
通过两阶段微调策略,进一步提高生成质量。

Introduction

我们的抽取式模型建立在该encoder的基础上,叠加几个句子间的Transformer层来捕获句子的文档级特征。抽取式模型采用encoder-decoder架构,将预训练的BERT encoder和随机初始化的Transformer decoder结合。

新的schedule,把encoder和decoder的optimizer分开,来适应一个预训练,一个随机初始化。
抽取式和生成式相结合更好,提出一个两阶段的方法,encoder两次微调,先抽取,再生成。

BERT

在这里插入图片描述

上图左侧是一般的BERT结构。
三种Embedding:

  • token embedding:表示每个token的含义
  • segmentation embedding:区分不同句子
  • position embedding:表示token在序列中的位置

三者相加得到输入向量 x i x_i xi,输入到一个双向多层的Transformer。

在这里插入图片描述
其中 h 0 = x h^0= x h0=x是输入向量;LN是层归一化操作;MHAtt是多头注意力操作;上标l表示堆叠的层数,FFN就是前馈神经网络。在顶层,BERT将为每个具有丰富上下文信息的token生成一个输出向量 t i t_i ti

抽取式摘要

抽取式摘要,认为摘要是文档中最重要的句子。

基础结构包含三部分:

  1. sentence encoder,由词嵌入获得句嵌入;
  2. document encoder,由句嵌入获得文档嵌入;
  3. decoder,综合文档嵌入的全局信息,根据句嵌入,判断哪些句子是摘要的一部分。

生成式摘要

生成式摘要一般被看作seq2seq问题。

主要有三种基础结构:

  1. Sentence encoder + decoder,只利用句子中词的上下文信息

  2. Sentence encoder + document encoder + decoder,同时利用句的上下文信息和词的上下文信息

  3. Sentence encoder + (document encoder) + extractor + abstractor 即先进行抽取式的任务,再由抽取的句子生成摘要

评价指标

ROUGE-N

在这里插入图片描述
分母是n-gram的个数,分子是参考摘要和自动摘要共有的n-gram的个数,n常取1,2。ROUGE-N对应的是召回率。
ROUGE-L
L即是LCS(longest common subsequence,最长公共子序列),因为Rouge-L使用了最长公共子序列。Rouge-L计算方式如下:
在这里插入图片描述

BERT 编码器

BERT输出向量基于字符而不是句子,而在抽取式摘要中,大多数模型使用句子级表示。虽然segmentation embedding在BERT中区分了不同的句子,但它们只适用于句子对输入,而在摘要中我们必须对多句输入进行编码和操作。

于是,前边那张图的右侧即本文提出的BERTSUM。

在每个句子开头插入[CLS],句子交替使用不同的segment embedding。

这种方式,文档表示是分层学习的,其中较低的Transformer层表示相邻的句子,而较高的层,结合自我注意,表示多句的语篇。

抽取式模型

用BERTSUM,顶层输出的第i个[CLS]对应的 t i t_i ti作为第i个句子的表示,然后堆叠几个句子间的Transformer,

在这里插入图片描述
其中 h 0 h^0 h0 = PosEmb (T),T即BERTSUM的句向量输出,函数PosEmb添加正弦位置编码,表示句间位置。最后的输出层采用sigmoid,输出句子是否属于摘要。
在这里插入图片描述
其中 h i L h_i^L hiL是来自transformer顶层(L层)的句i的向量。在实验中,分别使L = 1、2、3,发现L = 2的性能最好,将此模型命名为BERTSUMEXT。

取最高分的三个句子作为摘要

生成式模型

生成式模型使用encoder-decoder框架,其中encoder使用BERTSUM,decoder使用随机初始化的6层Transformer。

由于encoder使预训练的,而decoder是随机初始化的,所以存在不匹配问题:如encoder过拟合而decoder欠拟合,或者反过来。为解决该问题,在encoder和decoder上使用不同的优化器

在这里插入图片描述

此外该论文中还采用了两阶段微调策略,先在抽取式任务上微调编码器,再在生成式任务上微调。

默认的生成式模型为BERTSUMABS,两阶段微调的为BERTSUMEXTABS。

并且decoder使用beam search确定最终的生成序列,decoder不使用copy机制和coverage机制,因为本文主要目的是创建最低需求的模型,由于subword tokenizer,很少有OOV问题,三元组阻塞减少了重复生成。

实验及分析

使用三个数据集对模型进行评估,CNN/DM,NYT,XSUM,下图为三个数据集的数据集的分布,从上到下,越来越抽象。

在这里插入图片描述
CNN/DM上的实验结果如下:
在这里插入图片描述

NYT上的实验结果如下:

在这里插入图片描述
XSUM上的实验结果如下:
在这里插入图片描述
抽取句子的位置
在这里插入图片描述
可见Oracle平滑,TransformerEXT集中在文档第一句。BERTSUMEXT类似前者,可见通过预训练的encoder,模型较少地依赖于浅层位置特征,并学习了更深层次的文档表示。

新的n-gram

统计出现在摘要中而没有出现在源文本中的新n-gram的比例,结果如下图:
在这里插入图片描述
与参照相比,CNN/DM的生成摘要中新的n-gram的比例要低得多,但在更抽象的XSum中,这个差距要小得多。
在CNN/DM上,BERTEXTABS比BERTABS产生的新n-gram更少,前者更倾向于从源文档中选择句子,因为它最初是作为一个提取模型训练的。

总结

在本文中,展示了预处理BERT可以有效地应用于文本摘要。作者介绍了一种新的文档级编码器,并提出了将其用于抽取式和生成摘要的一般框架。

在三个数据集上的进行了实验,结果表明,本文提出的模型在自动和人工评估下都取得了最先进的结果。

转载地址:http://ghmgi.baihongyu.com/

你可能感兴趣的文章
面试官:mysql表设计要注意什么?
查看>>
一些精致小众网站收集录
查看>>
计算机科学探秘之linux发展史
查看>>
程序员每天早上早来10分钟的好处
查看>>
互联网30年,泡沫如梦,一个个泡沫和风口过后,会是什么样的结局
查看>>
升级centos 6.8 服务器的gcc
查看>>
网络案例分析之999皮炎平出鹤顶红色号的口红
查看>>
API网关在微服务架构中的应用,这一篇就够了
查看>>
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
查看>>
架构成长之路:Spring Cloud微服务如何实现熔断降级?
查看>>
JVM发生内存溢出的8种原因、及解决办法
查看>>
SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
查看>>
高性能负载均衡:nginx搭建tomcat集群
查看>>
Spring切面中的正则表达式
查看>>
一直再说高并发,多少QPS才算高并发?
查看>>
Git恢复之前版本的两种方法reset、revert(图文详解)
查看>>
Maven打包的三种方式
查看>>
电商场景:并发扣库存,怎么保证不超卖又不影响并发性能
查看>>
分布式事务处理方式总结
查看>>
延迟队列有哪些实现方案?说说你的看法
查看>>