์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ๊ทธ๋ํ
- BFS
- ๊ตฌํ
- ์ ๋ ฌ
- ์ํ
- DFS
- ๋๋น์ฐ์ ํ์
- ๊ทธ๋ฆฌ๋
- ๋จธ์ง์ํธ
- ์ค๋ธ์
- ๋์ ํฉ
- ์์ํ์
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๊น์ด์ฐ์ ํ์
- ๋์ ๊ณํ๋ฒ
- SQL
- LIS
- skala
- ์ฐ์ ์์ํ
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- skala1๊ธฐ
- db
- ๋ณํฉ์ ๋ ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ํ์ด์ฌ
- DP
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ทธ๋ํํ์
- Today
- Total
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
Attention Is All You Need - Transformer ๋ ผ๋ฌธ ์ ๋ฆฌ ๋ณธ๋ฌธ
๋ฅ๋ฌ๋ ํ๊ณ ์ ๋ฐ์ ํ์ ์ ์ธ ๋ํ์ ๋ชฐ๊ณ ์จ ๋ ผ๋ฌธ,
Attention is All You Need: https://dl.acm.org/doi/10.5555/3295222.3295349
Attention is all you need | Proceedings of the 31st International Conference on Neural Information Processing Systems
Publication History Published: 04 December 2017
dl.acm.org
BERT ๋ ผ๋ฌธ๋ ์ปจํผ๋ฐ์ค ๋ ผ๋ฌธ์๋ค ๊ฑฐ์ Encoder ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ๊ฐ๋ค ์ผ๊ธฐ ๋๋ฌธ์
๋ชจ๋ธ์ ๊ตฌ์กฐ์ ์ธ ๋ถ๋ถ์ ๋์์์ง ์์ ์ด์ฉ ์ ์์ด Transformer ๋ ผ๋ฌธ๋ ๊ฐ์ด ๊ณต๋ถํ๊ฒ ๋์๊ณ ,
์ฝ์ ๊น์ ์ ๋ฆฌํด์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋ณด์ ํ๋ ์๊ฐ์ ํฌ์คํ ์ ํ๊ฒ ๋์๋ค. ๋๋์ด ๋ด๊ฐ ๋๊น์ง ์ดํดํ๋ค ํธ๋์คํฌ๋จธ..
๐ฃ๏ธ BERT ์ ๋ฆฌํ๊ฑฐ ๋ณด๋ฌ๊ฐ๊ธฐ: https://miiinnn23.tistory.com/112
Transformer๋ ํฌ๊ฒ ๋ฌธ์ฅ์ ์ดํดํ๋ encoder ๋ถ๋ถ๊ณผ, ์ดํดํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ ์์ ์ ์คํํ๋ decoder ๋ถ๋ถ์ผ๋ก ๋๋์ด์ ธ ์๋ค๋ ๊ฒ๋ง ์๊ณ ์๊ณ , ๊ฐ๊ฐ์ ์ฐ์ฐ๋ค์ด ์ด๋ป๊ฒ ์งํ๋๋ค๊ฑฐ๋ ์ธ๋ถ์ ์ธ ๋ชจ๋ธ ๋ด์ฉ์ ๊ณต๋ถํ ์ ์๋ ๊ธฐํ๊ฐ ์์๋๋ฐ(์ฌ์ค ์ด๋ ค์์ ์๋ ์ ์ฝ๋ค ๋๋ ค์นจใ ) ์ข์ ๊ธฐํ๋ก ์์ ๋ ๋ฃ๊ณ ๋ฐํ๋ ํด๋ณธ ๋์ ์ ๋ฆฌ๋ฅผ ํด๋ณธ๋ค..
๋ค์ด๊ฐ๊ธฐ ์ ์,
Transformer๋ ์์ ๋งํ๋ฏ
์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฌธ์ฅ(์ ๋ ฅ ์ํ์ค)์ ๊ธฐ๊ณ๊ฐ ์ดํดํ ์ ์๋ ์ต์ ๋จ์์ธ ํ ํฐ์ผ๋ก ์ชผ๊ฐ์ ๊ฐ ํ ํฐ๊ฐ์ ๊ด๊ณ๋ฅผ ํด์ํ๊ณ ๋ฌธ๋งฅ์ ํ์ ํ์ฌ ๊ฐ ํ ํฐ๋ค์ ๋ฒกํฐํ๋ ํํ(representation)์ผ๋ก ๋ง๋ค์ด๋๋ encoder ๋ถ๋ถ๊ณผ
encoder๋ก๋ถํฐ ํ์ต๋ ํํ๋ค๊ณผ ๋ฌธ๋งฅ ํ์ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฅ ์ํ์ค๋ฅผ ๋ด๊ฐ ์ํ๋ ๋ฌธ์ ์ ๋ง๊ฒ ๋ณํ(๋ฌธ์ฅ ์์ฑ, ๋ฒ์ญ, ์์ฝ ๋ฑ๋ฑ)ํ์ฌ ๋ฌธ์ฅ์ ํ ํฐ ๋จ์๋ก ์์ฑํ๋ decoder ๋ถ๋ถ์ผ๋ก ๋๋์ด์ ธ ์๋ค.
๊ทธ๋์ ํํ Encoder ๋ถ๋ถ์ ๊ฐํํ ๋ชจ๋ธ์ด BERT์ด๊ณ , Decoder ๋ถ๋ถ์ ๊ฐํํ ๋ชจ๋ธ์ด GPT๋ก ์๋ ค์ ธ์๋ค. ๊ทธ๋ฌ๋ ์ด๊ธฐ์ BERT ๋ชจ๋ธ์ ๋ฌธ๋งฅ์ ํ์ ํ ์ง์ธ์ ์์ฑํ๋ task๋ ํ๊ณ๊ฐ ์กด์ฌํ๊ณ (QA๋ฌธ์ ํ ์คํธ ์ ์ง๋ฌธ์ ๋ต์ด ์๋ ๊ฒฝ์ฐ '๋ตํ ์ ์์' ์ด๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋์์ผ ํ์) GPT ๋ชจ๋ธ์ ๋ฌธ์ฅ์ ์์ฑํ ์ง์ธ์ '์๊ธฐ ํ๊ท ๋ชจ๋ธ'์ด๋ผ๋ ํน์ฑ ํ์ ๋จ๋ฐฉํฅ ํ์ต๋ง์ด ๊ฐ๋ฅํ์ฌ ๋ฌธ๋งฅ ํ์ต์ ์ ํ์ด ์กด์ฌํ๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , transformer์ BERT/GPT์ ๋ฑ์ฅ์ผ๋ก ์ธํด NLP ํ๊ณ๊ฐ ์์ฃผ ์์ฃผ ์์ฃผ ์์ฃผ .. ํฐ ๋ฐ์ ์ ์ด๋ฃฉํ์๋ค๋ ์ ์์ ์ด๋ค์ ๋งค์ฐ ์์ง์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๋ํ ๋ถ๊ฐ์ ์ผ๋ก .. CNN์ด Computer Vision ํ๊ณ์ ๊ฝค๋ ํฐ ์ถฉ๊ฒฉ์ ์ฃผ์๋๋ฐ, CNN์ ํ๊ณ ํ๊ณ ์ฅ์ด์ง๊ณ ๋์์ด ํ์ ๋์ด์ ๋์ฌ ๊ฒ๋ ์์ ์ฏค์ Transformer์ ํต์ฌ์ธ 'self-attention' ๋ฉ์ปค๋์ฆ ๋์ ๋๋ค์ ํ์ ์ป๊ณ ViT(Vision Transformer)๋ผ๋ ๋๋จํ ๋ชจ๋ธ์ด ๋ฑ์ฅํ ์ ์์์ผ๋ ์ฌ๋ฌ๋ชจ๋ก ๋ค์ํ ํ๊ณ์ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค ๋๋จํ ๋ ผ๋ฌธ์ด ๋ถ๋ช ํ๋ค. ์ค์ ๋ก ๋น์ ์ชฝ ์ฐ๊ตฌ์ค ๋ค์ด๊ฐ ๋ด ์น๊ตฌ๋ค์ ์ ๋ถ transformer ๊ธฐ๋ฐ ๋ชจ๋ธ๋ค ์ฐ๊ตฌํ๊ณ ์์์
์๋ฌดํผ '๊ทธ' ํธ๋์คํฌ๋จธ๊ฐ ์ ๊ทธ๋ ๊ฒ ๋๋จํ์ง ์์ ์ ๋ค์ผ๋ฉด์ ๋๋์ฑ ์๊ฒ ๋์๋๋ฐ, ์ด๋ฌํ ์ ํ ๋ฐฐ๊ฒฝ๋ค์ด ์ฌ๋ฏธ์์ด์ ๋ค์ด๊ฐ๊ธฐ ์ ์ ์ ์ด๋ณด์๋ค.
์ฌ๋ฏธ์์์ผ๋ฉด ๋ง๊ณ ใ ใ
Introduction
๋์ฒด Transformer๊ฐ ๋ญ์ง?
Sequence transduction model; ์ํ์ค ๋ณํ ๋ชจ๋ธ
- Sequence-to-sequence: ์ํ์ค๊ฐ ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ฉด, ํ์ต์ ํตํด ๋ค์ ์ํ์ค๋ฅผ ์ถ๋ ฅ
- ์ด๋ฅผ ํตํด ๊ธฐ๊ณ ๋ฒ์ญ, ๋ฌธ์ ์์ฝ, ์์ฑ ์ธ์ ๋ฑ์ ์์ฐ์ด ์ฒ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ชจ๋ธ
ํด๋น ๊ณผ์ ์์ ๊ธฐ์กด sequence-to-sequence ๋ชจ๋ธ์ ๋ง์ด ํ์ฉ๋๋ RNN์ด๋ convolution ๋ฑ๋ฑ์ ๋ฐฉ์์ ์ฌ์ฉํ์ง ์๊ณ , attention ๋ฉ์ปค๋์ฆ๋ง์ ํ์ฉํ์ฌ ์ํ์ค ๋ด ํ ํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ์๋ค.
Background
์ปดํจํฐ ๋น์ ์ชฝ ๋ถ์ผ๋ ์ธ๊ฐ์ ์๊ฐ ์ฒด๊ณ๋ฅผ ๋ชจ๋ฐฉํ CNN์ ๋ฑ์ฅ์ผ๋ก ์ธํด ํ๊ธฐ์ ์ผ๋ก ๋ฐ์ ํ๊ฒ ๋์๋ค๊ณ ํ๋ค. ๋ฐ๋ฉด NLP ๋ถ์ผ๋ ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ํ์ฉํ๊ธฐ ์ํ ์ํ ๋ชจ๋ธ๋ค(RNN, LSTM, GRU) ๋ฑ์ด ๋ง์ด ์ฌ์ฉ๋์๋ค. ์๋?? ํ ์คํธ ๋ฐ์ดํฐ๋ค์ sequentialํ ๋ฐ์ดํฐ๋ผ ๋ฌธ๋งฅ์ ์ธ ์ ๋ณด๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ด์ ๋จ์ด๋ฅผ ๊ธฐ์ตํ๊ณ ํ์ฉํ ์ ์์ด์ผ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ํ ๋ชจ๋ธ(Recurrent Model)๋ค์ ์๋ ๋ฐฉ์
- input / output sequence์์ ๊ฐ ํ ํฐ์ ์์น ์ ๋ณด(symbol position)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฐจ์ ์ธ ์ฐ์ฐ ์งํ
- hidden state* $h_t$ ($t$ ๋ฒ์งธ ํ ํฐ)๋ ํ์ฌ ์์น $t$์ $h_{t-1}$๋ฒ์งธ ํ ํฐ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์์ฑ๋จ
* hidden state: ํ์ตํ๊ณ ์ ํ๋ ํ ํฐ์ ์ ๋ณด/ํํ
Attention?
์ค์ํ ๊ฒ์ ์ง์ค
ํ ํฐ ๊ฐ ๊ฑฐ๋ฆฌ์ ์๊ด ์์ด ์์กด์ฑ ๋ชจ๋ธ๋ง(dependency modeling)์ด ๊ฐ๋ฅํ์ฌ ๊ธฐ๊ณ ๋ฒ์ญ, ๋ฌธ์ ์์ฝ, ์์ฑ ์ธ์ ๋ฑ ๋ค์ํ ์ํ์ค ๋ณํ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. ์ฌ๊ธฐ์ ์์กด์ฑ ๋ชจ๋ธ๋ง์ด๋, ์ํ์ค ๋ด์ ๊ฐ ํ ํฐ๋ค์ด ์๋ก ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง, ์ฆ ์๋ก ๊ฐ์ ์ฐ๊ด์ฑ๊ณผ ์ํฅ์ ํ์ ํ๊ณ ์ด๋ฅผ ๋ฐ์ํ์ฌ ํ์ตํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
→ ‘์์กด์ฑ ๋ชจ๋ธ๋ง’์ attention์ ๋ณธ์ง!
๊ธฐ์กด์๋ attention์ ์ํ ๋ชจ๋ธ๊ณผ ํจ๊ป ๋ง์ด ์ฌ์ฉ๋์๋ค.
→ ๋ค๋ง ์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด ์ํ ๋ชจ๋ธ๋ค์ ํน์ฑ์ ์ํด ์์ฐจ ์ฒ๋ฆฌ ๋ฐฉ์์ ํน์ฑ ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ํ๊ณ๋ก ์ธํด ๊ธด ๋ฌธ์ฅ์๋ ํ์ฉ์ด ์ด๋ ค์(์ด๊ธฐ ์ ๋ณด๊ฐ ์์ค๋๊ฑฐ๋ ์๊ณก๋ ์ํ์ผ๋ก ์ธํด ์์กด์ฑ ํ์ต์ด ์ด๋ ต๊ณ , ํ์ต์ ํจ์จ ์ธก๋ฉด์์๋ ์ข์ง ์์)
Background
Self-Attention
- intra-attention์ด๋ผ๊ณ ๋ ํจ
- ๋จ์ผ ์ํ์ค ๋ด ๊ฐ ํ ํฐ๋ค ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํ์ตํ์ฌ ์ํ์ค์ ํํ(representation)์ ์์ฑํ๋ attention mechanism
- ๊ฐ ํ ํฐ์ ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ๊ณผ์ ์ํธ ์์ฉ์ ํตํด ์์ ์๊ฒ ํ์ํ ์ ๋ณด๋ฅผ ์ ํ์ ์ผ๋ก ๋ฐ์ํจ์ผ๋ก์จ ๋ฌธ๋งฅ/์์กด์ฑ ํ์ ์ด ํจ๊ณผ์
End-to-end memory networks
- ์ํ attention mechanism ๊ธฐ๋ฐ
- ๊ฐ๋จํ QA(Question Answering) ๋ฌธ์ ์ ์ธ์ด ๋ชจ๋ธ๋ง ๋ฌธ์ ์์ ์ข์ ์ฑ๋ฅ ๋ณด์
Model Architecture
Transformer ๋ชจ๋ธ์ ํฌ๊ฒ encoder์ decoder ๋ ๋จ๊ณ์ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์์ฝํ์๋ฉด,
- Encoder์ ์ญํ : ์ ๋ ฅ ์ํ์ค์ ํ ํฐ(symbol)์ $(x_1, x_2,\dots, x_n)$์ ๊ฐ ํ ํฐ์ ๋ฌธ๋งฅ์ ์ธ ์ ๋ณด๋ฅผ ๋ฐ์ํ ํํ $\mathbf z=(z_1, \dots, z_n)$์ผ๋ก ๋งคํ
- Decoder์ ์ญํ : $\mathbf z$๋ก๋ถํฐ ํ๋ฒ์ ํ๋์ฉ ์ถ๋ ฅ ์ํ์ค $(y_1,\dots, y_m)$ ์์ฑ
๋ชจ๋ธ์ ๊ฐ ๋จ๊ณ๋ ์๊ธฐ ํ๊ท(auto-regressive) ํํ์ด๋ฉฐ, ํ ์คํธ ์์ฑ์ ์์ฑ๋ ํ์ฌ ํ ํฐ์ ๋ค์ ํ ํฐ ์์ฑ์ ์ํ ์ถ๊ฐ์ ์ธ ์ ๋ ฅ์ผ๋ก ํ์ฉ๋๋ค.
Encoder and Decoder Stacks
Encoder
Transformer์ encoder๋ 6๊ฐ์ ๋์ผํ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋์ด์๊ณ , ๊ฐ encoder ๋ ์ด์ด๋ ๋๊ฐ์ sub-layer๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ฒซ๋ฒ์งธ ๋ ์ด์ด๋ Multi-head attention ๋ฉ์ปค๋์ฆ์ ์ํํ๋ ๋ ์ด์ด์ด๊ณ , ๋๋ฒ์งธ๋ ํ ํฐ์ ํฌ์ง์ ๋ณ ์ฐ์ฐ๋๋ fully-connected feed-forward ๋คํธ์ํฌ๋ฅผ ์๋ฏธํ๋ค. ๊ฐ sub-layer ๋ณ ์ฐ์ฐ ํ์๋ residual connection์ ์ํํ๊ณ , ์ดํ layer normalization์ ์ํํ์ฌ ํจ์จ์ ์ธ ํ์ต์ ์งํํ๋ค.
Residual connection(์์ฐจ ์ฐ๊ฒฐ)์ ๊ฐ sub-layer ์ถ๋ ฅ์ ์ ๋ ฅ๊ฐ์ ๋ํด์ค์ผ๋ก์จ ํ์ต ๊ณผ์ ์์ identity mapping(์ ๋ ฅ์ ๊ทธ๋๋ก ์ ๋ฌ)์ ํตํด ์ต์ํ ์๋ ์ ๋ ฅ ์ ๋ณด๊ฐ ์ ์ง๋๋๋ก ํ๊ณ , backpropagation ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๊ธฐ์ธ๊ธฐ ์์ค(gradient descent) ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด ์ ์ฉํ๋ค. ๋ํ layer normalization์ ๊ฐ ๊ฐ๋ค์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ์ผ์ ํ๊ฒ ์ ์งํจ์ผ๋ก์จ ํ์ต์ ์์ ์ฑ๊ณผ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉ๋์๋ค.
๊ทธ์ธ์ ๋ถ๋ถ์ ๋ํด์ ์ ๊ฒ ๋ค ๋ญ์๋ฆฌ๋๋ฉด ๊ทธ๋ฅ ๊ทธ๋ฐ๊ฒ ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์๋์์ ์์ธํ๊ฒ ์ค๋ช ํ๋ค.
Decoder
encoder์ ๋ง์ฐฌ๊ฐ์ง๋ก 6๊ฐ์ ๋์ผํ decoder ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ encoder์ ์ ์ฌํ๋ฐ, ์ค๊ฐ์ encoder์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ ๋ํด multi-head attention์ ์ํํ๋ sub-layer๊ฐ ์กด์ฌํ๋ค. ๋ํ ์ฒซ๋ฒ์งธ sub-layer์ ๊ฒฝ์ฐ self-attention layer๋ฅผ ์์ ํ์ฌ masked multi-head attention์ ์ํํ๊ฒ ํจ์ผ๋ก์จ ํ์ฌ ํ ํฐ์ด ์ดํ ์ด์ด์ง๋ ํ ํฐ๋ค๋ก๋ถํฐ ์ํฅ์ ๋ฐ์ง ์๊ฒ ํ๋ค. ์ฆ, ์ด๋ฌํ ๋ง์คํน์ output embedding์ ์์ฑํ ๋ i ๋ฒ์งธ ํ ํฐ์ ๋ํ ์์ธก์ด i-1 ๋ฒ์งธ๊น์ง์ ํ ํฐ์๋ง ์์กดํ ์ ์๋๋ก ํ๋ค.
→ Casual mask; Decoder์ self-attention ๊ณ์ธต์์ ๋ฏธ๋(์์ง ์์ฑ๋์ง ์์) ํ ํฐ๋ค์ด ํ์ฌ ํ ํฐ์ ์์ธก์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ๋ง์คํนํ๋ ๊ธฐ๋ฒ
Attention
ํด๋น ํํธ์์๋ attention ์ฐ์ฐ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ป๊ฒ ์ํ๋๋์ง ์ค๋ช ํ๋ค.
Transformer์ Attention์ ์๋ฏธ์ ์ผ๋ก ์ํ์ค์ ๊ฐ ํ ํฐ๋ค์ด ์๊ธฐ ์์ ์ ํฌํจํ์ฌ ๋ค๋ฅธ ํ ํฐ๋ค๊ณผ ์ด๋ค ๊ด๊ณ๋ฅผ ๊ฐ๋์ง ํ์ตํ๋ ์ญํ ์ ํ์ง๋ง, Attention ๊ธฐ๋ฒ์ ํจ์์ ์ผ๋ก ์ค๋ช ํ์๋ฉด (query, key, value)๋ฅผ ์ ๋ ฅ๋ฐ์ ํ๋์ ์ถ๋ ฅ ๋ฒกํฐ๋ก ๋งคํํ๋ ์ญํ ์ ํ๋ค. (๋จ, query, key, value, output์ ๋ชจ๋ vector ํํ๋ผ๊ณ ๊ฐ์ )
์ฌ๊ธฐ์์ ์ถ๋ ฅ ๋ฒกํฐ๋ Value์ ๊ฐ์ค ํฉ(weighted sum)์ผ๋ก ์ฐ์ฐ๋๊ณ , Value๋ ๊ฐ ํ ํฐ ๋ณ Key์ Query๋ก๋ถํฐ ์ฐ์ฐ๋๋ค. Transformer์์ ์ฌ์ฉ๋๋ Query, Key, Value์ ๋ํ ๋๋ต์ ์ธ ์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
Query
- Key์ ๋ํ ๋ฌธ๋งฅ์ ์ฐ๊ด์ฑ ์ฐพ๊ณ ์ ํ๋ ํญ๋ชฉ์ ๋ํ๋ด๋ ๋ฒกํฐ
- ์ด๋ค ์ ๋ณด๊ฐ ์ค์ํ์ง ์ฐพ๊ธฐ ์ํด ๊ฐ ๋จ์ด๊ฐ ์ผ๋ง๋ ์ฐ๊ด๋์ด ์๋์ง ํ๊ฐ
Key
- attention score ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ๋ฒกํฐ
- Query์ ๋น๊ตํด์ ๋ชจ๋ธ์ด ๊ฐ Value์ ์ผ๋ง๋ ์ง์คํด์ผ ํ๋์ง ๊ฒฐ์
- ๊ฐ๊ฐ์ ๋จ์ด๊ฐ ๊ฐ์ง ์ ๋ณด์ ๊ด๋ จ์ฑ ํ๋จ์ ๊ธฐ์ค์ด ๋จ
Value
- ์ค์ ๋ก ์ ๋ฌํ๊ณ ์ ํ๋ "์ ๋ณด"๋ฅผ ๋ด๊ณ ์๋ ๋ฒกํฐ, ์ค์ํ ๋จ์ด์ ์ ๋ณด๋ฅผ ์ต์ข ๊ฒฐ๊ณผ๋ก ๋ง๋ค์ด๋ด๋ ๋ฐ ์ฌ์ฉ
- attention ๊ฐ์ค์น ์ฐ์ฐ ์ดํ ์ต์ข output ๋ง๋ค์ด๋ด๊ธฐ ์ํด value vector ์ ์ฉ๋จ
→ ์ฝ๊ฒ ์ ๋ฆฌํ๋ฉด, Query๋ "์ด ๋ถ๋ถ์ ์ง์คํด์ผ ํ๋?"๋ผ๋ ์ง๋ฌธ์, Key๋ "์ด ๋ถ๋ถ์ ํน์ง์ ๋ญ์ผ?"๋ผ๊ณ ๋ตํ๋ฉฐ, Value๋ "์ฌ๊ธฐ ์ค์ํ ์ ๋ณด๊ฐ ์์ด!"๋ผ๋ ์ค์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
Scaled Dot-Product Attention
Sub-layer์ multi-head attention ๋ด ๊ฐ๋ณ์ ์ธ attention ์ฐ์ฐ๋ค์ scaled dot-product attention ์ด๋ผ๊ณ ํ๋ค. ์ด๋, Input์ Query, Key, Value๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ํ ํฐ ๋ณ Query, Key $\in \mathbb R^{d_k}$
- ํ ํฐ ๋ณ Value $\in \mathbb R^{d_v}$
์ด๋ $d_k$์ $d_v$๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ธ ์ค๊ณ์ ๋ฏธ๋ฆฌ ์ ์๋๋ hyper-parameter์ด๊ณ , Transformer์์๋ $d_k=d_v=\frac{d_{model}}{h}$ ($h$ : multi-head attention์์ head์ ์, $d_{model}$ : ์ ์ฒด ๋ชจ๋ธ ์ฐจ์)์ผ๋ก ์ค์ ํ์ฌ ์คํ์ ์ฌ์ฉํ์๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก h ์ ์ ์ฒด ๋ชจ๋ธ ์ฐจ์ $d_{model}$ ์ญ์ hyper-parameter์ ์์ญ์ด๊ธฐ๋ ํ๋ค.
์ ์ฒด ์ํ์ค์ attention์ด ๊ฐ๋ณ์ ์ผ๋ก ์ฐ์ฐ๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ค์ ์ฐ์ฐ์์๋ ํ ํฐ ๋ณ (query, key, value $\in\mathbb R^{d_k}$) ๋ฒกํฐ ์ฐ์ฐ์ด ์งํ๋๋ค๊ธฐ๋ณด๋จ ํ ์ํ์ค ๋ด ๋ชจ๋ ํ ํฐ๋ค์ ๋ํด ๋์์ attention์ด ์ฐ์ฐ๋์ด ๋ฒกํฐ๊ฐ ์๋ Q, K, V $\in\mathbb R^{seq\_len\times d_k}$์ ํ๋ ฌ ํํ๋ก ์ฐ์ฐ์ด ์ํ๋๋ค.
Query์ Key์ ๋ด์ ์ฐ์ฐ(MatMul) → $\sqrt{d_k}$๋ก ๊ฐ ๊ฐ ๋๋ ์ค(Scale) → softmax function ์ฐ์ฐ(SoftMax) → Value์ ์ฐ์ฐ(MatMul)
๊ทธ๋ผ ๊ฐ ๋จ๊ณ์ ์ฐ์ฐ์ ๋ฌด์์ ์๋ฏธํ ๊น?
- Query์ Key์ ๋ด์ ์ฐ์ฐ: $QK^T$๋ ๊ฐ ํ ํฐ ๋ณ Query์ Key ์ฌ์ด์ ์ ์ฌ๋(๋๋ ๊ด๋ จ๋)๋ฅผ ์ฐ์ฐํ๋ ๊ณผ์ ์ผ๋ก, ๊ฐ ํ ํฐ๋ผ๋ฆฌ ์ผ๋ง๋ ๊ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง๋ฅผ ์์น๋ก ํํํ๋ค.
- Scale: ๊ฐ ๋ฒกํฐ์ ๊ธธ์ด $d_k$๊ฐ ์ปค์ง์๋ก ๋ด์ ์ ๊ฒฐ๊ณผ๊ฐ์ด ์ปค์ง๋ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํ ์ค์ผ์ผ๋ง์ ์งํํ๋ค. ์ด๋ฅผ ํตํด softmax ํจ์์ ์ ๋ ฅ ๊ฐ์ด ๋๋ฌด ์ปค์ง์ง ์๊ฒ ํ์ฌ, ํ์ต ์ ์์ ์ฑ์ ๋์ธ๋ค.
- Softmax: ์ค์ผ์ผ๋ง๋ ๋ด์ ๊ฐ์ softmax๋ฅผ ์ ์ฉํ์ฌ, ๊ฐ Query์ ๋ํด Key๋ค์ ์ ์ฌ๋๋ฅผ ํ๋ฅ ๋ถํฌ๋ก ๋ณํํ๋ค. ์ด๋ฅผ ํตํด ๊ฐ Key์ ํ ๋น๋ ๊ฐ์ค์น๊ฐ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ์ ๊ทํ๋๋ฉฐ, ์ ์ฒด Key์ ๋ํด ํฉ์ด 1์ด ๋๋ค.
→ ์ฌ๊ธฐ๊น์ง ์ฐ์ฐ๋ ๊ฐ์ด ๊ณง ๊ฐ Key์ ๋ํ attention score๊ฐ ๋๋ค. ํด๋น ๊ณผ์ ๋ค์ ํตํด ๊ฐ Query๊ฐ ์ด๋ค Key์ ์ง์คํ ์ง ๊ฒฐ์ ๋๋ค.
- Value์ ํ๋ ฌ๊ณฑ: ์์ ๊ณ์ฐ๋ softmax ๊ฒฐ๊ณผ๋ฅผ Value์ ๊ณฑํ๋ ๊ณผ์ ์ผ๋ก, ๊ฐ Query์ ๋ํด ์ค์ํ ์ ๋ณด๋ฅผ ๋ด์ Value๋ค์ ๊ฐ์ค ํฉ์ฐ(weighted sum)ํ์ฌ ์ต์ข ์ถ๋ ฅ ๋ฒกํฐ๋ฅผ ์์ฑํ๋ค.
Attention score๋ ์ ํํ ํ๋ฅ ๋ถํฌ๊ฐ์ผ๋ก ํํํ ๊น?
0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๋ณํํจ์ผ๋ก์จ ์ ๊ทํ์ ์๋ฏธ๋ ๋ค์ด๊ฐ๊ณ , ํด์์ด ๋ ์ฉ์ดํด์ง๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฅผ ํตํด ์ด๋ค key๊ฐ ์ผ๋ง๋ ์ค์ํ์ง๋ฅผ ํ๋ฅ ์ ์ผ๋ก ํด์ํจ์ผ๋ก์จ ์ด๋ค ์ ๋ณด์ ๋ ์ง์คํ ์ง๋ฅผ ๋ช ํํ๊ฒ ํ๋จํ ์ ์๋ค.
๊ฐ ์ฐ์ฐ ๊ณผ์ ์ ์์ ๊ฐ์ด ๋์ํํ ์ ์์ง๋ง.. ์ฌ์ค ๊ฐ๋ณ attention ์ฐ์ฐ์ ์์ ํ์ค๋ก ํํํ ์ ์๋ค.
$$ \text{Attention}(Q,K,V) =\text{softmax}(\frac{QK^T}{\sqrt{d_k}})V $$
์ด๊ฒ ๋์ด๋ค.
Multi-Head Attention
๋จ์ผ attention ์ฐ์ฐ์ ํ๋๊ฑฐ๋ณด๋ค attention ์ฐ์ฐ์ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ๋ฒ ์ํํ์ฌ ๊ฐ attention ๋ณ๋ก ๋ค์ํ ์๋ฏธ๋ฅผ ํฌํจํ representation์ ์ป๊ฒ ๋๋ ๊ฒ์ด ๋ฌธ๋งฅ ํ์ ์ ๋ ํจ๊ณผ์ ์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์์์ ์ธ๊ธํ attention์ h๋ฒ ์ํํ์ฌ ๋ฌธ์ฅ์ ์๋ฏธ ํ์ ์ ์์ด head ๋ณ๋ก ์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ํ์ตํ๊ณ ์ multi-head attention์ ์ํํ๋ค.
Query, Key, Value ๋ฒกํฐ๋ค์ ๊ฐ๊ฐ ๋ค๋ฅธ ์ ํ ๋ณํ(projection)์ ์ ์ฉํ์ฌ h๊ฐ์ ๋ค์ํ ํํ์ ์์ฑํ ํ, ๊ฐ ํํ ๋ณ ๋ณ๋ ฌ์ ์ผ๋ก ์์์ ์ธ๊ธ๋ attention ์ฐ์ฐ์ ์ํํ๋ค. ์ด๋ฅผ ํตํด ๊ฐ head์์๋ ๋ ๋ฆฝ์ ์ผ๋ก attention ์ฐ์ฐํ๊ณ , ๋ค์ํ ๋ฌธ๋งฅ์ ์ ๋ณด๋ฅผ ํฌํจํ $d_v$ ์ฐจ์์ attention score ๋ฒกํฐ๋ฅผ output์ผ๋ก ๊ฐ๊ฒ ๋๋ค. ์ด๋ฌํ Multi-head attention์ ๋ชจ๋ธ์ด ์๋ก ๋ค๋ฅธ ์์น์์ ์๋ก ๋ค๋ฅธ representation subspace์ ์ ๋ณด๋ฅผ ๋์์ ์ฐธ๊ณ ํ ์ ์๊ฒ ๋๋ค. ๋ง์ฝ ๋จ์ผ attention์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ๊ท ํ๋ก ์ธํด ์ด์ ๋์ ๋ฌธ๋งฅ ํ์ ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๋๋ค.
๊ทธ๋ผ ๊ฐ head๋ณ attention ์ ๋ณด๋ ์ต์ข ์ ์ผ๋ก ์ด๋ป๊ฒ ์ตํฉํ ๊น? ๋จ์ํ๊ฒ concatenationํ๋ค.
$$ \text{Multihead}(Q,K,V)=\text{Concat(head}_1,\dots,\text{head}_h)W^O \\where\ \text{head}_i=\text{Attention}(QW^Q_i,KW^K_i,VW^V_i) $$
์ด ๋, $W^Q_i\in\mathbb R^{d_{model}\times d_k}, W^K_i\in\mathbb R^{d_{model}\times d_k},W^V_i\in\mathbb R^{d_{model}\times d_v},W^O\in\mathbb R^{hd_v\times d_{model}}$.
๋ ผ๋ฌธ์์๋ h=8, ๊ฐ ์ฟผ๋ฆฌ ๋ณ Query, Key์ Value์ ์ฐจ์์ ๋ชจ๋ธ์ ํฌ๊ธฐ/h ๋ก ์ ์ํ์ฌ์ ๊ฒฐ๊ตญ ์ถ๋ ฅ ๋ฒกํฐ์ธ $W^O$๋ ์ ๋ฐฉํ๋ ฌ์ ํํ๊ฐ ๋๋ค.
Applications of Attention in our Model
Transformer ๋ ผ๋ฌธ์์ ๊ฐ sub-layer ๋ณ multi-head attention์ ์ด๋ป๊ฒ ์ฐ์ฐ๋ ๊น? Transformer ๊ตฌ์กฐ ๋ด ๋ฑ์ฅํ๋ multi-head attention ์ฐ์ฐ์ encoder layer์์ 1๋ฒ, decoder layer์์ ๋ ๋ฒ ๋ฑ์ฅํ๋ค.
Decoder layer์ ‘multi-head attention’
๋ ผ๋ฌธ์์ “encoder-decoder attention” layer๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ํด๋น ๋จ๊ณ์์๋ Query๋ ์ด์ decoder layer(Masked Multi-head Attention)์ผ๋ก๋ถํฐ ํ์ต๋ ๊ฐ์ด, (Key, Value)๋ encoder layer์ ์ต์ข ์ถ๋ ฅ ๋จ๊ณ์์ ๋์จ ๊ฐ์ ์ฌ์ฉํ๋ค. ์ด๋ ๋ค๋ฅธ sequence-to-sequence model๋ค์ encoder-decoder attention mechanism์ ๋ชจ๋ฐฉํ ๊ฒ์ผ๋ก, decoder์์๋ ๊ฐ ์์น์ ํ ํฐ๋ค์ด ์ ๋ ฅ ์ํ์ค์ ๋ชจ๋ ์์น ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฐธ๊ณ ํ ์ ์๋ค.
์ด ๋,
- (Key, Value): encoder์ ์ต์ข ์ถ๋ ฅ์ผ๋ก๋ถํฐ ์์ฑ๋๋ฏ๋ก, ์ ๋ ฅ ์ํ์ค์ ๋ชจ๋ ํ ํฐ์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจ
- Query: decoder์ ์ด์ masked self-attention ๋จ๊ณ์์ ์์ฑ๋ ํํ์ผ๋ก, ๊ทธ ์์ ๊น์ง(์ฆ, ์ด์ ํ ํฐ๋ค์ ๊ธฐ๋ฐํ) ์ ๋ณด๋ฅผ ํฌํจ
์ฆ, decoder์ ํด๋น ํ ํฐ์ ์์ ์ query๋ฅผ ์ด์ฉํด encoder์ ์ ์ฒด ์ถ๋ ฅ(๋ชจ๋ ์์น์ ํ ํฐ๋ค)์ ์ฐธ๊ณ ๊ฐ๋ฅ → ์ ์ฒด ์ ๋ ฅ ๋ฌธ๋งฅ์ ๋ฐ์ํ์ฌ ๋ฌธ๋งฅ ์ ๋ณด ํ์ต ๊ฐ๋ฅ
Encoder layer์ ‘multi-head attention’
Encoder layer์ multi-head attention์์๋ ์์ฑ ๊ณผ์ ์ด ์๋ ๋ฌธ๋งฅ์ ํ์ ํ๋ ๊ณผ์ ์ด๊ธฐ ๋๋ฌธ์, ๊ฐ ํ ํฐ๋ค์ ๋ชจ๋ ์์น์ ํ ํฐ์ ์ฐธ๊ณ ํ ์ ์๋ค. ์ฆ, encoder ๋ด ๊ฐ ํ ํฐ๋ค์ ์ด์ layer์์ ํ์ต๋ ๋ชจ๋ ํ ํฐ๋ค์ ์ ๋ณด๋ฅผ ๋ฐ์ํ์ฌ ํ์ต์ด ๊ฐ๋ฅํ๋ค.
Decoder layer์ ‘masked multi-head attention’
Decoder์ multi-head attention์์๋ ๊ฐ ํ ํฐ์ด ํด๋น ์์น๋ฅผ ํฌํจํ decoder์ ๋ชจ๋ ์์น์ ํ ํฐ์์ attention ์ฐ์ฐ์ ํ ์ ์๊ฒ ํ๋ค. ๋จ, ์๊ธฐ ํ๊ท(auto-regression) ํน์ฑ์ ๋ง์กฑํ๊ธฐ ์ํด์๋ ํ์ฌ ํ ํฐ ์ดํ์ ์กด์ฌํ๋ ํ ํฐ๋ค์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ค์ ํ ํฐ๋ค์ masking(-∞๋ก ์ฒ๋ฆฌ)ํ์ฌ scaled dot-product attention์ ์งํํ๋ค.
Position-wise Feed-Forward Networks
๊ฐ sub-layer ๋ณ ์ฐ์ฐ ์ดํ ์์น ๋ณ ๊ฐ๋ณ์ ์ผ๋ก fully connected feed-forward network๋ฅผ ์ ์ฉํ๋ค. ํด๋น sub-layer๋ ๋ ๊ฐ์ ์ ํ ๋ณํ๊ณผ ReLU activation function์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. ํ ํฐ์ ์์น ๋ณ ์ฐ์ฐ์ด ์ํ๋๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ํ ํฐ๋ค์ ์ ๋ณด๋ค์ด ์์ด์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค. ๋ํ, ReLU ํจ์๋ฅผ ์ ์ฉํ์ฌ ํ ํฐ์ ๋น์ ํ ๋ณํ์ ์งํํจ์ผ๋ก์จ ๊ฐ ํ ํฐ์ ํํ์ ๊ฐํํ๋ ์ญํ ์ ์ํํ ์ ์๋ค.
$$ \text{FFN}(x)=\max(0, xW_1+b_1)W_2+b_2 $$
ํด๋น ์ฐ์ฐ์ ์ํ๋๋ ์์น๋ ๋์ผํ์ง๋ง, $W_1$๊ณผ $W_2$์ ๊ด๋ จ๋ ํ๋ผ๋ฏธํฐ๋ค์ ๋ ์ด์ด๋ง๋ค ๋ณ๋๋ก ํ์ต์ด ์งํ๋๋ค. ์ด ์ฐ์ฐ์ ๋ค๋ฅด๊ฒ ํํํ์๋ฉด ์ปค๋ ํฌ๊ธฐ๊ฐ 1์ธ ๋๋ฒ์ convolution ์ฐ์ฐ๊ณผ ๋์ผํ๋ค. ๋ํ ReLU ํจ์๋ฅผ ์ ์ฉํ์ฌ ๋น์ ํ ๋ณํ์ ์ํํจ์ผ๋ก์จ ๊ฐ ๋ชจ๋ธ์ด ํ ํฐ ๊ฐ ๋ ๋ณต์กํ ํจํด๊ณผ ๊ด๊ณ๋ฅผ ํ์ตํ ์ ์๊ฒ ํ๋ค.
ํด๋น ๋ ์ด์ด์์๋ ๊ฒฐ๊ตญ 512์ฐจ์ → 2048์ฐจ์ → 512์ฐจ์ ์ด ๋๋ฒ์ ์ฐจ์ ๋ณํ์ ๊ฑฐ์ณ ํ ํฐ์ ํํ์ ์ฌ๊ตฌ์ฑํจ์ผ๋ก์จ ๊ฐ ํ ํฐ์ ํํ์ ๋์ฑ ํ๋ถํ๊ณ ์๋ฏธ์๊ฒ ๋ง๋๋ ์ญํ ์ ์ํํ๋ค.
Embeddings and Softmax
Transformer์์ ์ ์ถ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ๊ฐ์ ํ ํฐ๋ค์ ๋ค๋ฅธ ์ํ์ค ๋ณํ ๋ชจ๋ธ๋ค๊ณผ ๋์ผํ๊ฒ ํ์ต๋ ์๋ฒ ๋ฉ์ ์ฌ์ฉํด ๊ฐ ํ ํฐ์ $d_{model}$ ์ฐจ์์ ํํ ๋ฒกํฐ๋ก ๋ณํํ๋ค. ๋ํ decoder์ ์ถ๋ ฅ์์๋ softmax ํจ์๋ฅผ ํตํด ๋ค์ ํ ํฐ์ ๋ฑ์ฅ ํ๋ฅ ์ ์์ธกํ๋ค. ์ฆ, Transformer๋ ์ /์ถ๋ ฅ ๋ชจ๋ ๋์ผํ ์ฐจ์์ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ์๋ฒ ๋ฉํ๊ณ , ๊ฐ์ค์น ๊ณต์ · ์ค์ผ์ผ๋ง์ ํตํด ๋ชจ๋ธ์ ํจ์จ์ฑ, ์์ ์ฑ์ ๋์ธ๋ค.
๐ก Embedding / Encoding / Representation ์ฐจ์ด?
- Embedding: ๋จ์ด๋ฅผ ๊ณ ์ ์ฐจ์์ ๋ฒกํฐ๋ก “์ด๊ธฐ ๋ณํ”ํ๋ ๋จ๊ณ.
- Encoding: ์๋ฒ ๋ฉ๋ ํ ํฐ ๋ฒกํฐ๋ค์ ๋ฌธ๋งฅ์ ์ธ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ํ์ต ๊ณผ์
- Representation: ์ธ์ฝ๋ฉ ๊ฒฐ๊ณผ๋ก ๋์จ ๋ฌธ๋งฅ๊ณผ ์๋ฏธ๋ฅผ ๋ฐ์ํ ์ต์ข (hidden) ๋ฒกํฐ ํํ
Output embedding๊ณผ๋ ์กฐ๊ธ ๋ค๋ฅธ ๊ฐ๋ .. Output embedding์ hidden representation(์ฆ, decoder์ representation)์ผ๋ก๋ถํฐ ์ค์ ๋จ์ด ์์ธก์ ํ ๋ ํ์ฉ๋๋ ๋ฒกํฐ ์งํฉ์ด๊ณ , representation์ ๋ชจ๋ธ์ด ์์ฑํ ์ค๊ฐ ๋๋ ์ต์ข ์ํ์ ๋ฒกํฐ๋ฅผ ์๋ฏธํ๋ค.
Positional Encoding
Transformer์์๋ convolution์ด๋ recurrence ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ‘์ํ์ค’์ ๋ํ ์ ๋ณด๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ์ ์ถ๋ ฅ ์ํ์ค๋ก ๊ฐ๋ ํํ์ ์์น ์ ๋ณด๋ฅผ ๋ฐ๋์ ํฌํจํด์ค์ผ ํ๋ค. ๋ฐ๋ผ์ ๋ณธ ๋ ผ๋ฌธ์์๋ input embedding์ “positional encoding”์ ์ถ๊ฐํ์ฌ encoder์ decoder ๋ชจ๋ธ์์ ์ฌ์ฉํ๋ค. “positional encoding”์ $d_{model}$๊ณผ ๊ฐ์ ์ฐจ์์ด๊ธฐ ๋๋ฌธ์, ๋์ ๋ํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
์ฌ๊ธฐ์๋ ์ธ์ธ๊ณผ ์ฝ์ธ์ธ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์์น๋ฅผ ๊ณ ์ ํ๊ฒ ์ธ์ฝ๋ฉํ๋๋ฐ, ์ด๋ฅผ ํตํด ์๋ก ๋ค๋ฅธ ์ฃผ๊ธฐ ํจํด์ ๊ฒฐํฉํ์ฌ ์์น ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฌํ๊ณ ์ ํ์๋ค.(ํธ๋ฆฌ์๋ณํ์ ์๋ฆฌ์ ์ ์ฌํ๋ค ํจ!!)
$$ PE_{(pos, 2i)}=\sin(pos/10000^{2i/d_{model}})\\PE_{(pos, 2i+1)}=\cos(pos/10000^{2i/d_{model}}) $$
pos๋ ์์น, i๋ ์ฐจ์์ ์๋ฏธํ๋ค. ํ์ฅ์ด 2$\pi$ ~ 10000·2$\pi$์ ๊ธฐํํ์ ๋ชจ์์ด ํ์ฑ๋๋ ์ธ์ธํ(sinusoid) ๋ชจ์์ ๊ทธ๋ํ๋ฅผ ์ฑํํ์ฌ ๋ชจ๋ธ์ด ์ํ์ค์ ๊ธธ์ด์ ์๊ด ์์ด ํ ํฐ๋ค ๊ฐ ์๋์ ๊ฑฐ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ฐ์ฐํ ์ ์๊ฒ ํ๋ค. ๋ํ ํ์ต๋ ์๋ฒ ๋ฉ์ ์ฌ์ฉํ์ฌ ์คํํ ๊ฒฐ๊ณผ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋ฏธ๋ฏธํ์ผ๋ฉฐ, sinusoidal ์๋ฒ ๋ฉ ๋ฐฉ์์ ํ์ต ์ ์ฌ์ฉ๋ ์ํ์ค ๊ธธ์ด๋ฅผ ์ด๊ณผํ๋ ๊ธธ์ด์ ์ํ์ค์๋ ์ ์ผ๋ฐํ๋์๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฐฉ์์ด ์ฑํ๋์๋ค.
Why Self-Attention
๊ทธ๋์ ๋ค์ ๋งํ์๋ฉด, ๋๋์ฒด self-attention์ด ์ด๋ค ์ ์ด ๊ธฐ์กด ์ํ ๋ชจ๋ธ/์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด์ ์ฐจ๋ณ์ ์ด ์๋ ๊ฒ์ผ๊น?
๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๊ผฝ์๋ณด๋ผ๋ฉด ๋ ์ด์ด ๋ณ ์ฐ์ฐ ๋ณต์ก๋, ๋ณ๋ ฌํ ๊ฐ๋ฅํ ์ฐ์ฐ์ ์์ด ์๋ค. ๊ทธ ์ธ์๋ ์ฅ๊ธฐ ์์กด์ฑ(long-range dependencies) ๊ฐ path์ ๊ธธ์ด๋ ์๋ค.
Self-attention ๋ ์ด์ด๋ ๋ชจ๋ ์์น์ ํ ํฐ๋ค์ ์์์๊ฐ ๋ด์ ์คํ๋๋ ์ฐ์ฐ์ ํตํด ์ฐ๊ฒฐ ๊ฐ๋ฅํ ๋ฐ๋ฉด, ์ํ ๋ชจ๋ธ์ O(n)์ ์ฐ์ฐ์ด ํ์ํ๋ค. ์ฐ์ฐ๋ ์ธก๋ฉด์์ ์ํ์ค ๊ธธ์ด n์ด ํํ์ ์ฐจ์ d๋ณด๋ค ์์ ๋(n < d) self-attention layer๋ ์ํ ๋ชจ๋ธ๋ณด๋ค ๋น ๋ฅด๊ณ , ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ์ฐ์ฐ์ ํจ์จ์ ์ํด ์ ๋ ฅ ์ํ์ค์ ๊ฐ ์์น๋ก๋ถํฐ r ๊ฑฐ๋ฆฌ ๋ด์ ์ด์๋ค๋ง ๊ณ ๋ คํ ์ ์๋๋ก attention ์ฐ์ฐ์ ๋ฒ์๋ฅผ ์ ํํ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต๋ ๊ฒฝ๋ก์ ๊ธธ์ด๋ฅผ O(n/r) ๊น์ง ์ฆ๊ฐ์ํฌ ์ ์๋ค.
๋ํ, convolution ์ฐ์ฐ๊ณผ ๋น๊ตํด๋ดค์ ๋๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ์ปค๋ ๋๋น๊ฐ k < n์ธ ๋จ์ผ convolution layer์ ๊ฒฝ์ฐ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํ ํฐ๋ค์ ๋ชจ๋ ์์น๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ค. ๋ชจ๋ ์์น๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ฐ์ ์ปค๋์ผ ๋ O(n/k) ๋ ์ด์ด, dilated convolution์ธ ๊ฒฝ์ฐ O(log_k(n))๊ฐ์ ๋ ์ด์ด๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ๋ด ๋ position ๊ฐ path ๊ธธ์ด๊ฐ ๊ธธ์ด์ง ์ ์๋ค.
Separable convolution* ์ ์ฉํ๋ฉด ๋ณต์ก๋๋ฅผ ๋ฎ์ถ ์ ์๊ธฐ ๋๋ฌธ์, ๋ณธ ๋ชจ๋ธ์์๋ feed-forward ๋ถ๋ถ์์ ํด๋น ๋ฐฉ์์ ์ฑํํ๊ฒ ๋จ
* Separable convolution: ์ผ๋ฐ์ ์ธ convolution ์ฐ์ฐ์ ๋ ๋จ๊ณ๋ก ๋ถํดํ์ฌ ์ํํ๋ ๊ธฐ๋ฒ
- Depthwise Convolution: ๊ฐ ์ ๋ ฅ ์ฑ๋์ ๋ํด ๋ณ๋์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ๊ณต๊ฐ์ (feature map ๋ด์ ์ง์ญ ํจํด) ์ ๋ณด๋ฅผ ์ถ์ถ. ์ด ๊ณผ์ ์์๋ ์ฑ๋ ๊ฐ ๊ฒฐํฉ์ ์ด๋ฃจ์ด์ง์ง ์์.
- Pointwise Convolution (1×1 Convolution): depthwise convolution์ ์ถ๋ ฅ์ ๋ํด 1×1 ํํฐ๋ฅผ ์ ์ฉํ์ฌ ์ฑ๋ ๊ฐ์ ๊ฒฐํฉ์ ์ํ
๊ทธ ์ธ์๋ self-attention์ ํตํด ๋ ํด์์ด ์ฉ์ดํ ๋ชจ๋ธ์ ์ค๊ณํ ์ ์๊ณ , multi-head attention์ ๊ฒฐ๊ณผ๋ก ๊ฐ๋ณ์ ์ธ head๋ค์ด ๋ฌธ์ฅ์ ๊ตฌ๋ฌธ์ด๋ ์๋ฏธ ๊ตฌ์กฐ์ ๊ฐ์ ๋ฌธ๋งฅ ํ์ ์ ์์ด ๋ค์ํ ์๋ฏธ๊ฐ ๋ด๊ธด ํจํด๋ค์ ํ์ต ๊ฒฐ๊ณผ๋ก ๋ด๋๊ธฐ ๋๋ฌธ์ ์์ฐ์ด ์ฒ๋ฆฌ ๋ชจ๋ธ์ ์์ด ํ๊ธฐ์ ์ธ ํ์ต์ด ๊ฐ๋ฅํจ์ ์ ์ ์๋ค.