Bert

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%

原来将语言表示应用于下游任务有两种策略

  1. feature-base

    如 ELMO,用于下游任务时,使用特定的结构,加上与训练好的representation作为补充的特征

  2. 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,这样可以用在不同任务

与训练任务

  1. 完形填空(Masked)
  2. 下一句话预测

实验结果看[论文]