transformer

transformer架构介绍

首先把transformer当成一个黑盒子,输入是一个序列,输出是另外一个序列,如下图:
在这里插入图片描述
transformer由两部分组成,一个是encoders,另外一个是decoders,两者是相连的。
在这里插入图片描述

encoders包含了多个encoder,同样dicoders也包含了多个decoder。
在这里插入图片描述

encoders之间不共享权重,每个encoder又包含了两层:
第一层是self-attention层,这一层可以让词语观察整个句子的其他词语
第二层是feed-forward neural network
在这里插入图片描述
而decoder不仅在encoder基础上,在self-attention和feed forward之间又加了一层encoder-decoder Attention。就是在seq2seq文章中讲的。该成可以帮助decoder来观测输入的相关单词。

在这里插入图片描述

首先使用embedding将词语向量化。
在这里插入图片描述
每个词向量开始进入encoder,每个词语可以并行计算。

在这里插入图片描述

self-attention细节
第一步是对每一个单词计算Query向量,Key向量和Value向量。这三个向量是通过三个权重矩阵和embedding向量相乘得来的。
得出的新向量(Query,Key,Value)是比embedding向量要小的。
在这里插入图片描述

第二步是计算该单词和句子中其他单词的分数。这个分数的意义就是要放多少注意力在这个单词上。
通过query向量和key向量点乘获得。
比如 q 1 ∗ k 1 q_1 * k_1 q1k1 q 2 ∗ k 2 q_2 * k_2 q2k2
在这里插入图片描述

第三步是将分数除以8,8是key向量维度64的平方根
第四步是将所有分数进行softmax,最后softmax得分决定要分多少注意力在该位置上
在这里插入图片描述
第五步是将softmax分数和value向量相乘,作用是专注需要专注的词,而丢弃不需要专注的词
第六步是将所有的value向量相加,作为slef-attention的输出。
在这里插入图片描述

从单词角度来看整个self-attention过程
第一步,首先计算Query,Key,Value。下图中X是embedding,每一行代表一个单词
然后和权重矩阵(WQ、WK、WV)相乘

在这里插入图片描述

最后我们来计算QKV三个矩阵得到Z
在这里插入图片描述

multi-headed attention

multi-header有两个优点:
1.可以让模型关注不同位置
2.可以让模型关注不同空间(比如语法,情感,语义等)


Multi-Head其实不是必须的,去掉一些头效果依然有不错的效果(而且效果下降可能是因为参数量下降),这是因为在头足够的情况下,这些头已经能够有关注位置信息、关注语法信息、关注罕见词的能力了,再多一些头,无非是一种enhance或noise而已。
https://www.zhihu.com/question/341222779

分多组进行QKV运算
在这里插入图片描述
可以得到多组Z

在这里插入图片描述
将多组Z合并,和W0矩阵相乘的到最终的Z

在这里插入图片描述

总结起来就是这样:
在这里插入图片描述

Positional Encoding

transformer给每个embedding添加了position向量,可以用来指示单词的位置,和单词之间的距离。

在这里插入图片描述
如果我们假设embedding有4维度,则真实的信息如下图:
在这里插入图片描述

Residuals

在每个encoder中self-attention和feed forward之间使用Residuals层连接,而且每个Residuals都跟了Layer-normalization。
在这里插入图片描述
更详细的如下图:
在这里插入图片描述

在decoder也是一样的
在这里插入图片描述

Decoder

在这里插入图片描述

在这里插入图片描述

Final Linear and Softmax Layer

在这里插入图片描述
参考:
http://jalammar.github.io/illustrated-transformer/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值