电子发烧友网报道(文/李弯弯)近年来,随着大语言模型的不断出圈,Transformer这一概念也走进了大众视野。Transformer是一种非常流行的深度学习模型,最早于2017年由谷歌(Google)研究团队提出,主要用于处理自然语言。
2018年10月,Google发出一篇论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》,BERT模型横空出世,并横扫NLP领域11项任务的最佳成绩。而在BERT中发挥重要作用的结构就是Transformer,之后又相继出现XLNET、roBERT等模型击败了BERT,但是他们的核心没有变,仍然是Transformer。
与传统CNN和RNN相比,Transformer计算效率更高
Transformer是一种基于注意力机制的序列模型,与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformer仅使用自注意力机制(self-attention)来处理输入序列和输出序列,因此可以并行计算,极大地提高了计算效率。
自注意力机制是注意力机制的一个特例。注意力机制类似于人类的注意力,能够根据任务的需要分配不同权重给输入序列中的不同部分。自注意力机制则更像是一种“全知”的能力,系统可以同时关注输入序列中的所有位置,而不受序列中位置的限制。
自注意力机制是Transformer的核心部分,它允许模型在处理序列时,将输入序列中的每个元素与其他元素进行比较,以便在不同上下文中正确地处理每个元素。
Transformer模型由编码器(Encoder)和解码器(Decoder)两部分组成。编码器将输入序列(例如一句话)转化为一系列上下文表示向量(Contextualized Embedding),它由多个相同的层组成。每一层都由两个子层组成,分别是自注意力层(Self-Attention Layer)和前馈全连接层(Feedforward Layer)。具体地,自注意力层将输入序列中的每个位置与所有其他位置进行交互,以计算出每个位置的上下文表示向量。前馈全连接层则将每个位置的上下文表示向量映射到另一个向量空间,以捕捉更高级别的特征。
解码器将编码器的输出和目标序列(例如翻译后的句子)作为输入,生成目标序列中每个位置的概率分布。解码器由多个相同的层组成,每个层由三个子层组成,分别是自注意力层、编码器-解码器注意力层(Encoder-Decoder Attention Layer)和前馈全连接层。其中自注意力层和前馈全连接层的作用与编码器相同,而编码器-解码器注意力层则将解码器当前位置的输入与编码器的所有位置进行交互,以获得与目标序列有关的信息。
Transformer在自然语言处理中广泛应用,例如机器翻译、文本摘要、语言生成、问答系统等领域。相比于传统的递归神经网络(RNN)和卷积神经网络(CNN),Transformer的并行计算能力更强,处理长序列的能力更强,且可以直接对整个序列进行处理。
比如,在问答系统中,Transformer模型主要用于对问题和答案进行匹配,从而提供答案。具体而言,输入序列为问题和答案,输出为问题和答案之间的匹配分数。Transformer模型通过编码器将问题和答案分别转化为向量表示,然后通过Multi-Head Attention层计算问题和答案之间的注意力分布,最终得到匹配分数。
CNN和RNN的特点及应用领域
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。
卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域 。
计算机视觉方面,卷积神经网络长期以来是图像识别领域的核心算法之一,并在学习数据充足时有稳定的表现。对于一般的大规模图像分类问题,卷积神经网络可用于构建阶层分类器(hierarchical classifier),也可以在精细分类识别(fine-grained recognition)中用于提取图像的判别特征以供其它分类器进行学习。对于后者,特征提取可以人为地将图像的不同部分分别输入卷积神经网络,也可以由卷积神经网络通过非监督学习自行提取。
卷积神经网络在计算机视觉方面的应用还包括字符检测(text detection)/字符识别(text recognition)/光学字符读取、物体识别(object recognition)等,此外,在图像语义分割(semantic segmentation)、场景分类(scene labeling)和图像显著度检测(Visual Saliency Detection)等问题中也有应用,其表现被证实超过了很多使用特征工程的分类系统。
然而,由于受到窗口或卷积核尺寸的限制,无法很好地学习自然语言数据的长距离依赖和结构化语法特征,卷积神经网络在自然语言处理(Natural Language Processing, NLP)中的应用要少于循环神经网络,且在很多问题中会在循环神经网络的构架上进行设计,但也有一些卷积神经网络算法在多个NLP主题中取得成功。
循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。
循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一 ,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的循环神经网络。
循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convolutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
RNN在NLP问题中有得到应用。在语音识别中,有研究人员使用L双向STM对英语文集TIMIT进行语音识别,其表现超过了同等复杂度的隐马尔可夫模型(Hidden Markov Model, HMM)和深度前馈神经网络。在语音合成领域,有研究人员将多个双向LSTM相组合建立了低延迟的语音合成系统,成功将英语文本转化为接近真实的语音输出 。RNN也被用于端到端文本-语音(Text-To-Speech, TTS)合成工具的开发,例子包括Tacotron 、Merlin 等。RNN也被用于与自然语言处理有关的异常值检测问题,例如社交网络中虚假信息/账号的检测 。
RNN与卷积神经网络向结合的系统可被应用于在计算机视觉问题,例如在字符识别(text recognition)中,有研究使用卷积神经网络对包含字符的图像进行特征提取,并将特征输入LSTM进行序列标注 。对基于视频的计算机视觉问题,例如行为认知(action recognition)中,RNN可以使用卷积神经网络逐帧提取的图像特征进行学习。
总结
可以看到,Transformer以及CNN、RNN是不同的深度学习模型,Transformer是一种基于自注意力机制的特征提取网络结构,主要用于自然语言处理领域。CNN是一种基于卷积层的特征提取网络结构,主要用于图像处理领域。RNN是一种基于循环层的特征提取网络结构,用于自然语言处理,也用于计算机视觉。总体而言,因为使用自注意力机制(self-attention)来处理输入序列和输出序列,Transformer可以并行计算,相比之下计算效率大幅提升。
全部0条评论
快来发表一下你的评论吧 !