[DL輪読会]Attention Is All You Need

>100 Views

July 14, 17

スライド概要

2017/7/14
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Attention Is All You Need 東京⼤学松尾研究室 宮崎邦洋 2017/6/2 1

2.

Agenda 0. 1. 2. 3. 4. 5. 6. 7. 2017/6/2 メタ情報 背景 背景(関連研究) モデル構造 何故Self-Attentionか 実験 結果 結論 2

3.

メタ情報 • 著者 – Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin – Google BrainとGoogle Researchのグループ • 公開⽇ – Submitted on 12 Jun 2017 – https://arxiv.org/abs/1706.03762 • About – RNN/CNNを使わず, Attentionのみを使⽤し翻訳のタスクで SOTAを達成 • 選んだ理由 – 話題だった(主にタイトルが) – Attentionの勉強 2017/6/2 3

4.

1. 導⼊ • 現在,⾔語処理などの系列モデリングにはRNN, LSTM, GRUがSOTA的アプローチとして使⽤されている – 系列の依存関係を維持できる • しかし,並列計算ができないため計算量が多くかかるこ とが問題点 – ⼀つ⼀つしか依存関係を維持できない • Attention機能ならば,シンボルの距離に関係なく依存関 係を構築できる – 現状RNNとの併⽤のみで使⽤されている. • 本研究では新しいモデル”Transformer“を提案 – リカレント構造を排除し,Attention機能のみを使⽤したネット ワークを構築 2017/6/2 4

5.

2. 背景(関連研究) • 次計算を減らすという⽬的は、CNNで達成されてきた – – – – Extended Neural GPU ByteNet ConvS2S => CNNでは遠い距離の依存関係を学習できない • Self-Attention – 同じシーケンス内でAttentionを⾏う機能 – 読解⼒、抽象的な要約、テキストの含意、学習に依存しない⽂ の表現などのタスクに使⽤されている 2017/6/2 5

6.

3. モデル構造 • 全体像 – EncoderとDecoderの両⽅に、スタックされ たSelf-AttentionとポイントワイズのFullyConnectedレイヤを使⽤ • エンコーダ – N=6の同⼀レイヤのスタック – 各層は2つのサブレイヤ • マルチヘッドのSelf-Attention • Fully-ConnectedのFeed Forward Network • それぞれのサブレイヤでresidual connection とlayer normalizationを採⽤ • デコーダ – N=6の同⼀レイヤのスタック – 各エンコーダ層の2つのサブレイヤに加え、 エンコーダからのアウトプットをMultiHead Attentionを⾏う3層⽬を挿⼊ – デコード時のself-attentionでは順番に注意 し,既知のアウトプットにのみ依存関係を 持つようにする 2017/6/2 6

7.

3. モデル構造 Scaled Dot-Product Attention • よく使⽤されるAttentionは以下 の2つ – Additive attention – dot-product (multiplicative) attention • dot-productの⽅が計算も早く,ス パース性に強く,本研究のように応 ⽤が⾏いやすい • dkが⼤きい場合,dot積が⼤きくな りすぎて勾配が⼩さくなることが想 定されるため,√dkでスケーリング 2017/6/2 7

8.

3. モデル構造 Multi-Head Attention • V, K ,Qを⼀度線形変換し, Scaled Dot-Productにかけたあ とConcatし,再び線形変換 • 異なる位置の異なる表現部分空 間からの情報を学習できる • 以下の3箇所において使⽤ – エンコーダ/デコーダを繋ぐ部分 • 従来のAttention – エンコーダ部分のSelf-Attention – デコーダ部分のSelf-Attention • 未来の情報を使わないように Scaled Dot-ProductのSoftmax前 にマスキング 2017/6/2 8

9.

3. モデル構造 • フィードフォワードネットワーク – それぞれの位置に別々に同じように適⽤ – 2つの線形変換と、その間にReLUを起動することで構成 • Positional Encoding – リカレント層がないので、位置情報を伝える⼯夫 2017/6/2 9

10.

4.何故Self-Attentionか • 3つの理由 – レイヤごとの合計計算複雑度 – 必要な順次操作の最⼩数によって測定される並列化可能な計算 量 – ネットワーク内の⻑距離依存関係間のパス⻑ 各レイヤタイプの計算量:Self-AttentionはO(1)に対し,ReccurentはO(n) r the size of the neighborhood in restricted self-attention. • 副次的な利点 – ⾃⼰の注意がより解釈可能なモデルを⽣み出すことができる 2017/6/2 10

11.

5. 実験 • データとバッチ処理 – WMT 2014英語 - ドイツ語データセットとWMT 2014英語 - フ ランス語データ • ドイツ語:4.5 million sentence pairsと37000 tokens • フランス語: 36M sentences and split tokens into a 32000 – センテンスペアは、およそのシーケンス⻑でまとめてバッチ処理 • ハードウェアとスケジュール – 8台のNVIDIA P100 GPUを搭載した1台のマシン – ベースモデル • 約0.4秒 per 各トレーニングステップに約0.4秒 • 合計10万ステップ学習=12時間訓練 – ⼤きなモデル(big) • ステップ時間は1.0秒 • 30万step、3.5⽇で学習 2017/6/2 11

12.

6. 結果 • 性能 – EN-DEの翻訳で以前のSOTAをBLEUで2.0以上上回る(28.4) – EN-FRでは過去のシングルモデルを全て上回る(BLEU41.0) • コスト – 以前のSOTAの1/4以下 2017/6/2 12

13.

6. 結果 • モデルの評価 • (A) • • • 2017/6/2 – パラメータを変更 – – 計算量を⼀定に保ちながら、アテンションヘッドの数とアテンションキーとアトリビュートのディメンションを変更 シングルヘッドのアテンションが最も良い設定よりも0.9 BLEU悪いが、ヘッドが多すぎると低下 – – アテンションキーサイズdkを⼩さくするとモデルの品質が低下 互換性の判断が容易ではなく、ドット製品よりも⾼度な互換機能が有益であることを⽰唆 – – 予想通り⼤きなモデルが優れている ドロップアウトがオーバーフィッティングを回避するのに有効 – 正弦波の位置符号化を学習されたPositional Encodingに置き換え、基本モデルとほぼ同じ結果を観測する。 (B) (C),(D) (E) 13

14.

6. 結果 • 英語の構成構⽂解析 – 他のタスクに⼀般化できるかどうかを評価 • RNN⽂法を除いて全ての⼿法を上回る結果 2017/6/2 14

15.

7. 結論 • 本研究では、リカレント層をMulti-headed selfattentionに置き換え、アテンションのみで構築された最 初の配列変換モデルであるTransformerを提案 – ⾼速に学習可能 – WMT 2014 En-De、En-Fr共にSOTAを達成 • 特にEn-Deでは以前すべてのアンサンブルを上回る • 英語の構成構⽂解析についての実験し、他タスクにも⼀般的に効果 があることを⽰した – 画像、オーディオ、ビデオなどのなどにも応⽤予定 2017/6/2 15

16.

関連リンク • 著者によるtensorflow実装 – https://github.com/tensorflow/tensor2tensor • Reddit – https://www.reddit.com/r/MachineLearning/comments/6gwq iw/r_170603762_attention_is_all_you_need_sota_nmt/ • PyTorchでの実装 – https://github.com/jadore801120/attention-is-all-you-needpytorch • Chainerでの実装 – https://github.com/soskek/attention_is_all_you_need 2017/6/2 16