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;比如:

TokenEmbedding可以使用word2vec,glove这类通用的查找型词向量;SegmentEmbedding属于简单的标记,用于区分两句话的内容范围;PositionEmbedding可以采用Transformer中的位置编码方法,也可以直接顺序标记,进行简单的位置区分;
训练BERT的数据来源:English Wikipedia,大约25亿个单词
BERT下游任务举例
基于预训练后的BERT模型,可以将其融合到各种NLP任务里。BERT和ELMo类似,每个词没有固定的词向量,是根据词的上下文环境来动态产生当前词的词向量,这与word2vec以及glove等通用词向量模型是不同的;
在论文中,举例了四大BERT的下游任务:

第一个任务是句子对的分类任务,第二个是单一句子的分类任务,第三个是问答系统,第四个是单一句子的标注任务;均可以在预训练BERT的输出上连接分类器,基于任务的训练数据进行微调
BERT属于NLP中的迁移学习
BERT是一种基于Transformer的深度双向编码器预训练模型,通过Masked Language Model和Next Sentence Prediction两种方式进行预训练,能有效理解和生成自然语言。该模型在多种自然语言处理任务上取得了显著成果。
572

被折叠的 条评论
为什么被折叠?



