google bert 论文阅读

35 篇文章 0 订阅

1.原文解读

  • Bidirectional Encoder Representations from Transformers,bert,根据字面意思,训练的其实还是一个embedding,而且还是一个字级别的word embedding,通过这个embedding,有两种用法,一种是将其作为特征,训练特定的任务时候,不学习这些参数,通过设计特定的架构来实现不同的任务,第二种是将其作为骨干网络,然后加简单的全联接层和softmax来实现其他特定的任务。
  • 感觉主要的贡献,其实是设计了两个“无监督”的task,去学习这些embedding,有点像数学建模?第一个是Masked LM,训练的其实是一个随机的完型填空任务,通过训练这个任务,来学习每个词也就是token的embedding表达,完型填空学的可能是句子内的词之间的一个关系。另一个任务是 Next Sentence Prediction,输入两个句子,判断第二个句子是不是前一个句子的下一个句子,数据很好建立,正样本可以直接去两个连续的句子得到,负样本在不是连续的句子的语料中,随机选一个就好,论文说学习的是句子间的关系。总感觉少了点什么,设计一个更好的task,是不是就能更好的学习句子之间的关系了?或者类似n-gram的意思,多学几个效果会更好?
  • 训练Masked LM时,抽取15%的词汇来做完型填空,其他的不用,做完型填空时,80%几率用mask代替,做完型填空task,来学词的embedding,10%用其他词来替换,10%用原来的词。为啥不全部用mask替换呢?做完型填空任务时,输入的时候会有mask这个token,就是根据这个token的embedding,来预测原始的mask代表的是哪个词的,这里学到的可能是上下文词与缺失的这个mask的关系,那么在fine-tuning阶段做特定的任务是,希望得到的embedding最重要的是没个词真正代表的意思,而不仅仅是上下文得到的信息。还有 10% random token 是因为如果都用原 token,模型在预训练时可能会偷懒,不去建模单词间的依赖关系,直接照抄当前词???总感觉有些牵强。
    在这里插入图片描述
    来自https://zhuanlan.zhihu.com/p/46833276
  • 不同的任务只需要在bert基础上做一些简单的修改,然后fine-tuning就行,例如SQuAD,其实就是预测一个start位置和end位置,NER任务就是预测每个token属于哪一类的问题,详细见:
    在这里插入图片描述

2.其他的一些阅读资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值