BERT之语言掩码模型(MLM)

22
0
0
2023-04-05

BERT之语言掩码模型(MLM)

BERT 作者认为,使用自左向右编码和自右向左编码的单向编码器拼接而成的双向编码器,在性能、参数规模和效率等方面,都不如直接使用深度双向编码器强大,这也是为什么 BERT 使用 Transformer Encoder 作为特征提取器,而不使用自左向右编码和自右向左编码的两个 Transformer Decoder作为特征提取器的原因。

由于无法使用标准语言模型的训练模式,BERT 借鉴完形填空任务和 CBOW 的思想,使用语言掩码模型(MLM )方法训练模型。

掩码语言模型是 BERT 预训练中的一个关键组成部分,它的灵感来自于 Cloze 任务,即在给定上下文的情况下预测被掩盖(masked)的单词。

工作原理

  1. 随机掩盖:在输入文本中,随机选择15%的词元(tokens),然后对这些词元进行掩盖。掩盖操作包括以下几种:

    • 替换为 [MASK] 标记(例如,将“我的猫很可爱”中的“猫”替换为[MASK])。

    • 保持原词不变(例如,保持“我的猫很可爱”中的“猫”不变)。

    • 替换为随机词(例如,将“我的猫很可爱”中的“猫”替换为“狗”或其他任意词)。

  2. 预测掩盖的词元:模型的任务是预测这些被掩盖的词元。具体来说,对于每个被掩盖的词元,模型需要从词汇表中预测最可能的词元。

  3. 损失函数:对于每个被掩盖的词元,模型的输出是词汇表上的概率分布,损失函数通常是交叉熵损失,计算的是模型预测的概率分布与真实词元的独热编码之间的差异。

优点

  • 双向上下文:MLM 任务使得模型能够同时考虑被掩盖词元左侧和右侧的上下文信息,从而学习到双向的上下文表示。

  • 减少偏差:由于随机掩盖和随机替换操作,模型不会偏向于那些经常出现的词元,从而增加了模型对未知词元的泛化能力。

MLM 方法也就是随机去掉句子中的部分 token(单词),然后模型来预测被去掉的 token 是什么。这样实际上已经不是传统的神经网络语言模型(类似于生成模型)了,而是单纯作为分类问题,根据这个时刻的 hidden state 来预测这个时刻的 token 应该是什么,而不是预测下一个时刻的词的概率分布了。

随机去掉的 token 被称作掩码词,在训练中,掩码词将以 15% 的概率被替换成 [MASK],也就是说随机 mask 语料中 15% 的 token,这个操作则称为掩码操作。注意:在CBOW 模型中,每个词都会被预测一遍。

但是这样设计 MLM 的训练方法会引入弊端:在模型微调训练阶段或模型推理(测试)阶段,输入的文本中将没有 [MASK],进而导致产生由训练和预测数据偏差导致的性能损失。

考虑到上述的弊端,BERT 并没有总用 [MASK] 替换掩码词,而是按照一定比例选取替换词。在选择 15% 的词作为掩码词后这些掩码词有三类替换选项:

  • 80% 练样本中:将选中的词用 [MASK] 来代替,例如:

“地球是[MASK]八大行星之一”
  • 10% 的训练样本中:选中的词不发生变化,该做法是为了缓解训练文本和预测文本的偏差带来的性能损失,例如:

“地球是太阳系八大行星之一”
  • 10% 的训练样本中:将选中的词用任意的词来进行代替,该做法是为了让 BERT 学会根据上下文信息自动纠错,例如:

“地球是苹果八大行星之一”

作者在论文中提到这样做的好处是,编码器不知道哪些词需要预测的,哪些词是错误的,因此被迫需要学习每一个 token 的表示向量,另外作者也表示双向编码器比单项编码器训练要慢,进而导致BERT 的训练效率低了很多,但是实验也证明 MLM 训练方法可以让 BERT 获得超出同期所有预训练语言模型的语义理解能力,牺牲训练效率是值得的。