クロスアテンション【Cross Attention】
概要

エンコーダ・デコーダ型のモデルは長い入力データから長い出力データを得るためのネットワークで、エンコーダは入力された情報を数値的な特徴量として抽出し、デコーダはその情報を元に新しい系列を生成する。クロスアテンションは両者の橋渡し役として機能する。デコーダが次に生成すべき単語を検討する際、エンコーダが保持している入力系列全体の中から、その瞬間に最も重要と思われる箇所を特定し、重み付けを行う。
計算過程では、「クエリ」(query)、「キー」(key)、「バリュー」(value)という三つの要素が用いられる。キーとバリューはエンコーダ側から、クエリはデコーダ側から供給される。デコーダが現在生成している一歩手前の状態がクエリとなり、エンコーダが出力した入力文の各単語の特徴がキーおよびバリューとなる。システムはクエリとすべてのキーとの類似度を計算し、その結果をソフトマックス関数によって正規化することで、合計が1になる重み(アテンションスコア)を算出する。このスコアをバリューに乗じることで、入力文の各部分が持つ情報を取捨選択し、一つのコンテキストベクトルとしてデコーダの次トークン予測に用いる。
Transformerモデルでは、入力文と出力文の関連を捉えるクロスアテンションと、入力文中の単語同士の関連性を分析する「セルフアテンション」(Self-Attention:自己注意機構)が併用される。エンコーダでは入力系列内部の関係をセルフアテンションで表現し、デコーダではセルフアテンションで既出力トークン間の依存関係を捉えた後、クロスアテンションにより入力系列との対応付けを行う。複数のアテンション機構を同時に適用するマルチヘッドアテンション構成とすることで、異なる表現空間における対応関係を並列に学習でき、語順、意味的対応、構文的関係など複数の観点を同時に扱うことが可能となる。