【G検定対策】Encoder・Decoderとは?|Transformerの前と後で何が変わったのか

AIの文章生成や翻訳の仕組みを学んでいると、「Encoder(エンコーダ)」や「Decoder(デコーダ)」という言葉が出てきます。
しかし、単に「入力側」「出力側」と覚えるだけでは、本当の意味は見えてきません。
重要なのは、なぜこの仕組みが必要だったのか、そしてその後のAttention・Transformer・GPTへどうつながったのかです。
Encoder・Decoderは、AIの文章処理の進化の中で非常に重要な橋渡しの技術です。
この記事では、Seq2Seq時代の課題から出発し、AttentionやTransformerによって何が変わったのかまで、流れでわかりやすく整理します。
Encoder・Decoderとは?

まず一言でいうと
Encoder = 入力を理解して情報に変換する仕組み
Decoder = その情報を使って出力を作る仕組み
です。
たとえば翻訳AIなら
入力
I love AI
Encoderが文章を読み取り
「これはこういう意味の文章だ」
という情報に変換します。
その後、Decoderがその情報をもとに
私はAIが好きです
という文章を生成します。
つまり
理解する役割 = Encoder
出力する役割 = Decoder
という分担です。
Seq2Seqで登場したEncoder・Decoder

Encoder・Decoderが有名になったのは、Seq2Seq(Sequence to Sequence) という仕組みです。これは、「入力された文章を、別の文章に変換する」ために作られました。
例
このように
に変換する技術です。
Encoder
入力文を最後まで読んで、情報をまとめる
Decoder
まとめられた情報をもとに、1単語ずつ出力する
Encoder・Decoderを流れで確認
という流れです。
Encoder・Decoderが必要だったのか?

RNNだけでも文章は扱えました。
しかし、問題がありました。
RNNは
文章を読んだ結果をそのまま次に渡していく
仕組みです。
すると、長い文章になると、最初の情報が薄れてしまう という問題が起きます。
たとえば、長い英語の文章を最後まで読んで、最後の1つの情報に全部まとめてから翻訳する…
これはかなり苦しいです。
つまり、「全部を1つに圧縮する」のが限界だったのです。
そこで、Encoder が文章全体をまとめ、Decoder がその情報を使って出力する という形が生まれました。
当時としては大きな進化でした。
Seq2Seqにも問題があった

ここが重要です。
Seq2Seqは便利でしたが、実はまだ問題がありました。
それは、情報を最後に1つに圧縮しすぎる という問題です。
例
それだけを見て出力
これは、短い文章ならある程度うまくいきます。
でも、文章が長くなると、最初の情報が抜けたり、細かい情報が失われたりします。
つまり、Encoder・Decoderは進化でしたが、まだ限界がありました。
問題を解決したのがAttention

そこで登場したのが、Attention です。
これまでは、Decoderは 最後に圧縮された1つの情報 しか見られませんでした。
しかし、Attentionでは、Decoderが「必要な入力部分を直接見る」ことができるようになりました。
例
翻訳中に
ということが可能になりました。
つまり、圧縮しすぎ問題を改善した のです。
流れでいうと
となります。
これはかなり大きな進化でした。
Transformerで何が変わったのか?

Transformerでは、さらに大きく変わります。
Seq2Seq + Attention では、RNNをベースにしていました。
つまり、前から順番に読む という制約がありました。
しかし、Transformerでは、Self-Attention を使うことで、文章全体を一気に見られるようになりました。
ここで、Transformerの構造は
Encoder:入力全体を理解する
Decoder:出力を生成する
という形になっています。
つまり、Encoder・Decoder自体は残っています。
ただし、中身の仕組みが RNN から Self-Attention に変わった のです。
ここが大事です。
役割は同じだが中身が進化した ということです。
GPTはなぜDecoderだけなのか?

ここもよく問われます。
Transformerは本来
Encoder + Decoder
を持っています。
しかしGPTは、Decoder only です。
なぜかというと、GPTの目的は「文章を生成すること」だからです。
例
この場合、入力を完全に別で圧縮して翻訳するより、今までの文章を見ながら次を生成する 方が重要です。
そのためGPTでは、Decoderだけを強化した形になっています。
つまり
という流れです。
一覧で整理すると
一覧にまとめました。

この流れで覚えると、技術の進化がかなりわかりやすくなります。
なぜ混同しやすいのか?

混同しやすい理由は、Encoder・Decoderは役割の名前であり、TransformerやGPTはモデル全体の名前 だからです。
たとえば、「Transformer = Encoder?」ではありません。
Transformerの中に Encoder と Decoder があります。
また
「GPT = Transformer全部?」
でもありません。
GPTは、Transformerの Decoder部分を中心に使ったモデル です。
この 部品名 モデル名 が混ざることで、混同しやすくなります。
G検定ではどう問われる?
G検定では、このような形で問われやすいです。
- Encoderの役割は何か
- Decoderの役割は何か
- Seq2Seqの問題点は何か
- Attentionは何を改善したか
- GPTはなぜDecoder onlyなのか
- BERTとGPTの違い(Encoder系 / Decoder系)
単語暗記ではなく、技術の流れで理解しておく のがポイントです。
なぜこの理解が重要なのか?

AIの技術は、いきなりTransformerやGPTが生まれたわけではありません。
という流れがあります。
つまり、前の問題 → 次の技術 で進化しています。
Encoder・Decoderは、この進化の真ん中にある非常に重要な技術です。
ここを理解すると、TransformerやGPTもかなり理解しやすくなります。
まとめ

Encoder・Decoderは、AIの文章処理の進化の中で生まれた「理解する」と「出力する」の役割分担 です。
最初はSeq2Seqで、入力をまとめて出力する という形で使われました。
しかし、情報を1つに圧縮しすぎる問題があり、Attention が登場 しました。
さらにTransformerでは、Self-Attentionによって文章全体を一気に見られるようになり、GPT ではDecoderだけを使って文章生成に特化しました。
重要なのは、Encoder・Decoder を単なる用語として覚えるのではなく
- なぜ必要だったのか
- 何を改善したのか
- 次の技術にどうつながったのか
で理解することです。
AIは単語暗記ではなく
の流れで理解すると、知識がつながって見えてきます。
関連記事・おすすめ記事
Seq2Seqだけでは何が苦しかったのか?その改善の流れを見るならこちらをご覧ください。

Decoderが進化すると、なぜGPTにつながるのかを理解したいならこちらをご覧ください。

Encoder・Decoderの進化完成形であるTransformerはこちらをご覧ください。

1回目は不合格でした。不合格だった原因を分析しました。



