Attention Is All You Need
要約
# Abstract
- 従来の系列変換モデルはRNNやCNNベースのEncoder-Decoder構造を使用していたが、本論文では再帰や畳み込みを完全に排除し、Attention機構のみに基づく新アーキテクチャ「Transformer」を提案
- WMT 2014 英独翻訳タスクで28.4 BLEU(既存最高を2 BLEU以上上回る)、英仏翻訳タスクで41.8 BLEUの新記録を達成
- 8 GPUで3.5日という短い訓練時間で最高性能を実現し、並列化が容易で訓練コストを大幅に削減
- 英語構文解析タスクにも適用し、限られた訓練データでも高い汎化性能を示した
# 1. Introduction
- RNN(LSTM、GRU)は系列モデリングと変換タスクの標準手法だが、計算が本質的に逐次的で並列化が困難
- Attention機構は入出力系列内の依存関係を距離に関係なくモデル化でき、様々なタスクで有効だが、多くの場合RNNと併用されていた
- 本論文では再帰を完全に排除し、Attention機構のみで入出力間の大域的依存関係を捉えるTransformerを提案し、8 P100 GPUで12時間の訓練で翻訳品質の最高性能を達成
# 2. Background
- Extended Neural GPU、ByteNet、ConvS2Sなどの先行研究はCNNを用いて並列計算を実現したが、離れた位置間の信号を関連付ける操作数が距離に応じて増加(ConvS2Sは線形、ByteNetは対数的)
- Transformerでは任意の2位置間を定数回の操作で接続可能(Multi-Head Attentionで解像度低下を補償)
- Self-attentionは読解、要約、テキスト含意など多様なタスクで成功しており、Transformerは系列整列RNNや畳み込みを使わずSelf-attentionのみで入出力表現を計算する初の変換モデル
# 3. Model Architecture
- Encoder-Decoder構造を採用し、入力系列を連続表現に変換し、そこから出力系列を自己回帰的に生成
- EncoderとDecoderの両方でスタックされたSelf-attentionと位置ごとの全結合層を使用
# 3.1 Encoder and Decoder Stacks
- Encoderは同一構造の6層からなり、各層はMulti-Head Self-AttentionとPosition-wise Feed-Forward Networkの2つのサブ層を持ち、残差接続とLayer Normalizationを適用
- Decoderも6層構造で、Encoder出力へのMulti-Head Attentionを追加した3つのサブ層を持つ
- DecoderのSelf-attentionではマスキングにより、位置iの予測が位置i未満の出力のみに依存するよう制約
# 3.2 Attention
- Attention関数はQuery、Key、Valueベクトルから出力を計算し、出力はValueの重み付き和(重みはQueryとKeyの互換性関数で計算)
# 3.2.1 Scaled Dot-Product Attention
- QueryとKeyの内積を計算し、√dkでスケーリングしてsoftmaxを適用し、Valueの重み付き和を得る
- 加法的Attentionと比較して、内積Attentionは高度に最適化された行列乗算を利用でき高速かつメモリ効率が良い
- 大きなdk値では内積が大きくなりsoftmaxの勾配が極めて小さくなるため、1/√dkでスケーリングして対処
# 3.2.2 Multi-Head Attention
- Query、Key、Valueを異なる学習済み線形射影でh回投影し、各投影版に並列でAttentionを適用後、結合して再度射影
- h=8の並列Attention層を使用し、dk=dv=64として、単一ヘッドの全次元Attentionと同等の計算コストを維持
- 複数ヘッドにより、モデルは異なる表現部分空間の異なる位置からの情報に同時に注目可能
# 3.2.3 Applications of Attention in our Model
- Encoder-Decoder Attention層ではQueryはDecoder前層から、Key/ValueはEncoder出力から取得し、Decoderが入力系列全体に注目可能
- EncoderのSelf-attention層では全てのKey、Value、Queryが前層出力から来て、各位置が前層の全位置に注目可能
- DecoderのSelf-attentionでは自己回帰性を保つため、マスキングにより現在位置以前のみに注目を制限
# 3.3 Position-wise Feed-Forward Networks
- 各層にはAttentionサブ層に加え、各位置に独立かつ同一に適用される全結合Feed-Forwardネットワークを含む
- 2つの線形変換とReLU活性化で構成:FFN(x) = max(0, xW1 + b1)W2 + b2
- 入出力次元はdmodel=512、内部層次元はdff=2048
# 3.4 Embeddings and Softmax
- 入出力トークンをdmodel次元ベクトルに変換する学習済みEmbeddingを使用
- 2つのEmbedding層とpre-softmax線形変換で同一の重み行列を共有し、Embedding層では重みを√dmodel倍
# 3.5 Positional Encoding
- 再帰も畳み込みも持たないため、系列の順序情報を注入するためPositional Encodingを入力Embeddingに加算
- 異なる周波数の正弦・余弦関数を使用:PE(pos,2i) = sin(pos/10000^(2i/dmodel))、PE(pos,2i+1) = cos(pos/10000^(2i/dmodel))
- 固定オフセットkに対しPE(pos+k)がPE(pos)の線形関数として表現できるため、相対位置による注目を学習しやすく、訓練時より長い系列への外挿も可能と仮定
# 4. Why Self-Attention
- 計算複雑性、並列化可能な計算量、長距離依存間のパス長の3つの観点でSelf-attention、Recurrent、Convolutional層を比較
- Self-attentionは全位置をO(1)の逐次操作で接続し、系列長nが表現次元dより小さい場合(機械翻訳の一般的なケース)、Recurrent層より高速
- Convolutional層はカーネル幅k<nの場合、全位置対を接続するのにO(n/k)またはO(logk(n))層が必要で、最長パスが増加
- Self-attentionは解釈可能性の向上にも寄与し、Attentionヘッドが異なるタスクを学習し、文の構文・意味構造に関連する振る舞いを示す
# 5. Training
- モデルの訓練体制について記述
# 5.1 Training Data and Batching
- WMT 2014英独データセット(約450万文対、BPEによる約37000トークンの共有語彙)で訓練
- 英仏は3600万文対のより大規模なデータセットを使用し、32000ワードピース語彙に分割
- 各訓練バッチは約25000ソーストークンと25000ターゲットトークンを含む文対を近似系列長でバッチ化
# 5.2 Hardware and Schedule
- 8 NVIDIA P100 GPUを搭載した1台のマシンで訓練
- ベースモデルは各訓練ステップ約0.4秒で、計100,000ステップ(12時間)訓練
- 大規模モデルはステップ時間1.0秒で、300,000ステップ(3.5日)訓練
# 5.3 Optimizer
- Adam optimizer(β1=0.9、β2=0.98、ε=10^-9)を使用
- 学習率は最初のwarmup_steps(=4000)で線形増加し、その後ステップ数の逆平方根に比例して減少
# 5.4 Regularization
- 各サブ層出力と、EmbeddingとPositional Encodingの和にDropout(Pdrop=0.1)を適用
- Label Smoothing(εls=0.1)を使用し、perplexityは悪化するが精度とBLEUスコアは向上
# 6. Results
- モデルの実験結果を報告
# 6.1 Machine Translation
- WMT 2014英独タスクでTransformer (big)が28.4 BLEUを達成し、アンサンブルを含む既存最高を2.0 BLEU以上上回る新記録
- WMT 2014英仏タスクで41.0 BLEUを達成し、既存の単一モデル最高性能を上回り、訓練コストは1/4以下
- ベースモデルは最後5チェックポイント平均、大規模モデルは最後20チェックポイント平均を使用し、ビームサイズ4、長さペナルティα=0.6でビーム探索
# 6.2 Model Variations
- Attentionヘッド数と次元を変化させた実験で、単一ヘッドは最適設定より0.9 BLEU低下し、ヘッド数が多すぎても品質低下
- Attention key次元dkの削減はモデル品質を損ない、より洗練された互換性関数が有益な可能性を示唆
- モデルサイズ増加とDropoutは性能向上に有効で、正弦波Positional Encodingと学習済みPositional Embeddingはほぼ同等の結果
# 6.3 English Constituency Parsing
- 4層Transformer(dmodel=1024)をPenn Treebank WSJ部分(約40K文)で訓練し、構文解析タスクへの汎化を評価
- 半教師あり設定ではBerkleyParserコーパス(約1700万文)も使用し、32Kトークン語彙を使用
- タスク固有のチューニングなしで、Recurrent Neural Network Grammar以外の全ての報告済みモデルを上回る性能を達成し、WSJのみの訓練でもBerkeleyParserを上回る
# 7. Conclusion
- TransformerはAttentionのみに基づく初の系列変換モデルであり、Encoder-DecoderアーキテクチャのRecurrent層をMulti-Head Self-Attentionで置換
- 翻訳タスクでRNN/CNNベースアーキテクチャより大幅に高速な訓練が可能で、WMT 2014英独・英仏の両タスクで新たな最高性能を達成
- 今後はAttentionベースモデルを他タスクに適用し、テキスト以外の入出力モダリティ、画像・音声・動画を効率的に扱うための局所的・制限付きAttention機構、および生成の非逐次化を研究予定
評価
# 新規性
- RNNやCNNを完全に排除し、self-attentionのみに基づく初の系列変換モデル「Transformer」を提案
- Multi-Head Attentionにより、異なる表現部分空間からの情報を同時に捉えることを可能にした
- Scaled Dot-Product Attentionを導入し、大きなdk値での勾配消失問題に対処
- 正弦波・余弦波による位置エンコーディングにより、学習時より長い系列への外挿を可能にした
- 任意の2位置間の依存関係を定数回の演算で学習可能にした(RNNのO(n)、CNNのO(logk(n))に対して)
# 言及されている全ての関連研究との相違点
- LSTM/GRU [13, 7]との違い: 逐次計算が不要で完全並列化が可能、長距離依存の学習パス長がO(1)
- Bahdanauらのattention [2]との違い: RNNと組み合わせず、self-attentionのみで構成
- Extended Neural GPU [16]との違い: 位置間の関係付けに必要な演算が定数回(線形ではない)
- ByteNet [18]との違い: 遠距離位置の関係付けが対数的ではなく定数回で可能
- ConvS2S [9]との違い: 畳み込み層を使用せず、全位置を直接接続可能
- End-to-end memory networks [34]との違い: 系列整列型の再帰ではなく、純粋なself-attentionを使用
- 加法的attention [2]との違い: ドット積attentionは行列演算で高速化可能、スケーリングで大きなdk値にも対応
- MoE [32]との違い: 条件付き計算ではなく、self-attentionによる全位置の直接参照で効率化
- GNMT [38]との違い: アンサンブルなしの単一モデルで既存アンサンブルを上回る性能
- Deep-Att + PosUnk [39]との違い: 訓練コストを大幅に削減しながら高い翻訳品質を実現
- RNN sequence-to-sequence [37]との違い: 小データでの構文解析でも高性能を発揮
- 学習済み位置埋め込み [9]との違い: 正弦波位置エンコーディングで同等性能かつ長系列への外挿が可能
# 有効性
- WMT 2014 英独翻訳で28.4 BLEU達成、既存最高(アンサンブル含む)を2 BLEU以上上回る
- WMT 2014 英仏翻訳で41.8 BLEU達成、単一モデルとして新たなstate-of-the-art
- 訓練時間はbaseモデルで12時間(8 P100 GPU)、bigモデルで3.5日と大幅に短縮
- 訓練コストは既存最高モデルの1/4以下
- 英語構文解析でも91.3 F1(WSJのみ)、92.7 F1(半教師あり)を達成、RNN Grammar以外の全モデルを上回る
- 40K文のみの訓練でもBerkeleyParserを上回る汎化性能
- Attention headが構文的・意味的構造に関連した異なるタスクを学習することを可視化で確認
- モデルサイズ増大とdropoutが性能向上に効果的であることを実験で確認
# 信頼性
- WMT 2014英独データセット(約450万文対)とWMT 2014英仏データセット(3600万文対)という標準ベンチマークを使用
- Penn Treebank WSJ(約4万文)およびBerkleyParser corpus(約1700万文)で構文解析を評価
- 複数の構成(attention head数、次元数、層数、dropout率、位置エンコーディング方式)でアブレーション研究を実施
- ベースモデルでは最後の5チェックポイント、bigモデルでは最後の20チェックポイントの平均を使用
- ビームサーチ(ビームサイズ4)と長さペナルティ(α=0.6)のハイパーパラメータは開発セットで選定
- 訓練・評価コードをhttps://github.com/tensorflow/tensor2tensor で公開し再現性を担保
- FLOPsによる訓練コストの定量的比較を実施(GPU性能の推定値も明記)
和訳
1 / 1
100%
付箋を貼る場所をクリックしてください