赞
踩
语言模型的预训练主要包括两类:
将预训练的语言表示应用到下游任务的两种策略:
这两种方法在预训练期间共享相同的目标函数,它们使用单向语言模型来学习通用语言表示。
BERT:来自 Transformers 的双向编码器表示来改进基于微调的方法
MLM:随机屏蔽输入中的一些标记,目标是根据其上下文来预测被屏蔽掉的原始词汇
BERT框架的两个步骤:预训练和微调
模型架构 BERT 的模型架构是一个多层双向 Transformer 编码器,基本上是基于 Vaswani 等人描述的原始实现,作者在本文中设置了两个模型参数:
L:Transformer 块的个数;H:隐藏层大小;A:自注意力头的数量
BERT应用MLM(Masked Language Mode)方法训练词的语义理解能力,用NSP(Next Sentence Prediction) 训练句子之间的理解能力。
MLM: 随机取部分词进行掩码操作(用替换符[MASK]替换词),让BERT预测这些被掩码词。在本文中作者随机掩码了每个序列的15%的tokens。
缺点: 一个句子可能有多个掩码词,假设A和B均为掩码词,预测掩码词B时,由于词A的信息缺失,原有的语义信息缺失,这就导致在微调阶段或推理阶段中,由于输入文本不含[MASK],从而产生由训练与预测数据偏差导致的性能损失。为了缓解这种影响,作者采用三种方式进行词替换:(分别对应完型+纠错+重建三个能力)
自然语言推理和QA等许多重要的下游任务都是基于对两个句子之间关系的理解,语言模型不具有直接捕获句子之间的语义联系。
NSP主要用于训练句子之间的理解能力。具体来讲,BERT的输入语句由两个句子构成,其中,50%的概率将语义连贯的两个连续句子作为训练文本,另外50%的概率将完全随机抽取的两个句子作为训练文本,而BERT需要根据输入的两个句子判断它们是否为真实的连续句对。
预训练过程很大程度上遵循现有的语言模型预训练文献。对于预训练语料库,我们使用 BooksCorpus(8 亿字)(Zhu et al., 2015)和英语维基百科(2,500M 字)。对于维基百科,我们仅提取文本段落并忽略列表、表格和标题。为了提取长的连续序列,使用文档级语料库而不是打乱的句子级语料库(例如 Billion Word Benchmark(Chelba 等人,2013))至关重要。
BERT将微调训练的任务分为四种,分别是句对分类、单句分类、文本问答和单句标注。对于每个任务,只需将特定于任务的输入和输出插入BERT,并对所有端到端参数进行微调。
参考:
经典论文–《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
BERT 论文逐段精读【论文精读】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。