BERT

监督学习与无监督学习区别在于模型训练时是否需要人工标注的标签信息。
自监督学习(self-surpervised learning):属于无监督学习,但区别在于无监督是不需要label,而自监督是模型自己构造label。

Bert

NLP中文本的表示问题(即将单词表示为向量):

  • one hot vector:缺点是高维稀疏,向量没有任何含义
  • word embedding:低维稠密,相关的词,则向量的距离小或相似度大

CV和NLP任务中,对于小数据集,使用预训练(Pre-training)+微调(Fine-tune)的方法。Bert就是一个通用模型,在非常大的语料库上进行pre-train,然后在特定任务上进行fine-tune。Bert使用transformer的encoder结构,Bert-base包含12个encoder block。

输入

Bert的输入可以是两个句子,也可以是单个句子。Bert有以下标志位:

  • [CLS] 标志放在第一个句子的首位
  • [SEP] 标志放在每一个句子的最后
  • [MASK] 标志用于遮盖句子中的一些单词

例如给定两个句子"my dog is cute"和"he likes palying"作为输入,Bert会转为"[CLS] my dog is cute [SEP] he likes play ##ing [SEP]"。得到要输入的句子后,Bert要将句子中的单词转成Embedding,与transformer不同,Bert的输入embedding由三部分相加得到,如下图所示:
1

  • Token Embedding:单词的Embedding,例如[CLS]、dog 等,通过训练学习得到(输入序列(sequence)的每个元素称为token)。
  • Segment Embedding:用于区分每一个单词属于句子A还是句子B,如果只输入一个句子就只使用\(E_A\),通过训练学习得到。
  • Position Embedding:编码单词出现的位置,与Transformer使用固定的公式计算不同,Bert的Position Embedding也是通过学习得到的,在Bert中,假设句子最长为512。

预训练

Bert的预训练有两个任务:

  • 第一个是Masked LM,在句子中随机用[MASK]替换一部分单词,然后将句子传入Bert中编码每一个单词的信息,最终用[MASK]的编码信息\(T_{[MASK]}\)预测该位置的正确单词。
  • 第二个是下一句预测,将句子A和B输入Bert,预测B是否A的下一句,使用[CLS]的编码信息\(C\)进行预测。
    2

微调

3

posted @ 2021-12-31 17:25  MyAJY  阅读(752)  评论(0)    收藏  举报