Self-Attentionとは

セルフアテンション別名 自己注意機構、Intra-Attention

1行定義

Self-Attentionとは、系列の各要素が同じ系列内のすべての要素との関連度を求め、その重みで情報を集めて文脈を反映した表現を作る仕組みのことです。

くわしく

Self-Attention(自己注意機構)は、1つの文章の中で、各単語がほかの単語をどれだけ参考にするかを決める仕組みです。「店員は客に傘を渡した。それは濡れていた。」なら、「それ」の表現を作るときに「傘」へ大きな重みを置きます。Transformerの中心となる部品です。

しくみ

各単語のベクトルから、別々の重み行列で3種類のベクトルを作ります。

  • クエリ:自分がどんな情報を探しているか
  • キー:自分の内容を示す見出し
  • バリュー:参照されたときに渡す中身

ある単語のクエリと、文中の全単語のキーとの内積で関連度を求めます。Transformerでは、これをキーの次元数d_kの平方根で割り、ソフトマックス関数で合計1の重みに変えます。その重みでバリューを加重和したものが出力です。まとめるとsoftmax(QK^T / √d_k) Vと書けます。

注目の重みは固定ではなく、入力のたびに計算されます。同じ単語でも、文脈が変われば注目する相手が変わります。

RNNとの違い

RNNは単語を1つずつ順に処理するため、離れた単語の情報が途中で薄れやすく、計算も順番にしか進められません。Self-Attentionは、どの2語の間も1回の計算で直接結びつけます。全位置をまとめて計算できるので、GPUで効率よく学習できます。

弱点は、全単語の組み合わせを計算するため、計算量が文の長さの2乗に比例することです。また、並び順を区別しないので、Transformerでは位置エンコーディングで順序を補います。

周辺の用語との関係

クエリをデコーダ側、キーとバリューをエンコーダ側から作るものは、Source-Target Attentionです。Attentionを複数のヘッドに分けて並列に計算するのがMulti-Head Attentionです。

覚え方

「文の中で、探しもの(クエリ)を見出し(キー)と照合し、中身(バリュー)を集める」と覚えます。

G検定での出題

クエリ・キー・バリューを同じ系列から作る点、RNNと違って全位置を並列に計算できる点、Source-Target Attentionとの違い、順序の情報をもたないため位置エンコーディングが必要になる点が問われます。

混同しやすい用語

用語意味
Source-Target Attention出力側の系列からクエリを、入力側の系列からキーとバリューを作るAttention

違いを表で比べる:Self-AttentionとSource-Target Attention

◯×チェック

  1. Self-Attentionでは、クエリ・キー・バリューの3つを、同じ1つの系列から作る。

    答えを見る

    答え ◯ 正しい

    同じ系列の各要素に、それぞれ別の重み行列を掛けて3つを作ります。クエリとキー・バリューを別々の系列から作るのはSource-Target Attentionです。

  2. 学習を終えたSelf-Attentionでは、各要素がほかのどの要素にどれだけ注目するかの重みは、入力する文によらず一定である。

    答えを見る

    答え × 誤り

    学習で固定されるのは、クエリ・キー・バリューを作るための重み行列です。注目の重みは入力のたびにクエリとキーから計算し直すので、文が変われば変わります。

  3. 系列の長さが2倍になると、Self-Attentionで関連度を計算する要素の組み合わせの数は、およそ4倍になる。

    答えを見る

    答え ◯ 正しい

    すべての要素どうしの組み合わせを計算するため、計算量は系列の長さの2乗に比例します。長い文書を扱うときの課題です。

練習問題

Self-Attentionの問題(9問)
  1. Attentionの出力の計算
  2. Transformer内の注意機構
  3. 位置エンコーディングの必要性
  4. 内積をスケーリングする理由
  5. Self-Attentionの計算量
  6. Multi-Headのヘッドの分け方
  7. クエリ・キー・バリューの作り方
  8. ViTとCNNの性質の違い
  9. ViTの系列長と計算量

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術23

出典

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習