1. Transformer์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด


ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์˜ ํ•ต์‹ฌ์ ์ธ ์•„์ด๋””์–ด๋Š” Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค.

Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ชจ๋ธ์ด ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ๋ชจ๋“  ๋ถ€๋ถ„์— ๋™์ผํ•˜๊ฒŒ ์ฃผ๋ชฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐ ์‹œ์ ์—์„œ ์–ด๋–ค ๋ถ€๋ถ„์— ์ฃผ๋ชฉํ•ด์•ผํ• ์ง€ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜'๋งŒ'์œผ๋กœ ๊ตฌํ˜„๋œ ํŠธ๋žœ์Šคํฌ๋จธ๊ฐ€ ์™œ ๊ฐ•๋ ฅํ•œ์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๊ณ„๋ฒˆ์—ญ์˜ ์—ญ์‚ฌ๋ฅผ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

2. History


์œ„์˜ ๊ทธ๋ฆผ์€ ํŠธ๋žœ์Šคํฌ๋จธ๊ฐ€ ์ถœํ˜„ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์„ ๋„์‹ํ™”ํ•œ ๊ฒƒ์ด๋‹ค!

(1) Seq2Seq with Attention

๊ธฐ์กด์˜ Seq2Seq ๋ชจ๋ธ์€ LSTM์„ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ์ •๋ณด๋ฅผ ์••์ถ•ํ–ˆ๋‹ค.

์ด๋•Œ ์†Œ์Šค ๋ฌธ์žฅ์˜ ๊ธธ์ด๊ฐ€ ๊ธด ๊ฒฝ์šฐ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ ํ•˜๋ฝ์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.
(์†Œ์Šค ๋ฌธ์žฅ์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ์ •๋ณด ์†Œ์‹ค ๋ฐœ์ƒ)

์ž…๋ ฅ ์‹œํ€€์Šค๊ฐ€ ํ•ด๋ฆฌํฌํ„ฐ ์ฑ… ํ•œ๊ถŒ์ธ ๊ฒฝ์šฐ์™€ 'I love you'์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ(์ž…๋ ฅ์‹œํ€€์Šค์˜ ์š”์•ฝ)๊ฐ€ ๊ณ ์ •๋œ ํฌ๊ธฐ๋ผ๋ฉด ๋‘ ์ž…๋ ฅ์„ ๋™์ผํ•œ ๊ธธ์ด๋กœ ์š”์•ฝํ•ด์•ผํ•œ๋‹ค. ๊ฐํžˆ ๋ˆ„๊ฐ€ ํ•ด๋ฆฌํฌํ„ฐ๋ฅผ ์งง๊ฒŒ ์š”์•ฝํ•ด
๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ถœ๋ ฅ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•  ๋•Œ ์ž…๋ ฅ ์‹œํ€€์Šค์—์„œ์˜ ์ถœ๋ ฅ ์ „๋ถ€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„๋“ค์˜€๋‹ค.

Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋””์ฝ”๋”๊ฐ€ ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์ถœ๋ ฅ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์ถœ๋ ฅ ์ค‘ ์–ด๋–ค ๋ถ€๋ถ„์— โ€˜attentionโ€™์„ ๊ธฐ์šธ์—ฌ์•ผํ• ์ง€ ๊ณ„์‚ฐํ•œ๋‹ค.
์ด๋Ÿฌํ•œ Attention ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์ถœ๋ ฅ์ด ์–ด๋–ค ์ž…๋ ฅ ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

(2) Transformer

์•ž์„œ 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

๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ๊ณผ ๋™์ž‘์— ๋Œ€ํ•ด์„  ์ดํ›„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

3. 3์ข…๋ฅ˜์˜ Attention

(0) Self-Attention ๊ฐœ๊ด„

Self-Attention์€ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ๊ฐ ๋‹จ์–ด๊ฐ€ ๋‹ค๋ฅธ ๋‹จ์–ด์™€ ์–ผ๋งˆ๋‚˜ ๊ด€๋ จ ์žˆ๋Š”์ง€๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ๊ฐ ๋‹จ์–ด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ํ‘œํ˜„์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.
์ฆ‰, Self-Attention์€ ๊ฐ ๋‹จ์–ด์™€ ๋ฌธ์žฅ ๋‚ด ๋‹ค๋ฅธ ๋‹จ์–ด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๋ฌธ์žฅ ์ „์ฒด์˜ ๋ฌธ๋งฅ์„ ํŒŒ์•…ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

๋น„์œ ๋ฅผ ํ•˜์ž๋ฉด, Self-Attention์€ ๋ฌธ์žฅ์— ํ˜•๊ด‘ํŽœ์„ ๊ธ‹๋Š” ๊ณผ์ •์ด๋‹ค.
์ž…๋ ฅ ์‹œํ€€์Šค์˜ ์ถœ๋ ฅ์„ ์ „๋ถ€ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๋Š” ๋Œ€์‹ , ๋ชจ๋ธ์ด ๋ฌธ๋งฅ์„ ํŒŒ์•…ํ•ด์„œ ์–ด๋–ค ๋ถ€๋ถ„์— 'attention'์„ ๊ธฐ์šธ์—ฌ์•ผํ• ์ง€ ํ˜•๊ด‘ํŽœ์„ ์ณ์ฃผ๋Š”๊ฑฐ๋‹ค.
๋˜˜๋˜˜ํ•˜๊ณ  ๊ธฐํŠนํ•˜์—ฌ๋ผ

Self-Attention์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. Q, K, V ๋ฒกํ„ฐ ์–ป๊ธฐ : ๊ฐ ์ž…๋ ฅ ๋‹จ์–ด์˜ ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ์— ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์„ ๊ณฑํ•˜์—ฌ Query ๋ฒกํ„ฐ, Key ๋ฒกํ„ฐ, Value ๋ฒกํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค.

  2. Score ์–ป๊ธฐ : Query์™€ Key์˜ dot product๋กœ score๋ฅผ ์–ป๋Š”๋‹ค. ์ด๋Š” ํŠน์ • ์ž…๋ ฅ ๋‹จ์–ด(Query)๊ฐ€ ๋‹ค๋ฅธ ์ž…๋ ฅ ๋‹จ์–ด(Key)๋“ค๊ณผ ์–ผ๋งˆ๋‚˜ ๊ด€๋ จ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  3. Weight ์–ป๊ธฐ : Score๋ฅผ softmax์— ํ†ต๊ณผ์‹œ์ผœ weight๋ฅผ ์–ป๋Š”๋‹ค.

  4. 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๊ฐ€์ง€ ๋Šฅ๋ ฅ์น˜๋ฅผ ์‚ดํŽด๋ณด์ž!

(1) Encoder Self-Attention

Encoder๋Š” ์ž…๋ ฅ ์‹œํ€€์Šค ๋‚ด ๊ฐ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ ์‹œํ€€์Šค ๋‚ด ๋‹ค๋ฅธ ๋‹จ์–ด์™€ ์–ผ๋งˆ๋‚˜ ๊ด€๋ จ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•œ๋‹ค. ์ž…๋ ฅ ์‹œํ€€์Šค๊ฐ€ ์ž๊ธฐ ์ž์‹ ์— ๋Œ€ํ•ด์„œ Attention์„ ๊ณ„์‚ฐํ•ด์„œ Self-Attention์ด๋ผ๊ณ  ํ•œ๋‹ค.

(2) Masked Decoder Self-Attention

Masked Decoder Self-Attention์€ Decoder ๋‚ด๋ถ€์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค.
์ด๋•Œ Mask๋Š” decoder๊ฐ€ ์ถœ๋ ฅ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ํ˜„์žฌ ์œ„์น˜๋ณด๋‹ค ๋ฏธ๋ž˜ ์œ„์น˜์— ์žˆ๋Š” ํ† ํฐ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
์ •๋‹ต์„ ์•Œ๊ณ  ์‹œํ—˜์„ ์น˜๋ฉด ์•ˆ๋˜๋‹ˆ๊นŒ ์ด๋Ÿฐ ์น˜ํŒ…์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์œ„์น˜๋ณด๋‹ค ๋ฏธ๋ž˜ ์œ„์น˜์— ์žˆ๋Š” ํ† ํฐ์˜ ์ •๋ณด๋Š” mask๋ฅผ ์”Œ์›Œ ํ† ํฐ ์ •๋ณด์˜ ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•œ๋‹ค!

(3) Encoder-Decoder Attention

Decoder๋Š” ํ˜„์žฌ ์œ„์น˜/๋‹จ์–ด์—์„œ encoder์˜ ์ž…๋ ฅ ์‹œํ€€์Šค ๋‚ด ๊ฐ ๋‹จ์–ด ์ค‘ ์–ด๋–ค ๋‹จ์–ด์— ์ฃผ๋ชฉํ•ด์•ผํ• ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด Multi-Head Attention์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋•Œ์˜ Attention์€ ์ธ์ฝ”๋”์˜ ๋ฉ€ํ‹ฐ-ํ—ค๋“œ ์…€ํ”„ ์–ดํ…์…˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ Encoder์˜ ์ถœ๋ ฅ๊ณผ Decoder์˜ ์ง€๊ธˆ๊นŒ์ง€์˜ ์ถœ๋ ฅ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.

์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์˜ ๋ฉ€ํ‹ฐ-ํ—ค๋“œ ์–ดํ…์…˜์˜ ๊ธฐ๋ณธ์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋™์ผํ•˜์ง€๋งŒ, ๊ฐ ์–ดํ…์…˜์€ ๋ณธ์งˆ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ์ธ์ฝ”๋”์˜ ๋ชฉ์ ์€ โ€˜๋ฌธ๋งฅ ํฌ์ฐฉโ€™์ด๋‹ค.
    ์ž…๋ ฅ ์‹œํ€€์Šค๋ฅผ ๊ณ ์ฐจ์›์˜ ๊ณต๊ฐ„์— ๋งคํ•‘ํ•˜๊ณ , ๊ฐ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ ์‹œํ€€์Šค ๋‚ด ๋‹ค๋ฅธ ๋‹จ์–ด๋“ค๊ณผ ๊ฐ€์ง€๋Š” ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ๋ฌธ๋งฅ์„ ํŒŒ์•…ํ•œ๋‹ค.
  • ๋””์ฝ”๋”์˜ ๋ชฉ์ ์€ โ€˜์ถœ๋ ฅ ์‹œํ€€์Šค ์ƒ์„ฑโ€™์ด๋‹ค.
    ์ด๋ฅผ ์œ„ํ•ด ํ˜„์žฌ ์ถœ๋ ฅํ•ด์•ผํ•  ์œ„์น˜์—์„œ ์ธ์ฝ”๋”์˜ ๊ฐ ๋‹จ์–ด๋ฅผ ์–ผ๋งˆ๋งŒํผ ์ฐธ๊ณ ํ•ด์•ผํ• ์ง€ ํŒŒ์•…ํ•œ๋‹ค.

4. Positional Encoding

ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์€ ์ˆœํ™˜ ๊ตฌ์กฐ(RNN, LSTM)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋”ฐ๋ผ์„œ ์ž…๋ ฅ ๋‹จ์–ด์˜ ์ˆœ์„œ/์œ„์น˜ ์ •๋ณด๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค.
ํ•˜์ง€๋งŒ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ ๋‹จ์–ด์˜ ์ˆœ์„œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด, I eat apples์™€ Apples eat I๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ๋‹ค)

๊ทธ๋ž˜์„œ ํŠธ๋žœ์Šคํฌ๋จธ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ์œ„์น˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
Positional encoding์„ ํ†ตํ•ด ๋ชจ๋ธ์€ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ ์‹œํ€€์Šค ๋‚ด ์–ด๋””์— ์œ„์น˜ํ•ด์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

ํŠธ๋žœ์Šคํฌ๋จธ๋Š” sine, cosine ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ positional encoding์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ง์ˆ˜ ์ธ๋ฑ์Šค(i)์—๋Š” sine ํ•จ์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ , ํ™€์ˆ˜ ์ธ๋ฑ์Šค(i)์—๋Š” cosine ํ•จ์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.
๊ตฌ์ฒด์ ์œผ๋กœ ๋‹จ์–ด์˜ ์ฐจ์› i์™€ ์œ„์น˜ pos์— ๋Œ€ํ•œ positional encoding ๊ฐ’์€ ๋‹ค์Œ์˜ ๊ณต์‹์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

5. Architecture

(1) Input - Word2Vec

  • Word Embedding ๊ฐœ๋… : ๋‹จ์–ด -> ์ €์ฐจ์› ๋ฒกํ„ฐ
  • Word Embedding์˜ ํ•„์š”์„ฑ
  1. ์ปดํ“จํ„ฐ๋Š” ๋‹จ์–ด๊ฐ€ ์•„๋‹Œ ์ˆซ์ž๋งŒ ์•Œ์•„๋“ฃ๊ธฐ์— ๊ฐ ๋‹จ์–ด๋ฅผ ์ˆซ์ž๋กœ๋œ ๋ฒกํ„ฐ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค.
  2. ์›ํ•ซ-์ธ์ฝ”๋”ฉ์œผ๋กœ ๋ฒกํ„ฐํ™”ํ•˜๋ฉด ๋„ˆ๋ฌด ์ฐจ์›์ด ์ปค์ง€๊ธฐ์— ๋‹จ์–ด์˜ ์˜๋ฏธ๋ฅผ ๋ณด์กดํ•˜๋ฉด์„œ ์ €์ฐจ์› ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•œ๋‹ค.

(2) Positional Encoding

  • Positional Encoding์˜ ํ•„์š”์„ฑ
    RNN ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ์ˆœ์„œ ์ •๋ณด๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

(3) Encoder Block - Multi-Head Self-Attention

  • Self-Attention Layer์˜ ๊ธฐ๋Šฅ
    ๊ฐ ๋‹จ์–ด์˜ ๋ฒกํ„ฐ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ๋‹จ์–ด์˜ ์˜๋ฏธ์™€ ๋ฌธ์žฅ ๋‚ด ๋‹ค๋ฅธ ๋‹จ์–ด๋“ค๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•œ ๋ฒกํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค. ๋””์ฝ”๋”๋Š” ์ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ฒˆ์—ญ๋ฌธ์„ ๋งŒ๋“ฆ์œผ๋กœ์จ ๋ณด๋‹ค ๋ฌธ์žฅ์˜ ๋งฅ๋ฝ๊ณผ ์ค‘์š”๋„๋ฅผ ๊ณ ๋ คํ•œ ๋ฒˆ์—ญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Multi-Head Attention์˜ ํ•„์š”์„ฑ
    ๋ฐฑ์ง€์žฅ๋„ ๋งž๋“ค๋ฉด ๋‚ซ๋‹ค! Self-Attention์„ ํ†ตํ•ด์„œ ๋‹จ์–ด๋“ค์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ๋ฌธ์žฅ์˜ ๋งฅ๋ฝ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ž๊ธฐ๋งŒ์˜ ์ƒ๊ฐ์— ๊ฐ‡ํž ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ layer์—์„œ ๋‚˜์˜จ ์ถœ๋ ฅ์„ ๊ทธ๋Œ€๋กœ ํ•ฉํ•œ ๋’ค ๋˜ ๋‹ค์‹œ weight vector๋ฅผ ๊ณฑํ•ด์„œ ํ•˜๋‚˜์˜ vector๋กœ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. ๋งˆ์น˜, ๋‹ค์–‘ํ•œ ์˜๊ฒฌ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ํ† ์˜๋ฅผ ๊ฑฐ์ณ์„œ ์•ˆ๊ฑด์„ ๋„์ถœํ•˜๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•˜๋‹ค.

(4) Encoder Block - Position-Wise Feed-Forward Network

  • ํŠน์ง• : ๋™์ผ encoder block ๋‚ด์— ๋“ค์–ด์˜จ ๋ชจ๋“  ๋‹จ์–ด, ๋ฌธ์žฅ์— ๋™์ผํ•œ weight ์ ์šฉ / ๋‹ค๋ฅธ encoder block ๋‚ด์—์„œ๋Š” ๋‹ค๋ฅธ weight๊ฐ’ (๋ณ‘๋ ฌ)

(5) Decoder Block - Masked Multi-Head Attention

  • ํ•„์š”์„ฑ
    ํ˜„์žฌ ์œ„์น˜์—์„œ ๋ฒˆ์—ญ๋  ๋‹จ์–ด๋ฅผ ํ•™์Šตํ• ๋•Œ ๋ฏธ๋ž˜ ์œ„์น˜์— ์žˆ๋Š” ํ† ํฐ ์ •๋ณด์˜ ์ •๋ณด๋ฅผ ์น˜ํŒ…ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ Mask๋ฅผ ์”Œ์šด๋‹ค.

(6) Decoder Block - Encoder-Decoder Multi-Head Attention

  • ํ•„์š”์„ฑ
    ํ˜„์žฌ ์œ„์น˜์˜ ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ๋‹จ์–ด ์ค‘ ์–ด๋–ค ๋‹จ์–ด์— ์ฃผ๋ชฉํ•ด์•ผํ• ์ง€ ํŒŒ์•…ํ•œ๋‹ค.

(7) Decoder Bock - Feed Forward Network

  • ํŠน์ง•
    Encoder block๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ผ decoder block ๋‚ด์— ๋“ค์–ด์˜จ ๋ชจ๋“  ๋‹จ์–ด, ๋ฌธ์žฅ์— ๋™์ผํ•œ weight๋ฅผ ์ ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ decoder block ๋‚ด์—์„œ๋Š” ๋‹ค๋ฅธ weight๊ฐ’์„ ์ ์šฉํ•œ๋‹ค. (๋ณ‘๋ ฌ)

(8) Linear + Softmax -> Output

Softmax๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ๊ฐ ๋‹จ์–ด๊ฐ€ ๋‚˜ํƒ€๋‚  ํ™•๋ฅ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ๊ฐ’์„ ์ถœ๋ ฅ์œผ๋กœ ํ•œ๋‹ค.

6. Conclusion

7. Citations

  1. https://arxiv.org/pdf/1706.03762v5.pdf (Attention is all you need ๋…ผ๋ฌธ)
  2. ์œ„ํ‚ค๋…์Šค ํŠธ๋žœ์Šคํฌ๋จธ : https://wikidocs.net/31379
  3. https://blog.promedius.ai/transformer/
profile
๋ฐฐ์›Œ์„œ ๋‚จ์ค„๊ฑฐ์—์š”!

0๊ฐœ์˜ ๋Œ“๊ธ€