Press "Enter" to skip to content

大型语言模型,StructBERT——将语言结构融入预训练

通过融入更好的学习目标使模型更加智能

大型语言模型,StructBERT——将语言结构融入预训练 四海 第1张

介绍

在首次亮相之后,BERT在各种自然语言处理任务中展现了惊人的结果,包括情感分析、文本相似性、问答等。自那以后,研究人员一直试图通过修改其架构、增加训练数据、增加词汇表大小或改变隐藏层大小等方式使BERT更加高效。

大型语言模型:BERT – 双向编码器表示来自Transformer

了解BERT如何构建最先进的嵌入

towardsdatascience.com

尽管还出现了其他功能强大的基于BERT的模型,如RoBERTa,但研究人员找到了另一种提高BERT性能的有效方法,本文将对此进行讨论。这导致了新模型StructBERT的开发,该模型在顶级基准中自信地超越了BERT。

StructBERT的思想相对简单,重点是略微修改BERT的预训练目标。

在本文中,我们将介绍StructBERT论文的主要细节,并了解其原始修改的目标。

预训练

在很大程度上,StructBERT的架构原则与BERT相同。然而,StructBERT提出了两个新的预训练目标,以扩展BERT的语言知识。该模型在这个目标上与掩码语言建模一起进行训练。让我们来看看下面这两个目标。

1. 词句目标

实验证明,掩码语言建模(Masked Language Modeling,MSM)任务在BERT中起着至关重要的作用,帮助它获得广泛的语言知识。在预训练之后,BERT可以以高精度正确猜测掩码词。然而,它不能正确重构单词被打乱顺序的句子。为了实现这个目标,StructBERT的开发者通过部分打乱输入标记来修改了掩码语言建模目标。

与原始BERT一样,将输入序列进行分词、掩码,然后映射到令牌、位置和段落嵌入中。所有这些嵌入被求和以产生组合嵌入,然后提供给BERT。

在掩码过程中,随机选择15%的标记进行掩码,并用于语言建模,就像BERT一样。但在掩码后,StructBERT随机选择5%的K个连续未掩码标记,并在每个子序列内对它们进行洗牌。默认情况下,StructBERT在三元组(K = 3)上操作。

三元组洗牌示例

计算最后一个隐藏层时,利用掩码和洗牌标记的输出嵌入被用来预测原始标记,同时考虑它们的初始位置。

最终,词句目标与掩码语言建模目标以相等的权重组合。

2. 句子结构目标

下一个句子预测是BERT的另一个预训练任务,相对简单。掌握该任务并不会显著提高BERT在大多数下游任务上的性能。这就是为什么StructBERT研究人员通过让BERT预测句子的顺序来增加这个目标的难度。

通过从一篇文档中提取一对连续的句子S₁和S₂,StructBERT将它们用于构建一个训练示例,有三种可能的方式。这三种方式的发生概率均为1/3:

  • S₂跟在S₁后(标记为1);
  • S₁跟在S₂后(标记为2);
  • 来自随机文档的句子S₃被选中,并在S₁后紧跟(标记为0)。

这三个过程中的每一个都会生成一对有序的句子,然后将它们连接起来。在第一个句子之前添加令牌[CLS],使用[SEP]令牌标记每个句子的结尾。BERT将此序列作为输入,并在最后一个隐藏层上输出一组嵌入。

在StructBERT中,最初用于BERT下一句预测任务的[CLS]嵌入输出,现在用于正确识别与输入序列构建方式对应的三个可能标签之一。

训练样本的组成

最终目标

最终目标由单词和句子结构目标的线性组合构成。

BERT预训练包括单词和句子结构目标

StructBERT设置

BERT和StructBERT的主要预训练细节都是相同的:

  • StructBERT使用与BERT相同的预训练语料库:英文维基百科(2500M字)和BookCorpus(800M字)。标记化采用WordPiece标记器。
  • 优化器:Adam(学习率l = 1e-4,权重衰减L₂ = 0.01,β₁ = 0.9,β₂ = 0.999)。
  • 学习率预热在总步数的前10%内进行,然后线性减小。
  • 在所有层上使用Dropout(α = 0.1)层。
  • 激活函数:GELU。
  • 预训练过程运行40个周期。

StructBERT版本

与原始BERT一样,StructBERT有基础版本和大型版本。所有主要设置,如层数、注意力头数、隐藏大小和参数数量,与BERT的基础版本和大型版本完全对应。

StructBERT基础版与StructBERT大型版的比较

结论

通过引入一对新的训练目标,StructBERT在NLP领域达到了新的极限,并在各种下游任务中持续优于BERT。实验证明两个目标在StructBERT设置中发挥了不可或缺的作用。单词结构目标主要提升了模型在单句问题上的性能,使StructBERT能够重建词序,而句子结构目标则提高了理解句间关系的能力,特别对于句对任务而言尤为重要。

资源

除非另有注明,所有图片均为作者提供

Leave a Reply

Your email address will not be published. Required fields are marked *