BERT 总结

BERT总结

一、 rnn和cnn的局限性

RNN的输入是一串vector sequence ,输出是另外一串vector sequence。如果是单向RNN,输出b4时候,会把a1到a4都看过,输出b3时候,会把a1到a3都看过。
所以RNN存在的问题是不容易被平行化,即要算出b4,那么需要从a1依次看到a4才能算出。
CNN的好处是可以平行化,缺点是每一个CNN只能考虑非常有限的内容,要叠加很多层才能看到长期资讯。
CNN的特点是局部连接和权值共享。由输入层,卷积层,激活函数,池化层,全连接层组成。


二、self-Attention

过程
1,将单词转换成词向量
2,乘以三个不同的权值矩阵Wq,Wk,Wv得到Q,K,V
3,Q乘以K的转置
4,裁剪原因是如果点乘结果过大,会使得经过softmax之后的梯度很小,不利于反向传播
5,softmax归一化
6,结果点乘V得到Z

注释
(1)点积的集合意义:两个向量越相似,他们的点积就越大,否则就越小。
(2)d为向量q和v的维度,直观解释公式中除以根号d是因为q和k做点积的数值会随着维度增加而增大,为了把注意力矩阵变成标准正态分布,使得softmax归一化后的结果更加稳定,以便反向传播的时候获取平衡的梯度。
在这里插入图片描述

三、Multi-head self-Attention

用多头是因为我们要用注意力机制来提取多重语意的含义。
多头的好处是不同的head关注点不一样,多个头有多个Wqkv组合,可以关注不同的特点,获得不同特征,更有整体性。
在这里插入图片描述

四、BERT

bert输入字向量(token embedding)文本向量(segment embedding)位置向量(position embedding)
最后bert模型将三种向量的加和作为模型输入。
bert输出是文本中各个字词融合了全文语义信息后的向量表示

BERT预训练任务

bert用的是transformer的encoder侧的网络结构,使用了大规模数据进行预训练,用了两个任务来预测训练模型,第一个是maskLM方式,在输入一句话的时候,随机选取一些要预测的词mask掉,15%的概率mask词,80%用[mask]替换,10%随机替换其他字,10%不替换,然后根据上下问预测这些字。
第二个任务是NSP,判断两个句子在文章中是否为上下文,然后用语料进行训练。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值