Introduction
- ๋น์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ํ์ฉํ ๊ธฐ๊ณ๋ฒ์ญ์์๋ ๋๋ถ๋ถ
encoder
์decoder
๋ฅผ ํฌํจํ ๋ชจ๋ธ์ ์ฌ์ฉํ์ต๋๋ค - ์ด๋ฌํ ๋ชจ๋ธ์
๊ณ ์ ๋ ๊ธธ์ด
์context vector
๋ฅผ ์ฌ์ฉํ์ฌ ๊ธธ์ด๊ฐ ๊ธด ๋ฌธ์ฅ์์ ์ฑ๋ฅ์ ํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. - ๋ฐ๋ผ์ ๋
ผ๋ฌธ์์๋ ๊ฐ๊ฐ์
target world
์ ๋ํด ์๋ก๋ค๋ฅธcontext vector
๋ฅผ ์ฌ์ฉํจ์ผ๋ก์ ๊ธธ์ด๊ฐ ๊ธด ๋ฌธ์ฅ์ ๋ํ ์ฑ๋ฅ์ ํ๋ฅผ ๊ฐ์ ํฉ๋๋ค. - ์ด๋ฌํ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ทธ ๋น์์ state of the art์ธ phrase-based system๊ณผ ๋น์ทํ ๋ฒ์ญ ์ฑ๋ฅ์ ๋ฌ์ฑํ์ต๋๋ค.
Problem Setting
- ๊ธฐ์กด์ RNN๊ธฐ๋ฐ์ seq2seq๋ชจ๋ธ์
source sentence
๊ฐencoder
๋ฅผ ํต๊ณผํ์ฌ ๊ณ ์ ๋ ํฌ๊ธฐ์context vector
๊ฐ ๋๊ณ ์ด๋ฅผdecoder
์ ์ด๊ธฐhidden state
์ฌ์ฉ๋์ดoutput sequence
๋ฅผ ์ถ๋ ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ก์์ต๋๋ค. - ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ด๋ค ๋ฌธ์ฅ์ด๋์ง ๊ณ ์ ๋ ๊ธธ์ด์
context vecotr
๋ก ๋ณํ๋์ผ ํ๋ ๊ตฌ์กฐ์ ํ๊ณ๋๋ฌธ์ ๊ธธ์ด๊ฐ ๊ธด ๋ฌธ์ฅ์์ ์ ๋ณด๋ฅผ ๊ณผ๋ํ๊ฒ ์์ค,์ถ์,๋๋ฝ์์ผฐ์ผ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธด ๋ฌธ์ฅ์์์ ์ฑ๋ฅ์ ํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
Background
- ํ๋ฅ ๋ก ์ ๊ด์ ์์ ๋ฒ์ญ์ source sentence \(\bf{x}\)๊ฐ ์ฃผ์ด์ก์๋ target sentence \(\bf{y}\)์ ๋ํ conditional probability๋ฅผ maximizeํ๋ \(\bf{y}\)๋ฅผ ์ฐพ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
\[\hat{\bf{y}} = \underset{\bf{y}}{\text{argmax}}\,p({\bf{y|x}})\]
- chain rule์ ์ํด \(p(\bf{y|x})\)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ธฐ์กด์ seq2seq ๋ชจ๋ธ์์ ์ ํ์ต๋ decoder์์๋ ๊ฐ time step \(t\)๋ง๋ค chainrule์์ ์ฐ์์ ์ผ๋ก ๊ณฑํ๋ conditional probability๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ง๋๋ฒ ๋ฆฌ๋ทฐํ๋ seq2seq๋ ผ๋ฌธ์ ๊ฒฝ์ฐ \(q(\{h_1,\dots,h_T\}) = h_T\)์์ต๋๋ค.
Method
Intuition
์ถ์ฒ : paper-Figure1
- ์์ ๊ทธ๋ฆผ์ ๋ ผ๋ฌธ์์ ์ ์ํ ๋ชจ๋ธ๋ก ์๋ decoder ์๋๋ encoder์ ๋๋ค.
decoder
๋ฅผ ๋ณด๋ฉด ๊ธฐ์กด์ seq2seq ์ํคํ ์ณ์ ๋ค๋ฅผ๊ฒ์ด ๊ฑฐ์ ์์ต๋๋ค๋ง ์๋ก์ด ์ ๋ณด(ํ์ด์ ธ ๋ค์ด๊ฐ๋ ํ์ดํ) ๋ค์ด๊ฐ๋ฉฐ ์ด๋ ๊ทธ๋ฆผ์ ์๋์ชฝ์ ์๋ encoder์์ ๋ง๋ค์ด์ง์ ์ ์ ์์ต๋๋ค.encoder
๋ bidirectional RNN์ ์ฌ์ฉํฉ๋๋ค. ์ ๋ฐฉํฅ๊ณผ ์ญ๋ฐฉํฅ์ผ๋ก ์ฝ์ด๋ค์ด๋ฉด์ input sequence์ ๋ํด ์ ์ฒด์ ์ด๋ฉด์๋ ํนํ i-th ๋จ์ด(ํ ํฐ)๊ณผ ์ฐ๊ด๋ ์ ๋ณด \(h_t\)๋ฅผ ๋ง๋ญ๋๋ค.- ์ด๋ ๊ฒ ๋ง๋ค์ด์ง input sequence์ ๊ฐ ์์ ์์์ ์ ๋ณด๋ ๊ฐ๊ฐ์ target์ ๋ง๋๋๋ฐ ์ผ๋ง๋ ์ค์ํ ์ ๋ณด์ธ์ง๋ฅผ ์๋ฏธํ๋ ๊ฐ์ธ \(\alpha\)์ ๊ณฑํ์ฌ ๋ชจ๋ ๋ํด์ง๋๋ค.
- ์ฆ, ๋ํด์ง ๊ฐ์ input sequence์์ ๋ชจ๋ ์ ๋ณด๋ฅผ target์ ์์ธกํ๋๋ฐ ์ผ๋ง๋ ์ค์ํ์ง,๊ด๋ จ์๋์ง๋ฅผ ๊ณ ๋ คํด์ ์ฌ์กฐํฉํ ์๋ก์ด ์ ๋ณด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋ํด์ง ๊ฐ์ ์๋ก์ด ์ถ๋ ฅ๊ฐ \(y_t\)๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ ๋ณด์ธ decoder์ hidden state \(s_t\)๋ฅผ ๊ตฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฐฉํฅ vs ๋จ๋ฐฉํฅ RNN
์ง๊ด์ ์ธ ์ ๋ฆฌ
Modeling
Decoder
- ์์ ๊ฐ์ ์๋ก์ด๋ชจ๋ธ์์ chainrule์์ ๊ฐ๊ฐ์ conditional probability๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ธฐ์กด์ seq2seq๋ชจ๋ธ์์๋ context vector \(c\)๋ target \(y_i\)๊ฐ ๋ฐ๋์ด๋ ๊ณ ์ ๋ ๋ฐ๋์ง ์๋ ๊ฐ์ด์์ต๋๋ค.
- ๋
ผ๋ฌธ์์ ์ ์๋ ๋ชจ๋ธ์ ์ด์๋ ๋ค๋ฅด๊ฒ ๊ฐ๊ฐ์ target \(y_i\)๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด์ ์๋ก๋ค๋ฅธ
context vector
\(c_i\)๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ์ฌ๊ธฐ์ \(c_i\)๋ decoder์ hidden state์ธ \(s_{i}\)๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฆ,๋ค์๊ณผ ๊ฐ์ต๋๋ค.
\[s_i = f(s_{i-1},y_{i-1},c_i)\]
- \(c_i\)๋ target \(y_i\)๋ฅผ ์์ธกํ๊ธฐ ์ํด์ input sequence์์ ๋์จ ์ ๋ณด \(h\)๋ฅผ ์ค์๋ \(a\)์ ๋ฐ๋ผ ์ฌ์กฐํฉํ ์ ๋ณด์ ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ๊ฐ์ annotation ์ฆ hidden state \(h_j\)๋ ์ ์ฒด๋ฌธ์ฅ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ ํนํ \(j\)๋ฒ์งธ poistion๊ทผ์ฒ์ ๋ฌธ๋งฅ์ ๋ณด๋ฅผ ๋ง์ด ๋ด๊ณ ์์ต๋๋ค.(bidirectional RNN์ ์ํ ๊ฒฐ๊ณผ์ ๋๋ค.)
์ฐธ๊ณ - \(i\)๊ฐ์ด ๋ฐ๋๋๋ผ๋ ์ฆ, ๋ ๋ค๋ฅธ target์ ์์ธกํ๋๋ผ๋ ์ฐธ๊ณ ํ๋ input sequence์ ์ ๋ณด์ธ annotations๋ ๋ฐ๋์ง ์์(์ ์ฅํด๋จ๋ค๊ฐ ๊ฐ๊ฐ์ \(y_i\)๊ฐ์ ๊ตฌํ๋๋ฐ ์ฌ์ฉํ ์ ์์,๊ตฌํ์ ์ ์)
๊ฐ๊ฐ์ ๊ฐ์ค์น \(\alpha\)๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐํ ์ ์์ต๋๋ค.
- \(\alpha\)๋ softmax์ ํจ์ซ๊ฐ์ด๋ฉฐ \(e\)๋ฅผ 0๊ณผ1์ฌ์ด์ ๊ฐ์ผ๋ก scailing ํ์์ ์ ์ ์์ต๋๋ค.
- ์ฌ๊ธฐ์ \(a\)๋ alignment model๋ก input sequence์ j๋ฒ์งธ position๊ณผ output sequence์ i๋ฒ์งธ position์ด ์ผ๋ง๋ ์ผ์นํ๋์ง,์ฐ๊ด๋์ด์๋์ง,๊ด๋ จ์๋์ง ์๋ ค์ฃผ๋ ๊ฐ์ด๋ฉฐ ์ด๋ feedforward nueral network๋ก๋ถํฐ ๊ณ์ฐ๋ฉ๋๋ค.
- ์ด์๊ฐ์ด (soft)alignment(์ผ์น,์ ๋ ฌ)๋ฅผ ์ง์ ์ ์ผ๋ก ๊ณ์ฐํจ์ผ๋ก์ alignment๊ฐ ์ ์ฌ์ (๋ณด์ด์ง์๋,์จ๊ฒจ์ ธ์์๋)์ด์๋ ๊ธฐ์กด์ ๊ธฐ๊ณ๋ฒ์ญ ๋ชจ๋ธ๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ alignment๋ฅผ ๋ ์ ํ์ตํ๋๋ก gradient๊ฐ backpropagation ๋ ์ ์์ผ๋ฉฐ ๋ฐ๋ผ์ input๊ณผ output sequnce์์์ alignment๋ฅผ ๊ธฐ์กด๋ชจ๋ธ๋ณด๋ค ๋ ์ ํ์ตํ ์ ์์ต๋๋ค.
Encoder
์ธ์ฝ๋์์๋ ์ ๋ฐฉํฅ,์ญ๋ฐฉํฅ์ผ๋ก input sequence๋ฅผ ๋ชจ๋ ์ฝ์ด๋ค์ด๋ bidirectional RNN์ ์ฌ์ฉํฉ๋๋ค.
forward RNN \(\overset{\rightarrow}{f}\)์ \(x_1\)์์ \(x_{T_x}\)๊น์ง forward hidden states์ธ \((\overset{\rightarrow}{h_1},\dots,\overset{\rightarrow}{h_{T_x}})\)๋ฅผ ๊ณ์ฐํฉ๋๋ค.
backward RNN \(\overset{\leftarrow}{f}\)์ \(x_{T_x}\)์์ \(x_1\)๊น์ง bacward hidden states์ธ \((\overset{\leftarrow}{h_{T_x}},\dots,\overset{\leftarrow}{h_{T_1}})\)์ ๊ณ์ฐํฉ๋๋ค.
์๋ฐฉํฅ,์ ๋ฐฉํฅ์ hidden state๋ฅผ ๋ชจ๋ ๊ฒฐํฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐํฉ๋ hidden state๊ฐ์ ๊ณ์ฐํฉ๋๋ค. \[h_j = \left[\overset{\rightarrow}{h}_j^{\,\,T};\overset{\leftarrow}{h}_j^{\,\,T}\right]^T\]
\(h_j\)๋ input sequence ์ ์ฒด์ ์ ๋ณด๋ฅผ ๋ชจ๋ ๊ฐ์ง๋ง ํนํ position j๊ทผ์ฒ์ ์ง์ค๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๋๋ค.
Experiments
์ถ์ฒ : paper-figure2
- RNNenc๋ ๊ธฐ์กด๋ชจ๋ธ RNNsearch๋ ๋ ผ๋ฌธ์์ ์ ์ํ ๋ชจ๋ธ์ ๋๋ค.
- \(-50\)์ ์ต๋ ๋ฌธ์ฅ์ ๊ธธ์ด๊ฐ \(50\)์ธ ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ต์ํจ ๋ชจ๋ธ์ ์๋ฏธํฉ๋๋ค.
- RNNsearch๊ฐ RNNenc์ ์ฑ๋ฅ๋ณด๋ค ๋์์ ์ ์ ์์ต๋๋ค.(์ฌ์ง์ด RNNenc-50๋ณด๋ค RNNsearch-30์ด ๋ ๋์์.)
- RNNsearch๊ฐ ๊ธธ์ด๊ฐ ๋ ๊ธด ๋ฌธ์ฅ์ robustํ ๋ชจ๋ธ์ด๋ฉฐ ํนํ RNNsearch-50์ ๊ธด ๋ฌธ์ฅ์ ๋ํด์ ์ฑ๋ฅ์ด ์๋ฑํ ์ข์์ ์ ์ ์์ต๋๋ค.
- ์์ ๊ทธ๋ฆผ์ ๊ฐ์ค์น \(\alpha\)๊ฐ์ ๋ํ๋ ๋๋ค.
- ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ฃผ๋๊ฐ์ ์ ๊ฐ์ด ๋๋ถ๋ถ ํฐ ๊ฒ์ผ๋ก ๋ณด์ ์์ด์ ํ๋์ค์ด ๋จ์ด์ฌ์ด์ alingment(์ผ์น)๋ ๋๋ถ๋ถ ๋จ์กฐ๋ก์(monotonic)์ ์ ์ ์์ต๋๋ค.
- ์ด๋ ์ค์ ๋ก ์์ด์ ํ๋์ค์ด ์ฌ์ด์ ์ด์์ด ๋๋ถ๋ถ ์ผ์นํ๋ค๋ ์ฌ์ค๋ก ๋ณด์ ์ง๊ด์ ์ธ ์ฌ์ค์ ๋๋ค.
- ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ํ์ฉ์ฌ,๋ช ์ฌ์ ๊ฒฝ์ฐ์๋ ๋ ์ธ์ด ์ฌ์ด์ ์ด์์ ์ฐจ์ด๊ฐ ์กด์ฌํฉ๋๋ค.
- ์ด๋ ๊ฒ ์ด์์ ์ฐจ์ด๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์๋ ๋ชจ๋ธ์์๋ ์ฌ๋ฐ๋ฅด๊ฒ alignment์ํด์ ์ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด figure3์์ [European Economic Area]๋ [zone economique europยดeen]๋ก ๋ฒ์ญ์ด ๋จ์ ํ์ธํ ์ ์์ต๋๋ค.
- ์ด๋ zone์ด๋ผ๋ ๋จ์ด๊ฐ ์ด์์ ์ฐจ์ด๊ฐ ์๊ธฐ์ ๋ ๋จ์ด๋ฅผ ๋ฐ์ด๋์ด์ Area๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ alignmentํ์์ ์ ์ ์์ต๋๋ค.(๋ํ ๋๋จธ์ง ๋จ์ด๋ค๋ ๋๋์๊ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ alignํ์์ ์ ์ ์์ด์.)
experiments detail
- RNNenc์ ๊ฒฝ์ฐ encoder,decoder์ 1000 hidden units์ธ RNN์ฌ์ฉ
- RNNsearch์ ๊ฒฝ์ฐ encoder,decoder์ ๊ฐ๊ฐ์ 1000๊ฐ์ hidden units์ ๊ฐ์ง forward,backward(bidirectional) RNN์ ์ฌ์ฉํ์
- RNNsearch,RNNenc ๋ ๊ฒฝ์ฐ ๋ชจ๋ target word์ ๋ํ conditional probability ๊ณ์ฐ์ ์ํด single maxout์ ํฌํจํ multilayer neural network๋ฅผ ์ฌ์ฉํจ.
- SGD with Adadelta
- minibatch of 80 sentences
- beam search
Conclusion
- ๋น์์ ์ธ๊ณต์ ๊ฒฝ๋ง ๊ธฐ๋ฐ ๊ธฐ๊ณ๋ฒ์ญ ๋ชจ๋ธ์
encoder
-decoder
๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ ์ฌ๊ธฐ์๋ ๊ณ ์ ๋ ํฌ๊ธฐ์context vector
์์์ ๋ณด์ ์์ค
์ด ์ผ์ด๋๋ค๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. - ๋ฐ๋ผ์ ๊ฐ๊ฐ์ target word๋ฅผ ์์ฑํ ๋ input sequence์์ ๋์ค๋ ๊ฐ๊ฐ์ ๋ชจ๋ ์ ๋ณด(hidden state)๋ฅผ ์ค์๋์ ๋ฐ๋ผ์ ์ฌ์กฐํฉํ ์๋ก์ด ์ ๋ณด๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ํ์ฉํฉ๋๋ค.
- ์ด๋ input sequence์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ context vector๋ก ํจ์ถํด์ผํ๋ ๋ถ๋ด์ ์ค์ฌ์ฃผ๋ฉฐ ๋์์ target๊ฐ์ ์์ฑํ๋๋ฐ ํ์ํ input sequence์ ํน์ ํ ์ ๋ณด์ ์ง์ค(attention)ํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธด ๋ฌธ์ฅ์ ๋ํด์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์์ผ๋ฉฐ ๋ํ ๊ธฐ์กด์ ๋ชจ๋ธ๊ณผ ๋ค๋ฅด๊ฒ alignment๋ชจ๋ธ๊ณผ ๋ฒ์ญ๋ชจ๋ธ์ ๋์์ ํ์ต์ํฌ ์ ์์๋ค๋ ์ ์์ ๊ธ์ ์ ์ ๋๋ค.