Transformer是一種基于注意力機制的深度學(xué)習(xí)模型揍拆,它在NLP領(lǐng)域取得了革命性的進展渠概。該模型的主要特點(可以說一些關(guān)鍵術(shù)語):
1、自注意力機制(Self-Attention):該機制使得模型能夠捕捉到序列內(nèi)部的長距離依賴關(guān)系嫂拴。
2播揪、多頭注意力(Multi-Head Attention):使用此機制來增強模型對不同位置信息的捕捉能力。
3筒狠、位置編碼(Positional Encoding):引入位置編碼猪狈,將序列中每個元素的位置信息編碼到模型輸入中,以幫助模型理解單詞在序列中的位置辩恼。
4雇庙、編碼器-解碼器架構(gòu):編碼器負(fù)責(zé)處理輸入序列,解碼器負(fù)責(zé)生成輸出序列灶伊。
5疆前、層次結(jié)構(gòu):Transformer模型通過堆疊多個編碼器和解碼器層來提高模型的性能。
Self-Attention(自注意力機制層)
自注意力機制(Self-Attention)能很好地解決RNN網(wǎng)絡(luò)固有的計算效率不高和長程依賴問題聘萨,它允許模型并行處理整個序列竹椒,有效地捕獲序列中的長距離依賴。這一機制的引入米辐,讓Transformer模型成為了一項重大技術(shù)突破胸完,逐漸成為了如今NLP的主流研究方向,又影響到計算機視覺(CV)研究領(lǐng)域翘贮。自注意力機制赊窥,又稱內(nèi)部注意力機制,顧名思義择膝,是一種將單個序列的不同位置關(guān)聯(lián)起來以計算同一序列的表示的注意機制誓琼。注意力機制主要體現(xiàn)在相似度系數(shù)上,其反映對于一次查詢當(dāng)前資源中不同數(shù)據(jù)的重要程度肴捉,通過softmax等形式計算出該系數(shù)腹侣;實現(xiàn)聚焦重要數(shù)據(jù),忽略不相關(guān)數(shù)據(jù)的注意力作用齿穗。
傳統(tǒng)的注意力機制發(fā)生在Target的元素Query和Source中的所有元素之間傲隶,其權(quán)重的計算需要Target來參與。即在Encoder-Decoder模型中窃页,Attention權(quán)重的計算不僅需要Encoder中的隱狀態(tài)而且還需要Decoder中的隱狀態(tài)跺株。而自注意力機制中不是Target和Source之間的Attention機制复濒,而是Source內(nèi)部元素之間或者Target內(nèi)部元素之間發(fā)生的Attention機制。如在Transformer中在計算權(quán)重參數(shù)時乒省,將文字向量轉(zhuǎn)成對應(yīng)的KQV巧颈,只需要在Source處進行對應(yīng)的矩陣操作,用不到Target中的信息袖扛。
就是說自注意力機制和注意力機制的區(qū)別就在于砸泛,注意力機制的查詢(Query)和鍵(Key)是不同來源的,而自注意力機制的查詢(Query)和鍵(Key)則都是來自于同一組的元素蛆封,因此唇礁,自注意力機制也被稱為內(nèi)部注意力機制(intra-attention)。自注意力機制的優(yōu)點是感受野大惨篱;缺點是需要大數(shù)據(jù)盏筐。
自注意力機制其實就是論文中所指代的“Scaled Dot-Product Attention“。論文作者說注意力機制可以描述為將query和一系列的key-value對映射到某個輸出的過程砸讳,而這個輸出的向量就是根據(jù)query和key計算得到的權(quán)重作用于value上的權(quán)重和琢融。
Multi-head Attention(多頭注意力機制)
多頭注意力機制的架構(gòu)(Multi-Head Attention)圖,可以看到(V, K, Q)三個矩陣通過h個線性變換(Linear)绣夺,分別得到h組(V, K, Q)矩陣吏奸,每一組(V, K, Q)經(jīng)過Attention計算,得到h個Attention Score并進行拼接(Concat)陶耍,最后通過一個線性變換得到輸出,其維度與輸入詞向量的維度一致她混,其中h就是多頭注意力機制的“頭數(shù)”烈钞。在多頭注意力機制中,其輸出序列的長度與輸入的Query序列的長度一致坤按;在接受的三個序列Query毯欣、Key、Value中臭脓,其Key與Value是鍵值對酗钞,序列長度一定相同,Query序列長度可以與Key来累、Value長度不同砚作。
所謂的多頭注意力機制其實就是將原始的輸入序列進行多組的自注意力處理過程;然后再將每一組自注意力的結(jié)果拼接起來進行一次線性變換得到最終的輸出結(jié)果嘹锁。
因為一段文字可能蘊含了比如情感維度葫录、時間維度、邏輯維度等很多維度的特征领猾,為了能從不同的維度抓住輸入信息的重點米同,就又引入了多頭注意力機制(multi-head attention)骇扇。所謂多頭注意力,簡單說就是把輸入序列投影為多組不同的Query面粮,Key少孝,Value,并行分別計算后熬苍,再把各組計算的結(jié)果合并作為最終的結(jié)果韭山,通過使用多頭注意力機制,可以更好地捕獲來自輸入的多維度特征冷溃,提高模型的表達能力和泛化能力钱磅,并減少過擬合的風(fēng)險。多頭注意力機制的目的是為了從多個維度捕捉提取更多的特征似枕,從多個“頭”得到不同的Self-Attention Score盖淡,提高模型表現(xiàn)。