Transformer常见问题与回答总结01 Transformer Encoder 有什么子层?(超参数一面)Encoder由六个相同层构成,每层都有两个子层:多头自注意力层和全连接的前馈神经网络层(Linear+relu+dropout+Linear)。使用残差连接和层归一化连接两个子层。02 写一下self-attention的公式(超参数一面)03 Transformer的优缺点优点:可并行独立于卷积和循环,完全依赖于attention处理全局依赖,解决长距离依赖问题性能强缺点:长度固定局部信息的获取不如RNN和CNN强:Transformer关注的全局关系,而RNN在计算过程中更关注局部,对距离更加敏感。04 Encoder端和Decoder端是如何进行交互的?Cross Self-attention,Decoder提供,Encoder提供。05 Transformer中为什么需要线性变换?分别是输入向量经过不同的线性变换矩阵计算得到。可以从正反两面分析线性变换的必要性:线性变换的好处:在部分,线性变换矩阵将KQ投影到了不同的空间,增加了表达能力(这一原理可以同理SVM中的核函数-将向量映射到高维空间以解决非线性问题),这样计算得到的注意力矩阵的泛化能力更高。不用线性变换的坏处:在部分,如果不做线性变换,即X=Q=K,则会导致注意力矩阵是对称的,即,这样的效果明显是差的,比如“我是一个女孩”这句话,女孩对修饰我的重要性应该要高于我修饰女孩的重要性。06 Transformer attention的注意力矩阵的计算为什么用乘法而不是加法?为了计算更快。加法形式是先加、后tanh、再和V矩阵相乘,相当于一个完整的隐层。在计算复杂度上,乘法和加法理论上的复杂度相似,但是在实践中,乘法可以利用高度优化的矩阵乘法代码(有成熟的加速实现)使得点乘速度更快,空间利用率更高。(论文P4有解释)在较小的时候,加法和乘法形式效果相近。但是随着增大,加法开始显著优于乘法。作者认为,增大导致乘法性能不佳的原因,是极大的点乘值将整个softmax推向梯度平缓区,使得收敛困难。于是选择scale,除。07 Transformer attention计算为什么要在softmax这一步之前除以(7 封私信 / 80 条消息) transformer中的attention为什么scaled? - 知乎 (zhihu.com)取决于Softmax的性质,如果softmax内计算的数过大或者过小,可能导致Softmax后的结果为0,导致梯度消失为什么是。假设Q、K中元素的值分布在[0,1],softmax的计算中,分母涉及了一次对所有位置的求和,整体的分布就会扩大到[0,]。08 Transformer attention计算注意力矩阵的时候如何对padding做mask操作的?padding位置置为-1000,再对注意力矩阵进行相加。09 Transformer的残差结构及意义同resnet,解决梯度消失,防止过拟合10 Transformer为什么使用LN而不是BN?LN是针对每个样本序列进行归一化,没有样本间依赖,对一个序列的不同特征维度进行归一化。CV使用BN是因为认为通道维度的信息对cv方面有重要意义,如果对通道维度也归一化会造成不同通道信息一定的损失。NLP认为句子长短不一,且各batch之间的信息没有什么关系,因此只考虑句子内信息的归一化。11 Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?/ 为什么decoder自注意力需要进行sequence mask?让输入序列只看到过去的信息,而看不到未来的信息。12 Transformer的并行化体现在哪里,Decoder可以做并行化嘛?Encoder的模块是串行的,但模块内的子模块多头注意力和前馈网络内部都是并行的,因为单词之间没有依赖关系。Decode引入sequence mask就是为了并行化训练,推理过程不并行13 Transformer计算量最大的部分是哪里(超参数二面、海信一面)多头注意力部分计算量最大。假设完成一次推理,(batch-size)=1, (seq-length,序列最大长度)=256, (hidden-size)=768, attention-head=12 经过一个Transformer的多头注意力block,所需要的矩阵乘法的数量:总计:12 * (256 * 64 * 256 + 256 * 256 * 64)=  1亿次乘法除了矩阵乘法的运算外,还有除和函数的运算:除:计算量为=256*256函数:计算量为两个矩阵相乘的计算量:            假设矩阵A尺寸为(m,n),矩阵B尺寸为(n,k),则矩阵M和矩阵N相乘的计算量为m*n*k。权重矩阵K,Q,V的尺寸:            不考虑多头注意力的情况下均为(s,h);多头注意力时,默认12个头,故单头的尺寸为(s,1/12h)。14 Transformer、LSTM和单纯的前馈神经网络比,有哪些提升?LSTM相比于单纯的前馈神经网络,首先具有理解文本的语序关系的能力(RNN)。除此之外,又解决了RNN在处理长序列时发生的梯度消失和梯度爆炸的问题。Transformer进一步解决了RNN、LSTM等模型的长距离依赖问题,能够理解更长的上下文语义。可以并行化,所要的训练时间更短。15 Transformer处理篇章级的长文本的变体Transformer变体层出不穷,它们都长什么样? (qq.com)16 有哪些处理超长文本的方法(超参数二面)HIERARCHICAL基于BERT的超长文本分类模型_valleria的博客-CSDN博客_长文本分类基本思想:对数据进行有重叠的分割,这样分割之后的每句句子直接仍保留了一定的关联信息。模型由两部分构成,第一部分是fine-tune后的BERT,第二部分是由LSTM+FC层组成的混合模型。即,BERT只用来提取出句子的表示,而真正在做分类的是LSTM+FC部分。具体流程:首先将长句子分割为多个小句子,如长200,重叠长度为50.将分割后的数据集传入BERT,分别取每个句子的[CLS]表示句子的embedding,将来自相同长句子的embedding拼接,作为长句子的向量表示。最后,将长句子的向量表示传入LSTM+FC部分进行分类。除此之外,第二部分还可以用Transformer。由于都是从notion笔记里面复制过来的,所以可能存在公式缺失之类的问题,欢迎指出~由于是个人笔记,可能有错误之处,欢迎指正~
点赞 21
评论 2
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务