Coda

論文メモ Sequence to Sequence Learning with Nueral Networks

June 6, 2020

概要

Sequence to Sequenceを発表した論文である。 RNNによって、入力と出力が系列のデータを学習する場合、入力と出力の長さが等しく、対応関係にある箇所が系列の方向に単調でなければならない。 この制約に対処するため、Sequence to Sequenceは入力全体を固定長のベクトルに一度変換し、そのベクトルをもとに出力を予測する。 Sequence to Sequenceは、2種類のLSTMをつかい、入力を与えたLSTMの最終層の隠れ状態からなる固定長ベクトルをつくる。 そして、このベクトルを、もう一方のLSTMに与え、最終的な出力を求める。 実験により、反転された入力系列をあとえると、入力と出力の対応関係にある箇所の距離が短くなり、予測性能が上がることが確認された。

アーキテクチャ

モデルの目標は、長さ\(T\)の入力系列\(x_1, \cdots , x_T\)から長さ\(T’\)の系列\(y_1, \cdots , y_{T’}\)の条件付き確率を出力することである。 入力と出力で長さの違う系列でも学習するため、入力から分散表現\(v\)をつくり、\(v\)をもとに系列を予測する。 \(v\)にはLSTMの最終層の状態がもちいられる。 これを式で示すと次のようになる。

$$ p(y_1 , \cdots , y_{T’}\mid x_1 , \cdots , x_T) = \prod_{t=1}^{T’}p(y_t\mid v, y_1 , \cdots , y_{t-1}) $$ \(p(y_t\mid v, y_1,\cdots , y_{t-1})\)の計算には、語彙にある単語についてのソフトマックス関数をもちいる。 また、出力系列の長さを有限にするために、系列の最後には終端を示す記号"<EOS>"を追加し、系列に終端を予測できるようにする。

学習では、入力系列\(S\)と出力系列\(T\)を含む学習データセットを\(\mathcal{S}\)として、次の目的関数をもちいる。 $$ 1/\mid \mathcal{S}\mid \sum_{(T, S)\in \mathcal{S}} \log p(T\mid S) $$

予測時には、条件付き確率の最も高い\(T\)を出力する。 $$ \hat{T} = \underset{T}{\operatorname{argmax}} p(T\mid S) $$

入力系列の反転

入力系列を反転することで予測性能が向上する理由について完全な説明はなされていない。 次の図は、モデルによって入力系列から出力系列を予測する様子を示している。 入力と出力系列に単調な対応関係があれば、入力系列を反転すると、対応関係にある記号間の距離の平均値を変えずに、系列の先頭に近いほど記号間の距離が短くなり、後になるほど遠くにできる。 論文では、一部の記号間の対応関係の距離を変えることが、予測性能の向上の理由と考えられている。 figure1