关于BERT的相关问题

Transformer和BERT的位置编码有什么区别?

BERT的位置编码是学习出来的,Transformer是通过正弦函数生成的。

原生的Transformer中使用的是正弦位置编码(Sinusoidal Position Encoding),是绝对位置的函数式编码。由于Transformer中为self-attention,这种正余弦函数由于点乘操作,会有相对位置信息存在,但是没有方向性,且通过权重矩阵的映射之后,这种信息可能消失。

BERT中使用的是学习位置嵌入(learned position embedding),是绝对位置的参数式编码,且和相应位置上的词向量进行相加而不是拼接。

BERT模型结构是什么?

利用Transformer结构构造了一个多层双向的encoder网络。

BERT预训练任务是什么?

任务1:遮挡语言模型(Masked Language Model)。方法:随机遮挡每个sequence中的15%的词(替换为统一标记[MASK]),然后预测这些被遮挡的词。

任务2:下一句预测(Next Sentence Prediction)。方法:把50%输入sequence中的句子对的B句子随机替换,然后预测B是否是A的下一句。

BERT学习目标是什么?

利用大规模无标注语料训练,获得文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务。

怎么设计让BERT学到语义信息的?

通过遮挡语言模型(Masked Language Model),预测被[MASK]代替的词,不断的“对比”上下文的语义,句法和词义信息,从而学到了大量相关的知识。

BERT embedding layer有三个嵌入层的含义?

Token-embedding:将单词转换为固定维的向量表示形式,在BERT-base中,每个单词都表示为一个768维的向量。

Segment-embedding:BERT在解决双句分类任务(如判断两段文本在语义上是否相似)时是直接把这两段文本拼接起来输入到模型中,模型是通过segment-embedding区分这两段文本。对于两个句子,第一个句子的segment-embedding部分全是0,第二个句子的segment-embedding部分全是1。

Position-embedding:BERT使用transformer编码器,通过self-attention机制学习句子的表征,self-attention不关注token的位置信息,所以为了能让transformer学习到token的位置信息,在输入时增加了position-embedding。

Position-embedding可以拼接吗?

引入外部知识源时,会出现多个embedding,输入给模型时一般不要直接相加,会损失信息,可以把不同的embedding拼接在一起,如果维度过高的话,可以在通过一个全连接层降低维度。

如何加速Bert模型的训练。 

混合精度训练。

BERT的CLS向量为什么可以用来分类?

与文本中已有的其它token相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。

为什么已经有85%不进行“mask策略”修改的token,还需要在15%进行“mask策略”的token中选取10%保持原词不变?

BERT预训练模型在训练阶段采用MLM任务,会给数据引入[mask]这种标记。但是在下游任务的数据中是没有这种标记的。因此BERT作者设计了“mask策略”的数据修改方式。

BERT的输入数据
BERT预训练模型会对输入数据进行“mask策略”的修改。具体为:
保留85%的token不进行“mask策略”的修改(也就是单词还是其本身
对15%的token进行“mask策略”的修改

“mask策略”
对于被选中 需要进行“mask策略”的token:
以80%的概率替换为[MASK]标记;
以10%的概率替换为词表中的任意一个随机的词;
以10%的概率保持原词不变,即不替换。(也就是单词还是其本身

原因分析:
核心原因1:想让模型“明白” 输入的数据中包含真实的单词
核心原因2:85%的那部分token不参与梯度更新
虽然BERT模型会将全部输入的token最终转化为词向量,并预测出来对应的token,但是只有15%进行“mask策略”的token才会计算loss并进行反向传播,能够影响模型。因此,虽然数据中存在85%的token没做任何修改,但是并不能让模型“明白”输入的数据中包含真实的单词。恰恰需要15%能够影响模型的token中,10%不进行替换的单词才能让模型“明白”输入数据中也不全是有错误的。因此能够缓解预训练阶段有[mask],而下游任务没有[mask]这个不一致问题。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值