Transformer
Last updated
Last updated
๊ฐ์ธ study๋ฅผ ์ํ ์๋ฃ์ ๋๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ๋ด์ฉ์ ์๋ชป๋ ์ ์ด ์์ต๋๋ค.
๊ธฐ์กด ๋ฐฉ๋ฒ๋ค์ ๋ํ ์ธ๊ธ๊ณผ ์ฅ๋จ์ ์ ๊ธฐ์ ํ์์ต๋๋ค. ์ค์ transformer ๊ตฌํ์ ๋ํ ์ค๋ช ์ 3์ ๋ถํฐ ์์๋ฉ๋๋ค.
transformer์ model architecture๋ ์๋์ ๊ฐ์ต๋๋ค. in/out ๊ด๊ณ
x = an input sequence of symbol representations
z = a sequence of continuous representations
y = an output sequence
z = encoder(x)
y = decoder(z)
Encoder: 2๊ฐ์ sub-layer๋ก ๊ตฌ์ฑ๋จ.
multi-head (self) attention
(fully connected) feed-forward network
Decoder: 3๊ฐ์ sub-layer๋ก ๊ตฌ์ฑ๋จ.
2๊ฐ์ sub-layer๋ encoder์ ๊ฐ์.
masked multi-head attention: multi-head attention์ decoder์ ํน์ฑ์ ๋ฐ์ํ๊ธฐ ์ํด mask๋ฅผ ์ถ๊ฐํ์์ต๋๋ค.
predictions for position i can depend only on the known outputs at positions less than i.
๊ฐ sub-layer์๋ residual connection์ด ์๊ณ , ๋ค์ normalization layer๊ฐ ๋ถ์ด ์์ต๋๋ค.
๋ฐ๋ผ์, ๊ฐ sub-layer์ output์ LayerNorm(x + Sublayer(x))
์
๋๋ค. ์ด ์ ์์ ๋
ผ๋ฌธ์ ์ ์๋ ๋ณ์๋ ์๋์ ๊ฐ์ต๋๋ค.
Encoder: stack N = 6, d_model = 512
Decoder: stack N = 6
Q, K = $d_k$
V = $d_v$
= $d_{model}$
Scaled Dot-Product attention layer๋ ์์ ๊ทธ๋ฆผ์ฒ๋ผ, $QK^T$
์ softmax๋ฅผ ์ทจํ์ฌ weight์ ๊ณ์ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์ด ๊ฐ์ Value์ ๊ณฑํ๋ layer์
๋๋ค. ์ ์ฒด ์์ ์๋์ ๊ฐ์ต๋๋ค.
$$ Attention(Q,K,V) = {softmax(\frac{QK^T}{\sqrt{d_k}})V} $$
์ฌ๊ธฐ์ $\sqrt{d_k}$
๋ก ๋๋๋ ์ด์ ๋ $\sqrt{d_k}$
์ ๊ฐ์ด ๊ฑฐ์ง์๋ก, dot-product์ ๊ฒฐ๊ณผ๊ฐ์ด softmax๊ฐ ์ ๋์ํ์ง ์๋ regions์ผ๋ก ๊ฐ๊ธฐ ๋๋ฌธ์
๋๋ค.
paper: To illustrate why the dot products get large, assume that the components of q and k are independent random variables with mean 0 and variance 1. Then their dot product,
${qk} = {\sum_{i=1}^{d_k}q_iK_i}$
, has mean 0 and variance$d_k$
.
paper: we found it beneficial to linearly project the queries, keys and values h times with different, learned linear projections to dk, dk and dv dimensions, respectively. paper: Due to the reduced dimension of each head, the total computational cost is similar to that of single-head attention with full dimensionality.
์์ ๋ด์ฉ์ ์ ๋ฆฌํด์, ์ ์ฉํ attention model์ ํน์ง์ 3๊ฐ์ง๋ก ์ค๋ช ํฉ๋๋ค.
โencoder-decoder attention layer"์์ query๋ ์๋จ์ decoder layer์์ ์ค๊ณ , key์ value๋ encoder์ ์ ์ฅ๋ output์ ๋๋ค. ์ด๋ ๊ฒ ํด์, decoder์ ๋ชจ๋ position์์ input sequence์ ๋ชจ๋ position์ ์ฐธ์กฐ ํ ์ ์์ต๋๋ค. ์ด๋๊น์ง, ์๋จ์ decoder์์ ๋ฐ๋ ๊ฐ์ value๋ผ๊ณ ์๊ฐํ๋๋ฐ, query ๋ค์..
encoder๋ self-attention layer๋ฅผ ์ฌ์ฉํฉ๋๋ค. encoder์ ๊ฐ position์ ๊ณ์ฐํ ๋๋, ๋ชจ๋ position์ ์ฐธ์กฐํฉ๋๋ค.
encoder์ ๋น์ทํ๊ฒ, decoder๋ self-attention layer๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ์ ์, decoder์ ๊ฐ position์ ๊ณ์ฐํ ๋๋ ํด๋น position๊ณผ ๊ทธ ์ด์ position๊น์ง์ data๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
size(W1) = $d_{model}\ \times\ d_{ff} = 512 \times 2048 $
size(W2) = $d_{ff}\ \times\ d_{model} = 2048 \times 512 $
input/output ๋ฌธ์ฅ($[128\ \times\ 1]$
)์ด ์ฃผ์ด์ง๋ฉด, ํ ๋จ์ด๋ฅผ ๋ปํ๋ token์ vector($[1\ \times\ $d_{model}]$
)๋ก ๋ณํํด์ฃผ๋ embedding์ ํฉ๋๋ค. ๋
ผ๋ฌธ์์๋ ๋ฏธ๋ฆฌ ํ์ต๋ embedding ์ ์ฌ์ฉํ๋ค๊ณ ๋์์์ต๋๋ค. decoder์ output์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๋น์ทํ ๊ณผ์ ์ด ํ์ํฉ๋๋ค. embedding์ ์ญํ๋ ฌ ๊ฐ๋
์ธ pre-softmax linear transformation์ ํ๊ณ , softmax function์ ํตํด์, decoder output์ next-token์ ํ๋ฅ ๋ก ๋ณํํฉ๋๋ค. input/output์ ์ฒ๋ฆฌํ๊ธฐ ์ํ embeding๊ณผ pre-softmax linear transformation์๋ ๋์ผํ weight matrix๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ embedding layer์๋ $\sqrt{d_{model}}$
๋ฅผ weight์ ๊ณฑํ์ต๋๋ค.(????)
recurrence, convolution์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์, sequence์ order๋ฅผ model์ด ํ์ตํ ์ ์๋๋ก, position์ ๋ํ ๊ฐ์ ์ถ๊ฐํด์ผํฉ๋๋ค. ์ด๋ฅผ ์ํด์, embedding step์ โpositional encoding"์ ์ถ๊ฐํ์ต๋๋ค. positional encoding๋ embedding๊ณผ ๋์ผํ dimension $d_{model}$
์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์, 2 ๊ฐ์ ํฉ์ด ๊ฐ๋ฅํฉ๋๋ค. positional encoding์ ์ํด์ ์ฌ์ฉํ ์์ ์๋์ ๊ฐ์ต๋๋ค. $$ PE_{(pos,2i)} = sin(pos / 1000^{2i/d_{model}})\\ PE_{(pos,2i+1)} = cos(pos / 1000^{2i/d_{model}}) $$
์ด ์์ ์ ํํ ์ด์ ๋, pos๊ฐ์ ์๊ด์์ด pos+k์ pos๊ฐ์ ๊ด๊ณ๊ฐ linearํ๊ธฐ ๋๋ฌธ์, model์ด relative position๊ด๊ณ๋ฅผ ํ์ตํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์
๋๋ค.
paper: We chose this function because we hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset k,
$PE_{pos+k}$
can be represented as a linear function of$PE_{pos}$
.
n = sequence length, d = representation dimension, k = kernel size of convolutions, r = size of the neighborhood in restricted self-attention.
๋ณธ ๋ ผ๋ฌธ์์๋ self-attention layer๋ฅผ ์ฌ์ฉํ์ฌ x๋ฅผ ๋์ผํ ๊ธธ์ด์ sequence vector z์ mapping ํ์์ต๋๋ค. self-attention layer๋ฅผ ์ฌ์ฉํ ์ด์ ๋ก recurrent layer์ convolution layer์ ๋น๊ตํ์ฌ ์๋ 3๊ฐ์ง๋ฅผ ๋ค์์ต๋๋ค.
complexity per layer
sequential operations
path length between long-range dependencies (Maximum Path Length)
3๋ฒ Maximum PaTH Length๋ ์ดํดํ๊ธฐ๊ฐ ๊ทธ๋๋ง ์ฝ์ต๋๋ค.
2๋ฒ์ Convolutional layer๊ฐ $O(log_k(n)$
๊ฐ ๋์ผ ํ ๊ฒ ๊ฐ์๋ฐ, $O(1)$
์ธ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. 1๋ฒ์ self-attention๋ง ํ ๋จ์ ๊ณ์ฐ ๋ณต์ก๋๊ฐ $d$
์ด๊ณ recurent์ convolutional์ $d^2$
์ธ๋ฐ, ์ด ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๊ทธ์ธ์ side-benefit์ผ๋ก interpretable models์ด๋ผ๋ ์ ์ ๋ค์์ต๋๋ค.
์ค์ training ์ํจ ์กฐ๊ฑด์ ๋ํ ์ค๋ช ์ด ์์ต๋๋ค. ๋ช๋ช ๋ถ๋ถ์ด ๊ตฌํ๊ณผ ๊ด๋ จ์์ต๋๋ค.
Adam optimizer๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
3๊ฐ์ง type(?)์ regularization์ ์ฌ์ฉํ์ต๋๋ค.
Residual Dropout: ๊ฐ sub-layer output ์ ์ฌ์ฉ (Pdrop = 0.1)
Residual Dropout: embedding + positional embedding ๊ฒฐ๊ณผ ๊ฐ์ ์ฌ์ฉ (Pdrop = 0.1)
Label Smoothing: ์ด ๋ฐฉ๋ฒ์ model ์ด ํ์คํ ๊ฒฐ๊ณผ๊ฐ์ ํ์ตํ์ง ๋ชปํ๊ฒ ํ์ง๋ง, BLEU score์ ๋์์ด ๋์๋ค๊ณ ํฉ๋๋ค.
hyper parameter๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ performance๋ฅผ ๋น๊ตํ์์ต๋๋ค. model์์ ์ฌ์ฉํ hyper parameter๊ฐ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ํ๋์ ๋ณด๊ธฐ ์ข์ต๋๋ค.
(A): header ์์ ๋ณํ๋ฅผ ์ฃผ์์ต๋๋ค. ๋๋ฌด ๋ง์๋ ์ฑ๋ฅ์ด ์ ํ ๋ฉ๋๋ค. (B): key dimension ์ ์์ผ๋ฉด ์ฑ๋ฅ์ด ๋๋น ์ง๋๋ค. (C): ์์๊ณผ ๊ฐ์ด, โbigger is betterโ ์์ ๋ณด์ฌ์ฃผ๋ ๊ฒฐ๊ณผ ์ ๋๋ค. (D): drop-out ์ ๊ผญ ํด์ผํจ. (E): positional encoding ์ ๋ฏธ๋ฆฌ ํ์ต๋ model๋ฅผ ์ฌ์ฉํ ๊ฒฑ๊ณผ์ ๋๋ค. ๊ฒฐ๊ณผ๋ ํฐ ์ฐจ์ด์์ต๋๋ค.
Input์ Query, Key ๊ทธ๋ฆฌ๊ณ value๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉด, ๊ฐ๊ฐ ์๋์ size๋ฅผ ๊ฐ์ง๋๋ค.
$d_{model}$
์ K,Q,V์ ํ๋์ attention์ ์ ์ฉํ๋ ๊ฒ๋ณด๋ค, ๊ฐ๊ฐ์ h ๋ฒ ์๋ก ๋ค๋ฅธ $d_{k}$
,$d_{q}$
,$d_{v}$
๋ก linear project ํ์ฌ, ๊ฐ๊ฐ์ attention function์ ๋ณ๋ ฌ์ ์ผ๋ก ์ํํ๋๊ฒ ๋ ์ข๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค๊ณ ๋
ผ๋ฌธ์ ๋์ ์์ต๋๋ค. h๊ฐ์ $d_{v}$
์ concatํ๊ณ ํ๋ฒ ๋ project ํ๋ฉด input๊ณผ ๋์ผํ ๊ฐ์ ์ป์ ์ ์์ต๋๋ค. ์์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ต๋๋ค. $$ MultiHead(Q,K,V) = { Concat(head_1,....,head_h)W^O}\\ where\ {head_i} = Attention(QW_i^Q, KW_i^K, VW_i^K)$$
$W_i^Q, W_i^K, W_i^K$
๋ ๊ฐ๊ฐ $d_{model}$
์ input์ $d_q, d_k, d_v$
๋ก linear project ์์ผ์ค๋๋ค. ๋
ผ๋ฌธ์์๋ ์ฌ์ฉํ ๊ฐ์ ์๋์ ๊ฐ์ต๋๋ค. h๊ฐ์ head๋ฅผ ์ฌ์ฉํ์ง๋ง, dimension์ 1/h๋ก ์ค์๊ธฐ ๋๋ฌธ์, total computational cost๋ single head๋ฅผ ์ฌ์ฉํ ๋์ ์ ์ฌํฉ๋๋ค.
$ h = 8, d_k=d_q=d_v=d_{model}/h=64$
Feedforward layer๋ 2๋จ์ fully connected layer๊ฐ activation function์ผ๋ก ์ฐ๊ฒฐ๋ ํํ์
๋๋ค. input/output์ dimension์ $d_{model} = 512$
์ด์ง๋ง, inner-layer๋ 4๋ฐฐ ๋ง์ $d_{ff}=2048$
์ ์ฌ์ฉํฉ๋๋ค.