์ฌ๋ฌ ์ฌ์ดํธ์ ํฉ์ด์ ธ ์๋ ๊ธ์ ๋ชจ์ผ๋ฉด ์ด๋ ค์ด ๊ฐ๋ ๋ค์ ์๋ฒฝํ ์ดํดํ ์ ์๋ค๊ณ ๋ฏฟ์ผ๋ฉด์ ์์ํ ์์ฒด ์ฝํ ์ธ 'Medium ๋ฒ์ญ'
๐ฌ ์ต๋ํ ๋งค๋๋ฝ๊ฒ ํด์ํ๊ณ ์ ๋ ธ๋ ฅํ์ง๋ง ์ด์ํ ๋ฌธ์ฅ์ด ์์ ์ ์์ต๋๋ค. ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋ค ๐
์๋ณธ ๊ธ ์ฃผ์ : https://towardsdatascience.com/sequence-2-sequence-model-with-attention-mechanism-9e9ca2a613a
์ด ๊ธ์ ํตํด ๋น์ ์ด ๋ฐฐ์ฐ๊ฒ ๋ ๋ด์ฉ
- seq2seq ๋ชจ๋ธ์ ์ดํ ์ ๋ฉ์ปค๋์ฆ์ด ํ์ํ ์ด์
- Bahdanau ์ดํ ์ ๋ฉ์ปค๋์ฆ์ ์๋ ๋ฐฉ์
- Luong ์ดํ ์ ๋ฉ์ปค๋์ฆ์ ์๋ ๋ฐฉ์
- Bahdanau ์ดํ ์ ๊ณผ Luong ์ดํ ์ ์ ํต์ฌ ์ฐจ์ด์
attention์ด๋ ๋ฌด์์ด๋ฉฐ, seq2seq ๋ชจ๋ธ์ ์ดํ ์ ๋ฉ์ปค๋์ฆ์ด ํ์ํ ์ด์
๋ ๊ฐ์ง ์๋๋ฆฌ์ค๋ฅผ ๊ฐ์ ํ๋๋ฐ, ํ ๊ฐ์ง๋ ํ์ฌ ๋ด์ค๊ฑฐ๋ฆฌ์ ๊ด๋ จ๋ ๊ธฐ์ฌ๋ฅผ ์ฝ๋ ๊ฒฝ์ฐ์ด๋ค. ๋ค๋ฅธ ํ๋๋ ์ํ์ ์ค๋นํ๋ ์๋๋ฆฌ์ค์ด๋ค. ๋ ์ํฉ์ ์์ด์ ์ง์ค์ ์ ๋๋ ๊ฐ์๊น ์๋๋ฉด ๋ค๋ฅผ๊น?
๋น์ ์ ์๋ง ๋ด์ค ๊ธฐ์ฌ๋ฅผ ์ฝ์ ๋๋ณด๋ค ์ํ์ ์ค๋นํ ๋ ๋ ์ฃผ์ ๊น๊ฒ ์ฝ์ ๊ฒ์ด๋ค. ์ํ ๊ณต๋ถ๋ฅผ ํ๋ ๋์ ๋จ์ํ๊ฑฐ๋ ๋ณต์กํ ๋ด์ฉ์ ๊ธฐ์ตํ๋ ๋ฐ์ ๋์์ด ๋๋ ํค์๋์ ๋ ์ง์คํด ํ์ตํ ๊ฒ์ด๋ค. ์ด๋ฌํ ๋ฐฉ์์ ํน์ ๊ด์ฌ ๋ถ์ผ์ ์ง์คํ๊ณ ์ ํ๋ ๋ฅ๋ฌ๋ ๊ณผ์ ์๋ ์ ์ฉ๋๋ค.
Sequence-to-Sequence(seq2seq) ๋ชจ๋ธ์ ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.
Seq2Seq ๋ชจ๋ธ์ ์์ค ๋ฌธ์ฅ์ ํ๊ฒ ๋ฌธ์ฅ์ ๋งคํํ๋ค. ๊ธฐ๊ณ ๋ฒ์ญ์ ๊ฒฝ์ฐ ์์ค ๋ฌธ์ฅ์ ์์ด, ํ๊ฒ ๋ฌธ์ฅ์ ํ๋์ด๊ฐ ๋ ์ ์๋ค. (์์ด๋ฅผ ํ๋์ด๋ก ๋ฒ์ญํ๋ค๋ ์๋ฏธ)
์์ด๋ก ๋ ์์ค ๋ฌธ์ฅ์ ์ธ์ฝ๋์ ์ ๋ฌํ๋ค. ์ธ์ฝ๋๋ ์์ค ๋ฌธ์ฅ์ ์ ์ฒด ์ ๋ณด๋ฅผ context vector๋ผ๊ณ ํ๋ ํ๋์ ์ค์๊ฐ ๋ฒกํฐ๋ก ์ธ์ฝ๋ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ context vector๋ ๋์ฝ๋๋ก ์ ๋ฌ๋์ด ํ๊ฒ ์ธ์ด๋ก ๋ ์ถ๋ ฅ ๋ฌธ์ฅ์ ์์ฑํ๋ค. Context vector๋ ์ ๋ ฅ ๋ฌธ์ฅ ์ ์ฒด๋ฅผ ํ๋์ ๋ฒกํฐ๋ก ์์ฝํด์ผ ํ๋ค.
์ ๋ ฅ ๋ฌธ์ฅ์ด ๊ธธ๋ฉด ๋์ฝ๋์ ์ ๊ณตํ ๋ชจ๋ ์ ๋ณด๋ค์ ์ธ์ฝ๋์ ๋จ์ผ ๋ฒกํฐ์ ํฌํจ์ํฌ ์ ์์๊น?
๋จ์ด๋ฅผ ์์ธกํ ๋ ๋ฌธ์ฅ ์ ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ๋ด๊ณ ์๋ ๋จ์ผ ๋ฒกํฐ ๋์ ๋ฌธ์ฅ ๋ด ๋ช ๊ฐ์ ๊ด๋ จ ๋จ์ด์ ์ด์ ์ ๋ง์ถ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊น?
์ดํ ์ ๋ฉ์ปค๋์ฆ์ด ์ด ๋ฌธ์ ๋ค(์์ ๋ ๊ฐ์ง ์ฌํญ)์ ํด๊ฒฐํ ์ ์๊ฒ ํด์ค๋ค.
๋์ฝ๋ฉ ๋จ๊ณ๋ง๋ค ๋์ฝ๋๋ attention weights ์งํฉ์ ์ฌ์ฉํด ์ ๋ ฅ๋ ๊ฐ ๋จ์ด์ ์ผ๋ง๋ "attention"ํด์ผํ๋์ง ์๋ ค์ค๋ค. attention weights๋ ๋ฒ์ญ์ ์ํด ๋์ฝ๋์ ๋ฌธ๋งฅ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
Bahdanau ์ดํ ์ ๋ฉ์ปค๋์ฆ
Bahdanau์ ์ฐ๊ตฌ์ง์ align๊ณผ translate๋ฅผ ๋์์ ํ์ตํ๋ ์ดํ ์ ๋ฉ์ปค๋์ฆ์ ์ ์ํ๋ค. ์ธ์ฝ๋ state์ ๋์ฝ๋ state์ ์ ํ ์กฐํฉ์ ์ํํ๊ธฐ ๋๋ฌธ์ Additive attention์ด๋ผ๊ณ ์๋ ค์ ธ์๊ธฐ๋ ํ๋ค.
Bahdanau๊ฐ ์ ์ํ ์ดํ ์ ๋ฉ์ปค๋์ฆ์ ์ดํดํด๋ณด์.
- seq2seq์์ ์ธ์ฝ๋์ ๋ง์ง๋ง hidden state๋ ์ดํ ์ ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Bahdanau ์ดํ ์ ๋ฉ์ปค๋์ฆ์ context vector๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ธ์ฝ๋(forward&backward)์ ๋์ฝ๋์ ๋ชจ๋ hidden states๋ฅผ ์ฌ์ฉํ๋ค.
- ์ดํ ์ ๋ฉ์ปค๋์ฆ์ feed-forward ๋คํธ์ํฌ์ ์ํด ํ๋ผ๋ฏธํฐํ๋ alignment score์ ๋ฐ๋ผ ์ ๋ ฅ ์ํ์ค์ ์ถ๋ ฅ ์ํ์ค๋ฅผ ์ ๋ ฌํ๋ค. ์ ์์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ๋ฐฉ์์ ์์ค ๋ฌธ์ฅ์์ ๊ฐ์ฅ ๊ด๋ จ์ฑ ์๋ ์ ๋ณด์ ์ง์คํ๋ ๋ฐ์ ๋์์ด ๋๋ค.
- ๋ชจ๋ธ์ ์์ค ์์น์ ๊ด๋ จ๋ context vector์ ์ด์ ์ ์์ฑ๋ ํ๊ฒ ๋จ์ด์ ๊ธฐ๋ฐํด ํ๊ฒ ๋จ์ด๋ฅผ ์์ธกํ๋ค.
์ดํ ์ ๋ฉ์ปค๋์ฆ์ด ์ ์ฉ๋ Seq2Seq ๋ชจ๋ธ์ ์ธ์ฝ๋, ๋์ฝ๋, ์ดํ ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋๋ค.
์ดํ ์ ๋ ์ด์ด์ ๊ตฌ์ฑ ์์๋
- Alignment layer
- Attention weights
- Context vector
Alignment score
Alignment score๋ ์์น $j$ ์ฃผ๋ณ์ ์ ๋ ฅ๊ณผ ์์น $i$ ์ฃผ๋ณ์ ์ ๋ ฅ์ด ์ผ๋ง๋ ์ ๋ง๋์ง๋ฅผ ๋ํ๋ธ๋ค. Score๋ ํ๊ฒ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ง์ ๋์ฝ๋์ hidden state $s_{i-1}$๊ณผ ์ ๋ ฅ ๋ฌธ์ฅ์ hidden state $h_{j}$์ ๊ธฐ๋ฐํ๋ค.
$$e_{ij}=a(s_{i-1}, h_{j})$$
๋์ฝ๋๋ ์์ค ๋ฌธ์ฅ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ณ ์ ๊ธธ์ด ๋ฒกํฐ์ ๋ด๋ ๊ฒ์ด ์๋๋ผ ์์ค ๋ฌธ์ฅ์ ์ด๋ค ๋ถ๋ถ์ ์ง์คํด์ผํ๋์ง ๊ฒฐ์ ํ๋ค.
Alignment ๋ฒกํฐ๋ ์์ค ๋ฌธ์ฅ๊ณผ ๊ธธ์ด๊ฐ ๊ฐ๊ณ ๋์ฝ๋์ ๋งค time step๋ง๋ค ๊ณ์ฐ๋๋ ๋ฒกํฐ๋ค.
Attention weights
Attention weights๋ฅผ ์ป๊ธฐ ์ํด alignment score์ softmax ํ์ฑํ ํจ์๋ฅผ ์ ์ฉํ๋ค.
→ $a_{ij}$์ ์๋ฏธ : ๋์ฝ๋์ i๋ฒ์งธ time step์์ j๋ฒ์งธ ์ธ์ฝ๋ ์ถ๋ ฅ์ ๊ฐ์ค์น(ํธ์ฆ์จ ๋จธ์ ๋ฌ๋ ๋ฐ์ท)
Softmax ํ์ฑํ ํจ์๋ฅผ ๊ฑฐ์น๋ฉด ์ดํฉ์ด 1์ด ๋๋ ํ๋ฅ ์ ์ป์ผ๋ฉฐ ์ด๊ฒ์ ๊ฐ ์ ๋ ฅ ๋ฌธ์ฅ์ ๋ํ ๊ฐ์ค์น๋ฅผ ๋ํ๋ด๋ ๋ฐ ๋์์ด ๋๋ค. ์ ๋ ฅ ๋ฌธ์ฅ์ attention weights๊ฐ ๋์์๋ก ํ๊ฒ ๋จ์ด ์์ธก์ ๋ฏธ์น๋ ์ํฅ์ด ํฌ๋ค.
Context vector
Context vector๋ ๋์ฝ๋์ ์ต์ข ์ถ๋ ฅ์ ๊ฒฐ์ ํ ๋ ์ฌ์ฉ๋๋ค. Context vector $c_{i}$๋ attention weights์ ์ธ์ฝ๋ hidden states ($h_{1}$, $h_{2}$, ..., $h_{tx}$)์ weighted sum(๊ฐ์ค ํฉ)์ด๋ค.
ํ๊ฒ ๋จ์ด ์์ธก
ํ๊ฒ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด, ๋์ฝ๋๊ฐ ์ฌ์ฉํ๋ ๊ฐ์
- Context vector $c_{i}$
- ์ด์ time step $y_{i-1}$์์ ๋์จ ๋์ฝ๋์ ์ถ๋ ฅ
- ๋์ฝ๋์ ์ด์ hidden state $s_{i-1}$
Luong ์ดํ ์ ๋ฉ์ปค๋์ฆ
Luong ์ดํ ์ ์ Multiplicative attention์ด๋ผ๊ณ ๋ ํ๋ค. ๊ฐ๋จํ ํ๋ ฌ ๊ณฑ์ ์ด์ฉํด ์ธ์ฝ๋ state์ ๋์ฝ๋ state๋ก attention score๋ฅผ ๊ณ์ฐํ๋ค. ๋จ์ ํ๋ ฌ ๊ณฑ์ ๋น ๋ฅด๊ณ ๊ณต๊ฐํจ์จ์ ์ด๋ค.
Luong์ ์์ค ๋ฌธ์ฅ์์์ attention ์์น์ ๋ฐ๋ผ ๋ ๊ฐ์ง์ ์ดํ ์ ๋ฉ์ปค๋์ฆ์ ์ ์ํ๋ค.
1. ์์ค ๋ฌธ์ฅ์ ๋ชจ๋ ์์น๋ฅผ attentionํ๋ Global attention
2. ์์ค ๋ฌธ์ฅ์ ํ๊ฒ ๋จ์ด์์ ์ผ๋ถ ์์น์๋ง attentionํ๋ Local attention
Global attention๊ณผ Local attention์ ๊ณตํต์
- ๋์ฝ๋ฉ ๋จ๊ณ์์ time step t๋ง๋ค stacking LSTM ์ต์์์ธต์ hidden state $h_{\theta}$๋ฅผ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ
- ๋ ์ ๊ทผ๋ฒ์ ๋ชฉํ๋ ์์ค์ ๊ด๋ จ์ด ์๋ ์ ๋ณด๋ฅผ ํฌ์ฐฉํ์ฌ ํ์ฌ ํ๊ฒ ๋จ์ด์ธ $y_{t}$๋ฅผ ์์ธกํ๋ ๋ฐ์ ๋์์ด ๋๋ context vector $c_{t}$๋ฅผ ๋์ถํ๋ ๊ฒ์ด๋ค.
- Attention vector๋ ์ด์ ์ alignment decision์ ์๋ฆฌ๊ธฐ ์ํด ๋ค์ time step์์ ๋ชจ๋ธ์ ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ค.
Global attention๊ณผ Local attention์ context vector $c_{t}$๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ค.
Global attention๊ณผ Local attention์ ๋ณด๊ธฐ ์ ์, Luong ์ดํ ์ ๋ฉ์ปค๋์ฆ์์ ์ฃผ์ด์ง ์๊ฐ t์ ๋ํด ์ฌ์ฉ๋๋ ๋ฐฉ์์ ์์๋ณด์. (ํ๊ธฐ๋ฒ๊ณผ ํ๊ธฐ๊ฐ ๋ํ๋ด๋ ์๋ฏธ์ ๋ํด)
Global Attention
- Global attention ๋ชจ๋ธ์ context vector $c_{t}$๋ฅผ ๊ณ์ฐํ ๋ ์ธ์ฝ๋์ ๋ชจ๋ hidden state๋ฅผ ๊ณ ๋ ค
- Global context vector $c_{t}$๋ ๋ชจ๋ ์์ค hidden state $h_{s}$์ alignment vector $a_{t}$์ ๋ฐ๋ผ weighted average๋ก ๊ณ์ฐ๋๋ค.
์์ค ๋ฌธ์ฅ์ด ๊ธด ๋ฌธ๋จ์ด๊ฑฐ๋ ํฐ ๋ฌธ์๋ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
Global attention ๋ชจ๋ธ์ ํ๊ฒ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด ์์ค ๋ฌธ์ฅ์ ๋ชจ๋ ๋จ์ด๋ฅผ ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ๊ธด ๋ฌธ์ฅ์ ๋ฒ์ญ์ด ์ด๋ ค์ธ ์ ์๋ค.
Local attention์ ์ฌ์ฉํ๋ฉด Global attention ๋ชจ๋ธ์ ๋จ์ ์ ํด๊ฒฐํ ์ ์๋ค.
Local Attention
- Local attention์ ํ๊ฒ ๋จ์ด๋ง๋ค ์์ค ์์น์ ์ผ๋ถ์๋ง ์ด์ ์ ๋ง์ถ๊ธฐ ๋๋ฌธ์ global attention๋ณด๋ค ๊ณ์ฐ ๋น์ฉ์ด ๋ฎ๋ค.
- Local attention ๋ชจ๋ธ์ ์๊ฐ t์์ ๊ฐ ํ๊ฒ ๋จ์ด์ ๋ํด ์ ๋ ฌ๋ ์์น $P_{t}$๋ฅผ ๊ตฌํ๋ค.
- ์ ๋ ฌ๋ ์์น๋ ๋จ์ํ๊ฒ(Monotonic alignment) ๋๋ ์์ธก์ ์ผ๋ก(Predictive alignment) ์ ํ๋ ์ ์๋ค.
Bahdanau ๋ฉ์ปค๋์ฆ๊ณผ Luong ๋ฉ์ปค๋์ฆ์์์ attention ๊ณ์ฐ
Bahdanau์ ์ฐ๊ตฌ์ง๋ค์ ์๋ฐฉํฅ ์ธ์ฝ๋์ ์๋ ์๋ฐฉํฅ ๋ฐ ์ญ๋ฐฉํฅ hidden state์ non-stacking ๋จ๋ฐฉํฅ ๋์ฝ๋์ ์ด์ ํ๊ฒ ๋จ์ด hidden state๋ฅผ ํฉ์น๋(concatenation) ๋ฐฉ๋ฒ์ ์ผ๋ค.
Luong๊ณผ ์ฐ๊ตฌ์ง๋ค์ ์ธ์ฝ๋์ ๋์ฝ๋ ๋ชจ๋ ์ต์์ LSTM ๋ ์ด์ด์ hidden state๋ฅผ ์ฌ์ฉํ๋ค.
Luong ์ดํ ์ ๋ฉ์ปค๋์ฆ์ alignment vector๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ๋์ฝ๋์ ํ์ฌ hidden state๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ฉด, Bahdanau ๋ฉ์ปค๋์ฆ์ ์ด์ time step์ ์ถ๋ ฅ์ ์ฌ์ฉํ๋ค.
์ฐธ๊ณ ์๋ฃ | References
- Dzmitry Bahdanau et al., Neural Machine Translation by Jointly Learning to Align and Translate(2014)
- Minh-Thang Luong et al., Effective Approaches to Attention-based Neural Machine Translation(2015)
- ํธ์ฆ์จ ๋จธ์ ๋ฌ๋
'Archive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฒ์ญ] Micro, Macro & Weighted Averages of F1 Score, Clearly Explained (1) | 2022.12.20 |
---|---|
[๋ฒ์ญ] Foundations of NLP Explained Visually: Beam Search, How It Works (0) | 2022.08.01 |
[๋ฒ์ญ] Word2Vec Research Paper Explained (0) | 2022.07.04 |
[๋ฒ์ญ] Introduction to Stemming and Lemmatization (0) | 2022.04.01 |
[๋ฒ์ญ] Entropy, Cross-Entropy, KL-Divergence (0) | 2022.03.31 |