论文笔记:BERT

一、这篇论文解决的问题

预训练模型

预训练的好处:可以利用大量的无标注数据

两种预训练的策略:

  1. 基于特征:预训练好的表示,作为额外的特征输入
  2. 基于微调:预训练好的模型,修改最后一层,然后直接在相应数据集上进行训练

相关工作的不足:

  1. GPT:单向
  2. ELMo:基于特征的预训练;没有用transformer

本文的核心:

  1. transformer编码器
  2. 双向
  3. MLM + NSP
  4. 基于微调

二、模型本身的要点

参数计算

嵌入层:30K x H

注意力部分:L个头

  1. Q、K、V:H x H x 3
  2. 输出:H x H
  3. 全连接1: H x 4H
  4. 全连接2: 4H x H

参数总量 = 30K x H + L x 12 x H x H

输入的表示

原始输入:[CLS] + 句子1 + [SEP] + 句子2

输入层最后的embedding = token embedding(词元和CLS、SEP) + segment embedding(区分SEP前后的句子) + position embedding(位置)

论文笔记:BERT_第1张图片

三、预训练的要点

MLM:随机选择15%的token进行预测,在这15%中

  1. 80%,替换成[MASK]
  2. 10%,随机替换成其他token
  3. 10%,不变

NSP:50%正样本(SEP前后的两个句子属于同一片段) + 50%负样本(SEP前后的两个句子属于不同片段)

四、预训练后如何微调

输入:两大类

  1. text-text pair:paraphrasing、entailment、question answering
  2. text-∅ pair:text classification、sequence tagging

输出:两大类

  1. token的表示:用于token级别的任务
  2. [CLS]的表示:用于分类任务

论文笔记:BERT_第2张图片 五、BERT的局限性

因为是双向的模型,所以处理机器翻译这样的任务比较困难,相比较之下,GPT就比较容易一些

 PS:本文大部分公式和图片都来自于,对本文的理解来自于对论文BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding的学习及对李沐大神讲解的学习,有理解不对的地方,欢迎指正 

你可能感兴趣的:(论文笔记,NLP,论文阅读,bert,深度学习)