【阅读记录】Bert:基于Transformer的双向编码器,基于上下文

参考文章

(10条消息) 【理论篇】是时候彻底弄懂BERT模型了(收藏)_愤怒的可乐的博客-CSDN博客_bert模型https://blog.csdn.net/yjw123456/article/details/120211601

基本思想:transformer,即句子中每个词都会与其他词一对一学习

原理

输入数据表示

[CLS]位本身没有语义,与文本中已有的其它词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个词的语义信息,从而更好的表示整句话的语义。

【阅读记录】Bert:基于Transformer的双向编码器,基于上下文_第1张图片

语言建模原理

        自回归语言建模:单向

        自编码语言建模:双向(better)

预训练策略

屏蔽语言建模:相当于英语的完形填空

任务描述:在一个屏蔽语言建模任务中,对于给定的输入序列,我们随机屏蔽15%的单词,然后训练模型去预测这些屏蔽的单词

问题:以这种方式屏蔽标记会在预训练和微调之间产生差异。即,我们训练BERT通过预测[MASK]标记。训练完之后,我们可以为下游任务微调预训练的BERT模型,比如情感分析任务。但在微调期间,我们的输入不会有任何的[MASK]标记(意味着模型没办法依赖这个标记来学习每个单词的位置)。因此,它会导致 BERT 的预训练方式与微调方式不匹配。

解决方法:随即屏蔽的15%单词采用80-10-10%规则

1、采用80%的概率下应用[MASK], 既可以让模型去学着预测这些单词, 又以20%的概率保留了语义信息展示给模型。

2、保留下来的信息如果全部使用原始token, 那么模型在预训练的时候可能会偷懒, 直接照抄当前token信息. 采用10%概率下random token来随机替换当前token, 会让模型不能去死记硬背当前的token, 而去尽力学习单词周边的语义表达和远距离的信息依赖, 尝试建模完整的语言信息.

3、最后再以10%的概率保留原始的token, 意义就是保留语言本来的面貌, 让信息不至于完全被遮掩, 使得模型可以"看清"真实的语言面貌。

下一句预测

任务描述:NSP是二分类任务,在此任务中,我们输入两个句子两个BERT,然后BERT需要判断第二个句子是否为第一个句子的下一句。

数据集

【阅读记录】Bert:基于Transformer的双向编码器,基于上下文_第2张图片

 训练方式

【阅读记录】Bert:基于Transformer的双向编码器,基于上下文_第3张图片

你可能感兴趣的:(bert,transformer,深度学习)