当前位置: 首页 > news >正文

学院门户网站建设建湖人才网官网登录

学院门户网站建设,建湖人才网官网登录,企业信息系统的主要类型,昆明网站推广优化公司本文字数#xff1a;#xff1a;4024字 预计阅读时间#xff1a;12分钟 BERT是由Google提出的预训练语言模型#xff0c;它基于transformer架构#xff0c;被广泛应用于自然语言处理领域#xff0c;是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注… 本文字数4024字 预计阅读时间12分钟 BERT是由Google提出的预训练语言模型它基于transformer架构被广泛应用于自然语言处理领域是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注意力机制与Transformers。 注意力机制 注意力机制Attention Mechanism是一种在机器学习和自然语言处理中广泛使用的技术它可以帮助模型在处理输入数据时集中关注其中最重要的部分从而提高模型的准确性。 原理 注意力机制最初是从认知神经科学中引入到机器学习领域的19世纪90年代的威廉·詹姆斯发现人类注意力焦点受到非自主性提示和自主性提示有选择地引导[7]。简单来说非自主性提示是一种无意注意例如人会先看到最显眼的物品而自主性提示是一种有意注意例如人会根据自己的需要先关注到自己需要到物品。非自主性提示与自主性提示会导致人类神经网络选择性地加强或减弱一些特定的神经元的活动。 在机器学习中注意力机制模拟了人类的这种认知行为采用的方式主要是通过查询向量query模拟自主提示键值向量key模拟非自主提示二者交互形成注意力焦点从而有选择的聚合了值向量value模拟感官输入最终形成输出[8]。具体的计算过程可以用下图表示 图1 注意力得分计算示意图 假设有一个查询向量q∈Rq和m个“键—值”对k1,v1,...,km,vm,其中ki∈Rkvi∈Rv。在计算注意力得分时首先通过注意力评分函数a将查询向量q和键向量ki映射成标量不同的注意力评分函数可以产生不同的注意力汇聚效果常见的有缩放点积注意力评分函数公式1 公式1 再经过softmax运算得到注意力权重α公式2 公式2 而最终的输出也就是注意力权重与值向量的加权和 公式3 在实际应用中通常将同一组词源输入到注意力池化中以便同一组词元同时充当query、key和value。具体来说每个query都会关注所有的keyvalue对并产生一个注意力输出。由于query、key和value来自同一组输入因此被称为自注意力self-attention。 Transformer transformers是继MLP,RNN,CNN第四大类模型架构最早被google research团队 Ashish Vaswani 等人提出是一种完全基于注意力机制的encoder-decoder架构最早应用于机器翻译这个任务。在transformer之前主要采用依赖神经网络的注意力模型但是RNN、CNN等传统神经网络在处理长序列数据时效率较低而自注意力机制同时具有并行计算和最大路径长度两个优势而完全基于注意力机制的transformer模型解决了传统神经网络的问题。 Transformer的核心思想是使用注意力机制来实现序列中的信息交互它将输入序列和输出序列中的每一个元素连接起来同时对它们进行加权计算以决定对于当前元素的关注程度。这种机制将整个输入序列通过Encoders编码成一个编码向量再通过Decoders将之解码为输出序列从而实现了序列到序列的转换可以用来完成机器翻译、文本生成等任务。在实际应用中encoders和decoders可以单独使用。简单的模型如下图所示图2Encoders是由6个结构相同encoder组成但是每个encoder参数不相同Decoders是由6个结构相同decoder组成但是每个decoder参数不相同 图2 注意力模型结构图 Transformer的整体网络架构中的encoder和decoder都采用多层堆叠的自注意力机制。encoder将输入序列转换成隐藏表示decoder将隐藏表示转换成输出序列。其整体架构图如下图3所示其中左边是encoder右边是decoder下面我将结合下图详细介绍encoder和decoder的内部实现。 图3 注意力模型网络架构 encoder 对于encoder输入数据首先通过一个嵌入层embedding layer将每个单词转化为一个向量表示由于注意力机制不是顺序读取码元的所以在输入中会加上位置编码信息positional encoding,位置编码加上输入向量就构成了注意力机制的输入。如上图所示输入向量会分为查询向量query,下文简写为q、键向量key下文简写为k、值向量value下文简写为v三个向量输入到多头注意力Muiti-Head Attention中其中由输入向量得到q、k、v的过程如下图所示。 图4 输入向量投影示意图 q、k、v是通过每一个输入向量x分别投影到WQ、 WK、WV矩阵得到的而其中WQ、 WK、WV最初是随机初始化得到然后不断学习更新。在多头注意力机制中就是通过多套WQ、 WK、WV不同的参数矩阵实现的具体实现方式是将q、k、v投影到低维度矩阵投影h次也就是h头注意力。使用多头注意力的好处就是可以通过多角度学习输入的信息从而提升学习的效果。 得到q、k、v向量后就可以根据上文介绍的注意力机制在Muiti-Head Attention中得到注意力的输出。这里的注意力公式如下所示公式5该公式可由上文的2-1公式推演得出。 公式5 其中q、k、v这三个参数由上文介绍的过程投影得出的矩阵dk表示向量长度。这里是k和q做内积每个词的q与所有的词k包括本身做内积得到每个向量的相似度可以理解为当前词与整句话里所有词的相似度。每个词都要做一遍上述计算然后softmax之后输出注意力权重得到的一套注意力权重和所有的字v做加权和相乘再相加 就是当前词最后的输出。在多头注意力中就是经过多次注意力函数然后将输出拼接在一起在经过高维度矩阵投影回来得到多头注意力的输出。 在多头注意力层外每个子层都采用了残差连接和层规范化机制也就是上图2-3中的AddNorm这两者是构成深度架构的关键可以有效地避免梯度消失或爆炸问题提升模型性能。残差连接是指在每个子层之后都加入了一个直接连接将输出与未经过注意力机制的输入进行相加使得模型可以直接学习到残差信息。层规范化则是对于每个子层的输出进行标准化处理避免了输入项的数值不同而导致的训练过程中的不稳定性。 最后每个子层后接一个前馈神经网络feed-forward neural network作为最后一步转换。前馈神经网络采用门控线性单元gated linear unit, GLU的形式这样做的目的是为了实现语义空间的转换有效的使用序列信息将已经抓取出来的序列信息映射到更想要的那个语义空间增加模型的拟合能力。经过多层堆叠的encoder会生成一个编码向量作为decoder的输入。 decoder 对于decoder可以看作是encoder的逆过程。从上图3中可以看出encoder和decoder的不同之处主要在于decoder有两个注意力机制第一个是mask-attention第二个是与encoder部分相同的多头注意力机制。decoder的第一个mask-attention是为了防止后面信息参与计算将后面的词mask掉被mask掉的词就不参与计算从而保留自回归属性。decoder第二个多头注意力q、k、v维度是一样的其中k、q来自上一层encoder的输出然后作用于value上这一层的作用可以理解为encoder的输出汇聚出想要的信息。与encoder相同在经过注意力机制后输出的作为前馈神经网络的输入实现语义空间的转换同样decoder中的子层也被残差连接和紧随的层规范化围绕。 BERT BERT全称Bidirectional Encoder Representations from Transformers是Google于2018年提出的一种基于Transformer模型的预训练模型。BERT基于Transformer模型通过多任务学习的方式在大规模无标注的语料库上进行预训练并对各种下游自然语言处理任务进行微调取得了极好的成绩。 BERT的核心原理是通过多层双向Transformer编码器将输入文本表示成高维语义空间中的向量使得语义相近的词或句子在向量空间内彼此接近。与传统基于语言学规则或统计方法的自然语言处理技术相比BERT可以从大规模的无标注文本中学习到更全局、更复杂的语义信息取得了更好的效果。 在BERT中与原始Transformer模型不同的是通过双向Transformer编码器BERT能够更好地捕捉上下文的相关性在单词或句子级别上对文本进行建模。此外BERT采用了掩码语言建模和下一句预测等多种预训练任务进一步提高了模型的泛化能力。 具体来说BERT通过多层堆叠的Transformer 编码器来对输入文本进行建模并采用掩码技术让编码器只能看见输入序列中一部分的信息从而使得编码器具有非常强的泛化能力。此外BERT还利用了两个新的预训练任务即掩码语言建模和下一句预测来增强模型对上下文的理解。 在掩码语言建模任务中采用了一种类似于“完形填空”的思路构建掩码模型。BERT随机掩盖句子中的一些单词具体方式是随机把一句话中15%的token字替换成以下内容 1这些token有80%的几率被替换成[MASK] 2有10%的几率被替换成任意一个其它的token 3有10%的几率原封不动。完成掩码后再用模型预测这些掩盖掉的单词。 在下一句预测任务中BERT输入一对句子模型判断这两个句子对是连续的还是随机采样两个句子放在一起的。这些任务都是基于无标注文本的通过预训练让BERT学习理解语言的能力从而可以在下游任务中取得更好的效果。 BERT模型的输入主要包括三个部分token embedding、segment embedding和position embedding。其中token embedding表示为每个输入词汇对应的向量表示而segment embedding和position embedding则分别表示为每个句子对应的标识符和每个词在序列中的位置信息。具体来说对于输入句子中的每个词汇BERT模型都会将其转化为一个向量表示这个向量表示是该词汇在BERT模型的预训练过程中学习得到的。同时BERT模型还会在输入的每个句子之前加上一个特殊的标记[CLS]在每个句子之后加上另一个标记[SEP]以便模型学习句子之间的关系。在输入数据的基础上BERT模型还需要进行构造数据的处理。具体来说BERT模型会把输入的文本序列按照一定的规则组合起来构造成一段首尾各有一个特殊标记的文本序列。在这个文本序列中对于两个句子之间的分界点BERT模型会用一个特殊的segment embedding进行区分。同时对于每个词在序列中的位置信息BERT模型也会使用一个特殊的position embedding进行标记。通过对输入数据的处理BERT模型可以将文本序列转换成一个高维向量表示这个高维向量通常被称为上下文向量。BERT模型的输出则主要包括上下文向量和[CLS]标记对应的向量。其中上下文向量可以用来进行各种下游任务的特征提取和计算而[CLS]标记对应的向量则通常被用作整个文本序列的汇总表示它可以用来进行文本分类、语义相似度计算等任务。在语意相似度计算任务中得到的语义向量会作为特征输入给一个线性分类器如逻辑回归或支持向量机等在此基础上进行二分类或多分类的任务从而实现语意相似度的计算。 在BERT模型中由于使用了横向和纵向的自注意力机制可以充分地考虑和利用不同位置和不同上下文的信息但也导致了模型对于不同维度和方向的信息处理能力不同此外自注意力机制无法处理一些长序列的依赖关系问题因此在计算时会将过长的文本或序列截断这也会导致模型对于长序列中不同方向和不同偏移量的编码能力存在差异这都会导致各项异性的问题从而进一步影响结果的准确性。
http://www.hkea.cn/news/14307180/

相关文章:

  • 网站域名跳转代码域名申请哪家好
  • 开发网站好还是app青海格尔木建设局网站
  • 免费建设小说网站衡水做网站的
  • 怎样才能增加网站企业微信软件
  • 大庆网站优化怎样做网站吸引客户
  • 做网站怎么备案福州关键词自然排名
  • 金堂做网站的公司怎样看网页的友情链接
  • 网站优化解决方案廊坊百度推广优化
  • php网站建设入门教程seo需要懂代码吗
  • 百度站长工具添加不了站点建设网站平台的章程
  • 网站建设基础教学设计番禺建设网站哪家好
  • 怎么自己做彩票网站吗营销网络分布情况
  • 有没有做图的网站wordpress联系我们
  • 网站导航营销的优点网站开发和广告制作
  • 陕西建设教育网站环保网站 怎么做
  • 做app和做网站区别北京公司请做网站工资
  • 河南城源建设工程有限公司网站手机回收网站开发
  • 网站建设哪个部门管理wordpress百度自动推送
  • 网站制作公司 知乎个人网站购买
  • 万网网站备案查询wordpress admin 密码
  • 企业如何做好网站的seo优化自动发帖软件
  • 服装箱包网站建设wordpress服务器要多大内存
  • 营销型官方网站大学校园门户网站建设
  • 凡科网站制作提供东莞网站建设价格
  • 网站备案新增域名私人做网站需要多少钱
  • 建云购网站吗win10优化大师官网
  • 一级a做爰片免费网站短视频教程php程序员做企业网站
  • 网站前后台模板手机网站 需求模板
  • 移动网站 图片优化深圳高端平台
  • 手机网站建设咨询亚洲永久免费云服务器