BERT 模型

25
0
0
2024-04-02

BERT 模型

BERT 模型可以作为公认的里程碑式的模型,但是它最大的优点不是创新,而是集大成者,并且这个集大成者有了各项突破,下面让我们看看 BERT 是怎么集大成者的。

  • BERT 的意义在于:从大量无标记数据集中训练得到的深度模型,可以显著提高各项自然语言处理任务的准确率。

  • 近年来优秀预训练语言模型的集大成者:参考了 ELMO 模型的双向编码思想、借鉴了 GPT 用 Transformer 作为特征提取器的思路、采用了 word2vec 所使用的 CBOW 方法

1. 模型架构基础

Transformer Encoder

  • 自注意力机制(Self-Attention):这是Transformer的核心,允许模型在不同位置的字(词)之间建立关联,同时考虑它们在句子中的上下文。

  • 多头注意力(Multi-Head Attention):将输入序列分割为多个“头”,每个“头”都有自己的自注意力计算,然后将这些头的输出合并起来。

残差连接(Residual Connections)

  • 在每个自注意力层和前馈网络之后,模型添加了残差连接,然后进行层归一化(Layer Normalization)。

前馈神经网络(Feed-Forward Neural Network)

  • 在自注意力层之后,模型应用了一个简单的前馈神经网络,它在每个位置都有相同的应用,但独立于其他位置。

2. BERT的特殊之处

双向编码器

  • BERT是一个双向模型,这意味着它在处理输入序列时同时考虑了左边的和右边的上下文。

预训练任务

  • 掩码语言模型(Masked Language Model, MLM):随机地掩盖输入序列中的某些字(词),然后让模型预测这些掩盖的字。

  • 下一句预测(Next Sentence Prediction, NSP):在预训练期间,模型还学习预测两个句子是否是连续的。

  • BERT 和 GPT 之间的区别:

    • GPT:GPT 使用 Transformer Decoder 作为特征提取器、具有良好的文本生成能力,然而当前词的语义只能由其前序词决定,并且在语义理解上不足

    • BERT:使用了 Transformer Encoder 作为特征提取器,并使用了与其配套的掩码训练方法。虽然使用双向编码让 BERT 不再具有文本生成能力,但是 BERT 的语义信息提取能力更强

  • 单向编码和双向编码的差异,以该句话举例 “今天天气很{},我们不得不取消户外运动”,分别从单向编码和双向编码的角度去考虑 {} 中应该填什么词:

    • 单向编码:单向编码只会考虑 “今天天气很”,以人类的经验,大概率会从 “好”、“不错”、“差”、“糟糕” 这几个词中选择,这些词可以被划为截然不同的两类

    • 双向编码:双向编码会同时考虑上下文的信息,即除了会考虑 “今天天气很” 这五个字,还会考虑 “我们不得不取消户外运动” 来帮助模型判断,则大概率会从 “差”、“糟糕” 这一类词中选择