NLP里的迁移学习:BERT

本文探讨了NLP中的迁移学习,重点介绍了word2vec和BERT模型,强调了BERT如何通过预训练和微调机制抽取丰富的语义信息,以及其在Transformer架构上的创新,包括更大的模型、输入修改和双任务预训练。
摘要由CSDN通过智能技术生成
NLP里的迁移学习:
  • 使用预训练好的模型来抽取词、句子的特征

    • 例如word2vec或语言模型

  • 不更新预训练好的模型

  • 需要构建新的网络来抓取新任务需要的信息

    • word2vec忽略了时序信息,

      语言模型只看了一个方向

word2vec的训练模式有两个:利用边上词预测中间词 和 利用中间词预测边上词;

可以看做是一个训练网络,训练起来比较快,可以利用大量的数据去训练。

一般使用这种语言模型,不会去修改预训练好的模型,他的缺点是只能提取比较底层的特征,所以很多时候只是把word2vec模型用在嵌入层,就是替换掉原始的随机嵌入,就是开始就把词语转化为一个嵌入向量,包含了一些底层特征。但是后续还是要利用或设计一些复杂的模型进一步提取特征,如CNN、RNN等,就是利用一些和目标任务相关的网络来抽取需要的特征。

因为word2vec只提取到了一些局部信息,没有看到很多时序信息,一般是只看到了一个方向的信息。语言模型也只看到了一个方向的信息。

BERT的动机:
  • 基于微调的NLP模型(迁移学习)

  • 预训练的模型抽取了足够多的信息(使得抽取的特征信息能够抓住输入文本的很多语义信息,当做一个新任务是,只需要增加一个简单的输出层就行了(转化为最终任务需要的label空间中),不需要再额外叠加其他的CNN RNN等模型提取特征了)

  • 新的任务只需要增加一个简单的输出层

BERT架构:
  • 只有编码器的Transfomer

  • 两个版本:

    • Base:#blocks=12,hidden size=768,#heads=12,#parameter=110M

    • Large:#blocks=24,hidden size=1024,

  • 在大规模数据上训练 > 3B词

(第一个在nlp上用的很深的网络,能够抽取出比较好的特征,并很好地用于其他模型)

bert在输入和loss上是有创新的。

对输入的修改:
  • 每个样本是一个句子对 通过<SEP>来分割句子 变成 两个小句

  • 加入额外的片段嵌入(使得transformer模型能够区分两个句子)

  • 位置编码可学习 (不进行手工设计,模型自己学习得到 位置编码向量)

预训练任务1:带掩码的语言模型
  • Transfomer的编码器是双向的,标准语言模型要求单向

  • 带掩码的语言模型每次随机(15%)将一些词元换成<mask>

bert不能做预测下一个词

encoder是双向的,它是知道上下文双向信息的;decoder才是单向的

bert不是去预测未来的,是做完形填空的,它能知道双向信息,但因为在微调任务中,data里面没有<mask>这个东西,现在bert训练时加了很多mask,但是在微调的时候是没有mask的,bert不是要看见mask就去预测,所以对mask有如下改动:

保持原来的token:就是看到自己的信息,有点像 作弊

这样改变mask会使得模型不会看见mask就去预测。

因为在实际应用预训练模型时,是没有mask的,所以这种作弊下的改动就是和实际应用预训练 模型而没有mask的情况类似。

预训练任务2:下一句子预测
  • 预测一个句子对中两个句子是不是相邻的 二分类任务

  • 训练样本中:

    • 正样本:50%概率选择相邻句子对:<cls>this movie is great <sep> i like it <sep>

    • 负样本:50%概率选择随机句子对:<cls>this movie is great <sep> hello <sep>

  • 将<cls>对应的输出放到一个全连接层来预测

总结
  • BERT针对微调设计

  • 基于Transfomer的编码器做了如下修改

    • 模型更大,训练数据更多

    • 输入句子对,片段嵌入,可学习的位置编码

    • 训练时使用两个任务:

      • 带掩码的语言模型

      • 下一个句子预测

  • 31
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值