BERT在机器阅读理解测试SQuAD1.1中表现出惊人的成绩

电子说

1.3w人已加入

描述

近日,谷歌AI团队新发布的BERT模型,在NLP业内引起巨大反响。BERT在机器阅读理解测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且还在11种不同NLP任务中创出最佳成绩。这项工作被认为是NLP领域里程碑式的进步。新智元专栏作者邓侃博士对这篇论文进行了详细解读。

一个完整的深度学习系统,通常包括以下四个部分,1. 应用场景、2. 模型、3. 训练数据、4. 算力。

从2018年年初以来,深度学习在语言处理方面,一直没有特别靓丽的突破性进展。三天前,2018年10月11日,谷歌人工智能语言研究组发表了一篇论文,立刻引起业界巨大反响。

这篇论文的题目是,《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。这个题目很直白,一眼望去就能猜得到,这篇文章至少会讲到四大问题中的三个,应用场景、模型、训练数据。

论文地址:

https://arxiv.org/abs/1810.04805

多种应用场景,与通用语言模型

自然语言处理(NLP)的应用场景,从大的方面讲,是对于语言文字的智能处理,包括阅读理解、问答对话、写作、翻译等等。这些应用场景,又可以细分成若干任务,包括从一连串字中识别词,从一连串词中识别词组、从语句中识别主谓宾定语状语、从语句中识别语气情绪、从整篇文章中提炼摘要、根据提问从整篇文章中寻找答案,等等。

这篇论文介绍了一种模型,BERT,它至少能解决 NLP 诸多任务中的 11 种,包括:

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

* 当用户提问,“两岁的男孩为什么食欲不振”,深度学习是否可以从大量书籍中,自动摘录相关内容,并组织成流畅的语言,回答用户提问?

用同一种模型,解决多种不同任务。这涉及到一个十分激进的猜想:在以往的实践中,我们通常为每种具体任务,单独定制模型。是否存在一种“通用”的语言模型,能够用它来完成多种不同的任务?

BERT 的研究者们,试图证明 Deep Bidirectional Transformers就是这样一种通用的语言模型,它不仅能解决 11 种不同的 NLP 任务,而且在所有任务上的精度,大幅度领先以往其它模型,甚至超越人类。

为什么 Deep Bidirectional Transformers 能够担当通用的语言模型?论文没有提供严格的数学证明,只是用 11 种不同的具体任务,来经验地验证这个模型的通用性。

Deep Bidirectional Transformers,这三个词分别是什么意思?

假如在一个句子 “中国的首都是北京”中 ,先遮盖某一个词,譬如 “首都”。然后,把遮盖后的残缺的句子,“中国的[mask]是北京” ,输入进电脑,让电脑猜一猜 [mask] 应该是什么词。

电脑可以从前往后猜,也就是根据前文 “中国/的” ,猜测 [mask] 会是什么词。电脑也可以从后往前猜,也就是根据后文 “北京/是”,猜测 [mask] 会是什么词。这两种方式都是单向预测 unidirectional。

很显然,单向预测不能完整地理解整个语句的语义。于是研究者们尝试双向预测。把从前往后,与从后往前的两个预测,拼接在一起 [mask1/mask2],这就是双向预测 bi-directional。细节参阅《Neural Machine Translation by Jointly Learning to Align and Translate》。

BERT 的作者认为,bi-directional 仍然不能完整地理解整个语句的语义,更好的办法是用上下文全向来预测[mask],也就是用 “中国/的/ .. /是/北京”,来预测 [mask]。BERT 的作者把上下文全向的预测方法,称之为 deep bi-directional。

如何来实现上下文全向预测呢?BERT 的作者建议使用Transformer 模型。这个模型在《Attention Is All You Need》一文中,被首次提出。论文发表后,立刻引起业界轰动,成为深度学习 NLP 的里程碑式的进展。

Transformer 模型的核心是聚焦机制,对于一个语句,可以同时启用多个聚焦点,而不必局限于从前往后的或者从后往前的,序列的串行处理。所以,几乎不用修改 Transformer 的代码,就可以完成上下文全向的预测任务。

训练数据与 Pre-training

模型不仅需要功能强劲的结构,而且还必须具备正确的参数,这样才能担当通用语言模型,准确理解文章语句的语义。

BERT 这篇论文,尝试了两种规模的 transformer 模型。第一个模型的规模较小,总共有 12 层模块(L=12)、在每个模块中语义数值向量的维度为 786(H=768)、聚焦探头 12 个(A=12)。整个小模型,需要训练的模型参数的总数是 12 * 768 * 12 = 110M。大模型 L=24,H=1024,A=16, 大模型参数的总数是 24 * 1024 * 16 = 393M。

几亿个参数需要训练,自然需要海量的训练数据。如果全部用人力标注的办法,来制作训练数据,人力成本太大。从哪里收集这些海量的训练数据?

2003年发表的《A Neural Probabilistic Language Model》论文,提出一个收集训练数据的办法:每一篇文章,从新闻到小说到论文,天生都是训练数据,不需要额外做人工标注。

受这篇论文的启发,BERT 研究者们尝试用以下方法,训练模型参数。方法分两步,

1. 把一篇文章中 15% 的词汇遮盖,让模型根据上下文全向地预测被遮盖的词。通过预测任务,来初步训练 Transformer 模型的参数。

假如有 1 万篇文章,每篇文章平均由 1 千个词汇构成,随机遮盖 15% 的词汇,那么模型需要预测 150 万个词汇。

2. 用一个新任务,识别两个句子是否连续,来进一步训练模型参数。

譬如从上述 1 万篇文章中,挑选 20 万对语句,总共 40 万句语句。在这些语句中,经过第一步的处理,15% 的词汇被遮盖(某些细节,不必絮述)。

挑选 20 万对语句的时候,让其中一半是上下文中连续的两个语句,剩余的一半,由不是连续的两个语句构成。然后让 Transformer 模型来识别这 20 万对语句中,哪些对子是连续的,哪些对子不连续。

这两步训练合在一起,称为预训练 pre-training。训练结束后的 Transformer 模型,就是通用的语言模型,BERT。

Pre-training 与 Fine-tuning

预训练 pre-training 出来的通用模型,能够正确理解语句和文章的语义。通用模型不能直接用于解决不同的 NLP 具体问题,需要给通用模型穿一件外套。

BERT 论文中的 Figure 3,描述了针对四类不同问题的四种不同外套。

Figure 3

不仅模型需要穿外套,而且外套也有参数,找到这些参数的最优值,是精加工 fine-tuning 的目标。另外,在精加工的过程中,有时也自动地顺带微调 BERT 通用模型的一些参数。

对模型外套进行精加工时,不同具体问题,需要不同的训练数据。这篇论文,尝试了 11 种不同问题的多种公开的,经过人工标注的训练数据集。

模型的参数高达几亿个,用海量的文章作为 pre-training 的训练数据,再用多种人工标注的训练数据,来训练模型,找到模型参数的最优值。不难想象,计算成本非常非常高。

BERT 论文中说,他们动用了谷歌 Cloud AI 资源,用了 64 颗 TPU,算了 4 天,模型参数寻优的训练过程才收敛。

如果不是用 TPU,而是用普通 GPU,不知道会需要多长时间。

按谷歌 Cloud AI 的正常价格,每训练一次,需要 9.6 万人民币。即便这些天 Google Cloud AI 打七折,也需要 1.4 万。如果程序有 bugs,需要返工,计算成本相当高。

深度学习 NLP 四大里程碑

前文说到,“一个完整的深度学习系统,通常包括以下四个部分,1. 应用场景、2. 模型、3. 训练数据、4. 算力”。BERT 这篇论文,一口气把四个问题,全部说到了。

有业界老师认为,深度学习 NLP 到目前为止,有四大里程碑,分别是,

1. 2003年2月,深度学习大神 Yoshua Bengio,与他的学生共同发表论文《A Neural Probabilistic Language Model》,把深度学习引入自然处理领域,把自然语言的词汇,转换成数值向量。从此,自然语言处理的基本研究方法,发生质的飞跃。这是深度学习 NLP 的第一个里程碑。

2. 2016年5月,Sequence to Sequence 技术日臻成熟,尤其是引入聚焦机制,如虎添翼。这是深度学习 NLP 的第二个里程碑,代表作是 Yoshua Bengio 大神与他的学生们,共同执笔的论文《Neural Machine Translation by Jointly Learning Align and Translate》。

3. 2017年6月,谷歌的 Ashish Vaswani 等人,发表论文《Attention Is All You Need》,对 NLP 使用的深度学习模型,做了革命性的改进。这是深度学习 NLP 的第三个里程碑。

4. 2018年10月,谷歌的 Jacob Devlin 等人,发表的这篇 BERT 论文,很可能是第四个里程碑。不仅提议了一个通用的语言模型,而且用非监督的办法做预训练,用有监督的办法做精加工,取得了惊艳的效果。

2018年以后,会发生什么?很可能会出现若干深度学习 NLP 产品,获得巨大的商业成功。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分