【一文搞定】Transfomer和BERT

论文导航

Transformer
Bert

前言

不知道有没有人像我一样,再最开始接触 TransfomerBert 的时候,感觉就是云里雾里,只知道着 Bert 不是基于 Transformer 的构建的吗,对他们之间的具体区别一直没有清晰到位的理解 (((φ(◎ロ◎;)φ)))。于是在论文阅读和资料查找答疑之后,用这篇博文记录自己的理解,也方便以后回顾。

Transfomer

transfomer 原意为变形金刚,由于网络中attention部分就像是用于组装的零件,能根据我们的设计和需要构成各种模型,最终成为能完成各种任务的“变形金刚”。由此可知,attention 就是其中最重要的部分。
Transformer 抛弃了以前的 CNN 结构和 RNN 结构,提出了全新的编解码框架,即由编码端 encoder 和解码端 decoder 两个部分组成。 其结构如下图:
在这里插入图片描述

  • encoder
流程概述

(1)input 经过 Embedding (直接一句话的所有 embedding
(2)每一个单词加上对应的 位置编码
(3)经过一个 MHA(multi-head position)同时做一个 shortcut 处理后经过一个 normalization
(4)经过一个两层的全连接网络同时做一个 shortcut 处理后经过一个 normalization

要点分析
  • Multi-Head Attention
    其中的 attention 是为 self-attention , multi-head 就是将多个 self-attention 叠在一起,所以只需要明白 self-attentionMulti-Head Attention 就迎刃而解了。
    self-attention 中每个单词 iembedding 复制成为三个相同的向量后分别乘以系数矩阵 WQ,WK,WV(矩阵均随机初始化,通过训练得到新值,每一个单词都是乘以相同的 WQ,WH,WV ) 得到 qi, ki, vi(其中 q 代表 queriesk 代表 keysv 代表 values

    对于每一个单词 i,其 qi 乘以其他单词 jkj 并将每一个结果结果然后除以键向量(即k)维数的开方值 将这一列结果值进行 softmax 得到对应的系数权重, 再将这些系数权重和其对应单词的 v 做加权求和,得到了单词对应的输出向量 z
    通过上述计算之后,每一个输出向量 z 都包含了其他词的信息,而且系数权重的大小能够反映词与词之间的相关程度的深浅。
    接下来说说 multi-headmulti-head 的中文意思就是多头,即对同一组输入的 embedding,我们可以进行多个 attention 操作。每一个 attention 都有独立的 WQ,WK,WV 系数矩阵 ,每一个 attention 对应一个输出,对吼将这些输出连接起来(直接拼接),并乘以矩阵 WO 做一次线性变换得到输出
  • 位置编码
    因为 transformer 是对全局进行 attention,即前面的单词也能看见后面的单词,因此 transformer 丢失了时序信息,为解决这个问题,加入了位置编码。将位置 embedding 和词 embedding 相加,作为最终输入 embedding

Bert

在结构模型上就是将 transformerencoder 作为一个基本单元,把 N 个这样的基本单元顺序连接起来。
Bert 是一个 ①预训练 ②微调 的方案。

  • 预训练
    包含了两个任务,第一个任务是随机遮盖掉15%的单词,用 mask 替代原单词,让模型去猜测这个单词是是什么;第二个任务是每一个训练样本是一个上下句,有50%的样本,上句和下句是真的(即下句是接上句的),有50%的样本,上句和下句是无关的,让模型判断两个句子之间的关系。这两个任务各自有一个 loss ,将这两个 loss 相加作为总的 loss
    优点:
    可以充分利用到上下文的信息,使得模型有更强的表达能力,而且能够很好的捕捉到句子之间的关系
  • 微调
    主要是针对下游任务进行微调。
    假设应用于分类任务,取出句子开头的 CLS 标记对应的向量 C,加一层网络 W, 并使用 softmax 进行分类,得到预测结果。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值