自己注意機構とは
自己注意機構(Self-Attention)は、入力系列の各要素が同じ系列内の他のすべての要素との関連性を計算する仕組みです。Transformerの中核技術として、各トークンが文脈全体を考慮した表現を獲得することを可能にします。従来のRNNが逐次的に情報を処理するのに対し、自己注意機構は全要素間の関係を一度に並列計算できるため、効率性が大幅に向上します。
| ひとことで言うと | 文の中の各単語が、同じ文の他の全単語との関係を自分で計算する仕組み。 |
|---|---|
| 何がうれしいか | 離れた単語同士の関係を1ステップで結べる。並列計算できるので学習も速い。 |
| 注意点 | 入力が長いほど計算量が2乗で増える。長文対応には工夫が必要。 |
自己注意の計算プロセス
自己注意機構では、入力の各トークンからQuery、Key、Valueの3つのベクトルを生成します。あるトークンのQueryと全トークンのKeyとの内積を計算してアテンションスコアを求め、ソフトマックス関数で正規化します。この重みを用いてValueの加重和を算出し、各トークンの新しい表現とします。この処理により、文脈に応じた動的な特徴表現が得られます。
1各語を3役にQuery・Key・Valueへ変換
▶
2全組み合わせ語と語の関連度を計算
▶
3重みを正規化合計1になるよう調整
▶
4文脈を反映関連語の情報を取り込む
※ 「それ」が何を指すかを、文中の他の語との関連度から判断できるようになります。
自己注意の計算量と対策
自己注意機構の計算量は系列長の二乗に比例するため、長い系列の処理には課題があります。この問題に対処するため、Sparse Attention、Linear Attention、Sliding Window Attentionなどの効率的な近似手法が提案されています。FlashAttentionのようなハードウェア最適化も重要な進歩であり、メモリ効率と計算速度の改善に貢献しています。
自己注意の応用範囲
自己注意機構は自然言語処理だけでなく、画像処理(Vision Transformer)、音声認識、グラフニューラルネットワークなど、多様な分野で活用されています。入力データの種類を問わず、要素間の関係性を柔軟に捉えられる汎用的な仕組みとして、現代のディープラーニングの基盤技術となっています。