一、资料整理
bert论文地址:BERT: Pre-training of Deep Bidirectional Transformers (arXiv)
参考视频:【BERT 论文逐段精读【论文精读】】 https://www.bilibili.com/video/BV1PL411M7eQ/?share_source=copy_web&vd_source=9fe9e3d550891e4a38f66eead88c8b40
二、学习笔记
标题
1.背景与贡献
背景:
BERT(Bidirectional Encoder Representations from Transformers)诞生前,NLP领域缺乏统一的深度预训练模型。ELMo(芝麻街系列文章)使用RNN结构且非端到端,GPT基于单向Transformer,无法捕捉双向上下文。
计算机视觉领域通过ImageNet预训练模型提升下游任务性能,而NLP领域需要类似突破。
核心贡献:
双向上下文建模:通过掩码语言模型(MLM)实现双向信息捕捉,解决了GPT单向性的限制。
通用预训练框架:模型仅需简单微调即可适配多种任务(如分类、问答),无需复杂结构调整。
规模化训练:验证了大模型(如BERT-Large)在大数据(BooksCorpus + Wikipedia)上的有效性,推动后续模型规模化趋势。
2. 模型架构
基础结构:
基于Transformer编码器,无解码器部分。()
分两个版本:
BERT-Base:12层,768隐藏维度,12个注意力头(1.1亿参数)。
BERT-Large:24层,1024隐藏维度,16个注意力头(3.4亿参数)。
输入处理:
没有解码器部分,因此将两个句子合成一个序列输入到模型中。
Token嵌入:使用WordPiece分词(词的子序列,可理解成词根)(3万词表),解决未登录词问题。
位置嵌入:学习位置编码,替代Transformer的固定位置编码。
段嵌入:区分句子A和句子B(用于句子对任务)。
特殊标记:
[CLS]:用于分类任务的聚合表示。[SEP]:分隔句子对。[MASK]:预训练时掩盖部分Token。
3. 预训练任务
掩码语言模型(MLM):
随机掩盖15%的Token,其中:
80%替换为
[MASK]。10%替换为随机Token。
10%保留原Token。
迫使模型利用双向上下文预测被掩盖的Token,解决预训练与微调输入不一致问题。
下一句预测(NSP):
输入句子对(A+B),50%概率B为A的下一句,50%为随机句子。
目标:判断B是否为A的后续,提升句子关系建模能力(如问答、推理任务)。
4. 微调方法
适配不同任务:
单句分类(如情感分析):取
[CLS]的输出向量加分类层。句子对任务(如推理):拼接句子A+B,通过
[CLS]分类。序列标注(如NER):对每个Token的输出向量分类。
问答任务(如SQuAD):预测答案在文本中的起止位置。
训练细节:
微调耗时短(GPU数小时至一天),学习率较低(如5e-5),Batch Size较小(如32)。
所有参数参与微调,仅需添加任务特定输出层。
模型参数的计算(强烈推荐)
5. 实验结果
SOTA性能:
GLUE基准:平均提升7.7%,涵盖文本分类、相似度、推理等任务。
SQuAD问答:F1提升至93.2(v1.1)和83.1(v2.0)。
命名实体识别(CoNLL-2003):F1达92.4。
消融实验:
移除NSP任务导致QA和推理任务性能显著下降。
单向模型(如GPT式)效果弱于双向结构。
大模型(BERT-Large)显著优于小模型,验证规模效应。
6. 影响
双向性的价值:MLM任务使模型捕获完整上下文,超越ELMo的双向LSTM拼接。
预训练范式革新:统一框架适配多任务,推动NLP进入“预训练+微调”时代。
局限与后续发展:
生成任务支持不足(需解码器结构),后续工作如BART、T5弥补。
模型规模持续扩大(如GPT-3),但BERT奠定了基础架构思想。
7. 启示
简单有效的设计:BERT成功源于对现有技术(Transformer、MLM)的巧妙整合,而非完全创新。
工程实践重要性:大规模训练(TPU集群)和数据处理(长文本序列)是关键支撑。
研究社区影响:开源模型和代码(https://github.com/google-research/bert)加速NLP应用与研究。