datasheet

QbitAI量子位

文章数:402 被阅读:3656691

账号入驻

全面超越人类!Google称霸SQuAD,BERT横扫11大NLP测试

2018-10-13
    阅读数:
乾明 岳排槐 发自 凹非寺
量子位 出品 | 公众号 QbitAI

Google又有重大突破!

在机器阅读理解顶级水平测试SQuAD1.1中,Google AI团队新发布的BERT模型,交出了一份惊人的成绩单。

在斯坦福大学这个著名的测试中,全面超越人类表现。在全部两个衡量指标上,全面超越人类表现。

甚至在单一模型的情况下,表现也丝毫不虚同行的混合模型。

实际上,BERT不止在SQuAD中摧枯拉朽,总计在11种不同NLP测试中创出最佳成绩,包括包括将GLUE基准提升7.6%,将MultiNLI的准确率提提升5.6%。

新进展让不少研究人员非常兴奋。

有人说这是自然语言理解领域几个月来最重大的事件。Google BERT的出现,也被一些人认为将改变NLP的研究模式。

“这不是NLP的结束,甚至不是结束的开始。这可能是开始的结束。”有人借用丘吉尔的《The End of the Beginning》来形容这一突破的意义。

一个NLP的新时代开启了,Google团队的Thang Luong说。

横扫11大NLP测试

机器阅读理解,是一场竞争激烈的比拼。

竞技场是SQuAD。

SQuAD是行业公认的机器阅读理解顶级水平测试,可以理解为机器阅读理解领域的ImageNet。它们同样出自斯坦福,同样是一个数据集,搭配一个竞争激烈的竞赛。

这个竞赛基于SQuAD问答数据集,考察两个指标:EM和F1。

EM是指精确匹配,也就是模型给出的答案与标准答案一模一样;F1,是根据模型给出的答案和标准答案之间的重合度计算出来的,也就是结合了召回率和精确率。

这次Google AI基于BERT的混合模型,在SQuAD1.1数据集上,获得EM:87.433、F1:93.160分的历史最佳成绩。

上个月底,微软亚洲研究院团队刚刚在SQuAD测试中刷出最新成绩,那是AI首次在这个测试中全面超越人类表现。过去一年里,科大讯飞、腾讯、阿里巴巴等中国团队,也先后在SQuAD测试中轮番登顶。

不过需要说明的是,Google BERT这次并没有参与SQuAD2.0测试。2.0是斯坦福NLP团队今年6月13日发布的最新数据集。

目前SQuAD2.0的最佳成绩,还是来自微软亚洲研究院,复旦+流利说团队、国防科大团队、阿里巴巴团队并列位于第二位。

除了SQuAD,BERT还横扫了如下10大NLP测试,包括:GLUE、MNLI、QQP、QNLI、SST-2、CoLA、STS-B、MRPC、RTE、WNLI。

当然关于机器阅读理解这件事,也一直有争论

详解BERT

这种新的语言表征模型BERT,意思是来自Transformer 的双向编码器表征(Bidirectional Encoder Representations from Transformers)。

与最近的语言表征模型不同,BERT基于所有层中的左、右语境进行联合调整,来预训练深层双向表征。

因此,只需要增加一个输出层,就可以对预训练的 BERT 表征进行微调,就能为更多的任务创建当前的最优模型,比如问答和语言推断任务。

整个过程不需要对特定任务进行实质性的架构修改。

BERT概念很简单,但效果很强大:刷新了11项NLP任务的最优结果。包括:

  • 将GLUE基准提升至80.4 % ( 7.6 %的绝对改进)。

  • 将MultiNLI准确度提升至86.7%( 5.6 %的绝对改进)。

  • 将SQuAD v1.1 问答测试F1提高到93.2分 ( 1.5分的绝对改进),比人类表现高出2.0分

BERT论文的主要内容如下。

模型结构

在本文中,我们将层数(即 Transformer 块)表示为L,将隐藏尺寸表示为H,将自注意力头(self-attention heads)的数量表示为A。在所有的情况下,我们都将前馈/滤波器尺寸设置为4H,即H = 768时,为3072,H = 1024时,为4096。我们主要报告两种模型尺寸上的结果,分别是:

BERTBASE: L=12, H=768, A=12, 总参数=110M

BERTLARGE: L=24, H=1024, A=16, 总参数=340M

为了比较,BERT(BASE)采用了与OpenAI GPT相同的模型尺寸。但关键的是,BERT Transformer 使用双向自注意力机制,而 GPT Transformer 使用受限的自注意力机制,从而使每个 token 只能关注左侧的语境。

我们也注意到,双向 Transformer 在文献中通常称为“Transformer 编码器”(Transformer encoder),而只关注左侧语境的Transformer被称为“Transformer 解码器”(Transformer decoder),因为它能用于文本生成。BERT、OpenAI GPT和ELMo之间的比较如下图所示:

BERT 使用双向 Transformer,OpenAI GPT 使用从左到右的 Transformer,ELMo 使用独立训练的从左到右和从右到左 LSTM 的级联,来生成下游任务的特征。三种模型中,只有 BERT 表征是联合的,基于所有层中的左右两侧语境。

输入表征

我们的输入表征能够在一个标记序列中清晰地表示单个文本句子或两个文本句子(例如,[问题、答案])。对于给定的token,其输入表征是通过对相应的token、分段和位置嵌入求和来构建的。下图更直观的展示了我们的输入表征。

BERT输入表征。

具体的情况是:

  • 我们使用WordPiece嵌入,拥有30000个token词汇。我们用##表示拆分的单词片段。

  • 我们使用学习的位置嵌入,支持多达512个token的序列长度。

  • 每个序列的第一个token是特殊分类嵌入([CSL])。对应于该token的最终隐藏状态(即Transformer的输出)被用作分类任务的聚合序列表征。对于非分类的任务,则忽略此向量。

  • 句子对被组合成单一的序列。我们用两种方式区分句子。首先,我们用一个特殊的token将它们分开([SEP])。其次,我们在第一句的每一个token中添加了一个学习句子A嵌入,在第二句的每一个token中添加了一个句子B嵌入。

  • 对于单句输入,我们只使用句子A嵌入。

预训练任务

与 Peters 等人和 Radford 等人此前的实验不同,我们不使用传统的从左到右或从右到左的语言模型来预训练 BERT,而是使用两个新的无监督预测任务对BERT进行预训练。

任务 #1:Masked LM

为了训练深度双向表征,我们采用了一种直接的方法,随机评级一定百分比的输入 token,然后预测那些屏蔽的 token。我们将这个过程称为“masked LM”(MLM)。在这种情况下,和标准 LM 中的一样,对应屏蔽 token 的最终隐藏向量会通过词汇输入到 softmax 函数中。在我们的所有实验中,我们随机屏蔽了每个序列中15%的 WordPiece token。与去噪自编码器 ( denoising auto-encoders )相反,我们只预测遮蔽的单词,而不是重建整个输入。

虽然这确实允许我们获得一个双向预训练模型,但是这种方法有两个缺点。第一,我们正在造成预训练和微调之间的不匹配,因为在微调过程中从未看到屏蔽的token。为了减轻这种情况,我们并不总是用实际的“mask”token来代替“mask”这个词。相反,训练数据生成器随机选择15 %的token。这样做的目的是将表征偏向于实际观察到的单词。

Transformer 编码器不知道它将被要求预测哪些单词,或者哪些单词已经被随机单词取代,因此它被迫保留每个输入token的分布式语境表征。此外,因为随机替换仅发生在所有token的1.5 % (即15 %的10 % ),这似乎不会损害模型的语言理解能力。

使用MLM的第二个缺点是,在每批中仅预测了15 %的token,这表明模型收敛可能需要更多的预训练步骤。但是MLM模型的改进远远超过了增加的训练成本。

任务 #2:预测下一句

很多重要的下游任务都是基于对两个文本句子之间关系的理解,比如如问答(QA)和自然语言推断(NLI)。这种关系并不是语言建模直接捕捉到的。为了训练一个理解句子关系的模型,我们预训练了一个二值化预测下一句的任务,它可以很简单地从任意一个单语语料库中生成。具体来说,当为每个预训练示例选择句子 A 和 B时:50% 的可能B是 A 的下一句,也有 50% 的可能B是来自语料库的随机句子。

……

一些关键图表数据

我们的任务特定模型是通过将BERT与一个额外的输出层结合在一起而形成的,因此需要从零开始学习最少数量的参数。在这些任务中,( a )和( b )是序列级任务,而( c )和( d )是token级任务。在图中,E表示输入嵌入,Ti表示token I的语境表征,[ CLS ]是分类输出的特殊符号,[ SEP ]是分离非连续token序列的特殊符号。

GLUE测试结果,由GLUE评估服务器评分。每个任务下面的数字表示训练样本的数量。“Average”栏与官方GLUE分数略有不同,因为我们排除了有问题的WNLI集。OpenAI GPT = ( L = 12,H = 768,A = 12 );BERTBASE = ( L = 12,H = 768,A = 12 );BERTLARGE= ( L = 24,H = 1024,A = 16 )。BERT和OpenAI GPT是单一模型、单一任务。

SQuAD结果。BERT集成是7x系统,使用不同的预训练检查点和微调种子。

CoNLL-2003 Named Entity Recognition结果。使用Dev集选择超参数,并且使用这些超参数在5次随机重启中平均报告的Dev和测试分数。

论文

传送门:

https://arxiv.org/abs/1810.04805

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



最新有关QbitAI的文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved