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

2019 年 2 月 27 日 机器学习算法与Python学习




  新智元报道   

来源: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本好书,另有超值购书福利

登录查看更多
8

相关内容

BERT全称Bidirectional Encoder Representations from Transformers,是预训练语言表示的方法,可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
67+阅读 · 2020年1月2日
一文详解Google最新NLP模型XLNet
PaperWeekly
18+阅读 · 2019年7月1日
干货 | 谷歌2019最火NLP模型Bert应用详解
全球人工智能
7+阅读 · 2019年4月3日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
图解2018年领先的两大NLP模型:BERT和ELMo
新智元
9+阅读 · 2018年12月14日
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈
人工智能头条
10+阅读 · 2018年10月25日
OpenAI NLP最新进展:通过无监督学习提升语言理解
人工智能头条
6+阅读 · 2018年6月18日
Arxiv
29+阅读 · 2020年3月16日
Arxiv
15+阅读 · 2019年9月11日
Arxiv
6+阅读 · 2019年8月22日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
22+阅读 · 2018年8月30日
VIP会员
相关资讯
一文详解Google最新NLP模型XLNet
PaperWeekly
18+阅读 · 2019年7月1日
干货 | 谷歌2019最火NLP模型Bert应用详解
全球人工智能
7+阅读 · 2019年4月3日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
图解2018年领先的两大NLP模型:BERT和ELMo
新智元
9+阅读 · 2018年12月14日
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈
人工智能头条
10+阅读 · 2018年10月25日
OpenAI NLP最新进展:通过无监督学习提升语言理解
人工智能头条
6+阅读 · 2018年6月18日
相关论文
Arxiv
29+阅读 · 2020年3月16日
Arxiv
15+阅读 · 2019年9月11日
Arxiv
6+阅读 · 2019年8月22日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
22+阅读 · 2018年8月30日
Top
微信扫码咨询专知VIP会员