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

近日,谷歌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》。这个题目很直白,一眼望去就能猜得到,这篇文章至少会讲到四大问题中的三个,应用场景、模型、训练数据。

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

论文地址:

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

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