1、Transformer为何使用多头注意力机制?(为什么不使用一个头)
为什么Transformer 需要进行 Multi-head Attention? - 知乎 注解:简单回答就是,多头保证了transformer可以关注到不同子空间的信息,捕捉到更加丰富的特征信息。
2、Transformer中的Q,K,V到底是什么? Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?
transformer中为什么使用不同的K 和 Q, 为什么不能使用同一个值? - 知乎
注解:简单回答就是,两个向量的点乘表示两个向量的相似度, 如果在同一个向量空间里进行点乘,理所应当的是自身和自身的相似度最大,那会影响其他向量对自己的作用,使用Q/K/V不相同可以保证在不同空间进行投影,增强了表达能力,提高了泛化能力。
3、为什么在进行softmax之前需要对attention进行scaled(为什么除以dk的平方根),并使用公式推导进行讲解
八股,让softmax输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练
为什么在进行softmax之前需要对attention进行scaled(为什么除以 d_k的平方根)_ytusdc的博客
4、在计算attention score的时候如何对padding做mask操作?
这里是因为padding 都是0,e0=1, 但是softmax的函数,也会导致为padding的值占全局一定概率,mask就是让这部分值取无穷小,让他再softmax之后基本也为0,不去影响非attention socore的分布
5、简单介绍一下Transformer的位置编码?有什么意义和优缺点?
对于任何一门语言,单词在句子中的位置以及排列顺序是非常重要的,它们不仅是一个句子的语法结构的组成部分,更是表达语义的重要概念。一个单词在句子的位置或排列顺序不同,可能整个句子的意思就发生了偏差
当抛弃循环神经网络结构,完全采用Attention取而代之,这些词序信息就会丢失,模型就没有办法知道每个词在句子中的相对和绝对的位置信息。因此,有必要把词序信号加到词向量上帮助模型学习这些信息,位置编码(Positional Encoding)就是用来解决这种问题的方法。
6、你还了解哪些关于位置编码的技术,各自的优缺点是什么?
7、简单讲一下Transformer中的残差结构以及意义。
8、为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?
对于使用场景来说,BN在MLP和CNN上使用的效果都比较好,在RNN这种动态文本模型上使用的比较差。
BN在MLP中的应用。 BN是对每个特征在batch_size上求的均值和方差,如果BN应用到NLP任务,相当于是在对默认了在同一个位置的单词对应的是同一种特征,
layer_norm针对的是文本的长度,整条序列的文本,所以比bn好
9、 Transformer 相比于 RNN/LSTM,有什么优势?为什么
(1) RNN 系列的模型,并行计算能力很差, 但其实真实的耗时从业务上来讲,长query,transformer更快,短query,lstm更快。
(2)Transformer 的特征抽取能力比 RNN 系列的模型要好,transform可以动态建立输入序列的长程依赖关系,类似于一层全链接,
为什么在进行多头注意力的时候需要对每个head进行降维?(可以参考上面一个问题)
大概讲一下Transformer的Encoder模块?
为何在获取输入词向量之后需要对矩阵乘以embedding size的开方?意义是什么?
简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?
Encoder端和Decoder端是如何进行交互的?(在这里可以问一下关于seq2seq的attention知识)
Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?(为什么需要decoder自注意力需要进行 sequence mask)
Transformer的并行化提现在哪个地方?Decoder端可以做并行化吗?
简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?
Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?
引申一个关于bert问题,bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?
放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 - 知乎
5.为什么transformer用Layer Norm有什么用?
八股,让神经网络各层参数输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练。
6.为什么不用BN?
两个,NLP不定长,好多位置填0,影响其他样本非0参数的计算。
Transformer的模型比较大,BS拉不大,容易变得不稳定
7.Bert为什么要搞一个position embedding?
八股,增强表达能力(位置上的)。因为transformer对位置不敏感,需要显示标示
8.Bert为什么三个embedding可以相加?
9.transformer为什么要用三个不一样的QKV?
八股,增强网络的容量和表达能力。
10.为什么要多头?
八股,增强网络的容量和表达能力。
11.为什么Bert中要用BPE这样的subword Token
能很好的解决单词上的OOV,在语义粒度是比较合适的表达。
-- 为什么Transformer中很少使用激活函数?
介绍BERT/Transformer原理,结构
介绍视觉Transformer及代表性网络
Transformer中的Position Embedding是怎么实现的?为什么?
bert对小样本学习fine-tune的时候有什么优化方法
手写Transformer
Transformer 中的 positional embedding https://zhuanlan.zhihu.com/p/359366717