3分钟看懂史上最强NLP模型BERT

2019 年 2 月 27 日 机器学习算法与Python学习
3分钟看懂史上最强NLP模型BERT




  新智元报道   

来源:Medium

编辑:元子

本文对BERT的原理、技术细节以及如何应用于实际场景中,做了简明扼要的介绍。看完本文相信您会对BERT为什么被认为是当前最好的NLP模型、实现原理以及适用场景有所了解。

目前最好的自然语言预训练方法无疑是BERT。它的工作流程分为两步:


首先,使用大量未标记的数据,以预训练、也就是无人监督的方式学习语言表达。


然后,使用少量经过标记的训练数据对模型进行fine-tune,以监督学习的方式,执行多种监督任务。 


预训练机器学习模型已经在包括视觉、自然语言处理在内的各个领域取得了成功。



详解BERT及其原理


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


它基于谷歌2017年发布的Transformer架构,通常的Transformer使用一组编码器和解码器网络,而BERT只需要一个额外的输出层,对预训练进行fine-tune,就可以满足各种任务,根本没有必要针对特定任务对模型进行修改。


BERT将多个Transformer编码器堆叠在一起。Transformer基于著名的多头注意力(Multi-head Attention)模块,该模块在视觉和语言任务方面都取得了巨大成功。


BERT的先进性基于两点:首先,使用Masked Langauge Model(MLM)和Next Sentense Prediction(NSP)的新预训练任务;其次,大量数据和计算能力满足BERT的训练强度。


相比之下,像Word2Vec、ELMO、OpenAI GPT等传统SOTA生成预训练方法,使用从左到右的单向训练,或者浅双向,均无法做到BERT的双向性。


MLM


MLM可以从文本执行双向学习,即允许模型从单词前后相邻的单词,学习每个单词的上下文,这是传统方法做不到的。


MLM预训练任务将文本转换为符号,并使用符号表示作为训练的输入和输出。15%的符号随机子集在训练期间被屏蔽(类似被隐藏起来),目标函数则用来预测符号识别的正确率。


这与使用单向预测作为目标、或使用从左到右和从右到左训练,来近似双向性的传统训练方法形成了对比。 


但是MLM中的BERT屏蔽策略,将模型偏向于实际的单词,还没有数据显示这种偏见对训练所产生的影响。


NSP


NSP使得BERT可以通过预测上下句之间是否连贯来得出句子之间的关系。


给出50%正确上下句配对,并补充50%的随机上下句配对,然后对模型进行训练。


MLM和NSP是同时进行的。


数据和TPU/GPU runtime


BERT的训练总共使用了33亿单词。其中25亿来自维基百科,剩下8亿来自BooksCorpus。 


训练使用TPU完成,GPU估算如下所示。



使用2500-392000标记的样品进行fine-tune。重要的是,100K以上训练样本的数据集在各种超参数上表现出强大的性能。 


每个fine-tune实验在单个云TPU上运行1小时,在GPU上需要运行几个小时不等。


结果显示,BERT优于11项NLP任务。在SQUAD和SWAG两个任务中,BERT成为第一个超越人类的NLP模型!



BERT能够解决的实际任务类型


BERT预训练了104种语言,已在TensorFlow和Pytorch中实现并开源。Clone地址:

https://github.com/google-research/Bert


BERT可以针对几种类型的任务进行fine-tune。例如文本分类、文本相似性、问答、文本标签、如词性、命名实体识别等。


但是,预训练BERT是很贵的,除非使用类似于Nvidia V100这样的TPU或GPU。


BERT人员还发布了一个单独的多语种模型,该模型使用整个维基百科的100种语言进行训练,性能比单语种的低几个百分点。


推荐阅读

5个常常被大家忽略的Python小技巧

开发工作3、5年,怎样才能做到不在寒冬“被裁员”?

清华90后博士后万蕊雪:科研这场马拉松,我会一直跑下去

实践秘籍:Boosting 与 AdaBoost

逆天了,谷歌无人车识别交警手势,没信号灯也能从容通过

关于深度学习中的卷积,这些是你该懂得!

让老婆能学会的Python教程

中科大 - 计算机学院 - 课程资源

开工福利 | 送10本好书,另有超值购书福利

登录查看更多
6

相关内容

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

内容简介: 采用NLP预训练模型Bert的训练数据如果少的话,那么不足以训练复杂的网络;并且如果采用bert进行预训练则可以加快训练的速度;在运用预训练时,首先对参数进行初始化,找到一个好的初始点,那么对后续的优化将会产生巨大的影响。

说到利用深度学习来进行自然语言处理,必然绕不开的一个问题就是“Word Embedding”也 就是将词转换为计算机能够处理的向量,随之而来的人们也碰到到了一个根本性的问题,我们通常会面临这样的一个问题,同一个单词在不同语 境中的一词多义问题,研究人员对此也想到了对应的解决方案,例如在大语料上训练语境表示,从而得到不同的上下文情况的 不同向量表示。

Bert在模型层面上并没有新的突破,准确来说它更像是NLP领域 近期优秀模型的集大成者,Bert相比其他神经网络模型,同时具备了特征提取能力与语境表达能力,这是其他比如OPEN AI与ELMo所不能达到的。为了解决双向编码器循环过程中出现的间接“窥见”自己的问题,Bert采用了一个masked语言模型,将其他模型的思想恰到好处的融合起来了。

成为VIP会员查看完整内容
0
45
小贴士
相关资讯
一文详解Google最新NLP模型XLNet
PaperWeekly
16+阅读 · 2019年7月1日
干货 | 谷歌2019最火NLP模型Bert应用详解
全球人工智能
7+阅读 · 2019年4月3日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
详解谷歌最强NLP模型BERT(理论+实战)
AI100
10+阅读 · 2019年1月18日
图解2018年领先的两大NLP模型:BERT和ELMo
新智元
7+阅读 · 2018年12月14日
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈
人工智能头条
10+阅读 · 2018年10月25日
OpenAI NLP最新进展:通过无监督学习提升语言理解
人工智能头条
6+阅读 · 2018年6月18日
相关论文
Qi Liu,Matt J. Kusner,Phil Blunsom
24+阅读 · 2020年3月16日
Liang Yao,Chengsheng Mao,Yuan Luo
8+阅读 · 2019年9月11日
Ashutosh Adhikari,Achyudh Ram,Raphael Tang,Jimmy Lin
3+阅读 · 2019年8月22日
How to Fine-Tune BERT for Text Classification?
Chi Sun,Xipeng Qiu,Yige Xu,Xuanjing Huang
11+阅读 · 2019年5月14日
Universal Transformers
Mostafa Dehghani,Stephan Gouws,Oriol Vinyals,Jakob Uszkoreit,Łukasz Kaiser
4+阅读 · 2019年3月5日
Conditional BERT Contextual Augmentation
Xing Wu,Shangwen Lv,Liangjun Zang,Jizhong Han,Songlin Hu
8+阅读 · 2018年12月17日
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日
Ofir Press,Noah A. Smith
3+阅读 · 2018年10月31日
Jacob Devlin,Ming-Wei Chang,Kenton Lee,Kristina Toutanova
9+阅读 · 2018年10月11日
Antoine J. -P. Tixier
10+阅读 · 2018年8月30日
Top