์ด ๊ธ์์๋ attention์ด ๋ฌด์์ธ์ง, ๋ช ๊ฐ์ ์ค์ํ ๋ ผ๋ฌธ๋ค์ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํ๊ณ NLP์์ ์ด๋ป๊ฒ ์ฐ์ด๋ ์ง๋ฅผ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
๋ชฉ์ฐจ
- ๊ธฐ์กด Encoder-Decoder ๊ตฌ์กฐ์์ ์๊ธฐ๋ ๋ฌธ์
- Basic Idea
- Attention Score Functions
- What Do We Attend To?
- Multi-headed Attention
- Transformer
๊ธฐ์กด Encoder-Decoder ๊ตฌ์กฐ์์ ์๊ธฐ๋ ๋ฌธ์
Encoder-Decoder ๊ตฌ์กฐ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ input sequence๋ฅผ ์ด๋ป๊ฒ vectorํํ ๊ฒ์ด๋๋ ๋ฌธ์ ์ ๋๋ค. ํนํ NLP์์๋ input sequence์ด๊ฐ dynamicํ ๊ตฌ์กฐ์ผ ๋๊ฐ ๋ง์ผ๋ฏ๋ก, ์ด๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ ๋ฒกํฐ๋ก ๋ง๋ค๋ฉด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ฆ, “์๋ ” ์ด๋ผ๋ ๋ฌธ์ฅ์ด๋ “์ค๋ ๋ ์จ๋ ์ข๋๋ฐ ๋ฏธ์ธ๋จผ์ง๋ ์ฌํ๋๊น ๋๊ฐ ๋ ๋ง์คํฌ ๊ผญ ์ฐ๊ณ ๋๊ฐ๋ ด!” ์ด๋ผ๋ ๋ฌธ์ฅ์ด ๋ด๊ณ ์๋ ์ ๋ณด์ ์์ด ๋งค์ฐ ๋ค๋ฆ์๋ encoder-decoder๊ตฌ์กฐ์์๋ ๊ฐ์ ๊ธธ์ด์ vector๋ก ๋ฐ๊ฟ์ผ ํ์ฃ . Attention์ ๊ทธ ๋จ์ด์์ ์ ์ ์๋ ๊ฒ์ฒ๋ผ, sequence data์์ ์ํฉ์ ๋ฐ๋ผ ์ด๋ ๋ถ๋ถ์ ํนํ ๋ ์ฃผ๋ชฉ์ ํด์ผํ๋ ์ง๋ฅผ ๋ฐ์ํจ์ผ๋ก์จ ์ ๋ณด ์์ค๋ ์ค์ด๊ณ ๋ ์ง๊ด์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒ์ ์ ์๋์์ต๋๋ค.
Basic Idea (Bahdanau Attention)
๋ ผ๋ฌธ : Neural Machine Translation by Jointly Learning to Align and Translate
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ encodeํ ๋๋ ๊ฐ๊ฐ์ ๋จ์ด๋ฅผ vector๋ก ๋ง๋ค๊ณ , ๊ฐ๊ฐ์ attention weight์ ๋ฐ๋ผ weighted sum์ ํ ๋ค์, ์ด๋ฅผ ํ์ฉํ์ฌ ๋ค์ ๋จ์ด๊ฐ ๋ฌด์์ผ ์ง๋ฅผ ์ ํํ๋ ๊ฒ์ ๋๋ค.
๋ ผ๋ฌธ์ ์ด ๋ฐฉ์์ NMT์ ์ฌ์ฉํ์๋๋ฐ์, bidirectional RNN์ encoder๋ก ์ฌ์ฉํ๊ณ , $i$๋ฒ์งธ ๋จ์ด์ ๋ํด ๋ชจ๋ ๋จ์ด์ ๋ํ encoder output์ ํฉ์ณ์ context vector๋ก ๋ง๋๋๋ฐ, ์ด ๋ ๋จ์ sum์ด ์๋ weight $\alpha_{ij}$๋ฅผ ๊ณฑํด์ weighted sum์ ํ ๊ฒ์ ๋๋ค(์๋ ์ฒซ๋ฒ์งธ ์์). ์ด ๋ $i$๋ฒ์งธ ๋จ์ด์ ๋ํ $j$๋ฒ์งธ ๋จ์ด์ attention weight๋ ์๋ ์์ ์ฒ๋ผ $i$๋ฒ์งธ ๋จ์ด์ $j$๋ฒ์งธ์ ์๋ encoder output๋ผ๋ฆฌ๋ฅผ feedforward neural network(attention weight๋ฅผ ๋ง๋๋ ๋ชจ๋ธ์ ๋ ผ๋ฌธ์์๋ align ๋ชจ๋ธ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค)๋ฅผ ํ์์ ๋ง๋ญ๋๋ค(์๋ ๋๋ฒ์งธ ์์).
$$ \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k=1}^{T_x} \exp(e_{ik})} $$
$$ e_{ij} = a(s_{i-1}, h_j) $$
align ๋ชจ๋ธ์ Multi-layer Perceptron์ผ๋ก ๋ง๋ ์ด์ ๋ ๋น์ ํ์ฑ์ ๋ฐ์ํ๊ณ ์ ํ ๊ฒ์ด๋ผ๊ณ ํ๊ตฌ์, ๊ฒฐ๊ตญ ์ด align ๋ชจ๋ธ์ NMT์์ ๊ฐ์ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋จ์ด๋ฅผ ์ ์ ๋ ฌํ๊ณ (๊ทธ๋์ align) ์ง์ง์ด ์ฃผ๊ธฐ ์ํด์ ์๋ ๊ฒ๋๋ค. NMT์์์ cost function ์์ฒด๋ฅผ loss๋ก backpropagation ํ๊ตฌ์.
Attention Score Functions
์ ๋ ผ๋ฌธ ์ดํ๋ก ์ด attention score $\alpha_{ij}$๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค ์ง์ ๋ํ ๋ช๊ฐ์ง ๋ณํ๋ค์ด ์๊ฒผ๋๋ฐ์, ์ด๋ฅผ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ๋จ์ด๋ฅผ ํต์ผํ๊ธฐ ์ํด ๋ง๋ค๊ณ ์ ํ๋ decoder state๋ฅผ $q$ (query vector), ์ฌ๊ธฐ์ ์ฐ์ด๋ ๋ชจ๋ encoder states๋ฅผ $k$ (key vector)๋ผ๊ณ ํ๊ฒ ์ต๋๋ค(์ด๋ ๋ค์์ ๋ค๋ฃฐ Attention is All You Need ๋ ผ๋ฌธ์์ ๋์จ ์ ์์ ๋๋ค). ์ด ๋จ์ด๋ฅผ ์ด์ฉํ๋ค๋ฉด $\alpha_{ij}$๋ $i$๋ฒ์งธ์ query vector๋ฅผ ๋ง๋ค๊ธฐ ์ํ $i-j$ key vector๋ค ์ฌ์ด์ attention score๋ผ๊ณ ํ ์ ์๊ฒ ์ฃ .
(1) Multi-layer Perceptron (Bahdanau et al. 2015)
$$ a(q, k) = w_2^T \tanh (W_1[q;k]) $$
์ ๋ ผ๋ฌธ์ MLP๋ฅผ ๋ค์ ์ ์ ๊ฑด๋ฐ์, ์ด ๋ฐฉ๋ฒ์ ๋๋ฆ ์ ์ฐํ๊ณ ํฐ ๋ฐ์ดํฐ์ ํ์ฉํ๊ธฐ ์ข๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
(2) Bilinear (Luong et al. 2015)
$$ a(q, k) = q^TWk $$
๊ฐ์ ์ฐ๋์ ๋์จ Lunong Attention์ $q$์ $k$ ์ฌ์ด์ weight matrix $W$ ํ๋๋ฅผ ๊ณฑํด์ ๋ง๋ค์ด์ค๋๋ค.
(3) Dot Product (Luong et al. 2015)
$$ a(q, k) = q^Tk $$
2์ ์ ์ฌํ์ง๋ง, ๊ทธ๋ฅ $q$์ $k$๋ฅผ dot productํด์ ์ด๋ฅผ attention์ผ๋ก ์ฐ๋ ๋ฐฉ๋ฒ๋ ์ ์๋์์ต๋๋ค. ์ด๋ ์์ ํ์ต์ํฌ ํ๋ผ๋ฏธํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ข์ง๋ง, $q$์ $k$์ ๊ธธ์ด๋ฅผ ๊ฐ๊ฒ ํด์ผ ํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
(4) Scaled Dot Product (Vaswani et al. 2017)
$$ a(q, k) = \frac{q^Tk}{\sqrt{\mid{k}\mid}} $$
์ต๊ทผ์ ๋์จ ๋ ผ๋ฌธ ์ค์์ 3์ ๊ฐ์ ์ํจ ๋ ผ๋ฌธ์ธ๋ฐ์. ๊ธฐ๋ณธ์ ์ธ ์ ๊ทผ์ dot product ๊ฒฐ๊ณผ๊ฐ $q$์ $k$์ ์ฐจ์์ ๋น๋กํ์ฌ ์ฆ๊ฐํ๋ฏ๋ก, ์ด๋ฅผ ๋ฒกํฐ์ ํฌ๊ธฐ๋ก ๋๋ ์ฃผ๋ ๊ฒ๋๋ค.
What Do We Attend To?
์ง๊ธ๊น์ง์ ๋ฐฉ๋ฒ๋ก ๋ค์ ๋ค input sentence์ RNN output์๋ค๊ฐ attention์ ์จ์ ์ด๋ฅผ decoding์ ํ์ฉํ์ต๋๋ค. ์ด์ ์ข๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก attention์ ๋งฅ์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
(1) Input Sentence
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๊ทธ ์ / ๊ทธ ํ input sentence๋ค์๋ค๊ฐ attention์ ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- Copying Mechanism (Gu et al. 2016)
๋ ผ๋ฌธ : Incorporating Copying Mechanism in Sequence-to-Sequence Learning
์ด ๋ฐฉ๋ฒ์ output sequence์ input sequences์ ๋จ์ด๋ค์ด ์์ฃผ ์ค๋ณต๋ ๋, ์ด๋ฅผ ์ copyํ๊ธฐ ์ํด ์ฒ์ ์ ์๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ํ๋ฅผ ์ด๋์ด ๋๊ฐ ๋, ๊ธฐ์กด์ ๋์๋ ๋จ์ด๋ค์ ํ์ฉํด์ ๋๋ตํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ฃ .
์ด ๊ธ์ ์๋ณธ์ ์ผ๋ถ๋ง ํฌํจํ๊ณ ์์ต๋๋ค. ์ ์ฒด ๋ด์ฉ์ ์ด์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.