BERT(Bidirectional Encoder Representation from Transformers),基于 Transformer 的双向编码表示,模型训练时的两个任务是预测句子中被掩盖的词以及判断输入的两个句子是不是上下句。
论文中介绍了2种版本:BERT_BASE 和 BERT_LARGE。两个 BERT 的模型相比于 Transformer 有更多的编码器层数、前馈神经网络和多注意力头,如 BERT_BASE 有12层、768 个隐藏层神经元,12个多注意力头;BERT_LARGE 有24层,1024 个隐藏层神经元、16个多注意力头。
BERT 的基础集成单元是 Transformer 的 Encoder 编码层,整体框架是由多层 Transformer 的encoder 堆叠而成的,每一层的编码器 encoder 则是由一层 muti-head-attention 和一层 feed-forword 组成。
关于 Transformer 的编码器 Encoder 原理介绍请参考:Transformer
1 模型输入
我们知道文本预处理最重要的一步就是分词(Tokenize),执行分词的算法模型称为分词器(Tokenizer) ,划分好的一个个词称为 Token,这个过程称为 Tokenization 。
我们将一个个的 token(可以理解为小片段)表示成向量,我们分词的目的就是尽可能的让这些向量蕴含更多有用的信息,然后把这些向量输