Transformer笔记

Attention Is All You Need

  • Transformer网络结构

image-20210508101114255

​ 整个网络结构由encoder和decoder两个部分组成。网络的输入是n个不同的向量$ (x_1,…,x_n)$,将其输入到encoder模块,z = ( z 1 , . . . , z n ) (z_1,...,z_n) (z1,...,zn), 然后将 z 输入到decoder模块,每一次输出 ( y 1 , . . . , y m ) (y_1,...,y_m) (y1,...,ym) 中的一个向量,最终得到整个网络的输出。

​ Encoder由6个完全相同的网络层组成,每个网络层包含一个multi-head self-attention mechanism和一个多层前馈神经网络层,这两个子网络层前面都有一个残差连接和layer normalization。

​ Decoder也由6个完全相同的网络层组成,相对于encoder,其加入了一个encoder输出作为输入的multi-head self-attention mechanism。

  • 注意力模块详解

Scaled Dot-Product Attention:
image-20210508103322277

​ 输入 Q ∈ ( n , d k ) , K ∈ ( n , d k ) , V ∈ ( n , d v ) Q \in (n,d_k), K \in (n,d_k), V \in (n,d_v) Q(n,dk),K(n,dk),V(n,dv) , 按照下面公式计算:

image-20210508103621417

​ 首先用Q中的每个向量和K中的每个向量对应算内积,然后可以得到 n × n n\times n n×n的数,组成一个大矩阵。然后用该矩阵和V相乘,得到n个输出的向量。具体计算如下图所示:

image-20210508105322709

multi-head self-attention:

​ 将输入复制8份,进行线性变换,分别输入到Scaled Dot-Product Attention中进行计算,分别得到8组输出,再进行连接,合并。

​ self-attention的含义是取Q,K,V相同。

image-20210508103350695

  • Positional Encoding

    ​ 由于transformer没有循环结构和卷积结构,为了可以充分利用序列的有序性,作者引入了positional encodings结构。如下图所示, p i p_i pi 表示一个one-hot向量,用来对每个位置进行标记(论文中采用的向量是 e i e_i ei ,通过下面公式计算),在每个位置将输入向量和位置向量相加(等价于concatenate),再输入到SA模块中。

    image-20210508111343177

image-20210513115738895
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值