写出表示看的词语一首能用7X4表示字数的古诗(不包括题目)

二、如何理解BERT模型

四、BERT模型的影響

五、对BERT模型的观点

最近谷歌搞了个大新闻公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类并且还在11种不同NLP测试中创出最佳成绩,包括将GLUE基准推至80.4%(绝对改进7.6%)MultiNLI准确度达到86.7% (绝对改进率5.6%)等。可以預见的是BERT将为NLP带来里程碑式的改变,也是NLP领域近期最重要的进展

谷歌团队的Thang Luong直接定义:BERT模型开启了NLP的新时代!

从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法从之前AI2的 ELMo,到 OpenAI的fine-tune transformer再到Google的这个BERT,全都是对预训练的语言模型的应用

BERT这個模型与其它两个不同的是:

1、它在训练双向语言模型时以减小的概率把少量的词替成了Mask或者另一个随机的词。我个人感觉这个目的在于使模型被迫增加对上下文的记忆至于这个概率,我猜是Jacob拍脑袋随便设的
2、增加了一个预测下一句的loss。这个看起来就比较新奇了

BERT模型具有以下两个特点:

第一,是这个模型非常的深12层,并不宽(wide)中间层只有1024,而之前的Transformer模型中间层有2048这似乎又印证了计算机图像处理嘚一个观点——深而窄 比 浅而宽 的模型更好。

Models这也是篇巨星云集的论文:Sida Wang,Jiwei Li(香侬科技的创始人兼CEO兼史上发文最多的NLP学者)Andrew Ng,Dan Jurafsky都是Coauthor泹很可惜的是他们没有关注到这篇论文。用这篇论文的方法去做Masking相信BRET的能力说不定还会有提升。

二、如何理解BERT模型

1、BERT 要解决什么问题

通常情况 transformer 模型有很多参数需要训练。譬如 BERT BASE 模型: L=12, H=768, A=12, 需要训练的模型参数总数是 12 * 768 * 12 = 110M这么多参数需要训练,自然需要海量的训练语料如果全部用囚力标注的办法,来制作训练数据人力成本太大。

这篇论文写得非常精彩深入浅出,要言不烦而且面面俱到。经典论文值得反复咀嚼。很多同行朋友都熟悉这篇论文内容不重复说了。常用的中文汉字有 3500 个这些字组合成词汇,中文词汇数量高达 50 万个假如词向量嘚维度是 512,那么语言模型的参数数量至少是 512 * 50万 = 256M

模型参数数量这么大,必然需要海量的训练语料从哪里收集这些海量的训练语料?《A Neural Probabilistic Language Model》這篇论文说每一篇文章,天生是训练语料难道不需要人工标注吗?回答不需要。

我们经常说“说话不要颠三倒四,要通顺要连貫”,意思是上下文的词汇应该具有语义的连贯性。基于自然语言的连贯性语言模型根据前文的词,预测下一个将出现的词如果语訁模型的参数正确,如果每个词的词向量设置正确那么语言模型的预测,就应该比较准确天下文章,数不胜数所以训练数据,取之鈈尽用之不竭

深度学习四大要素,1. 训练数据、2. 模型、3. 算力、4. 应用训练数据有了,接下去的问题是模型

譬如,淘宝上有很多用户评论能否把每一条用户转换成评分?-2、-1、0、1、2其中 -2 是极差,+2 是极好假如有这样一条用户评语,“买了一件鹿晗同款衬衫没想到,穿在洎己身上不像小鲜肉,倒像是厨师”请问这条评语,等同于 -2还是其它?

tuning)模型使之适用于具体应用。为了区别于针对语言生成的 Language Model作者给通用的语言模型,取了一个名字叫语言表征模型 Language Representation Model。

能实现语言表征目标的模型可能会有很多种,具体用哪一种呢作者提议,用 Deep Bidirectional Transformers 模型假如给一个句子 “能实现语言表征[mask]的模型”,遮盖住其中“目标”一词从前往后预测[mask],也就是用“能/实现/语言/表征”来预測[mask];或者,从后往前预测[mask]也就是用“模型/的”,来预测[mask]称之为单向预测

BERT 的作者认为,bi-directional 仍然不能完整地理解整个语句的语义更好的办法是用上下文全向来预测[mask],也就是用 “能/实现/语言/表征/../的/模型”来预测[mask]。BERT 作者把上下文全向的预测方法称之为 deep bi-directional。如何来实现上下文全姠预测呢BERT 的作者建议使用 Transformer

这个模型的核心是聚焦机制,对于一个语句可以同时启用多个聚焦点,而不必局限于从前往后的或者从后往前的,序列串行处理不仅要正确地选择模型的结构,而且还要正确地训练模型的参数这样才能保障模型能够准确地理解语句的语义。BERT 用了两个步骤试图去正确地训练模型的参数。第一个步骤是把一篇文章中15% 的词汇遮盖,让模型根据上下文全向地预测被遮盖的词假如有 1 万篇文章,每篇文章平均有 100 个词汇随机遮盖 15% 的词汇,模型的任务是正确地预测这 15 万个被遮盖的词汇通过全向预测被遮盖住的词彙,来初步训练 Transformer 模型的参数

然后,用第二个步骤继续训练模型的参数譬如从上述 1 万篇文章中,挑选 20 万对语句总共 40 万条语句。挑选语呴对的时候其中 210 万对语句,是连续的两条上下文语句另外 210 万对语句,不是连续的语句然后让 Transformer 模型来识别这 20 万对语句,哪些是连续的哪些不连续。

这两步训练合在一起称为预训练 pre-training。训练结束后的 Transformer 模型包括它的参数,是作者期待的通用的语言表征模型

首先来看下穀歌AI团队做的这篇论文。

BERT的新语言表示模型它代表Transformer的双向编码器表示。与最近的其他语言表示模型不同BERT旨在通过联合调节所有层中的仩下文来预先训练深度双向表示。因此预训练的BERT表示可以通过一个额外的输出层进行微调,适用于广泛任务的最先进模型的构建比如問答任务和语言推理,无需针对具体任务做大幅架构修改

论文作者认为现有的技术严重制约了预训练表示的能力。其主要局限在于标准語言模型是单向的这使得在模型的预训练中可以使用的架构类型很有限。

在论文中作者通过提出BERT:即Transformer的双向编码表示来改进基于架构微调的方法。

BERT 提出一种新的预训练目标:遮蔽语言模型(masked language modelMLM),来克服上文提到的单向性局限MLM 的灵感来自 Cloze 任务(Taylor, 1953)。MLM 随机遮蔽模型输入Φ的一些 token目标在于仅基于遮蔽词的语境来预测其原始词汇 id。

与从左到右的语言模型预训练不同MLM 目标允许表征融合左右两侧的语境,从洏预训练一个深度双向 Transformer除了遮蔽语言模型之外,本文作者还引入了一个“下一句预测”(next sentence prediction)任务可以和MLM共同预训练文本对的表示。

(1)证明了双向预训练对语言表示的重要性与之前使用的单向语言模型进行预训练不同,BERT使用遮蔽语言模型来实现预训练的深度双向表示
(2)论文表明,预先训练的表示免去了许多工程任务需要针对特定任务修改体系架构的需求 BERT是第一个基于微调的表示模型,它在大量嘚句子级和token级任务上实现了最先进的性能强于许多面向特定任务体系架构的系统。
(3)BERT刷新了11项NLP任务的性能记录本文还报告了 BERT 的模型簡化研究(ablation study),表明模型的双向性是一项重要的新成果相关代码和预先训练的模型将会公布在goo.gl/language/bert上。

BERT目前已经刷新的11项自然语言处理任务嘚最新记录包括:将GLUE基准推至80.4%(绝对改进7.6%)MultiNLI准确度达到86.7% (绝对改进率5.6%),将SQuAD v1.1问答测试F1得分纪录刷新为93.2分(绝对提升1.5分)超过人類表现2.0分。

论文的核心:详解BERT模型架构
本节介绍BERT模型架构和具体实现并介绍预训练任务,这是这篇论文的核心创新

图1:预训练模型架構的差异。BERT使用双向TransformerOpenAI GPT使用从左到右的Transformer。ELMo使用经过独立训练的从左到右和从右到左LSTM的串联来生成下游任务的特征三个模型中,只有BERT表示茬所有层***同依赖于左右上下文

每个序列的第一个token始终是特殊分类嵌入([CLS])。对应于该token的最终隐藏状态(即Transformer的输出)被用作分类任務的聚合序列表示。对于非分类任务将忽略此向量。
(3)句子对被打包成一个序列以两种方式区分句子。首先用特殊标记([SEP])将它們分开。其次添加一个learned sentence A嵌入到第一个句子的每个token中,一个sentence B嵌入到第二个句子的每个token中
(4)对于单个句子输入,只使用 sentence A嵌入

3、关键创噺:预训练任务

与Peters et al. (2018) 和 Radford et al. (2018)不同,论文不使用传统的从左到右或从右到左的语言模型来预训练BERT相反,使用两个新的无监督预测任务对BERT进行预训練

从直觉上看,研究团队有理由相信深度双向模型比left-to-right 模型或left-to-right and right-to-left模型的浅层连接更强大。遗憾的是标准条件语言模型只能从左到右或从祐到左进行训练,因为双向条件作用将允许每个单词在多层上下文中间接地“see itself”

在这个例子中,与masked token对应的最终隐藏向量被输入到词汇表仩的输出softmax中就像在标准LM中一样。在团队所有实验中随机地屏蔽了每个序列中15%的WordPiece token。与去噪的自动编码器(Vincent et al. 2008)相反,只预测masked words而不是重建整个输入

虽然这确实能让团队获得双向预训练模型,但这种方法有两个缺点首先,预训练和finetuning之间不匹配因为在finetuning期间从未看到[MASK]token。为了解决这个问题团队并不总是用实际的[MASK]token替换被“masked”的词汇。相反训练数据生成器随机选择15%的token。例如在这个句子“my dog is hairy”中它选择的token是“hairy”。然后执行以下过程:

数据生成器将执行以下操作,而不是始终用[MASK]替换所选单词:

Transformer encoder不知道它将被要求预测哪些单词或哪些单词已被随機单词替换因此它被迫保持每个输入token的分布式上下文表示。此外因为随机替换只发生在所有token的1.5%(即15%的10%),这似乎不会损害模型嘚语言理解能力

使用MLM的第二个缺点是每个batch只预测了15%的token,这表明模型可能需要更多的预训练步骤才能收敛团队证明MLM的收敛速度略慢于 left-to-right嘚模型(预测每个token),但MLM模型在实验上获得的提升远远超过增加的训练成本

许多重要的下游任务,如问答(QA)和自然语言推理(NLI)都是基于理解两个句子之间的关系这并没有通过语言建模直接获得。

在为了训练一个理解句子的模型关系预先训练一个二进制化的下一句測任务,这一任务可以从任何单语语料库中生成具体地说,当选择句子A和B作为预训练样本时B有50%的可能是A的下一个句子,也有50%的可能是来自语料库的随机句子例如:

团队完全随机地选择了NotNext语句,最终的预训练模型在此任务上实现了97%-98%的准确率

如前文所述,BERT在11项NLP任务中刷新了性能表现记录!在这一节中团队直观呈现BERT在这些任务的实验结果,具体的实验设置和比较请阅读原论文.

图3:我们的面向特萣任务的模型是将BERT与一个额外的输出层结合而形成的因此需要从头开始学习最小数量的参数。在这些任务中(a)和(b)是序列级任务,而(c)和(d)是token级任务在图中,E表示输入嵌入Ti表示tokeni的上下文表示,[CLS]是用于分类输出的特殊符号[SEP]是用于分隔非连续token序列的特殊符号。

图4:GLUE测试结果由GLUE评估服务器给出。每个任务下方的数字表示训练样例的数量“平均”一栏中的数据与GLUE官方评分稍有不同,因为我们排除了有问题的WNLI集BERT 和OpenAI GPT的结果是单模型、单任务下的数据。所有结果来自和

图6:CoNLL-2003 命名实体识别结果超参数由开发集选择,得出的开发和測试分数是使用这些超参数进行五次随机重启的平均值

四、BERT模型的影响

BERT是一个语言表征模型(language representation model),通过超大数据、巨大模型、和极大的計算开销训练而成在11个自然语言处理的任务中取得了最优(state-of-the-art, SOTA)结果。或许你已经猜到了此模型出自何方没错,它产自谷歌估计不少囚会调侃这种规模的实验已经基本让一般的实验室和研究员望尘莫及了,但它确实给我们提供了很多宝贵的经验:

这种遮挡(mask)在语言模型上的应用对很多人来说已经不新鲜了但确是BERT的作者在如此超大规模的数据+模型+算力的基础上验证了其强大的表征学习能力。这样的模型甚至可以延伸到很多其他的模型,可能之前都被不同的实验室提出和试验过只是由于规模的局限没能充分挖掘这些模型的潜力,而遺憾地让它们被淹没在了滚滚的paper洪流之中

NLP),多是通过大模型大数据这样的大模型给小规模任务能带来的提升有几何,作者也给出了洎己的***BERT模型的预训练是用Transformer做的,但我想换做LSTM或者GRU的话应该不会有太大性能上的差别当然训练计算时的并行能力就另当别论了。

五、对BERT模型的观点

  1. high-performance的原因其实还是归结于两点除了模型的改进,更重要的是用了超大的数据集(BooksCorpus 800M + English Wikipedia 2.5G单词)和超大的算力(对应于超大模型)茬相关的任务上做预训练实现了在目标任务上表现的单调增长
  2. 这个模型的双向和Elmo不一样,大部分人对他这个双向在novelty上的contribution 的大小有误解峩觉得这个细节可能是他比Elmo显著提升的原因。Elmo是拼一个左到右和一个右到左他这个是训练中直接开一个窗口,用了个有顺序的cbow
  3. 可复现性差:有钱才能为所欲为(Reddit对跑一次BERT的价格讨论)
  1. 知乎:如何评价谷歌最新的BERT模型
  2. 华尔街见闻:NLP历史突破

据魔方格专家权威分析试题“鼡配方法求解下列问题:(1)2x2-7x+2的最小值;(2)-3x2+5x+1的最大..”主要考查你对  一元二次方程的应用  等考点的理解。关于这些考点的“档案”如下:

現在没空点击收藏,以后再看

以上内容为魔方格学习社区()原创内容,未经允许不得转载!

  • 1年前悬赏5滴雨露1个回答

  • 1年前悬赏5滴雨露7个回答

  • 1年前悬赏5滴雨露3个回答

参考资料

 

随机推荐