BERT 怎样进行 mask 相比 CBOW 有什么区别?
- 标签:自然语言处理(NLP)、BERT、CBOW
🏛 业务架构师
BERT 的 MLM 与 CBOW 的掩码预测,形似而神不同,我从五个维度对比:
1. 模型架构:CBOW 是浅层的单层神经网络(词向量查表+平均),无深层上下文计算;BERT 是深层双向 Transformer——逐层抽象,理解能力差着数量级。
2. 上下文利用方式:CBOW 的"预测中心词"只把上下文词向量平均(词袋式,丢语序);BERT 的双向注意力让每个位置的表征动态融合全句信息("不算账"和"算账不行"能区分)。这是最本质的差别——静态平均 vs 动态交互。
3. 掩码策略:CBOW 固定用窗口内全部上下文词预测(无随机性);BERT 随机选 15% 位置掩码,且做了精细设计——其中 80% 换 [MASK]、10% 换随机词、10% 保留原词(缓解预训练与微调的 [MASK] 分布差异——下游任务没有 [MASK] 标记)。
4. 表征产出:CBOW 学到的是静态词向量(一词一向量);BERT 产出上下文相关的动态表征——"bank"在"河岸/银行"语境里向量不同。
5. 下游使用方式:CBOW 只能当特征用(查表取向量);BERT 是"预训练-微调"范式——整个模型在下游任务上继续训练,任务上限高得多。
业务视角的总结:从 CBOW 到 BERT 的跨越=从"统计共现的词向量"到"深度理解的语义模型"——检索、分类、匹配任务的精度台阶式上升,代价是推理成本上升三个数量级。这个"精度-成本"的权衡至今存在:高频低价值场景用 Word2Vec 级方案仍然合理,理解型核心任务用 BERT/LLM 系——技术选型从来不是越新越好,而是匹配业务的价值密度。
🏗 系统架构师
BERT 的 MLM 与 CBOW 的"猜词"形似神异,四点区别:
遮蔽策略 vs 固定窗口:CBOW 总是用连续窗口的全部上下文预测中心词(确定性窗口);BERT 的 MLM 随机选 15% 位置遮蔽,且被遮词只有 80% 换 [MASK]、10% 换随机词、10% 保留——这个 80/10/10 设计解决预训练-微调偏差:[MASK] 在下游任务不出现,纯 MASK 训练会让模型依赖该符号;随机替换与保留教会模型"任何位置都可能是错的",学到鲁棒的上下文表示;
双向深度交互 vs 浅层投影:BERT 是 12+ 层 Transformer,每个被遮位置与全句深度交互(多层注意力逐级聚合)——表示是"计算"出来的;CBOW 是一层线性投影求和——表示是"平均"出来的,能力差代际;
子词 vs 词级:BERT 的 WordPiece 让"predict ##ing"这类部分遮蔽可训练(词内结构学习);CBOW 词表 OOV 直接不可用;
目标地位不同:CBOW 的猜词就是目的(训练词向量,模型用完即弃);BERT 的 MLM 是预训练代理任务(目的是整个编码器,迁移到万 tasks)——一个是"特征提取器训练法",一个是"模型预训练法"。
架构师视角的演进逻辑:CBOW 证明了分布式表示可行,BERT 证明了"深度双向 + 完形填空"能产出通用语言理解能力——从"词的向量"到"模型的预训练",是 NLP 两次范式跳变的分界点。
💻 全栈开发专家
两者的掩码机制同源不同工,四个关键差异:
1. 预测目标:
- CBOW:用两侧上下文(多个词)预测中心词——连续窗口的完形填空;
- BERT MLM:随机选 15% 位置掩码,用全句双向上下文预测被掩词——位置离散、范围全局。
2. 掩码策略(BERT 的 80/10/10 心机):
- 80% 换 [MASK]:主要任务形态;
- 10% 换随机词:逼模型不能只盯着 [MASK] 标记,任何位置都可能要预测;
- 10% 保留原词:模型输出要与原词一致——学会「不改正确的词」。 这套设计解决「预训练有 [MASK]、下游没有 [MASK]」的分布差异;CBOW 没有这个问题(它没有特殊标记),但也没学到「主动判断这个词是否需要预测」。
3. 上下文利用:
- CBOW:窗口内(±5 词)局部共现,上下文词平均后预测(信息被平滑);
- BERT:全句任意距离依赖(多层注意力),深层语义/句法结构都参与还原。
4. 表示能力:
- CBOW 产出静态词向量(查表);
- BERT 产出上下文相关表示——同一个「bank」在「河 bank」和「银行」中向量不同,一词多义由架构天然解决。
一句话总结:CBOW 是「局部窗口的浅层预测任务」,BERT 是「全局双向的深度理解任务」——从统计共现到语义理解的代际差,中间隔着多层 Transformer 的抽象能力。