长沙企业网站开发,海宁市住房和城乡建设网站,网页设计页面布局结构,河北省城乡和住房建设厅网站近年来#xff0c;Transformer模型在自然语言处理#xff08;NLP#xff09;领域中横扫千军#xff0c;以BERT、GPT为代表的模型屡屡屠榜#xff0c;目前已经成为了该领域的标准模型。同时#xff0c;在计算机视觉等领域中#xff0c;Transformer模型也逐渐得到了重视Transformer模型在自然语言处理NLP领域中横扫千军以BERT、GPT为代表的模型屡屡屠榜目前已经成为了该领域的标准模型。同时在计算机视觉等领域中Transformer模型也逐渐得到了重视越来越多的研究工作开始将这类模型引入到算法中。本文基于2017年Google发表的论文介绍Transformer模型的原理。 一、为什么要引入Transformer
最早提出的Transformer模型[1]针对的是自然语言翻译任务。在自然语言翻译任务中既需要理解每个单词的含义也需要利用单词的前后顺序关系。常用的自然语言模型是循环神经网络Recurrent Neural NetworkRNN和卷积神经网络Convolutional Neural NetworkCNN。
其中循环神经网络模型每次读入一个单词并基于节点当前的隐含状态和输入的单词更新节点的隐含状态。从上述过程来看循环神经网络在处理一个句子的时候只能一个单词一个单词按顺序处理必须要处理完前边的单词才能开始处理后边的单词因此循环神经网络的计算都是串行化的模型训练、模型推理的时间都会比较长。
另一方面卷积神经网络把整个句子看成一个1*D维的向量其中D是每个单词的特征的维度通过一维的卷积对句子进行处理。在卷积神经网络中通过堆叠卷积层逐渐增加每一层卷积层的感受野大小从而实现对上下文的利用。由于卷积神经网络对句子中的每一块并不加以区分可以并行处理句子中的每一块因此在计算时可以很方便地将每一层的计算过程并行化计算效率高于循环神经网络。但是卷积神经网络模型中为了建立两个单词之间的关联所需的网络深度与单词在句子中的距离正相关因此通过卷积神经网络模型学习句子中长距离的关联关系的难度很大。
Transformer模型的提出就是为了解决上述两个问题1可以高效计算2可以准确学习到句子中长距离的关联关系。 二、Transformer模型介绍
如下图所示Transformer模型采用经典的encoder-decoder结构。其中待翻译的句子作为encoder的输入经过encoder编码后再输入到decoder中decoder除了接收encoder的输出外还需要当前step之前已经得到的输出单词整个模型的最终输出是翻译的句子中下一个单词的概率。 现有方法中encoder和decoder通常都是通过多层循环神经网络或卷积实现而Transformer中则提出了一种新的、完全基于注意力的网络layer用来替代现有的模块如下图所示。图中encoder、decoder的结构类似都是由一种模块堆叠N次构成的但是encoder和decoder中使用的模块有一定的区别。具体来说encoder中的基本模块包含多头注意力操作Multi-Head Attention、多层感知机Feed Forward两部分decoder中的基本模块包含2个不同的多头注意力操作Masked Multi-Head Attention和Multi-Head Attention、多层感知机Feed Forward三部分。 在上述这些操作中最核心的部分是三种不同的Multi-Head Attention操作该操作的过程如下图所示可以简单理解为对输入feature的一种变换通过特征之间的关系attention增强或减弱特征中不同维度的强度。模型中使用的三种注意力模块如下
Encoder中的Multi-Head Attentionencoder中的multi-head attention的输入只包含编码器中上一个基本模块的输出使用上一个基本模块的输出计算注意力并调整上一个基本模块的输出因此是一种“自注意力”机制Decoder中的Masked Multi-Head AttentionTransformer中decoder的输入是完整的目标句子为了避免模型利用还没有处理到的单词因此在decoder的基础模块中在“自注意力”机制中加入了mask从而屏蔽掉不应该被模型利用的信息Decoder中的Multi-Head Attentiondecoder中除了自注意力外还要利用encoder的输出信息才能正确进行文本翻译因此decoder中相比encoder多使用了一个multi-head attention来融合输入语句和已经翻译出来的句子的信息。这个multi-head attention结合使用decoder中前一层“自注意力”的输出和encoder的输出计算注意力然后对encoder的输出进行变换以变换后的encoder输出作为输出结果相当于根据当前的翻译结果和原始的句子来确定后续应该关注的单词。 除核心的Multi-Head Attention操作外作者还采用了位置编码、残差连接、层归一化、dropout等操作将输入、注意力、多层感知机连接起来从而构成了完整的Transformer模型。通过修改encoder和decoder中堆叠的基本模块数量、多层感知机节点数、Multi-Head Attention中的head数量等参数即可得到BERT、GPT-3等不同的模型结构。 三、实验效果
实验中作者在newstest2013和newstest2014上训练模型并测试了模型在英语-德语、英语-法语之间的翻译精度。实验结果显示Transformer模型达到了State-of-the-art精度并且在训练开销上比已有方法低一到两个数量级展现出了该方法的优越性。
与已有方法的对比实验显示出更高的BLEU得分和更低的计算开销 模块有效性验证模型中每个单次的特征维度、多头注意力中头的数量、基本模块堆叠数量等参数对模型的精度有明显的影响 参考文献
[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin. Attention Is All You Need. NIPS 2017.