๐ง๐ปโ๐ป์ฉ์ด ์ ๋ฆฌ
Neural Networks
RNN
LSTM
Attention
Transformer
Generator
discriminator
self-attention
layer normalization
multi-head attention
positional encoding
https://arxiv.org/abs/1706.03762
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org

generator๋ generation task๋ฅผ ํ๋ model์ ๋๋ค.
์ด๊ฒ์ input์ ๋ํด์ ์ด๋ ํ output์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
discriminator๋ ๋ถ๋ฅ๊ธฐ์ ๋๋ค.
์ด๋ฌํ ์ฉ์ด๋ ์ธ๊ณต์ง๋ฅ์์ ์์ฃผ ์ฐ์ด๋ ์์๋๊ณ ๊ฐ์๋ค.
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด
RNN, LSTM, GRU ๋ sequence๋ก ์์์๋ถํฐ ์ฐจ๋ก๋ก ๊ณ์ฐ๋๊ฒ ๋ฉ๋๋ค.

๊ทธ๋ ๊ฒ Sequence ๊ธธ์ด๋งํผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ seqentialํ ๊ตฌ์กฐ ๋ง๊ณ parallelํ ๊ตฌ์กฐ๊ฐ ์์๊น ์๊ฐํฉ๋๋ค.
parallelํ ๊ตฌ์กฐ๋ input sequence๊ฐ ๋ชจ๋ ํ ๋ฒ์ ๊ณ์ฐ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ Attention์ ๋ค์ ๋ด ์๋ค.
Decoder์ hidden state์ Encoder์ hiddn state์ attention์ ๊ณ์ฐํด์ ์๋ก์ด context vector๋ฅผ ๊ตฌํ์ต๋๋ค.

์ง๊ธ์ h_1 ~ h_n์ encoder RNN์ผ๋ก ๊ตฌํ ๋ค์, decoder์์ RNN์ ๊ฐ์ง๊ณ Dot product๋ฅผ ์งํํ์ต๋๋ค.
๊ทธ๋์ h_1 ~ h_n์ ๊ตฌํ๋ ๊ณผ์ ์ด ์์์ต๋๋ค.
๊ทธ๋ฌ๋ transformer๋ RNN์ ํ์ง ์๊ณ ๋ฐ๋ก sequence ์์ด ์ฌ์ฉํฉ๋๋ค.
์ด๋ฐ์์ผ๋ก ๋ชจ๋ธ๋ง์ด ๊ฐ๋ฅํ๋ฐ, ์ด๊ฒ์ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก ์๋ก๊ฐ์ sequence ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋ฎ์ต๋๋ค.
๊ทธ๋์ ๊ณ ์๋ ๊ฒ์ด ์ด Sequence์์ x_1 ~ x_n๋ผ๋ฆฌ attention์ ๊ตฌํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ผ Transformer ์์ํฉ๋๋ค.
Transformer

์ง๊ธ๊น์ง๋ ์์ ๊ฐ์ด x_1 ~ x_n์ ์ฐจ๋ก๋ก ๋ฃ๊ณ output๋ ์ฐจ๋ก๋ก ๋ฐ์์ต๋๋ค.

๊ทธ๋ฐ๋ฐ, ์์ ๊ฐ์ด x_1 ~ x_n์ ํ ๋ฒ์ ์ ์ฉํด๋ณผ ์๋ ์์ต๋๋ค.
ํ ๋ฒ์ Attention ๋ฐฉ๋ฒ์ ์ ์ฉํ์ฌ ๊ตฌํฉ๋๋ค.
๋ ์์ธํ ์ดํด๋ด ์๋ค.
encoder์ ์๋ sequence๋ฅผ ํ ๋ฒ์ ๋ฃ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
๊ทธ๋์ ์์ ๊ฐ์ด x_1 ~ x_n์ ๊ฐ์ง๊ณ o_1์ ๊ตฌํฉ๋๋ค.

๊ทธ๋ฆฌ๊ณ ๋, x_1 ~ x_n๊ณผ o_1์ ์ด์ฉํ์ฌ o_2๋ฅผ ๊ตฌํฉ๋๋ค.
x_1 ~ x_n์ ํ ๋ฒ์ ๊ณ์ฐ์ ํ๊ณ , output๋ถํฐ๋ decoder๋ฅผ ์ด์ฉํด ๊ตฌํฉ๋๋ค.
์ด Output์ ๊ตฌํ๋ ๊ฒ์ RNN์์ ํ๋ Inference ๊ณผ์ ๊ณผ ๊ฐ์ต๋๋ค.
o_1์ ๊ตฌํ๊ณ o_2๋ฅผ ๊ตฌํ๋ ํ์์ด์ฃ .

๊ทธ๋์ ์์ ๊ฐ์ ๊ณ์ฐ์ ๊ฐ์ฃ .
์ด Transformer๋ 2017๋ ์ "Attention is All you need" ๋ผ๋ ๋ ผ๋ฌธ์ผ๋ก Google brain๊ณผ Google research ํ์์ ๋ง๋ค์ด์ก๊ณ ,
ํด๋น ๋งํฌ๋ ๋งจ ์์ ๋ฌ์๋์ต๋๋ค.
์ด์ Transformer ๊ตฌ์กฐ๋ฅผ ๋ด ์๋ค.

์ผ์ชฝ์ input sequence๋ฅผ modelingํ๋ encoder ๋ถ๋ถ์ ๋๋ค.
์ค๋ฅธ์ชฝ์ decoder ๋ถ๋ถ์ผ๋ก output์ด ์ฒซ ๋ฒ์งธ token์ ๋ค์ด๊ฐ์ ๋,
์ฒซ๋ฒ์งธ ๋จ์ด ๋์ค๊ณ , ์ฒซ ๋ฒ์งธ ๋จ์ด ๋ค์ด๊ฐ์ ๋ ๋ ๋ฒ์งธ ๋จ์ด ๋์ค๊ณ ํ๋ ํ์์ ๋๋ค.
ํ sequence์ ๋ํด์ encoder์ ๋ค์ด๊ฐ์ ๋ ์ด๋ ํ Representation์ ํ์ตํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ decoder์์๋ ํ๋์ฉ ์ถ๋ ฅ์ ๋ฝ์๋ด๋ ํํ์ ๋๋ค.
์ด์ ์ฃผ์ ๊น๊ฒ ๋ด์ผํ ๋ถ๋ถ, ๊ฐ์ฅ ํฐ ์์ด๋์ด๋ multi-head attention์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ positional encoding๋ ์ค์ํฉ๋๋ค.
๊ณฑํ๊ธฐ N์ ์์ ๊ฐ์ Transformer ๊ตฌ์กฐ๊ฐ N๋ฒ ๋ฐ๋ณต๋จ์ ๋ํ๋ ๋๋ค.
ํ๋์ฉ ์ดํด๋ด ์๋ค.
Encoder

์ด์ ์๋ก์ด self-attention์ด๋ผ๋ ๊ฐ๋ ์ด ๋ฑ์ฅํฉ๋๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด, parallelํ ๊ตฌ์กฐ๋ฅผ ์ํด์ self-attention์ด ์ฌ์ฉ์ด ๋ฉ๋๋ค.

์ฐ๋ฆฌ๋ thinking์ด๋ผ๋ ๋จ์ด๋ฅผ ๊ณ์ฐํ ๋,
์ด thinking์ด๋ผ๋ ๋จ์ด์ thinking์ ํฌํจํ sequence์ ๋จ์ด์ attention์ ํฉ๋๋ค.
์ด transformer Layer๋ฅผ ํ ๋ฒ ๊ฑฐ์น๋ฉด ์ด thinking ๋จ์ด์ ์ด ๋จ์ด๋ฅผ ํฌํจํ ๋ค๋ฅธ ๋จ์ด์์ attention์ ์ป๊ณ ์ถ์ด ํฉ๋๋ค.
์ด์ ์ ๋ฐฐ์ด ๊ฒ์ฒ๋ผ, ์ด ๋จ์ด๋ฅผ RNN decoder์ hidden state๋ก ๋ณด๊ณ ์ด ๋จ์ด ํฌํจ ๋๋จธ์ง ๋ถ๋ถ๋ค์ encoder์ hidden state๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ผ dot productํ attention score๋ฅผ ๋ฝ์์ weighted sum์ด ์ด๋ฃจ์ด์ง๊ณ ์ด sumํ ๊ฐ์ ์ฐ๋ฆฌ๊ฐ ๋ค์ layer์ vector๋ผ๊ณ ํ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ self-attention์ด ์ด๋ฃจ์ด์ง๋๋ค.
์ ์ Q, K, V๋ฅผ ๋ด ์๋ค.

RNN seq2seq ๊ตฌ์กฐ์์๋ Decoder์ h_t-1์ hidden state์ x_1 ~ x_n์ sequence์ dot product๋ฅผ ํตํด attention ๊ฐ์ ๊ตฌํ๊ณ , ํด๋น ๊ฐ์ ๋ํด์ sofrmax func.๋ฅผ ์ง๋ attention score๋ฅผ ๊ฐ๊ฐ ๊ตฌํ์ฌ ์ด ๊ฐ์ ๋ค์ x_1 ~ x_n์ weighted summation ํ์ฌ context vector๋ฅผ ๊ตฌํ์์ต๋๋ค.
์ฌ๊ธฐ์ Q, K, V๋ผ๋ ๊ฐ๋ ์ด ๋์ ๋ฉ๋๋ค.
Q๋ Query, K๋ Key, V๋ Value์ ํด๋น๋ฉ๋๋ค.
์ ๊ทธ๋ฆผ์์ ์ดํด๋ณด์๋ฉด, decoder์์ ๋์ด์จ hidden state h_t-1์ query, encoder์ x_1 ~ x_n์ hidden state ๊ฐ key,
์ด๋ ๊ฒ Query์ Key ์ฌ์ด์ dot product๋ฅผ ํฉ๋๋ค.
๊ทธ๋ ๊ฒ attention score๋ฅผ ๊ตฌํ๊ณ ,
key ๊ฐ๊ณผ value๋ ๊ณ์ฐ๋๋ ๊ฒ์ x_1 ~ x_n์ผ๋ก ๊ฐ์ง๋ง, attention score๋ฅผ ๊ณ์ฐํ๋ คํ ๊ฒ์ key,
์ต์ข ์ ์ผ๋ก weighted sum์ ํ๋ ๊ฒ์ value๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ฉ์ด๋ฅผ ์์ ๊ฐ์ด ๊ตฌ๋ถํ๋ค๊ณ ๋ณด๋ ๊ฒ์ ๋๋ค.

์ด๋ ๊ฒ ์์ผ๋ก ๋ํ๋ด์ด attention์ ๊ตฌํ ์ ์์ต๋๋ค.

๋ ผ๋ฌธ์์๋ ์์ ๊ฐ์ ์์์ผ๋ก ๋์ด ์์ต๋๋ค.
k๋ ๋ฃจํธ d_k๋ก ์ฐจ์์ ๋๋ค.
dot product๋ฅผ ํ๋ ๋ฐ ์์ด, ํฐ ์ฐจ์ x ํฐ ์ฐจ์์ผ๋ก ์งํํ๋ฉด ์์ฒญ ํฐ ์ฐจ์์ด ๋์ค๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ ๋ฃจํธ d_k๋ฅผ ๋๋ ์ค์ผ๋ก์จ normalization ํจ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ฉฐ ๋๋ฌด ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
๊ทธ๋์ Self-attention์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.

x_1 query์ x_1 ~ x_n์ธ key, value ์ ๋ํด query์ key๋ฅผ dot product ํ softmax ์์ฐ๊ณ ,
attention score์ ๋ํด value์ weighted sum์ ํ๋ฉด context vector๊ฐ ๋์ต๋๋ค.
์ด Query๋ฅผ x_1 ~ x_n๊น์ง ๋ฐ๋ณตํ์ฌ ๊ฐ๊ฐ์ Context vector๋ฅผ ๊ตฌํฉ๋๋ค.
์ ์์์ x_i๋ผ๋ Query๊ฐ ๋ค์ด์์ ๋, input sequence์ key ๊ฐ๊ณผ attention score ๊ตฌํ๊ณ ๊ทธ๊ฒ์ผ๋ก value ๊ฐ๊ณผ weighted sum์ ํ๋ ๊ตฌ์กฐ์ด์ฃ .
๊ทธ๊ฒ์ ํํํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ x_1 ~ x_n์ ๋ํด ๋ฐ๋ณตํ๋ฉด ์๋์ ๊ฐ๊ฒ ์ฃ .

encoder์์๋ input sequence ๋ผ๋ฆฌ ์ผ๋ง๋ ๊ด๋ จ์ด ๋์ด ์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
Q, K, V๋ฅผ input์ sequence๋ง์ ์ด์ฉํ์ ๊ณ์ฐํ๊ฒ ๋ค๋ ๊ฒ์ด์ฃ .

๊ฐ ๋จ์ด์ ๋ํด์ self-attention์ ๊ตฌํฉ๋๋ค.
it์ ๋ํด์ self-attention์ ํ์ฌ ์ฐ์ฐํ attention score๊ฐ์ด ์ข์ธก๊ณผ ๊ฐ์ด ๋์ต๋๋ค. ์ด๊ฒ์ weighted sumํ ๊ฐ์ด ์๋กญ๊ฒ ๊ตฌํ attention์ ๋๋ค. ์ฆ, self-attention ๊ฐ์ด์ฃ .
์ด๋ ๊ฒ self-attention layer๋ฅผ ํ ๋ฒ ํต๊ณผํ๋ฉด ์ด ๋จ์ด์ input sequence์ ๊ด๋ จ ์๋ ๋จ์ด์ ์ฐ๊ดํ์ฌ context๋ฅผ ๋ฐ์ํ์ฌ ์๋ก์ด word embedding์ผ๋ก ๋ฐ๋๋ ๊ฒ์ ๋๋ค.
์๋๋ ๊ด๋ จ ์๋ Vector ํํ์๋ ๊ฒ์ด ๊ด๋ จ ์๋ ๊ฒ์ผ๋ก ๋ฐ๋๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
์๋ก์ ์ ๋ณด๊ฐ ๋ฐ์์ด ๋์ด ๊ณ์ฐ๋ฉ๋๋ค.
์ฅ์ :
- ๋ ๊ฑฐ๋ฆฌ๊ฐ ๊ธด sequentialํ ๊ตฌ์กฐ์์ RNN์ด ํ์ตํ๊ธฐ ์ด๋ ต๋ long-range dependencies๋ฅผ self-attention์ ํตํด ๋จ์ด ๊ณ์ฐ์ Q, K, V๋ฅผ ํตํด ๋์ผํ๊ฒ attention์ ๊ณ์ฐํจ์ผ๋ก์จ long-range dependencies๋ฅผ ์ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๋๋ค.
- ์๋๋ ๊ธธ์ด๊ฐ 100์ด๋ฉด 100๋ฒ ๊ณ์ฐํ์ง๋ง, ์ด๊ฒ์ self-attention ํ ๋ฒ์ผ๋ก parallelization์ ํตํด, Q, K, V๋ฅผ ํตํด ํ ๋ฒ์ ๊ณ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.Q, K, V๋ฅผ Matrix๋ก ๋ฐ๊ฟจ๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ ๊ณ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํจ๊ณผ์ ์ธ computation์ด ์ด๋ฃจ์ด์ง๋๋ค.
Multi-head Attention

multi-head์ ๊ฐ์๋งํผ ์ชผ๊ฐ์ด attention์ ๊ณ์ฐํ๋ ๊ฒ์ ๋๋ค.
Input sequence๋ก ๋ค์ด์จ ์ฐจ์๋งํผ์ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ ์ชผ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
multi-head์ ๊ฐ์๋งํผ ์ชผ๊ฐ์ด ๋์จ ๊ฒ๋ค์ ํฉ์นฉ๋๋ค.
์ด๊ฒ์ ์ ํ ๊น์?
์ฅ์ :
- ์๋ฅผ ๋ค์ด ํฐ ์ฐจ์์ ํ ๋ฒ์ ํ๋ ๊ฒ์, ๋๋์ด์ ํ๋ฉด, ์ฌ๋ฌ ๊ด์ ์์ ์ด sequence๋ฅผ ๋ฐ๋ผ๋ณผ ์ ์๋ค.
- ๋ค๋ฅธ ๊ด์ ์ผ๋ก self-attention์ด ๊ฐ๋ฅํด์ง๋ค.
- ๊ด์ ์ ๋ฐ๋ผ attention score๊ฐ ๋ฌ๋ผ์ง๋ค.
- ์ฐ์ฐ์ ๋๊ฐ์ด ํ๋ ๋ ๋ค์ํ ๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณด๊ธฐ ์ํจ.

์์ ์์ ๊ฐ์ผ๋ฉฐ,
์ด๋ฅผํ ๋ฉด input sequence 256์ฐจ์์ multi-head๊ฐ์๋ฅผ 4๋ผ๊ณ ํ๋ฉด, ์ด 256์ฐจ์์ 64์ฐจ์์ง๋ฆฌ๋ก ๋ฐ๊ฟ์ผํ๋ weighted matrix๊ฐ W์ ๋๋ค.
์ด W๋ฅผ ๊ณฑํด์ ์ฐจ์์ ์ค์ด๋ ๊ฒ์ ๋๋ค.
256์ฐจ์์ 64์ฐจ์์ผ๋ก ๋ฐ๊พผ๋ค์์ ๊ณ์ฐํด๋ผ ์ ๋๋ค.
์๋ ํ ๋ฒ์ ํ๋ ๊ฒ์ multi-head์ ๊ฐ์๋งํผ ์ค์ด๋ผ๋ ๊ฒ์ ๋๋ค.

์๋ Attention score๊ฐ ํ๋ ๋ฐ์ ์ ๋์ค๋ ๊ฒ์์, multi-head attention์ ํตํด ์ฌ๋ฌ ๊ฐ์ง ๊ด์ ์ ํตํด ๋ณด๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์๋์ ๊ฐ์ด multi-head์ ๋ฐ๋ผ attention score๊ฐ ๋ฐ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.

์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 256์ฐจ์์ง๋ฆฌ๋ฅผ multi-head 4๊ฐ๋ก ์ค์ ํ์ฌ 64์ฐจ์์ผ๋ก ๋๋์ด ๊ฒฐ๊ณผ๋ฅผ 4๋ฒ ๋ด์ด ๊ทธ๊ฒ๋ค์ ๋ถ์ฌ๋๊ฒ ๋ฉ๋๋ค.
Q 256์ฐจ์ ์ง๋ฆฌ๋ฅผ 64์ฐจ์์ผ๋ก ์ค์ธ ๋ค์์, ๊ทธ๊ฒ๋ค์ ๋ํ self attention์ ๊ณ์ฐํ๊ณ , Z_1 ~ Z_4๋ก ๊ณ์ฐํ๊ณ , ๊ทธ๊ฒ๋ค์ ๋ถ์ธ ๊ฒ์ ๋๋ค.

์ฌ์ค ์๋๋ค๊ธฐ ๋ณด๋จ 256 ์ฐจ์์ vector๋ฅผ W๋ฅผ ๊ณฑํ์ฌ 64์ฐจ์์ผ๋ก 4๊ฐ์ weighted matrix๊ฐ ์๊ฒ ๋ฉ๋๋ค.
์ด 64์ฐจ์ ์ง๋ฆฌ๋ multi-head ์ข ๋ฅ๋ณ๋ก ๋์ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ๋ค์ ๊ฐ์ง๊ณ attention์ ํ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ multi-head ๊ฐ์๋งํผ weight ๊ฐ์ด ์กด์ฌํฉ๋๋ค.
์ด W๋ ํ์ตํ๋ Parameter์ ๋๋ค.
FeedForward

์ด๋ ๊ฒ Multi-head์ ๋ฐ๋ผ ํ๋์ ๋จ์ด์ ๋ํ multi-head attention์ ๊ตฌํ์ต๋๋ค.
์ด๊ฒ๋ค์ multi-head attention๋ง ํ์ฌ ๋ถ์ด๊ธฐ๋ง ํ์์ผ๋ฏ๋ก ์๋ก๊ฐ ๊ด๋ จ๋์ด ์์ง ์์ต๋๋ค.
๊ทธ๋์ ํ ๋ฒ์ LInear transform์ด ํ์ํฉ๋๋ค.
๊ทธ๊ฒ์ ์ํด์ Fully connected layer๋ฅผ ํ๋ ์ถ๊ฐํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์ด๊ฒ์ linear transformํ ๋ค ReLU์ ๊ณผ์ ์ ๊ฐ์ง๋๋ฐ, ์ด๊ฒ์ Feed Forwardํ๋ค๊ณ ํฉ๋๋ค.

Positional Encoding

๋ง์ฝ, ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ด ์๋ค๊ณ ํด๋ด ์๋ค.
The animal didn't cross the street because it was too tired
๊ทธ๋ผ ์ The๊ฐ 2๊ฐ ์์ฃ .
์ฌ๊ธฐ์ ์ the๋ ๊ฐ๊ฐ ๋ค๋ฅธ Embedding์ ๊ฐ์ง๊น์?
์๋๋๋ค.
๋์ ๊ฐ์ Embedding์ ๊ฐ์ง์ฃ .
sequence๊ฐ ์์ต๋๋ค. ๊ทธ๋ฅ ๋จ์ด ๊ธฐ์ค ๋ค๋ฅธ ๋จ์ด๋ค์ ๊ณ์ฐํ ๋ ๋ค๋ฅธ ๋จ์ด๋ค์ ๊ณ์ฐํ ๊ฒ ๋ฟ์ด์ง, ์ด ๋จ์ด๊ฐ ์ฒซ ๋ฒ์งธ the, ์ฌ์ฏ ๋ฒ์งธ the์์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ, Self-attention๋ง์ผ๋ก๋ ์ด sentence์ sequence ์ ๋ณด๋ฅผ ๋ด์ ์ ์์ต๋๋ค.
๊ทธ๋์ Positional Encoding์ ํตํด์ ๊ฐ ๋จ์ด์ ์์น Encoding์ ์ค๋๋ค.
๊ทธ๋ฐ๋ฐ ์ positional encoding ์ด์ ์ Input embedding์ด ์กด์ฌํฉ๋๋ค.
์ด input embedding์ ๋จ์ด์ ๋ํ One-hot vector๋ฅผ ํน์ vector ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ ๋๋ค.
vocablouary๊ฐ 256 ์ฐจ์ ์์ ๋,
RNN์์๋ ์์ฐจ์ ์ผ๋ก ์ฒซ ๋ฒ์งธ์ ๋ํ embedding์ ๊ฐ์ ธ์ค๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๊ฒ ํด๋น ๋จ์ด์ ๋ํ embedding์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๊ฒ์ด input embedding์ด์ฃ .
๊ทธ๋์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด thinking์ด๋ผ๋ embedding์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด์ฃ .
๊ทธ๋ ๋ค๋ฉด, ๊ฐ์ ๋จ์ด์ ๋ํด์๋ ๊ฐ์ Embedding์ ๊ฐ๋๋ฐ transformer์์๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ๊ตฌ๋ถํ ๊น์?
sequence ์ ๋ณด ์์ด๋ Attention์ ๋๊ฐ์ embedding์ด ๋ค์ด๊ฐ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋งจ์ฒ์์ sequence ์ ๋ณด๋ฅผ ๋ถ์ฌํ๊ณ ์์ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ ๋ฐฉ๋ฒ์ positional encoding์ ๋๋ค.
๊ทธ๋์ ๊ฐ ๋จ์ด์ ์์น๊ฐ ์ด๋์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๊ณ ์์ํ๋ ๊ฒ์ด์ฃ .
์ด๊ฒ์ ๊ตฌ์กฐ ์ ๋ณดํต ๋งจ ์๋์ ์์ต๋๋ค.
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Positional Embedding์ Word Emedding์ ๋ํ๊ณ ์์ํ์๋ ๊ฒ์ด์ฃ .

๊ทธ๋ ๋ค๋ฉด ์์น ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ๋ฃ์ด์ค๊น์?
์ ์ซ์์ ์ธ ๋ฌธ์์ ์ ๊ณ ๋ คํ๋ฉด ์ ์์์ ์ํด์ ์์น์ ๋ณด๋ฅผ ๊ณ์ฐํ๋ ์์ด๋์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋์ input embedding์๋ค๊ฐ positional embedding์ ๋ํ๋ค๊ณ ํ์ผ๋,
positional embedding ๊ฐ์ ์ด๋ค ์์น๋ฅผ ๋ํํ๋ encoding ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๊ฒ ์ต๋๋ค.
์์ ๊ฐ์ด sin, cos ๊ฐ์ผ๋ก ํ์, ์ง์ ๋ฒ์งธ์ ๋ํด์ ๋ค๋ฅธ ๊ฐ์ ๋ฃ์ด์ค๋๋ค.
์ ๊ฐ์ด ์ด๋ ์์น์ ๋ฐ๋ผ ๊ฐ์ด ์ ํด์ง๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋์ ๋ค๋ค ํน์ ํ ๊ฐ์ ๊ฐ์ง๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
d๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์ํ๋ ์ฐจ์์, k๋ ์์น์ ๋๋ค.
์ด๊ฒ์ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.

๊ทธ๋์ uniqueํ vector ๊ฐ์ ์ฃผ๊ธฐ ์ํด์ Sin, Cos ํจ์๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ ์ฌ์ฉํ์ฌ ์ ๋ ๊ฒน์น์ง ์๋๋ก ํฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด, sequence์ ๋ํด์,
word embedding๊ณผ positional encoding์ ๋ํ ๊ฐ์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค.
์ด๊ฒ์ ๊ฐ์ง๊ณ ์ฒซ ๋ฒ์งธ multi-head attention์ด ์คํ๋๊ณ self-attentionํ๋ฉฐ feed forwardํฉ๋๋ค.
์ด๊ฒ์ด Encoder ํ ๋ฒ ํต๊ณผํ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ N๋ฒ ํต๊ณผํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ResNet์ ํตํด ์ด์ ์ ์ ๋ณด๋ฅผ ๊น๋จน์ง ์๋๋ก ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ต ์ ๋ณด๋ฅผ ์ฝ์ง ์๊ณ ํ์ต์๋๋ ๋น ๋ฆ ๋๋ค.
์๋์ ๊ฐ์ด Residual connection ์ถ๊ฐํ๊ณ , layer norm. ๊น์ง ์ถ๊ฐํฉ๋๋ค.

์ด๋ ๊ฒ transformer๊ตฌ์กฐ๊ฐ ์๊ฒผ์ต๋๋ค.

๊ทธ๋์ Encoder N๊ฐ๋ฅผ ์ต์ข ์ ์ผ๋ก ํต๊ณผํ vector ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
Transformer encoder์ head ๊ฐ์๋ ๋ง๋ค๊ณ ์ข์ ๊ฒ์ ์๋๊ณ , ์ผ๋ฐ์ ์ผ๋ก 8๊ฐ ์ ๋ ์ฌ์ฉํฉ๋๋ค.
word embedding์ ๋จ์ด์ ๊ฐ์๋ ๋ฐ์ดํฐ์ ๊ธธ์ด์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ทธ๋์ 256, 512, 1024 ๋ฑ๋ฑ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ Transformer encoder๋ฅผ ํตํด์ layer๋ฅผ N๋ฒ ํต๊ณผํ ๊ฐ๊ฐ์ word embedding์ ๋ณด์์ต๋๋ค.
Decoder
decoder๋ ๋๊ฐ์ด attention์ ์ฌ์ฉํฉ๋๋ค.
decoder๋ ์ฒซ ๋ฒ์งธ ๋จ์ด์ ๋ํด์ output์ ์์ฑํ๋ ๊ฒ์ด RNN์ inference์ ์ผ์นํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, Decoder๋ ์ฒซ ๋จ์ด๊ฐ ๋ค์ด๊ฐ์ ์ด๊ฒ์ด Query๊ฐ ๋ฉ๋๋ค.
๋ง์ฝ, "๋๋ ํ๊ต์ ๊ฐ๋ค"์ ๋ํด์ ๋ด ์๋ค.
output์ด 'i'๊ฐ ๋ค์ด๊ฐ๋ค๊ณ ํฉ์๋ค.
๊ทธ๋ผ, i์ ๋๋ ํ๊ต์ ๊ฐ๋ค์ self-attention์ ํตํด Q, K, V๊ฐ ์ ํด์ ธ ๊ตฌํด์ง๋ ๊ฒ์ ๋๋ค.
Decoder๋ attention์ด ๋ ๋ฒ ์ด๋ฃจ์ด์ง๋๋ค.
๋จผ์ , self-attention์ ํตํด decoder ๋ด๋ถ ๋ผ๋ฆฌ ๊ณ์ฐํ๊ณ , Encoder-Decoder self-attention์ ํตํด encoder์์ ๊ด๋ จ์ฑ๋ ํ์ ํฉ๋๋ค.
๊ธ๋ฐฉ ๋ง์๋๋ฆฐ ๊ฒ์ Encoder-Decoder์์ self-attention์ด๊ณ , ๊ทธ ์ด์ ์ decoder์์ ์๊ธฐ๋ค๋ผ๋ฆฌ self-attention์ ๋ฏธ๋ฆฌ ํฉ๋๋ค.
์ด๋ ๊ฒ 2๋ฒ์ด ์ด๋ฃจ์ด์ง๋๋ค.
๋๋จธ์ง๋ ๊ฐ์ต๋๋ค.
feed forward์ ๋ฑ๋ฑ.
๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก ๋์จ vector ๊ฐ์ ๋ํด linear, softmax๋ฅผ ํตํด ๋จ์ด๊ฐ ๋ฌด์์ธ์ง ์์ธกํ๋ ๊ฒ์ ๋๋ค.

encoder-decoder self-attention์์ ๋ณด๋ฉด,
key-value๋ ์์ ๊ฐ์ด encoder์์ ์ค๊ณ , Query๋ decoder์์ ์ค๋ ๊ฐ์ ๋๋ค.
๊ทธ๋์ transformer๊ฐ ์ฑ๋ฅ์ด ์์ฒญ๋๊ฒ ์ข์์ก์ต๋๋ค.


์๋์ ๊ฐ์ด ์์น๋ก ๋ณผ ์๋ ์์ต๋๋ค.

'Artificial Intelligence > Natural Language Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NLP] Attention (0) | 2023.04.12 |
---|---|
[NLP] Sequential Data Modeling (0) | 2023.04.10 |
[NLP] RNN - LSTM, GRU (0) | 2023.04.04 |
[NLP] RNN (0) | 2023.04.04 |
[NLP] Word Embedding - GloVe [practice] (0) | 2023.03.31 |