赞
踩
感谢@贪心科技 @葛瀚骋老师的讲解;附上NLP系列第三场《从Transformer到BERT模型》笔记整理;本篇文章仅在于记录课程内容略加入自己的理解与扩充。
btw 如果您觉得文章对您有帮助,可以在文末戳赞同表示支持~后面的课程也会分享笔记给大家~(因为我发现前两篇文章的收藏数是点赞数的十几倍。。emmm,据说收藏不点赞的都是耍流氓 [狗头保命]
一词多义(polysemous words)在自然语言理解中是一个难解决的问题;
例如:bank(银行、河堤);apple( 、MacBook);...
2. Transformer
宅家NLP (二) —— Self-Attention与Transformerzhuanlan.zhihu.com论文地址:https://arxiv.org/pdf/1810.04805.pdf
BERT的输入由三部分组成:token embeddings & position embeddings & segment embeddings (segment embedding是比transformer的输入多出的一部分,用0和1来表示token属于哪个句子,在下游任务中发挥作用)
2. Two operations
在大量语料上pre-training;在下游任务上fine-tuning
3. Two tasks in pre-training
在训练过程中,随机mask掉15%的token,这其中80%的token用[MASK]替换,10%随即用其他token替换,另外10%保持不变;
原因分析可参考:
用于判断一句话是否是另一句话的下一句(next sentence),这一预训练任务在需要关注两个句子的任务,如文本蕴含中会发挥有效作用;
因此,BERT在预训练时的loss function由以下两部分组成:
Loss_BERT = Loss_MLM + Loss_NSP (实质上是multi-task的原理)
4. parameters
BERT-Base: 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Large: 24-layer, 1024-hidden, 16-heads, 340M parameters
5. 从Word2Vec到BERT
6. BERT的局部信息和全局信息可视化
(全局的图看的太专注漏截了:(,可以参考上一篇文章中transformer的8个head学习到的信息的可视化图例:)
局部信息:
结论:同一个layer(局部)的所有12个head学到的信息差不多,全局上12个head学到的信息有很大的不同,使得bert对多义词的表示、对句法语义的理解更深入;
7. BERT —— what it learns?
结论:不同的任务下,不同的layer发挥的作用不同;
因此在实践中,可以尝试将bert每层的输出都取出来,求和或者算平均等;
8. BERT的应用
分类、问答、命名实体识别、聊天机器人、机器阅读理解等;
由于BERT模型参数量很大,在很多实际应用场景中受到计算资源等的限制无法高效的应用,因此出现了模型压缩方面的研究。(在下在蒸馏方面也有一些研究,后续会整理一些代码和工作分享出来;
方法:剪枝、量化、蒸馏
蒸馏方面的两个重要工作:
distillbert:
Distilling Task-Specific Knowledge from BERT into Simple Neural Networksarxiv.orgtinybert:
https://arxiv.org/abs/1909.10351arxiv.org为什么分类只用[CLS] token就可以了?
因为深层的双向transformer结构使得[CLS] token已经包含了句子中的所有token的信息,事实上句子中每个token包含的信息都差不多;
(别问为什么只有一个提问,问就是困了...
btw 如果您觉得文章对您有帮助,可以在文末戳赞同表示支持~后面的课程也会分享笔记给大家~(据说收藏不点赞的都是耍流氓 [狗头保命]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。