Seq2Seq

Sequence to Sequence

Seq2Seqとは

Seq2Seq(Sequence to Sequence)とは、入力の系列(シーケンス)から出力の系列を生成するモデルのアーキテクチャです。2014年にGoogleのIlya Sutskeverらが提案し、機械翻訳をはじめとする系列変換タスクの基盤モデルとなりました。

表:Seq2Seqの要点まとめ
ひとことで言うと系列を入力して、別の系列を出力するモデルの設計。
どこで使う機械翻訳、文書要約、対話応答、音声認識の文字起こし。
注意点入力を1つのベクトルに圧縮するため、長文では情報が落ちる。

エンコーダー・デコーダー構造

Seq2Seqはエンコーダーとデコーダーの2つのネットワークで構成されます。エンコーダーは入力系列を固定長のベクトル(コンテキストベクトル)に圧縮し、デコーダーはそのベクトルから出力系列を1要素ずつ生成します。初期のSeq2SeqではLSTMやGRUなどのRNNが使われていました。

図:Seq2Seqの処理
1入力系列元の言語の文
▶
2エンコーダー意味ベクトルに圧縮
▶
3中間表現意味の塊
▶
4デコーダー1語ずつ出力を生成
▶
5出力系列翻訳文や要約文

Attention機構の導入

固定長のコンテキストベクトルに入力全体を圧縮する方式では、長い入力文で情報が失われる問題がありました。2015年にBahdanauらが提案したAttention機構により、デコーダーが各ステップで入力系列の関連部分に注目できるようになり、性能が大幅に向上しました。

Seq2Seqの応用

機械翻訳、文書要約、対話生成、音声認識、テキスト正規化、質問応答生成など、入力と出力が異なる長さの系列となるタスクに広く適用されています。現在はTransformerベースのSeq2Seqモデル(T5、BARTなど)が主流です。