当前位置:   article > 正文

BERT简介

bert

BERT,是 Bidirectional Encoder Representations(双向编码器表示)的缩写,它从单词的两边(左边和右边)来考虑上下文。以前所有的努力方向,都是一次只考虑单词的一边,要么是左边,要么是右边。这种双向性有助于模型更好地理解使用单词的上下文。此外,BERT 的设计目标是能够进行多任务学习,也就是说,它可以同时执行不同的自然语言处理任务。

BERT这个model实际上是一个transformer 的 Encoder
transformer
image-20210811103558955

BERT一般用在NLP上,它的输入通常是一段文字,我们随机盖住其中一个,所谓的盖住通常有两种做法,随机选择一种

第一种是用一个特殊的符号:MASK 来代表;

第二种是随机找一个文字替换掉

盖住以后,输出就是另外一个sequence,把盖住部分对应的输出做一个linear 的transformer 输出一个分布(其实是一个向量)。

image-20210811104055921

因为我们知道被盖起来的部分是什么,但BERT不知道,所以BERT学习的目标就是**:输出跟盖起来的越接近越好**。

训练的时候,是BERT跟Linear一起训练。

BERT在训练的时候还会做 Next Sentence Prediction

image-20210811112145529

Next Sentence Prediction意思是说,从资料库拿出两个句子在句子之间加入一个符号[SEP] 在整个sentence的最前面加一个符号[CLS]。这些东西都丢到BERT中,正常输出是另外一个sequence,但我们只取[CLS]对应的那个输出,右边的其他输出暂时不管。把这个输出乘上一个Linear 的transformer,输出是Yes/No(二元分类) 代表这两个句子是不是相接的

但是Next Sentence Prediction并没有太多的帮助 具体的可以查看相关paper

BERT怎么用呢?

image-20210811113305982

BERT在训练的时候有两个任务,一个是盖住一些字,它可以补回来(填空题);另外一个是他可以预测两个句子是不是可以接在一起(没什么用)

整体而言,BERT就是学到怎么做“填空题”。

BERT可以被用在其它任务上,这些任务被称为:Downstream Tasks(下游任务)

这些任务不一定跟“填空题”有关,给BERT一点有标注的资料,它就可以分化成各式各样的任务,分化这件事情叫做:Fine-tune

在Fine-tune之前,产生BERT的这个过程,就叫Pre-train

怎么使用BERT呢?

case1 :Input: sequence output: class

例如:sentiment analysis

image-20210811122422352

预训练的好处(实线)

image-20210811122933314

case2:输入和输出长度一样 例如:词性标注

image-20210811123206595

case3:输入两个sequence 输出一个class 例如:自然语言推理(场景:立场分析)

image-20210811123436532

image-20210811123734599

case4:Extraction-based QA

image-20210811123914225

输入有文章D和问题Q,把D 和Q 都丢到模型里面,我们要求它输出两个正整数s,e

根据这两个正整数,直接从文章里面截一段出来,就是答案。

image-20210811124301541

唯一需要从头开始训练的(Random Initialized),只有两个向量(橙色和蓝色)。image-20210811124506634

橙色代表答案起始位置,蓝色代表答案结束的位置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/356079
推荐阅读
相关标签
  

闽ICP备14008679号