bert中为什么要这么msdk(80% mask, 10% 随机替换,10% 保持原词)

bert在训练阶段不是将15%的词汇MASK掉,从而采用自监督的方式训练模型,那我直接将这15%mask掉不就好了吗,为什么又要进行80% mask,10% 随机替换,10% 保持原词呢?起初我看到的时候也比较迷惑,下面是我的理解。

一、训练阶段与测试、微调阶段的不对等关系

在训练阶段mask掉词汇,输入是:“我”“喜欢”“吃”“鱼”“但是”“mask”“的”“刺”“很多”,对吧,这样通过自己监督训练,不断调整模型的权重,提高模型的性能。

但是在测试阶段,我们是怎么测试的,依旧是输入带mask的句子,通过预测mask的单词,来评判准确度吗,这不有点多此一举吗。。。测试阶段应该是直接输入完整的句子,分词后得到token,然后在得到token对应的词向量,然后在过一个多分类器(类别个数为词袋的大小),然后得到Y_hat_test,之后与Y_test求差值,评判模型。整个过程不涉及mask。

微调阶段也一样,我们也是输入一句话,然后得到对应的词向量,之后就拿着词向量去做别的事情了,输入中也没有mask。

这就会形成一种不对等关系,训练阶段和测试、微调阶段不对等,我们又没法完全消除这种不对等(①训练时不做mask:不行,②测试、微调也做上mask:也不行),我们就通过这种80% mask,10% 随机替换,10% 保持原词的方式减少不对等关系。

二、采用这种方式可以使bert更注重语义理解

此外呢,如果我们在训练时,不是用这种方式,而是全部mask掉的话,模型就会把虽有的注意力集中到“mask”这个词汇上了,模型就能知道不出现“mask”的地方我不用管,啥时候出现“mask”我在管,这对模型提取语义关系是不利的。

使用(80% mask,10% 随机替换,10% 保持原词)的方式之后呢,模型不只是需要在“mask”位置做工作,还要时刻预防着随机替换的情况呀,也就是检查这个句子对不对,这就大大提高了模型提取语义效果的能力。

在这里分享一位up主的讲解视频,描述的更加生动:04 BERT 之为什么要做语言掩码模型(MLM)?_哔哩哔哩_bilibili

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值