Attention(注意機構)

Attention Mechanism

ディープラーニング手法 重要度:高

概要

Attention(注意機構)とは、入力データの中で特に重要な部分に「注意」を向けて重点的に処理する仕組みです。人間が文章を読む際に重要な単語に注目するように、モデルが入力系列の中から関連性の高い部分を選択的に参照できるようにする技術です。

Attentionは2014年にBahdanauらによって機械翻訳(Seq2Seq)の改良として提案されました。その後、2017年にVaswaniらが発表した論文で、RNNを完全に排除しAttentionのみで構成されるTransformerアーキテクチャが提案されました。Transformerは現代の自然言語処理の基盤となり、BERT、GPT、さらには画像認識のVision Transformerなど、幅広い分野に革命をもたらしています。

詳細解説

Attentionの基本概念

Attentionの基本的なアイデアは、出力を生成する際に入力系列全体を参照し、各入力要素の重要度(Attention Weight:注意重み)を計算することです。従来のSeq2Seqモデル(エンコーダ・デコーダモデル)では、入力文全体を固定長のベクトルに圧縮していたため、長い文の情報が失われやすいという問題がありました。Attentionにより、デコーダが各出力ステップで入力文の関連部分を直接参照できるようになり、この問題が解決されました。

Bahdanau Attention(加法的Attention)

2014年にDzmitry Bahdanauらが提案した最初のAttentionメカニズムです。Seq2Seqモデルのデコーダが各時刻の出力を生成する際に、エンコーダの全時刻の隠れ状態を参照し、それぞれの重要度(Attention Score)を計算します。Attention Scoreはデコーダの前の隠れ状態とエンコーダの各隠れ状態から、学習可能なニューラルネットワーク(一層の全結合層)で計算されます。このスコアをSoftmax関数で正規化してAttention Weightとし、エンコーダの隠れ状態の重み付き和でコンテキストベクトルを生成します。

Self-Attention(自己注意機構)

Self-Attentionは、入力系列内の各要素が同じ系列内の他のすべての要素との関連性を計算する仕組みです。例えば、「彼は銀行に行き、預金をした」という文において、「預金」という単語がどの「銀行」に注目すべきかをSelf-Attentionが判断します。Self-Attentionにより、系列内の長距離の依存関係も直接的に捉えることができます。

Query・Key・Value(Q, K, V)

TransformerのSelf-Attentionでは、入力の各要素がQuery(クエリ)、Key(キー)、Value(バリュー)の3つのベクトルに変換されます。これは情報検索の比喩に基づいています。Queryは「何を探しているか」、Keyは「どんな情報を持っているか」、Valueは「実際の情報の内容」を表します。

Attention Scoreは、QueryとKeyの内積で計算されます(Scaled Dot-Product Attention)。具体的には、Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) × V という数式で表されます。d_kはKeyの次元数で、これで割ることで勾配の安定化を図ります。

Multi-Head Attention

Multi-Head Attentionは、複数のAttentionを並列に実行する仕組みです。各ヘッド(Head)が異なる線形変換を通じたQ, K, Vを使用するため、異なる観点からの情報を同時に捉えることができます。例えば、あるヘッドは構文的な関係に注目し、別のヘッドは意味的な関連性に注目するといった役割分担が学習されます。各ヘッドの出力を連結し、線形変換で最終的な出力次元に変換します。

Transformer

Transformer は2017年にVaswaniらによって発表された論文で提案されたアーキテクチャです。RNNを完全に排除し、Self-Attention(Multi-Head Attention)とフィードフォワードニューラルネットワークのみで構成されています。エンコーダとデコーダの両方がMulti-Head Attentionを使用します。

Transformerの大きな利点は並列計算が可能なことです。RNNは逐次的に処理する必要がありましたが、Transformerでは入力系列全体を一度に処理できるため、GPUの並列処理能力を最大限に活用できます。また、位置情報はPositional Encoding(位置エンコーディング)で付加します。

BERT・GPTへの発展

Transformerの登場以降、その構造を基盤とした大規模言語モデルが次々と開発されました。BERT(2018年、Google)はTransformerのエンコーダ部分を使用し、双方向の文脈を考慮した事前学習モデルです。GPT(2018年〜、OpenAI)はTransformerのデコーダ部分を使用し、テキスト生成に特化した自己回帰モデルです。これらのモデルは大規模なテキストデータで事前学習し、各タスクにファインチューニングすることで、多くの自然言語処理タスクで従来手法を大幅に上回る性能を達成しました。

歴史・背景

Attentionの概念は2014年にBahdanauらの論文で初めてニューラル機械翻訳に適用されました。それまでのSeq2Seqモデル(2014年、Sutskeverら)では、入力文全体を一つの固定長ベクトルに圧縮する必要があり、長い文の翻訳品質が低下するボトルネック問題がありました。Bahdanau Attentionはこの問題を解決し、翻訳精度を大幅に向上させました。

2015年にはLuongらがAttentionの簡略化版(乗法的Attention)を提案し、計算効率を向上させました。2017年、Googleの研究者Vaswaniらが論文で、RNNを一切使わずAttentionのみで構成されるTransformerを提案しました。この論文は自然言語処理の歴史を大きく変えた画期的なものでした。

2018年にはBERT(Google)とGPT(OpenAI)が発表され、Transformerベースの大規模事前学習モデルの時代が始まりました。以降、GPT-2(2019年)、GPT-3(2020年)、GPT-4(2023年)と大規模化が進み、ChatGPTの登場により生成AIが社会的な注目を集めています。また、Vision Transformer(ViT、2020年)により、Attentionは画像認識にも応用されるようになりました。

具体的な事例

  • 機械翻訳:Transformerの最初の成功事例です。入力文の各単語に対する注意の分布を可視化することで、翻訳の対応関係を確認できます。Google翻訳はTransformerベースのモデルに移行しています。
  • BERT(自然言語理解):文章の穴埋め(Masked Language Model)と次文予測で事前学習し、質問応答、感情分析、テキスト分類などにファインチューニングして使用されます。
  • GPTシリーズ(テキスト生成):大規模なテキストデータで事前学習し、プロンプトに応じて自然な文章を生成します。ChatGPTやGPT-4は多様なタスクに対応する汎用性を持ちます。
  • Vision Transformer(ViT):画像をパッチに分割し、各パッチを系列要素としてTransformerで処理することで、画像認識を行います。大規模データでの学習においてCNNを上回る性能を達成しています。
  • 音声認識:Whisper(OpenAI)などのTransformerベースの音声認識モデルが、多言語の音声認識で高い精度を達成しています。

G検定での出題ポイント

G検定では、Attentionに関して以下のような内容が出題される傾向があります。

  • Attentionが入力の重要な部分に注目する仕組みであること
  • Bahdanauら(2014年)が機械翻訳のSeq2Seqモデルの改良として提案したこと
  • Vaswaniら(2017年)がAttentionのみで構成されるTransformerを提案したこと
  • Self-Attentionの概念(系列内の要素間の関連性を計算)
  • Query・Key・Valueの役割
  • TransformerからBERT・GPTへの発展の流れ
  • Transformerの利点(並列計算が可能、長距離依存関係の学習)
試験対策のポイント
  • Attentionは「入力の重要な部分に注目する仕組み」であることを理解する
  • 2014年Bahdanau(Seq2Seq改良)→ 2017年Vaswani(Transformer)→ 2018年BERT/GPT の流れを覚える
  • Self-Attentionは入力系列内の要素同士の関連性を計算することを押さえる
  • Query(検索したい情報)、Key(索引)、Value(実際の情報)の3つの役割を理解する
  • TransformerはRNNを使わず並列計算が可能であることが大きな利点であることを覚える