全文共2975字,预计学习时长6分钟
图源Unsplash
自然语言处理领域中最具突破性的发展是BERT的发布(曾被认为是自然语言处理领域的ImageNet)。与传统的自然语言处理模式相比,BERT层次最高,是具有革命性意义的自然语言处理模式。这给很多现有的计算机逻辑框架、训练方法、语言模型带来了启发,比如说谷歌的TransformerXL, OpenAI’sGPT-2, ERNIE2.0, XLNet, RoBERTa等等。
让我们一起来了解一下BERT,及其在转换自然语言处理方面的潜力。
什么是BERT?
BERT(Bidirectional EncoderRepresentations from Transformers)是由谷歌的研究者于开发的 一款开源代码的NLP预训练模型。它是GPT(广义语言模型)的延续,BERT在自然语言处理中优于其他几种模式并且在问答(SQuAD v1.1)、自然语言推理 (MNLI),和其他框架中提供了最优结果。
BERT建立于预训练上下文表征的基础上——包括半监督序列学习(由Andrew Dai和Quoc Le提出)、ELMo(由Matthew Peters和来自AI2和来自UW,、CSE的研究人员提出)、ULMFiT(由fast.ai 创始人Jeremy Howard和Sebastian Ruder提出)、OpenAI transformer(由OpenAI研究人员Radford、Narasimhan、Salimans和Sutskever提出)和Transformer (Vaswani等人提出)。
BERT之所以在其他框架中如此独一无二,是因为它首次使用深层双向无监督语言表征和在预训练中只使用纯文本语料库。因为BERT是开源的,所以任何人只要懂得机器学习知识,就能轻松地建立起一个NLP模型,且无需使用训练模型的大量源数据集。因此,节约了时间、精力、知识和资源。
最后,在未标记文本的大型语料库中对BERT进行预训练,该语料库包括维基百科(大约25亿字)以及一个图书语料库(大约8亿字)。
BERT怎样运作的?
传统的与上下文无关模型(如word2vec或GloVe)为词汇表中的每个单词生成一个单独的单词嵌入表征,这意味着单词“right”在“I m sure I m right”和“Take a right turn”中具有相同的上下文无关表征。
但是,BERT是基于上下文的,所以它是双向的。虽然双向的理念已经存在很长时间了,但是BERT是首次在深层神经网络成功实行预训练双向性的案例。
BERT是怎么实现这一点的?
图源: BERT [Devlin et al., ]
BERT使用两种技术。一种是MLM(Mask Language Model)模型—通过屏蔽输入中的一些单词,然后对每个单词进行双向条件设置,以预测屏蔽的单词。在将单词序列输入转换器BERT之前,每个序列中15%的单词被替换为一个[MASK]指令。该模型试图根据序列中其他非屏蔽词提供的上下文来预测屏蔽词的初始值。
第二种技术是NSP(Next Sentence Prediction),BERT学习将句子间的关系进行模型。在训练过程中,该模型接收成对的句子作为输入,并学习预测其中的第二个句子是否是原文档中的第二个句子。考虑两个句子A和B, B是语料库中A后面的下一个句子,还是一个随机的句子?例如:
当训练BERT模型时,两种技术一起训练,因此将两种策略的组合损失函数最小化。
BERT架构
BERT是深度双向的,OpenAI GPT是单向的,而ELMo是浅层双向的。图片来源:谷歌AI博客
BERT架构建立在Transformer之上。有两种变体:
BERT Base: 12层(transformer blocks),12个注意事项,1.1亿个参数BERT Large:24层(transformer blocks),16个注意事项,3.4亿个参数
结果
在SQuAD v1.1表格中,BERT的F1分数达到93.2%(测量的准确性),超过了以前最先进的分数91.6%和人类层面的91.2%的得分:BERT在绝对非常具有挑战性的GULE基准下也提高了到了最先进的7.6%,这是一组9个多样化的自然语言理解(NLU)任务的集合。
BERT能在现实中应用吗?
BERT无疑是机器学习用于自然语言处理的一个里程碑。但是我们需要反思BERT如何在各种自然语言处理场景中使用。
文本分类是自然语言处理的主要应用之一。例如,这个概念已经在票务工具中有所使用,根据简短的描述或电子邮件对票务进行分类,并将票务分类/发送到正确的团队进行解决。同样,它也可以用来区分电子邮件是否是垃圾邮件。
在日常生活中也可以找到BERT的一些应用。
邮件的建议回复、智能撰写和谷歌搜索的自动完成
聊天机器人能回答用户查询和处理各种任务,这正影响着着信息产业。然而,聊天机器人的最大限制之一是意图识别和从句子中捕获词语。
问答模型(QnA)是自然语言处理的基本系统之一。在QnA中,基于机器学习的系统从知识库或文本段落中生成作为输入的问题的答案。BERT 能够在聊天机器人中使用吗? 毫无疑问,可以。BERT现在被用在许多人工智能对话应用中。所以,聊天机器人应该变得更聪明。
但是,BERT只能用于回答非常短的段落中的问题,而且有很多关键问题需要解决。作为一种通用的任务,NLP过于复杂,具有更多的含义和微妙之处。BERT只解决了其中的一部分,但肯定很快就会改变字词识别模型。
BERT如今只能解决有限的一类问题。然而,还有许多其他的任务,如情绪检测、分类、机器翻译、命名实体识别、摘要和问题回答,都需要在此基础上进行。现在关于BERT有这样的批评意见:这样的任务是基于对表象的操纵,没有任何理解,添加简单的对抗性内容,修改原始内容,会使其混淆。
BERT只有在操作中广泛使用并在实际场景中得以改进,它的真正好处才能在自然语言处理中实现,从而应用在支持企业和用户的广泛应用程序中。
然而,随着一波基于转换的方法(例如,GPT-2、RoBERTa、XLNet)的出现,情况正在迅速变化,这些方法通过展示更好的性能或更简单的训练或其他一些特定的好处来不断提高标准。
来看看BERT发布之后的其他模型的发展情况
RoBERTa
RoBERTa由Facebook开发,建立在BERT的语言屏蔽策略上,并修改了BERT中的一些关键超参数。为了改进训练过程,RoBERTa从BERT的预训练中删除了NSP任务,并引入了动态掩蔽,使得掩蔽的令牌在训练期间发生变化。它也接受了比BERT多一个数量级的训练,所需时间更长。
DistilBERT
DistilBERT由HuggingFace开发,学习了BERT的一个提取(近似)版本,在GLUE标准下保持95%的性能,但只使用了一半的参数(只有6600万个参数,而不是1.1亿个参数)。这意味着,一旦一个大型的神经网络被训练,它的全部输出分布可以用一个更小的网络来近似(比如后验近似)。
XLM/mBERT
XLM由Facebook开发,使用了一种已知的预处理技术(BPE)和一种与BERT一样的双语言训练机制,用以学习不同语言单词之间的关系。在多语言分类任务中,该模型的表现优于其他模型,并且当使用预先训练的模型初始化翻译模型时,该模型显著地改进了机器翻译。
ALBERT
ALBERT(一种用于自我监督语言表征学习的精简型BERT)由谷歌研究中心和丰田技术研究所联合开发,将会接替BERT。ALBERT比BERT更小、更轻、更聪明。两个关键的架构变化使ALBERT性能更好,并极大地减小了模型的大小。第一个是参数的数量。它通过跨所有层共享所有参数来提高参数效率。这意味着前馈网络参数和注意参数都是共享的。
研究人员还将隐藏层的大小与词汇嵌入的大小分开。这是通过将一个独热向量投射到一个低维嵌入空间,然后投射到隐藏空间来实现的,这使得在不显著增加词汇表嵌入的参数大小的情况下,更容易增加隐藏层的大小。
谈及预训练,ALBERT有自己的训练方法,叫做SOP(Sentence-Order Prediction),而不是NSP。NSP的问题在于,它将主题预测与相干预测混为一谈。
ALBERT代表了几个基准上自然语言处理和参数效率的最新技术。这是一个惊人的突破,ALBERT建立在BERT所做的伟大工作上,并在多个方面发展了自然语言处理。
BERT和类似的模型无疑是自然语言处理领域游戏规则的变革者。机器现在可以更好地理解语音,并实时做出智能响应。许多基于BERT的模型正在开发,包括VideoBERT、ViLBERT(视觉和语言BERT)、PatentBERT、DocBERT等。
你对NLP和BERT的未来有什么看法?
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范