BERT精髓详解

BERT模型自2018年发布以来在NLP领域引起广泛关注,它改变了预训练词向量与下游任务的关系,提出了预训练的深度学习策略。本文对比了word2vec、ELMo和BERT,重点介绍了BERT的Masked LM、Transformer和Sentence-level representation,阐述了BERT如何通过双向encoding和Transformer提升模型性能。
摘要由CSDN通过智能技术生成

彻底搞懂BERT(NLP 词向量训练模型巅峰之作)

自google在2018年10月底公布BERT在11项nlp任务中的卓越表现后,BERT(Bidirectional Encoder Representation from Transformers)就成为NLP领域大火、整个ML界略有耳闻的模型,网上相关介绍也很多,但很多技术内容太少,或是写的不全面半懂不懂,重复内容占绝大多数。

一句话概括,BERT的出现,彻底改变了预训练产生词向量和下游具体NLP任务的关系,提出龙骨级的训练词向量概念。

目录:

  词向量模型:word2vec, ELMo, BERT比较
  BERT细则:Masked LM, Transformer, sentence-level
  迁移策略:下游NLP任务调用接口
  运行结果:破11项NLP任务最优纪录

一、词向量模型

这里主要横向比较一下word2vec,ELMo,BERT这三个模型,着眼在模型亮点与差别处。

传统意义上来讲,词向量模型是一个工具,可以把真实世界抽象存在的文字转换成可以进行数学公式操作的向量,而对这些向量的操作,才是NLP真正要做的任务。因而某种意义上,NLP任务分成两部分,预训练产生词向量,对词向量操作(下游具体NLP任务)。

从word2vec到ELMo到BERT,做的其实主要是把下游具体NLP任务逐渐移到预训练产生词向量上。下面是一个大体概括,具体解释后面会写到。

1⃣️word2vec——>ELMo:

结果:上下文无关的static向量变成上下文相关的dynamic向量,比如‘blue’(蓝色、忧郁的)在不同语境的vector不同。

操作:encoder操作转移到预训练产生词向量过程实现。

2⃣️ELMo——>BERT:

结果:训练出的word-level向量变成sentence-level的向量,下游具体NLP任务调用更方便,修正了ELMo模型的潜在问题,。

操作:使用句子级负采样获得句子表示/句对关系,Transformer模型代替LSTM提升表达和时间上的效率,masked LM解决“自己看到自己”的问题。

1、word2vec

线性模型:

很神奇的地方,从而也说明高维空间映射的词向量可以很好体现真实世界中token之间的关系。如:king-man = queen-woman

负采样:

由于训练词向量模型的目标不是为了得到一个多么精准的语言模型,而是为了获得它的副产物——词向量。所以要做到的不是在几万几十万个token中艰难计算softmax获得最优的那个词(就是预测的对于给定词的下一词),而只需能做到在几个词中找到对的那个词就行,这几个词包括一个正例(即直接给定的下一词),和随机产生的噪声词(采样抽取的几个负例),就是说训练一个sigmoid二分类器,只要模型能够从中找出正确的词就认为完成任务。

这种负采样思想也应用到之后的BERT里,只不过从word-level变成sentence-level,这样能获取句子间关联关系。

缺点是上下文无关(static):

因而为了让句子有一个整体含义(context),大家会在下游具体的NLP任务中基与词向量的序列做encoding操作。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值