Transformer知识总结
谈谈你的理解
最开始运用在NLP中的,它就相当于一个Attention结构,它相当于将一张图片平均分割成很多窗口,每个窗口相当于NLP里面的每个词,如果在目标检测中就是每个序列,然后计算每个序列上下文关系,然后将所有的关系融入在一起,这样就能够直接获取全局信息了,而不像CNN那样需要逐步递归才能获得全局信息,也不像RNN那样速度很慢,是因为它可以并行计算。
什么是Self-attention
self-attention就是自注意机制,也就是说当前时刻的输入不止关注当前时刻的信息,还会关注其它时刻的或者说关注所有的时刻信息,计算出其相关性,得到注意力权重矩阵。
什么是Q、K、V
首先Attention的任务是获取局部关注的信息。Attention的引入让我们知道输入数据中,哪些地方更值得关注。
Q、K、V都源于输入特征本身,是根据输入特征产生的向量。V可以看做表示单个输入特征的向量,我们直接将V输入到网络中进行训练是没有引入Attention的网络。如果要引入Attention网络就需要通过V乘以一组权重,这个权重由Q和K计算得来,就可以做到关注局部输入特征。
- V:输入特征的向量 Q和K:计算Attention权重的特征向量。
- Attention机制中的Q,K,V:我们对当前的Query和所有的Key计算相似度,将这个相似度值通过Softmax层进行得到一组权重,根据这组权重与对应Value的乘积求和得到Attention下的Value值。
什么是Multi-head attention
multi-head attention是多个自注意机制模块,通过对self-attention赋予不一样的权重,来得到不一样的结果,并把所有的attention结果拼接起来,通过一个全连接层得到最终结果,从而有助于捕捉到更丰富特征。
什么是位置编码,解决什么问题
由于同一张映射图,目标在不同的位置,Transormer中attention机制并没有包含其位置信息,是不能够进行有效区分的,比如说最简单的我喜欢你和你喜欢我是不一样的结果,所以我们通过加入了位置编码,这样就能够区分到底是谁喜欢谁这一问题,也就是说模型可以考虑前后位置的关系。
如何理解transformer的并行运算
最核心的在multi-head attention ,多组KQV进行self-attention运算,它们是可以同时运算的,由于使用同步运算,所以对于硬件要求比较高。