美文网首页
bert的trick理解-双向的理解

bert的trick理解-双向的理解

作者: 张知道q | 来源:发表于2021-01-14 14:29 被阅读0次

参考链接:

https://www.zhihu.com/question/322034410/answer/794201004

elmo通过双向lstm构造了双向

gpt利用了transformer中的decoder结构,且目标是语言模型,通过上文预测下文,无论是decoder的天然mask结构(掩盖下文),还是学习目标本身(通过上文预测下文),导致gpt本身是单向的模型

bert如何解决呢:

1、首先利用transformer的encoder部分,天然双向,词与词之间两两组合

2、利用MLM(mask language model)模型,加强模型对上下文的认知

BERT 作者表示受到完形填空任务的启发(其实我认为这里确实如@张俊林所言,有 CBOW 的影子,结合 CBOW 思考 BERT 的处理方式会非常好理解),不再是 GPT 中预测整个输入句子的输出,而是改为只预测这个句子中的某个词,并且把输入中这个词所在位置挖空并用"[MASK]"替换,随后输出层在被挖掉的词位置,接一个分类器得到被mask掉的词概率大小。

mask策略:

选取语料中所有词的15%进行随机mask

选中的词在80%的概率下被真实mask

选中的词在10%的概率下不做mask,而被随机替换成其他一个词

选中的词在10%的概率下不做mask,仍然保留原来真实的词

mask策略意图:

为什么还要有一部分的 mask 输入一个实际的词,这样做的好处是尽量让训练和finetune的时候输入保持一致,因为finetune的时候输入中是没有“[MASK]”标记的,对于保留为原来的真实词,也就是真的有10%的情况下是泄密的(占所有词的比例为15% * 10% = 1.5%),作者说这样能够给模型一定的bias,相当于是额外的奖励,将模型对于词的表征能够拉向词的真实表征(此时输入层是待预测词的真实embedding,在输出层中的该词位置得到的embedding,是经过层层Self-attention后得到的,这部分embedding里多少依然保留有部分输入embedding的信息,而这部分就是通过输入一定比例的真实词所带来的额外奖励,最终会使得模型的输出向量朝输入层的真实embedding有一个偏移,而如果全用mask的话,模型只需要保证输出层的分类准确,对于输出层的向量表征并不关心,因此可能会导致最终的向量输出效果并不好);最后,BERT对选中的词在10%的概率下不做mask,而是被随机替换成为一个其他词,这样做的目的,BERT也给出了他们的解释,也就是上方原文引用部分的第一段:因为模型不知道哪些词是被mask的,哪些词是mask了之后又被替换成了一个其他的词,这会迫使模型尽量在每一个词上都学习到一个全局语境下的表征,因而也能够让BERT获得更好的语境相关的词向量(这正是解决一词多义的最重要特性)。

简单来讲:

1、为什么要做mask:

为了理解双向的语义

2、为什么要保留原来的词:

为了训练和finetune的一致性,因为fineturn阶段是没有mask标记的,所以如果没有原来的词,全都是mask的话,模型的目标为倾向于学习的分类目标,而不是词向量的表达。

3、为什么要随机替换原来的词

因为模型不知道哪些词是被mask的,哪些词又被替换成了另外一个的词,所以会迫使模型在尽量在每一个词上都学习到一个全局语境下的表征

相关文章

  • bert的trick理解-双向的理解

    参考链接: https://www.zhihu.com/question/322034410/answer/794...

  • bert的trick理解-损失函数的理解

    参考文献:https://www.jianshu.com/p/63943ffe2bab MLM:在 encoder...

  • bert的trick理解-其他问题

    参考文献:https://www.jianshu.com/p/63943ffe2bab https://zhuan...

  • bert的trick理解-gelu损失函数

    GELU 激活函数 损失函数详解:https://mp.weixin.qq.com/s/pA9JW75p9J5e5...

  • 理解Bert

    离开深度学习瞎折腾了一段时间后,我终于又回来了。 于是赶紧回顾了下18年之后NLP的发展,基本就是将迁移学习更广泛...

  • 双向的才是理解

    理解简单的说,包含宽容与肯定。而两个人之间的理解应该是双向的,双向的理解能让双方都清楚之间的苦楚,而如果建...

  • K-BERT理解

    0. Abstract BERT它是一种从大规模语料库中学得语言表征的模型,但是,在专业领域表现不佳。为了解决该问...

  • 理解双向绑定

    大家好,我是IT修真院北京分院第20期的学员王野,一枚正直纯洁善良的程序员 今天给大家分享一下,修真院官网JS任务...

  • NLP必读 | 十分钟读懂谷歌BERT模型

    目录 一、前言 二、如何理解BERT模型 三、BERT模型解析 1、论文的主要贡献2、模型架构3、关键创新3、实验...

  • BERT(二) BERT解读及应用

    前面已经说了transformer(BERT(一) Transformer原理理解[https://www.jia...

网友评论

      本文标题:bert的trick理解-双向的理解

      本文链接:https://www.haomeiwen.com/subject/yoxvaktx.html