免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

Transformer細(xì)節(jié)整理

 Clay*more 2022-06-13 發(fā)布于北京

https://www.jianshu.com/p/89ce327e957c

本文是對transformer的細(xì)節(jié)進(jìn)行整理,主要有以下問題:

  • Transformer為什么Q和K使用不同的權(quán)重矩陣生成,為何不能使用同一個值進(jìn)行自身的點(diǎn)乘?
  • 關(guān)于 self-attention 為什么要使用 Q、K、V,僅僅使用 Q、V/K、V 或者 V 為什么不行?
  • transformer中的attention為什么scaled?
  • Transformer計算attention的時候?yàn)楹芜x擇點(diǎn)乘而不是加法?兩者計算復(fù)雜度和效果上有什么區(qū)別?
  • 在計算attention score的時候如何對padding做mask操作?
  • 為什么Transformer 需要進(jìn)行 Multi-head Attention?
  • self-attention 為什么它能發(fā)揮如此大的作用?
  • 殘差結(jié)構(gòu)意義
  • Transformer中的Mask矩陣已經(jīng)有順序了,能去掉position embedding嗎?
  • 為什么說 Transformer 可以代替 seq2seq?
  • Transformer 相比于 RNN/LSTM,有什么優(yōu)勢?為什么?

Transformer為什么Q和K使用不同的權(quán)重矩陣生成,為何不能使用同一個值進(jìn)行自身的點(diǎn)乘?

transformer中為什么使用不同的K 和 Q, 為什么不能使用同一個值? - TniL的回答 - 知乎
注解:簡單回答就是,使用Q/K/V不相同可以保證在不同空間進(jìn)行投影,增強(qiáng)了表達(dá)能力,提高了泛化能力。

關(guān)于 self-attention 為什么要使用 Q、K、V,僅僅使用 Q、V/K、V 或者 V 為什么不行?

這個問題我覺得并不重要,self-attention 使用 Q、K、V,這樣三個參數(shù)獨(dú)立,模型的表達(dá)能力和靈活性顯然會比只用 Q、V 或者只用 V 要好些,當(dāng)然主流 attention 的做法還有很多種,比如說 seq2seq with attention 也就只有 hidden state 來做相似性的計算,處理不同的任務(wù),attention 的做法有細(xì)微的不同,但是主體思想還是一致的,不知道有沒有論文對這個問題有過細(xì)究,有空去查查~
「其實(shí)還有個小細(xì)節(jié),因?yàn)?self-attention 的范圍是包括自身的(masked self-attention 也是一樣),因此至少是要采用 Q、V 或者 K、V 的形式,而這樣“詢問式”的 attention 方式,個人感覺 Q、K、V 顯然合理一些?!?/p>

transformer中的attention為什么scaled?

transformer中的attention為什么scaled? - TniL的回答 - 知乎

Transformer計算attention的時候?yàn)楹芜x擇點(diǎn)乘而不是加法?兩者計算復(fù)雜度和效果上有什么區(qū)別?

最基礎(chǔ)的 attention 有兩種形式,一種是 Add(加性),一種是 Mul(點(diǎn)乘)
Add: score(h, s) = <v, tanh(W_1h+W_2s)>
Mul: score(h, s) = <W_1h, W_2s>
為了計算更快。矩陣加法在加法這一塊的計算量確實(shí)簡單,但是作為一個整體計算attention的時候相當(dāng)于一個隱層,整體計算量和點(diǎn)積相似。在效果上來說,從實(shí)驗(yàn)分析,兩者的效果和dk相關(guān),dk越大,加法的效果越顯著。論文中的實(shí)驗(yàn)圖如下:

add VS mul

在計算attention score的時候如何對padding做mask操作?

為什么Transformer 需要進(jìn)行 Multi-head Attention?

結(jié)合文章和論文看,主要回答以下問題:

  • 不同頭之間的差距有多少?h_i是否隨著層數(shù)的變化而變化?

有大量的paper表明,Transformer,或Bert的特定層是有獨(dú)特的功能的,底層更偏向于關(guān)注語法,頂層更偏向于關(guān)注語義。那么我們假定:在同一層Transformer關(guān)注的方面是相同的,那么對該方面而言,不同的頭關(guān)注點(diǎn)應(yīng)該也是一樣的。不過,在下圖中也表明:同一層中,總有那么一兩個頭獨(dú)一無二,和其他頭的關(guān)注pattern不同。(從某個角度看,至少一個頭的效果不如多幾個頭好,至于具體是幾個head又是另一個問題了。)


From:https:///pdf/1906.05714.pdf

論文《What Does BERT Look At? An Analysis of BERT’s Attention》中可視化表示:頭之間的方差隨著所在層數(shù)的增大而減小。但是這種差距有什么作用至今還沒有得到解釋。

  • 同一層中,不同的頭數(shù)量是否對h_i有影響?

論文《Analyzing Multi-Head Self-Attention:
Specialized Heads Do the Heavy Lifting, the Rest Can Be Pruned》
給出的結(jié)論是:只有一小部分頭對翻譯而言是重要的,其他的頭都是次要的;重要的頭有一種或多種專有的關(guān)注模式。

Transformer原論文中的結(jié)果,我們主要看base那一行和(A)組。對于PPL和BLEU,確是8個頭/16個頭最好,1個頭最差,4個和32個頭稍微差一點(diǎn),但是差的不多。從這里來看,head也不是越多越好或者越少越好。


transformer
  • 初始化如何影響h_i?能否通過控制初始化去控制h_i?

論文《Improving Deep Transformer with Depth-Scaled Initialization and Merged Attention》討論了初始化對Transformer各層方差的影響,最終緩解梯度消失的問題。從這個角度講,Transformer底層的頭方差大是因?yàn)門ransformer存在的梯度消失問題,也就是說,并不是模型自己覺得底層的方差大是好的,而是自己沒有辦法讓它變好。所以,合理的初始化應(yīng)該可以減少底層頭的方差,提高效果。

為什么Transformer 需要進(jìn)行 Multi-head Attention?整體來看:

Multi-Head其實(shí)不是必須的,去掉一些頭效果依然有不錯的效果(而且效果下降可能是因?yàn)閰?shù)量下降),這是因?yàn)樵陬^足夠的情況下,這些頭已經(jīng)能夠有關(guān)注位置信息、關(guān)注語法信息、關(guān)注罕見詞的能力了,再多一些頭,無非是一種enhance或noise而已。

self-attention 為什么它能發(fā)揮如此大的作用

  • self-attention 是一種自身和自身相關(guān)聯(lián)的 attention 機(jī)制,這樣能夠得到一個更好的 representation 來表達(dá)自身;self-attention 可以捕獲同一個句子中單詞之間的一些句法特征(比如圖 1 展示的有一定距離的短語結(jié)構(gòu))或者語義特征。
  • 引入 Self Attention 后會更容易捕獲句子中長距離的相互依賴的特征,因?yàn)槿绻?RNN 或者 LSTM,需要依次序序列計算,對于遠(yuǎn)距離的相互依賴的特征,要經(jīng)過若干時間步步驟的信息累積才能將兩者聯(lián)系起來,而距離越遠(yuǎn),有效捕獲的可能性越小。
  • Self Attention 對于增加計算的并行性也有直接幫助作用。

殘差結(jié)構(gòu)意義

防止梯度消失,幫助深層網(wǎng)絡(luò)訓(xùn)練

具體理論推導(dǎo)可以看看殘差網(wǎng)絡(luò)解決了什么,為什么有效?

Transformer中的Mask矩陣已經(jīng)有順序了,能去掉position embedding嗎?

Transformer中的Mask矩陣已經(jīng)有順序了,能去掉position embedding嗎?
總結(jié)一下,需要根據(jù)具體任務(wù)看position embedding,如果是序列任務(wù),可能最好還是保留,如果對位置不敏感,去掉也是可以的。

另外,也有論文證明去掉position embedding在語言建模上提升性能

為什么說 Transformer 可以代替 seq2seq?

出處: 關(guān)于Transformer,面試官們都怎么問
簡單點(diǎn)說,一方面是想想seq2seq有什么缺點(diǎn),另一方面是transformer有什么優(yōu)點(diǎn)?

  • seq2seq缺少attention,不能關(guān)注重點(diǎn)。encoder的輸出是所有信息都壓縮到一個向量中,在序列比較長的時候,會損失encoder的一些信息,decoder不能夠關(guān)注到其想要關(guān)注的信息。(后來有帶attention+seq2seq的改進(jìn))
  • transformer表達(dá)能力更強(qiáng),通過自身和自身的關(guān)聯(lián),增強(qiáng)自身的表達(dá)度
  • transformer有并行能力

這里用代替這個詞略顯不妥當(dāng),seq2seq 雖已老,但始終還是有其用武之地,seq2seq 最大的問題在于「將 Encoder 端的所有信息壓縮到一個固定長度的向量中」,并將其作為 Decoder 端首個隱藏狀態(tài)的輸入,來預(yù)測 Decoder 端第一個單詞(token)的隱藏狀態(tài)。在輸入序列比較長的時候,這樣做顯然會損失 Encoder 端的很多信息,而且這樣一股腦的把該固定向量送入 Decoder 端,Decoder 端不能夠關(guān)注到其想要關(guān)注的信息。

上述兩點(diǎn)都是 seq2seq 模型的缺點(diǎn),后續(xù)論文對這兩點(diǎn)有所改進(jìn),如著名的Neural Machine Translation by Jointly Learning to Align and Translate,雖然確確實(shí)實(shí)對 seq2seq 模型有了實(shí)質(zhì)性的改進(jìn),但是由于主體模型仍然為 RNN(LSTM)系列的模型,因此模型的并行能力還是受限,而 transformer 不但對 seq2seq 模型這兩點(diǎn)缺點(diǎn)有了實(shí)質(zhì)性的改進(jìn)(多頭交互式 attention 模塊),而且還引入了 self-attention 模塊,讓源序列和目標(biāo)序列首先“自關(guān)聯(lián)”起來,這樣的話,源序列和目標(biāo)序列自身的 embedding 表示所蘊(yùn)含的信息更加豐富,而且后續(xù)的 FFN 層也增強(qiáng)了模型的表達(dá)能力(ACL 2018 會議上有論文對 Self-Attention 和 FFN 等模塊都有實(shí)驗(yàn)分析,見論文:How Much Attention Do You Need?A Granular Analysis of Neural Machine Translation Architectures),并且 Transformer 并行計算的能力是遠(yuǎn)遠(yuǎn)超過 seq2seq 系列的模型,因此我認(rèn)為這是 transformer 優(yōu)于 seq2seq 模型的地方。

Transformer 相比于 RNN/LSTM,有什么優(yōu)勢?為什么?

  • RNN 系列的模型,并行計算能力很差
    RNN 系列的模型T時刻隱層狀態(tài)的計算,依賴兩個輸入,一個是T時刻的句子輸入單詞X_t,另一個是T-1時刻的隱層狀態(tài)的輸出S_{t-1},這是最能體現(xiàn) RNN 本質(zhì)特征的一點(diǎn),RNN 的歷史信息是通過這個信息傳輸渠道往后傳輸?shù)?。?RNN 并行計算的問題就出在這里,因?yàn)?img doc360img-src='https://math.jianshu.com/math?formula=T' src="http://pubimage.360doc.com/wz/default.gif" alt="T" mathimg="1">時刻的計算依賴T-1時刻的隱層計算結(jié)果,而T-1時刻的計算依賴T-2時刻的隱層計算結(jié)果,如此下去就形成了所謂的序列依賴關(guān)系。
  • Transformer 的特征抽取能力比 RNN 系列的模型要好
    上述結(jié)論是通過一些主流的實(shí)驗(yàn)來說明的,并不是嚴(yán)格的理論證明,具體實(shí)驗(yàn)對比可以參見:
    放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較
    但是值得注意的是,并不是說 Transformer 就能夠完全替代 RNN 系列的模型了,任何模型都有其適用范圍,同樣的,RNN 系列模型在很多任務(wù)上還是首選,熟悉各種模型的內(nèi)部原理,知其然且知其所以然,才能遇到新任務(wù)時,快速分析這時候該用什么樣的模型,該怎么做好。

學(xué)習(xí)資料

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多