Transformer

Transformer

参考
总体架构
  • image-20210607155256584
Encoder
输入部分
  • Embedding

    • 对于文本进行拆分,每一个字定义一个x维度的字向量
  • 位置编码

    • P E ( p o s , 2 i ) = sin ⁡ p o s 100 0 2 i d m o d e l PE_{(pos,2i)} = \sin\frac{pos}{1000^\frac{2i}{d_{model}}} PE(pos,2i)=sin1000dmodel2ipos

    • P E ( p o s , 2 i + 1 ) = cos ⁡ p o s 100 0 2 i d m o d e l PE_{(pos,2i+1)} = \cos\frac{pos}{1000^\frac{2i}{d_{model}}} PE(pos,2i+1)=cos1000dmodel2ipos

    • 在偶数的位置用sin,奇数的位置用cos

  • 然后将Embedding和位置编码相加即可得到输入

注意力机制(attention)
  • A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=softmax(dk QKT)V

  • QKV的获取:说白了就是由X的输入向量乘以W矩阵得到QKV,W参数由训练得到,然后除以根号dk是为了保证方差为1,有利于梯度下降

  • 多头注意力机制-multi-head attention(弹幕说:多个脑袋一起想)

    • multi-head attention则是通过h个不同的线性变换对Q,K,V进行投影,最后将不同的attention结果拼接起来:

    •   d

    • M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . . , h e a d h ) W o MultiHead(Q,K,V) = Concat(head_1,....,head_h)W^o MultiHead(Q,K,V)=Concat(head1,....,headh)Wo

    • h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) head_i = Attention(QW_{i}^Q,KW_{i}^K,VW_{i}^V) headi=Attention(QWiQ,KWiK,VWiV)

    • self-attention则是取Q,K,V相同。

  • 残差神经网络

    • 避免梯度消失
前馈神经网络
  • 这层主要是提供非线性变换。
Decoder
  • Decoder和Encoder的结构差不多,但是多了一个attention的sub-layer,这里先明确decoder的输入输出和解码过程(摘自知乎):

    • 输出:对应i位置的输出词的概率分布
    • 输入:encoder的输出 & 对应i-1位置decoder的输出。所以中间的attention不是self-attention,它的K,V来自encoder,Q来自上一位置decoder的输出
    • 解码:这里要注意一下,训练和预测是不一样的。在训练时,解码是一次全部decode出来,用上一步的ground truth来预测(mask矩阵也会改动,让解码时看不到未来的token);而预测时,因为没有ground truth了,需要一个个预测。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰子奶糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值