1. Self Attention的時候 Q K T QK^T QKT之后要除以 d ? \sqrt{d}? d??
參考蘇劍林大神:
-
淺談Transformer的初始化、參數化與標準化
- 模型初始化:介紹了常用的采樣分布,包括正態分布、均勻分布和截尾正態分布。并從代數角度理解初始化方法,提出用二階矩來衡量指標是否“消失”或者“爆炸”,推導出Xavier初始化和He初始化的方法。
- 激活函數:分析了激活函數對模型初始化的影響,介紹了“微調激活函數的定義”的方法,以sigmoid函數為例,說明了如何通過微調激活函數來保持二階矩不變。還介紹了selu激活函數,它是基于同樣思路進行“微調”后的elu函數。
- 直接標準化:介紹了Batch Normalization、Instance Normalization、Layer Normalization等標準化方法,說明了它們的作用原理和區別。并指出近來的一些工作逐漸嘗試去掉center這一步,甚至有些工作的結果顯示去掉center這一步后性能還略有提升。類比Stylegan2 中使用去掉 center之后的 weight demodulation 來替代 Instance Nomalization;RMS Norm為什么比 Layer Normalize 更快,效果也基本一致。
- NTK參數化:介紹了NTK參數化的方法,它可以將所有參數都用標準方差初始化,但依然保持二階矩不變。并討論了NTK參數化跟直接用Xavier初始化相比的好處,以及Attention中除以 d \sqrt{d} d?的重要性。在結果上預先使用準方差標準化,使的參數初始化可以直接從符合0~1 分布的高斯分布中隨機采樣。也解釋到了 T5 為什么可以不除以 d \sqrt{d} d?。
- 殘差連接:討論了殘差 x + F ( x ) x+F(x) x+F(x)的相關設計,指出殘差會進一步放大方差,需要想相應的策略縮小其方差。介紹了Post Norm、Pre Norm、SkipInit、ReZero、Fixup等方法,并分析了它們的優缺點。提出 x + α t ? F ( x ) x+\alpha_t*F(x) x+αt??F(x),可以在訓練過程中逐步增加 α t \alpha_t αt?的大小,直到為 1。
-
從熵不變性看Attention的Scale操作
- 全文總結:本文從熵不變性的角度重新推導了Transformer架構中Scaled Dot-Product Attention的縮放因子,得到了一個新的縮放因子κlog?nd。初步的實驗結果顯示,新的縮放因子不改變已有的訓練性能,并且對長度外推具有更好的結果。
重要亮點: - Transformer注意力機制:當前Transformer架構中使用最多的注意力機制是Scaled Dot-Product Attention,其中“Scaled”是因為在Q,K轉置相乘之后還要除以一個 d \sqrt{d} d?再做Softmax。
- 熵不變性:為了使得模型結果能夠更好地泛化到未知長度,Attention機制的設計應該使得ai,j盡量具備熵不變性。
- 新的縮放因子:根據熵不變性以及一些合理的假設,我們可以得到一個新的縮放因子 κ log ? ? n d \frac{κ\log?n}{d} dκlog?n?,從而得到一種Scaled Dot-Product Attention。
- 實驗結果:在與訓練長度一致的情況下,新的縮放因子Attention-E和常規的Scaled Dot-Product Attention Attention-O的效果是很接近的,但是外推到更大的測試長度時,則明顯拉開了差距。
- 相關結果:在閱讀ACL2022的投稿論文時,發現上面有一篇《Overcoming a Theoretical Limitation of Self-Attention》,給出了相近的結果。
- 全文總結:本文從熵不變性的角度重新推導了Transformer架構中Scaled Dot-Product Attention的縮放因子,得到了一個新的縮放因子κlog?nd。初步的實驗結果顯示,新的縮放因子不改變已有的訓練性能,并且對長度外推具有更好的結果。
-
從梯度最大化看Attention的Scale操作
- Attention Scale因子的一般解釋:如果不除以d,初始的Attention就會很接近one hot分布,造成梯度消失,導致模型訓練不起來。
- 計算梯度:作者定義了Softmax梯度的優化目標,從最大化該目標的角度探討了Scale因子的最優值。
- 正態分布:作者通過遍歷一些n,然后數值求解出取最大值時的α?,發現一定范圍內最優點α?與n大致滿足 α ? ≈ 0.84 log ? ? n α^*≈0.84\sqrt{\log?n} α?≈0.84log?n?的關系。
- 余弦分布:作者通過數值求解最大值,然后再擬合,發現 α ? ≈ 3.5 log ? ? n α^*≈3.5\sqrt{\log?n} α?≈3.5log?n?擬合得也不錯。
- 相關思考:對于雙向Attention(Encoder)來說,假設訓練樣本長度相同,那么n就是一個常數,我們可以根據n算得相應的最優α,然后固定在模型中即可;但是對于單向Attention(Decoder)來說,每個token的n實際上都不一樣(位置id加1),所以理論上無法做到對所有token都最大化式(3),不過由于α?關于n的變化較慢,所以取一個差不多的值就行了。
- 本文從梯度的角度探討了Attention Scale因子的選擇問題,相關結果既可以用來改進Attention的Scale因子,也可以用來解釋cos相似度的對比學習的溫度參數。
匯總一下:如果假設均值為 0,方差為 1 的 Attention Score 會帶來更好的效果,除以 d \sqrt{d} d?會使的 q k T qk^T qkT之后的Attention Score方差為1。從熵不變性來考慮,給有助于提高模型在長度外推方面的表現,增強泛化能力。從Softmax梯度的優化目標梯度最大化來看的話,這個 scale 應該為 α d \frac{\alpha}{\sqrt{d}} d?α?。相當于在討論給 softmax 激活函數怎么加上一個合適的溫度系數!