BERT原理及实现

ZhuYuanxiang 2020-10-12 18:15:39
Categories: Tags:

BERT原理及实现

1. 输入序列与嵌入表示

img

可以编码一个单句或者一串单句

每个单词有三个Embedding

2. 预训练任务(目标函数)

(论文没有使用传统的从左到右语言模型或者从右到左语言模型来进行预训练)

BERT的预训练基于两个无监督预测任务

2.1 遮蔽语言模型训练任务

遮蔽语言模型是在给定单词上下文序列后,当前单词出现的条件概率的乘积:$P(w_1^T)=\prod_{t=1}^T P(w_t|w_1^{t-1},w_{t+1}^T)$

训练数据集中随机选择15%的遮蔽单词$w_t$,并且以特殊的标记$[MASK]$进行替换。为了减少标记对微调阶段的影响,数据生成器将执行以下操作,而不是始终使用标记替换所选单词:

2.2 下一句预测任务

从语料库中生成二值化的下一句句子预测任务

3. 模型架构

是一个多层的双向的Transformer Encoder。

Transformer模型输入的是经过Embedding处理后的词向量

image-20200904174434544

3.1 编码器结构

image-20200904175102652

BERT完成NLP的四大类任务

  1. 序列标注:分词、实体识别、语义标注
  2. 分类任务:文本分类、情感计算
  3. 句子关系判断:Entailment、QA、自然语言
  4. 生成式任务:机器翻译、文本摘要