この記事は日経Robotics 有料購読者向けの過去記事(再掲載)ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 ニューラルネットワークはあらかじめ設計されたネットワーク構造に従ってデータが入力から出力に向かって計算されながら伝搬していく。多くの問題では、事前知識を使って構造を設計することで性能を上げることができる。

 例えば、畳み込みニューラルネットワーク(CNN)は、画像は近い位置にある情報が関係があるという事前知識を使って、近い位置にあるニューロン間のみをつなぐことでパラメータ数を減らし、特定のモデルが学習されやすいようにして汎化性能を上げている。

 このような事前知識は帰納バイアスとも呼ばれ、学習が成功するかの重要な要素である。しかし、データの流れ方は学習によって決定し、データに合わせて変わることが望ましい。

著者の岡野原大輔氏

 自己注意(Self-Attention)機構1-2)は、データの流れ方自体を学習し決定するような方法である。もともとRNN向けに提案されたが、CNNなど他のニューラルネットワークにも利用されている。自己注意機構は強力であり機械翻訳3)、質問応答4)、画像生成5-6)など、多くの問題で最高精度を達成している。自分自身の途中の計算結果に注意し、そこから読み込むことからこの名がついている。

 自己注意機構は入力系列$\mathbf{x} = \{x_1, x_2, \ldots,x_n\}$を同じ長さの系列$\mathbf{y} = \{y_1, y_2, \ldots,y_n\}$へと変換する関数である。系列中の各要素はベクトルである。

 始めにスケール化内積注意機構とよばれる自己注意機構を説明する。各要素$x_i$毎に要素を使ってクエリ$q_i$、キー$k_i$、値$v_i$の3つのベクトルを計算する。クエリとキーの次元数は同じ$d_k$であり、値の次元数は$d_v$とする。このクエリ、キー、値を行ごとに並べて作られた行列を$Q, K, V$とおく。このとき、スケール化内積注意機構は次のように計算される。

\[\text{Attention}(Q, K, V) = \text{softmax} ( \frac{Q K^T}{\sqrt{d_k}} ) V\]

この右辺は行ごとに$\text{softmax}$関数を適用した結果である。

 この式の意味を解説する。はじめに各要素毎にクエリ$q_i$と似ているキー$k_j$を探す。似ている度合いとして内積$\langle q_i, k_j \rangle$を使う。この度合いに従って値を読み込むようにするが、足して1になるように$\text{softmax}$を適用する。しかし、内積をそのまま使うと一部の値だけが非常に大きくなり内積値が最大だった要素以外に勾配が発生しない問題が起きる。これは、平均$0$、分散$1$、次元数が$d_k$のランダムなベクトル同士の内積は平均$0$、分散$d_k$となることからも分かる。そのため、$1/\sqrt{d_k}$を乗じた後に$\text{softmax}$を適用する。そして、似ている度合いに比例して値$v_j$を読み込んで足し合わせ、それを出力とする。

 この注意機構は、クエリとキーが似ているかどうかで、どの要素の値を読み込むかどうかを制御していることに注意されたい。もし、学習の結果、その要素から値を読み込んだ方がよければ対応するクエリとキーは近づくように更新され、もし読み込まない方が良ければクエリとキーは離れるように更新される。こうして、どの要素を読み込むかどうか、データのルーティングが学習で自動決定される。

 この仕組みは、1つの読み込みヘッド(キー)を使って各場所から値を読み込んでいるようにみなすことができる。複数の読み込みヘッドを使って読み込むことができる。

\[\text{MultiHeadAttention}(Q, K, V)= \text{Concat}(head_1,head_2, \ldots, head_k)W^O\]

\[ head_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)\]

ただし、$W_i^Q, W_i^K, W_i^V, W^O$は学習対象のパラメータ行列である。ここでは$k$個の$\text{head}$を使って読み込んだ結果を最終的に統合して出力を決定する。パラメータ行列のサイズを$d_k\times d_k / k$のようにして、$\text{Attention}$を$k$より小さい次元数で計算するようにしておけば、全体の計算量はオリジナルの$\text{Attention}$と変わらないようにすることができる。実験では$k=8$などが使われている。

 CNNのように局所的な箇所から読み込む場合と違って、自己注意機構は全ての位置から情報を対称的に読み込むようになっており、位置情報が使えない。そのため、入力に位置情報を表すチャンネルを追加する。例えば、$\text{PE}_{pos,2i}=\sin(pos/10000^{2i/d_{model}})$のようなチャンネルを使う。

 一般に、自己注意機構に位置ごとの非線形変換を組み合わせたのが1つの計算ブロックとして扱われる。例えば、Transformer2)では、自己注意機構の後に2層の総結合層を用いて、間にReluを1回適用する。これはカーネルが1×1の畳み込み層を2つ使うのと同義である。また、スキップ接続や正規化、Dropoutなどの正則化が適用される。

 自己注意機構の大きな特徴はCNNやRNNと違って遠い位置にある情報が1回の計算ステップで読み込むことができることである。また、全ての位置の計算が並列にでき、特に最適化がしやすい行列演算で実現できる。

 この自己注意機構に対し、さまざまな改良手法が提案されている。Universal Transformer4)は、同じ自己注意機構を繰り返し適用する。同じ変換を繰り返し適用するというのはRNNと同じであるが、Universal Transformerの場合、系列全体を繰り返し更新するという部分が異なる。Universal Transformerは機械翻訳や質問応答で従来手法を超える性能を出したと報告している。

 Weighted Transformer3)はMultiHeadAttentionの改良を提案している。TransformerはMultiHeadAttentionの後に位置ごとの非線形変換を適用していたが、Weighted TransformerはHead毎に別の非線形変換を適用した後にHeadの情報を統合することを提案している。また統合する際はConcatではなく重みづけ和とし、重みはパラメータとして学習で決定される。これは複数のエキスパートを用意し、どのエキスパートを使うのか自体を学習するMixture of Expertとも関連する手法である。Weighted Transformerは機械翻訳の最高精度を達成している。

 自己注意機構の問題点は計算量が大きいことである。特に画像のように注意対象が多くなればなるほど計算量が大きくなる。例えば全ての画素を対称に注意を計算した場合、計算量は画素数の二乗かかることになる。そのため、注意対象を重要な要素だけに絞ることで計算量を減らすことが望ましい。全ての候補に0より大きい注意を与えるのをSoft Attentionと呼び、一部の要素だけ0より大きい注意を与えるのをHard Attentionと呼ぶ。計算量を減らせるのはHard Attentionだが、この場合、注意をあてなかった要素は試されず、勾配が発生しないという問題がある。そのため、強化学習と同様に新しい要素を試してみなければならないという利用と探索のジレンマが発生する。この問題に対し、ベクトルのノルムが大きいものだけを残すことでHard Attentionを達成する手法7)は単純でありながら、高精度を達成でき、自己注意機構を効率的に実現することができ有望である。

本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 自己注意機構は記憶の仕組みとも大きく関係する。長期記憶を扱うMemory NetworkやDifferentiable Neural Computerなどは、過去の経験に対し自己注意機構と同じ仕組みで、どの経験が関係するかを求めた上で読み込むようになっている。注意対象が過去の経験か、現在の計算の途中結果かということが異なるだけであり、長期記憶と自己注意機構は共通の仕組みを利用することができる。そのため今後は、自分自身の計算結果だけでなく、長期記憶からも同時に読み込むといったことが試されていくだろう。

1)Z. Lin et al., “A Structured Self-attentive Sentence Embedding,” ICLR 2017, https://arxiv.org/abs/1703.03130
2)A. Vaswani et al., “Attention is All You Need,” https://arxiv.org/abs/1706.03762
3)K. Ahmed et al., “Weighted Transformer Network for Machine Translation,” https://arxiv.org/abs/1711.02132
4)M. Dehghani et al, “Universal Transformers,” https://arxiv.org/abs/1807.03819
5)N. Parmar et al., “Image Transformer,” ICML 2018, https://arxiv.org/abs/1802.05751
6)H. Zhang et al., “Self-Attention Generative Adversarial Networks,” https://arxiv.org/abs/1805.08318
7)M. Malinowski et al., “Learning Visual Question Answering by Bootstrapping Hard Attention,” https://arxiv.org/abs/1808.00300
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。
出典:日経Robotics、2018年10月号 pp.34-35
記事は執筆時の情報に基づいており、現在では異なる場合があります。