栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

spanBert 跟ernie类似又不是那么类似的span范围掩码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spanBert 跟ernie类似又不是那么类似的span范围掩码

这篇论文的主要改进有三:

  1. 提出了更好的 Span Mask 方案,也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好;
  2. 通过加入 Span Boundary Objective (SBO) 训练目标,增强了 BERT 的性能,特别在一些与 Span 相关的任务,如抽取式问答;
  3. 用实验获得了和 XLNet 类似的结果,发现不加入 Next Sentence Prediction (NSP) 任务,直接用连续一长句训练效果更好。

首先什么是 Span Masking,和一般 BERT 训练有何不同。

根据几何分布,先随机选择一段(span)的长度,之后再根据均匀分布随机选择这一段的起始位置,最后按照长度遮盖。文中使用几何分布取 p=0.2,最大长度只能是 10,利用此方案获得平均采样长度分布。通过采样,平均被遮盖长度是 3.8 个词的长度

Span Boundary Objective 是该论文加入的新训练目标,希望被遮盖 Span 边界的词向量,能学习到 Span 的内容。或许作者想通过这个目标,让模型在一些需要 Span 的下游任务取得更好表现,结果表明也正如此。

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

详细做法是将词向量和位置向量拼接起来,过两层全连接层,很简单:

最后预测 Span 中原词时获得一个新损失,就是 SBO 目标的损失,之后将这个损失和 BERT 的 Mased Language Model (MLM)的损失加起来,一起用于训练模型。

SpanBERT 还有一个和原始 BERT 训练很不同的地方,它没用 Next Sentence Prediction (NSP) 任务,而是直接用 Single-Sequence Training,也就是根本不加入 NSP 任务来判断是否两句是上下句,直接用一句来训练。

对于为什么 NSP 没有用,这里,SpanBERT 作者们给出了下面两个解释:

  1. 相比起两句拼接,一句长句,模型可以获得更长上下文(类似 XLNet 的一部分效果);
  2. 在 NSP 的负例情况下,基于另一个文档的句子来预测词,会给 MLM 任务带来很大噪音。

于是 SpanBERT 就没采用 NSP 任务,直接一句长句,然后 MLM 加上 SBO 任务来进行预训练。

  • SpanBERT 普遍强于 BERT;
  • SpanBERT 尤其在抽取式问答上表现好,这应该与它的预训练目标关系较大;
  • 舍弃掉 NSP 的一段长句训练普遍要比原始 BERT 两段拼接的方式要好。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号