1.BERT模型

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。

1.1 模型结构

由于模型的构成元素Transformer已经解析过,就不多说了,BERT模型的结构如下图最左:

对比OpenAI GPT(Generative pre-trained transformer),BERT是双向的Transformer block连接;就像单向rnn和双向rnn的区别,直觉上来讲效果会好一些。

对比ELMo,虽然都是“双向”,但目标函数其实是不同的。ELMo是分别以 和  作为目标函数,独立训练处两个representation然后拼接,而BERT则是以  作为目标函数训练LM。

1.2 Embedding

这里的Embedding由三种Embedding求和而成:

其中:

  • Token Embeddings是词向量,第一个单词是CLS标志,可以用于之后的分类任务
  • Segment Embeddings用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务
  • Position Embeddings和之前文章中的Transformer不一样,不是三角函数而是学习出来的

总结:

1. BERT的特征提取,是在捕捉词的(前后)位置关系。bidirectional决定了能获得前后的关系,position embedding决定了能学到更长的顺序关系。

2.训练,分为pre-train和fine-tune。pre-train中用到了MLM, Masked LM.

3. trick: MLM. 在训练过程中作者随机mask 15%的token,而不是把像cbow一样把每个词都预测一遍。最终的损失函数只计算被mask掉那个token。

4. 缺点: (1)[MASK]标记在实际预测中不会出现,训练时用过多[MASK]影响模型表现

(2)每个batch只有15%的token被预测,所以BERT收敛得比left-to-right模型要慢(它们会预测每个token)

https://zhuanlan.zhihu.com/p/46652512

https://arxiv.org/pdf/1810.04805.pdf

最新文章

  1. linux 下安装web开发环境
  2. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)
  3. 烂泥:openvpn配置文件详解
  4. [转]Mac下配置基于SecurID的Cisco IPSec VPN全攻略(有图)
  5. FineUI小技巧(5)向子窗口传值,向父窗口传值
  6. .NET委托和事件
  7. PHP面向对象实例(图形计算器)
  8. Mac下搭建php开发环境【转】
  9. C#微信json结构接收参数 转载
  10. hadoop单节点windows 7 环境搭建
  11. TC358746AXBG/748XBG 桥接器说明
  12. android开发中的5种存储数据方式
  13. 嵌入式ntp服务器的移植
  14. C#中几种数据库的大数据批量插入
  15. HDU-1275-两车追及或相遇问题(数学题目)
  16. 通讯录--(iOS9独有的方法)
  17. CCF系列之字符串匹配(201409-3)
  18. [HNOI2003]激光炸弹
  19. FatMouse' Trade -HZNU寒假集训
  20. Luogu P3157 [CQOI2011]动态逆序对

热门文章

  1. Java16周作业
  2. idea 将java导出为可执行jar及导入jar依赖
  3. 搭建java环境时,DOS输入java有反应,javac没反应的解决办法。
  4. 解读Es6之 promise
  5. [RN] React Native 删除第三方开源组件依赖包 后 还要做的 (以 删除 react-native-video为例)
  6. AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图
  7. 洛谷 P1991 无线通讯网 题解
  8. [golang][gui]Hands On GUI Application Development in Go【在Go中动手进行GUI应用程序开发】读书笔记03-拒交“智商税”,解密“GUI”运行之道
  9. HDU 6212 Zuma
  10. [技术博客] rails控制台调试路由