目录
Self-Supervised Learning,又称为自监督学习。一般机器学习分为有监督学习,无监督学习和强化学习。 而 Self-Supervised Learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks)。 其主要的方式就是通过自己监督自己。
Self-Supervised Learning的model喜欢以芝麻街的人物命名:
下面以BERT和GPT这两个模型为例,介绍Self-Supervised Learning的model做的事情是什么。
BERT
BERT是一个Transformer的Encoder。
有了BERT技术后,机器在自然语言处理的能力上又向前迈了一步。
BERT训练的时候做两件事:
① Masking Input: Randomly maskingsome tokens.
② Next Sentence Prediction
后来研究表明这一招对BERT要做的事情不太有用。
还有一招和Next Sentence Prediction有点类似,叫做SOP,这招在文献中证明是有效的。
通过以上两件事,BERT只学会做填空题,但BERT可以被用来做各式各样人们感兴趣的Downstream Tasks。给BERT一些不同的有标注的资料,它就可以变成做不同Task的model(类似于胚胎干细胞,可以分化),这就是BERT神奇的地方。
训练BERT是比较困难的:
Pre-training a seq2seq model:
How to use BERT
下面通过四个例子来介绍如何使用BERT。
- case 1:
这个model中Linear的参数是随机初始化的,但BERT的参数是使用pre-train之后的参数。下面图中对比了BERT使用随机参数和使用pre-train参数的训练效果:
- case 2:
- case 3:
- case 4:
训练过程如下:首先输出答案的起始位置
然后输出答案的结束位置
Why dose BERT work
首先给出文献中最常见的解释:BERT输入一串文字,输出一串向量,这些向量称为embedding。这些embedding代表了输入的那个字的意思,并且包含了它的上下文信息(比如吃苹果和苹果手机的果,输出的是不同的embedding)。
根据李老师实验室的一些实验,BERT work可能不止是embedding能够代表输入文字及其上下文关系这一个原因。
如下图实验,对DNA进行分类,随意选取四个英文单词来代表A、T、C、G,把DNA转化成一些没有实际意义的英文句子。然后输出DNA的种类。对于这些没有实际意义的英文句子,进行分类也能得到很好的结果。这说明BERT的能力不完全来自于它能看得懂文章,还有一些其他的原因。
Multi-lingual BERT
——Training a BERT model by many different languages.
Multi-lingual神奇之处在于,用英文的QA资料进行训练,就可以自动学会做中文的QA。
对以上神奇现象的一个简单解释是,对Multi-lingual BERT而言,不同语言间没什么差异:
GPT
——Predict Next Token
How to use GPT
Beyond Text
上面的例子都与文字有关,但Self-Supervised Learning不止能用在文字上:
Image - SimCLR:
Image - BYOL: