1.为什么Bert会存在?
首先,在Bert模型之前存在的BiLSTM来进行上下文的理解。
- BiLSTM (Bidirectional Long Short-Term Memory)是LSTM的扩展版本,通过同时处理序列的正向和反向信息来增强模型的上下文理解能力。
- 它由两个独立的LSTM层组成:一个正向LSTM层和一个反向LSTM层,这两个层并行处理同一序列但方向相反。
正向LSTM主要获取的是过去的数据信息,反向LSTM主要获取的是未来的数据信息,最终将正向和反向获取的数据信息,进行加权合并等方式,是最终的向量既包含过去信息又包含未来信息。
但是BiLSTM存在缺陷:
- 串行计算瓶颈 :BiLSTM必须按顺序处理序列,正向LSTM需等待前一词处理完才能处理下一词,反向LSTM同理,导致无法并行计算。
- 训练速度慢:处理10万条新闻文本,BiLSTM需要10小时,而Transformer(用GPU并行)仅需2小时。
- 资源消耗大:在大数据集上训练BiLSTM需要大量计算资源,且收敛速度慢。
而且BiLSTM在上下文理解的局限性:
- 固定权重分配:BiLSTM对上下文的"权重分配"是固定的,每个词的隐藏状态对后续词的影响是均匀的,无法动态关注重要信息。
- 长距离依赖捕捉不足:当序列过长时,反向传播过程中梯度易衰减,导致模型难以有效学习远距离依赖关系。
从而在之后引入了Bert。
2.Bert训练逻辑:
Bert创建的目的和训练策略:
- Bert目标是生成动态的、与上下文相关的词向量;
- Bert的训练策略是分为两部分**:**工作范式可以分为预训练(Pre-training)和微调(Fine-tuning)两个主要阶段;
- Bert预训练的两个任务:MLM和NSP