自然言語処理

Seq2Seq しーくとぅしーく

Seq2SeqSequence-to-Sequenceエンコーダデコーダ機械翻訳注意機構RNN
Seq2Seqについて教えて

簡単に言うとこんな感じ!

Seq2Seq(Sequence to Sequence)は「入力の文字列を読み込んで別の文字列を出力する」モデルの枠組みだよ。日本語→英語の機械翻訳、質問→回答のチャットボット、文章→要約など、「系列を別の系列に変換する」タスク全般に使えるんだ!


Seq2Seqとは

Seq2Seq(Sequence-to-Sequence) は、2014年にGoogleのSutskeverらが提案した任意長の入力系列を任意長の出力系列に変換するモデルの枠組みです。エンコーダが入力系列を固定長のベクトル(コンテキストベクトル)に圧縮し、デコーダがそのベクトルから出力系列を生成します。

入力と出力の長さが異なっても対応できる点が最大の特徴です。例えば機械翻訳では「日本語5単語→英語7単語」のような変換が必要です。Seq2Seqはエンコーダがすべての入力情報をコンテキストベクトルに蒸留し、デコーダがそこから目標言語を生成します。

当初はRNNLSTM)ベースで実装されましたが、長い入力に対してコンテキストベクトルの情報損失が問題になりました。これを解決するためにAttention(注意機構) が追加され、さらにAttentionのみにしたTransformerへと発展しました。


Seq2Seqのアーキテクチャ

入力系列:  [私] [は] [猫] [が] [好き]

         エンコーダ(LSTM)

         コンテキストベクトル c

         デコーダ(LSTM)

出力系列:  [I] [like] [cats] [<EOS>]
役割モジュール処理内容
エンコーダBiLSTM等入力全体を読み込み文脈ベクトルを生成
コンテキストベクトル固定長ベクトルエンコーダ最終隠れ状態
デコーダLSTM等コンテキストから出力を1トークンずつ生成
Attention(拡張)注意機構デコードの各ステップで入力系列の適切な部分に集中

歴史と背景

  • 2014年:Sutskeverら「Sequence to Sequence Learning with Neural Networks」でLSTM-Seq2Seqを発表
  • 2015年:Bahdanauらがアテンション機構をSeq2Seqに追加。機械翻訳の精度が大幅向上
  • 2017年:Transformerがアテンションのみで構成されたSeq2Seqを実現し、RNNベースを超える
  • 2018年以降:T5・BARTなどTransformerベースのSeq2Seqモデルが主流に

Seq2Seqの応用タスク

タスク入力出力
機械翻訳原語の文翻訳文
文書要約長い文書短い要約
対話生成ユーザーの発話システムの返答
コード生成自然言語の指示プログラムコード
音声認識音声特徴量系列テキスト系列

関連用語