この記事について
「Attention」という言葉を聞いたことはあるけど、
- Attentionって、ChatGPTみたいなAIの一種なの?
- MLP(多層パーセプトロン)とは何が違うの?
- Transformerとはどういう関係?
——このあたりがモヤっとしている人向けの記事です。数式は最小限にして、たとえ話中心で「全体像のイメージ」をつかむことをゴールにします。
3行まとめ
- Attentionは「AIモデル」ではなく、ニューラルネットの中で使う計算の仕組み(部品)。
- MLPは「各単語を個別に加工する部品」、Attentionは「単語同士を見比べて情報を混ぜる部品」。役割が違う。
- この2つを組み合わせた設計図がTransformerで、それを巨大に育てたモデルがLLM(ChatGPTなど)。
1. まず結論:Attentionは「モデル」ではなく「仕組み」
いちばん誤解されやすいポイントがここです。
Attention は LLM(大規模言語モデル)の一種ではありません。 ニューラルネットワークの内部で使われる「演算(レイヤー)」の一つ、つまり部品です。
料理でたとえると、
- Attention / MLP = 包丁や火といった「調理器具・技法」
- Transformer = それらを組み合わせた「レシピ(設計図)」
- LLM = そのレシピで大量に仕込んで完成した「料理」
という関係になっています。Attentionを「料理そのもの」だと思うと混乱するので、まず「部品なんだ」と押さえてください。
2. Attentionを一言でいうと「文脈を読むための注目」を計算する仕組み
Attentionは、日本語に訳すと「注意・注目」です。名前のとおり、文の中で「今どの単語に注目すべきか」を計算する仕組みです。
有名な例文で説明します。
The animal didn't cross the street because it was too tired.
(その動物は疲れすぎていたので、通りを渡らなかった)
この "it" は「動物(animal)」を指しますよね。人間なら文脈から自然にわかりますが、AIにとっては "it" が「動物」なのか「通り(street)」なのかは自明ではありません。
Attentionは、"it" を処理するときに文中の他の全単語をどれくらい「見る」べきかを数値(重み)で決めます。この例なら "animal" への重みが大きくなり、「itはanimalのことだな」と結びつけられる、というイメージです。この「文脈に応じて関連する単語を選び出す」考え方は、もともと2014年の機械翻訳の研究で提案されました(後述の参考文献[2])。
3. もう少しだけ中身:Q・K・V(クエリ・キー・バリュー)
「重みってどうやって決めるの?」の部分を、なるべくやさしく説明します。ここは飛ばしても全体の理解には支障ありません。
Attentionでは、各単語から3つのベクトル(数字の並び)を作ります。図書館で本を探すイメージが分かりやすいです。
| 記号 | 名前 | 図書館のたとえ |
|---|---|---|
| Q | Query(クエリ) | 「こういう本が読みたい」という検索の希望 |
| K | Key(キー) | 各本に付いた「見出し・ラベル」 |
| V | Value(バリュー) | 本の「中身」そのもの |
処理の流れはこうです。
- 自分のQ(探したい内容)を、他の全単語のK(ラベル)と照合して「どれくらい合っているか」を測る。
- その一致度を重み(合計が1になる割合)に変換する。
- 重みに応じて、各単語のV(中身)を混ぜ合わせて取り出す。
つまり「希望(Q)に近いラベル(K)の本ほど、その中身(V)を多めに取り込む」という検索エンジンのような動きです。これがAttentionの核です。
ちなみに、実際のモデルはこの処理を1回ではなく複数並列で行います(マルチヘッドAttention)。「文法に注目する担当」「意味に注目する担当」のように、別々の観点で同時に文を見るためのしくみです[1][3]。
4. MLPとの違い
MLP(多層パーセプトロン、Transformer内ではフィードフォワード層とも呼ばれます)も、AttentionもどちらもTransformer内部の部品ですが、役割がはっきり違います。
| MLP(フィードフォワード) | Attention | |
|---|---|---|
| やること | 各単語を個別に加工する | 単語同士を見比べて情報を混ぜる |
| 単語間のやりとり | しない(1単語で完結) | する(位置をまたいで混ぜる) |
| 使う重み | 学習時に固定された重み | 入力に応じてその場で計算される重み |
| ひとことで | 「見た情報を加工する」 | 「どこを見るかを決める」 |
ざっくり言うと、
- Attentionが「文脈を集めてくる(どこを見るか)」担当
- MLPが「集めた情報を各単語ごとにこねて変換する(どう料理するか)」担当
という分業になっています。この2つが交互に働くことで、文脈理解と情報加工の両方ができるわけです。
5. Transformerとの関係
Transformer(トランスフォーマー) は、2017年の論文「Attention Is All You Need」で提案された**アーキテクチャ(モデルの設計図)**です[1]。
この論文の何がすごかったかというと、それまで主流だったRNN(順番に1単語ずつ処理する方式)をやめて、「Attentionだけあれば十分だ(recurrenceもconvolutionも要らない)」 という大胆な設計にしたことです[1]。順番待ちをやめたことで並列計算しやすくなり、学習が速く・性能も高くなりました[1]。
Transformerの基本ブロックは、超シンプルに言うと:
1つのTransformerブロック = Attention層 + MLP層 (+ 正規化・残差接続などの補助)
このブロックを何十層も積み重ねたものがTransformerです。つまりAttentionはTransformerの中核部品であり、名前の由来にもなっています。
6. LLMとの関係(全体像)
最後にLLMです。LLM(大規模言語モデル)、たとえばChatGPTのGPTシリーズなどは、このTransformerを土台にして、
- 層をものすごく深く積み重ね、
- 膨大なテキストで訓練した
巨大なモデルそのものです。とくにGPT系は、Transformerのうち「文章を生成する側(デコーダ)」を使った構成になっています[4]。
階層でまとめると、こうなります。
LLM(ChatGPTなど) ← 訓練済みの巨大な「モデル」
└─ Transformer ← モデルの「設計図(アーキテクチャ)」
├─ Attention ← 「どこを見るか」担当の部品
└─ MLP(フィードフォワード) ← 「どう加工するか」担当の部品
「Attentionって何?」への答えは、この図のいちばん内側の部品、というわけです。
7. まとめ表
| 用語 | 正体 | ひとこと役割 |
|---|---|---|
| Attention | 計算の仕組み(部品) | 文中のどの単語に注目するかを動的に決める |
| MLP | 計算の仕組み(部品) | 各単語を個別に加工・変換する |
| Transformer | アーキテクチャ(設計図) | Attention+MLPを積み重ねた構造 |
| LLM | 訓練済みモデル | Transformerを巨大化し大量テキストで学習したもの |
「Attentionは(LLMの一種ではなく)Transformerの中核部品で、MLPと役割分担しながらTransformerを構成し、そのTransformerを育てたのがLLM」——これがつかめれば十分です。
参考文献・出典
- Vaswani, A. et al. (2017) Attention Is All You Need. arXiv:1706.03762 — Transformerを提案した原典論文。https://arxiv.org/abs/1706.03762
- Bahdanau, D., Cho, K., Bengio, Y. (2014) Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473 — 「Attention機構」を初めて導入した論文。https://arxiv.org/abs/1409.0473
- Alammar, J. (2018) The Illustrated Transformer — 図解でTransformer/Self-Attentionを解説した定番の入門記事。https://jalammar.github.io/illustrated-transformer/
- Alammar, J. (2019) The Illustrated GPT-2 (Visualizing Transformer Language Models) — デコーダ型(GPT系)の仕組みを図解。https://jalammar.github.io/illustrated-gpt2/
※本記事はAttention・Transformerの入門的な全体像をつかむことを目的とした概説です。数式や実装の厳密な詳細は上記の一次資料をご参照ください。