专栏首页人工智能头条详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈

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

今天带来的这篇文章,详细的讲解了 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 项目成功落地。

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

本文分享自微信公众号 - 人工智能头条(AI_Thinker)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Chatbot中应用深度学习? | 赠书

    用户1737318
  • 深度学习在美团点评推荐业务中实践

    近年来,深度学习在语音识别、计算机视觉及自然语言处理等领域都取得了很大的突破,成为学术界和工业界关注的热点。与传统机器学习方法相比,深度学习在特征抽取及特征组合...

    用户1737318
  • 一文带你理解深度学习的局限性

    用户1737318
  • NLP这两年:15个预训练模型对比分析与剖析

    在之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT...

    AI科技大本营
  • 后BERT时代:15个预训练模型对比分析与关键点探究

    在小夕之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BE...

    zenRRan
  • 话题 | 如何看待谷歌最近开源的“最强NLP模型”BERT?

    上周,谷歌AI团队开源了备受关注的“最强NLP模型”BERT的TensorFlow代码和预训练模型,不到一天时间,收获3000多星!

    AI研习社
  • 谷歌终于开源BERT代码:3 亿参数量,机器之心全面解读

    最近谷歌发布了基于双向 Transformer 的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种 NLP 任务,该研究凭借预训练模型刷新了 1...

    昱良
  • 谷歌终于开源BERT代码:3 亿参数量,机器之心全面解读

    今日,谷歌终于放出官方代码和预训练模型,包括 BERT 模型的 TensorFlow 实现、BERT-Base 和 BERT-Large 预训练模型和论文中重要...

    机器之心
  • 【NLP应用之智能司法】最强之谷歌BERT模型在智能司法领域的实践浅谈

    知乎链接:https://zhuanlan.zhihu.com/p/54934304

    zenRRan
  • 后BERT时代:15个预训练模型对比分析与关键点探索(附链接)

    在之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT...

    数据派THU

扫码关注云+社区

领取腾讯云代金券