1. BERT的技术背景与历史意义
2018年10月,谷歌AI团队发布的BERT论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》彻底改变了自然语言处理(NLP)领域的发展轨迹。要真正理解BERT的革命性,我们需要回到它诞生前的技术语境。
1.1 静态词向量的局限性
在BERT之前,Word2Vec和GloVe等静态词向量模型虽然成功地将词汇映射到低维连续空间,但其"一词一向量"的本质存在根本缺陷。例如:
- "bank"在"river bank"和"bank account"中含义不同,但静态模型只能生成同一个向量
- 无法处理未登录词(OOV)问题
- 缺乏对句子级语义的理解能力
当时的主流解决方案是通过上下文窗口获取局部信息,但这种方法:
- 窗口大小固定(通常5-10个词)
- 无法建模长距离依赖
- 前向和后向信息处理分离
1.2 早期动态表示尝试
ELMo(2018)首次提出通过双向LSTM获取上下文相关表示,其核心创新包括:
- 使用两层双向LSTM
- 对不同层表示进行线性组合
- 在特定任务上fine-tuning
但ELMo存在明显局限:
python复制# 典型ELMo架构伪代码
class ELMo(nn.Module):
def __init__(self):
self.fwd_lstm = LSTM(...) # 前向LSTM
self.bwd_lstm = LSTM(...) # 后向LSTM
# 关键限制:前向和后向信息只在最后concat
这种架构导致前后向信息交互不足,且LSTM本身难以捕捉长程依赖。
与此同时,OpenAI的GPT(Generative Pre-training Transformer)采用单向Transformer解码器,虽然能处理更长距离依赖,但:
- 仅使用从左到右的单向注意力
- 不适合需要完整上下文理解的任务(如问答、实体识别)
- 预训练目标(语言模型)过于单一
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BERT的核心架构解析
2.1 Transformer编码器基础
BERT的核心是T
