位置:中国买卖新闻网 > 电子通讯 > 正文 >

是什么让BERT与众不同?如何使用BERT?

2018年11月09日 12:21来源:未知手机版

军用飞羽电热水龙头不加热,非安徽绩溪地图,主流凌美,飞地坪漆工艺,兰州混凝土地面硬化套定额上海飞尔,飞西安,机机种

缺少训练数据是自然语言处理(Natural Language Processing, NLP)面临的最大挑战之一。由于 NLP 是一个具备不同任务的多样化领域,因此大多数任务特定数据集仅包含几千或几十万个人类标签的训练样例。然而,基于深度学习的 NLP 模型可以从更大量的数据中获益,在数百万或数十亿的带标签的训练样例中学习得到改善。为了帮助缩小在数据方面的差距,研究人员开发了各种技术,使用网络上无标签的文本训练一个通用的语言表示模型(称为预训练)。用预训练模型在小数据的 NLP 任务(如问答和情感分析)上进行微调,与从头开始训练相比,可以显著提高准确度。

本周我们开源了一种 NLP 预训练新技术 Bidirectional Encoder Representations from Transformers(BERT)(https://github.com/google-research/bert)。此次发布的版本中,世界上任何人都可以在一个云 TPU 上花费大约 30 分钟,或使用单个 GPU 在几个小时内训练他们自己最先进的问答系统(或各种其他模型)。该版本包括在 TensorFlow 之上构建的源代码和许多预先训练的语言表示模型。在我们的相关论文中,展示了包括斯坦福问答数据集(SQUAD v1.1)在内 11 个 NLP 任务的最新结果。

是什么让 BERT 与众不同?

BERT 建立在最新的预训练与上下文相关的语言表示的工作之上 包括 Semi-supervised Sequence Learning、Generative Pre-Training、ELMo 和 ULMFit。然而,与以前的模型不同,BERT 是第一个深度、双向、无监督的语言表示模型,仅使用无标签的文本语料库(在本例中为维基百科)进行预训练。

为什么这很重要?预训练表示可以是与上下文无关的或与上下文相关的。与上下文相关的表示又可以分成单向(只跟上文或下文相关)或双向的 (同时考虑上文和下文)。与上下文无关模型诸如 word2vec 或 GloVe 之类的对每个单词生成一个词嵌入表示,所以在这些模型下 bank  一词在 bank account 和 bank of the river 中会具有相同的表示。而与上下文相关模型则基于句子中其他单词来生成每个词的表示。例如,在句子 I accessed the bank account 中,一个单向的上下文相关模型表示 bank 会基于上文 I accessed the 而非下文 account 。 然而,BERT 表示 bank 会同时使用它的上文和下文 I accessed the ... account 从深层神经网络的最底层开始,成为双向的表示。

与先前工作中领先的上下文预训练方法相比,BERT 神经网络架构的示意图如下所示。箭头表示从一个层到下一个层的信息流。图示中顶部的绿色框对应每个输入词最终的上下文表示:

双向的力量

如果双向如此强大,为什么以前没有这样实现?在训练单向模型时,预测词时必须只能基于句子中上文的单词。然而,想要直接让模型同时根据上文和下文来预测词是不可能的,因为这将允许被预测的单词会随着多层模型间接地 看见自己 。

为了解决这个问题,我们使用直接的蒙版技术来掩盖输入中的一些单词,然后模型就能同时根据上文和下文来预测被掩盖的单词。例如:

虽然这个想法由来已久,但是 BERT 首次把它成功应用到预训练深度神经网络中。

BERT 还学习如何建模句子之间的关系,通过预训练对任何文本语料库都可生成的一个很简单的任务来实现:给定两个句子 A 和 B,判断 B 是在语料库中 A 之后实际出现的下一个句子,或者只是一个随意的句子?例如:

使用云 TPU 进行训练

本文地址:http://www.zgmaimai.cn/dianzitongxun/141742.html 转载请注明出处!

今日热点资讯