从Transformer到BERT模型-葛瀚骋

一词多义例子

Bank在前两句是银行,后两行是河床(river bank)

ELMo:用长文本训练词向量,而不是窗口;使用了CNN建立词的表达

一个词给出三个Embedding,不是固定的,则可以很好地解决一词多义,可以理解成一个词给三个意思,最后将三个加权平均在一起,看选哪个

将ELMo中的LSTM换成transformer之后就是BERT

LSTM:迭代的,顺序的,一个词接着一个词进行训练的

Transformer:并行的,全部词同时训练。所以会缺少位置信息,需要增加位置信息,理解词间关系(谁在前谁在后)

其中最重要的是多头注意力机制。

Transformer回顾:

即给定一个Q,找到K,算出Q、K的相关度,即注意力多少,再用V表示。

BERT:使用transformer的双向编码器词向量表达,只用到了transformer的编码器部分。

Google于2018年提出

由两部分组成:预训练模型+fine-tuning。第一部分从非常大量的文本中做预训练,第二部分是针对某一种具体的任务(如QA)进行微调

是一种站在巨人肩膀上的模型,及众家之所长:

1、给上下文预测下一个词,如word2vec

2、GPT:第一个使用transformer的,openAI开发出来的模型

3、结构是双向的,如同ELMo

两个task同时训练

灵感来自于完形填空,一句话挖掉一部分,根据其他部分把这部分填入

Bert一共mask15%的token,其中80%用mask特殊字符取代,10%用其他词取代,剩下10%不变。最后计算loss时,只针对被mask的token,其他不关注。

Bert设置了最大句子长度,对于超长的可以在开头或结尾随机去掉一些token。

Base版有12个head,不同的head可以抓住不同的特征,包括全局的和局部的

Base版有12个layer,同一层里的head相互之间很接近

每一层之间的head都差不多,head内部却很不一样

Bert学到了什么呢?

指标高代表在这个任务中该layer发挥的作用大

Base版会学12个embedding,加强版学24个,最后加权平均,蓝色越大代表权重越大

例子:北京天气怎么样?上海呢?   其实是指天气

他是谁?川普,他的妻子是谁?     他指的是川普

多语言混合训练效果更好:

BERT的应用:

Bert的问题,模型太大了,不方便使用:

DistilBERT:学了一半

TinyBERT:从里到外把老师全学了,效果好而且参数少

使用teacher-student模式压缩模型规模,用老师训练出很多学生,规模小且越来越接近老师的水平

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容