BERT中的掩码语言模型(Masked Language Modeling)预训练任务详解
字数 1505 2025-11-14 07:13:05
BERT中的掩码语言模型(Masked Language Modeling)预训练任务详解
掩码语言模型(Masked Language Modeling, MLM)是BERT预训练的核心任务之一,其目标是通过对输入文本中的部分词汇进行随机掩码,并训练模型预测这些被掩码的词汇,从而学习上下文相关的词汇表示。以下将逐步解析MLM的原理、实现细节及其意义。
1. MLM的基本思想
在传统语言模型(如GPT)中,模型通过自左向右的生成任务学习词汇概率分布。但BERT采用双向上下文建模,即利用被掩码词汇的左右上下文信息进行预测。例如:
- 原句:
"The cat sat on the mat." - 掩码后:
"The [MASK] sat on the mat."
模型需要根据上下文"The"和"sat on the mat"预测[MASK]位置应为"cat"。
2. 掩码策略与实现步骤
步骤1:选择掩码位置
- 随机选择输入序列中15%的词汇作为待处理目标。
- 对这15%的词汇进一步按以下规则处理:
- 80%的概率替换为
[MASK]标记(如原句中的"cat"→"[MASK]")。 - 10%的概率替换为随机词汇(如
"cat"→"dog"),增加模型对错误输入的鲁棒性。 - 10%的概率保持不变(如
"cat"→"cat"),迫使模型学习平衡上下文与当前位置信息。
- 80%的概率替换为
步骤2:模型输入与编码
- 输入序列由三部分嵌入相加构成:
- 词嵌入(Token Embeddings):将词汇映射为向量。
- 位置嵌入(Position Embeddings):标记每个词的位置信息。
- 段嵌入(Segment Embeddings):区分句子对(如问答任务)。
- 输入序列首尾加入特殊标记
[CLS](分类)和[SEP](分隔句子)。
步骤3:双向Transformer编码
- 通过多层Transformer编码器处理输入序列,每个位置的输出向量包含来自所有位置的信息(双向注意力)。
- 被掩码位置的输出向量用于预测原始词汇。
步骤4:预测与损失计算
- 将掩码位置的输出向量通过一个全连接层+Softmax,映射到词汇表大小的概率分布。
- 使用交叉熵损失函数,比较预测概率与真实标签(原始词汇)的差异。
- 仅计算被掩码位置的损失,忽略未掩码位置的输出。
3. MLM的关键设计意义
-
双向上下文建模:
- 与单向语言模型不同,MLM允许模型同时利用左右上下文,更适用于理解类任务(如文本分类、语义匹配)。
-
缓解预训练-微调差异:
- 微调阶段不会出现
[MASK]标记,但通过随机替换策略(10%随机词、10%原词),模型学会在缺失明确掩码时仍依赖上下文推理。
- 微调阶段不会出现
-
高效学习:
- 仅15%的词汇参与损失计算,节省计算资源,同时保证模型学习到足够信息。
4. 实例演示
假设输入句子为"The cat sat on the mat.",掩码处理过程如下:
- 随机选择15%的词汇(假设选中
"cat")。 - 按80%概率将其替换为
[MASK]:"The [MASK] sat on the mat." - 模型编码后,对
[MASK]位置的输出向量进行预测,计算与"cat"的交叉熵损失。
5. 局限性
- 独立性假设:多个掩码位置同时预测时,模型假设掩码之间相互独立,忽略被掩码词之间的依赖关系(后续模型如XLNet通过排列语言模型改进)。
- 训练效率:仅15%的词汇产生损失,需更多训练步骤收敛。
通过MLM任务,BERT能够学习深层的语言表示,为下游任务提供强大的语义基础。