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的出圈。

[2] Bert 论文精读的更多相关文章

  1. BERT 论文阅读笔记

    BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...

  2. 【深度学习 论文篇 02-1 】YOLOv1论文精读

    原论文链接:https://gitee.com/shaoxuxu/DeepLearning_PaperNotes/blob/master/YOLOv1.pdf 笔记版论文链接:https://gite ...

  3. 用深度学习(DNN)构建推荐系统 - Deep Neural Networks for YouTube Recommendations论文精读

    虽然国内必须FQ才能登录YouTube,但想必大家都知道这个网站.基本上算是世界范围内视频领域的最大的网站了,坐拥10亿量级的用户,网站内的视频推荐自然是一个非常重要的功能.本文就focus在YouT ...

  4. BERT论文解读

    本文尽量贴合BERT的原论文,但考虑到要易于理解,所以并非逐句翻译,而是根据笔者的个人理解进行翻译,其中有一些论文没有解释清楚或者笔者未能深入理解的地方,都有放出原文,如有不当之处,请各位多多包含,并 ...

  5. bert论文笔记

    摘要 BERT是“Bidirectional Encoder Representations from Transformers"的简称,代表来自Transformer的双向编码表示.不同于 ...

  6. 【DL论文精读笔记】Object Detection in 20 Y ears: A Survey目标检测综述

    目标检测20年综述(2019) 摘要 Abstract 该综述涵盖了400篇目标检测文章,时间跨度将近四分之一世纪.包括目标检测历史上的里程碑检测器.数据集.衡量指标.基本搭建模块.加速技术,最近的s ...

  7. AFM论文精读

    深度学习在推荐系统的应用(二)中AFM的简单回顾 AFM模型(Attentional Factorization Machine) 模型原始论文 Attentional Factorization M ...

  8. Faster-RCNN论文精读

    State-of-the-art object detection networks depend on region proposal algorithms to hypothesize objec ...

  9. 【DL论文精读笔记】 深度压缩

    深度压缩 DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFM ...

  10. 【DL论文精读笔记】Image Segmentation Using Deep Learning: A Survey 图像分割综述

    深度学习图像分割综述 Image Segmentation Using Deep Learning: A Survey 原文连接:https://arxiv.org/pdf/2001.05566.pd ...

随机推荐

  1. [java安全基础 03]CC1

    Commons-Collerctions链条 Apache Commons-Collections简介 Apache Commons Collections是一个扩展了Java标准库里的Collect ...

  2. .net 下SSE使用demo

    所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推送"信息"(message).这种信息在格式上很简单,就是"信息"加上前缀&q ...

  3. 基于C++的OpenGL 06 之摄像机

    1. 引言 本文基于C++语言,描述OpenGL的摄像机 前置知识可参考: 基于C++的OpenGL 05 之坐标系统 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者这里不过多 ...

  4. MapboxGL基础

    1. 概述 Mapbox GL 是一套开源库,用于在 Web.移动和桌面应用程序中嵌入可自定义且响应迅速的客户端地图.Mapbox GL 贴图以高帧速率呈现.缩写"GL"来自行业标 ...

  5. K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品 nerdctl

    背景 2020 年 12 月初,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时. 弃用 Docker 带来的 ...

  6. Dockerfile构建python项目

    一.步骤 1.镜像基础 2.复制代码 3.设置工作目录 4.把需要执行的shell命令编写成脚本文件 5.配置容器启动自动执行脚本,CMD在docker run时运行脚本 DockerFile 脚本 ...

  7. ubuntu系统的虚机 迁移到大厂的云服务器 后发现 实例内网一直都是原虚机的内网IP,

    ubuntu SMC迁移 后发现 实例内网一直都是原虚机的内网IPip a能看到现在的ECS内网以及原虚机的内网 但是ifconfig看只有原虚机的内网IP于是 尝试dhclient eth0重启内网 ...

  8. Vulnhub:maskcrafter-1.1靶机

    kali:192.168.111.111 靶机:192.168.111.187 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...

  9. Vicinity Vision Transformer概述

    0.前言 相关资料: arxiv github 论文解读 论文基本信息: 发表时间:arxiv2022(2022.6.21) 1.针对的问题 视觉transformer计算复杂度和内存占用都是二次的, ...

  10. Centos7 安装mysql 5.7 教程

    安装 yum 源 需要在系统上启用 MySQL 5.7 Community Release YUM 存储库.用于 yum 存储库配置的 rpm 包可在 MySQL 的官方网站上找到. 首先将最新的My ...