【NLP】_11_Bert

 


 

【一】 Bert(简单介绍)

 

Bidirectional Encoder Representation from Transformers,即双向 Transformer 的 Encoder,感谢:https://zhuanlan.zhihu.com/p/46652512 作者

So Handsome !!!pre-train 方法上,用了 Masked LMNext Sentence Prediction 两种方法分别捕捉 词语 和 句子 级别的 representation

 


 

【二】 模型结构(与 GPT 和 ELMo 对比)
  • OpenAI GPTGenerative Pre-trained Transformer),BERT 是双向的 Transformer Block 连接,直觉上来讲效果会好一些
     
  • ELMo,虽然都是 “双向”,但目标函数其实是不同的
     
    ELMo 是分别以 P ( w i ∣ w 1 , … , w i − 1 ) \bm {P ( w _ { i } | w _ { 1 } , \ldots , w _ { i - 1 } )} P(wiw1,,wi1) P ( w i ∣ w i + 1 , … , w n ) \bm {P ( w _ { i } | w _ { i+1 } , \ldots , w _ { n } )} P(wiwi+1,,wn) 作为目标函数,独立训练处两个 Representation 然后拼接
     
    BERT 则是以 P ( w i ∣ w 1 , … , w i − 1 , w i + 1 , … , w n ) \bm {P ( w _ { i } | w _ { 1 } , \ldots , w _ { i - 1 }, w _ { i+1 } , \ldots , w _ { n } )} P(wiw1,,wi1,wi+1,,wn) 作为目标函数训练 LM

 


 

【三】 Embedding(三个部分)
  • Token Embeddings 是词向量,第一个单词是 CLS 标志,可以用于之后的分类任务
  • Segment Embeddings 用来区别两种 Sentences,因为预训练不光做 LM 还要做以两个句子为输入的分类任务
  • Position Embeddings 用来区别位置,以符合句子的顺序

 


 

【四】 Masked LM(遮掩语言模型)

 

这个方法从某种意义上来说属于 Denoising AutoEncoder(DAE,降噪自编码),即在原始数据上添加噪声,模拟真实环境

 

  • Denoising AutoEncoder(DAE,降噪自编码)
     

 

  • 在训练过程中作者随机 Mask 15% 的 token,最终的损失函数只计算被 mask 掉那个 token
  • Mask 如何做也是有技巧的,如果一直用标记 [MASK] 代替(在实际预测时是碰不到这个标记的)会影响模型
     
  • 10% 的单词会被替代成其他单词,10% 的单词不替换,80% 被替换为 [MASK]
     
  • 要注意的是 Masked LM 预训练阶段模型是不知道真正被 Mask 的是哪个词,所以模型每个词都要关注
     
  • 因为序列长度太大(512)会影响训练速度,所以 90% 的 steps 都用 seq_len=128 训练,余下的 10% 步数训练 512 长度的输入

 


 

【五】 Next Sentence Prediction(预测下一个句子)

 

  • 因为涉及到 QAQuestion Answer)和 NLINatural Language Inference)之类的任务,增加了第二个预训练任务,目的是让模型理解两个句子之间的联系
     
  • 训练的输入是句子 AB,B 有一半的几率是 A 的下一句,输入这两个句子,模型预测 B 是不是 A 的下一句
     
  • 预训练的时候可以达到 97% ~ 98% 的准确度
     
  • 注意:作者特意说了语料选取很关键,要选用 Document-Level 而不是 Sentence-Level ,这样可以具备抽象连续长序列特征的能力

 


 

【六】 Fine-Tunning(根据任务微调)

 

  • Sentence-Level分类任务BERT 直接取第一个 [CLS] token 的 Final Hidden State C ∈ R H \bm { C \in R ^ { H } } CRH,加一层权重 W ∈ R K × H \bm { W \in R ^ { K \times H } } WRK×H 后 softmax 预测 label probability: P = s o f t m a x ( C W T ) \bm { P =softmax ( C W ^ { T } ) } P=softmax(CWT)

 

  • 其他任务

 


 

【七】 Advantages / Disadvantage(优缺点)

 

  • 优点:BERT是截至2018年10月的最新 state of the art 模型,通过预训练和精调横扫了 11 项 NLP 任务,这首先就是最大的优点了,而且它还用的是 Transformer,也就是相对 rnn 更加高效、能捕捉更长距离的依赖,对比起之前的预训练模型,它捕捉到的是真正意义上的 bidirectional context 信息
     
  • 缺点:[MASK] 标记在实际预测中不会出现,训练时用过多 [MASK] 影响模型表现,每个 batch 只有 15% 的 token 被预测,所以 BERT 收敛得比 left-to-right 模型要慢(它们会预测每个 token)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值