学习笔记七:transformer总结(1)

本文详细介绍了Transformer模型的核心组件——注意力机制,包括自我注意力和多头注意力,探讨了它们在机器翻译中的优势,以及解决长距离依赖问题的方法。此外,还阐述了Transformer的结构,如Encoder和Decoder Layer,以及位置编码和防止灾难性遗忘的策略。
摘要由CSDN通过智能技术生成

一、attention

1.1循环神经网络的不足:

  • 长距离衰减问题
  • 解码阶段,越靠后的内容,翻译效果越差
  • 解码阶段缺乏对编码阶段各个词的直接利用

1.2 attention在机器翻译的优点

  1. 使用全部token信息而非最后时刻的context信息。由此在解码时每时刻可以计算attention权重,让输出对输入进行聚焦的能力,找到此时刻解码时最该注意的词。
  2. attention的计算是序列各tokens的v向量和attention权重加权求和,每个词关注到所有词,一步到位,不存在长距离衰减
  3. 可以关注到不同位置的词语,而且使用多头和多层注意力、加入FFNN,表达能力更强。

1.3 self Attention和循环神经网络对比

LSTM:非词袋模型,含有顺序信息,无法解决长距离依赖,无法并行,没有注意力机制
Self Attention:词袋模型,不含位置信息,没有长距离依赖,可以并行,有注意力机制。

1.4为什么求内积之后除以 d \sqrt{d} d

  上面计算相似度s=<q,k>时,s要除以 ( d k e y ) \sqrt(d_{key}) ( dkey)(Key 向量的长度)。原因是词向量embedding维度过高时,s过大,softmax函数会进入饱和区。例如:
  对于两个d维向量q,k,假设它们都采样自“均值为0、方差为1”的分布。Attention是内积后softmax,主要设计的运算是 e q ⋅ k e^{q⋅k} eqk,我们可以大致认为内积之后、softmax之前的数值在 − 3 d -3\sqrt{d} 3d 3 d 3\sqrt{d} 3d 这个范围内,由于d通常都至少是64,所以 e 3 d e^{3\sqrt{d}} e3d 比较大而 e − 3 d e^{-3\sqrt{d}} e3d 比较小,softmax函数进入饱和区。这样会有两个影响:

  • 带来严重的梯度消失问题,导致训练效果差。
  • softmax之后,归一化后计算出来的结果a要么趋近于1要么趋近于0,Attention的分布非常接近一个one hot分布了,加权求和退化成胜者全拿,则解码时只关注注意力最高的(attention模型还是希望别的词也有权重)

相应地,解决方法就有两个:(参考苏剑林《浅谈Transformer的初始化、参数化与标准化》

  • 像NTK参数化那样,在内积之后除以 d \sqrt{d} d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值