エンコーダー・デコーダー

Encoder-Decoder

エンコーダー・デコーダーとは

エンコーダー・デコーダー(Encoder-Decoder)は、入力データを中間表現に変換するエンコーダーと、その中間表現から出力データを生成するデコーダーの2つのコンポーネントで構成されるニューラルネットワークのアーキテクチャパターンです。Sequence-to-Sequence(Seq2Seq)タスクの基本構造として、機械翻訳や要約生成などで広く使用されています。

エンコーダーの役割

エンコーダーは入力系列を読み取り、固定長または可変長の内部表現(文脈ベクトル)に圧縮します。RNNベースのエンコーダーでは最後の隠れ状態が文脈ベクトルとなり、Transformerベースのエンコーダーでは各位置の表現が出力されます。エンコーダーは入力全体の意味を捉え、デコーダーが利用可能な形に情報を符号化する役割を担います。

デコーダーの役割

デコーダーはエンコーダーの出力を受け取り、目的の出力系列を1要素ずつ自己回帰的に生成します。Transformerのデコーダーでは、マスク付き自己注意機構(未来のトークンを参照しない)とクロスアテンション(エンコーダーの出力を参照)を組み合わせて出力を生成します。

エンコーダー・デコーダーの応用

このアーキテクチャは機械翻訳(T5、BART)、音声認識(Whisper)、画像キャプション生成など、入力と出力の形式が異なるタスクに広く応用されています。BERTはエンコーダーのみ、GPTはデコーダーのみを使用しており、タスクの性質に応じてエンコーダーとデコーダーの組み合わせ方が選択されます。