2017๋ ์ ๋ฐํ๋ Attention Is All You Need๋ Transformer ๋ชจ๋ธ์ ์ ์ํ ๋ ผ๋ฌธ์ด๋ค. ์ด ๋ชจ๋ธ์ ๊ธฐ์กด์ RNN์ด๋ LSTM์ ์ฌ์ฉํ์ง ์๊ณ , ์ค์ง Attention Mechanism๋ง์ ์ฌ์ฉํ์ฌ Sequence Data๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ง๊ธ๋ถํฐ NLP ๋ถ์ผ์ ํ์ ์ ์ธ ๋ฐ์ ์ ์ผ์ผํจ Transformer์ ๋ํด ์์๋ณด์.
Attention Mechanism
Transformer์์ ๊ฐ์ฅ ์ค์ํ ๊ฐ๋ ์ธ Attention์ ํ ๋จ์ด์ ๋ค๋ฅธ ๋จ์ด ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ชจ๋ ํ์ ํ ์ ์์ด ํน์ ๋ช ๋จ์ด ๊ฐ์ ๊ด๊ณ๊ฐ ์๋ ๋ชจ๋ ๋จ์ด์ ๋์๋๋ ๊ด๊ณ๋ฅผ ํ์ ํ๋ค. ์ด๋ ๊ฒ Sequence Data์ ์์ ์ ๋ณด์์ ๋ฒ์ด๋ ํ์ตํ์ฌ RNN, LSTM ๋ฑ์์ ๋ฌธ์ ๋์๋ Long Term Dependency (๋ฐ์ดํฐ๋ฅผ Sequentialํ๊ฒ ์ฒ๋ฆฌํ์ฌ ๋จผ ๊ณผ๊ฑฐ ์ ๋ณด๊ฐ ํ์ฌ ์์ ์ ์ํฅ์ ๋ผ์น์ง ๋ชปํ๋ ๋ฌธ์ )๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋์๋ค.
Transformer
Transformer๋ Recurrent ํ์์ ์ ๊ฒฝ๋ง์ด๋ Convolution ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ Attention Mechanism ๋ง์ ์ฌ์ฉํ์ฌ Sequence Data๋ฅผ ์ฒ๋ฆฌํ๋ ์ต์ด์ Neural Network ์ด๋ค.
๋ชจ๋ธ ๊ตฌ์กฐ๋ ํฌ๊ฒ Encoder-Decoder๋ก ๋๋์ด ๋ณผ ์ ์๊ณ , ์ฌ๋ฌ Sequence Model ์ฒ๋ผ Encoder์์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊ด๊ณ๋ฅผ ํ์ตํ๊ณ Decoder์์ ํ์ตํ ๊ด๊ณ๋ฅผ ํตํด ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
์ง๊ธ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ๋ถํฐ ์ต์ข ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๋ ๊ณผ์ ์ ์ดํด๋ณด๋๋ก ํ์.
Input Embedding + Positional Encoding
- Input Embedding
๋ชจ๋ธ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ ๋ฐ์ผ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ด Embedding Vector๋ก ๋ณํํ๋ ๊ฒ์ด๋ค. ๋จ์ด ํ๋ ํ๋๋ฅผ vector(์ซ์)๋ก ๋ณ๊ฒฝํด ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํ๋ ฌ๋ก ํํํ๋ ๊ฒ์ธ๋ฐ, Neural Network๋ ์ซ์ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ๊ธฐ ๋๋ฌธ์ ์ด๊ฐ์ ๊ณผ์ ์ ์ํํ๊ฒ ๋๋ค.
- Positional Encoding
๋ค์์ผ๋ก Input Embedding Vector์ ์์น ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ Positional Encoding ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ค. ๊ธฐ์กด Recurrent Network๋ Sequence ์์์ ์์กดํ์ฑ ํ์ต์ด ์งํ๋๊ธฐ ๋๋ฌธ์ ์์น ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ถ๊ฐํ ํ์๊ฐ ์์์ง๋ง Attention Mechanism์ Sequence ์์์ ์๊ด์์ด ์ ์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ ๊ด๊ณ๋ฅผ ํ์ ํ๊ธฐ ๋๋ฌธ์ ์์น ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ์์ ์ด ๊ผญ ํ์ํ๋ค.
์์น ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. Input Embedding์ ๊ฐ์ ํฌ๊ธฐ์ vector๋ฅผ ๋ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ๋จ, ์ด๋ ์๋ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํ๋ค.
- Input Data ํน์ Input Data์ ๊ธธ์ด์ ์๊ด์์ด Index๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ Index์๋ ํญ์ ๊ฐ์ vector๋ฅผ ๋ํด์ฃผ์ด์ผ ํ๋ค.
- ๋๋ฌด ํฌ์ง ์๋ vector๋ฅผ ๋ํด์ฃผ์ด์ผ ํ๋ค.
1๋ฒ์ ๊ฒฝ์ฐ๋ Sequence๊ฐ ๋ณํ๋๋ผ๋ ์์น Embedding์ ๋์ผํ๊ฒ ๋ง๋ค๊ธฐ ์ํจ์ด๊ณ , 2๋ฒ์ ๋๋ฌด ํฐ ์์น ๊ฐ์ ๋จ์ด ์ ๋ณด๋ณด๋ค ์์น ์ ๋ณด๊ฐ ์๋์ ์ผ๋ก ์ปค์ ธ ๋จ์ด ๊ฐ์ ์๊ด๊ด๊ณ๋ ์๋ฏธ๋ฅผ ์ ์ถํ ์ ์๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ vector๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ก ์ฃผ๊ธฐ ํจ์($sin, cos$)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. -1~1 ์ฌ์ด๋ฅผ ๋ฐ๋ณตํ๋ ์ฃผ๊ธฐ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ด ๋๋ฌด ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ vector ์ฐจ์๋ง๋ค ๋ค๋ฅธ ์ฃผ๊ธฐ์ $sin, cos$ ํจ์๋ฅผ ๋์ด ์์น ๊ฐ์ด ๊ฒน์น์ง ์๋๋ก ํด์ค๋ค.
Encoder
์ด๋ ๊ฒ Input Embedding์ ์์น ์ ๋ณด๋ฅผ ๋ํ Positional Input Embedding Vector๋ฅผ ๊ณ์ฐํ๋ฉด ์ด๋ฅผ Encoder์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํด์ค๋ค. ๊ทธ ๋ค ์ด 2๊ฐ์ sub-layer๋ฅผ ๊ฑฐ์ณ ์ต์ข Encoder Input Representation Vector๋ฅผ ์ถ๋ ฅํ๊ฒ ๋๋ค.
Multi-Head Attention
์ฒซ ๋ฒ์งธ sub-layer๋ ์ฌ๋ฌ ๊ฐ์ Self-Attention ์ฐ์ฐ์ผ๋ก ์ด๋ฃจ์ด์ง Multi-Head Attention์ด๋ค. ํด๋น ๋ ์ด์ด์์ ์ ๋ ฅ ๋ฌธ์ฅ ์ ๋จ์ด๋ค์ ๊ด๊ณ๋ฅผ ํ์ตํ๊ฒ ๋๋ค.
Self-Attention์ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. Input Sequence์ ์ ํ ๋ณํ์ ํตํด ๋ง๋ค์ด์ง Query, Key, Value๋ฅผ ๊ณ์ฐํด Attention ์ฐ์ฐ์ ์ํํ๊ฒ ๋๋ค. ๊ฐ ์ฐ์ฐ์ด ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ์ฐจ๋ก๋๋ก ์ดํด๋ณด๋๋ก ํ์.
- Query, Key, Value
Multi-Head Attention์ Input Embedding์ ์ ํ ๋ณํํ Query, Key, Value๋ฅผ Input Data๋ก ์ฌ์ฉํ๋ค.
Query๋ ํ์ฌ ๋จ์ด(token)๊ฐ Input Sequence์์ ์ด๋ค ๊ฑธ ์ฐพ๊ณ ์ ํ๋์ง ๋ํ๋ด๋ ์ ๋ณด๋ก, ๋ฌธ์ฅ์์ ํ์ฌ ๋จ์ด์ ๋ค๋ฅธ ๋จ์ด๋ค ์ฌ์ด ์ด๋ค ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋์ง, ์ด๋ค ๊ด๋ จ์ฑ์ ๋๋์ง ์ฐพ๊ณ ์ํ ๋ ์ฌ์ฉํ๋ค. Key๋ Input Sequence ๋ด ๋จ์ด๋ค์ด ๊ฐ์ง๊ณ ์๋ ํน์ฑ์ด๋ ํน์ง์ ๋ํ๋ธ๋ค. ๋ฐ๋ผ์ Query๊ฐ ์ด๋ค ์ ๋ณด๋ฅผ ์ฐพ๊ณ ์ ํ ๋ Key๋ ๊ฐ ๋จ์ด๋ค์ด ๊ฐ์ง๊ณ ์๋ ํน์ฑ์ ๋ํ๋ด์ด ํด๋น ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด์ง๋ค. ๋ง์ง๋ง์ผ๋ก Value๋ ๊ฐ ๋จ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๊ฒ์ผ๋ก, Key๊ฐ ๊ฐ ๋จ์ด์ ํน์ฑ์ ๋ํ๋ผ ๋ Value๋ ๊ทธ ํน์ฑ์ ํด๋นํ๋ ์ค์ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
์์ ์ธ๊ธํ ๋ฏ์ด Query, Key, Value๋ Input Embedding๋ฅผ ์ ํ ๋ณํํ ๊ฒ์ผ๋ก, ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ค์น ๊ฐ์ ๊ณฑํด ๊ณ์ฐ๋๋ค. Input Embedding์ ํฌ๊ธฐ๊ฐ $(N,d_{\text{model}})$์ธ ํ๋ ฌ์ด๋ผ๋ฉด($ Sequence ๊ธธ์ด, $d_{\text{model}}$ = Embedding ์ฐจ์), Query, Key, Value๋ Input Embedding์ ์ธ ๊ฐ์ ๊ฐ์ค์น ๊ฐ์ ๊ณฑํด ์์ฑ๋๋ฏ๋ก ์๋์ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ํ๋ ฌ์ด๋ผ ์ ์ํ ์ ์๋ค.
$\mathbf{Q=XW_Q, K=XW_K, V=XW_V}$
์ฌ๊ธฐ์ $W_Q, W_K, W_V$๋ ๊ฐ๊ฐ ํฌ๊ธฐ $(d_\text{model}, d_K)$, $(d_\text{model}, d_K)$, $(d_\text{model}, d_V)$์ธ ๊ฐ์ค์น ํ๋ ฌ์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก $d_K$์ $d_V$๋ $d_\text{model}$๊ณผ ๊ฐ์ ์ฐจ์์ผ์๋, ๋ค๋ฅธ ์ฐจ์์ผ์๋ ์๋ค.
- Dot Product of Query & Key
์ดํ ์ํ๋๋ ์ฐ์ฐ์ Query์ Key์ Dot Product ์ด๋ค. Score Matrix๋ฅผ ์์ฑํ์ฌ ๊ฐ ๋จ์ด ๊ฐ์ ์ค์๋๋ฅผ ๊ณ์ฐํ๋ ์์ ์ ๊ฑฐ์น๋ค. ๋ชจ๋ ๋จ์ด๋ค์ ์์ ๋ค๋ง์ ์ ์๋ฅผ ๊ฐ์ง๋ค. ์ด๊ฑด ๋งค time step ๋ง๋ค ๋ค๋ฅธ ๋จ์ด์ ์ผ๋ง๋ ์ฐ๊ด ์๋์ง ํน์ ๋ค๋ฅธ ๋จ์ด์ ์ผ๋ง๋ ์ ์ฌํ์ง ๋ํ๋ด๋ ์ ์์ด๋ค. ์ด ์ ์๊ฐ ๋์์๋ก ์ค์ํ ๋จ์ด์์ ๋ํ๋ด๊ณ , ๋ชจ๋ธ์ ์ ์๊ฐ ๋์ ๋จ์ด์ ์ง์คํ๊ฒ ๋๋ค.
- Scaling Down the Attention Score
Query์ Key์ ๋ด์ ์ผ๋ก ๊ณ์ฐํ Score Matrix๋ฅผ Query์ ์ฐจ์(Key์ ์ฐจ์๊ณผ ๋์ผ)์ ์ ๊ณฑ๊ทผ์ผ๋ก ๋๋ ์ค๋ค. ์ด๋ ์ข ๋ ์์ ์ ์ธ ํ์ต์ด ์ด๋ค์ง๋๋ก ํ๊ธฐ ์ํด์ ๋ฐ, ๋ด์ ์ ํน์ฑ ์ ๋ฌธ์ฅ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์๋ก ๋ ํฐ ์ซ์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ์ด ๊ฐ์ Softmax๋ฅผ ์ทจํ๊ฒ ๋๋ฉด ํฐ ๊ฐ์ ๊ฐ์ง๋ ํน์ ๊ฐ๋ง ์ด์๋จ๊ฒ ๋๊ณ ๋๋จธ์ง ๊ฐ๋ค์ ์์ ํ ์ฃฝ์ด๋ฒ๋ฆฌ๋ ๊ณผ๋ํ ์ ์ ๊ฐ ์ด๋ค์ง๋ค. ์ด๋ gradient ๊ฐ์ด 0์ ๊ฐ๊น์์ ธ ์ ์ ์ฌ๋ผ์ง๋ Vanishing Gradient ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์ธ์ด ๋์ด ํ์ต์ด ์ ์ด๋ค์ง์ง ๋ชปํ๋๋ก ๋ง๋ ๋ค.
์์ ๊ฐ์ ์ด์ ๋ก Softmax๊ฐ ๋น์ทํ ๋ฒ์ ๋ด์ ๊ฐ๋ค ์ฌ์ด์์ ์ด๋ค์ ธ Gradient ๊ฐ๋ค์ด ์ถฉ๋ถํ ๊ณ์ฐ๋ ์ ์๊ฒ๋ Scaling Down์ ํ๊ฒ ๋๋ค.
- Softmax of the Scaled Scores
์ต์ข Attention Weight๋ฅผ ์ป๊ธฐ ์ํด Softmax๋ฅผ ์ทจํด์ค Score ๊ฐ์ 0์์ 1 ์ฌ์ด์ ํ๋ฅ ๊ฐ์ผ๋ก ๊ตฌ์ฑํด์ค๋ค. ์ด๋ ๊ฒ ์ผ์ ๋ฒ์ ์์ ์ซ์์ ๋์๋๊ฒ ๋ณํํด์ฃผ์ด ๋์ ์ ์์ ๋จ์ด๋ ๋ ์ค์ํ๊ฒ ๋ฎ์ ์ ์์ ๋จ์ด๋ ์๋์ ์ผ๋ก ๋ ์ค์ํ๊ฒ ํ์ ํ ์ ์๋๋ก ํ๋ค. ์ด ๊ณผ์ ์ ํตํด ๋ชจ๋ธ์ ์ด๋ค ๋จ์ด์ ์ง์คํด์ผ ํ๋์ง ๋ณด๋ค ํ์ ์ ๊ฐ์ง๊ณ ํ๋จํ ์ ์๊ฒ ๋๋ค.
- Multiply Softmax Output with Value
๋ง์ง๋ง ์ฐ์ฐ์ Attention Output Vector๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค. ์ค์ ๋จ์ด์ ์ ๋ณด๋ฅผ Attention Weight์ ๋ํด์ฃผ๋ ๊ณผ์ ์ผ๋ก, Value ๊ฐ์ ๊ณฑํด์ค์ผ๋ก์จ ๊ฐ ๋จ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋จ์ด์ ์ ๋ฌํด์ฃผ๊ฒ ๋๋ค.
- Computing Multi Head Attention
๋ฐฉ๊ธ๊น์ง ์ดํด๋ณธ ์ฐ์ฐ ๊ณผ์ ์ Self-Attention ๊ณผ์ ์ด๋ค. Multi-Head Attention์ ์ด๋ฌํ Self-Attention ์ฐ์ฐ์ ํ๋ฒ์ ํ๋์ฉ ์ํํ๋ ๊ฒ์ด ์๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋์์ ์ํํ๋ ๊ฒ์ ๋งํ๋ฉฐ, ํ๋์ Self-Attention ๊ณผ์ ์ Head๋ผ ํํํ๋ค. ์ด๋, Query, Key, Value ๊ฐ์ Head๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ฒ ๋์ด Input Sequence์ ๋ค๋ฅธ ์ธก๋ฉด์ ํ์ตํด ๋ค์ํ ํํ์ ์ป์ ์ ์๋ค.
์๋ฅผ ๋ค์ด, 1๋ฒ Head๋ ๋ฌธ์ฅ์ ํํ์ ์ง์คํ๊ณ 2๋ฒ Head๋ ๋ฌธ์ฅ์ ์ฐ์ธ ๋ช ์ฌ์ ์ง์คํ๋ ๋ฑ ๋ฌธ์ฅ ๋ด ์ฌ๋ฌ ๊ด๊ณ๋ ์ ๋ณด์ ๊ฐ๊ฐ ์ง์คํด ์ข ๋ ๋ค์ํ ๊ด์ ์์ ๋ชจ๋ธ์ด ํ์ตํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
- Residual Connections & Layer Normalization
Encoder์ Multi-Head Attention์ ํฌํจํด Transformer์ ๋ชจ๋ sub-layer์ Output์ Residual Connection๊ณผ Layer Normalization์ ๊ฑฐ์ณ ์ต์ข Output์ ์์ฑํ๋ค.
Residual Connection์ Layer์ Output๊ณผ Positional Input Embedding์ ํฉํ ๊ฒ์ผ๋ก, Output์ ๊ณ์ฐํ ๋ Input์ ๊ทธ๋๋ก ๋ํด์ฃผ์ด Input ์ ๋ณด๋ฅผ ๋ค์ ์ธต์ ์ง์ ์ ๋ฌํ๋ค. Layer๋ฅผ ํต๊ณผํด๋ Input ์ ๋ณด์ ์ ์งํ ์ ์์ด ๋ชจ๋ธ์ด ํ์ต ๊ณผ์ ์์ ๋ ์์ ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์๋ ดํ ์ ์๋๋ก ๋๋๋ค.
์ด์ด, Layer Normalization์ ์ ์ฉํด Output์ ๋ถํฌ๋ฅผ ์ ๊ทํํ์ฌ ํ์ต ์๊ฐ์ ํจ๊ณผ์ ์ผ๋ก ๊ฐ์์ํค๊ณ ๋ชจ๋ธ ํ์ต ๋ํ ์์ ์ ์ผ๋ก ์ด๋ค์ง ์ ์๋๋ก ํ๋ค.
Position-Wise Feed-Forward Networks
Encoder์ ๋ ๋ฒ์งธ Layer๋ Position-Wise Feed-Forward Network์ด๋ค. ๊ฐ ๋จ์ด์ ๋ํด ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฉ๋๋ Feed-Forward Neural Network๋ก, ๋ ๊ฐ์ FC Layer์ ์ฌ์ด์ ์์นํ ๋น์ ํ ํ์ฑํ ํจ์(ReLU)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
FFN์ ๋จ์ด์ ์์น ํน์ฑ์ ํ์ตํ๊ณ ๋จ์ด์ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋จ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ๋ฐ์ดํธ ํ ์ ์๋๋ก ๋๋๋ค. ๋ํ, ๊ฐ ๋จ์ด์ Input Embedding์ ๋น์ ํ์ฑ์ ์ถ๊ฐํด ๋ณด๋ค ๋ณต์กํ ํจ์๋ฅผ ํ์ตํ๊ณ ๋ค์ํ Input ํน์ฑ์ ํํํ ์ ์๋๋ก ํ๋ค. ๋ง์ง๋ง์ผ๋ก ํด๋น Layer ๋ํ Residual Connection๊ณผ Layer Normalization์ ์ฌ์ฉํด ์ต์ข Output์ ์์ฑํ๋ค.
์ด๋ ๊ฒ ๊ณ์ฐ๋ Encoderd์ Output์ Decoder์ Input์ผ๋ก ์ฌ์ฉ๋์ด ์ต์ข Output Sequence๋ฅผ ์์ฑํ๋ค. Decoder์ ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ๋์ด์๊ณ , ์ต์ข Output์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ์.
Decoder
Transformer Decoder๋ Input Sequence๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด Output Sequence๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. Encoder์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ๊ฐ์ Decoder block์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ block๋ 3๊ฐ์ sub-layer๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
Masked Multi-Head Self-Attention
Decoder์ ๊ฐ์ฅ ์ฃผ๋ ํน์ง์ AutoRegressive๋ฅผ ๋ง์กฑํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ํ์ฌ ์์ฑ๋๋ ๋จ์ด๋ ์ด์ ์ ๋จ์ด๋ง์ ์ฐธ๊ณ ํด ์์ฑ๋์ด์ผ ํ๋ค๋ ์กฐ๊ฑด์ผ๋ก, ๋ฏธ๋ ๋จ์ด๋ฅผ ์ฐธ๊ณ ํด ํ์ฌ ๋จ์ด๋ฅผ ์์ฑํ ์ ์๋๋ก ๊ตฌ์ฑํ๊ธฐ ์ํจ์ด๋ค. ์ด๋ฅผ ์ํด Masking์ ์ ์ฉํ Self-Attention Mechanism์ ์ํํ๊ฒ ๋๊ณ , ์ด๋ ๋ชจ๋ธ์ด ํ์ต ์ค ์๋ชป๋ ์์ธก์ ํผํ๊ณ Decoding ๊ณผ์ ์์ ์ฌ๋ฐ๋ฅธ ์์๋ก ๋จ์ด๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ค๋ค.
- Look Ahead Mask
๊ณผ๊ฑฐ์ ์ ๋ณด๋ง์ ํ์ฉํด ํ์ฌ ๋จ์ด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์์ ๊ณผ ์ด์ ๋จ์ด ํ๋ ฌ์ 0์ ์์ ๋ณด๋ค ๋ค์์ ๋จ์ด ํ๋ ฌ์ -inf(negative infinity)๋ฅผ ์ ์ฉํด์ค๋ค. ์ด๋ฅผ Look Ahead Mask Matrix๋ผ ํ๋ค. ์ด๋ ๊ฒ ์์ฑ๋ Mask Matrix์ Self-Attention ์ฐ์ฐ์ ํตํด ๋ง๋ค์ด์ง Score Matirx๋ฅผ ํฉํด ์๋ก์ด Masked Score Matrix๋ฅผ ๋ง๋ค๊ณ , ์ดํ Softmax๋ฅผ ์ทจํ๊ฒ ๋๋ฉด -inf ๊ฐ๋ค์ 0์ด ๋จ์ผ๋ก ์์ฐ์ค๋ ๋ชจ๋ธ์ด ๋ฏธ๋ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ ์ ์๊ฒ ๋๋ค.
Multi-Head Cross-Attention
๋ ๋ฒ์งธ Multi-Head Attention Layer๋ Decoder์ ํ์ฌ ์ํ์ Encoder์ ์ถ๋ ฅ ์ํ ๊ฐ์ Attention์ ์ํํ๋ค. Encoder Input Representation์์ ์์ฑ๋ Query, Key์ Decoder์ ์ฒซ ๋ฒ์งธ Multi-Head Attention Layer Output์์ ์์ฑ๋ Value๋ฅผ ์ฌ์ฉํด Multi-Head Attention์ ์ํํ๋ค. ์ด๋ฅผ ํตํด Decoder๋ Encoder๊ฐ ์์ฑํ Input Sequence ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์๋ก์ด Output Sequence๋ฅผ ์์ฑํ ์ ์๋ค.
Feed-Forward Networks
๋ง์ง๋ง Layer์ธ Feed-Forward Network๋ Encoder block์ FFN Layer์ ์ ์ฌํ๊ฒ ๋์ํ๋ค. ๊ฐ ์์น์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๋ ๊ฐ์ ์ ํ ๋ณํ๊ณผ ๋น์ ํ ํ์ฑํ ํจ์๋ก ๊ตฌ์ฑ๋๋ฉฐ, token์ ์์น ํน์ฑ์ ํ์ตํ๊ณ ๊ฐ token์ ์ ๋ณด๋ฅผ ์๋ก ๋ค๋ฅธ token ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ๋ฐ์ดํธ ํ๋ค.
Linear Classification & Softmax
Decoder๋ฅผ ํต๊ณผํด ์์ฑ๋ Output(๊ฐ ๋จ์ด์ ์๋ฏธ๋ฅผ ํฌํจํ ๊ณ ์ฐจ์ vector)์ ์ต์ข ๋จ๊ณ๋ง์ ๋ฐ๋ผ๋ณด๊ณ ์๋ค. ๋ฐ๋ก Classification์ ์ํ FC Layer(Linear)์ Softmax ์ด๋ค. Linear Classification์ ํตํด ๋จ์ด ํ๋ณด๋ฅผ ์ถ๋ ฅํ๊ฒ ๋๊ณ , ์ด ๋ฒกํฐ์ Softmax๋ฅผ ์ทจํด ๋จ์ด๊ฐ ์ต์ข ์ ์ผ๋ก ์ ํ๋ ํ๋ฅ ์ ์ถ๋ ฅํ๊ฒ ๋๋ค. ์ด ๊ณผ์ ์ ๊ฑฐ์ณ ๋์จ ๊ฐ์ฅ ๋์ ํ๋ฅ ์ ๊ฐ์ง ๋จ์ด๊ฐ ์ต์ข Output์ผ๋ก ์ ํ๋๊ณ , ์ด ๋จ์ด๋ค์ ํฉํด ์ต์ข Output Sequence๋ฅผ ์ถ๋ ฅํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
Conclusion
๋๋์ด Transformer ๋ชจ๋ธ์ ๊ณต๋ถํ๊ณ ๊ธ์ ์์ฑํ๋ค! ์ด ๋ ผ๋ฌธ์ ์์ฑํ๊ฒ ๋ ๋ฐฐ๊ฒฝ์ด๋ ๋ชจ๋ธ์ ํ์ต ๊ฒฐ๊ณผ ๋ฑ์ ๋นผ๊ณ ์ค๋ก์ง ๋ชจ๋ธ ๊ตฌ์กฐ์๋ง ์ด์ ์ ๋์ด ์์ฑํ๋ค. Transformer๊ฐ ๋ฅ๋ฌ๋์์ ์ด๋ค ์ํฅ์ ๋ฏธ์ณค๋์ง๋ ์๋ ์๋ช ํ ์ฌ์ค์ด๋ผ ๋ค๋ฅธ ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ์ ๋ฌ๋ฆฌ ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ์ค์ํ๊ฒ ๋ด์ผ๊ฒ ๋ค ์๊ฐํ๋ค. Transformer๋ฅผ ๊ณต๋ถํ๊ณ ๊ธ์ ์์ฑํ๋ ๊ฑธ ์ฐจ์ผํผ์ผ ๋ฏธ๋ฃจ๊ธด ํ์ง๋ง ์ญ์ ๋ชจ๋ ๊ฑธ ๋ง๋ฌด๋ฆฌํ๊ณ ๋ณด๋ฉด ์์ฃผ ๋ฟ๋ฏํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ Multi-Head Attention ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ๋ฉด ๋๋จธ์ง๋ ๋น์ทํ ๋ด์ฉ์ด ๋ฐ๋ณต๋์ด ์๊ฐ๋ณด๋ค ์ด๋ ต์ง ์์๋ค. ๋ค์ ๊ธ์ Transformer๋ฅผ PyTorch๋ก ๊ตฌํํ ๊ณผ์ ์ ๋ํด ์์ฑํ๋ ค ํ๋ค. ๋ ผ๋ฌธ ๋ด์ฉ์ ์ฝ๋๋ก ๊ตฌํํ๋ ๊ฑด ์ฒ์์ด๋ผ ๊ฑฑ์ ๋์ง๋ง ์ด ๊ธ์ฒ๋ผ ๋ง๋ฌด๋ฆฌํ๋ฉด ๋ฟ๋ฏํ ํ ๋ ์ฒ์ฒํ ์์ฑํด๋ณด๋ ค ํ๋ค.
๐ก Reference
1. https://arxiv.org/abs/1706.03762
์ด ๊ธ์์ ๊ฐ์ฅ ๋ง์ด ์ฐธ๊ณ ํ ๊ธ ์ ๋๋ค! ๊ทธ๋ฆผ๊ณผ ํจ๊ป Transformer ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ๊ณ ์์ด ์ดํดํ๋ ๋ฐ ๋ง์ ๋์์ด ๋์ต๋๋ค.
3-1. https://www.blossominkyung.com/deeplearning/transfomer-positional-encoding
3-2. https://www.blossominkyung.com/deeplearning/transformer-mha
Positional Encoding ๊ณผ์ ์ ์ข ๋ ์ดํด๋ณด๊ณ ์ถ๋ค๋ฉด 3-1 ๊ธ์ ์ถ์ฒํฉ๋๋ค.
4. https://velog.io/@jhbale11/์ดํ ์ -๋งค์ปค๋์ฆAttention-Mechanism์ด๋-๋ฌด์์ธ๊ฐ
'๐ Jero's Review > Paper' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Three Scenarios for Continual Learning (0) | 2024.06.12 |
---|---|
Show and Tell: A Neural Image Caption Generator (1) | 2024.05.10 |
Sequence to Sequence Learning with Neural Network (0) | 2024.05.04 |