トランスフォーマーの論文を読む③方針
今回は、トランスフォーマーの論文である「Attention Is All You Need」の論文を構成を掴みながら図や表などに目を通します。まだ、要約や結論を読んでいない方は前回の記事や前々回の記事を参考にしてください。
今回も、論文のセクションを読む順番は、以前に紹介した論文の読み方に大体従っています。特に、論文の構成を掴んでどのセクションに注力して読むのかを決定します。
論文の全体構造
以前にも言及しましたが、論文「Attention is All You Need」の構造は以下のようなセクションに分かれています。
要約(Abstract)
導入(Introduction)
背景(Background)
モデルの構造(Model Architecture)
なぜ自己アテンションなのか(Why Self-Attention)
訓練(Training)
結果(Results)
結論(Conclusion)
論文の読み方で解説したように、よくある論文の構造を持っています。
これまで要約を読んで、論文の主張を理解しました。また、結論から著者が自信を持って主張を繰り返しているのがわかります。よって、読む価値はありそうだと判断しました。2017年の当時に読んでいるとしての話ですが。
ここから導入を読み出しても構わないのですが、今回は、主な目的として、アテンション機構と呼ばれる文章から文脈を読み取る仕組みを理解することにしたので、どのセクションに力を入れるべきか考えながら全体構造をなぞっていきます。
そのためには、小見出し、太字などに注意しながら図や表に目を通します。実験結果の詳細などには現状は関心がないという設定なので、飛ばすべきところと決めていきます。
では、導入から斜め読みしていきましょう。
導入の概要
概要を掴むには、セクションの最初と最後に目を通したりします。短いセクションなら全部読んでも集中力を失うことないのであれば、全部読んでも良いでしょう。あるいは、小節のはじめと終わりの文だけ読むとか、論文の流れを掴むぐらいの気持ちで要点だけピックアップするだけも構いません。最初からじっくり読む必要はありません。読みたいところを決めるのが目的です。
とりあえず、導入の最初の小節を読んでみます。次のように始まります。
リカレントニューラルネットワーク、特に長短期記憶(LSTM)[13]とゲーテッドリカレント [7] ニューラルネットワークは、言語モデリングや機械翻訳 [35, 2, 5] などのシーケンスモデリングや変換問題における最先端アプローチとして確立されてきました。回帰を利用した言語モデルやエンコーダ・デコーダのアーキテクチャ [38, 24, 15] の限界を乗り越えることにこれまで多くの努力が費やされてきました。
Recurrent neural networks, long short-term memory [13] and gated recurrent [7] neural networks in particular, have been firmly established as state of the art approaches in sequence modeling and transduction problems such as language modeling and machine translation [35, 2, 5]. Numerous efforts have since continued to push the boundaries of recurrent language models and encoder-decoder architectures [38, 24, 15].
ここでも、今までは回帰を使った言語モデルが主流だったことを繰り返し述べています。まあ、この研究が行われた背景を説明しているので要約と重なる部分があるのは致し方ありません。
回帰を利用した言語モデルに多くの努力が費やされてきたことを述べているのは、その方向とは違うアプローチがあることを暗示しているようです。
なお、[13]とか[17]などの番号は、参照している他の論文を意味しています。論文の最後にある参照(References)のセクションを見ると番号に対応する論文を見つけることができます。
例えば、[13]は次の論文を参照しています。
[13] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.
これは、長短期記憶(LSTM)の論文で有名な研究者であるJürgen Schmidhuberの名前も見受けられます。
今の段階では、参照された論文を読む必要はありません。後でもっと詳しく調べたい時や、意味がよくわからない言葉の定義などを確認するために参照されている論文を辿って行ったりします。しかし、今はそこまで深掘りしないので、これらの番号は無視します。
この導入は短いので全部読んでも良いのですが、今回は飛ばして導入の最後の小節を読みます。
この研究では、回帰を避け、入力と出力の間のグローバルな依存関係を描くために完全にアテンション機構に依存するモデルアーキテクチャであるトランスフォーマーを提案します。トランスフォーマーははるかに多くの並列処理を可能にし、わずか12時間、8つのP100 GPUで訓練された後、翻訳品質において新たな最先端を達成することができます。
In this work we propose the Transformer, a model architecture eschewing recurrence and instead relying entirely on an attention mechanism to draw global dependencies between input and output. The Transformer allows for significantly more parallelization and can reach a new state of the art in translation quality after being trained for as little as twelve hours on eight P100 GPUs.
ここでトランスフォーマーは「回帰を使わない」こと、そして「入力と出力の間のグローバルな依存関係」を知るために「完全にアテンション機構に依存」するモデルであることが述べられています。
この導入では、要約からの主張をもうちょっと詳しく述べているということを理解するにとどめ、次に移ります。
背景の概要
これも割と短いセクションになっています。ここでもまた回帰や畳み込みを利用した言語モデルについて振り返っていますが、最後の小節だけ読んでいきます。
私たちの知る限り、トランスフォーマーは、入力と出力の表現を計算するために自己アテンション(セルフアテンション)のみに完全に依存し、シーケンスに整列したRNNや畳み込みを使用しない、最初の変換モデルです。以下のセクションでは、トランスフォーマーを説明し、自己アテンションを動機付け、[17, 18]および[9]などのモデルに対するその利点を議論します。
To the best of our knowledge, however, the Transformer is the first transduction model relying entirely on self-attention to compute representations of its input and output without using sequencealigned RNNs or convolution. In the following sections, we will describe the Transformer, motivate self-attention and discuss its advantages over models such as [17, 18] and [9].
これも要約と導入と同じようなことを繰り返しています。トランスフォーマーがRNNや畳み込みを使用しないことを述べています。また、自己アテンション(セルフアテンション)という言葉が繰り返し述べられているので、重要なキーワードであることが伺えます。
ここまでは、特にじっくり読むようなことはありません。論文を読むのは小説を読むのとは異なり、いかに自分が必要な情報を得るかがカギなので、飛ばせところは飛ばして、後で必要があれば戻るくらいで十分です。忘れたくない言葉などが目についたらハイライトしておけば安心です。
次のセクションに移ります。
モデルの構造
このセクションで目を引くのは、トランスフォーマーのアーキテクチャの図です。何やらエンコーダ・デコーダについての説明があります。

その次にサブセクションが続きます。
エンコーダ・デコーダのスタック
アテンション
スケールされた内積アテンション
多頭アテンション
位置ごとのフィードフォワード・ネットワーク
埋め込みとソフトマックス
位置エンコーディング
さらに次のような図もありました。

(左)スケールされた内積アテンション
(右)多頭アテンション
スケールされた内積アテンションに関して、以下の式も見られます。
$$
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
$$
多頭アテンションに関する式もありました。
$$
\begin{aligned}
\text{MultiHead}(Q, K, V) &= \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O \\
\text{where head}_i &= \text{Attention}(QW^Q_i, KW^K_i, VW^V_i)
\end{aligned}
$$
アテンション機構をよく理解したいので、このセクションは後でじっくり読む必要があるのがわかります。スケールされた内積アテンションと多頭アテンションは重要なキーワードだと想像できます。
他にも式や表があるので、軽く目を通しておくことにします。
まず、位置ごとのフィードフォワードネットワークに関しては、次のような式があります。
$$
\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2
$$
まず、入力$${x}$$に対して線形変換$${y = xW_1 + b_1}$$を行ったものにReLU($${z = \max(0, y)}$$)を適用して、さらにもう一度別の線形変換$${z W_2 + b_2}$$を行っているだけのようです。この意味も後でじっくり読む必要があります。
その次には、自己アテンション、回帰、畳み込み、自己アテンション(制限付き)で計算の複雑性についての比較があります。

これを見ると自己アテンション(制限付き)が一番計算が軽そうです。これも気になります。
あと、位置エンコーディングに関して次の式があります。
$$
\begin{aligned}
\text{PE}(\text{pos}, 2i) &= \sin(\text{pos}/10000^{2i/d_{\text{model}}}) \\
\text{PE}(\text{pos}, 2i+1) &= \cos(\text{pos}/10000^{2i/d_{\text{model}}})
\end{aligned}
$$
パッと見しただけでは、意味不明でしょう。これも深掘りする必要ありです。
以上、このセクションが目的の沿った情報が盛り沢山なので読む際に力を入れる必要があることがわかりました。
なぜ自己アテンションなのか
このセクションの最初の一文を読んでみます。
このセクションでは、自己アテンション(セルフアテンション)をリカレント層や畳み込み層と比較します。リカレント層や畳み込み層はシーケンス変換におけるエンコーダやデコーダなどでよく見られるものです。また、シーケンス変換は可変長のシーケンス$${(x_1, \dots, x_n)}$$を別のシーケンス$${(z_1, \dots, z_n)}$$にマッピングします。ここで、$${x_i, z_i}$$はd-次元の実数ベクトル$${R^d}$$の要素です。
In this section we compare various aspects of self-attention layers to the recurrent and convolutional layers commonly used for mapping one variable-length sequence of symbol representations $${(x_1, \dots, x_n)}$$ to another sequence of equal length $${(z_1, \dots, z_n)}$$, with $${x_i , z_i \in R^d}$$, such as a hidden layer in a typical sequence transduction encoder or decoder.
ここでやっと自己アテンションを使う理由についての解説があり、また回帰や畳み込みとの比較が行われるのがわかります。このセクションもよく読む必要がありそうです。
訓練と結果
訓練(Training)と結果(Results)のセクションは今回の目的から外れるので飛ばします。軽くページを眺めるくらいにしておきます。必要に応じて後で戻るかもしれません。
参照とその後
参照にはずらりと論文のリストがあるので飛ばしていき、その後に何かあるのかだけチェックしておきます。論文によっては詳細な証明などが最後についていることがあります。
この論文では、アテンションに関する図が三つありました。これらも一応後で役に立ちそうです。



以上を踏まえて、この論文を読む方針を決めます。
論文を読む方針
この論文に関してはアテンション機構の仕組みを理解することを目的としているので、「モデルの構造」と「なぜ自己アテンションなのか」の二つのセクションを読むことに注力するべきなのがわかりました。特に「モデルの構造」はさらにサブセクションに分割されているのでじっくり読む必要があります。
次回予告
次回から「モデルの構造」のセクションを読み解いていきます。これは図1を少しずつ理解していくのと同じことです。

そこで、まずはエンコーダ・デコーダの全体像を理解することを目指します。
お楽しみに!
