详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈

2018 年 10 月 25 日 人工智能头条
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈


大家好,我是为人造的智能操碎了心的智能禅师。

很开心。昨天1024节,公司特许,从00:00到8:00放假。禅师感慨:终于可以有机会知道半夜12点睡觉是什么体验了。

之前人工智能头条的股东粉群里,有人提到 BERT 模型,禅师正准备好好了解一下,怎么就全面超越人类了?怎么就谷歌最强 NLP 模型了


今天带来的这篇文章,详细的讲解了 BERT 以及和其他模型之间的区别。由深思考人工智能(iDeepWise Artificial Intelligence)投稿。

深思考人工智能是一家专注于类脑人工智能与深度学习核心科技的AI公司,公司核心技术是“多模态深度语义理解技术”,可同时理解文本、视觉图像背后的语义。

全文大约3500字。读完可能需要下面这首歌的时间

👇

了解 BERT


BERT 模型全称 Bidirectional Encoder Representations from Transformer s,是一种新型的语言模型,通过联合调节所有层中的双向 Transformer 来训练预训练深度双向表示。

只需要一个额外的输出层,对预训练 BERT 进行微调,就可以满足各种任务,根本没有必要针对特定任务对模型进行修改。这就是为什么 BERT 模型能做在11项 NLP 任务上取得突破进展的原因。

想深入了解 BERT 模型,首先应该理解预训练的语言模型。

预训练的语言模型,对众多自然语言处理问题起到了重要作用。比如 SQuAD 问答任务、命名实体识别,以及情感识别。

目前将预训练的语言模型应用到 NLP 任务主要有两种策略:

  1. 一种是基于特征的语言模型,如 ELMO 模型

  2. 另一种是基于微调的语言模型,如 OpenAI GPT 

主流模型对比

Word2Vec

Word2Vec 作为里程碑式的进步,对 NLP 的发展产生了巨大的影响。但 Word2Vec 本身是一种浅层结构价值训练的词向量,所“学习”到的语义信息受制于窗口大小,因此后续有学者提出利用可以获取长距离依赖的 LSTM 语言模型预训练词向量。

但上述语言模型有自身的缺陷。它是根据句子的上文信息来预测下文,或者根据下文来预测上文的。

我们理解语言,是需要考虑到双向的上下文信息,而传统的 LSTM 模型只学习到了单向的信息。

ELMO

今年年初, ELMO 的出现在一定程度上解决了这个问题。ELMO 是一种双层双向的 LSTM 结构,其训练的语言模型可以学习到句子左右两边的上下文信息,但此处所谓的上下文信息并不是真正意义上的上下文。

OpenAI GPT

除此之外, OpenAI 的 GPT 是利用了 Transformer 的编码器作为语言模型进行预训练的,之后特定的自然语言处理任务在其基础上进行微调即可。

和 LSTM 相比,此种语言模型的优点是可以获得句子上下文更远距离的语言信息,但也是单向的。

BERT

为了充分利用左右两侧的上下文信息, BERT 出现了!

OpenAI GPT 采用的从左到右的 Transformer;ELMO 采用经过单独训练的从左到右和从右到左的 LSTM 来生成下游任务的特征。

只有 BERT 模型采用的是双向 Transformer,模型的表示在所有层中,共同依赖于左右两侧的上下文。

BERT 的出现,似乎融合了其他模型的所有的优点,并摒弃了它们的缺点,因此才可以在诸多后续特定任务上取得最优的效果。

图1 预训练模型结构对比图

下面将从 BERT 模型的结构、输入以及训练三块进行介绍。

BERT 总体结构

BERT 是一种基于微调的多层双向 Transformer 编码器,其中的 Transformer 与原始的 Transformer 是相同的,并且实现了两个版本的 BERT 模型。在两个版本中前馈大小都设置为4层:

  1. BERT BASE:L=12,H=768,A=12,Total Parameters=110M

  2. BERT LARGE:L=24,H=1024,A=16,Total Parameters=340M

👆层数(即 Transformer blocks 块)表示为 L,隐藏大小表示为 H,自注意力的数量为 A。

BERT 模型两个版本的本质是一样的;区别是参数的设置。BERTBASE 作为 baseline 模型,在此基础上优化模型,进而出现了 BERTLARGE

BERT 模型输入表示

输入表示,可以在一个词序列中表示单个文本句或一对文本,例如:[问题,答案]。对于给定的词,其输入表示是可以通过三部分 Embedding 求和组成。Embedding 的可视化表示👇:

图2 BERT 模型的输入表示

其中:

token Embedding s表示的是词向量,第一个单词是CLS标志,可以用于之后的分类任务,对于非分类任务,可以忽略词向量

Segment Embedding s用来区别两种句子,因为预训练不只做语言模型还要做以两个句子为输入的分类任务

Position Embedding s是通过模型学习得到的

BERT 模型预训练任务

BERT 模型使用两个新的无监督预测任务对 BERT 进行预处理,分别是Masked LM 和 Next Sentence Prediction。

Masked LM

来源:Fresh 92.7

为了训练深度双向 Transformer 表示,采用了一种简单的方法:随机掩盖部分输入词,然后对那些被掩盖的词进行预测。

此方法被称为 Masked LM (MLM),预训练的目标是构建语言模型,BERT 模型采用的是 bidirectional Transformer。基于 Masked LM 预处理的 BERT 模型能够完成序列标注和命名实体识别等任务。

为什么采用 bidirectional 的方式呢?因为在预训练语言模型来处理下游任务时,我们需要的不仅仅是某个词左侧的语言信息,还需要右侧的语言信息。

在训练的过程中,随机地掩盖每个序列中15%的 token,并不是像 Word2Vec 中的 cbow 那样去对每一个词都进行预测。

MLM 从输入中随机地掩盖一些词,其目标是基于上下文,来预测被掩盖单词的原始词汇。与从左到右的语言模型预训练不同,MLM 目标允许表示融合左右两侧的上下文,这使得可以预训练深度双向 Transformer。 

Transformer 编码器不知道它将被要求预测哪些单词,或者哪些已经被随机单词替换,因此它必须对每个输入词保持分布式的上下文表示。

此外,由于随机替换在所有词中只发生1.5%,所以并不会影响模型对于语言的理解。

Next Sentence Prediction

来源:BitDegree

很多句子级别的任务,如自动问答(QA)和自然语言推理(NLI)等任务,都需要理解两个句子之间的关系。譬如上述 Masked LM 任务中,经过第一步的处理,15%的词汇被遮盖。

那么在这一任务中,我们需要随机将数据划分为同等大小的两部分:

一部分数据中的两个语句对是上下文连续的

另一部分数据中的两个语句对是上下文不连续的。

然后让 Transformer 模型来识别这些语句对中,哪些语句对是连续的,哪些语句对不连续。

BERT 模型场景应用

命名实体识别

命名实体是文本中信息的主要载体,是构建信息抽取系统的重要组成部分。

BERT 模型在 CoNLL-2003 NER 数据集的试验结果, F1值相对于基线模型(CVT+Multi)只提高了0.2%,似乎指标上没有什么惊艳的表现,模型在实验上获得的指标提升远低于增加的计算成本。

但这种方式可以有效利用已有数据进行预训练,充分利用先验知识,在领域迁移性,模型通用型方面有巨大优势。

在命名实体识别,尤其是在开放域实体方面,BERT 模型给了我们很大的想象空间,相信以后在开放域实体识别方面会不断刷新基线模型的指标。

机器阅读理解

在机器阅读理解领域,经过谷歌、微软、百度、科大讯飞、腾讯、斯坦福大学等在内的众多研究机构的不懈努力,目前已形成了向量化-语义编码-语义交互-答案预测这样一套四层机器阅读理解模型体系。

从英文领域的代表 SQuAD 技术评测到中文领域的代表2018机器阅读理解技术竞赛,Top 团队无一例外的在“向量化”层做足了文章。

“向量化”层主要负责将问题及篇章公离散字符转变为隐含语义的表征向量,从 One-Hot 到 Word2Vec/Glove 再到 ELMO ,这一系列技术的变革都是在最大化的利用无监督的预训练方式,将更多的隐含语义信息嵌入模型,从而在不用应用场景中提高模型的评测指标。 

BERT 模型则是利用 Deep bidirectional Transformers 预训练一个通用语言模型,从而更好的正确理解语句和文章的语义信息。

在 SQuAD 1.1竞赛评测中惊人表现,也证实了该模型至少在目前已经开始引领 NLP 发展的潮流。能不能最终摘取AI领域最后的皇冠,只能时间去验证。

情感计算

在情感计算领域,希望可以借助其强大的语言建模能力来获得更多的领域知识,进而减少后续特定自然语言任务的人工标注成本。

比如:可以先在维基百科或者某些商业售后评论上预训练语言模型,对相关领域进行“知识学习”,然后结合现有的有监督学习进行情绪识别和情感计算。

总结

语言模型的每一次进步都推动着 NLP 的发展。

从 Word2Vec 到 ELMO,从 OpenAI GPT 到 BERT,我们有幸见证着一个又一个记录被打破,见证着一个又一个 AI 项目成功落地。

人工智能,正在激励着人类向着未知探索前进。

顺便说一句,人工智能头条已经介入微软小冰机器人。大家可以在公众号随意聊天。



文末福利

1024感恩大促

请注意,知识点来了,为什么叫“猿族崛起”而不是“XXXX”呢?


程序员是人工智能时代的基石,是最有智慧的群体,是未来世界的缔造者,1024 是创造这一切的开始,我们一起见证了时代的变革,我们为创造了这个伟大的互联网时代而狂欢。

讲实话,1024 这种节日,会有很多福利活动,但很多都是听听就过了,没办法让你产生一丝兴奋。但,对于我们这种连做个课都得磨上半年的(变态)公司来说,老板说给程序员的福利只有一个要求:整点有用的,没用的不要。(此处应该有掌声)

所以,我们这个活动到底要怎样参加呢?再穷不能穷奖品——


  • 活动期间全场课程、电子书 5 折起

  • 活动期间累计消费金额满 32 元(含购买会员),送价值 10 元通用优惠券,仅限前 1024 位;

  • 活动期间累计消费金额满 128 元(含购买会员),送价值 99 元月度超级会员,仅限前 256 位;

  • 活动期间累计消费金额满 512 元(含购买会员),送精美 CSDN 定制背包,不限量;每天随机抽取 3 位赠送价值 399 元机械键盘。


1024 优惠活动已经开始,按照以往大家抢购的速度来看,不到 5 个小时就把几百张优惠券全抢走了,去买极客书、买课程、看 Chat ......所以赶紧去扫描上方海报的二维码或者点击阅读原文参加活动吧,越晚不仅越贵,还有可能得不到礼品!


活动说明:

  • 活动期间消费统计以实际支付金额为准;

  • 活动礼品兑换以活动期间消费累计金额最高档为准;

  • 活动礼品领取将在活动结束后统一发送通知,请大家注意关注服务号(GitChat)查看通知;

  • 本次活动最终解释权归 GitChat 所有。





幸福

无非就是

我  AI  你


登录查看更多
10

相关内容

BERT全称Bidirectional Encoder Representations from Transformers,是预训练语言表示的方法,可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。

1、BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(BERT论文)

谷歌BERT斩获最佳长论文!自然语言顶会NAACL2019最佳论文5篇出炉

Google NAACL2019 最佳论文

作者:Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova

摘要:本文介绍一种称为BERT的新语言表征模型,意为来自变换器的双向编码器表征量(BidirectionalEncoder Representations from Transformers)。不同于最近的语言表征模型(Peters等,2018; Radford等,2018),BERT旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的BERT表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推理)创建当前最优模型,无需对任务特定架构做出大量修改。BERT的概念很简单,但实验效果很强大。它刷新了11个NLP任务的当前最优结果,包括将GLUE基准提升至80.4%(7.6%的绝对改进)、将MultiNLI的准确率提高到86.7%(5.6%的绝对改进),以及将SQuADv1.1问答测试F1的得分提高至93.2分(1.5分绝对提高)——比人类性能还高出2.0分。

网址:

https://www.zhuanzhi.ai/paper/7acdc843627c496a2ad7fb2785357dec

BERT的slides: BERT一作Jacob Devlin斯坦福演讲PPT:BERT介绍与答疑

2、Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

Google CMU

作者:Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov

摘要:Transformer 网络具有学习更长期依赖性的潜力,但这种潜力往往会受到语言建模中上下文长度固定的限制。因此,我们提出了一种叫做 Transformer-XL 的新神经架构来解决这一问题,它可以在不破坏时间一致性的情况下,让 Transformer 超越固定长度学习依赖性。具体来说,它是由片段级的循环机制和全新的位置编码策略组成的。我们的方法不仅可以捕获更长的依赖关系,还可以解决上下文碎片化的问题。Transformer-XL 学习到的依赖性比 RNN 学习到的长 80%,比标准 Transformer 学到的长 450%,无论在长序列还是短序列中都得到了更好的结果,而且在评估时比标准 Transformer 快 1800+ 倍。此外,我们还提升了 bpc 和困惑度的当前最佳结果,在 enwiki8 上 bpc 从 1.06 提升至 0.99,在 text8 上从 1.13 提升至 1.08,在 WikiText-103 上困惑度从 20.5 提升到 18.3,在 One Billion Word 上从 23.7 提升到 21.8,在宾州树库(不经过微调的情况下)上从 55.3 提升到 54.5。我们的代码、预训练模型以及超参数在 TensorFlow 和 PyTorch 中都可以使用。。

网址:

https://www.zhuanzhi.ai/paper/5c1ec941e06a20e4966a3db298b45211

3、XLNet: Generalized Autoregressive Pretraining for Language Understanding

Google CMU

作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le

摘要:由于上下文双向建模的表达能力更强,降噪自编码类型中的典型代表BERT能够比自回归语言模型取得更好的结果。即,上下文建模获得双向的信息在Language Understanding中是很重要的。但是BERT存在以下不足:(1)在输入端依赖mask的掩模的方式,遮蔽部分的输入信息。(2)忽略了被mask位置之间的依赖性。这两点在预训练-微调两个阶段存在不符。即,上述2个方面在预训练和微调这2个阶段之间都是有差异的。在正视了上述优缺点之后,本文提出一种通用(或者广义,英语原文是generalized)的自回归预训练方法:XLNet。XLNet的贡献在于(1)新的双向上下文学习方法:分解输入的顺序,对其进行排列组合,并遍历所有的排列组合,获得最大似然期望。(2)克服BERT自回归中的缺陷。XLNet在预训练中融合Transformer-XL和state-of-the-art自回归模型的优点。实验结果:XLNet在20个任务中超出了BERT,且很多是碾压式地超越。XLNet在其中18个任务中取得了目前最优结果,包括问答、自然语言推理、情感分析和文档排序。

网址:

https://www.zhuanzhi.ai/paper/74979afe231290d0c1ad43d4fab17b09

4、ALBERT: A Lite BERT for Self-Supervised Learning of Language Representations

作者:Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut

摘要:通常而言,在预训练自然语言表征时增加模型大小可以提升模型在下游任务中的性能。但在某些情况下,由于 GPU/TPU 内存限制、训练时间延长以及意外的模型退化等原因,进一步增加模型大小的难度也随之增加。所以,为了解决这些问题,来自谷歌的研究者提出通过两种参数削减(parameter-reduction)技术来降低内存消耗,加快 BERT 的训练速度。综合实验表明,ALBERT 的扩展效果要优于原始 BERT。此外,他们还使用了聚焦于句间连贯性建模的自监督损失,并证明这种损失对下游任务中的多语句输入有持续帮助。ALBERT 模型在 GLUE、RACE 和 SQuAD 基准测试上都取得了新的 SOTA 效果,并且参数量少于 BERT-large。

网址:

https://www.zhuanzhi.ai/paper/a0067ac863579c6268b0751e12decd04

​更多预训练语言模型的论文请上:

https://github.com/thunlp/PLMpapers

成为VIP会员查看完整内容
0
47
小贴士
相关资讯
ACL 2019 | 理解 BERT 每一层都学到了什么
THU数据派
8+阅读 · 2019年9月9日
ACL 2019 | 微软8篇精选论文解读,一览最新研究进展
微软研究院AI头条
11+阅读 · 2019年6月28日
干货 | 谷歌2019最火NLP模型Bert应用详解
全球人工智能
7+阅读 · 2019年4月3日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
BERT-预训练的强大
微信AI
45+阅读 · 2019年3月7日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
6+阅读 · 2019年2月27日
详解谷歌最强NLP模型BERT(理论+实战)
AI100
10+阅读 · 2019年1月18日
博客 | 谷歌最强 NLP 模型 BERT 解读
AI研习社
4+阅读 · 2018年10月28日
谷歌最强 NLP 模型 BERT 解读
雷锋网
6+阅读 · 2018年10月23日
解读谷歌最强NLP模型BERT:模型、数据和训练
未来产业促进会
5+阅读 · 2018年10月20日
相关论文
Zhenzhong Lan,Mingda Chen,Sebastian Goodman,Kevin Gimpel,Piyush Sharma,Radu Soricut
3+阅读 · 2019年9月26日
Revealing the Dark Secrets of BERT
Olga Kovaleva,Alexey Romanov,Anna Rogers,Anna Rumshisky
4+阅读 · 2019年9月11日
Betty van Aken,Benjamin Winter,Alexander Löser,Felix A. Gers
3+阅读 · 2019年9月11日
Liang Yao,Chengsheng Mao,Yuan Luo
12+阅读 · 2019年9月7日
Kazuki Irie,Albert Zeyer,Ralf Schlüter,Hermann Ney
5+阅读 · 2019年7月11日
Zhilin Yang,Zihang Dai,Yiming Yang,Jaime Carbonell,Ruslan Salakhutdinov,Quoc V. Le
13+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Chi Sun,Xipeng Qiu,Yige Xu,Xuanjing Huang
11+阅读 · 2019年5月14日
Investigating the Successes and Failures of BERT for Passage Re-Ranking
Harshith Padigela,Hamed Zamani,W. Bruce Croft
3+阅读 · 2019年5月5日
Universal Transformers
Mostafa Dehghani,Stephan Gouws,Oriol Vinyals,Jakob Uszkoreit,Łukasz Kaiser
4+阅读 · 2019年3月5日
Music Transformer
Cheng-Zhi Anna Huang,Ashish Vaswani,Jakob Uszkoreit,Noam Shazeer,Ian Simon,Curtis Hawthorne,Andrew M. Dai,Matthew D. Hoffman,Monica Dinculescu,Douglas Eck
4+阅读 · 2018年12月12日
Top