Transformer知识点

Transformer模型因其高效并行计算与强大的序列建模能力而被广泛应用。本文深入探讨Transformer的运行流程,包括多头注意力机制的作用,为什么Q和K使用不同权重矩阵,softmax前的scaled操作原因,以及如何处理padding。此外,还讨论了位置编码的重要性,Encoder和Decoder的交互,以及并行化和学习率设定等关键问题。
摘要由CSDN通过智能技术生成

Transformer和Bert相关知识解答

transformer问题整理(参考知乎大佬内容)

矩阵、张量乘法(numpy.tensordot)的时间复杂度分析

文章目录

Transformer的运行流程

Transformer为何使用多头注意力机制?

  • 从直觉上的解释,其实类似cnn中的多核,关注到不同子空间的信息,捕捉到更加丰富的特征信息
  • 当然从代码实现上不是类似于cnn的多核,因为keyi, queryi 并没有去关注其他子空间j!=i的值

为什么Transformer 需要进行 Multi-head Attention?

What Does BERT Look At?An Analysis of BERT’s Attention.pdf

将模型分为多个头,形成多个子空间,可以让模型去关注不同方面的信息

Transformer,或Bert的特定层是有独特的功能的,底层更偏向于关注语法,顶层更偏向于关注语义。

既然在同一层Transformer关注的方面是相同的,那么对该方面而言,不同的头关注点应该也是一样的。但是我们发现,同一层中,总有那么一两个头独一无二,和其他头的关注pattern不同,比如下图:

在这里插入图片描述
头之间的方差随着所在层数的增大而减小。

  • 一种可能的解释是,它类似一种noise,或者dropout,而不是去关注不同的方面。也就是说,无论多少层,既然都会出现与众不同的头,那么这个(些)头就是去使得模型收敛(效果最优)的结果,反过来说,模型可能认为,全部一样的头不会使效果最优(至少在梯度下降的方法上)。这样的话,把这个(些)头解释为模型的一种“试探”,或者噪声,是可能合理的。
  • 另外一种解释是,Transformer对初始化比较敏感,一些初始化点必然导致不同的头,但这样解释就很难从直觉上解释了。
  • Transformer底层的头方差大是因为Transformer存在的梯度消失问题,也就是说,并不是模型自己觉得底层的方差大是好的,而是自己没有办法让它变好。所以,合理的初始化应该可以减少底层头的方差,提高效果。Improving Deep Transformerwith Depth-Scaled Initialization and Merged Attention

在这里插入图片描述

BLEU (其全称为Bilingual Evaluation Understudy), 其意思是双语评估替补

在这里插入图片描述

Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?

transformer中为什么使用不同的K 和 Q, 为什么不能使用同一个值?

两个向量的点乘表示两个向量的相似度, 如果在同一个向量空间里进行点乘,理所应当的是自身和自身的相似度最大,那会影响其他向量对自己的作用,(形成类似单位矩阵?)

使用Q/K/V 不相同,保证在不同空间进行投影,增强表达能力,提高泛化能力

Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别

答案解析:为了计算更快。矩阵加法在加法这一块的计算量确实简单,但是作为一个整体计算attention的时候相当于一个隐层,整体计算量和点积相似。在效果上来说,从实验分析,两者的效果和dk相关,dk越大,加法的效果越显著。更具体的结果,大家可以看一下实验图(从莲子同学那里看到的,专门去看了一下论文):

在这里插入图片描述

※ 为什么在进行softmax之前需要对attention进行scaled(为什么除以dk的平方根),并使用公式推导进行讲解

transformer中的attention为什么scaled?

D ( q ⋅ k d k ) = d k ( d k ) 2 = 1 D\left(\frac{q \cdot k}{\sqrt{d}_{k}}\right)=\frac{d_{k}}{\left(\sqrt{d}_{k}\right)^{2}}=1 D(d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值