Seq2Seqとは

シーケンストゥシーケンスsequence-to-sequence別名 Sequence-to-Sequence、系列変換モデル、エンコーダ・デコーダモデル

1行定義

Seq2Seqとは、エンコーダが入力の系列を読み込んでベクトルにまとめ、デコーダがそれをもとに別の系列を1つずつ生成するモデルのことです。

くわしく

Seq2Seq(Sequence-to-Sequence)は、ある系列を別の系列に変換するモデルです。英語の文を日本語の文に変える機械翻訳が代表例です。2014年に、SutskeverらとChoらが、RNNを使ったエンコーダ・デコーダ型のモデルをそれぞれ発表しました。

しくみ

2つのRNNを組み合わせます。

  • エンコーダ:入力の単語を1つずつ読み込み、最後の隠れ状態に文全体の情報をまとめます。このベクトルを文脈ベクトルと呼ぶことがあります。
  • デコーダ:文脈ベクトルを受け取り、出力の単語を1つずつ生成します。直前に出力した単語を次の時刻の入力に使い、文の終わりを表す記号を出したら止まります。

RNNには、長い系列を扱いやすいLSTMやGRUが使われました。Sutskeverらは、入力文の単語の順番を逆にして読み込ませると、翻訳の精度が大きく上がったと報告しています。

入力を読み終えてから出力を始めるので、入力と出力の長さが違っていてもかまいません。翻訳のほか、文書要約、対話、音声認識などにも応用されました。

学習

学習では、教師強制(teacher forcing)がよく使われます。デコーダの入力に、モデル自身の予測ではなく正解の単語を与える方法です。

弱点とその後

基本形のSeq2Seqは、入力文全体を1つの固定長のベクトルに押し込みます。そのため、文が長くなるほど情報が失われやすくなります。この問題を解決するため、デコーダが出力のたびに入力の各位置を参照するAttentionが加えられました。

2017年のTransformerも、エンコーダとデコーダからなる系列変換のモデルです。ただし、RNNを使わず、Attentionを中心に系列を処理します。

覚え方

「読んでまとめるエンコーダ、まとめから書き出すデコーダ」と覚えます。

G検定での出題

エンコーダとデコーダの役割、入力と出力の長さが違ってもよい点、機械翻訳などの用途、入力を固定長のベクトルにまとめる弱点とAttentionによる改善、Transformerとの関係が問われます。

混同しやすい用語

用語意味
TransformerRNNや畳み込みを使わず、Attentionを中心に系列内の関係をとらえる、2017年に提案されたニューラルネットワーク

◯×チェック

  1. 基本形のSeq2Seqでは、エンコーダが入力を最後まで読み込んだときの隠れ状態が、デコーダが出力を始めるときの手がかりとして渡される。

    答えを見る

    答え ◯ 正しい

    このベクトルは文脈ベクトルとも呼ばれ、入力文全体の情報を1つにまとめたものです。デコーダはこれを出発点に、出力を1語ずつ生成します。

  2. Seq2Seqのデコーダは、出力の系列のすべての単語を1回の計算で同時に出力する。

    答えを見る

    答え × 誤り

    デコーダは1単語ずつ生成し、出力した単語を次の時刻の入力に使います。終わりを表す記号を出したところで止まります。

  3. Transformerは、エンコーダとデコーダをもたない点で、Seq2Seqとは異なる構造のモデルである。

    答えを見る

    答え × 誤り

    Transformerも、入力を読むエンコーダと出力を生成するデコーダからなる系列変換のモデルです。違いは、RNNを使わず、Attentionを中心に組み立てた点です。

練習問題

Seq2Seqの問題(6問)
  1. ルールベースと統計的翻訳の特性
  2. RNNの入出力の対応形式
  3. Seq2Seqの固定長ベクトルの限界
  4. 注意の重みのヒートマップ
  5. 推論時の生成手順の比較
  6. Seq2Seqの出力長の決まり方

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術23・技術27

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習