RoBERTa 中的下一句预测

数据挖掘 nlp 伯特 变压器
2022-02-27 09:22:10

我正试图围绕下一句预测在 RoBERTa 中的工作方式。根据他们的论文,在第 4.2 节中,我了解到在原始 BERT 中,他们使用了一对可能包含多个句子的文本段,任务是预测第二段是否是第一个段的直接后继。RoBERTa 的作者继续检查另外 3 种类型的预测——第一种与 BERT 基本相同,只是使用两个句段插入的两个句子,你仍然预测第二个句子是否是第一个句子的直接后继。但我无法理解其他 2 的目标是什么。我将在下面引用他们的解释:

• FULL-SENTENCES:每个输入都包含从一个或多个文档中连续采样的完整句子,因此总长度最多为 512 个标记。输入可能跨越文档边界。当我们到达一个文档的末尾时,我们开始从下一个文档中采样句子,并在文档之间添加一个额外的分隔符。我们去除了 NSP 损失。

• DOC-SENTENCES:输入的构造类似于FULL-SENTENCES,除了它们不能跨越文档边界。在文档末尾附近采样的输入可能少于 512 个标记,因此我们在这些情况下动态增加批量大小以实现与 FULL-SENTENCES 相似的总标记数量。我们去除了 NSP 损失。

因此,根据我在这两种训练策略中的理解,他们已经从相邻文档中采样了连续的句子,或者至少是连续的句子,我看不出他们试图预测什么——不可能是它们是否是连续的文本块,因为在我看来,他们的所有训练示例似乎都已经连续采样,因此使这样的任务变得多余。如果有人对这个问题有所了解,那将有很大的帮助,在此先感谢!

4个回答

与 BERT 类似,它们对否定(即不相邻)示例进行采样,并训练一个分类器来判断句子是否连续。

BERT 使用 masked LM 和 NSP(Next Sentence Prediction)任务来训练他们的模型。因此,RoBERTa 论文中第 4.2 节的目标之一是评估添加 NSP 任务的有效性,并将其与仅使用掩码 LM 训练进行比较。

为了完整起见,我将简要介绍本节中的所有评估。

首先,他们比较了 SEGMENT-PAIR+NSP 和 SENTENCE-PAIR+NSP 两种模型都使用了 masked LM + NSP 训练,他们发现

使用单个句子会损害下游任务的性能

即,SEGMENT-PAIR+NSP 比 SENTENCE-PAIR+NSP 表现更好。

其次,他们移除了 NSP 任务(因此他们采用连续的句子)并仅使用 masked LM 训练模型。他们通过允许采样的输入句子在一种情况下跨越文档边界而在另一种情况下不跨越文档边界来添加小的变化。他们报告说

去除 NSP 损失匹配或略微提高下游任务性能

通过将 DOC-SENTENCES 和 FULL-SENTENCES 与 SEGMENT-PAIR+NSP 和 SENTENCE-PAIR+NSP 进行比较。然后

单个文档(DOC-SENTENCES)的性能略好于从多个文档中打包序列(FULL-SENTENCES)

NSP 损失已用于改善模型的句间理解,这在 SQUAD(问答)或 MNLI(句子蕴含)等句间理解数据集上尤为明显。更多细节可以参考原始 BERT 论文的消融研究。

通过消除 NSP 损失并用 DOC-SENTENCES 或 FULL-SENTENCES 策略替换它,Roberta 的作者表明,单独使用 MLM *(没有 NSP)就足以,甚至更好地使模型捕捉到句子间的理解。同样,您可以参考原始 Roberta 论文的消融研究以了解更多详细信息。

*准确地说,Roberta 正在为 BERT 执行动态 MLM 与静态 MLM。

以下是 RoBERTa 为 BERT 所做的四项修改:

  1. 用更大的批次和更多的数据训练模型的时间更长
  2. 删除下一句预测目标
  3. 训练更长的序列
  4. 动态改变应用于训练数据的掩码模式。作者还收集了一个与其他私人使用的数据集相当大小的大型新数据集(),以更好地控制训练集大小的影响

因为 NSP 在单个任务中混合了两个任务:1)主题预测和 2)连贯性预测。RoBERTa 在更长的序列上训练模型,并通过动态改变掩码模式,使掩码语言建模更加困难,因此第一个变得多余。掩码语言建模任务与主题预测任务重叠。

FULL-SENTENCES和DOC-SENTENCES的区别在于前者包含了掩蔽语言建模中的主题预测任务,而另一种则没有,并且实验表明(在掩蔽语言建模中)主题预测也是不必要的。