2022.5.29 第八次周报

目录

自监督学习 Self-supervised Learning

一、什么是Self-supervised Learning?

1.Self-supervised Learning

2.Masking Input

第一个是MASK(special token)

第二种是Random

 3.Next Sentence Prediction

二、How to use BERT?

GLUE 

GLUE Score

Case1:Sentiment Analysis

Case2:POS tagging

Case3:Natural Language Inference(NLI)

Case4:Extraction-based Question Answering(QA)

弄坏数据的方法MASS/BART

三、Why does BERT work?

1.BERT如何工作?

2.Multi-lingual BERT 多语言BERT

四、GPT series

1.predict Next Token

2.How to use GPT?


自监督学习 Self-supervised Learning

一、什么是Self-supervised Learning?

1.Self-supervised Learning

supervised:比如说现在输入一篇文章,判断它是正面还是负面文章。我们就需要文章和label(它是正面还是负面)才能够进行train。

self-supervised:在没有label的情况下,自己想办法做supervised。假设现在只有一堆文章,没有标注,想办法让一部分文章作为model的输入,另一部分作为label,让y与x1越接近越好。

 

2.Masking Input

我们拿BERT这个model说一下self-supervised到底是怎么做的?(填空题)

BERT一般用在自然语言、文字上,输入一排向量,输出一排向量 。用的是和Transformer Encoder一样的架构。原理是随机的遮住一些tokens,盖住哪些,随机决定。被遮盖的单位输出的向量经过linear(乘上一个矩阵),再经过softmax输出一个向量,去和所有的字体做对比,通过计算minimize cross entropy,来找出被遮盖的字最可能是什么字。


其中提到的遮住一些tokens可以选择不同的方法来做:

第一个是MASK(special token)

把句子里面的某一字换成特殊的符号(可以想像成新的中文的字,在字典里从来没有出现过)

第二种是Random

随机把某一个字换成另一个字(随便换成某一个字)

 3.Next Sentence Prediction

input:两个句子

output:YES/NO

SEP:分隔符号,代表两个不同的句子

CLS:输出Yes/No:这两个句子是不是相接的。如果是输出YES,反之NO

 

但是这个Next sentence Prediction对于接下来BERT想做的事情是没什么太大用处,主要原因是对于BERT来说,要分辨两个句子是不是相接比较容易。那在使用Next sentence Prediction这个任务就没有太大必要。反倒是另外一个和Next sentence Prediction相像的SOP是有用的。SOP的意思就是让BERT分辨哪一句在前面,这两句是相接的,让判断顺序。
 

二、How to use BERT?

BERT除了做填空题(Masked),还能用在解各式各样的任务。值得注意的是BERT真正的任务就是DownStream Tasks。产生BERT的过程叫做Pre-train,该过程一般需要进行masking input 和next sentence prediction这两个操作。产生出来的BERT只会做填空题,BERT做过fine-tune(微调)之后才能做各式各样的任务。pre-train(预训练)过程是unsupervised learning,fine-tune过程是supervised learning,所以整个过程是semi-supervised。

GLUE 

GLUE是用来测试BERT的能力的任务集,GLUE是自然语言处理任务,总共有九个任务。 BERT分别微调之后做这9个任务,将9个测试分数做平均后代表BERT的能力高低。分数越高,代表模型越好。

GLUE Score

Case1:Sentiment Analysis

input:sequence

output:class

我们仍然需要下游任务的标注资料,提供给大量的句子和label 才能去训练这个model。linear的参数是随机初始化的。训练就是更新BERT和linear这两个模型里的参数。

 

Case2:POS tagging

input:sequence

output:same as input

 

Case3:Natural Language Inference(NLI)

input:two sequence

output:a class

 

 

Case4:Extraction-based Question Answering(QA)

针对回答能在文中找到的问答。输入问题和文章,输出两个正整数s,e,表示第s个字到第e个字之间的字就是答案。经过内积之后通过softmax,分数最高的位置就是起始或终止位置。 橙色向量代表答案的起始位置,蓝色向量代表答案的结束位置。

弄坏数据的方法MASS/BART

在一个transformer的模型中,输入的序列损坏,输出的是还原损坏的输入。 如何损坏输入数据呢?

可以采用mass或BART手段:

1.mass是盖住某些数据(类似于masking)

2.BART是下图右边所有的方法(盖住数据、删除数据、打乱数据顺序、旋转数据等等)

三、Why does BERT work?

1.BERT如何工作?

The tokens with similar meaning have similar embedding.

输入一串文字,对应的输出向量我们叫它embedding,这些向量代表了输入的字的意思。越相近的字产生的向量越接近,如果与草、鸟与鱼等 。同时,BERT会根据上下文,不同语义的同一个字会产生不同的向量。

 

2.Multi-lingual BERT 多语言BERT

Multi-lingual BERT ,它的特点就是用各种语言来做填空题。我们train了很多种不同的语言来做填空题之后,我们拿英文的问答的资料做train,接下来它就会自动学做中文的问答的问题。那为什么会这样呢?也许对于它而言,不同语言没什么差距 ,所以同义的不同语言的向量会比较接近。

那我们想要了解不同语言之间的关系就做了下图这么一个实验。将所有中文的embbeding平均一下,英文的embbeding平均一下,发现两者之间存在着差距,这个差距用一个蓝色向量来表示。对一个multi-BERT输入英文问题后,会输出一堆embedding,这堆embedding加上这个差距的embbeding后,最终竟然能输出中文的答案。

 

 

四、GPT series

1.predict Next Token

Self-Supervised Learning除了BERT还有GPT系列的模型,BERT做的是填空题,GPT做的任务就是预测接下来会出现的token是什么。

例如训练资料是台湾大学,那么输入BOS后训练输出是台,再将台作为输入训练输出是湾,以此类推即可。模型输出embedding h,h再经过linear transform和softmax后,计算输出分布与正确答案之间的cross entropy,希望越小越好。我们可以不断训练,从而利用GPT来预测下一篇的文章。

2.How to use GPT?

描述模型问题和解答范例,模型就能自己开始做题了。这个应用叫few-shot learning。它不是一般的learining,都没用到gradient descent(梯度下降),所以被叫做In-context Learning。还有两个分别叫做one-shot learning 和 zero-shot learning。

用下面的例子来说,如果用GPT来进行翻译功能:

给出几个例子,让他直接翻译出结果,这个叫做 Few-shot Learning。

 只看一个例子就可以翻译的叫 one-shot Learning。

直接说要做翻译就能实现的叫 Zero-shot Learning。 

 

最后一点就是说,Self-Supervised Learning不只可以用在文字上,在图像上、语音上也可以使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值