什么是SpanBERT

SpanBERT 简介

SpanBERT 是在 BERT 基础上提出的预训练语言模型,专门针对 文本片段(span)表示与预测 进行优化。它由 Joshi 等人在 2019 年的论文《SpanBERT: Improving Pre‑training by Representing and Predicting Spans》中首次提出,并在随后开源代码仓库中提供实现。

1. 设计动机

  • BERT 的局限:BERT 在预训练阶段采用的是 随机单词掩码MLM‍,以及 下一句预测NSP‍。这种方式对 跨词片段(span)‍ 的整体语义捕捉不足,而很多下游任务(如阅读理解、指代消解关系抽取)本质上都是 span 选择 问题。
  • 目标:让模型在预训练时就学习 连续片段的整体语义 与 片段边界的表示,从而在需要定位或预测文本片段的任务上表现更好。

2. 关键技术创新

创新点 具体实现 作用
Span Masking 预训练时随机挑选 连续的词序列(长度服从几何分布)进行掩码,而不是单个 token。掩码比例约为 15%。 让模型在一次前向传播中看到完整的片段上下文,学习跨词的依赖关系。
Span Boundary Objective (SBO) 仅使用 片段左右边界的 token 表示(即第一个和最后一个 token)去 预测被掩码片段的全部内容,不依赖内部 token 表示。 强化边界 token 对整个片段的表达能力,使模型在定位 span 时更精准。
去除 NSP 任务 只使用单句进行预训练,不再使用下一句预测。 简化训练流程,避免 NSP 对 span 表示的干扰。

这些改动在多项实验中均带来了显著提升:在 SQuAD 1.1/2.0、CoNLL‑2012 指代消解、TACRED 关系抽取等任务上均超过原始 BERT。

3. 模型结构

  • 架构:保持 BERT 的 Transformer 编码器(12 层、768 维 base;24 层、1024 维 large),参数量分别约 110 M(base)和 340 M(large)。
  • 预训练数据:使用与 BERT 相同的 BooksCorpus 与 English Wikipedia,另外加入了大量未标注的网页文本,以提升对多样化 span 的学习能力。

4. 主要实验结果(部分)

任务 数据集 BERT (Base) SpanBERT (Base) 提升
阅读理解 SQuAD 1.1 (F1) 81.5 92.4
阅读理解 SQuAD 2.0 (F1) 78.5 83.6
指代消解 OntoNotes (F1) 73.9 77.4
关系抽取 TACRED (F1) 66.5 70.8

这些结果表明,SpanBERT 在 span 选择 类任务上相较于 BERT 有 5%~10% 的显著提升。

5. 使用方式

  1. 代码与模型:官方 GitHub 仓库提供了 pre‑trained checkpoints(base、large)以及 Fine‑tuning 示例,兼容 HuggingFace Transformers 接口,直接替换 BERT 即可使用。
  2. 下游任务:常见的 问答系统、指代消解、关系抽取、文本摘要 等都可以直接在 SpanBERT 上进行微调,获得更好的片段定位效果。
  3. 资源:除了模型本身,论文、实现细节以及实验脚本均已公开,便于研究者复现与二次开发。

6. 适用场景与优势

  • 阅读理解 / 问答:需要从长文本中抽取答案片段。
  • 指代消解:需要判断代词指向的具体文本跨度。
  • 关系抽取:实体之间的关系往往对应于句子中的连续片段。
  • 文本摘要:抽取式摘要本质上是选取关键 span。

相较于原始 BERT,SpanBERT 更擅长捕捉跨词语义、提升片段边界的表示能力,因此在上述任务上往往能取得更高的准确率鲁棒性


7. 小结

SpanBERT 通过 Span Masking 与 Span Boundary Objective 两大创新,对 BERT 的预训练目标进行针对性改进,使模型在需要 整体片段理解 的自然语言处理任务中表现更佳。它保持了 BERT 的 Transformer 架构,易于迁移与部署,已在多个公开基准上验证了其优势,成为 BERT 系列模型 中重要的变体之一。

来源:www.aiug.cn
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!