Transformer์ ๊ตฌ์ฑํ๋ Multi-Head Self-Attention layer๋ permutation equivariantํ ํน์ฑ์ ๊ฐ๊ธฐ ๋๋ฌธ์, postitional encoding์ด ํ์์ ์ผ๋ก ํ์ํ๋ค.
Transformer์์ ์ฌ์ฉํ๋ positional encoding
์ฐ์ , Transformer์์ ์ฌ์ฉํ๋ positional encoding์ ์์ ๋ค์๊ณผ ๊ฐ๋ค.
$PE_{(pos,2i)}=sin(pos/10000^{2i/d_{model}})$
$PE_{(pos,2i+1)}=cos(pos/10000^{2i/d_{model}})$
์ด๋ฅผ ํ์ด ์ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํํ๋ฅผ ๊ฐ๊ฒ ๋๊ณ ,
์ด๋ฅผ ์๊ฐํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ณธ ๊ธ์์๋ ์ transformer์ positional encoding์ด ์ด๋ ๊ฒ ๋ณต์กํ ํํ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋์ง๋ฅผ ์์๋ณด๊ธฐ๋ก ํ๋ค.
Other possible methods
์์ ์ฌ์ฉํ ๋ฐฉ๋ฒ ์ธ์๋ positional encoding์ ์ํํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
Method 1
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก, 0~1 ์ฌ์ด์ ๊ฐ์ ์ด์ฉํด ์ผ์ ํ ๋น์จ๋ก position ๊ฐ์ ์ ํ ์ ์๋ค.
PyTorch๋ก๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ ์ ์๋ค.
pos = torch.arange(max_len)/max_len
์ด ๋ฐฉ๋ฒ์ ๋จ์ ์, ๋ฌธ์ฅ ๊ธธ์ด๊ฐ ๋ฌ๋ผ์ง๋ฉด ๊ฐ time step ๊ฐ์ ์ฐจ์ด, ์ฆ delta๊ฐ์ด ๋ฌ๋ผ์ง๋ค๋ ๊ฒ์ด๋ค.
Method 2
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก๋, i๋ฒ์งธ token์ position ๊ฐ์ i๋ก ์ ํ๋ ๊ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ฉด ๊ฐ time step ๊ฐ ํฌ๊ธฐ๋ ์ผ์ ํ์ง๋ง, input์ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๋ฉด ๊ทธ๋งํผ position ๊ฐ๋ ์ปค์ง๊ณ , normalize๋์ง ์์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ (๊ฐ์ด 0~1 ์ฌ์ด๊ฐ ์๋) ํ์ต์ด ๋งค์ฐ ๋ถ์์ ํด์ง ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
Method 3
์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก๋, ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ด์ง์๋ก ํํํ๋ ๊ฒ์ด๋ค. Method 2์ position value๋ฅผ ์ด์ง์๋ก ํํํ๊ณ , position encoding์ ์ฐจ์์ ํ์ํ ๋งํผ ๋๋ ค ($d_{model}$) scalar ๊ฐ์ vector๋ก ๋ณํํ๋ค. ์ด์ position encoding์ position vector์ด ๋๋ค. ๊ฐ ๊ฐ์ด 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๋ ์ฌ๋ผ์ง๋ค.
๋จ, ์ด ๋ฐฉ๋ฒ์ ๋จ์ ์ ๊ฐ ๊ฐ๋ค์ด ์ด๋ ํ continuous function์ ์ด์งํ๋ ๊ฒฐ๊ณผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด ์๋๋ผ, discrete function์ผ๋ก๋ถํฐ ์๋ค๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ interpolation ๊ฐ์ ์ป๊ธฐ๊ฐ ํ๋ค๋ค. ์ฐ๋ฆฌ๋ ์ฐ์์ ์ธ ํจ์๋ก๋ถํฐ ๊ฐ position vector์ ๊ฐ์ ์ป๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ ํ๋ค.
Continuous binary vector
Method 3์์ ๊ฐ position ๊ฐ์ ์ด์งํํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, ๊ฐ ์ฐจ์์ ๊ฐ๋ค์ด 0๊ณผ 1์ ์ํํ๋ฉฐ ๋ณํํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ์ฅ ์์ bit๋ ํ ์ซ์๋ง๋ค 0๊ณผ 1์ด ๋ฐ๋๊ณ , ๋ ๋ฒ์งธ๋ก ์์ bit๋ ๋ ์ซ์๋ง๋ค 0๊ณผ 1์ด ๋ฐ๋๋ค. ์ด๋ฌํ ๊ท์น์ ํตํด ์ฐ๋ฆฌ๋ ์ฐ์์ ์ด๋ฉด์ 0๊ณผ 1์ ์ํํ๋ ํจ์์ธ ์ผ๊ฐํจ์๋ฅผ ์๊ฐํด ๋ณผ ์ ์๋ค.
์ฌ์ด ์์๋ก, ๋ณผ๋ฅจ์ ์กฐ์ ํ๋ ๋ค์ด์ผ์ด ์๋ค๊ณ ํ์. ๊ฐ ๋ค์ด์ผ๋ค์ ์กฐ์ ํ๋ ๋ณผ๋ฅจ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๋ค. ์๋ฅผ ๋ค์ด ์ฒซ ๋ฒ์งธ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ ๋งค์ฐ ๋ฏธ์ธํ๊ฒ, ํ ์นธ์ฉ ์กฐ์ ํ๊ณ , ๋ ๋ฒ์งธ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ ๋ ์นธ์ฉ, ์ธ ๋ฒ์งธ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ ๋ค ์นธ์ฉ ์กฐ์ ํ๋ ์์ด๋ค. ์ด์ง๋ฒ์ ์๋๋ฐฉ์๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ง์ฝ 512์นธ์ด ์๋ ๋ณผ๋ฅจ์ ์กฐ์ ํ๊ณ ์ถ๋ค๋ฉด, 8๊ฐ์ ๋ค์ด์ผ์ ์ด์ฉํ๋ฉด ๋๋ค. ์ด๋ฌํ ๋ค์ด์ผ๋ค์ ์ด์ฉํ๋ฉด ์ค๊ฐ์ continuousํ ๊ฐ์ ์ป์ ์ ์๋ค.
์ด์ ์ด๋ฅผ ์์์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์ฒซ ๋ฒ์ฌ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ด ํ๋ ์ปค์ง ๋๋ง๋ค 0<->1๋ก ๊ฐ์ด ๋ฐ๋๊ณ , ๋ ๋ฒ์งธ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ด ๋ ๊ฐ ์ปค์ง ๋๋ง๋ค, ์ธ ๋ฒ์งธ ๋ค์ด์ผ์ ๋ณผ๋ฅจ์ด ๋ค ๊ฐ ์ปค์ง ๋๋ง๋ค ๋ฐ๋์ด์ผ ํ๋ค. ์ฆ, ๊ฐ ๋ค์ด์ผ์ ์ฃผ๊ธฐ๊ฐ $\pi/2$, $\pi/4$, $\pi/8$์ธ sineํจ์๋ฅผ ์๊ฐํ ์ ์๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์, ์ฐ๋ฆฌ๋ ๊ฐ positional encoding tensor์ ๋ค์๊ณผ ๊ฐ์ matrix $M$์ผ๋ก ๋ํ๋ผ ์ ์๋ค. $i$๋ ๊ฐ sequence์ index๋ฅผ ๋ํ๋ด๊ณ , $j$๋ position encoding์ dimension์ ๋ํ๋ธ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
$M_{ij} = sin(2\pi i/2^j) = sin(x_i w_j)$
์ด๋ก์จ ์ฐ๋ฆฌ๋ interpolation์ด ๊ฐ๋ฅํ position encoding ๋ฐฉ๋ฒ์ ์ฐพ์๋ค. Position encoding vector์ dimension์ 3์ด๋ผ๊ณ ํ์ ๋ ๊ฐ point๋ฅผ ์๊ฐํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Problem 1: closed curve
๊ทธ๋ผ์๋ ์ฌ์ ํ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋จ์์๋๋ฐ, ์ฒซ ๋ฒ์งธ๋ position encoding์ ๊ฐ๋ค์ ๋ฒ์๊ฐ ๋ซํ ์๋ค๋ ๊ฒ์ด๋ค. ํํ ๊ฐ๋ฅํ ๋ง์ง๋ง position์ด n์ด๋ผ๊ณ ํ ๋, ๋ค์ ์์ธ n+1์ ์ฒซ ๋ฒ์งธ ๊ฐ๊ณผ ๊ฐ์ position encoding ๊ฐ์ ๊ฐ๊ฒ ๋์ด ๋ฒ๋ฆฐ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, position encoding์ ๊ฐ๋ค์ด ์ฆ๊ฐํ๋ค๊ฐ ๊ฐ์ํ๋ค๊ฐ ์ํํ๋ ๊ฒ์ด ์๋, ๊ณ์ ์ฆ๊ฐํ๊ฒ๋ง ๋ง๋ ๋ค. position encoding tensor์ ์์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๋๋ค. ์ด๋ก์จ ๊ฐ position encoding ๊ฐ๋ค์ด boundary (-1๋๋ 1)์ ๊ฐ๊น์ง ๊ฐ์ง ์๊ณ ๊ณ์ ์ฆ๊ฐํ๋ ํํ๋ก ๋ง๋ค ์ ์๋ค.
$M_{ij} = sin(x_i w_0^{j/d_{model}})$
Transformer์์๋ $w_0$์ ๊ฐ์ 1/10000์ผ๋ก ์ค์ ํ์๋ค.
Problem 2: linearly transfromable
Position encoding์ transformer์์ ์ด์ฉํ ๋, ๊ฐ ์์น์ position encoding ๊ฐ์ ๋ค๋ฅธ ์์น์ position encoding ๊ฐ์ผ๋ก linear translation๋ง์ ํตํด ๋ณํํ๋ ๊ฒ์ด ํ์ํ ๋๊ฐ ์๋ค.
์ด๋ attention layer์์ ์ด์ฉํ๊ธฐ ์ํจ์ธ๋ฐ, ์๋ฅผ ๋ค์ด "I am going to eat" ์ด๋ผ๋ ๋ฌธ์ฅ์ด ์๋ค๊ณ ํ ๋, "eat"์ ๋ฒ์ญํ๊ธฐ ์ํด "I"๋ผ๋ ๋จ์ด์ ์ด์ ์ ๋ง์ถ์ด์ผ ํ๋๋ฐ, ๋์ ์์น๋ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๋ค. ์ด ๋ ๋ ๋จ์ด์ position encoding์ด linear transformation์ ํตํด ๋ณํ์ด ๊ฐ๋ฅํ๋ค๋ฉด attention์ ์ฌ์ฉํ๊ธฐ์ ๋ณด๋ค ์ฉ์ดํ ๊ฒ์ด๋ค.
๊ฐ position vector ๊ฐ linear transformation์ด ๊ฐ๋ฅํ๋ ค๋ฉด ๋ค์์ ์์ ๋ง์กฑํ๋ linear transformation $T(dx)$๋ฅผ ์ฐพ์ ์ ์์ด์ผ ํ๋ค.
$PE(x+\Delta x) = PE(x) * T(\Delta x)$
์ด๋ PE๋ฅผ ๊ตฌ์ฑํ๋ ์์ด ์ผ๊ฐํจ์์ด๊ธฐ ๋๋ฌธ์ ํ์ ๋ณํํ๋ ฌ์ ์ด์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ค.
Position encoding์ ๋ณํํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค๋ฉด,
$T(\Delta x)$๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ฐพ์ ์ ์๋ค.
์ถ์ฒ: https://towardsdatascience.com/master-positional-encoding-part-i-63c05d90a0c3
'๐ Deep Learning > DL & ML ์กฐ๊ฐ ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Kernel Density Estimation (KDE)์ Kernel Regression (KR) (0) | 2021.10.18 |
---|---|
Convolution layer์ parameter ๊ฐ์ (0) | 2021.10.04 |
MSE Loss (L2 Loss) vs. MAE Loss (L1 Loss) (0) | 2021.01.19 |