解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》

解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》_第1张图片

原文链接:

https://arxiv.org/pdf/1907.10529.pdf

在本文中,作者提出了一个新的分词级别的预训练方法 SpanBERT ,其在现有任务中的表现优于 BERT ,并在问答、指代消解等分词选择任务中取得了较大的进展。对 BERT 模型进行了如下改进:

  1. 提出了更好的 Span Mask 方案,SpanBERT 不再对随机的单个 token 添加掩膜,而是对随机对邻接分词添加掩膜;
  2. 通过加入 Span Boundary Objective (SBO) 训练目标,通过使用分词边界的表示来预测被添加掩膜的分词的内容,不再依赖分词内单个 token 的表示,增强了 BERT 的性能,特别在一些与 Span 相关的任务,如抽取式问答;
  3. 用实验获得了和 XLNet 类似的结果,发现不加入 Next Sentence Prediction (NSP) 任务直接用连续一长句训练效果更好。

图1展示了模型的原理。

解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》_第2张图片

分词掩膜

对于每一个单词序列 X = (x1, ..., xn),作者通过迭代地采样文本的分词选择单词,直到达到掩膜要求的大小(例如 X 的 15%),并形成 X 的子集 Y。在每次迭代中,作者首先从几何分布 l ~ Geo(p) 中采样得到分词的长度,该几何分布是偏态分布,偏向于较短的分词。之后,作者随机(均匀地)选择分词的起点。

根据几何分布,先随机选择一段(span)的长度,之后再根据均匀分布随机选择这一段的起始位置,最后按照长度遮盖。作者设定几何分布取 p=0.2,并裁剪最大长度只能是 10(不应当是长度 10 以上修剪,而应当为丢弃),利用此方案获得平均采样长度分布。因此分词的平均长度为 3.8 。作者还测量了词语(word)中的分词程度,使得添加掩膜的分词更长。图2展示了分词掩膜长度的分布情况。

解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》_第3张图片

和在 BERT 中一样,作者将 Y 的规模设定为 X 的15%,其中 80% 使用 [MASK] 进行替换,10% 使用随机单词替换,10%保持不变。与之不同的是,作者是在分词级别进行的这一替换,而非将每个单词单独替换。

分词边界目标(SBO)

分词选择模型一般使用其边界词创建一个固定长度的分词表示。为了于该模型相适应,作者希望结尾分词的表示的总和与中间分词的内容尽量相同。为此,作者引入了 SBO ,其仅使用观测到的边界词来预测带掩膜的分词的内容(如图1)。

具体做法是,在训练时取 Span 前后边界的两个词,值得指出,这两个词不在 Span 内,然后用这两个词向量加上 Span 中被遮盖掉词的位置向量,来预测原词

详细做法是将词向量和位置向量拼接起来,作者使用一个两层的前馈神经网络作为表示函数,该网络使用 GeLu 激活函数,并使用层正则化:

作者使用向量表示 yi 来预测 xi ,并和 MLM 一样使用交叉熵作为损失函数,就是 SBO 目标的损失,之后将这个损失和 BERT 的 Mased Language Model (MLM)的损失加起来,一起用于训练模型。

单序列训练

SpanBERT 还有一个和原始 BERT 训练很不同的地方,它没用 Next Sentence Prediction (NSP) 任务,而是直接用 Single-Sequence Training,也就是根本不加入 NSP 任务来判断是否两句是上下句,直接用一句来训练。作者推测其可能原因如下:(a)更长的语境对模型更有利,模型可以获得更长上下文(类似 XLNet 的一部分效果;(b)加入另一个文本的语境信息会给MLM 语言模型带来噪音。

因此,SpanBERT 就没采用 NSP 任务,仅采样一个单独的邻接片段,该片段长度最多为512个单词,其长度与 BERT 使用的两片段的最大长度总和相同,然后 MLM 加上 SBO 任务来进行预训练

其中主要训练细节是:

  1. 训练时用了 Dynamic Masking 而不是像 BERT 在预处理时做 Mask;
  2. 取消 BERT 中随机采样短句的策略
  3. 还有对 Adam 优化器中一些参数改变。

 

你可能感兴趣的:(解读SpanBERT:《Improving Pre-training by Representing and Predicting Spans》)