【预训练语言模型】StructBERT: Incorporation Language Structures into Pre-training For Deep Language Understanding

在预训练语言模型考虑文本的结构信息,并提出新的预训练任务,在word和sentence级别上融入结构信息。引入结构信息的语言模型,在GLUE、SQuAD和NLI等下游任务上达到了SOTA。

备注:GLUE榜单:https://gluebenchmark.com/leaderboard

简要信息:

序号 属性
1 模型名称 StructBERT
2 所属领域 自然语言处理
3 研究内容 预训练语言模型
4 核心内容 BERT改进
5 GitHub源码
6 论文PDF https://arxiv.org/pdf/1908.04577.pdf

一、动机

  • 如何学习word的表征,并应用于下游任务一直以来是研究的核心。现如今基于BERT的双向深度表征方法常采用Masked Language Modeling作为自监督训练的任务,但他们均忽略了文本内在的结构信息;
  • 句子的结构信息包括inner-sentence(word-level)和inter-sentence(sentence)。先前的方法没有捕捉到word和sentence之间的依赖关系。

二、方法

Input Representation

与BERT一样,输入single sentence或sentence-pair,并对所有word embedding、position embedding和segment embedding进行求和。文本中插入[CLS]和[SEP]等特殊的token。输入最大长度设置为512,采用WordPiece分词规则。

Transformer Encoder

与BERT一样,采用多层Transformer进行表征;

Training

除了标准的Masked Language Modeling任务外,额外提出两个任务:

(1)Word Structure Objective
给定一个sentence,对其中的若干token随机打乱顺序,目标让模型能够reconstruct原始的token顺序,即预测出每个token对应的真实位置。

在这里插入图片描述
训练目标为:
在这里插入图片描述
其中 K K K 为随机打乱顺序的token个数,本文采用类似滑动窗口方法,随机打乱长度为 K K K 的窗口内的token序列,实验中认为 K = 3 K=3 K=3 比较合适。

因此给定一个句子,首先随机选择15%的token替换为[MASK],然后再随机选择5%的窗口(长度均为3,且窗口内不包含[MASK])。对每个窗口内的3个token随机改变顺序。输出部分,除了对[MASK]部分预测其真实token的概率外,对打乱过的token也预测其对应的真实token。

(2)Sentence Structure Objective

在这里插入图片描述
给定一个sentence pair ( S 1 , S 2 ) (S_1, S_2) (S1,S2)。原始BERT中的Next Sentence Prediction只是一个二分类问题(预测句子 S 2 S_2 S2 是否是 S 1 S_1 S1 的下一句)。本部分则拓展为三分类,即预测 S 2 S_2 S2 是否是 S 1 S_1 S1 的下一句、预测 S 1 S_1 S1 是否是 S 2 S_2 S2 的上一句,以及两个句子是否无关。

如上图,首先从大规模语料中随机采样一个句子 S 1 S_1 S1, 对于该句子,如果其后一个序列作为 S 2 S_2 S2,则标签为1;如果其前一个序列作为 S 2 S_2 S2,则标签为2;如果从其他文档中随机采样一个句子作为 S 2 S_2 S2,则标签为0。三类采样比例均分。

Pre-training

语料选择Wikipedia、BookCurpus。提供了base和large两种模型:
在这里插入图片描述
base训练40epoch,耗时38小时;large训练了7天。

三、实验

GLUE

在这里插入图片描述
发现当StructBERT与RoBERTa进行集成时,效果最好。

StructBERTRoBERTa表示在RoBERTa训练好的模型基础上,引入本文提出的两个目标继续进行训练得到的模型。

Extractive QA

以SQuAD1.1为例的抽取式问答实验结果:
在这里插入图片描述

在验证集上达到93.0。(StructBERT并未在SQuAD榜单上提交)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐