Attention is All You Need—Transformerの誕生
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. Advances in Neural Information Processing Systems, 2017-Decem, 5999–6009.
現在、GPT-3から音楽生成、画像の生成まで、多様な領域で中心的な仕組みとなっているTransformerを導入した論文。時系列データの学習に一般的に用いられてきたRNNなどの複雑なネットワークを排して、比較的シンプルなAttentionだけで学習できることを示した。
2017
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. Advances in Neural Information Processing Systems, 2017-Decem, 5999–6009. http://arxiv.org/abs/1706.03762
Overview - 何がすごい?
現在、GPT-3から音楽生成、画像の生成まで、多様な領域で中心的な仕組みとなっているTransformerを導入した論文。時系列データの学習に一般的に用いられてきたRNNなどの複雑なネットワークを排して、比較的シンプルなAttentionだけで学習できることを示した。
Abstract
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior in quality while being more parallelizable and requiring significantly less time to train. Our model achieves 28.4 BLEU on the WMT 2014 English- to-German translation task, improving over the existing best results, including ensembles, by over 2 BLEU. On the WMT 2014 English-to-French translation task, our model establishes a new single-model state-of-the-art BLEU score of 41.8 after training for 3.5 days on eight GPUs, a small fraction of the training costs of the best models from the literature. We show that the Transformer generalizes well to other tasks by applying it successfully to English constituency parsing both with large and limited training data.
Motivation
RNNやCNN(WaveNetなど)などが一般的に時系列のデータの学習に用いられてきたが、長いスパンでの依存関係を学習するにはモデルを大きくする必要があった。シーケンスの前の方からauto-regressive(生成結果を次の予測に用いる)に処理するので、並列化が難しいという問題も。
Self-Attention (一つの時系列データの中での異なる位置を関連づけるAttensionの仕組み) だけを使ってモデルを構築することで、RNNモデルなどよりも小さいモデル、短時間で同等以上の精度を実現できることを示した。
Architecture
アーキテクチャは上の図の通り。
Encoder
6層self-attentionの層とシーケンス内のポジションごとのfully-connected layer。
Decoder
decoderも同等だが、もう一層self-attentionの層が加えらえていて、encoderのアウトプットを入力として受ける。
Attention
Attentionとは簡単に言うと、文中のある単語の意味を理解する時に、文中の単語のどれに注目すれば良いかを表すスコアのこと である。例えば英語でitが出て来たら、その単語だけでは翻訳できない。itを含む文章中のどの単語にどれだけ注目すべきかというスコアを表してくれるのがAttention。(下のQiitaの記事から)
Attensionはシンプルなマトリクスのdot積。Q: Queryと K: Key とV: Valueを関連づける。Kの次元 が大きくなると単純に が大きくなって、softmaxを取った時の勾配が相対的に小さくなる。そこで でノーマライズ。
基本的にQとKの内積をとることで、QとKの関連性が高いところは大きい値になり、Vとかけた時にその部分が強調される... ということで良い?
Multi-Head Attention
そのまま上のSelf-attentionをとるよりも、一旦V, K, Qをそれぞれ線形写像したものを複数作って、それらをくっつけた方が良い。この線型写像 (以下の )も Fully-connected layerで学習する。一つのAttentionよりも複数の比較的小さいAttentionを用意した方が良い結果になったということ(元論文ではヘッドの数 で embeddingの次元 を8で割った64次元がそれぞれの小さいAttentionの次元)
Q, K, Vがそれぞれなんなのか下の図がわかりやすい。"Thinking Machines"という二つの単語の Thinkingという最初の単語に対するAttentionを計算した例。2番目の単語 Machinesのスコアを出すときは になっていることに注意。
Position-wise Feedforward Network
Self-Attentionのレイヤーごとに以下のFully connected layerをかける。
Position Encoding
Recurrentのレイヤーがないので、別のやり方でシーケンスの中での位置の情報をエンコードしないといけない。そこでPosition Encoding。 embeddingの次元と同じサイズ、入力に足す。
pos: シーケンスの中のポジション i: 次元
イメージとしては、バイナリーの0と1を入れ替えるタイミングを想起するとよい。一番右のビットは毎回変わる、二番目は2個ずつ入れ替わる... sin/cosで連続的にやると右のように。
Results
英語-ドイツ語(EN-DE)、英語-フランス語(EN-FR)の翻訳モデル。学習には NVIDIA P100を8台。
BLEUが他のモデルよりも向上している! (BLEUはbilingual evaluation understudyの略で翻訳の精度を定量評価する指標)
Further Thoughts
- やっと読んだ... サボっててすいません。今やGAN以上にホットなトピックになりつつあるので、Transformerの理解は重要!
- 本論文はとても簡潔に書かれている。仕組みもあまり難しい数学が出てこない。簡潔すぎてなんとなく直感的に理解できた気になる?ものの細かいところがよくわからない感覚あり。他の解説記事を読んで理解が深まった。
- 論文のタイトルがかっこよすぎ!
Links
Transformerのわかりやすい紹介! 確かにわかりやすい...
上の記事のビデオ。大雑把な紹介
Attentionについて
Qiitaの解説記事 わかりやすい!
Transformerを利用している他の論文に当たりたかったら...
Colaboratory上に用意されたPyhont Notebook