基本介绍
BERT(Bidirectional Encoder Representation from Transformers)
是一种预训练语言模型,由google公司在2018年推出,自推出起,在众多自然语言任务中广为使用。其特点是采用了Transformer模型中的Encoder编码器结构,通过对上下文的双向编码实现文本向量化。
BERT的关键特点
双向编码文本:与传统单项语言模型不同,BERT对文本向量编码考虑双向上下文信息。
预训练任务:BERT模型在预训练阶段采用了两种任务来学习,分别是下句预测任务(Next Sentence Prediction)和 掩码语言模型(Masked Language Model,MLM)
BERT模型的输出
通常应用于下游任务的有两类输出:
Pooler_output:
指的是最后一层的隐藏状态的第一个token,一般是 [CLS]字符 代表的token向量,通过一个线性层和激活函数得到的输出。
如 I love my dog 若是被划分为了4个词[‘I’, ‘love’, ‘my’, ‘dog’],
pooler_output = V [ c l s ] V_[cls] V[cls]
last_hidden_state:
模型所有层的 最后一个隐藏状态的输出 ,包含了整个序列的上下文信息,适用于序列级别的任务。
如 I love my dog 若是被划分为了4个词[‘I’, ‘love’, ‘my’, ‘dog’],
last_hidden_state= [ V [ c l s ] , V I , V l o v e , V m y , V d o g ] [V_[cls], V_I, V_{love}, V_{my}, V_{dog}] [V[cls],VI,Vlove,Vmy,Vdog]