BERT(Bidirectional Encoder Representations from Transformers)模型是由Google在2018年提出的预训练Transformer模型,用于自然语言处理任务。
一. BERT模型的架构
1.1 输入表示 / Encoder模块
BERT中的Encoder模块是由三种Embedding(词嵌入)共同组成,如下图所示:
- Token Embeddings:词嵌入张量
- BERT首先将输入文本通过WordPiece或Subword Tokenization进行分词,每个分词(token)被映射到一个固定维度的词嵌入向量中,这样文本就被转化成了连续向量表示;
- 词嵌入张量的第一个单词是CLS标志, 可以用于之后的分类任务。
- Segment Embeddings:句子分段嵌入张量
- 对于序列对输入(如两个句子),BERT还包括段落嵌入(segment embeddings),用来区分两个不同的文本片段(如句子A和句子B);
- 用于服务后续的两个句子为输入的预训练任务(NSP)。
- Positional Embeddings