BERT is designed to pre-train deep bidirectional representations by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT representations can be fine-tuned with just one additional output layer to create state-of-theart models for a wide range of tasks。
它在11项自然语言处理任务中获得了最新的最新成果,包括将GLUE基准推至80.4%(绝对改进率7.6%),MultiNLI精度达到86.7%(绝对改进5.6%)和SQuAD v1.1问题回答测试F1到93.2(1.5绝对改进),超过人类表现2.0。
GLUE(通用语言理解评价标准):80.4%
MultiNLI :86.7%
SQuAD:93.3%
原来将语言表示应用于下游任务有两种策略
feature-base
如 ELMO,用于下游任务时,使用特定的结构,加上与训练好的representation作为补充的特征
fine-tuning
如 GPT,用于下游任务通过fine_tuning模型
但是他们都是单向的…
作者认为这种单向的结构限制了模型的表示能力,虽然OpenAI GPT使用了left-to-right的结构,但只能在self-attention层之前的token.这种方法对于sentencelevel 的任务还好,对于token-level任务可能就不那么好了。
BERT,1.使用双向编码器,2.使用了 masked languge model(MLM),3.还有句子预测任务(next sentence prediction)
BERT\ELMO\GPT
一张图看出区别,可以看出只有BERT依赖于左右上下文
模型架构使用了tensor2tensor,有大小两种模型。
这里输入比较有想法,token embedding + segment embedding + position embedding,这样可以用在不同任务
与训练任务
- 完形填空(Masked)
- 下一句话预测
实验结果看[论文]