ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ํต์ฌ์ ์ธ ์์ด๋์ด๋ Attention ๋ฉ์ปค๋์ฆ์ด๋ค.
Attention ๋ฉ์ปค๋์ฆ์ ๋ชจ๋ธ์ด ์ ๋ ฅ ์ํ์ค์ ๋ชจ๋ ๋ถ๋ถ์ ๋์ผํ๊ฒ ์ฃผ๋ชฉํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ ์์ ์์ ์ด๋ค ๋ถ๋ถ์ ์ฃผ๋ชฉํด์ผํ ์ง ํ์ตํ๋ ๊ฒ์ด๋ค.
์ด ๋ฉ์ปค๋์ฆ'๋ง'์ผ๋ก ๊ตฌํ๋ ํธ๋์คํฌ๋จธ๊ฐ ์ ๊ฐ๋ ฅํ์ง ์ดํดํ๊ธฐ ์ํด์ ๊ธฐ๊ณ๋ฒ์ญ์ ์ญ์ฌ๋ฅผ ์ดํดํ ํ์๊ฐ ์๋ค.
์์ ๊ทธ๋ฆผ์ ํธ๋์คํฌ๋จธ๊ฐ ์ถํํ๊ฒ ๋ ๋ฐฐ๊ฒฝ์ ๋์ํํ ๊ฒ์ด๋ค!
๊ธฐ์กด์ Seq2Seq ๋ชจ๋ธ์ LSTM์ ํ์ฉํ์ฌ ๊ณ ์ ๋ ํฌ๊ธฐ์ ์ปจํ ์คํธ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ์ํ์ค์ ์ ๋ณด๋ฅผ ์์ถํ๋ค.
์ด๋ ์์ค ๋ฌธ์ฅ์ ๊ธธ์ด๊ฐ ๊ธด ๊ฒฝ์ฐ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ์ฌ ์ฑ๋ฅ ํ๋ฝ์ ์ผ๊ธฐํ ์ ์๋ค.
(์์ค ๋ฌธ์ฅ์ด ๊ธธ์ด์ง์๋ก ์ ๋ณด ์์ค ๋ฐ์)
์
๋ ฅ ์ํ์ค๊ฐ ํด๋ฆฌํฌํฐ ์ฑ
ํ๊ถ์ธ ๊ฒฝ์ฐ์ 'I love you'์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์.
์ปจํ
์คํธ ๋ฒกํฐ(์
๋ ฅ์ํ์ค์ ์์ฝ)๊ฐ ๊ณ ์ ๋ ํฌ๊ธฐ๋ผ๋ฉด ๋ ์
๋ ฅ์ ๋์ผํ ๊ธธ์ด๋ก ์์ฝํด์ผํ๋ค. ๊ฐํ ๋๊ฐ ํด๋ฆฌํฌํฐ๋ฅผ ์งง๊ฒ ์์ฝํด
๋ฐ๋ผ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ๋ ฅ ๋ฌธ์ฅ์ ์์ฑํ ๋ ์
๋ ฅ ์ํ์ค์์์ ์ถ๋ ฅ ์ ๋ถ๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์๋ค์๋ค.
Attention ๋ฉ์ปค๋์ฆ์ ๋์ฝ๋๊ฐ ์ธ์ฝ๋์ ๋ชจ๋ ์ถ๋ ฅ์ ์ฐธ๊ณ ํ์ฌ ์ธ์ฝ๋์ ๋ชจ๋ ์ถ๋ ฅ ์ค ์ด๋ค ๋ถ๋ถ์ โattentionโ์ ๊ธฐ์ธ์ฌ์ผํ ์ง ๊ณ์ฐํ๋ค.
์ด๋ฌํ Attention ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ ์ถ๋ ฅ์ด ์ด๋ค ์
๋ ฅ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํ๋์ง ์ ์ ์๋ค.
์์ Seq2Seq with Attention ๊ตฌ์กฐ์์ Attention์ด ์๋ธ์๋ค๋ฉด(RNN์ ๋ณด์กฐํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋์๋ค๋ฉด), ํธ๋์คํฌ๋จธ์์๋ Attention์ด ์ฃผ์ธ๊ณต์ผ๋ก ์น๊ฒฉํ๋ค!
๋ง๊ทธ๋๋ก "Attention is all you need!"
์ฆ, ํธ๋์คํฌ๋จธ๋ RNN ์์ด Attention๋ง์ผ๋ก ์ธ์ฝ๋-๋์ฝ๋๋ฅผ ๋ง๋ ๋ชจ๋ธ์ด๋ค.
๊ทธ๋๋ ๋ช ์์ด ์๋ธ๊ฐ ์ฃผ์ธ๊ณต์ด ๋๋ ค๋ฉด ์ผํ๊ฐ ์์นํด์ผํ๋ค...!
๊ทธ๋์ ํธ๋์คํฌ๋จธ์์๋ ์ดํ
์
์ 3๊ฐ์ง ๊ธฐ๋ฅ์ด๋ ํ๋ค. (3๊ฐ์ง ์ข
๋ฅ์ Attention)
1. Encoder Self-Attention
2. Masked Decoder Self-Attention
3. Encoder-Decoder Attention
๊ฐ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ๋์์ ๋ํด์ ์ดํ ์ดํด๋ณด๋๋ก ํ์.
Self-Attention์ ์
๋ ฅ ์ํ์ค์ ๊ฐ ๋จ์ด๊ฐ ๋ค๋ฅธ ๋จ์ด์ ์ผ๋ง๋ ๊ด๋ จ ์๋์ง๋ฅผ ๊ณ์ฐํ๋ค.
์ด๋ฅผ ํตํด ๊ฐ ๋จ์ด์ ๋ํ ์๋ก์ด ํํ์ ๋ง๋ค์ด๋ธ๋ค.
์ฆ, Self-Attention์ ๊ฐ ๋จ์ด์ ๋ฌธ์ฅ ๋ด ๋ค๋ฅธ ๋จ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ํตํด ๋ฌธ์ฅ ์ ์ฒด์ ๋ฌธ๋งฅ์ ํ์
ํ๋ ๊ณผ์ ์ด๋ค.
๋น์ ๋ฅผ ํ์๋ฉด, Self-Attention์ ๋ฌธ์ฅ์ ํ๊ดํ์ ๊ธ๋ ๊ณผ์ ์ด๋ค.
์
๋ ฅ ์ํ์ค์ ์ถ๋ ฅ์ ์ ๋ถ ์
๋ ฅ์ผ๋ก ๋ฐ์๋ค์ด๋ ๋์ , ๋ชจ๋ธ์ด ๋ฌธ๋งฅ์ ํ์
ํด์ ์ด๋ค ๋ถ๋ถ์ 'attention'์ ๊ธฐ์ธ์ฌ์ผํ ์ง ํ๊ดํ์ ์ณ์ฃผ๋๊ฑฐ๋ค.
๋๋ํ๊ณ ๊ธฐํนํ์ฌ๋ผ
Self-Attention์ ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
Q, K, V ๋ฒกํฐ ์ป๊ธฐ : ๊ฐ ์ ๋ ฅ ๋จ์ด์ ์ ๋ ฅ ์๋ฒ ๋ฉ์ ๊ฐ์ค์น ํ๋ ฌ์ ๊ณฑํ์ฌ Query ๋ฒกํฐ, Key ๋ฒกํฐ, Value ๋ฒกํฐ๋ฅผ ์ป๋๋ค.
Score ์ป๊ธฐ : Query์ Key์ dot product๋ก score๋ฅผ ์ป๋๋ค. ์ด๋ ํน์ ์ ๋ ฅ ๋จ์ด(Query)๊ฐ ๋ค๋ฅธ ์ ๋ ฅ ๋จ์ด(Key)๋ค๊ณผ ์ผ๋ง๋ ๊ด๋ จ ์๋์ง ๋ํ๋ธ๋ค.
Weight ์ป๊ธฐ : Score๋ฅผ softmax์ ํต๊ณผ์์ผ weight๋ฅผ ์ป๋๋ค.
Value ์ป๊ธฐ : attention weight๋ฅผ value ๋ฒกํฐ์ ๊ณฑํ์ฌ ์ต์ข ์ ์ผ๋ก self-attention value๋ฅผ ์ป๋๋ค.
Self-Attention Value๋ ํน์ ์
๋ ฅ ์ํ์ค์ ๋จ์ด์ ๊ด๋ จ์ฑ์ด ๋์ ๋ถ๋ถ์ โ์ดํ
์
โ, ์ฆ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ธ๋ค๋ ๋ง์ด๋ค. ์ด ๊ฐ์ ํตํด ๋ฌธ์ฅ ๋ด ๊ฐ๋ณ์ ์ธ ๋จ์ด๋ค ๊ฐ์ ๋ณต์กํ ์ํธ์์ฉ, ๊ด๊ณ๋ฅผ ํ์
ํ ์ ์๋ค.
์๊น์ ๋น์ ๋ก ๋์๊ฐ๋ฉด, Self-Attention Value๋ ๋ฌธ์ฅ ๋ด๋ถ์ ๊ตฌ์กฐ์ ๋ฌธ๋งฅ์ ํ์
ํ์ฌ ์ด๋ฅผ ํตํด ๋ฌธ์ฅ์ โํ๊ดํโ์ ์น๋ ๊ณผ์ ์ด๋ค.
์ ๊ทธ๋ฆผ์ 'it'์ ๋ํ encoder self-attention์ ๋ถํฌ๋ฅผ ์๊ฐํํ ๊ฒ์ด๋ค.
์ฌ๋์ ์ฝ๊ฒ it์ด animal์ ์ง์นญํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
ํ์ง๋ง ์ปดํจํฐ๊ฐ ์ธ์ํ๋ ๊ฒ์ ์ซ์๋ก๋ ๋ฒกํฐ์ผ๋ฟ์ด๋ค.
์ฐ๋ฆฌ์ ๋๋ํ ํธ๋์คํฌ๋จธ๋ Self-Attention์ด๋ผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ it์ด animal์ ์ง์นญํ๋ค๋ ๊ฒ์ ํ์
ํ๋ค.
์ด๋ ๊ฒ attention value๋ฅผ ํตํด ๋ฌธ์ฅ ๋ด ํ๊ดํ์ ์ด๋์ ์ณค๋์ง ์๊ฐํํ ์ ์๋ค๋ ๊ฒ์ ๋์ ์ ํ๋์ ๋๋ถ์ด ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ฅ์ ์ด๋ค.
๊ทธ๋ผ ์ด์ Attention์ 3๊ฐ์ง ๋ฅ๋ ฅ์น๋ฅผ ์ดํด๋ณด์!
Encoder๋ ์ ๋ ฅ ์ํ์ค ๋ด ๊ฐ ๋จ์ด๊ฐ ์ ๋ ฅ ์ํ์ค ๋ด ๋ค๋ฅธ ๋จ์ด์ ์ผ๋ง๋ ๊ด๋ จ์๋์ง ๊ณ์ฐํ๋ค. ์ ๋ ฅ ์ํ์ค๊ฐ ์๊ธฐ ์์ ์ ๋ํด์ Attention์ ๊ณ์ฐํด์ Self-Attention์ด๋ผ๊ณ ํ๋ค.
Masked Decoder Self-Attention์ Decoder ๋ด๋ถ์์ ์ด๋ฃจ์ด์ง๋ค.
์ด๋ Mask๋ decoder๊ฐ ์ถ๋ ฅ ์ํ์ค๋ฅผ ์์ฑํ๋ ๋์ ํ์ฌ ์์น๋ณด๋ค ๋ฏธ๋ ์์น์ ์๋ ํ ํฐ ์ ๋ณด๊ฐ ๋
ธ์ถ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์ ๋ต์ ์๊ณ ์ํ์ ์น๋ฉด ์๋๋๊น ์ด๋ฐ ์นํ
์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ฌ ์์น๋ณด๋ค ๋ฏธ๋ ์์น์ ์๋ ํ ํฐ์ ์ ๋ณด๋ mask๋ฅผ ์์ ํ ํฐ ์ ๋ณด์ ๋
ธ์ถ์ ๋ฐฉ์งํ๋ค!
Decoder๋ ํ์ฌ ์์น/๋จ์ด์์ encoder์ ์ ๋ ฅ ์ํ์ค ๋ด ๊ฐ ๋จ์ด ์ค ์ด๋ค ๋จ์ด์ ์ฃผ๋ชฉํด์ผํ ์ง ์๊ธฐ ์ํด Multi-Head Attention์ ๊ณ์ฐํ๋ค. ๋ฐ๋ผ์ ์ด๋์ Attention์ ์ธ์ฝ๋์ ๋ฉํฐ-ํค๋ ์ ํ ์ดํ ์ ๊ณผ๋ ๋ฌ๋ฆฌ Encoder์ ์ถ๋ ฅ๊ณผ Decoder์ ์ง๊ธ๊น์ง์ ์ถ๋ ฅ์ผ๋ก ๊ณ์ฐํ๋ค.
์ธ์ฝ๋์ ๋์ฝ๋์ ๋ฉํฐ-ํค๋ ์ดํ ์ ์ ๊ธฐ๋ณธ์ ์ธ ๋ฉ์ปค๋์ฆ์ ๋์ผํ์ง๋ง, ๊ฐ ์ดํ ์ ์ ๋ณธ์ง์ ์ผ๋ก ๋ค๋ฅธ ์์ ์ ์ํํ๋ค.
ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ํ ๊ตฌ์กฐ(RNN, LSTM)๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
๋ฐ๋ผ์ ์
๋ ฅ ๋จ์ด์ ์์/์์น ์ ๋ณด๊ฐ ๋ฐ์๋์ง ์๋๋ค.
ํ์ง๋ง ์์ฐ์ด ์ฒ๋ฆฌ์์ ๋จ์ด์ ์์๋ ๋งค์ฐ ์ค์ํ๋ค. (์๋ฅผ ๋ค์ด, I eat apples์ Apples eat I๋ ์์ ํ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ์ง๋๋ค)
๊ทธ๋์ ํธ๋์คํฌ๋จธ๋ ์
๋ ฅ ๋ฐ์ดํฐ์ ์์น ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ค.
Positional encoding์ ํตํด ๋ชจ๋ธ์ ๋จ์ด๊ฐ ์
๋ ฅ ์ํ์ค ๋ด ์ด๋์ ์์นํด์๋์ง ์ ์ ์๊ฒ ๋๋ค.
ํธ๋์คํฌ๋จธ๋ sine, cosine ํจ์๋ฅผ ์ฌ์ฉํ์ฌ positional encoding์ ์ํํ๋ค.
์ง์ ์ธ๋ฑ์ค(i)์๋ sine ํจ์ ๊ฐ์ ์ฌ์ฉํ๊ณ , ํ์ ์ธ๋ฑ์ค(i)์๋ cosine ํจ์ ๊ฐ์ ์ฌ์ฉํ๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ๋จ์ด์ ์ฐจ์ i์ ์์น pos์ ๋ํ positional encoding ๊ฐ์ ๋ค์์ ๊ณต์์ผ๋ก ๊ณ์ฐ๋๋ค.
Softmax๋ฅผ ํต๊ณผํ๋ฉด ๊ฐ ๋จ์ด๊ฐ ๋ํ๋ ํ๋ฅ ์ ์ ์ ์๋ค. ์ด ์ค ๊ฐ์ฅ ๋์ ํ๋ฅ ๊ฐ์ ์ถ๋ ฅ์ผ๋ก ํ๋ค.