自监督学习BERT--李宏毅机器学习笔记

个人学习笔记,如有错误欢迎指正,也欢迎交流,其他笔记见个人空间 

Self-supervised Learning(自监督学习)

自监督学习无需人工标注,利用无标签的数据本身构造“输入-输出”对,实现类似有监督的训练。BERT 的预训练过程便是一种自监督学习:随机遮盖(mask)部分文本,然后让模型去预测被遮盖的内容,从而“自我监督”地学习语言知识。

BERT 是 Transformer 结构的 Encoder,它接收一个序列输入并输出相同长度的序列向量。BERT 主要通过两种预训练任务来学习语言表示:

Masked LM(MLM):在训练过程中。我们知道被mask的字符是什么,而BERT不知道,我们可以用一个one-hot vector来表 示这个字符,并使输出和one-hot vector之间的交叉熵损失最小。

Next Sentence Prediction(NSP):给模型两个句子,让其判断第二句是否是第一句的“后续句”。具体做法是在这两个句子之间添加一个特殊标记SEP,这样BERT就知道这两个句子是不同的句子,在句子开头也会有一个特殊标记CLS,传给BERT后让它回答是/不是。

不过后续研究(如 RoBERTa 等)指出 NSP 在很多下游任务中帮助有限,一些改进模型(如 ALBERT)采用了更困难的 Sentence Order Prediction(SOP)来替代 NSP。

总的来说我们要求BERT学习两个任务:

一个是掩盖一些字符,然后要求它填补缺失的字符;另一个是判断两个句子是否有顺序关系。看起来BERT似乎没做什么有实际用的工作,但是BERT的神奇之处在于训练了这样一个填空模型后它还可以用于其他任务,不一定与填空有关,但是BERT仍然能用于这些任务。训练好的 BERT 像“通用语言理解”胚胎干细胞,掌握了广泛的语言知识,却还没有专门针对具体应用场景进行优化,通过 Fine-tuning(微调)即可在各种下游任务中获得优秀表现。如情感分析、命名实体识别、机器阅读理解等

常见的下游任务:
  • 情感分析:在输入句子前加 CLS 标记,BERT 输出时只取 CLS 位置的向量,再接一个线性层做分类。在实践中,仍然需要提供标记数据,所以这其实是一种半监督式的学习,其中Linear transform的参数是随机初始化的,BERT的参数是学会填空的BERT初始化的。

  • 序列标注(例如词性标注 POS tagging):对 BERT 输出序列的每个向量分别做分类。比如做词性分类

  • 自然语言推断(NLI):输入两个句子并用特殊标记 SEP 分隔,通过 CLS 位置向量判断两句是否矛盾/蕴涵/中立等。

  • 抽取式问答(QA):输入由“文章 + 问题 + 特殊标记”组成的序列,让 BERT 找出答案在文章中的起始和结束位置。

 预训练Seq2Seq模型

 前面提到,BERT 是 Transformer 结构的 Encoder,那么Decoder怎么训练呢?方法是这样的,transform的架构中,Decorder中的 Query(来自自身产生),Key 和 Value(来自 Encoder 的输出),通过故意在Encorder的输入中做一些干扰,而Decorder需要将句子恢复到干扰之前

 

BART、T5、MASS 等“预训练 Seq2Seq”模型

BERT的工作原理

它为什么能成为一个“干细胞”?

有一种解释是这样的:每个词在不同上下文中会生成不同的向量(embedding),通过考虑上下文语境,BERT能够区分“苹果(水果)”和“苹果(公司)”。比如可食用的苹果更多的可能和产地、吃等词语相关;苹果公司则和手机、电脑等相关。

 当我们训练BERT时,我们给它w1、w2、w3和w4,我们覆盖w2,并告诉它预测w2,而它就是从上下文中提取信息来预测w2。所以这个向量是其上下文信息的精华,可以用来预测w2是什么。

多语言BERT(Multilingual BERT)

 Multilingual BERT是指训练时用很多种不同语言做填空

Zero-shot能力

  • 用BERT做多语言预训练后,真正训练时使用英文Q&A数据,测试时用中文Q&A,BERT依然能取得不错表现(F1高达78%)。

  • 说明其具有语言迁移能力,无需专门训练跨语言翻译。

为什么能做到呢?可能是不同语言的同义词embedding在空间中位置接近。李老师提到,

  • 自行训练多语言BERT时,如果数据量不足,无法对齐不同语言的embedding。

  • 数据量对模型性能影响巨大,是多语言对齐成功的关键。

  • 通过向embedding添加特定的“语言差异向量”,可以实现从一种语言向另一种语言的无监督转换。

对比学习与分类

分类的学习还是需要标签,对于一些语音识别,可以使用对比学习

  • 蓝色是 真实(正)样本 embedding

  • 橙色是 负样本 embedding(干扰项)

  • 模型的目标是:

    让输出向量与正样本越接近,和负样本越远。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值