[普通]解释BERT为什么是双向表示

作者(passion) 阅读(1078次) 评论(0) 分类( 软件)

之前也没有仔细思考这个问题, 近几天重新看了一遍BERT模型,发现之前的理解确实有问题,所以过来填坑。

在说明BERT的双向表示前,先回顾一下常见的双向表示

网络结构的双向

首先区别于biLSTM那种双向, 那种是在网络结构上的双层

例如 biLSTM来进行一个单词的双向上下文表示
在这里插入图片描述
可以看到, 这种在网络结构上, 每个单词都从正向和反向都得到一个表示, 然后将此表示进行连接, 则此时认为这就是单词的双向表示

在没有深思之前,我也一直以为BERT是使用上面的模式,而当我看到BERT的结构是这样的,说明我之前是错误的理解:
在这里插入图片描述
请注意,BERT并没有说讲一个序列反向输入到网络中,所以BERT并不属于这种。

BERT中的双向表示

那么BERT 是如何说明是双向表示呢?

首先我们指导BERT的预训练模型中,预训练任务是一个mask LM ,通过随机的把句子中的单词替换成mask标签, 然后对单词进行预测

这里注意到,对于模型,输入的是一个被挖了空的句子, 而由于Transformer的特性, 它是会注意到所有的单词的,这就导致模型会根据挖空的上下文来进行预测, 这就实现了双向表示, 说明BERT是一个双向的语言模型
在这里插入图片描述


« 上一篇:fastlabel 最强版标注神器,想你所想,做你想做
« 下一篇:预训练中Word2vec,ELMO,GPT与BERT对比
在这里写下您精彩的评论
  • 微信

  • QQ

  • 支付宝

返回首页
返回首页 img
返回顶部~
返回顶部 img