seq2seq(sequence-to-sequence)

1 seq2seq の概要

seq2seq(sequence-to-sequence) は,機械翻訳で初めに用いられた,テキストなど系列データ同士の変換モデルをRNN2つから構成されるRNN Encoder-Decoder [Cho et al., 2014] で学習する仕組みである[Kalchbrenner and Blunsom, 2013], [Sutskever et al., 2014] .

この記事では,seq2seqの機械翻訳向けの基本形について述べる.seq2seq は,のちにアテンション機構を加えたseq2seq with attention [Bahdanau et al., 2015] が提案されて,汎用的に様々な系列変換問題に使用されるようになり,その後の Transformer へもつながる,非常に重要な技術である.

2 seq2seq による機械翻訳

seq2seq
図1 seq2seqによる機械翻訳

seq2seqの機械翻訳問題では,系列長$N$の入力文$\bm{X}$ (言語A: ここでは英語)と,入力文と同じ意味を持つ系列長さ$N$の変換後の出力文$\bm{Y}$(Aと異なる言語B:ここでは日本語)のペアを用意し,それらの言語間で自動翻訳が行えるようにseq2seqを学習する (図1):

3.1 seq2seqの構成

まず,入力文と出力文の正しいペア1つを,以下のように定義する:

  • 入力文:$\bm{X} = \{\bm{x}^{(1)},\bm{x}^{(2)}, \ldots,\bm{x}^{(N)} \}$
  • 出力文:$\bm{Y} = \{\bm{y}^{(1)},\bm{y}^{(2)}, \ldots,\bm{y}^{(M)} \}$

ここで,$\bm{x}^{(j)}$と$\bm{y}^{(i)}$には,共に単語埋め込みベクトル(word2vecなど)を用いる [Cho et al., 2014].

seq2seq (図3)による機械翻訳では,以下の2つの再帰型ニューラル言語モデル(RNNLM)を,中間の潜在ベクトル1つだけで接続した「RNN Encoder-Decoder構造」を使用して,言語間の変換を行う:

  • エンコーダRNN:入力系列をエンコードして単語系列を潜在変数化する (図1 青色)
  • デコーダRNN:出力系列をデコードし単語を予測して,順に生成する (図1 赤色)

また,エンコーダRNNの$j$番目の隠れ状態ベクトルを$\bm{s}^{(j)}$とし,デコーダRNNの$i$番目の潜在状態ベクトルを$\bm{h}^{(i)}$とする.

  • エンコーダの隠れ状態: $\{ \bm{s}^{(1)}, \bm{s}^{(2)}, \ldots,\bm{s}^{(j)}, \ldots, \bm{s}^{(N)} \}$
  • デコーダの隠れ状態: $\{ \bm{h}^{(1)}, \bm{h}^{(2)}, \ldots, \bm{h}^{(i)},\ldots, \bm{h}^{(M)}\}$

3.2 処理手順

機械翻訳seq2seqは,前半RNN, 真ん中での隠れ状態の受け渡し, 後半RNNの3段階の処理から構成される:

(1) 前半RNNの処理 (翻訳元の言語Aのテキストを解釈)

前半(入力文)では,エンコーダのRNNを用いて,翻訳元であるソース言語のテキスト全体を隠れ層ベクトルにエンコードする.

(2) RNN間での潜在状態受け渡し

Encoder RNNの最後の$\bm{s}^{(N)}$が,Decoder RNNの最初の$\bm{h}^{(1)}$(図3 中央のピンクの潜在変数ベクトル)に接続している.この橋渡しにより,Encoder RNNで符号化された潜在変数ベクトルがDecoder RNNへと受け渡され,それをもとにDecoder RNNにより翻訳後の言語での文章生成が行われる.

(3) 後半RNNの処理 (翻訳先の言語Bのテキストを生成)

後半(出力文)では,デコーダのRNNで,エンコーダから得たソース言語の隠れ層のベクトル(潜在状態ベクトル)をもとに,単語を1つ生成しては,その生成された単語も次の単語を予測する入力として用いながら,文章全体をでコーダ RNNで生成する.

Decorder-RNNでは,各ステップにおいて,次の潜在変数ベクトル$\bm{h}^{(i+1)}$を,1つ前の予測単語$\bm{y}_{i-1}$と隠れ状態$\bm{h}^{(i)}$から予測する (図3, 右側).<EOS> =End of Sentence が予測された時点で翻訳は終了である.

3 seq2seq with attentionへの発展.

seq2seqでは入力系列が長い場合に,RNNが推定していく潜在変数が,初期の単語の情報を覚えておくことができず,出力単語数が多いとその潜在変数の値が似通ってしまう問題があった.

そこで,この問題を解決するために,アテンション機構 [Bahdanau et al., 2015] [Luong et al., 2015] が seq2seq向けに提案され,seq2seq with attentionと呼ばれる.seq2seq with attention では,デコード中の各フレームで動的に変化する入力コンテキストを得られる.これにより,毎フレーム$t$で各入力単語群への重要度を変えた文章の生成が可能になった. .

また,seq2seq with attentionは,その他の「言語 v.s 別モーダル 」間の変換モデルにたくさん応用されていく.例えば音声認識やText-to-speechに,画像キャプショニングやAudio Visual Embeddingなどで,seq2seq with attentionは応用される.そして,その流れはTransformerが登場しても継続する.(詳しくは以下の「アテンション機構」の記事を参照)

2 まとめ

この記事では,機械翻訳向けに提案されたseq2seq (RNN Encoder-decoder)を紹介した.seq2seqによる言語翻訳は,再帰型ニューラル言語モデルを2つ繋げた拡張版として登場し,ニューラル機械翻訳を実現し,現代の高精度な機械翻訳製品の登場につながっていく,大元の技術となった.seq2seq with attentionにすぐ発展し,その後のTransforrmerやBERTにつながる重要な技術である.

References

  • [Bahdanau et al., 2015] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. “Neural machine translation by jointly learning to align and translate.” In ICLR, 2015.
  • [Cho et al., 2014] Kyunghyun Cho, Bart van Merrien- boer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. 2014. Learning phrase representations using RNN encoder-decoder for statistical machine translation. In EMNLP.
  • [Kalchbrenner and Blunsom, 2013] N. Kalchbrenner and P. Blunsom, “Recurrent continuous translation models,” In EMNLP, 2013.
  • [Luong et al., 2015] M.-T. Luong, H. Pham, and C. D. Manning, Effective approaches to attention-based neural machine translation. In EMNLP, 2015.
  • [Sutskever et al., 2014] Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In NIPS, 2014.
  • 増村亮. “深層学習に基づく言語モデルと音声言語理解.” 日本音響学会誌 73.1 (2017): 39-46.

参照外部リンク

参考書籍

関連記事