【深度学习】NLP之Bert(1)

【深度学习】Attention的理解

【深度学习】NLP之Transformer (1)

【深度学习】NLP之Transformer (2)

理解bert首先需要,attention和transformer理论的铺垫。

BERT 的 PyTorch 实现(实现方式!记得看!)

bert代码解读——framework - daiwk-github博客

1、bert理论基础

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获得要预测的信息的。

BERT采用两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段通过 Fine-tuning 的模式解决下游任务。

bert是字符级别切词。切出来是单字,对于每个字去预测emb。

bert是自监督模型,自己产生label。(1、类似w2v,中心词预测上下文词;2、句对预测,一篇文章里随便找2个句子,判断是不是语句连贯的。)

seq_masks:指定对哪些字进行self-attentin;

seq_segments: 单个句子都是0;

1.1、Bert是如何基于Transformer Encoder的?

我们知道Bert,XLNet等架构都是基于Encoder的。而完全没有Decoder的存在,那么它是对Encoder做如何的改造的呢?

很少有人会专门把这个问题拿出来说,因为它的思路真的很朴素。

当encoder当做语言模型的一部分,每一个encoder layer的输出都输入到下一个encoder layer里面。

也就是说,Encoder作为Transformer一部分的时候,每一个encoder的输出会传入Decoder。而作为语言模型的一部分的时候,每一个encoder的输出会作为下一个encoder的输入。

而不管是输入到Decoder还是输入到Encoder,都是作为Multi Head Attention的一部分。

  1. 对于Decoder来说是作为q和k;
  2. 对于语言模型来说是作为q和k和v;

1.2、预训练阶段

preview

preview

1.3、fine-tining阶段

Next Sentence Prediction(NSP)

为了训练一个理解句子间关系的模型,例如QA和NLI之类的任务,引入一个下一句预测任务。这一任务的训练语料可以从语料库中抽取句子对包括两个句子A和B来进行生成,其中50%的概率B是A的下一个句子,50%的概率B是语料中的一个随机句子。NSP任务预测B是否是A的下一句。NSP的目的是获取句子间的信息,这点是语言模型无法直接捕捉的。

Google的论文结果表明,这个简单的任务对问答和自然语言推理任务十分有益,但是后续一些新的研究《Roberta: A robustly optimized BERT pretraining approach》发现,去掉NSP任务之后模型效果没有下降甚至还有提升。我们在预训练过程中也发现NSP任务的准确率经过1-2个Epoch训练后就能达到98%-99%,去掉NSP任务之后对模型效果并不会有太大的影响。

preview

preview

标注:

绿色的所有T维度是[B,N,768],N是seq_len=128。C则是[B,1,768],就是['cls']这个字的embsize是多少。

2、总结

BERT是两阶段模型,第⼀阶段双向语⾔模型预训练,这里注意要用双向⽽不是单向,第⼆阶段采 用具体任务Fine-tuning或者做特征集成;第⼆是特征抽取要用Transformer作为特征提取器⽽不是 RNN或者CNN;第三,双向语⾔模型可以采取MASK的⽅法去做。

BERT用的是Transformer,也就是相对rnn更加⾼效、能捕捉更长距离的依赖。对比起之前的预 训练模型, 它捕捉到的是真正意义上的bidirectional context信息。 但是, 他的缺点是:[MASK]标 记在实际预测中不会出现, 训练时用过多[MASK]影响模型表现;每个batch只有15%的token被预 测, 所以BERT收敛得比left-to-right模型要慢(它们会预测每个token)。 关于实战请参考这篇: https://zhuanlan.zhihu.com/p/61671334,写的很好很清晰明了。

3、bert的应用场景

nlp任务分类

文本纠错

task-oriented daloge

知识图谱

第一步

抽取entity

。。。

抽取relation(边)

集合了很多的任务

https://super.gluebenchmark.com/

参考:

bert:当我们说GPT2是基于Transformer Decoder的时候,我们在说什么? - Jotline的文章 - 知乎

BERT模型详解与实战 - 变成海的话的文章 - 知乎

transformer模型(一)-注意力机制-位置编码-attention is all you need

transformer模型(二)-语料预处理-情感分析分类-数据增强-解决过拟合问题

关于Transformer的若干问题整理记录 - Adherer的文章 - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值