BERT是NLP领域让预训练这件事情出圈的工作。

开篇Introduction介绍了两类主流的预训练方法:

  1、feature-based,即基于特征的,即我首先通过预训练得到一些比较好的特征,然后将这些特征作为额外的训练数据输入到模型中,从而使得模型在训练起来变得容易很多;

  2、fine-tuning,即基于微调的。即我首先用其他数据集做预训练,训练好之后,我再去用我所需要的针对我的任务的数据集做微调,对我的模型的权重做一些小改动。

这两种方法都有一种局限性,即二者都是单向的模型,而Bert不是,正如其名字:Bidirectional Encoder Representations from Transformers

这个idea的主要来源很明确:我们平时处理NLP问题的模型都是单向的,但是虽然我们读一句话的时候总是从左到右这么读下来,但是在做一些其他任务的时候比如阅读理解、Q&A等等问题的时候,我们总会看完整个句子的全貌从而去理解这个句子的文本语义,因此如果能够让模型也做到这一点,效果会不会更好呢?

在conclusion写了,作者其实是把ELM0和GPT的idea拼接在一起,说得简单一些,就是用ELMo的双向,用Transformer实现。但具体到BERT这篇工作,我觉得还有一个更出众的点子在于《完形填空》。

Bert是一个微调模型,即先预训练,然后微调。

整体上来看,首先用一组没有label的数据做预训练,然后用有标号的对应下游任务的数据集去做微调。

其实说到底,Bert就是一个Transformer,只不过分成了预训练和微调。

另外注意一下Bert的Embedding是三个:

在做完形填空的时候,Bert用了概率mask的trick。因为他们发现直接mask掉15%的数据存在很多问题,因此选择了另外20%特殊的点。其中,10%为随机替换一个词,我觉得可以理解成噪音;另外10%就是将答案暴露出来,用答案预测答案,算是对mask的一种补偿。

而在做句子连贯性预测的时候,则50%为连贯的一组句子,50%为不连贯。

此外,他还有一个小trick,即Wordpiece,将一些比较长的单词切开。因为长单词往往有多重含义的词根,这些词根组合在一起可以表示一个新的完整的意思,但是这种长单词大部分都出现频率都不是很高,因此将这些内容切开,可以更好地让模型学习到一句话中的语义碎片。比如将homeless拆分成home与less。

然后我发现,作为一篇深度学习的文章,作为一个深度学习模型,Bert竟然没有整体的模型架构!!这真的是我第一次见。

当然了,作者对于这个操作也解释了,“我们基本上是直接把Transformer源码拿过来用了,因此我们也没必要详细再讲一次。”

这个是很值得思考的,作者没有提出新的架构,这确实是一个缝合的文章,但是他却有5w的引用。

Bert更大的特点,我觉得是证明了一点,用更大的数据集训练更大的模型会更好,但其实这个东西早就被证实了。另外就是预训练和微调的理念在NLP的出圈。

最新文章

  1. react-native 简单的导航
  2. 大理石在哪里UVa 10474
  3. 利用反射调用方法时,处理ref,out参数需要注意的问题(转)
  4. 前博客 http://bbs.landingbj.com/mytopic.jsp?action=mytopic&username=57071
  5. JS中style属性
  6. a标签伪类的顺序
  7. MyEclipse 中文注释乱码
  8. 懒人小工具:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法
  9. chorme调试Paused in debugger问题解决
  10. 解决Sublime text 3 中文文件名显示方框
  11. 在linux上安装dotnetcore
  12. 深入解析Java反射基础
  13. Jenkins- job之间传参
  14. <转>用 Java 技术创建 RESTful Web 服务
  15. CentOS7安装chrony替代ntp同步时间
  16. aTool在线工具
  17. c语言字符函数
  18. php5.3 yum安装升级版本到 php5.6
  19. Eval,Bind,<% %>,<%# %>和<%= %> 笔记
  20. Linux- 关于windows和Linux和Mac的换行符

热门文章

  1. Solon2 开发之容器,八、动态代理的本质
  2. Spring Boot 小知识、小demo、配置文件
  3. dvwa靶场搭建
  4. Quill编辑器实现原理初探
  5. DESIR队列研究: 早期SpA患者骶髂关节放射学结构损伤的不同定义对结构损伤变化的敏感性
  6. TikTok 推荐引擎强大的秘密
  7. Postgresql的csv日志设置
  8. 【调试】ftrace(一)基本使用方法
  9. 域名_服务器_IP之间的关系
  10. No.2.6