電子發燒友網報道(文/李彎彎)近年來,隨著大語言模型的不斷出圈,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可以并行計算,相比之下計算效率大幅提升。
-
cnn
+關注
關注
3文章
353瀏覽量
22334 -
Transformer
+關注
關注
0文章
145瀏覽量
6047 -
rnn
+關注
關注
0文章
89瀏覽量
6913 -
大模型
+關注
關注
2文章
2545瀏覽量
3161
發布評論請先 登錄
相關推薦
評論