BERT中[CLS]如何从其余隐藏状态收集信息?仅MLM训练时是否有效?
BERT中[CLS]标记的常见问题解答
1. [CLS]标记如何从其余隐藏状态中收集相关信息?
[CLS]标记是通过Transformer架构的多头自注意力机制来整合其他token的隐藏状态信息的:
- 在每一层Transformer中,[CLS]会和输入序列里的所有token(包括自身)计算注意力权重,权重值对应它对每个token信息的关注程度;
- 用这些权重对对应token的隐藏状态做加权求和,再经过前馈神经网络等模块处理,得到当前层[CLS]的新隐藏状态;
- 经过所有Transformer层的迭代后,[CLS]的最终隐藏状态就整合了整个输入序列的全局语义信息。
2. [CLS]是否包含MLM相关信息?
是的,[CLS]会包含MLM任务学习到的相关信息。
MLM训练时,模型需要根据上下文预测被掩码的token,整个输入序列的语义关联、上下文依赖都会被模型捕捉。而[CLS]作为全局信息聚合的标记,在每一层自注意力计算中都会参与所有token的信息交互,自然会把MLM任务学到的上下文语义、token间关联等信息整合到自身的隐藏状态里。
3. 若仅使用MLM任务训练BERT,[CLS]标记是否仍能正常发挥作用?
这得看“正常发挥作用”的具体场景:
- 原本BERT预训练同时用MLM和NSP(下一句预测)任务,NSP任务是专门针对[CLS]优化,让它更适合捕捉句子/段落级全局语义,用于分类等任务;
- 如果只做MLM训练,[CLS]没有专门的任务引导它优化分类相关的全局特征,但它依然会通过自注意力机制聚合整个序列的信息,所以在一些依赖全局语义表示的下游任务(比如文本相似度计算)中,还是能发挥一定作用;
- 但如果下游是文本分类这类原本依赖[CLS]做决策的任务,仅MLM训练的[CLS]表现会比完整预训练的版本差,因为缺少了NSP任务的针对性优化。
内容的提问来源于stack exchange,提问作者kowser66
相关产品推荐
相关产品推荐

