zoukankan      html  css  js  c++  java
  • BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT简介

    特点

    1、Transformers

      BERT代表来Transformers的双向编码器表示。BERT旨在通过对所有层的左、右上下文进行联合调节,从未标记的文本中预先训练深层双向表示。

    2、可并行化设计

      对上一层的网络的依赖较小,易设计成并行化。

    一、相关网络结构图

    二、BERT的网络结构介绍

    1、输入

      经过Embedding处理的词向量模型,它包括Token Embeddings、Segmentation Embeddings、Position Embeddings。

    2、输出

      

    3、中间层

      中间层为transformer Encoder模型的组合。对于transformer模型的介绍请参考以下链接:https://www.cnblogs.com/wisteria68/p/13640422.html

    4、框架训练步骤:预训练-->微调

      框架训练有两个步骤:预训练和微调。在预训练过程中,用无标记数据进行模型不同预训练任务的训练。对于微调,首先用预先训练的参数初始化BERT模型,并使用来自下游任务的标记数据对所有参数进行微调。尽管它们是用相同的预先训练的参数初始化的,但每个下游任务都有单独的微调模型。

      BERT的总体预训练和微调程序。除了输出层,在预训练和微调中都使用相同的体系结构。相同的预训练模型参数 用于初始化不同下游任务的模型。微调期间,所有参数均进行微调。[CLS]是在每个输入示例前面添加的一个特殊符号,[SEP]是一个分隔符(例如。 将问题/答案分开)。

    4-1 Task #1: Masked LM

      不幸的是,标准条件语言模型只能从左到右或从右到左进行训练,因为双向条件反射将允许每个单词间接地“看到自己”和模式 我可以在多层上下文中简单地预测目标词。
      为了训练一个深度的双向表示,我们只需按百分比随机地屏蔽一些输入的单词,然后预测那些被屏蔽了的单词。我们把这个过程称为“masked LM”(MLM)。在我们所有的实验中,我们随机地屏蔽了每个序列中15%的单词。
      虽然获得了双向预训练模型,但缺点是在预训练和微调之间产生了不匹配,因为[MASK]在此期间没有出现微调。为了减轻这一点,不总是用实际的[MASK]替换“MASK”单词。训练数据生成器随机选择15%的单词进行预测。随机mask的时候10%的单词会被替代成其他单词,10%的单词不替换,剩下80%才被替换为[MASK]。

    4-2 Task #2: Next Sentence Prediction (NSP)

      许多重要的下游任务,如问答(QA)和自然语言推理(NLI),都是基于理解两个句子之间的关系,而不是通过语言建模直接捕捉到。为了训练能一个理解句子关系的模型,预先训练一个二元化的下一个句子预测任务,它可以从任何单语中简单地生成语料库。具体来说,当为每个预训练示例选择句子A和B时,50%的B是A之后的实际下一个句子(标记为ISNext),50%的是来自语料库的句子(标记为NotNext)。

    三、OpenAI GPT的网络结构介绍

    1、输入、输出

      输入、输出同BERT。

    2、中间层

      中间层为transformer Decoder模型的组合。对于transformer模型的介绍请参考以下链接:
    https://www.cnblogs.com/wisteria68/p/13640422.html

    四、ELMo的网络结构介绍

    1、输入、输出

      输入、输出同BERT。

    2、中间层

      中间层为包含LSTM的循环神经网络。对于循环神经网络模型的介绍请参考以下链接:
    https://www.cnblogs.com/wisteria68/p/13488819.html
    https://www.cnblogs.com/wisteria68/p/13491170.html

  • 相关阅读:
    C语言学习笔记-静态库、动态库的制作和使用
    各种消息队列的对比
    如何使用Jupyter notebook
    Ubuntu16.04配置OpenCV环境
    Docker容器发展历史
    Ubuntu OpenSSH Server
    SpringBoot 系列文章
    SpringBoot 模板 Thymeleaf 的使用
    18、spring注解学习(AOP)——AOP功能测试
    17、spring注解学习(自动装配)——@Profile根据当前环境,动态的激活和切换一系列组件的功能
  • 原文地址:https://www.cnblogs.com/wisteria68/p/13647917.html
Copyright © 2011-2022 走看看