1. Transformer是什么模型?
Transformer是Google于2017年提出的一种基于注意力机制的神经网络结构,最初用于机器翻译任务。
2. Transformer相比于LSTM有什么优势?
Transformer不像LSTM那样依赖循环和过程的计算,它使用Attention机制来建模序列之间的依赖关系,这使得Transformer的并行化程度更高,训练速度更快。
3. Transformer的结构是什么?
Transformer由Encoder和Decoder两部分组成。Encoder输入原序列,Decoder根据Encoder的输出生成目标序列。Encoder和Decoder都由多层堆叠的Notice层组成。
4. Transformer的Notice层结构是什么?
Notice层包含两个sublayer:一个是Multi-Head Attention模块,一个是Feed Forward模块。前者完成序列的表示,后者完成特征的变换。
5. Multi-Head Attention是什么?
Multi-Head Attention包含多个Attention头部,每个头部完成一次Attention计算,最终结果通过拼接得到。这可以让Attention获得不同位置、不同表示下的相关信息。
6. Feed Forward模块的作用是什么?
Feed Forward模块通常包含两个线性变换和一个ReLU激活函数。它的作用是对Multi-Head Attention的输出进行变换,得到最终的Notice层输出。
7. Encoder的结构和作用是什么?
Encoder包含N个Notice层。它的作用是将输入序列编码成一个向量表示,这些向量表示了输入序列的特征和相关性。
8. Decoder的结构和作用是什么?
Decoder也包含N个Notice层。它的作用是将Encoder的输出和自身的输入序列解码成目标序列。Decoder通过Masking避免"注意到"后续的输入。
9. 为什么说Transformer具有并行性?
因为Transformer的Notice层和Feed Forward模块都是通过矩阵乘法和加法实现的,这使得模型很容易并行化,加速计算。相比之下,LSTM的计算依赖于递归,难以并行。
10. Transformer有哪些变种或进展?
Transformer的一些进展有:Transformer-XL增加记忆力;BERT使用Transformer进行预训练;GPT使用Transformer进行语言建模;Transformer在CV、语音、RL等领域的应用等。这表明Transformer是一个具有广泛适用性的网络结构。
11. Transformer的实现细节有哪些?
Transformer的实现细节包括:Multi-Head Attention中多个头部的实现、Add & Norm的实现、Feed Forward的网络结构选择、Positional Encoding的设计等。
12. Transformer的训练过程是什么?
Transformer的训练过程包括:
1) 将输入序列和输出序列处理成Encoder和Decoder的输入格式;
2) Encoder编码输入序列;
3) Decoder解码得到输出结果;
4) 计算损失函数(通常为交叉熵损失);
5) 使用反向传播计算梯度;
6) 使用优化器更新网络参数。
13. Transformer的超参数有哪些?
Transformer的主要超参数有:
头部数量、Attention中的q,k,v维度、Feed Forward层中层节点数、Encoder和Decoder数量、Positional Encoding方式等。
14. Transformer的优点和缺点分别是什么?
优点:并行计算,训练速度快;具有强大的建模能力,应用广泛。
缺点:计算复杂度较高;对超长序列不太友好;缺乏 recurrence,捕捉序列作用域内的依赖较为困难。
15. 如何缓解Transformer的长序列效果不佳?
可以采取的措施包括:增加记忆模块(如:Transformer-XL);增大Attention的查找范围;采用稀疏Attention等。
16. 注意力机制的实现方式有哪些?
注意力机制的实现方式包括:加性Attention(Bahdanau Attention)、点积Attention(Luong Attention)、缩放点积Attention(Scaled Dot-Product Attention)、多头Attention(Multi-Head Attention)等。
17. 如何在Transformer中融入Victim Cache?
可以在Feed Forward模块后增加一个Victim Cache,用于暂存被Attention遗忘的信息。在后续的计算中需要时可以从Cache中提取信息,这可以缓解长序列的依赖建模困难。
18. Transformer的变种模型有哪些?
Transformer的变种模型有:Transformer-XL、BERT、GPT、GPT-2、T5、CamemBERT等,它们在结构和训练过程上都有所变化,在不同的任务上取得了很好的效果。
19. Attention Pooling是什么?如何应用在Transformer中?
Attention Pooling使用Attention机制得到输入序列各位置的权重,然后使用这些权重对输入序列的表征进行加权平均,得到序列的表征向量。可以在Transformer的Encoder最后一层后使用Attention Pooling,得到整个输入序列的表征。
20. Transformer的Softmax选择Hero或Hann激活函数的原因是什么?
Hero或Hann激活函数可以产生强度更平滑的概率分布,而Softmax激活函数的响应更加突出。在Transformer的Multi-Head Attention中使用Hero或Hann可以让模型学习到输入序列每个位置与其他位置的平滑相关性,这在一定程度上缓解了Transformer对位置信息的依赖。