为什么 BERT 模型必须保持 10% MASK 代币不变?

Tha*_*iet 9 nlp deep-learning bert-language-model

我正在阅读 BERT 模型论文。在预训练 BERT 模型时的 Masked Language Model 任务中,论文称模型会随机选择 15% 的 token。在选择的标记(Ti)中,80%将被[MASK]标记替换,10%Ti不变,10%Ti被另一个单词替换。我认为模型只需要替换为[MASK]或其他单词就足够了。为什么模型必须随机选择一个单词并保持不变?预训练过程仅预测 [MASK] 标记还是预测整个随机标记的 15%?

N. *_*fer 8

这样做是因为他们想要预训练双向模型。大多数时候,网络会看到一个带有 [MASK] 标记的句子,并且它被训练来预测应该存在的单词。但是在预训练之后进行的微调中(微调是每个想要在任务中使用 BERT 的人进行的训练),没有 [MASK] 标记!(除非你专门做蒙面LM)。

预训练和训练之间的不匹配([MASK] 标记突然消失)被它们软化了,单词不被 [MASK] 替换的概率为 15%。任务仍然存在,网络必须预测令牌,但它实际上已经得到了答案作为输入。这可能看起来违反直觉,但与 [MASK] 训练相结合时是有意义的。

  • 我认为您正在回答“为什么不单独使用 MASK,而不使用 REPLACED 或 SAME-WORD?”的问题。问题似乎有点不同:“为什么不单独使用 MASK + REPLACED,而不使用 SAME-WORD?”。答案是,如果没有 SAME-WORD,模型将尝试避免使用标记 k 输入来生成标记 k 输出,因为每次要求预测时,标记都是错误的(MASK 或 REPLACED)。(模型无法完全忽略它;它的架构不允许这样做。但它会尝试。)这可能会适得其反,因为令牌 k 输入与令牌 k 输出非常相关。 (3认同)