Transformer(2017) - 1
์ด ํฌ์คํธ๋ ์ ๊ฐ ๊ฐ์ธ์ ์ธ ์ฉ๋๋ก ์ ๋ฆฌํ ๊ธ ์ ๋๋ค.
- โAttention is all you needโ
- 2017, Google
- Attention Mechanism(2015)
- Transformer(2017)
- Three Attentions in Transformer
- Reference
์ด๊ณณ์์ ๋ง์ ๋์์ ๋ฐ์์ต๋๋ค! ํฌ์คํธ์ ์ฌ์ฉ๋ ์ฌ์ง์ ๋๋ถ๋ถ ์ข์ธก์ ๋งํฌ์์ ๊ฐ์ ธ์จ ๊ฒ ์ ๋๋ค!
Attention Mechanism(2015)
๊ธฐ์กด seq2seq ๋ชจ๋ธ์ ํ๊ณ
seq2seq ๋ชจ๋ธ์ ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์. ํ์ง๋ง, ์ธ์ฝ๋์์ ์ ๋ ฅ sequence๋ฅผ ํ๋์ context vector๋ก ์์ถํ๋ ๊ณผ์ ์์ ์ ๋ ฅ์ ์ ๋ณด๊ฐ ์ผ๋ถ ์์ค๋จ.
๊ทธ๋ฆฌ๊ณ RNN์ ๊ณ ์ง์ ์ธ ๋ฌธ์ ์ธ ์ ๋ ฅ ์ํ์ค๊ฐ ๊ธธ์ด์ง๋ฉด, ์ถ๋ ฅ ์ํ์ค์ ์ ํ๋๊ฐ ๋จ์ด์ง๋ค๋ ๋ฌธ์ ๋ ๋ฐ์ํจ.
์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋ ๊ฒ์ด Attention Mechanism!!
Attention Mechanism
โAttention์ ๊ธฐ๋ณธ ์์ด๋์ด๋ ๋์ฝ๋์์ ์ถ๋ ฅ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋งค ์์ (time step)๋ง๋ค, ์ธ์ฝ๋์์์ ์ ์ฒด ์ ๋ ฅ ๋ฌธ์ฅ์ ๋ค์ ํ๋ฒ ์ฐธ๊ณ ํ๋ค๋ ์ ์ด๋ค.
๋จ, ์ ๋ ฅ ๋ฌธ์ฅ ์ ์ฒด๋ฅผ ์ ๋ถ ๋์ผํ ๋น์จ๋ก ์ฐธ๊ณ ํ๋ ๊ฒ์ด ์๋๋ผ, ํด๋น ์์ ์์ ์์ธกํด์ผ ํ ๋จ์ด์ ์ฐ๊ด์ด ์๋ ์ ๋ ฅ ๋จ์ด ๋ถ๋ถ์ ์ข๋ ์ง์ค(atteion)ํด์ ๋ณด๊ฒ ๋๋ค!โ
Attention Function
Attention Function์ ์ฃผ์ด์ง Query $Q$์ ๋ํด ๋ชจ๋ ํค $K$์์ โ์ ์ฌ๋โ๋ฅผ ๊ฐ๊ฐ ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ ์ฌ๋๋ฅผ ํค์ ๋ฌถ์ฌ์๋ ๊ฐ $V$์ ๋ฐ์ํด์ค๋ค. ์ถ๋ ฅ์ธ Attention Value๋ ์ด ๊ฐ $V$์ ์ ์ฌ๋๋ฅผ ๋ฐ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ ๋ํด์ ๋ฆฌํดํ ๊ฒ์ด๋ค.
์ด์ $Q$, $K$, $V$๋ฅผ ์ข๋ ๊ตฌ์ฒดํ ํด๋ณด์.
- Query $Q$: $t$ ์์ ์ ๋์ฝ๋ ์ ์์์ ์๋ ์ํ
- Keys $K$: ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์ ์ ์๋ ์ํ
- Values $V$: ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์ ์ ์๋ ์ํ
Dot-Product Attention
Attention์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋๋ฐ, โDot-Product Attentionโ์ ๊ทธ์ค์์๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ์์ด๋ค.
๋ณธ๋ ๋์ฝ๋์์ $t$ ์์ ์์์ ์ถ๋ ฅ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด ๋ ๊ฐ์ง ์ ๋ ฅ๊ฐ์ด ํ์ํ๋ค.
- $t-1$ ์์ ์ ์๋์ํ; $s_{t-1}$
- $t-1$ ์์ ์ ์ถ๋ ฅ๋จ์ด
๊ทธ๋ฐ๋ฐ Attention Mechanism์์๋ ์ถ๋ ฅ ๋จ์ด ์์ธก์ Attention Value $a_t$๋ฅผ ์ถ๊ฐํ์ฌ ์ถ๋ ฅ ๋จ์ด๋ฅผ ์์ธกํ๊ฒ ๋๋ค!
Step 1: Calculate Attention Scores
์ธ์ฝ๋์ ์๋์ํ $h_i$์ ๋์ฝ๋์ ํ์ฌ ์์ $t$์์์ ์๋์ํ๋ฅผ $s_t$๋ผ๊ณ ํ์. ๊ทธ๋ฆฌ๊ณ ๋ ผ์์ ํธ์๋ฅผ ์ํด $h_i$์ $s_t$์ ์ฐจ์์ ๊ฐ๋ค๊ณ ๊ฐ์ ํ๋ค.
Dot-Product๋ฅผ ํตํด ์ธ์ฝ๋์ ์๋ ์ํ ๊ฐ๊ฐ์ด ๋์ฝ๋์ ํ์ฌ์ ์๋ ์ํ $s_t$์ ์ผ๋ง๋ ์ ์ฌํ์ง ํ๋จํ๋ค. ์ด ์ ์ฌ๋ ๊ฐ์ Attention Score๋ผ๊ณ ํ๋ค.
\[\textrm{score}(s_t, h_i) = {s_t}^T \cdot h_i\]$s_t$์ ์ธ์ฝ๋์ ๋ชจ๋ ์๋ ์ํ์์ Attention score๋ฅผ ๋ชจ์์ ๋ฒกํฐ๋ก ํํํ ๊ฒ์ $e^t$๋ผ๊ณ ํํํ์. ๊ทธ๋ฌ๋ฉด $e^t$๋ ์๋์ ๊ฐ๋ค.
\[e^t = [{s_t}^T h_1\, , \, \dots \, , \, {s_t}^T h_N]\]Step 2: Get Attention Distribution by Softmax
$e^t$์ Softmax ํจ์๋ฅผ ์ ์ฉํด, ํ๋ฅ ๋ถํฌ Attention Distribution์ ์ป๋๋ค.
์ด๋, ๊ฐ๊ฐ์ ๊ฐ์ Attention Weight๊ฐ ๋๋ค.
(๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด, ๊ทธ๋ฅ $e^t$๋ฅผ normalizeํ ๊ฒ์ด๋ค.)
Step 3: Get Attention Value
๊ฐ ์ธ์ฝ๋์ ์๋ ์ํ $h_i$์ ์์์ ์ป์ Attention Weight๋ฅผ ๊ณฑํ๋ค. ์ดํ ๊ทธ ๋ชจ๋๋ฅผ ๋ํด์ค๋ค.
๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด Attention Weight์ผ๋ก ๊ฐ์คํฉ์ ํ๋ ๊ฒ์ด๋ค.
\[a_t = \sum^{N}_{i=1} { {\alpha^t}_i \cdot h_i }\]์ด Attention value$a_t$๋ ์ธ์ฝ๋์ ๋ฌธ๋งฅ์ ํฌํจํ๊ณ ์๋ค๊ณ ํ์ฌ โContext Vectorโ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. seq2seq์์ ์ธ์ฝ๋์ ๋ง์ง๋ง ์๋ ์ํ๋ฅผ Context Vector๋ผ๊ณ ๋ถ๋ฅธ ๊ฒ๊ณผ๋ ๋ค๋ฅด๋ค!
Step 4: Concatenate Attention Value and Decoder Hidden State
๋์ฝ๋์ ์๋ ์ํ์ธ $s_t$์ Attention Value $a_t$๋ฅผ Concatenateํ์ฌ ํ๋์ ๋ฒกํฐ $v_t$๋ก ๋ง๋ ๋ค.
์ด $v_t$๋ฅผ ์ ๋ ฅ์ผ๋ก ์ผ์ $\hat{y}$๋ฅผ ์์ธกํ๋ค.
๊ทธ ์ดํ๋ ์ผ๋ฐ์ ์ธ RNN๊ณผ ๋์ผํ๋ค.
Transformer(2017)
RNN์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด Attention ๋ชจ๋ธ์ด ์ ์๋์๋ค. Transformer์์๋ Attention์ ์๋ก์ด ์๊ฐ์ผ๋ก ์ ๊ทผํ๋ค.
์์ Attention์ผ๋ก ๋์ํ๋ ์ธ์ฝ๋-๋์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณด์!"
Transformer๋ RNN์ ์ฌ์ฉํ์ง ์๋๋ค! ๊ทธ๋ฌ๋ ๊ธฐ์กด์ seq2seq์ฒ๋ผ ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. ๋ค๋ง, ๊ธฐ์กด ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์์ ํ ๋ฐ๋ฅด๊ณ ์๋ ๊ฑด ์๋๋ฐ, ์ธ์ฝ๋-๋์ฝ๋๊ฐ 1:1๋ก ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ๋ค์:๋ค์๋ก ์กด์ฌํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค!!
๊ทธ๋์ ๋ค์:๋ค์ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ โEncoder-Decoderโ๊ฐ ์๋๋ผ โEncoders-Decodersโ๋ผ๊ณ ํํํ๋ค.
Positional Encoding
Transformer๋ ๊ธฐ์กด ์ธ์ฝ๋-๋์ฝ๋ ๋ชจ๋ธ๊ณผ๋ ๋ฌ๋ฆฌ ์ ๋ ฅ Sequence๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ ๊ตฌ์กฐ๊ฐ ์๋๋ผ โPositional Encodingโ๋ก ์ ์ฒ๋ฆฌ๋ ๊ฐ์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋๋ค.
๊ธฐ์กด RNN์์๋ Sequence๋ฅผ ๋จ์ด๋ณ๋ก ์์ฐจ์ ์ผ๋ก ์ ๋ ฅ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋จ์ด์ ์์น ์ ๋ณด(Positional Information)์ด ์์์ ๋ด๊ธฐ๊ฒ ๋๋ค. ๋ฌผ๋ก ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ RNN์์๋ Encoding ๊ณผ์ ์ ๊ฑฐ์น๋ค! ์ด๋ฅผ โ์๋ ์๋ฒ ๋ฉ(Word Embedding)โ์ด๋ผ๊ณ ํ๋ค. link
์ด์ Transformer์์ ์ด๋ค ๋ฐฉ์์ผ๋ก Positional Encoding Vector๋ฅผ ์์ฑํ๋์ง ์ดํด๋ณด์.
Transformer๋ $(\textrm{pos}, i)$๋ฅผ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก Positional Encoding์ ์์ฑํ๋ค. ์ด๋, $\textrm{pos}$๋ ์ ๋ ฅ sequence ๋ด์์ ๋จ์ด์ ์์น๋ฅผ ์๋ฏธํ๊ณ , $i$๋ embedding vector์ ์ฐจ์ ๋ด์์์ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋ค.
$\textrm{pos}$์ ๋ํ Positional Encoding์ ์๋์ ํจ์์ ์ํด ์ป์ ์ ์๋ค.
\[\begin{aligned} \textrm{PE}(\textrm{pos}, 2i) &= \sin \left( \left({\textrm{pos} / 10000}\right)^{2i/d_{\textrm{model}}} \right) \\ \textrm{PE}(\textrm{pos}, 2i + 1) &= \cos \left( \left({\textrm{pos} / 10000}\right)^{2i/d_{\textrm{model}}} \right) \end{aligned}\](์์ ๊ทธ๋ฆผ์์ $d_{\textrm{model}}=4$๋ก ์ค์ ํ์์ง๋ง, ์ค์ ๋ ผ๋ฌธ์์ 512๋ก ์ค์ ๋์ด ์๋ค๊ณ ํ๋ค.)
์์ ๊ฐ์ Positional Encoding ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ์ ๋ ฅ sequence์ ๋ํ ์์ ์ ๋ณด๊ฐ ๋ณด์กด๋๋ค๊ณ ํ๋ค! ์ด๋ฅผ ํตํด ๊ฐ์ ๋จ์ด์ผ์ง๋ผ๋ ๋ฌธ์ฅ ๋ด์ ์์น์ ๋ฐ๋ผ์ Transformer์ ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ Embedding Vector์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ด๋ค!
Three Attentions in Transformer
Transformer์์ 3๊ฐ์ง ๋ฐฉ์์ผ๋ก Attention์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆผ์์ ํ์, ์ด๋ก์, ํ๋์์ ํ์ดํ๋ ๊ฐ๊ฐ Query, Key, Value๋ฅผ ์๋ฏธํ๋ค. (์๋ง๋)
๋จผ์ โSelf-Attentionโ์ด๋ ๋ฌด์์ธ์ง ์ดํด๋ณด์. Self-Attention์ Query์ Key, Value ๋์ผํ ๊ณณ์์ ์ ๋ํ๋ค๋ฉด, โSelf-Attentionโ์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด 3๋ฒ์งธ Attention Model์ ๊ฒฝ์ฐ Query๊ฐ ๋์ฝ๋์์ ์ ๋ํ๊ธฐ ๋๋ฌธ์ Self-Attention์ด ์๋๋ค. Attention Mechanism์์ ์ดํด๋ณธ ๋ชจ๋ธ๋ Self-Attention Model์ด ์๋๋ค.
1๋ฒ์งธ ๋ชจ๋ธ์ ๊ฒฝ์ฐ, Self-Attention์ด๋ฉฐ ์ธ์ฝ๋์์ ์ด๋ฃจ์ด์ง๋ค. ๋ฐ๋ฉด์ 2๋ฒ์งธ์ 3๋ฒ์งธ Attention Model์ ๊ฒฝ์ฐ ๋์ฝ๋์์ ์ด๋ฃจ์ด์ง๋ค.
(2๋ฒ์งธ๋ Self-Attention์ด๊ธด ํ๋ฐ, Q, K, V๊ฐ ๋ชจ๋ ๋์ฝ๋์ ๋ฒกํฐ๋ก ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด๋ค.)
Transformer๋ ์์ 3๊ฐ์ง Attention์ ๋ชจ๋ ์ฌ์ฉํ๋ค! ๊ฐ๊ฐ์ด Transformer ์ํคํ ์ฒ์ ์ด๋์์ ์ฌ์ฉ๋๋์ง ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
๋๋ฒ์งธ ํฌ์คํธ์์ Transformer ๋ชจ๋ธ์ ์ธ์ฝ๋์ ๋์ฝ๋, ๊ทธ๋ฆฌ๊ณ 3๊ฐ์ง Attention Model์ ๋ํด ๋ ์์ธํ ์ดํด๋ด ๋๋ค.