BERT 详解(三)

作者: 6c643a7fc0e6 | 来源:发表于2019-12-28 14:51 被阅读0次

    BERT 有两个自然语言处理任务的预训练:

    • Masked Language Modeling
    • Next Sentence Prediction

    1. Masked LM

    目前,有的模型是从左到右的上下文中训练模型或者简单连接从左到右和从右到左的上下文中训练模型,比如:ELMo 模型是试图在从左到右和从右到左的上下文中训练两个LSTM语言模型,并将其简单连接起来。

    BERT 是一个深度双向模型,网络有效地从标记的左右上下文捕获信息,从第一层一直到最后一层。这就 BERT 比 OpenAI GPT 和 ELMo 优越之处,如下图所示:

    bert_01.png

    通过上图可以看出,BERT 是双向的,GPT 是单向的(信息只从左到右流动),ELMo 是浅双向的。

    2. 示例

    为了训练深度双向表示,我们采用了一种直观的方法,随机掩盖一定比例的输入标记,然后仅预测这些被掩盖的标记,我们把这种方法称为:Masked LM(MLM,遮蔽语言模型)

    例如:“我喜欢阅读桃子说产品上的简书博客”。想要训练一个双向的语言模型,可以建立一个模型来预测序列中的遗漏单词,而不是试图预测序列中的下一个单词。将“桃子”替换为“[MASK]”,表示丢失的标记。然后,以这样的方式训练模型,使其能够预测“桃子”是本句中遗漏的部分:“我喜欢阅读[MASK]说产品上的简书博客”。这是 Masked LM 的关键。

    3. 缺点

    虽然这确实可以让我们获得双向预训练模型,但这种方法有两个缺点:

    • 因为被掩盖的标记在微调过程中永远不可见,所以,我们在预训练和微调之间制造了一种不平衡。

    • 使用一个 MLM 意味着每个 batch 中只有15%的标记会被预测,所以在与训练的时候收敛需要更多步,MLM 的收敛速度比从左至右的模型(预测每一个标记)慢,但是和 MLM 带来的巨大提升相比,这么做是值得的。

    4. 建议

    • 为了防止模型过于关注特定的位置或掩盖的标记,训练数据生成器随机掩盖 15% 的词。掩盖的词并不总是被 [MASK] 替换,因为在微调时不会出现 [MASK];

    • [MASK] 替换的概率为 80%;

    • 随机词替换的概率为 10%;

    • 不进行替换的概率为 10%。

    例如:在句子“my dog is hairy”中,它选择了“hairy”,数据生成器并不总是用 [MASK] 替代所选的单词,而是执行以下操作:

    1. 80%的时间:用 [MASK] 标记替换单词,如:my dog is hairy → my dog is [MASK]。
    2. 10%的时间:用一个随机的单词替换单词,如:my dog is hairy → my dog is apple。
    3. 10%的时间:保持单词不变,如:my dog is hairy → my dog is hairy。这样做的目的是表示偏向于实际观察到的单词。

    相关文章

      网友评论

        本文标题:BERT 详解(三)

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