Transformer結(jié)構(gòu)中獲得相對位置信息的探究

傳送一下
知乎

“原來你還關(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 上直接疊加能帶來的只有位置的絕對信息

image

(a) 與位置無關(guān),(b),(c) 只有絕對位置信息, 而(d)項(xiàng)實(shí)際上也不含有相對位置信息。

回顧 PE 的定義,由一組 sin,cos 組成,為了構(gòu)造一個 d 維的位置編碼(與 word embed 相同維度,分母的次方逐漸增大)

image

于是可證PE^T_{t+k}PE_t只與相對距離 t 有關(guān)。

image

但實(shí)際上在PE^T_{t+k}PE_t之間還有兩個線性 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ù)效果提升沒有那么大。

本文就這個問題,介紹四篇工作。

  1. NAACL 2018. Self-Attention with Relative Position Representations.
  2. ACL 2019. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context.
  3. -. TENER: Adapting Transformer Encoder for Named Entity Recognition.
  4. 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ù)不共享)。

image

為了降低復(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)提升的性能略少。

image

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ì)粒度層次的信息也是很有幫助的。

image

與 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ù)雜度降到線性。

image

通過 Ablation 實(shí)驗(yàn)可以看出相對于 NAACL18 的改進(jìn)能顯著提升效果。

image

另外通過 RECL 實(shí)驗(yàn)也能看出 relative PE 對模型的長程能力有所幫助。
RECL 是一個逼近實(shí)驗(yàn),通過測量上下文長度為 c + △,相對長度為 c 時最小 loss 的變化率。

當(dāng)變化率低于一個閾值的時候就說明大于長度 c 的信息對模型 performance 提升幫助不大。

image

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 的那篇效果好。

image

(感覺 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,都有g(pos+n) = \text{Transform}_n(g(pos)), 為了降低難度把標(biāo)準(zhǔn)降低成找到一種線性變換 Transform。

而我們的 Embed 除了上面的性質(zhì)之外應(yīng)該還是有界的。

這篇文章證明在滿足上述條件下,Transform 的唯一解是復(fù)數(shù)域中的g(pos)=z_{2} z_{1}^{pos}, 且 z1 的幅值小于 1。

(這個證明也是有、簡單,reviewer 的說法就是有、優(yōu)美

根據(jù)歐拉公式,可以進(jìn)一步對上述式子進(jìn)行化簡
g(\text { pos })=z_{2} z_{1}^{\text {pos }}=r_{2} e^{i \theta_{2}}\left(r_{1} e^{i \theta_{1}}\right)^{\text {pos }}=r_{2} r_{1}^{\text {pos }} e^{i\left(\theta_{2}+\theta_{1} \text { pos }\right)}

為了偷懶,把 r1 設(shè)成 1, 而e^{ix}的幅值等于 1,就恒滿足 r1 的限定。

于是,進(jìn)一步化簡為 g(\mathrm{pos})=r e^{i(\omega \mathrm{pos}+\theta)}

這就是標(biāo)標(biāo)準(zhǔn)準(zhǔn)的虛單位圓的形式,r 為半徑,\theta為初始幅角,\frac{\omega}{2\pi} 為頻率,逆時針旋轉(zhuǎn)。

這個式子又可以化成f(j, \text { pos })=g_{w e}(j) \odot g_{p e}(j, \text { pos }) WE 與 PE 的多項(xiàng)式乘積,其中兩者所占系數(shù)取決于學(xué)習(xí)到的系數(shù)。

于是這相當(dāng)于一個自適應(yīng)的調(diào)節(jié) WE 和 PE 占比的模式。

實(shí)際上我們只需要去學(xué)習(xí)幅值 r, 頻率 w,初始幅角\theta (會造成參數(shù)量略微增大)

可以看出 Vanilla Transformer 中的 PE 是上式的一種特殊形式。

為了適應(yīng) Embedding 拓展到復(fù)數(shù)域,RNN,LSTM, Transformer 的計(jì)算也應(yīng)該要拓展到復(fù)數(shù)域.

image

實(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ī)初始化(-\pi, \pi); 5. r 由 pretrain 初始化,w train;

image

可以看出 performance 中三角 PE 與 Train PE 幾乎沒什么區(qū)別,所以 Vanilla Transformer 使用 Fix 的 PE 也是有一定道理的。

Complex order 對模型有一定提升,但不是特別多。

image

然后為了降低參數(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)。

image

(這篇的作者之前也發(fā)了幾篇關(guān)于復(fù)數(shù)域上 NLP 的應(yīng)用,之前模型的名字也很有意思 什么 CNM的 很真實(shí)

總的來說 自己的試驗(yàn)結(jié)果也顯示 RPE 對 Transformer 或者說 Self-Attention 的性能還是很有影響的,還是可以 follow 一些工作的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評論 2 374

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