Self-attention是建立語言及圖像生成模型的有效機制,其通過比較當前時間步中的各個元素钠怯,來決定上下文元素的重要程度。文中提出使用lightweight convolutions替代self-attention,結(jié)果表現(xiàn)的就很不錯芜辕。隨后提出了dynamic convolutions,此時卷積核將在當前時間步中通過函數(shù)生成簸喂,此方法與self-attention相比有較大提升毙死。并且這種方法所需要的計算量與輸入的長度呈線性增長,而自注意力則是呈二次增長的喻鳄。此方法在WMT’14 English-German 的測試集上的BLEU得分為29.7扼倘。
論文地址:
https://arxiv.org/abs/1901.10430
代碼地址:
https://github.com/pytorch/fairseq
引言
Dynamic convolution每個channel獨立進行卷積,注意到放到NLP任務(wù)上channel是指embedding的每一維除呵。每一層都有固定的window size再菊,這和self-attention不同。self-attention是所有的context都進行交互颜曾,使其計算的復雜度與輸入長度呈二次增長關(guān)系纠拔,在對長句子的計算上將極具挑戰(zhàn)性。
模型
其中泛豪,GLU(Gate Linear Units):
Depthwise convolutions
傳統(tǒng)的卷積核如下:
如果稠诲,參數(shù)量為
,其中
為卷積核的寬度诡曙。
為降低參數(shù)臀叙,采用如下depthwise convolutions。
如圖所示价卤,匹耕,
,
荠雕,
稳其。
使用depthwise convolutions,可將參數(shù)量由降為
炸卑,其中
為卷積核的寬度既鞠。
Lightweight convolutions
如圖所示,盖文,
分割為3個區(qū)域嘱蛋,
與
相同顏色區(qū)域進行相乘,共享參數(shù)五续。
通過Weight sharing洒敏,參數(shù)的數(shù)量繼續(xù)下降為。
Softmax-normalization 對channel一維進行softmax疙驾,相當于歸一化每個詞的每一維的的重要性(比self-attention更精細)凶伙。實驗證明,如果沒有softmax沒辦法收斂它碎。
Dynamic convolution
在每一個時間步中函荣,通過函數(shù)動態(tài)生成卷積核显押。
其中,
是一個線性映射傻挂,其中權(quán)重
乘碑,
。
在動態(tài)生成卷積核時金拒,每個對應(yīng)的權(quán)重
兽肤,將在當前時間步中通過函數(shù)映射生成。其中绪抛,右側(cè)圖為幫助理解轿衔,實際計算中并未進行view步驟。
模型替換
模型在transformer中的位置如下圖所示:
如圖所示睦疫,在encoder端害驹,使用LightCov或DynamicConv替代Multi-Head Attention;在decoder端蛤育,LightCov或DynamicConv替代第一層的Masked Multi-Head Attention宛官,并且將Mask放入第二層的。
結(jié)論
1.Lightweight convolution的權(quán)重盡量少并且在不同的時間步中是不變的瓦糕,但是結(jié)果已經(jīng)與現(xiàn)有文獻最佳結(jié)果相當底洗。
2.Dynamic convolution在不同的時間步中生成相應(yīng)的權(quán)重,這點與self-attention相似咕娄,但是函數(shù)只有當前時間步有關(guān)而不是整個上下文亥揖。
3.Ligthweight convolution 和 dynamic convolution 在運行時間上都不self-attention快20%。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 掃碼識別關(guān)注圣勒,獲取更多新鮮論文解讀