BERT预训练模型学习笔记

1.Transforme

1.1 要做一件什么事

  • 基本组成依旧是机器翻译模型中常见的Seq2Seq网络
  • 输入输出都很直观,其核心架构就是中间的网络设计了
  • MxN,输入M,输出N

1.2 传统的RNN网络有什么问题

在这里插入图片描述

  • 传统RNN是一个时序模型,下一个RNN的输入依靠上一个RNN的输出,不能做到并行计算
  • 由于不能并行计算,到时无法在工业级进行大规模数据处理使用

1.3 Self-Attention机制

  • Self-Attention机制来进行并行计算,在输入和输出都相同

  • 输出结果是同时被计算出来的,现在基本已经取代RNN了

  • 在这里插入图片描述

  • 传统的word2vec表示向量时有什么问题? 预训练好的向量就永久不变了

  • 不同语境中相同的词如何表达?

对于输入的数据,你的关注点是什么?如何才能让计算机关注到这些有价值的信息?对于一句话,在不同的语境中所关注的地方也不一样,例如这两句话中的it:

在这里插入图片描述

1.4 self-attention如何计算?

  1. 输入经过编码后得到向量

  2. 想得到当前词语上下文的关系,可以当作是是加权

  3. 构建三个矩阵分别来查询当前词跟其他词的关系,以及特征向量的表达。

    在这里插入图片描述

    三个需要训练的矩阵:Q: query,要去查询的;K: key,等着被查的;V: value,实际的特征信息

    在这里插入图片描述

    q与k的内积表示有多匹配;输入两个向量得到一个分值;K: key,等着被查的;V: value,实际的特征信息

    在这里插入图片描述

    每个词的Attention计算,每个词的Q会跟整个序列中每一个K计算得分,然后基于得分再分配特征

    在这里插入图片描述

    Attention整体计算流程:

    • 每个词的Q会跟每一个K计算得分
    • Softmax后就得到整个加权结果
    • 此时每个词看的不只是它前面的序列而是整个输入序列
    • 同一时间计算出所有词的表示结果

1.5 multi-headed机制

一组q,k,v得到了一组当前词的特征表达;通过不同的head得到多个特征表达;将所有特征拼接在一起;可以通过再一层全连接来降维

在这里插入图片描述

堆叠多层,计算方法都是相同的

在self-attention中每个词都会考虑整个序列的加权,所以其出现位置并不会对结果产生什么影响,相当于放哪都无所谓,但是这跟实际就有些不符合了,我们希望模型能对位置有额外的认识。

  1. 加入归一化Normalize 2. 连接:基本的残差连接方式

2.BERT

BERT(Bidirectional Encoder Representations from Transformers),说白了就是transformer的encoder部分,并不需要标签,有预料就能训练了

2.1 如何训练BERT

方法1:句子中有15%的词汇被随机mask掉

交给模型去预测被mask的家伙到底是什么

词语的可能性太多了,中文一般是字

如果BERT训练的向量好,那分类自然OK

在这里插入图片描述

方法2:预测两个句子是否应该连在一起

[seq]:两个句子之前的连接符,[cls]:表示要做分类的向量

在这里插入图片描述

2.2 如何使用BERT

  • github已经开源,直接使用训练好了的模型就行
  • 所需的任务融入BERT中即可,它俩一起训练的!
  • 端到端的输入输出方式,直接套用深度学习模型关注输入输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程哥哥吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值