“原來你還關(guān)注了這個專欄”
“這個博主還能敲鍵盤呀”
沒錯,時隔半年,終于終于要更新了 ??
(主要是我太咸魚了
這次主要討論一下如何增強(qiáng) Transformer 結(jié)構(gòu)對獲取相對位置信息的能力(即 Relative Position Embedding in Transformer Architecture)。
Background
事實(shí)上,Transformer 是一種建立在 RNN 之上的結(jié)構(gòu),其主要目的是在提升并行能力的基礎(chǔ)上保留獲取長程依賴的能力。
MultiHeadAtt 獲取多種 token 與 token 之間的關(guān)聯(lián)度,F(xiàn)FN 通過一個超高緯的空間來保存 memory。
通過各種 Mask(Regressive 之類的) Transformer 可以做到不泄露信息情況下的并行。
在實(shí)際實(shí)驗(yàn)中,速度可能會比 LSTM 還快。
為了補(bǔ)救,Transformer 在輸入的 Word Embedding 之上,直接疊加了位置編碼(可以是 trainable 的,但實(shí)驗(yàn)結(jié)果顯示 train 不 train 效果差不多,在 Vanilla Transformer 中位置編碼是 fixed 的)。
但事實(shí)上這種 Position Encoder 或者叫做 Position Embedding 在 word embedding 上直接疊加能帶來的只有位置的絕對信息
(a) 與位置無關(guān),(b),(c) 只有絕對位置信息, 而(d)項(xiàng)實(shí)際上也不含有相對位置信息。
回顧 PE 的定義,由一組 sin,cos 組成,為了構(gòu)造一個 d 維的位置編碼(與 word embed 相同維度,分母的次方逐漸增大)
于是可證只與相對距離 t 有關(guān)。
但實(shí)際上在與
之間還有兩個線性 W 系數(shù)的乘積(可等效于一個線性系數(shù))。
由隨機(jī)初始化 W 之后的 d 項(xiàng)與相對距離 k 之間的關(guān)系圖可知,W 項(xiàng)的擾動使得原有的 Attention 失去了相對位置之間的信息。
這就使得 Transformer 結(jié)構(gòu)在一些特別依賴句內(nèi) token 間相對位置關(guān)系的任務(wù)效果提升沒有那么大。
本文就這個問題,介紹四篇工作。
- NAACL 2018. Self-Attention with Relative Position Representations.
- ACL 2019. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context.
- -. TENER: Adapting Transformer Encoder for Named Entity Recognition.
- ICLR 2020. Encoding word order in complex embeddings.
改變 Attention 計(jì)算項(xiàng)
既然是在 Attention bias 計(jì)算中丟失了相對位置信息,一個很 Naive 的想法就是在 Attention bias 計(jì)算時加回去。
Self-Attention with Relative Position Representations.
18 年的 NAACL(那就是 17 年底的工作),文章是一篇短文,Peter Shaw, Jakob Uszkoreit, Ashish Vaswani 看名字是發(fā) Transformer 的那批人(想來其他人也不能在那么短時間有那么深的思考 ??).
他們分別在 QK 乘積計(jì)算 Attention bias 的時候和 SoftMax 之后在 Value 后面兩處地方加上了一個相對編碼(兩處參數(shù)不共享)。
為了降低復(fù)雜度,在不同 head 之間共享了參數(shù)。
實(shí)驗(yàn)顯示,在 WMT14 英德數(shù)據(jù)集上 base model BLEU 提升了 0.3, big model 提升了 1.3。
Ablation 實(shí)驗(yàn)中,改變最大位置距離 k,顯示 k 從 0-4 增大的過程 performance 有明顯的提升,之后再增大 k 提升不明顯。
Attention bias 中的相對項(xiàng)提高更多的 performance, 而 SoftMax 之后再 Value 上加的那個相對項(xiàng)提升的性能略少。
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context.
Transformer-XL 的工作現(xiàn)在可以稱之上開創(chuàng)性的了。
除卻遞歸更新 blank 的過程,relative position embedding 也是論文的一大亮點(diǎn).
可能作者在思考的過程中更多是在 recurrent 是 PE 重疊造成的偏移角度出發(fā)。
但實(shí)際上 relative 的改動對于模型獲得句內(nèi)細(xì)粒度層次的信息也是很有幫助的。
與 NAACL18 那篇不同的地方,Transformer-XL 舍棄了在 SoftMax 之后再疊加 Rij。
另外把 Attention Bias 中,另外兩項(xiàng)因?yàn)橐?PE 產(chǎn)生的表征絕對位置信息的兩項(xiàng)替換成不包含位置信息的一維向量(這里專門為前面 recurrent 模式設(shè)計(jì)的,感覺如果不搭配 Transformer-XL 使用的話這個改動并不一定是最合適的)。
除此之外,為了避免相對引入的巨大計(jì)算量,利用類似 AES 中的 shift 操作可以把復(fù)雜度降到線性。
通過 Ablation 實(shí)驗(yàn)可以看出相對于 NAACL18 的改進(jìn)能顯著提升效果。
另外通過 RECL 實(shí)驗(yàn)也能看出 relative PE 對模型的長程能力有所幫助。
RECL 是一個逼近實(shí)驗(yàn),通過測量上下文長度為 c + △,相對長度為 c 時最小 loss 的變化率。
當(dāng)變化率低于一個閾值的時候就說明大于長度 c 的信息對模型 performance 提升幫助不大。
TENER: Adapting Transformer Encoder for Named Entity Recognition
這篇是復(fù)旦邱老師實(shí)驗(yàn)室的工作。
在 Relative PE 計(jì)算上的 InSight 不大,硬要說的話可能是減少了 Key 前面的線性項(xiàng)。
實(shí)驗(yàn)是在中文 NER 上做的一些測試,可能看出提升的不是特別明顯,尤其是在 MSRA 上還是鈺穎姐和 guoxin 的那篇效果好。
(感覺 NER topic 中 Relative PE 還是有些工作可以繼續(xù)做下去的
Encoding word order in complex embeddings
除了上面一系列從 Attention bias 出發(fā)的角度,還有 dalao 從 PE 與 WE 結(jié)合方式角度出發(fā)做的工作。
從抽象層次看,前面的方法都是在補(bǔ)救因?yàn)椋╓E+PE)乘積項(xiàng)造成的丟失相對位置信息。
如果 WE 和 PE 的結(jié)合方式不是加性呢。
今年 ICLR 的有一篇工作就是從這個角度出發(fā),將 WE 于 PE 組合分解成獨(dú)立的連續(xù)函數(shù)。
這樣在之后的 Attention Bias 計(jì)算時也不會丟失 Position 相對信息。
為了達(dá)成這個目的,就需要找到一種變換,使得對于任意位置 pos,都有, 為了降低難度把標(biāo)準(zhǔn)降低成找到一種線性變換 Transform。
而我們的 Embed 除了上面的性質(zhì)之外應(yīng)該還是有界的。
這篇文章證明在滿足上述條件下,Transform 的唯一解是復(fù)數(shù)域中的, 且 z1 的幅值小于 1。
(這個證明也是有、簡單,reviewer 的說法就是有、優(yōu)美
根據(jù)歐拉公式,可以進(jìn)一步對上述式子進(jìn)行化簡
為了偷懶,把 r1 設(shè)成 1, 而的幅值等于 1,就恒滿足 r1 的限定。
于是,進(jìn)一步化簡為
這就是標(biāo)標(biāo)準(zhǔn)準(zhǔn)的虛單位圓的形式,r 為半徑,為初始幅角,
為頻率,逆時針旋轉(zhuǎn)。
這個式子又可以化成 WE 與 PE 的多項(xiàng)式乘積,其中兩者所占系數(shù)取決于學(xué)習(xí)到的系數(shù)。
于是這相當(dāng)于一個自適應(yīng)的調(diào)節(jié) WE 和 PE 占比的模式。
實(shí)際上我們只需要去學(xué)習(xí)幅值 r, 頻率 w,初始幅角 (會造成參數(shù)量略微增大)
可以看出 Vanilla Transformer 中的 PE 是上式的一種特殊形式。
為了適應(yīng) Embedding 拓展到復(fù)數(shù)域,RNN,LSTM, Transformer 的計(jì)算也應(yīng)該要拓展到復(fù)數(shù)域.
實(shí)驗(yàn)部分做了 Text Classification, MT, LM 三個 task。
Text Classification 選了 4 個 sentiment analysis 數(shù)據(jù)集,一個主觀客觀分類,一個問題分類,共六個 benchmark。
Baseline 設(shè)置 1. without PE; 2. random PE and train; 3. 三角 PE; 4. r 由 pretrain 初始化,w 隨機(jī)初始化; 5. r 由 pretrain 初始化,w train;
可以看出 performance 中三角 PE 與 Train PE 幾乎沒什么區(qū)別,所以 Vanilla Transformer 使用 Fix 的 PE 也是有一定道理的。
Complex order 對模型有一定提升,但不是特別多。
然后為了降低參數(shù)量,嘗試了幾種參數(shù)共享的組合。
(參數(shù)量的增大主要是因?yàn)?Transformer 結(jié)構(gòu)擴(kuò)充到復(fù)數(shù)域,參數(shù)量增大了一倍。但參數(shù)增大與 prefermance 關(guān)聯(lián)度不大,共享 W 之后性能幾乎不變。
然后在 WMT16 英德和 text8 上測了在 MT 和 LM 上的性能,這兩部分性能提升還是很明顯的。尤其是 LM 在同等參數(shù)量下的對比試驗(yàn)。
(這篇的作者之前也發(fā)了幾篇關(guān)于復(fù)數(shù)域上 NLP 的應(yīng)用,之前模型的名字也很有意思 什么 CNM的 很真實(shí)
總的來說 自己的試驗(yàn)結(jié)果也顯示 RPE 對 Transformer 或者說 Self-Attention 的性能還是很有影響的,還是可以 follow 一些工作的。