1 定義と基本概念
エンコーダ・デコーダモデルは、深層学習における系列変換タスクを実現する基本的なアーキテクチャである。入力系列をエンコーダで内部表現に変換し、デコーダがその表現を基に出力系列を逐次的に生成する。このモデルは、機械翻訳やテキスト要約など、入力と出力が異なる長さの系列となる問題に広く適用される。
1.1 エンコーダの役割
エンコーダは、入力系列(例えば文や画像)を受け取り、その情報を固定長または可変長のベクトル表現に圧縮する。RNNやTransformerを用いて各時刻の隠れ状態を計算し、最終的な隠れ状態または全時刻の隠れ状態の集約をコンテキストベクトルとして出力する。このコンテキストベクトルは入力系列の意味情報を保持する。
1.2 デコーダの役割
デコーダは、エンコーダが生成したコンテキストベクトルを初期状態として受け取り、出力系列をトークンごとに順次生成する。各時刻において、前の時刻に生成したトークンと現在の内部状態から次のトークンの確率分布を計算し、最も確率の高いトークンを選択する。デコーダは自己回帰的な生成を行うため、初期の誤りが後続の生成に影響を及ぼす可能性がある。
1.3 系列変換(sequence-to-sequence)の原理
系列変換は、可変長の入力系列から可変長の出力系列を生成するタスクの総称である。エンコーダ・デコーダモデルは、入力系列の情報をエンコーダで符号化し、その符号化表現を基にデコーダで出力系列を復号する。この過程では、入力と出力の長さが異なる場合でも対応可能であり、注意機構を導入することで入力の重要な部分に動的に焦点を当てることができる。
2 主要なアーキテクチャの変遷
2.1 RNNベースのエンコーダ・デコーダ
初期のエンコーダ・デコーダモデルは、エンコーダとデコーダの両方に再帰型ニューラルネットワーク(RNN)を用いていた。エンコーダは入力系列を順方向に処理し、最終隠れ状態をコンテキストベクトルとしてデコーダに渡す。デコーダはそのコンテキストベクトルを初期状態として出力系列を生成する。
2.1.1 バニラRNNと長期依存性問題
バニラRNNは単純な構造で系列データを扱えるが、勾配消失や勾配爆発の問題により長距離の依存関係を学習することが困難であった。入力系列が長くなるほど、初期の情報がデコーダに伝達されにくくなる。
2.1.2 LSTM・GRUによる改良
LSTMやGRUといったゲート付きRNNの導入により、長期依存性問題が緩和された。LSTMは忘却ゲート、入力ゲート、出力ゲートを備え、GRUはリセットゲートと更新ゲートにより、必要な情報を長時間保持できる。これにより、より長い系列の変換が可能になった。
2.2 アテンション機構の導入
アテンション機構は、デコーダが各時刻においてエンコーダの全隠れ状態を参照し、現在の出力に最も関連する部分に重みを付けて動的なコンテキストベクトルを生成する手法である。これにより、固定長コンテキストベクトルの情報ボトルネック問題が解消された。
2.2.1 コンテキストベクトルの動的生成
従来のエンコーダ・デコーダでは最後の隠れ状態のみを使用したが、アテンションではデコーダの現在状態とエンコーダの各隠れ状態との関連度を計算し、その重み付き和をコンテキストベクトルとする。これによりデコーダは入力系列の異なる部分を適宜参照できる。
2.2.2 アテンションスコアの計算方法(内積、加算、一般化)
アテンションスコアの計算には主に以下の方法がある。
- 内積アテンション:デコーダの状態とエンコーダ隠れ状態の内積をスコアとする。
- 加算アテンション:両状態を線形変換後に活性化関数を適用し、加算してスコアを求める(Bahdanauアテンション)。
- 一般化アテンション:スコア計算に学習可能な重み行列を導入する(Luongアテンションの汎化版)。
2.3 Transformerによる革新
Transformerは再帰構造を完全に排除し、自己アテンション機構とフィードフォワードネットワークを積み重ねたモデルである。RNNの逐次処理を並列化可能にし、大規模データでの学習効率と性能が大幅に向上した。
2.3.1 自己アテンションとマルチヘッドアテンション
自己アテンションは、系列内の各位置が他の全位置との関係を計算する仕組みである。マルチヘッドアテンションは複数のアテンションを並列に実行し、異なる表現空間からの情報を統合する。これによりモデルは多様な依存関係を捉えられる。
2.3.2 位置エンコーディング
Transformerには系列の順序情報がないため、正弦波関数による固定の位置エンコーディングまたは学習可能な位置埋め込みを入力に加える。これによりモデルはトークンの相対位置や絶対位置を認識できる。
2.3.3 エンコーダ・デコーダアテンション
デコーダの各層には、エンコーダの出力に対するクロスアテンション層が含まれる。この層は自己アテンションの後で動作し、デコーダがエンコーダの符号化情報を適宜参照しながら出力を生成することを可能にする。
3 学習方法と最適化
3.1 教師あり学習と教師フォーシング
エンコーダ・デコーダモデルは通常、入力系列と正解出力系列のペアを用いた教師あり学習で訓練される。教師フォーシングは、デコーダの各時刻において、前時刻の予測ではなく正解トークンを次の入力として与える手法であり、学習を安定化させる。
3.2 損失関数(クロスエントロピー、ラベルスムージング)
最も一般的な損失関数はクロスエントロピー損失で、各時刻の予測確率と正解トークンとの間の交差エントロピーを最小化する。ラベルスムージングは正解ラベルの確率をわずかに分散させる正則化手法であり、過学習を防ぎ、モデルの汎化性能を向上させる。
3.3 デコード戦略
3.3.1 貪欲法
各時刻で最も確率の高いトークンを選択する最も単純な方法。計算コストは低いが、局所最適に陥りやすい。
3.3.2 ビームサーチ
複数の候補系列を保持しながら探索を行う手法。各時刻で確率上位のトークンを展開し、全体の対数確率が高い系列を最終的に選択する。ビーム幅を調整することで探索の幅と品質を制御する。
3.3.3 サンプリング法(Top-k、Top-p)
確率的にトークンをサンプリングすることで多様性を持たせる。Top-kサンプリングは確率上位k個のトークンからのみサンプリングし、Top-p(核サンプリング)は累積確率がp以上になる最小のトークン集合からサンプリングする。
4 主要な応用分野
4.1 機械翻訳
最も代表的な応用であり、ある自然言語の文を別の言語の文に変換する。エンコーダは原文を符号化し、デコーダは翻訳文を生成する。Transformerベースのモデルが現在の主流である。
4.2 テキスト要約
長い文書から重要な情報を抽出または生成して短く要約する。抽出型は原文から文を選択し、生成型はエンコーダ・デコーダを用いて新しい要約文を作る。
4.3 画像キャプション生成
画像をエンコーダ(CNNなど)で特徴表現に変換し、デコーダでその表現を基に説明文を生成する。アテンション機構により、生成中の単語に対応する画像領域に注目できる。
4.4 音声認識と音声合成
音声認識では音響特徴系列をテキスト系列に変換し、音声合成ではテキスト系列を音声特徴系列に変換する。どちらも系列変換問題として扱われる。
4.5 対話システム
ユーザの発話を入力として、適切な応答を生成する。エンコーダがユーザの発話と会話履歴を符号化し、デコーダが応答を生成する。
5 発展と関連技術
5.1 双方向エンコーダと条件付きデコーダ
双方向エンコーダは系列を前方向と後方向の両方から処理し、各位置でより豊かな文脈情報を得る。条件付きデコーダは、外部の制約や属性情報(例えば翻訳のスタイル)を入力として受け取り、出力を制御する。
5.2 事前学習モデルとの融合(BERT、GPT、T5)
BERTのようなエンコーダのみのモデル、GPTのようなデコーダのみのモデル、T5のようなエンコーダ・デコーダ統合モデルが登場した。これらのモデルは大規模テキストで事前学習され、下流タスクでの転移学習により高い性能を達成する。
5.3 マルチモーダルへの拡張
画像、テキスト、音声など複数のモダリティを同時に扱うエンコーダ・デコーダモデルが開発されている。例えば、画像とテキストを入力として、画像説明や視覚的質問応答を行う。
5.4 長距離依存性と計算効率の課題
Transformerは自己アテンションの計算量が系列長の二乗に比例するため、非常に長い系列(例えば文書全体や高解像度画像)では計算コストが高くなる。また、長距離依存性の学習も依然として難しく、Linear AttentionやLongformerなど効率的なアテンションの研究が進められている。