[AI][Transformer] Self-Attention
๐ Self-Attention Mechanism
- Self-Attention Mechanism์ ํธ๋์คํฌ๋จธ(Transformer) ๋ชจ๋ธ์ ํต์ฌ ์์.
- ๋ฌธ์ฅ ๋ด ๋จ์ด๋ค ๊ฐ์ ์์กด ๊ด๊ณ๋ฅผ ๊ฑฐ๋ฆฌ์ ์๊ด์์ด ํ์ตํ ์ ์๋๋ก ๋์.
- ์ ํต์ ์ธ RNN์ ๋จ์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ์ง๋ง, Self-Attention์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ฐ์ฐ ํจ์จ์ฑ์ ํฌ๊ฒ ํฅ์.
1๏ธโฃ Self-Attention์ด๋?
Self-Attention์ ๊ฐ ๋จ์ด๊ฐ ๋ฌธ์ฅ ๋ด ๋ค๋ฅธ ๋จ์ด๋ค๊ณผ ์ผ๋ง๋ ์ฐ๊ด์ด ์๋์ง๋ฅผ ๊ณ์ฐํ๋ ๋ฉ์ปค๋์ฆ.

๐ก ์์ ๋ฌธ์ฅ:
โ๊ทธ ๋๋ฌผ์ ๋๋ฌด ํผ๊ณคํด์ ๊ธธ์ ๊ฑด๋์ง ์์๋ค.โ
โก ์ฌ๊ธฐ์ โ๊ทธโ๋ โ๋๋ฌผโ์ ๊ฐ๋ฆฌํค๋์ง? ์๋๋ฉด โ๊ธธโ์ ์๋ฏธํ๋์ง?
โก Self-Attention์ ์ด๋ฌํ ๊ด๊ณ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ตํ ์ ์๋๋ก ๋์!
2๏ธโฃ Scaled Dot-Product Attention
๋ ๋จ์ด์ ์ ์ฌ๋๋ฅผ ์ธก์ ํ๋ค. ํธ๋์คํฌ๋จธ์์๋ ๋ ๋จ์ด ๋ฒกํฐ์ ๋ด์ ์ ํตํด ์ ์ฌ๋๋ฅผ ์ธก์ ํ๋ค.
ํธ๋์คํฌ๋จธ์ Self-Attention Mechanism์ Scaled Dot-Product Attention์ ๊ธฐ๋ฐ์ผ๋ก ๋์.
\[\text{Attention}(Q, K, V) = \text{softmax} \left(\frac{QK^T}{\sqrt{d_k}}\right) V\]์ฌ๊ธฐ์:
| ๊ธฐํธ | ์๋ฏธ |
|---|---|
| (Q) (Query) | ํ์ฌ ๋จ์ด์ ํํ ๋ฒกํฐ |
| (K) (Key) | ๋ฌธ์ฅ์์ ๋ชจ๋ ๋จ์ด์ ํํ ๋ฒกํฐ |
| (V) (Value) | ๋ชจ๋ ๋จ์ด์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฒกํฐ |
| (d_k) | Key ๋ฒกํฐ์ ์ฐจ์ ์ |
| Softmax | ์ดํ ์ ์ ์๋ฅผ ํ๋ฅ ๋ถํฌ๋ก ๋ณํ |
3๏ธโฃ Self-Attention ๋์ ๊ณผ์
๐น Step 1: Query, Key, Value ๋ฒกํฐ ๊ณ์ฐ
์
๋ ฅ๋ ๋ฌธ์ฅ์ ๊ฐ ๋จ์ด(ํ ํฐ)๋ ์ธ ๊ฐ์ ๋ฒกํฐ๋ก ๋ณํ๋จ:
Query ((Q)), Key ((K)), Value ((V))
์ฌ๊ธฐ์ ( W_q, W_k, W_v )๋ ํ์ต ๊ฐ๋ฅํ ๊ฐ์ค์น ํ๋ ฌ.
๐น Step 2: ์ดํ ์ ์ ์(์ ์ฌ๋) ๊ณ์ฐ
- Query ๋ฒกํฐ((Q))์ Key ๋ฒกํฐ((K)) ๊ฐ์ ์ ์ฌ๋๋ฅผ ์ ๊ณฑ(dot product) ์ฐ์ฐ์ผ๋ก ๊ณ์ฐ:

\[\frac{QK^T}{\sqrt{d_k}}\]
- ( \sqrt{d_k} )๋ก ๋๋๋ ์ด์ :
โ ๊ฐ์ด ๋๋ฌด ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ , ํ์ต ์์ ์ฑ์ ๋์ด๊ธฐ ์ํจ.
๐น Step 3: Softmax ์ ์ฉ
- ์ดํ ์ ์ ์๋ฅผ Softmax ํจ์์ ํต๊ณผ์์ผ ํ๋ฅ ๋ถํฌ๋ฅผ ์์ฑ:
- ๋์ ๊ฐ์ผ์๋ก ํด๋น ๋จ์ด๊ฐ ๋ ์ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง.
๐น Step 4: Value ๋ฒกํฐ์ ๊ฐ์คํฉ
- Softmax์์ ์ป์ ๊ฐ์ค์น๋ฅผ Value ๋ฒกํฐ((V))์ ๊ณฑํ์ฌ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์์ฑ:
- ์ด ๊ณผ์ ์ ํตํด ๊ฐ ๋จ์ด๊ฐ ๋ค๋ฅธ ๋จ์ด๋ค๊ณผ ์ผ๋ง๋ ๊ด๋ จ์ด ์๋์ง ๋ฐ์๋ ์๋ก์ด ๋ฒกํฐ๊ฐ ์์ฑ๋จ.
4๏ธโฃ Self-Attention ์ค์ ๋์ ์์
์์ ๋ฌธ์ฅ
โ๊ณ ์์ด๊ฐ ๋งคํธ ์์ ์์ ์๋ค.โ
| ๋จ์ด | Query ((Q)) | Key ((K)) | Value ((V)) |
|---|---|---|---|
| ๊ณ ์์ด | (Q_1) | (K_1) | (V_1) |
| ์๋ค | (Q_2) | (K_2) | (V_2) |
| ๋งคํธ | (Q_3) | (K_3) | (V_3) |
| ์์ | (Q_4) | (K_4) | (V_4) |
- ๊ฐ ๋จ์ด์ Query์ ๋ชจ๋ ๋จ์ด์ Key๋ฅผ ์ ๊ณฑ(dot product)ํ์ฌ ์ ์ฌ๋ ๊ณ์ฐ
- Softmax๋ก ์ ๊ทํํ์ฌ ์ดํ ์ ์ ์ ๊ณ์ฐ
- ์ดํ ์ ์ ์๋ฅผ Value ๋ฒกํฐ์ ๊ณฑํ์ฌ ์ต์ข ์ถ๋ ฅ ๋ฒกํฐ ์์ฑ
โก ๊ฒฐ๊ณผ์ ์ผ๋ก, ๋ฌธ๋งฅ์ ๊ณ ๋ คํ์ฌ โ๊ณ ์์ดโ์ โ์๋คโ๊ฐ ๋ ๊ฐํ ์ฐ๊ด์ฑ์ ๊ฐ์ง๋๋ก ํ์ตํ ์ ์์!
5๏ธโฃ Self-Attention์ด ์ค์ํ ์ด์
โ
๋ฌธ๋งฅ(Context)์ ์ ์ดํดํ ์ ์์ (๊ธฐ์กด RNN๋ณด๋ค ๋ ๊ฐ๋ ฅํ ๊ด๊ณ ํ์ต ๊ฐ๋ฅ)
โ
๋ณ๋ ฌ ์ฐ์ฐ์ด ๊ฐ๋ฅ (๊ธฐ์กด RNN์ ์์ฐจ์ ์ฒ๋ฆฌ์ด์ง๋ง, Self-Attention์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ง์)
โ
๊ธด ๋ฌธ์ฅ์์๋ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋จ์ด ๊ฐ ๊ด๊ณ๋ฅผ ํ์ต ๊ฐ๋ฅ
โ
๋ฒ์ญ, ์ง์์๋ต, ์์ฝ, ๋ํ ๋ชจ๋ธ ๋ฑ ๋ค์ํ NLP ์์
์์ ํ์์