Transformer個人メモ

に公開

🧠 Transformerとは

  • 2017年の論文 "Attention Is All You Need" によって提案
  • RNNを使わずに自己注意(Self-Attention)で系列データを処理
  • 現在の多くのLLMやBERTなどの基盤

⚙️ モデル構造の概要

  • Encoder–Decoder構造
    • Encoder: 入力文を埋め込みベクトルとして処理
    • Decoder: 出力文を生成
  • 各層に Multi-Head Attention と Feed Forward Network を含む

🔍 Self-Attention(自己注意)とは

Self-Attentionは、「文の中でどの単語がどの単語に注目すべきか」を学習する仕組みです。

RNNのように単語を順番に処理するのではなく、文全体を一度に見渡して、
それぞれの単語が他の単語との関係を考えながら自分の表現を更新します。

たとえば「The animal didn't cross the street because it was too tired.」という文では、
「it」が「animal」を指すことを理解する必要があります。
Self-Attentionでは、「it」と「animal」の関係性を自然に学習できます。

仕組みとしては、各単語を3種類のベクトル(Query、Key、Value)に変換します。
Queryは「今注目したいこと」、Keyは「どんな情報を持っているか」、Valueは「実際の情報」です。
QueryとKeyの類似度を計算して、「どの単語が重要か(重み)」を求め、その重みを使ってValueをまとめます。

結果的に、各単語は文脈を考慮した新しいベクトルに変換されます。
これがTransformerが「文全体の関係性」を効率的に捉えられる理由です。


執筆中です!📝

※サンプルコードを後で追記する。


Discussion