電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)近年來,隨著大語言模型的不斷出圈,Transformer這一概念也走進(jìn)了大眾視野。Transformer是一種非常流行的深度學(xué)習(xí)模型,最早于2017年由谷歌(Google)研究團(tuán)隊(duì)提出,主要用于處理自然語言。
2018年10月,Google發(fā)出一篇論文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》,BERT模型橫空出世,并橫掃NLP領(lǐng)域11項(xiàng)任務(wù)的最佳成績。而在BERT中發(fā)揮重要作用的結(jié)構(gòu)就是Transformer,之后又相繼出現(xiàn)XLNET、roBERT等模型擊敗了BERT,但是他們的核心沒有變,仍然是Transformer。
與傳統(tǒng)CNN和RNN相比,Transformer計(jì)算效率更高
Transformer是一種基于注意力機(jī)制的序列模型,與傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)不同,Transformer僅使用自注意力機(jī)制(self-attention)來處理輸入序列和輸出序列,因此可以并行計(jì)算,極大地提高了計(jì)算效率。
自注意力機(jī)制是注意力機(jī)制的一個(gè)特例。注意力機(jī)制類似于人類的注意力,能夠根據(jù)任務(wù)的需要分配不同權(quán)重給輸入序列中的不同部分。自注意力機(jī)制則更像是一種“全知”的能力,系統(tǒng)可以同時(shí)關(guān)注輸入序列中的所有位置,而不受序列中位置的限制。
自注意力機(jī)制是Transformer的核心部分,它允許模型在處理序列時(shí),將輸入序列中的每個(gè)元素與其他元素進(jìn)行比較,以便在不同上下文中正確地處理每個(gè)元素。
Transformer模型由編碼器(Encoder)和解碼器(Decoder)兩部分組成。編碼器將輸入序列(例如一句話)轉(zhuǎn)化為一系列上下文表示向量(Contextualized Embedding),它由多個(gè)相同的層組成。每一層都由兩個(gè)子層組成,分別是自注意力層(Self-Attention Layer)和前饋全連接層(Feedforward Layer)。具體地,自注意力層將輸入序列中的每個(gè)位置與所有其他位置進(jìn)行交互,以計(jì)算出每個(gè)位置的上下文表示向量。前饋全連接層則將每個(gè)位置的上下文表示向量映射到另一個(gè)向量空間,以捕捉更高級(jí)別的特征。
解碼器將編碼器的輸出和目標(biāo)序列(例如翻譯后的句子)作為輸入,生成目標(biāo)序列中每個(gè)位置的概率分布。解碼器由多個(gè)相同的層組成,每個(gè)層由三個(gè)子層組成,分別是自注意力層、編碼器-解碼器注意力層(Encoder-Decoder Attention Layer)和前饋全連接層。其中自注意力層和前饋全連接層的作用與編碼器相同,而編碼器-解碼器注意力層則將解碼器當(dāng)前位置的輸入與編碼器的所有位置進(jìn)行交互,以獲得與目標(biāo)序列有關(guān)的信息。
Transformer在自然語言處理中廣泛應(yīng)用,例如機(jī)器翻譯、文本摘要、語言生成、問答系統(tǒng)等領(lǐng)域。相比于傳統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)(RNN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN),Transformer的并行計(jì)算能力更強(qiáng),處理長序列的能力更強(qiáng),且可以直接對(duì)整個(gè)序列進(jìn)行處理。
比如,在問答系統(tǒng)中,Transformer模型主要用于對(duì)問題和答案進(jìn)行匹配,從而提供答案。具體而言,輸入序列為問題和答案,輸出為問題和答案之間的匹配分?jǐn)?shù)。Transformer模型通過編碼器將問題和答案分別轉(zhuǎn)化為向量表示,然后通過Multi-Head Attention層計(jì)算問題和答案之間的注意力分布,最終得到匹配分?jǐn)?shù)。
CNN和RNN的特點(diǎn)及應(yīng)用領(lǐng)域
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Networks),是深度學(xué)習(xí)(deep learning)的代表算法之一 。卷積神經(jīng)網(wǎng)絡(luò)具有表征學(xué)習(xí)(representation learning)能力,能夠按其階層結(jié)構(gòu)對(duì)輸入信息進(jìn)行平移不變分類(shift-invariant classification),因此也被稱為“平移不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)(Shift-Invariant Artificial Neural Networks, SIANN)”。
卷積神經(jīng)網(wǎng)絡(luò)的研究始于二十世紀(jì)80至90年代,時(shí)間延遲網(wǎng)絡(luò)和LeNet-5是最早出現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò);在二十一世紀(jì)后,隨著深度學(xué)習(xí)理論的提出和數(shù)值計(jì)算設(shè)備的改進(jìn),卷積神經(jīng)網(wǎng)絡(luò)得到了快速發(fā)展,并被應(yīng)用于計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域 。
計(jì)算機(jī)視覺方面,卷積神經(jīng)網(wǎng)絡(luò)長期以來是圖像識(shí)別領(lǐng)域的核心算法之一,并在學(xué)習(xí)數(shù)據(jù)充足時(shí)有穩(wěn)定的表現(xiàn)。對(duì)于一般的大規(guī)模圖像分類問題,卷積神經(jīng)網(wǎng)絡(luò)可用于構(gòu)建階層分類器(hierarchical classifier),也可以在精細(xì)分類識(shí)別(fine-grained recognition)中用于提取圖像的判別特征以供其它分類器進(jìn)行學(xué)習(xí)。對(duì)于后者,特征提取可以人為地將圖像的不同部分分別輸入卷積神經(jīng)網(wǎng)絡(luò),也可以由卷積神經(jīng)網(wǎng)絡(luò)通過非監(jiān)督學(xué)習(xí)自行提取。
卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺方面的應(yīng)用還包括字符檢測(text detection)/字符識(shí)別(text recognition)/光學(xué)字符讀取、物體識(shí)別(object recognition)等,此外,在圖像語義分割(semantic segmentation)、場景分類(scene labeling)和圖像顯著度檢測(Visual Saliency Detection)等問題中也有應(yīng)用,其表現(xiàn)被證實(shí)超過了很多使用特征工程的分類系統(tǒng)。
然而,由于受到窗口或卷積核尺寸的限制,無法很好地學(xué)習(xí)自然語言數(shù)據(jù)的長距離依賴和結(jié)構(gòu)化語法特征,卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理(Natural Language Processing, NLP)中的應(yīng)用要少于循環(huán)神經(jīng)網(wǎng)絡(luò),且在很多問題中會(huì)在循環(huán)神經(jīng)網(wǎng)絡(luò)的構(gòu)架上進(jìn)行設(shè)計(jì),但也有一些卷積神經(jīng)網(wǎng)絡(luò)算法在多個(gè)NLP主題中取得成功。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)是一類以序列(sequence)數(shù)據(jù)為輸入,在序列的演進(jìn)方向進(jìn)行遞歸(recursion)且所有節(jié)點(diǎn)(循環(huán)單元)按鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network)。
循環(huán)神經(jīng)網(wǎng)絡(luò)的研究始于二十世紀(jì)80-90年代,并在二十一世紀(jì)初發(fā)展為深度學(xué)習(xí)(deep learning)算法之一 ,其中雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bidirectional RNN, Bi-RNN)和長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory networks,LSTM)是常見的循環(huán)神經(jīng)網(wǎng)絡(luò)。
循環(huán)神經(jīng)網(wǎng)絡(luò)具有記憶性、參數(shù)共享并且圖靈完備(Turing completeness),因此在對(duì)序列的非線性特征進(jìn)行學(xué)習(xí)時(shí)具有一定優(yōu)勢。循環(huán)神經(jīng)網(wǎng)絡(luò)在自然語言處理(Natural Language Processing, NLP),例如語音識(shí)別、語言建模、機(jī)器翻譯等領(lǐng)域有應(yīng)用,也被用于各類時(shí)間序列預(yù)報(bào)。引入了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)構(gòu)筑的循環(huán)神經(jīng)網(wǎng)絡(luò)可以處理包含序列輸入的計(jì)算機(jī)視覺問題。
RNN在NLP問題中有得到應(yīng)用。在語音識(shí)別中,有研究人員使用L雙向STM對(duì)英語文集TIMIT進(jìn)行語音識(shí)別,其表現(xiàn)超過了同等復(fù)雜度的隱馬爾可夫模型(Hidden Markov Model, HMM)和深度前饋神經(jīng)網(wǎng)絡(luò)。在語音合成領(lǐng)域,有研究人員將多個(gè)雙向LSTM相組合建立了低延遲的語音合成系統(tǒng),成功將英語文本轉(zhuǎn)化為接近真實(shí)的語音輸出 。RNN也被用于端到端文本-語音(Text-To-Speech, TTS)合成工具的開發(fā),例子包括Tacotron 、Merlin 等。RNN也被用于與自然語言處理有關(guān)的異常值檢測問題,例如社交網(wǎng)絡(luò)中虛假信息/賬號(hào)的檢測 。
RNN與卷積神經(jīng)網(wǎng)絡(luò)向結(jié)合的系統(tǒng)可被應(yīng)用于在計(jì)算機(jī)視覺問題,例如在字符識(shí)別(text recognition)中,有研究使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)包含字符的圖像進(jìn)行特征提取,并將特征輸入LSTM進(jìn)行序列標(biāo)注 。對(duì)基于視頻的計(jì)算機(jī)視覺問題,例如行為認(rèn)知(action recognition)中,RNN可以使用卷積神經(jīng)網(wǎng)絡(luò)逐幀提取的圖像特征進(jìn)行學(xué)習(xí)。
總結(jié)
可以看到,Transformer以及CNN、RNN是不同的深度學(xué)習(xí)模型,Transformer是一種基于自注意力機(jī)制的特征提取網(wǎng)絡(luò)結(jié)構(gòu),主要用于自然語言處理領(lǐng)域。CNN是一種基于卷積層的特征提取網(wǎng)絡(luò)結(jié)構(gòu),主要用于圖像處理領(lǐng)域。RNN是一種基于循環(huán)層的特征提取網(wǎng)絡(luò)結(jié)構(gòu),用于自然語言處理,也用于計(jì)算機(jī)視覺。總體而言,因?yàn)槭褂米宰⒁饬C(jī)制(self-attention)來處理輸入序列和輸出序列,Transformer可以并行計(jì)算,相比之下計(jì)算效率大幅提升。
-
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22203 -
Transformer
+關(guān)注
關(guān)注
0文章
143瀏覽量
5995 -
rnn
+關(guān)注
關(guān)注
0文章
89瀏覽量
6886 -
大模型
+關(guān)注
關(guān)注
2文章
2423瀏覽量
2640
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論