閱讀筆記 - The Devil in Linear Transformer

來源:https://www.researchgate.net/publication/364419868_The_Devil_in_Linear_Transformer
代碼:https://github.com/OpenNLPLab/Transnormer


這篇文章的目的是優(yōu)化線性transformer,線性transformer相對于標(biāo)準(zhǔn)transformer能夠?qū)⒂?jì)算復(fù)雜度從 O(N^2C) 降到O(NC^2). 但線性transformer 相對于標(biāo)準(zhǔn)transformer 往往存在著較明顯的指標(biāo)gap程储。作者分析認(rèn)為原因有兩點(diǎn):

  • unbounded gradients。無邊界梯度摊灭,會導(dǎo)致模型在訓(xùn)練時(shí)不穩(wěn)定败徊,收斂不好;
  • attention dilution萝挤。注意力稀釋根欧,transformer在lower level時(shí)應(yīng)該更關(guān)注局部特征端蛆,而higher level更關(guān)注全局特征,但線性transformer中的attention往往weight 更均勻化今豆,不能聚焦在local區(qū)域上,因此稱為attention稀釋异逐。
    針對于上述兩點(diǎn)插掂,作者提出了NormAttention和DiagAttention兩個(gè)模塊,形成NormFormer的結(jié)構(gòu)酝润。

1.The devil in linear attention

我們首先來看一下作者分析的線性transformer存在的兩點(diǎn)缺陷的結(jié)論是怎么來的璃弄。

1.1 Unbounded gradients

在標(biāo)準(zhǔn)的attention結(jié)構(gòu)中
O = \text{softmax}(QK^T/\sqrt{D})V, ~~ Q=XW_Q, K=XW_K, V=XW_V
正是這里的QK^T 帶來的O(N^C)的計(jì)算復(fù)雜度夏块。而為了解決這個(gè)問題目前主要包含兩類: 基于pattern的方法和基于kernel的方法。
基于pattern的方式主要是通過一些先驗(yàn)篩選key或query浑塞,降低計(jì)算復(fù)雜度患民;而基于kernel的方法則是本文提到的線性transformer,通過核函數(shù)去取代softmax仅孩,從而能夠通過矩陣乘法結(jié)合律降低計(jì)算復(fù)雜度。
那么來看一下計(jì)算attention時(shí)京腥,vanilla和linear transformer的統(tǒng)一形式:
p_{ij} = \frac{f(s_{ij})}{\sum_{k-1}^n f(s_{ik})}
對于vanilla transformer而言溅蛉, s_{ij} = q_i^Tk_j/\sqrtvlfdhzt, ~~ f(x) = \text{exp}(x), 對于linear transformer可以表示為 s_{ij} = \phi(q_i)\phi(k_j)^T,~~f(x)=x. 于是可以比較一下兩者的梯度:
vanilla attention: \frac{\partial p_{ij}}{\partial s_{ik}} = \frac{f'(s_{ik})}{f(s_{ik})}\big(1_{j=k}p_{ij} - p_{ij}p_{ik}\big), 這里推理的時(shí)候注意湊p_{ij}, p_{ik}
f'(x) = \text{exp}(x) = f(x) \\ \frac{\partial p_{ij}}{\partial s_{ik}} = 1_{j=k}p_{ij} - p_{ij}p_{ik} \\ = \begin{cases} p_{ik} - p_{ij}p_{ik}\in [0, 1/4], &j=k \\ - p_{ij}p_{ik}\in [-1/4, 0],& j\neq k\end{cases}
這里推理的時(shí)候只有p_{ik} = p_{ij} 時(shí)邊界值成立欠气,所以最終
\Big \vert \frac{\partial p_{ij}}{\partial s_{ik}}\Big\vert \le \frac{1}{4}

linear attention: 線性attention的關(guān)鍵在于f'(x) = 1, 因此
f'(x) =1 \\ \frac{\partial p_{ij}}{\partial s_{ik}} = \frac{1}{s_{ik}} \big(1_{j=k}p_{ij} - p_{ij}p_{ik}\big) \\ = \frac{1}{s_{ik}}\begin{cases} p_{ik} - p_{ij}p_{ik}, &j=k \\ - p_{ij}p_{ik},& j\neq k\end{cases} 即预柒,\Big \vert \frac{\partial p_{ij}}{\partial s_{ik}}\Big\vert \le \frac{1}{4|s_{ik}|}.
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=s_%7Bik%7D%20%3D%20%5Cphi(q_i)%5Cphi(q_k)%5ET" alt="s_{ik} = \phi(q_i)\phi(q_k)^T" mathimg="1"> 大小是不確定的袁梗,所以相當(dāng)于linear attention的梯度是無邊界的。這就會導(dǎo)致收斂不穩(wěn)定淋袖,收斂難度大等問題锯梁。

1.2 Attention dilution

注意力稀釋方面,作者直接評估了不同level上拜姿,每一個(gè)query在鄰域內(nèi)的其他query上的attention的權(quán)重占比冯遂,這里需要注意的是蛤肌,query之間是有序的,即對于NLP或者featmap而言裸准,是有固定結(jié)構(gòu)的,才可以這么評估盐肃。l(i, r, N)表示第i個(gè)query在其rN個(gè)鄰域query上的attention之和,可以看下圖推盛,a圖中transformer和linear transformer相比谦铃,顯然linear transformer的聚集度要小很多驹闰。這就是所謂的注意力稀釋。

image.png

2. architecture

針對于1中的兩個(gè)問題师妙,有針對性的設(shè)計(jì)了兩個(gè)模塊骡显。

2.1 NormAttention.

作者提出的解決方案
O = Q(K^TV) \\ O_{norm} = \text{XNorm}(Q(K^TV)),
這里的XNorm 可以是Layernorm,也可以是 RMSNorm。注意這里的Q溜歪,和K是有激活函數(shù)的许蓖,公式?jīng)]寫,但圖中畫了自阱。
\text{RMSNorm}(x) = \frac{x}{\sqrt{\sigma^2 + \epsilon}} \\ \sigma^2 = \sum_{i=1}^d x_i^2 /d , \epsilon > 0,
文章證明這個(gè)做法梯度是有上界的米酬。附錄的證明過程有點(diǎn)復(fù)雜。

2.2 DiagAttention

這個(gè)模塊其實(shí)就是一種基于pattern的attention加派,將query按距離劃分不重疊的window跳芳,每個(gè)window內(nèi)進(jìn)行 attention的計(jì)算。奇怪的是 這里的attention使用的都是vanilla attention娄琉。

下圖是文章方法TransNormer的結(jié)構(gòu):


image.png

3. 實(shí)驗(yàn)

實(shí)驗(yàn)都是在NLP上做的孽水,不大了解,因此不做分析丧慈,這里只看下消融實(shí)驗(yàn)的結(jié)論主卫。

image.png

table8. 表明早期的stage應(yīng)當(dāng)更關(guān)注局部特征,而后期的stage則應(yīng)該更關(guān)注全局信息完域。
table9. 早期適合使用blockattn瘩将,后期適合使用normattn
table10. FFN中作者對比了FFN和GLU的結(jié)果,發(fā)現(xiàn)GLU效果會更好一些肠仪。
image.png

table11.表明diagattn中的window的大小异旧,這個(gè)其實(shí)有有點(diǎn)說不通提佣,如果DiagAttn使用的linear attention, block size越大不是attention 稀釋的越嚴(yán)重嗎潮针? 這個(gè)地方DiagAttn使用的應(yīng)該都是vanilla attention倚喂,包括softmax attention和ReLA attention.

4. 結(jié)論

本文提出的norm attention其實(shí)在很多其他方法中都見過,而且所謂的diag attention使用的還是vanilla attention雳攘,并沒有把linear attention應(yīng)用到diag block里,感覺不是很充實(shí)吨灭。值得學(xué)習(xí)的是本文中提出的梯度分析的方法刑巧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吠冤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌郭变,老刑警劉巖涯保,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夕春,死亡現(xiàn)場離奇詭異,居然都是意外死亡及志,警方通過查閱死者的電腦和手機(jī)速侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勇劣,“玉大人潭枣,你說我怎么就攤上這事幻捏。” “怎么了谐岁?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵伊佃,是天一觀的道長沛善。 經(jīng)常有香客問我,道長帅涂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任斯议,我火速辦了婚禮醇锚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恋昼。我一直安慰自己求晶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布矩屁。 她就那樣靜靜地躺著吝秕,像睡著了一般空幻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秕铛,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天但两,我揣著相機(jī)與錄音,去河邊找鬼绽快。 笑死紧阔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的活孩。 我是一名探鬼主播秫筏,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼航夺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起始衅,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汛闸,失蹤者是張志新(化名)和其女友劉穎艺骂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體别伏,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忧额,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年睦番,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巩检。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡示启,死狀恐怖丑搔,靈堂內(nèi)的尸體忽然破棺而出提揍,到底是詐尸還是另有隱情,我是刑警寧澤劳跃,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布刨仑,位于F島的核電站夹姥,受9級特大地震影響辙诞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旦部,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一士八、第九天 我趴在偏房一處隱蔽的房頂上張望梁呈。 院中可真熱鬧,春花似錦官卡、人聲如沸味抖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽熔脂。三九已至,卻和暖如春旬薯,著一層夾襖步出監(jiān)牢的瞬間适秩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工骤公, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扬跋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓洒试,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卒煞。 傳聞我的和親對象是個(gè)殘疾皇子捕犬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容