自然语言处理开发与应用-基于深度学习的NLP模型-BERT理论及实战(原创) (1).pptx

自然语言处理开发与应用-基于深度学习的NLP模型-BERT理论及实战(原创) (1).pptx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Bert理论及实践

01BERT理论讲解目录contents02BERT文本分类实战

BERT理论讲解第一部分引言BERT应用举例BERT结构BERT输入及输出BERT的预训练任务BERT下游任务

引言BERT的全称为BidirectionalEncoderRepresentationfromTransformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的maskedlanguagemodel(MLM),从而能生成深度的双向语言表征。BERT(BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding)论文发表时提及在11个NLP(NaturalLanguageProcessing,自然语言处理)任务中获得了新的state-of-the-art的结果,令人瞠目结舌。

引言该模型有以下主要优点:1)采用MLM对双向的Transformers进行预训练,以生成深层的双向语言表征。2)预训练后,只需要添加一个额外的输出层进行fine-tune,就可以在各种各样的下游任务中取得state-of-the-art的表现。在这过程中并不需要对BERT进行任务特定的结构修改。

引言BERT的工作源于此前NLP领域的一系列工作,包括:Semi-supervisedSequenceLearning(byAndrewDaiandQuocLe)ELMo(byMatthewPetersandresearchersfromAI2andUWCSE)ULMFiT(byfast.aifounderJeremyHowardandSebastianRuder)theOpenAItransformer(byOpenAIresearchersRadford,Narasimhan,Salimans,andSutskever)theTransformer(Vaswanietal)transformer和ELMO前面的课程介绍过

BERT应用举例使用BERT最直接的方式就是文本分类只需要在BERT的【CLS】位置接上一个全连接层和softmax,就可以获得一个效果很好的文本分类器。这个过程被称为fine-tune,只需要少量的数据。

BERT结构BERT有两种尺寸的模型: BERT-BASE:12层 BERT-LARGE:24层BERT采用transformer中的encoder,将其堆叠起来。

BERT结构通过将12个(LARGE版本为24个)encoderblock堆叠起来,整体就构成了BERT的主体结构,加上输入和输出层,就算完整的BERT了。这里的encoder和前面transformer里介绍的encoder是完全一样的结构,包括self-attention,FFN,LN等部分。

BERT输入第一个输入字符是[CLS],这里CLS表示的分类,[cls]对应的输出层tokenrepresentation表征序列的类别特征就像transformer那样,输入数据一层一层的穿过每个block,每个block进行attention计算。

BERT输入由于BERT是一个预训练模型,其必须要适应各种各样的自然语言任务,因此模型所输入的序列必须有能力包含一句话(文本情感分类,序列标注任务)或者两句话以上(文本摘要,自然语言推断,问答任务)。那么如何令模型有能力去分辨哪个范围是属于句子A,哪个范围是属于句子B呢?BERT采用了两种方法去解决:1)在序列tokens中把分割token([SEP])插入到每个句子后,以分开不同的句子tokens。2)为每一个token表征都添加一个可学习的分割embedding来指示其属于句子A还是句子B。

BERT输入因此最后模型的输入序列tokens为下图(如果输入序列只包含一个句子的话,则没有[SEP]及之后的token):

BERT输出介绍完BERT的输入,实际上BERT的输出也就呼之欲出了,因为Transformer的特点就是有多少个输入就有多少个对应的输出,如下图:C为分类token([CLS])对应最后一个Transformer的输出,Ti则代表其他token对应最后一个Transformer的输出。对于一些token级别的任务(如,序列标注和问答任务),就把Ti输入到额外的输出层中进行预测。对于一些句子级别的任务(如,自然语言推断和情感分类任务),就把C输入到额外的输出层中,这里也就解释了为什么要在每一个token序列前都

您可能关注的文档

文档评论(0)

方世玉 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6101050130000123

1亿VIP精品文档

相关文档