美文网首页
Bert基础介绍

Bert基础介绍

作者: 骆旺达 | 来源:发表于2020-09-11 17:14 被阅读0次

BERT理解

1、预训练模型

BERT是一个预训练的模型,那么什么是预训练呢?

假设已有A训练集,先用A对网络进行预训练,在A任务上学会网络参数,然后保存以备后用。(预训练过程)

当来一个新的任务B,采取相同的网络结构,网络参数初始化的时候可以加载A训练集学习好的参数,其他的高层参数随机初始化,之后用B任务的训练数据来训练网络,当加载的参数保持不变时,称为"frozen",当加载的参数随着B任务的训练进行不断的改变,称为“fine-tuning(微调)”,即更好地把参数进行调整使得更适合当前的B任务。(迁移transformer)

2、基础任务实现

(1)序列标注:分词、实体识别、语义标注等; (2)分类任务:文本分类、情感计算、立场分类、方面级情感分析; (3)句子关系判断:entailment(文本蕴含)、QA、自然语言推理; (4)生成式任务:机器翻译、文本摘要;

3、Bert预训练模型的两个子任务

为什么bert对文本处理能力强:

(1)Marked Language Model(MLM):语言模型

输入一个文本,bert随机mark句子中的词,让模型根据mark后的句子,去预测被mark的词是什么?

即:输入 I like apple because apple is nice

模型转换成:I like [mark] because apple is nice.

模型预测: [mark]=>”apple”

具体的训练数据构造方法是,对每个数据句子中 15% 的概率随机抽取 token,以 80% 的概率替换为 [MASK],10% 的概率替换为其他 token,10% 的概率保持不变。之所以不全替换为 [MASK],是为了减少 pre-training 和 fine-tuning 阶段输入分布的不一致,因为 fine-tuning 阶段的输入是没有 [MASK] 的。

(2)Next Sentence Prediction(NSP):学习上下文关系

任务除了理解单个句子以外,还需要理解两个句子的关系,比如问答和推理任务。为了让模型能够理解学习句对之间的关系,所以提出了第二个预训练任务NSP。NSP取[CLS]的最终输出进行二分类,判断当前输入的两句话是否连贯,类似句子粒度的语言模型,让模型学习输入句子对之间的关系。

具体的训练数据构造方法是,对于 sentence A,sentence B 以 50% 的概率为 sentence A 的下一句,以 50% 的概率进行随机负采样,即从语料库中随机抽取一个句子。

4、预训练数据集

  • BookCorpus数据集(800M words)

  • English Wikipedia数据集(2,500M words)

后续有很多Bert模型,并加入诸如新闻,推特的新数据集,比较有名的如下:

Robert (中/英文预训练模型):改进Bert子任务

XLnet(中/英文预训练模型):改进Bert子任务

Albert(中/英文预训练模型):压缩bert参数,使其性能与bert接近

5、实验数据以及对应的NLP任务
MNLI:蕴含关系推断
QQP:问题对是否等价
QNLI:句子是都回答问句
SST-2:情感分析
CoLA:句子语言性判断
STS-B:语义相似
MRPC:句子对是都语义等价
RTE:蕴含关系推断
WNLI:蕴含关系推断

image.png

参考文献:

1、https://www.jianshu.com/p/3999a7cef222

2、https://blog.csdn.net/laobai1015/article/details/87937528

3、Bert论文解读https://zhuanlan.zhihu.com/p/46833276

4、论文下载地址https://arxiv.org/pdf/1810.04805.pdf

相关文章

  • Bert基础介绍

    BERT理解 1、预训练模型 BERT是一个预训练的模型,那么什么是预训练呢? 假设已有A训练集,先用A对网络进行...

  • BERT 详解(二)

    1. BERT 结构 BERT是以 Transformer 为基础的,目前有两种变体: BERT Base:12层...

  • BERT

    1.BERT介绍 2.基于Bert的多标签文本分类 3.基于Bert的命名实体识别

  • 使用simBert生成同义语句(全过程)

    一、simbert介绍和下载 simbert模型,是由苏剑林开发的模型,以Google开源的BERT模型为基础,基...

  • Bert PyTorch 实现

    本文主要介绍如何使用PyTroch复现BERT。在此之前可以先阅读文章BERT详解(附带ELMo、GPT 介绍[h...

  • TensorFlow的Save与Restore方式

    最近需要对Bert做些优化,看了下bert_as_service的代码发现GraphDef相关的基础有些缺失,开个...

  • Bert笔记

    本文会尽可能详细的介绍BERT的结构,预训练方法细节 一 BERT的结构 BERT的具体结构如下图所示,其只用到了...

  • Bert预训练模型

    NLP预训练模型简介 旺达 一、BERT简单文本分类实例 1、bert详细运行介绍--tensorflow htt...

  • XLNet: Generalized Autoregressiv

    1. 创新点 XLNet主要解决了Bert存在的一些问题,所以在介绍XLNet前,先简单介绍一下Bert,及其问题...

  • 关于最近的NLP模型Bert、Elmo、GPT(下--1)

    这篇文章介绍Bert,但是暂时还没研究完,所以只能分两部分写。这篇文章主要介绍bert的思想和创新点,下一篇文章主...

网友评论

      本文标题:Bert基础介绍

      本文链接:https://www.haomeiwen.com/subject/ivjbektx.html