BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文研读

  1. 主要结构仍是 Transformer
  2. Input:
    a. WordPiece embeddings
    b. learned positional embeddings, up to 512 tokens。
    c. 增加了一个特殊的 token: [CLS], 用于分类任务。这个token的deep feature用于分类任务。
    d. Sentence pairs, 两个句子合成一句,并用一个特殊的 token: [SEP]隔开。同时增加两个可训练的sentence embedding A 和 B,分别与第一句和第二局的每个tokens embedding concate在一起。
    e. 对于单句,sentence embedding A 也会使用,与所有token embedding concate。
  3. 预训练的方式,最大的区别
    a. 不是简单的left-to-right或者right-to-left的语言模型训练方式。而是mask部分tiokens,然后预测这部分的tokens,因此可以利用全句信息。其实也可以认为是学习句子的context representation,比起LM这种预训练更好。
    具体:15%随机mask。 同时其中80%替换为一个特殊的 token: [MASK], 10%替换为随机的tokens,10%不变。因为训练时只会预测15%的tokens,相比于LM训练速度下降。
    b. 句子预测,Sentence pairs,判断这两个句子是不是相关的。
  4. 预训练细节:
    sentence可能是部分文本,不仅仅是一句。因为positional embeddings限制,input长度小于512。
    激活函数用的是gelu。
    base model, 4 cloud tpus 训练4天。large model, 16 cloud tpus 训练4天。

利用Masked LM和Next Sentence Prediction,相比于LM,直观上可以学习更好的句子的context representation。利用大规模数据,选择合适的非监督任务进行预训练,才能更好的进行transfer。

猜你喜欢

转载自blog.csdn.net/yanyiting666/article/details/94480709