前言

在Transformer架构诞生之前,NLP任务主流依赖CNN、RNN、LSTM、GRU等模型。但这类模型存在天然缺陷:CNN只能捕捉局部文本特征,无法建模长距离依赖;RNN系列串行迭代计算,无法并行、长文本梯度衰减严重。

2017年Transformer模型横空出世,完全基于自注意力机制(Self-Attention)搭建,彻底解决了传统序列模型的痛点。而2018年提出的BERT,基于Transformer编码器构建的预训练语言模型,凭借双向预训练、迁移学习的优势,成为所有现代中文文本分类、情感分析、实体识别任务的 baseline。

本文将从零拆解自注意力核心原理、多头注意力机制,再系统讲解BERT模型架构、预训练任务、核心特性,附带全套高频面试问答,适合零基础学习与面试复盘。

一、自注意力机制(Self-Attention)详解

1.核心思想

自注意力机制的核心:让序列中每一个字(Token)都能和全局所有字计算关联权重,动态捕捉全局语义依赖。

传统RNN是逐词遍历,只能依赖前文信息;而自注意力直接计算任意两个Token的相关性,无论是近距离词语,还是长距离相隔的语义关联,都能精准捕捉,同时支持全局并行计算。

2.核心计算流程

自注意力通过Q、K、V三个向量完成全局相关性计算,所有输入Token共享权重矩阵,流程统一分为四步:

步骤1:生成Q、K、V向量

对输入的每个词嵌入向量,通过三个可学习的权重矩阵,分别映射得到:

  • Q(Query 查询向量):当前Token要“查找什么信息”

  • K(Key 键向量):全局Token“包含什么信息”

  • V(Value 值向量):全局Token的“真实语义信息”

步骤2:计算注意力得分(相关性)

用当前Token的Q和全局所有Token的K做矩阵点积,得到注意力分数矩阵。分数越高,代表两个词语的语义关联越强。

步骤3:维度缩放(核心细节)

将点积结果除以 根号Dk(dk为Q/K向量维度)。

作用:高维向量点积后数值方差极大,会导致softmax函数进入饱和区、梯度消失。缩放后将数值方差约束为1,保证梯度稳定可更新。

步骤4:掩码 + Softmax归一化

通过Attention Mask掩码屏蔽无效位置(如padding填充位),将无效位置分数置为负无穷;再通过Softmax将分数归一化为0-1的权重分布。

步骤5:加权求和输出

用归一化后的注意力权重,对全局V向量加权求和,得到当前Token融合全局语义的最终输出向量。

3. 多头自注意力(Multi-Head Attention)

单头自注意力只能捕捉单一维度的语义关联,多头注意力将QKV均分为多组,每组独立计算自注意力:

  • 不同头捕捉不同语义特征:语法结构、语义关联、语序依赖、上下文逻辑等

  • 所有头计算结果拼接融合,通过线性层降维输出

核心优势:多视角、多维度挖掘文本全局特征,大幅提升模型语义理解能力。BERT默认使用12头注意力机制

4. Attention Mask掩码机制

掩码是自注意力的关键工程细节,主要分为两类:

  • Padding Mask:屏蔽句子补零的padding位置,防止无效占位符参与注意力计算,干扰语义特征

  • Look-Ahead Mask:解码器专用,屏蔽未来时刻Token,防止模型看到后文信息

BERT作为编码器模型,仅使用Padding Mask。

5. 自注意力机制优缺点

优点:

  1. 全局建模:直接捕捉长距离语义依赖,彻底解决RNN梯度衰减问题

  2. 全局并行:所有Token同时计算,训练速度远快于串行RNN

  3. 动态权重:根据上下文动态调整词语关联权重,语义适配性更强

缺点:

  1. 时间复杂度为 $$O(n^2)$$,句子长度越长,计算量、显存消耗呈平方级增长

  2. 对短文本存在一定的计算冗余

二、BERT模型完整原理详解

1. BERT整体架构

BERT(Bidirectional Encoder Representations from Transformers),即基于Transformer双向编码器的预训练语言模型。

核心特性:只使用Transformer编码器、全程双向语义建模、预训练+微调两阶段范式。

常用版本:

  • BERT-base:12层编码器、12头注意力、768维向量、1.1亿参数

  • BERT-large:24层编码器、16头注意力、1024维向量

2. BERT输入构成(三大核心输入)

BERT的输入是经过特殊处理的结构化序列,包含三部分,缺一不可:

(1)input_ids

文本经过WordPiece分词后,每个Token对应的数字索引ID,是模型的原始输入特征。

(2)attention_mask

0/1掩码矩阵:1代表真实文本Token,参与注意力计算;0代表padding填充位,被掩码屏蔽。

(3)token_type_ids

句子分段标识,用于区分句子A和句子B:单文本任务全为0,句子对任务分别用0、1区分,实现问答、匹配类任务建模。

3. BERT特殊标记

  • 【CLS】:句首特殊标记,聚合全局语义,专门用于句子级任务(分类、情感分析)

  • 【SEP】:句子分隔标记,区分两个句子的边界

4. BERT两大预训练任务(核心精髓)

BERT通过海量无标注文本预训练,学习通用语言知识,再迁移到下游小样本任务,核心依靠两个自监督任务:

任务1:MLM 掩码语言模型(核心)

随机将句子中15%的Token替换为【MASK】标记,让模型根据上下文双向语义,预测被遮挡的原始单词。

作用:强制模型学习双向上下文语义,这是BERT优于GPT(单向)的核心原因。

任务2:NSP 下一句预测

输入句子对,判断第二个句子是否是第一个句子的真实后续句子。

作用:学习句子级逻辑关系,适配问答、文本匹配、推理等任务(后续RoBERTa证明NSP收益有限,将其去除)。

5. BERT两大使用范式

(1)特征提取模式(冻结模式)

冻结BERT全部预训练参数,仅训练下游分类/回归头。适合下游数据量极少的场景,避免过拟合。

(2)微调模式(Fine-Tune)

BERT主干参数 + 下游任务头一起反向传播更新参数,适配具体业务场景。数据量充足时效果最优,是绝大多数任务的主流用法。

6. 【CLS】向量与Pooler输出

BERT编码器输出两类结果:

  • sequence_out:所有Token的时序输出,用于词级任务(命名实体识别、分词)

  • pooler_out:取句首【CLS】向量,经过全连接层+tanh激活得到768维全局向量,用于句子级任务(文本分类、情感分析)

三、高频核心面试问答(纯理论版)

1. 自注意力机制相关问答

Q1:自注意力和RNN、CNN相比,核心优势是什么?

答:RNN串行计算、长距离梯度衰减、无法并行;CNN仅能捕捉局部特征。自注意力可全局建模长距离语义依赖,支持全量并行计算,动态适配上下文语义关系,特征表达能力更强。

Q2:自注意力为什么要除以根号dk?

答:高维Q、K向量点积后数值方差极大,会让softmax进入梯度饱和区,导致梯度无法更新。除以根号dk可以将数值方差归一为1,保证梯度稳定,训练收敛正常。

Q3:多头注意力的作用是什么?多头越多越好吗?

答:多头可以从语法、语义、语序等多维度捕捉文本关联,丰富特征表达。并非越多越好,头数过多会增加计算量,同时产生冗余特征,边际收益递减。

Q4:Attention Mask的作用是什么?

答:屏蔽无效padding占位符,避免无意义的填充Token参与注意力计算,防止模型学习到无效噪声特征,保证语义建模的准确性。

2. BERT模型相关问答

Q1:BERT和GPT的核心区别?

答:BERT基于Transformer编码器,双向语义建模,擅长理解类任务(分类、匹配);GPT基于Transformer解码器,单向自回归建模,擅长生成类任务(文本续写、对话)。

Q2:BERT的MLM预训练任务原理和作用?

答:随机遮挡部分Token,让模型通过双向上下文预测遮挡内容。核心作用是让模型学习双向上下文语义关联,是BERT强大语义理解能力的核心来源。

Q3:为什么分类任务用【CLS】向量做表征?可以用均值池化吗?

答:预训练阶段【CLS】专门被训练用于聚合全局句子语义,适配句子级任务。理论上可以用全局均值池化,但【CLS】是BERT原生设计,适配性和效果更优。

Q4:BERT微调为什么学习率不能太大?

答:BERT预训练已经习得海量通用语言特征,大学习率会一次性破坏预训练参数,丢失通用语义知识,导致模型效果暴跌。微调需使用小学习率,轻微适配下游任务。

Q5:BERT特征提取和微调模式的适用场景?

答:数据量极小、防止过拟合时,使用冻结特征提取模式;数据量充足、需要适配专属业务语义时,使用微调模式,效果更好。

Q6:BERT的三个输入分别代表什么?

答:input_ids是分词后的数字索引;attention_mask屏蔽padding无效位;token_type_ids区分句子对,实现双句任务建模。

四、总结

自注意力机制是Transformer的核心,解决了传统序列模型长距离依赖、无法并行的痛点;而BERT依托双向Transformer编码器+MLM预训练任务,实现了通用语言表征学习。

预训练+微调的范式,让开发者无需从零训练模型,仅需微调即可在小样本下游任务取得极佳效果,这也是BERT成为NLP工业界、学术界通用 baseline 的根本原因。

更多推荐