Transformer家族4 -- 通用性優化(Universal-Transformer)


系列文章,請多關注
Transformer家族1 – Transformer詳解和源碼分析
Transformer家族2 – 編碼長度優化(Transformer-XL、Longformer)
Transformer家族3 – 計算效率優化(Adaptive-Span、Reformer、Lite-Transformer)
Transformer家族4 – 通用性優化(Universal-Transformer)
Transformer家族5 – 推理加速(Faster-Transformer、TurboTransformers)
NLP預訓練模型1 – 綜述

1 背景

之前講Transformer的時候,也提到過它的通用性的缺點。相比於RNN,Transformer不是圖靈完備的,雖然大多數任務都是吊打RNN,但在某些看起來極爲簡單的任務上,卻表現很差,比如字符串拷貝等。這個問題其實也不算大,但谷歌還是給出了他的解決方案,也就是Universal Transformer。這篇看看就好了,個人感覺實際應用中作用有限。

2 Universal-Transformer

在這裏插入圖片描述論文信息:2018年7月,谷歌,ICLR2019
論文地址 https://arxiv.org/abs/1807.03819
代碼和模型地址 https://github.com/tensorflow/tensor2tensor

2.1 爲什麼需要Universal-Transformer

主要的出發點是原版Transformer不是圖靈完備的,有些很簡單的任務表現很差,比如字符串拷貝。序列任務還是比較偏好於迭代和遞歸變換,RNN正好滿足了這一點,而Transformer不滿足。這一點文章稱作歸納偏置(Inductive Bias)。深度學習的歸納偏置是什麼?

2.2 實現方案

模型結構

在這裏插入圖片描述
如上所示爲Universal-Transformer的結構,仍然爲一個基於multiHead self-attention的seq2seq,幾點不同

  1. 引入了時間步step,從而實現了循環遞歸。除了第一次是原始信息作爲輸入,之後都是由前一個step的輸出作爲後一個的輸入。
  2. Feed-forward換成了Transition函數。根據task不同,可選擇separable convolution分解卷積和fully-connected neural network全連接神經網絡。
  3. 時間和位置編碼,TimeStep embedding和Position embedding,新引入了TimeStep embedding,二者的編碼公式和Transformer中的位置編碼很像,如下

在這裏插入圖片描述

Adaptive Computation Time(ACT) 自適應計算時間

前人已經提到過ACT了,作者在模型中引用了。序列問題中,有些詞語比其他的更模糊。他們需要進行更多次的計算。Universal-Transformer利用了ACT機制,可以對每個token設置自適應計算時間。模型會動態調整每個位置所需的計算steps。當某個位置停止計算後,直接copy它的隱狀態到下一step。當所有位置都停止計算後,整個過程才停止。在這裏插入圖片描述
如上,不同位置token所需的計算steps是不同的。

2.3 實驗結果

字符串任務

在這裏插入圖片描述字符串複製、翻轉、添加操作的效果。可以發現

  1. Transformer效果確實比較差,比LSTM差很多。這也驗證了Transformer通用性確實有些問題,也就是本文的出發點
  2. Universal-Transformer效果很好,超過LSTM很多,成功解決了原版Transformer的問題

機器翻譯

在這裏插入圖片描述機器翻譯上的結果,Universal-Transformer的BLEU比原版Transformer提高了0.9%


系列文章,請多關注
Transformer家族1 – Transformer詳解和源碼分析
Transformer家族2 – 編碼長度優化(Transformer-XL、Longformer)
Transformer家族3 – 計算效率優化(Adaptive-Span、Reformer、Lite-Transformer)
Transformer家族4 – 通用性優化(Universal-Transformer)
Transformer家族5 – 推理加速(Faster-Transformer、TurboTransformers)
NLP預訓練模型1 – 綜述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章