第十五课.BERT

BERT是一种基于Transformer的深度双向编码器预训练模型,通过Masked Language Model和Next Sentence Prediction两种方式进行预训练,能有效理解和生成自然语言。该模型在多种自然语言处理任务上取得了显著成果。
摘要由CSDN通过智能技术生成

BERT

BERT全称 Bidirectional Encoder Representations from Transformers,BERT基于Transformer(Transformer回顾:第十四课-Transformer),Transformer最早设计用于 Seq2Seq 任务,其 Encoder 部分后续被迁移到各种场景,逐渐演化成为一种通用的特征提取器。BERT的目标是获得一个良好的词表达,回顾ELMo(ELMo回顾:第十三课-问答系统)的成功,是来源于语言模型的预训练,预训练后的ELMo根据词的上下文环境来动态产生当前词的词向量,可以较好解决一词多义的问题;BERT则开辟了一种新的预训练方式 MLM:Masked Language Model;

在论文 BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding 中,BERT的描述分为两大部分:BERT的预训练方法,BERT的下游任务

BERT预训练方法

BERT使用的模型就是 Transformer 的 Encoder;

BERT的预训练是MLM(Masked Language Model)与NSP(Next Sentence Prediction)的结合,BERT可以认为是一种无监督学习过程:

  • MLM:将语料中15%的单词置为 mask,目标是预测出被 mask 的单词,即完形填空,做完形填空的任务有利于 Transformer Encoder 学会理解文本的上下文信息;
  • NSP:从语料中随机选择两个句子,判断两个句子是否相邻,这样的做法有利于 Transformer Encoder 不仅只关注句子内的上下文,还能学会理解文本中的上下文;

对于MLM,获得一句话:“This is Durant championship night”,随机遮挡后为:“This is [mask] championship night”;

对于NSP,随机抽取两句话 Sentence1 和 Sentence2,组合得到:[CLS] Sentence1 [SEP] Sentence2 [SEP],其中 [SEP] 表示句子间的分隔符,[CLS] 表示两个句子是否相邻,如果两个句子相邻,则 [CLS]=True,否则为 False;

预训练举例如下,随机从文本获得两句话(假设这两句话相邻):

Harden goes to Brooklyn 
the Nets' goal is to win the championship

输入Transformer Encoder 的信息可以是:

[CLS] Harden [MASK] to Brooklyn [SEP] the Nets' [MASK] is to win the championship [SEP]

则经过 Encoder 计算后的输出记为{ o 1 , o 2 , . . . , o 15 o_{1},o_{2},...,o_{15} o1,o2,...,o15},将这些张量通过分类器应该对应到:

  • o 1 = T r u e o_{1}=True o1=True
  • o 3 = g o e s o_{3}=goes o3=goes
  • o 9 = g o a l o_{9}=goal o9=goal

预训练使用的损失函数即为交叉熵损失 CrossEntropy Loss;

注意 BERT 中,输入Transformer Encoder 的信息包含三个部分:TokenEmbedding,SegmentEmbedding,PositionEmbedding;比如:
fig1
TokenEmbedding可以使用word2vec,glove这类通用的查找型词向量;SegmentEmbedding属于简单的标记,用于区分两句话的内容范围;PositionEmbedding可以采用Transformer中的位置编码方法,也可以直接顺序标记,进行简单的位置区分;


训练BERT的数据来源:English Wikipedia,大约25亿个单词


BERT下游任务举例

基于预训练后的BERT模型,可以将其融合到各种NLP任务里。BERT和ELMo类似,每个词没有固定的词向量,是根据词的上下文环境来动态产生当前词的词向量,这与word2vec以及glove等通用词向量模型是不同的;

在论文中,举例了四大BERT的下游任务:
fig2
第一个任务是句子对的分类任务,第二个是单一句子的分类任务,第三个是问答系统,第四个是单一句子的标注任务;均可以在预训练BERT的输出上连接分类器,基于任务的训练数据进行微调


BERT属于NLP中的迁移学习


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值