Coda

論文メモ NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

February 1, 2020

概要

Decoderに注意機構を採用したencoder-decoderモデルを提案した論文である。 ICLR2015で発表された。 論文の発表当時、encoder-decoderモデルによる翻訳の多くは、encoderが入力文を固定長ベクトルに変換し、固定長ベクトルから翻訳された文を出力していた。 著者らは、固定長ベクトルへの変換が長い文の翻訳性能を下げていると考え、固定長ベクトルを注意機構におきかえたencoder-decoderモデルを提案する。 モデルは、翻訳に加え、生成する単語と入力文の箇所の関係を学習する。 推定時には、まず、次に生成する単語に関係する入力文の箇所を推定する。 次に、推定された箇所と生成済の単語列をもとに、単語を生成する。 特に長い文書の翻訳において、固定長ベクトルをつかうモデルよりも、提案手法が優れていることを実験的に示した。

Decoder

長さ\(T_{T_x}\)のone-hotベクトルのシーケンス\({\rm \boldsymbol{x}}\)を入力文、長さ\(T_{T_y}\)のシーケンス\({\rm \boldsymbol{y}}\)を出力文とする。 \({\rm \boldsymbol{x}}\)と\({\rm \boldsymbol{y}}\)の間には次の関係が成り立つ。 $$ {\rm \boldsymbol{y}} = \underset{{\rm \boldsymbol{y}}}{\operatorname{argmax}}p({\rm \boldsymbol{y}}\mid {\rm \boldsymbol{x}}) $$ \(p({\rm \boldsymbol{y}})\)を次のように条件付き確率に分解する。 $$ \begin{align} p({\rm \boldsymbol{y}})&=\prod_{t=1}^{T_{y}}p(y_i\mid y_1 , \dots ,y_{i-1}, {\rm \boldsymbol{x}}) \
&=\prod_{t=1}^{T_{y}} g(y_{i-1}, s_i, c_i) \end{align} $$ \(g\)は、\(y_i\)の確率を出力する非線形の関数である。\(s_i\)は時刻\(i\)のRNN\(f\)の内部状態であり、 $$ s_i = f(s_{i-1}, y_{i-1}, c_i) $$ で計算される。 \(c_i\)は、生成する単語に関係する入力文の文脈を示すベクトルである。 encoderが出力するアノテーション\((h_1 \cdots , h_{T_x})\)から $$ c_i=\sum^{T_x}_{j=1}\alpha_{ij}h_j $$ で計算される。ただし $$ \alpha_{ij}=\frac{\exp(e_{ij})}{\sum^{T_x}_{k=1}\exp(e_{ik})} $$ $$ e_{ij}=a(s_{i-1},h_j) $$ であり、\(a\)は論文中でalignment modelと呼ばれる、順伝播ネットワークである。

Encoder

decoderの入力にある\(h_j\)は、\(j\)番目の単語周辺に注目した入力文全体の情報を含むベクトルである。 Encoderには、bidirectional RNNが使われる。 \(h_j\)は、j番目の単語に対応する順方向と逆方向の内部状態を連結したベクトルである。


論文をこちらからダウンロードできます。