图解模型结构输入输出

本文首先介绍BERT模型要做什么,即:模型的输入、输出分别是什么,以及模型的预训练任务是什么;然后,分析模型的内部结构,图解如何将模型的输入一步步地转化为模型输出;最后,我们在多个中/英文、不同规模的数据集上比较了BERT模型与现有方法的文本分类效果。

1. 模型的输入/输出

BERT模型的全称是:BidirectionalEncoder Representations from Transformer。从名字中可以看出,BERT模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务。煮个栗子,BERT模型训练文本语义表示的过程就好比我们在高中阶段学习语数英、物化生等各门基础学科,夯实基础知识;而模型在特定NLP任务中的参数微调就相当于我们在大学期间基于已有基础知识、针对所选专业作进一步强化,从而获得能够应用于实际场景的专业技能。

在基于深度神经网络的NLP方法中,文本中的字/词通常都用一维向量来表示(一般称之为“词向量”);在此基础上,神经网络会将文本中各个字或词的一维词向量作为输入,经过一系列复杂的转换后,输出一个一维词向量作为文本的语义表示。特别地,我们通常希望语义相近的字/词在特征向量空间上的距离也比较接近,如此一来,由字/词向量转换而来的文本向量也能够包含更为准确的语义信息。因此,BERT模型的主要输入是文本中各个字/词的原始词向量,该向量既可以随机初始化,也可以利用Word2Vector等算法进行预训练以作为初始值;输出是文本中各个字/词融合了全文语义信息后的向量表示,如下图所示(为方便描述且与BERT模型的当前中文版本保持一致,本文统一以字向量作为输入):

从上图中可以看出,BERT模型通过查询字向量表将文本中的每个字转换为一维向量,作为模型输入;模型输出则是输入各字对应的融合全文语义信息后的向量表示。此外,模型输入除了字向量,还包含另外两个部分:

1. 文本向量:该向量的取值在模型训练过程中自动学习,用于刻画文本的全局语义信息,并与单字/词的语义信息相融合

2. 位置向量:由于出现在文本不同位置的字/词所携带的语义信息存在差异(比如:“我爱你”和“你爱我”),因此,BERT模型对不同位置的字/词分别附加一个不同的向量以作区分

最后,BERT模型将字向量、文本向量和位置向量的加和作为模型输入。特别地,在目前的BERT模型中,文章作者还将英文词汇作进一步切割,划分为更细粒度的语义单位(WordPiece),例如:将playing分割为play和##ing;此外,对于中文,目前作者尚未对输入文本进行分词,而是直接将单字作为构成文本的基本单位。

对于不同的NLP任务,模型输入会有微调,对模型输出的利用也有差异,例如:

根据具体任务的不同,在实际应用中我们可以脑洞大开,通过调整模型的输入、输出将模型适配到真实业务场景中。

2. 模型的预训练任务

BERT实际上是一个语言模型。语言模型通常采用大规模、与特定NLP任务无关的文本语料进行训练,其目标是学习语言本身应该是什么样的,这就好比我们学习语文、英语等语言课程时,都需要学习如何选择并组合我们已经掌握的词汇来生成一篇通顺的文本。回到BERT模型上,其预训练过程就是逐渐调整模型参数,使得模型输出的文本语义表示能够刻画语言的本质,便于后续针对具体NLP任务作微调。为了达到这个目的,BERT文章作者提出了两个预训练任务:Masked LM和Next Sentence Prediction。

2.1 Masked LM

Masked LM的任务描述为:给定一句话,随机抹去这句话中的一个或几个词,要求根据剩余词汇预测被抹去的几个词分别是什么,如下图所示。

这不就是我们高中英语常做的完形填空么!所以说,BERT模型的预训练过程其实就是在模仿我们学语言的过程。具体来说,文章作者在一句话中随机选择15%的词汇用于预测。对于在原句中被抹去的词汇,80%情况下采用一个特殊符号[MASK]替换,10%情况下采用一个任意词替换,剩余10%情况下保持原词汇不变。这么做的主要原因是:在后续微调任务中语句中并不会出现[MASK]标记,而且这么做的另一个好处是:预测一个词汇时,模型并不知道输入对应位置的词汇是否为正确的词汇(10%概率),这就迫使模型更多地依赖于上下文信息去预测词汇,并且赋予了模型一定的纠错能力。

2.2 NextSentence Prediction

当年大学考英语四六级的时候,大家应该都做过段落重排序,即:将一篇文章的各段打乱,让我们通过重新排序把原文还原出来,这其实需要我们对全文大意有充分、准确的理解。Next Sentence Prediction任务实际上就是段落重排序的简化版:只考虑两句话,判断是否是一篇文章中的前后句。在实际预训练过程中,文章作者从文本语料库中随机选择50%正确语句对和50%错误语句对进行训练,与Masked LM任务相结合,让模型能够更准确地刻画语句乃至篇章层面的语义信息。

BERT模型通过对Masked LM任务和Next Sentence Prediction任务进行联合训练,使模型输出的每个字/词的向量表示都能尽可能全面、准确地刻画输入文本(单句或语句对)的整体信息,为后续的微调任务提供更好的模型参数初始值。

3. 模型结构

了解了BERT模型的输入/输出和预训练过程之后,我们来看一下BERT模型的内部结构。前面提到过,BERT模型的全称是:BidirectionalEncoder Representations from Transformer,也就是说,Transformer是组成BERT的核心模块,而Attention机制又是Transformer中最关键的部分,因此,下面我们从Attention机制开始,介绍如何利用Attention机制构建Transformer模块,在此基础上,用多层Transformer组装BERT模型。

3.1 Attention机制

**Attention: **Attention机制的中文名叫“注意力机制”,顾名思义,它的主要作用是让神经网络把“注意力”放在一部分输入上,即:区分输入的不同部分对输出的影响。这里,我们从增强字/词的语义表示这一角度来理解一下Attention机制。

我们知道,一个字/词在一篇文本中表达的意思通常与它的上下文有关。比如:光看“鹄”字,我们可能会觉得很陌生(甚至连读音是什么都不记得吧),而看到它的上下文“鸿鹄之志”后,就对它立马熟悉了起来。因此,字/词的上下文信息有助于增强其语义表示。同时,上下文中的不同字/词对增强语义表示所起的作用往往不同。比如在上面这个例子中,“鸿”字对理解“鹄”字的作用最大,而“之”字的作用则相对较小。为了有区分地利用上下文字信息增强目标字的语义表示,就可以用到Attention机制。

Attention机制主要涉及到三个概念:Query、Key和Value。在上面增强字的语义表示这个应用场景中,目标字及其上下文的字都有各自的原始Value,Attention机制将目标字作为Query、其上下文的各个字作为Key,并将Query与各个Key的相似性作为权重,把上下文各个字的Value融入目标字的原始Value中。如下图所示,Attention机制将目标字和上下文各个字的语义向量表示作为输入,首先通过线性变换获得目标字的Query向量表示、上下文各个字的Key向量表示以及目标字与上下文各个字的原始Value表示,然后计算Query向量与各个Key向量的相似度作为权重,加权融合目标字的Value向量和各个上下文字的Value向量,作为Attention的输出,即:目标字的增强语义向量表示。

Self-Attention:对于输入文本,我们需要对其中的每个字分别增强语义向量表示,因此,我们分别将每个字作为Query,加权融合文本中所有字的语义信息,得到各个字的增强语义向量,如下图所示。在这种情况下,Query、Key和Value的向量表示均来自于同一输入文本,因此,该Attention机制也叫Self-Attention。

Multi-head Self-Attention:为了增强Attention的多样性,文章作者进一步利用不同的Self-Attention模块获得文本中每个字在不同语义空间下的增强语义向量,并将每个字的多个增强语义向量进行线性组合,从而获得一个最终的与原始字向量长度相同的增强语义向量,如下图所示。

这里,我们再给出一个例子来帮助理解Multi-head Self-Attention(注:这个例子仅用于帮助理解,并非严格正确)。看下面这句话:“南京市长江大桥”,在不同语义场景下对这句话可以有不同的理解:“南京市/长江大桥”,或“南京市长/江大桥”。对于这句话中的“长”字,在前一种语义场景下需要和“江”字组合才能形成一个正确的语义单元;而在后一种语义场景下,它则需要和“市”字组合才能形成一个正确的语义单元。我们前面提到,Self-Attention旨在用文本中的其它字来增强目标字的语义表示。在不同的语义场景下,Attention所重点关注的字应有所不同。因此,Multi-head Self-Attention可以理解为考虑多种语义场景下目标字与文本中其它字的语义向量的不同融合方式。可以看到,Multi-head Self-Attention的输入和输出在形式上完全相同,输入为文本中各个字的原始向量表示,输出为各个字融合了全文语义信息后的增强向量表示。因此,Multi-head Self-Attention可以看作是对文本中每个字分别增强其语义向量表示的黑盒。

3.2 Transformer Encoder

在Multi-headSelf-Attention的基础上再添加一些“佐料”,就构成了大名鼎鼎的Transformer Encoder。实际上,Transformer模型还包含一个Decoder模块用于生成文本,但由于BERT模型中并未使用到Decoder模块,因此这里对其不作详述。下图展示了Transformer Encoder的内部结构,可以看到,Transformer Encoder在Multi-head Self-Attention之上又添加了三种关键操作:

可以看到,Transformer Encoder的输入和输出在形式上还是完全相同,因此,Transformer Encoder同样可以表示为将输入文本中各个字的语义向量转换为相同长度的增强语义向量的一个黑盒。

3.3 BERT model

组装好TransformerEncoder之后,再把多个Transformer Encoder一层一层地堆叠起来,BERT模型就大功告成了!

在论文中,作者分别用12层和24层Transformer Encoder组装了两套BERT模型,两套模型的参数总数分别为110M和340M。

THE END
0.100幅工笔牡丹,太美了(附教程)!!!一、整株牡丹结构图解 牡丹是我国特有的木本名贵花卉,花大色艳、雍容华贵、富丽端庄、芳香浓郁,而且品种繁多,素有“国色天香”、“花中之王”的美称,长期以来被人们当做富贵吉祥、繁荣兴旺的象征。牡丹1990年被定为中国的国花,是我国最具有民族特色的观赏性花卉。牡丹为多年生落叶小灌木,生长缓慢,株型小,株高多在0.jvzq<84yyy4489iqe0ipo8hqpvkov8751383285:1:65:A582a722A6945850|mvon
1.图解:上半年财政预算花在哪了?财政增收结构呈积极变化图解:上半年财政预算花在哪了? 财政增收结构呈积极变化 图解:上半年财政预算花在哪了? 财政增收结构呈积极变化--财经--人民网jvzq<84o0ek/ew4el1me1;5392=05:4v42782@83a4:76:=440yivvq
2.收藏了好久的拼花结构图,还可以保存一万年~虽然原作者没有分享图解或结构,但熟悉祖母方格的我们,一眼也能看出来是怎么钩的,玛丽找了一个类似的结构图发给新手朋友看看。 嗯,今天的分享就从这件衣服的结构开始吧。 同样结构的祖母方格斗篷,还可以自己加两个花片,缝合出个帽子来,会更加实用呢。(帽子没有图解,大家可以根据实物图自行设计) jvzq<84yyy4489iqe0ipo8hqpvkov8721373:85319832:=8;a?5:<7884>/uqyon
3.语文七年级上册三、结构图解 思考:1、文中写了一件什么事?(时间时间、地点、人物、事件) A、散步的人有: 我 母亲 妻子 儿子 B、散步的地点是: 田野 C、散步的季节是: 初春 D、散步的过程中发生了: 分歧 (用原文中的一个词来回答) 思考:文中哪些地方写了景? 这些景物有什么特点? jvzq<84yyy4489iqe0ipo8hqpvkov8761272:86516<72:;29a723:9946>10|mvon
4.从认识一朵花的结构开始~~生物实践为了让同学们巧妙地记住抽象易混的生物知识点,近期七年级生物组组织同学们利用清明节假期,动手制作花的标本,并通过摄影或绘画的形式来记录观察、认识的过程。 “结合七年级下册《地面上的植物》一课,让同学们在这春暖花开之计,感受春的到来,按照一定的步骤,解剖花,观察花的结构,体会结构与功能相适应的观点,感受植物jvzquC41yy}/uxmw0eun1j499379;>6:a3823;9228
5.一分钟带你图解汽车结构#一人一件车载好物##一分钟带你图解汽车结构 #一人一件车载好物# #我的日常保养# #车载好物# #理想汽车# #汽车# #汽车分享# #汽车试驾体验# @薯条小助手 理想L7jvzquC41o0pqsnc0eun1yfigu5eqwlvck5jpmjzAkj>4B;739614/ktqoettlBdklo`vjg
6.樱花节(科学篇)制作标本之前,要回顾一下花的结构(很重要,很重要,很重要): 花是绿色高等植物的生殖器官(高等植物的六大器官:根,茎,叶,花,果,种。前三是营养器官,后三是生殖器官。) 典型的花,在一个有限生长的短轴上,着生花萼、花瓣和产生生殖细胞的雄蕊与雌蕊。花由花冠、花萼、花托、花蕊组成,有各种各样颜色,有的长得jvzquC41yy}/fxzdcp4dqv4pqvk07=9258>788
7.讲座回顾王灏:造村地域乌托邦院内新闻记忆结构图解 叁·村-寺结构 天童寺的记忆结构草图 古天童寺是先通过一个繁华的世间烟火——天童街,然后再经过一个洗净心灵的松林甬道——十里松林,最后再到达一个相对比较宁静的佛教圣地——天童寺。这个过程的体验犹如欣赏一幅古画,这是我小时候感受的一个很有意思的记忆结构。它把世俗的生活,和宗教的生活完美jvzq<84yyy4dcjqcfk4dqv4o1pkxu8sgyue27=50jvsm
8.SpringCloud微服务:基于Nacos组件,整合Dubbo框架本文详细介绍了Dubbo框架与微服务架构的整合实践,包括基础组件介绍、服务结构图解、编码案例实现及技术选型分析。通过具体案例展示了如何使用SpringCloud和Dubbo框架,以及Nacos注册中心进行服务发现、配置管理和流量管理。 一、基础组件简介 1、Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的jvzquC41dnuh0lxfp0tfv8hkecjba|rkng5bt}neng5eg}fknu522@=473<5
9.凤仙花|植物、药材及栽培过程图解▲凤仙花侧⾯观图解 清初赵学敏《凤仙谱》记载我国凤仙有两百多个品种。颜⾊多种多样,有粉红、朱红、淡⻩、紫、⽩清⾊等。 ▲各种颜⾊的凤仙花 花⼤,颜⾊较多,药⽤者为单瓣,园艺观赏者为重瓣。 ▲凤仙花园艺品种 凤仙花园艺品种,花较⼤,重瓣,叶厚纸质,叶⾊较深。 jvzq<84|y{4ol~ho0gjv0ls1428119>521i5:@7c88>448ucig4ivv