1.Transformer为何使用多头注意力机制?(为什么不使用一个头)

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

41d6f43bb6bdd39a74ee27574f973d78.png
  • 但目前并没有一个好的解释,https://www.zhihu.com/question/341222779,但确定的是使用一个头可能真的不够

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

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

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

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

为了计算更快。矩阵加法在加法这一块的计算量确实简单,但是作为一个整体计算attention的时候相当于一个隐层,整体计算量和点积相似。在效果上来说,从实验分析,两者的效果和dk相关,dk越大,加法的效果越显著

4 transformer 一个block中最耗时的部分(一个字节的面试官问的愚蠢问题):

block里面包括 selfattention, layernorm, feedforward, 我认为是selfattention, 他愚蠢到问我为什么不是feedforward, self attention里面,要将三个enc映射到不同的子空间,然后再点乘,还要normlizar, feedforward 除非参数量惊人,怎么可能比self_attention 高

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

维度越高,整个向量的方差越大,会出现很大的值和很小的值,计算softmax的梯度时候,由于softmax的梯度导数,会导致梯度变小https://blog.csdn.net/qq_37430422/article/details/105042303,

6 在计算attention score的时候如何对padding做mask操作?

这里是因为padding 都是0,e0=1, 但是softmax的函数,也会导致为padding的值占全局一定概率,mask就是让这部分值取无穷小,让他再softmax之后基本也为0,不去影响非attention socore的分布

7 简单介绍一下Transformer的位置编码?有什么意义和优缺点?

1)对于任何一门语言,单词在句子中的位置以及排列顺序是非常重要的,它们不仅是一个句子的语法结构的组成部分,更是表达语义的重要概念。一个单词在句子的位置或排列顺序不同,可能整个句子的意思就发生了偏差

当抛弃循环神经网络结构,完全采用Attention取而代之,这些词序信息就会丢失,模型就没有办法知道每个词在句子中的相对和绝对的位置信息。因此,有必要把词序信号加到词向量上帮助模型学习这些信息,位置编码(Positional Encoding)就是用来解决这种问题的方法。

8 为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里,BN使用场景和layer_norm区别

对于使用场景来说,BN在MLP和CNN上使用的效果都比较好,在RNN这种动态文本模型上使用的比较差。

BN在MLP中的应用。 BN是对每个特征在batch_size上求的均值和方差,果BN应用到NLP任务,相当于是在对默认了在同一个位置的单词对应的是同一种特征,

layer_norm针对的是文本的长度,整条序列的文本,所以比bn好

9 残差结构意义

防止梯度消失,帮助深层网络训练

10 Transformer 相比于 RNN/LSTM,有什么优势?为什么

(1) RNN 系列的模型,并行计算能力很差, 但其实真实的耗时从业务上来讲,长query,transformer更快,短query,lstm更快。

(2)Transformer 的特征抽取能力比 RNN 系列的模型要好,transform可以动态建立输入序列的长程依赖关系,类似于一层全链接,

参考

https://blog.csdn.net/fengdu78/article/details/104629336​blog.csdn.net
457a5ad57df8dbe38c942ecc8168104a.png

DA-southampton/NLP_ability

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐