機械学習深層学習自然言語処理

セルフアテンション

せるふあてんしょん · Self-Attention
1 views

セルフアテンションとは、入力データ内の各要素同士の関連度を計算し、文脈に応じた重み付けを行う深層学習の技術です。トランスフォーマーの中核を担い、自然言語処理などで長距離の依存関係を効率的に捉えることができます。

セルフアテンションとは

セルフアテンションは、同じシーケンス内の全要素同士の結びつきの強さを計算し、各要素が文脈の中でどのように関連しているかを動的に把握する仕組みです。

詳しく解説

従来の自然言語処理で使われていたリカレントニューラルネットワークは、単語を順次処理するため並列計算が難しく、長い文章での情報保持に課題がありました。セルフアテンションは入力シーケンス全体を一度に扱い、全単語間の関係性を直接計算します。内部では各単語からクエリキーバリューと呼ばれる3つのベクトルを生成し、クエリとキーの内積によって単語間の類似度(関連度)を算出して重みとし、その重みでバリューを足し合わせることで文脈を反映した表現を出力します。この仕組みが大規模言語モデルを支えるトランスフォーマーの根幹となっています。

具体例・使われ方

例えば「動物は道路を渡らなかった。なぜなら疲れていたからだ」という文章において、「疲れていた」という述語が「動物」と「道路」のどちらを指しているかを判断する際、セルフアテンションは文中の「それ(代名詞)」や状況に対して「動物」との関連度を高く重み付けして正しく文脈を理解します。機械翻訳や文章要約、画像認識など幅広い分野で活用されています。

似た用語との違い

従来のアテンション機構が入力文と出力文のように異なる2つの系列間の関連性を測るのに対し、セルフアテンションは単一の系列内における要素同士の相互関係を直接計算する点が異なります。また、順系列を辿るリカレントニューラルネットワークとは異なり、全体の要素同士の関連を一括して並列処理できる点も大きな違いです。

注意点

セルフアテンションは入力系列の長さに対して計算量とメモリ消費量が二乗で増加するため、非常に長い文章や大規模なデータを処理する際に計算コストが膨大になりやすいという限界があります。また、単体では要素の並び順(位置情報)を保持できないため、位置エンコーディングなどの補助的な手法と組み合わせて使用する必要があります。

更新日時: 2026年9月5日 09:01