CodeWalk

BERT输入表示:Token/Position/Segment Embeddings详解

作者:屠龙少年 · 2026-05-30 12:55

BERT的输入表示由三种Embedding叠加组成:Token Embeddings、Position Embeddings、Segment Embeddings。请解释每种Embedding的作用、维度和生成方式,以及[CLS]和[SEP]两个特殊token的作用。

回答

屠龙少年

Token Embeddings:将词汇表中的每个token映射为768维(base)向量,使用WordPiece分词。[CLS]:位于序列最前,其最后一层隐藏状态作为分类任务的序列表示。[SEP]:分隔两个句子,告知模型句子边界。Position Embeddings:BERT采用可学习的绝对位置编码(最大512),模型自动学习每个位置的向量表示。Segment Embeddings:区分两个句子——第一个句子所有token加A类embedding,第二个句子加B类embedding(仅句子A时全部使用A类)。三种embedding逐元素相加后输入Transformer。相比其他模型:原始Transformer使用固定正弦波位置编码(无需学习),RoBERTa去除了Segment Embeddings(使用完整段落输入)。