机器学习(李宏毅)——BERT

发布于:2025-02-14 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!
读这篇文章必须先了解self-attention、Transformer,可参阅我其他文章。

二、大纲

  • BERT简介
  • self-supervised learning(自督导式学习)
  • BERT原理
  • BERT应用
  • BERT为啥有效?

三、BERT简介

  • BERT (Bidirectional Encoder Representations from Transformers)

  • BERT 是由 Google AI 于 2018年10月 提出的预训练语言模型,其论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》在 arXiv 发布,引起了 NLP 领域的巨大关注。

  • BERT 的核心思想是基于 Transformer 结构,并采用 双向(Bidirectional) 预训练机制,极大提升了自然语言理解(NLU)任务的性能。

  • 参数量对比

在这里插入图片描述

模型 参数量
ELMO 94M
BERT 340M
GPT-2 1542M
Megatron 8B
T5 11B
Turing NLG 17B
GPT-3 175B
Switch Transformer 1.6T

四、self-supervised learning(自督导式学习)

阐述BERT前先讲一下self-supervised learning(自督导式学习)。

什么是self-supervised learning(自督导式学习)?
想必大家都知道supervised learning,通俗来讲就是有输入和对应输出的成对训练资料。
在这里插入图片描述
self-supervised 的意思则是只有输入的资料,没有对应输出的资料的情况,就用输入划拨一部分当做输出,如下图:
在这里插入图片描述
有点晦涩。
打个比喻
古诗填空题大家语文考试时候都做过吧,你要反复背诵,一会儿捂住前半句通过后半句默写前半句,一会儿捂住后半句通过前半句默写后半句,直到完全掌握。
Model比做你的大脑,输入x是完整的诗句“锄禾日当午,汗滴禾下土”,x’和x’‘就是x分出来的前半句和后半句,你大脑背诵时候就是要让你输出的答案y和x’'一样。
这就是self-supervised的精髓了,从训练资料中裂分进行训练的过程,呼应了self这个词。

五、BERT原理

哇靠,BERT就是这么干的。

1、填空题
在这里插入图片描述
说明:
上图自底向上看:

  • 黑色方块就是要填空的地方,把它遮住;
  • BERT用的结构就是Transformer Encoder,没啥好说的;
  • 遮住的部分输出的向量经过Linear和softmax得到y;
  • 利用cross entropy去minimize和遮住部分的正确答案的loss。

那至于怎么遮住的方法有两种:
1、找个特殊字符代表遮住这件事情;
2、随机找个文字作为输入;
在这里插入图片描述

2、排序题
填空题是学会了,那如果是两句诗的让你排序呢?
① “谁知盘中餐,粒粒皆辛苦”
② “锄禾日当午,汗滴禾下土”
请排序,正确答案那当然是②→① 。
你的大脑怎么知道这件事,当然是我背过知道顺序,所以Model还得知道语序。

于是有了第二招→排序。
在这里插入图片描述
输入就是多个不同句子,句子间隔用特殊字符表示。
输出很直观,就是该不该接在一块,Yes/No。

3、小结
这就是全部了!
干了填空题和排序题这两件事!
大名鼎鼎的BERT仅此而已,牛逼的是人家用的训练资料有3.3B词汇,约等于1435套四大名著。

六、BERT应用

BERT是个预训练模型,就像是个插座一样,你想用电风扇、电饭煲都行,所以说它是个基座。
例如:评论情感分析
在这里插入图片描述
基座是BERT的pretrain模型,已经会了填空和句子排序。
自定义部分插个linear、softmax适应不同任务就行。

其他的应用案例就也是这种思想,不赘述。

七、BERT为什么有效?

在这里插入图片描述
BERT知道上下文语义,同样的词在不同的语境下不同,这是能够辨别出来的,同样是“果”字在不同句子环境下输出的向量也不一样。

个人理解:
从空间角度,BERT做的我个人认为它是在进行空间归类,同样的词可以根据语境归类至不同矩阵空间,只要知道这种空间联系就能进行空间转换,一个神奇的例子就是用中英文转换:
在这里插入图片描述

八、小结

掌握BERT在做填空题和排序题这两件事情就达到基本要求了,其他的更多细节和技巧在实做中进行深入研究。