Transformer


1. Transformer的整体结构

  如图所示为transformer的模型框架,transformer是一个seq2seq的模型,分为Encoder和Decoder两大部分。

2. Transformer Encoder部分

2.1 Encoding输入部分

  首先将输入的文字进行Embedding,每一个字(词)使用一个向量表示,称为字向量,一个句子就可以用一个矩阵来表示。再将每个字向量加上对应的位置信息进行Positional Encoding得到输入矩阵。位置信息通过如下公式进行计算

    i为偶数

 

 

   i为奇数     

 

 

  RNN的输入是按照句子的顺序,一个字一个字进行输入,每个字的位置关系自然包含其中,而对于transformer来说,一个句子中的每一个词是并行计算的,所以在输入的时候需要提前引入位置信息。在ViT中,对图片进行处理时,也加入了位置信息,但对整体的提升不是特别明显,原因是自然界的图像本身就带有一定的位置关系,模型在学习的时候,自己学习到了这些位置特征。

          

 

 

 2.2 注意力机制

  注意力机制的思想可以简单概括为计算source当前输入与target中各部分的关联程度,然后将target中各部分乘以对应的关联权重,求和作为输出。transformer中采用的是多头注意力机制,其中编码器和解码器中各有一个多头自注意力机制。

  所谓自注意力机制,是注意力机制的输入q、k、v相同,目的是找到句子本身内部的关系,而以往的注意力关注的是source和target之间的关联,忽略了句子内部元素的关系。多头的本质是多个独立的attention计算,作为一个集成的作用,防止过拟合;从attention is all your need论文中输入序列是完全一样的;相同的Q,K,V,通过线性转换,每个注意力机制函数只负责最终输出序列中一个子空间,即1/8,而且互相独立。

 

 

 

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM