【预训练语言模型】SpanBERT: Improving Pre-training by Representing...

【预训练语言模型】SpanBERT: Improving Pre-training by Representing and Predicting Spans (2020ACL)

  陈丹琦团队的一篇改进BERT预训练任务的工作,扩展了BERT预训练语言模型:

  • 不像BERT只MASK单独的一个token,而是随机MASK掉连续的序列( contiguous random span);
  • 训练span boundary representation预测mask掉的整个区间内容;

1、动机:

  • 许多NLP任务涉及到包含多个span之间关系的推理,传统的BERT则无法处理这类问题;
  • 预测一个区间的多个token更加困难;

2、方法:

  • 不同于BERT,我们使用不同的随机策略mask掉一个span;
  • 添加辅助任务SPO,根据span boundary的两个token表征信息来预测span;
  • 随机采样一段文本,而不是两个,删掉了BERT中的Next Sentence Predicition任务

3、span masking

  给定一个文本序列X,从中挑选一些token组成Y集合,并迭代地进行采样。

  • 在每一次采样过程中,先基于几何分布采样span的长度(最短为1,最长为10,p=0.2),平均采样的区间长度约为3.8:
    在这里插入图片描述

  • 然后再基于均匀分布采样span的start位置。由于BERT采用的是word piece,因此需要保证采样的起始点必须是某个单词的起始点。

  • 传统的BERT模型中,对一个句子随机mask 15%的token,这些mask掉的token中,有80%被替换为[MASK],10%为随机替换一个token,10%保持不变。spanBERT中则是对span完成的,也就是说整个span的所有token都会满足“80%被替换为[MASK],10%为随机替换一个token,10%保持不变”的设置。

4、span boundary objective

  任务目标:根据span的前一个与后一个位置的token来预测span的所有token。假设Transformer的每个token输出记作 x 1 , . . . , x n \mathbf{x}_1, ..., \mathbf{x}_n x1,...,xn,给定一个mask span ( x s , . . . , x e ) (x_s, ..., x_e) (xs,...,xe),对mask span内的每一个token的表示,取决于 x s − 1 , x e + 1 \mathbf{x}_{s-1}, \mathbf{x}_{e+1} xs1xe+1、以及位置表征 P i − s + 1 \mathbf{P}_{i - s + 1} Pis+1(相对于 x s − 1 \mathbf{x}_{s-1} xs1的距离):
在这里插入图片描述

其中 f f f 函数为两层前馈网络,并添加Layer normalization:
在这里插入图片描述

最终获得的 y i \mathbf{y}_i yi 表示maxk span中的第 i i i 个[MASK] token,使用交叉熵损失函数作为目标函数,预测该[MASK]对应的词

5、single-sequence training

  作者认为添加next sentence prediction效果不好,因此摈弃这一个任务。

  关于对抽取式问答的下有任务,spanBERT依然在模型的输出部分,添加两个独立的分类器,并分别预测start和end的位置。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部