[DL] Transformer: Attention Is All You Need (2017)

๐ŸŠ ๋…ผ๋ฌธ ๋งํฌ: https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. Advances in neural information processing systems30.


INTRO

  2017๋…„ Google BrainํŒ€์—์„œ ๋ฐœํ‘œํ•œ ‘Attention Is All You Need’ ๋…ผ๋ฌธ์— ๋‚˜์˜จ Transformer๋Š” BERT๋‚˜ GPT์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋ถ„์•ผ์˜ ํ•ต์‹ฌ ๋ชจ๋ธ์ด๋‹ค. ๋…ผ๋ฌธ ์ œ๋ชฉ ๊ทธ๋Œ€ RNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Attention Mechanism๋งŒ์„ ํ™œ์šฉํ•˜์—ฌ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. Transformer๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Seq2Seq๊ณผ Attention์— ๋Œ€ํ•œ ์„ ํ–‰ ์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค.

  • Seq2Seq: https://arxiv.org/pdf/1409.3215.pdf
    - ๋ณธ ๋…ผ๋ฌธ์€ 2๊ฐœ์˜ LSTM ๋ ˆ์ด์–ด๋ฅผ ๊ฐ๊ฐ ์ธ์ฝ”๋”–๋””์ฝ”๋” ๊ตฌ์กฐ๋กœ ๋‚˜ํƒ€๋‚ธ ์‹œํ€€์Šค ํˆฌ ์‹œํ€€์Šค ๋ชจ๋ธ์„ ์ œ์‹œํ•œ๋‹ค.
    - ๋ง ๊ทธ๋Œ€๋กœ ์‹œํ€€์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ , ์•„์›ƒํ’‹์œผ๋กœ ๋Œ€์‘ํ•˜๋Š” ์‹œํ€€์Šค๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    - ๋ณธ ๋ชจ๋ธ์€ ์ž…๋ ฅ ์‹œํ€€์Šค์™€ ์ถœ๋ ฅ ์‹œํ€€์Šค์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ํ•ด๊ฒฐํ•œ ๋ชจ๋ธ์ด๋ฉฐ, ๋ฌธ์žฅ ๋ฒˆ์—ญ ๋ถ„์•ผ์— ์‚ฌ์šฉ๋œ๋‹ค.
    - ๊ทธ๋Ÿฌ๋‚˜ ์ธ์ฝ”๋”์˜ ๋งˆ์ง€๋ง‰ hidden state๋งŒ์„ ๋””์ฝ”๋”์— ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‘œํ˜„๋ ฅ์ด ์ œํ•œ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.
       
  • Attention : https://arxiv.org/pdf/1409.0473.pdf
    - Seq2Seq ๋ชจ๋ธ์„ ๋ณด์™„ํ•œ Attention mechanism์€ ๋””์ฝ”๋” ๋งค ์‹œ์ ๋งˆ๋‹ค ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์ž…๋ ฅ ๋‹จ์–ด๋“ค์˜ hidden state๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.
    - Attention score๋ฅผ ํŠน์ • ์Šค์นผ๋ผ ๊ฐ’์œผ๋กœ ๊ตฌํ•œ ํ›„ ์†Œํ”„ํŠธ ๋งฅ์Šค๋ฅผ ํ†ตํ•ด ํ™•๋ฅ  ๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    - ์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋””์ฝ”๋”์˜ ๊ฐ ์ž…๋ ฅ์ด ์ธ์ฝ”๋”์˜ ์–ด๋–ค ์ถœ๋ ฅ์— ๊ฐ€์žฅ ๋†’์€ ์—ฐ๊ด€์ด ๋˜๋Š”์ง€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ‘œํ˜„ํ•œ๋‹ค.

Transformer

  Transformer๋Š” Attention Mechanism๋งŒ์„ ํ™œ์šฉํ•˜์—ฌ RNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹œํ€€์Šค ์ฒ˜๋ฆฌํ•œ๋‹ค. RNN์€ recursiveํ•œ ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์ฐจ์ ์œผ๋กœ ํ•˜๋‚˜์”ฉ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ‘๋ ฌ์ ์ธ ์—ฐ์‚ฐ์ด ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

 

Transformer๋Š” attention๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌํ™” ์—ฐ์‚ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ๊ณ , ํ•™์Šต ์†๋„๋„ ๊ฐœ์„ ํ•˜์˜€๋‹ค.

Transformer์˜ ์ „์ฒด์ ์ธ ์•„ํ‚คํ…์ฒ˜์ด๊ณ  ์ธ์ฝ”๋” ๊ตฌ์กฐ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

์•„๋ž˜ ์ž๋ฃŒ๋“ค์€ Jay Alammar์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค. ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋„์‹ํ™”ํ•œ ๊ทธ๋ฆผ ์œ„์ฃผ๋กœ ๋ณผ ์˜ˆ์ •์ด๋‹ค.

https://jalammar.github.io/illustrated-transformer/

 

Encoder-Decoder

Transformer ์—ญ์‹œ ํฐ ํ‹€์—์„œ๋Š” Encoder–Decoder ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€์ ์œผ๋กœ Seq2Seq๊ณผ ๋‹ฌ๋ฆฌ Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜๋งŒ์„ ํ™œ์šฉํ•˜์—ฌ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

 

Transformer์˜ ํŠน์ง•์€ ์—ฌ๋Ÿฌ ๊ฒน์˜ Encoder–Decoder๋ฅผ stackํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์˜ค๋ฆฌ์ง€๋„ ํŽ˜์ดํผ๋Š” 6๊ฐœ์˜ ์Šคํƒ์„ ์Œ“์•˜๋Š”๋ฐ, ๊ตณ์ด 6๊ฐœ์ผ ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ๋งํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋” ์Šคํƒ์˜ ์ˆ˜๋Š” ๊ฐ™๋‹ค.

๋˜ํ•œ ๊ฐ ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์€ ๋‹ค์Œ ์ธ์ฝ”๋”์˜ ์ž…๋ ฅ์ด ๋˜๊ณ , ๋งˆ์ง€๋ง‰ ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์ด ๊ฐ ๋””์ฝ”๋”์— ์˜ํ–ฅ์„ ์ค€๋‹ค.

 

 

Encoder

ํ•˜๋‚˜์˜ ์ธ์ฝ”๋”๋Š” ํฌ๊ฒŒ Self-Attention ๋ ˆ์ด์–ด์™€ FFNN ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ธ์ฝ”๋”์—์„œ๋Š” ์ž…๋ ฅ์œผ๋กœ 512๊ธธ์ด์˜ ์‹œํ€€์Šค๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.

์ธ์ฝ”๋” ์ธต์˜ Self-Attention์€ RNN๊ณผ ๋‹ฌ๋ฆฌ ์ž…๋ ฅ ๋ฐ›์€ ์‹œํ€€์Šค๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•œ๋‹ค.

๋ชจ๋ธ์€ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 2๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ n๊ฐœ์˜ ์ธ์ฝ”๋”๊ฐ€ stack๋œ ๊ตฌ์กฐ์ด๋‹ค.

 

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

์ดํ›„ ๊ฐ ํ† ํฐ์€ FFNN ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ, ํ† ํฐ๋“ค์ด ๊ฐ๊ฐ ์—ฐ์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ง€์…˜์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค.

 

์ธ์ฝ”๋”์˜ ์ „์ฒด ๊ตฌ์กฐ์ด๋‹ค. ๋งจ ์•„๋ž˜ ์ธํ’‹ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

1. Embeddimg

2. Positional Encoding

3. Multi-Head Attentiom

4. Add&NormFFNN

 

1. Embedding

  ์ธํ’‹ ์‹œํ€€์Šค๋Š” ์ž„๋ฒ ๋”ฉ ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์ณ ๋งจ ์ฒ˜์Œ ์ธ์ฝ”๋”์˜ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ, ๊ธ€๋กœ๋ธŒ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž„๋ฒ ๋”ฉ ์ฐจ์›์€ 512์ด๋‹ค. ์ด ์ž„๋ฒ ๋”ฉ์€ ๋งจ ์ฒ˜์Œ ์ธ์ฝ”๋”์˜ ์ž…๋ ฅ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋˜๊ณ , ์ดํ›„ ์ธ์ฝ”๋”๋“ค์€ ์ง์ „ ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค.

 

2. Positional Encoding

  ์ž„๋ฒ ๋”ฉ ๋œ ํ† ํฐ๋“ค์€ Positional Encoding์„ ๊ฑฐ์นœ๋‹ค. Transformer์˜ ์žฅ์ ์€ RNN ๋ชจ๋ธ์„ ์“ฐ์ง€ ์•Š์ง€ ์•Š๊ณ , ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์–ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ํ‘œํ˜„ํ•  ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. Positional Encoding์€ ๊ฐ๊ฐ์˜ ์ธํ’‹ ์ž„๋ฒ ๋”ฉ์— ๋‹จ์ˆœํžˆ ๋”ํ•ด์ง€๋Š” ๋ฒกํ„ฐ์ด๋‹ค.

 

Positional Encoding์€ ์•„๋ž˜ ์ฃผ๊ธฐํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋œ๋‹ค.

 

$$ PE(pos,2i)โ€‹=\sin(10000_{2i}/d_{model}โ€‹posโ€‹) $$

$$ PE(pos,2i+1)โ€‹=\cos(10000_{2i}/d_{model}โ€‹posโ€‹) $$

 

Positional encoding์€ ๋‘๊ฐ€์ง€ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

1. ๋‘ ๋‹จ์–ด์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์ธํ’‹ ์‹œํ€€์Šค์—์„œ ๋ฉ€์–ด์ง€๊ฒŒ ๋˜๋ฉด, ๋‘˜ ์‚ฌ์ด์˜ Positional encoding ๊ฑฐ๋ฆฌ๋„ ๋ฉ€์–ด์ ธ์•ผ ํ•œ๋‹ค,

2. ์ž…๋ ฅ ์‹œํ€€์Šค์™€ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ํ‘œํ˜„๋˜์–ด์•ผ ํ•œ๋‹ค.

 

3. Multi-Head Attention

  ์ž„๋ฒ ๋”ฉ์„ ๊ฑฐ์นœ ํ† ํฐ๋“ค์€ ์ธ์ฝ”๋”์˜ ๋‘ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋ฅผ ์ง€๋‚˜๊ฒŒ ๋œ๋‹ค. ๋…ผ๋ฌธ์— ๋”ฐ๋ฅด๋ฉด ๊ฐ ํ† ํฐ์€ own path๋ฅผ ์ง€๋‚˜๋Š”๋ฐ, ์œ„ ๊ทธ๋ฆผ์—์„œ ์ด๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋‹ค. ์ฃผ๋ชฉํ•  ์ ์€ Self-Attention ๋ ˆ์ด์–ด์—์„œ๋Š” ์ž…๋ ฅ๋“ค ๊ฐ„์˜ dependencies๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๊ณ , FFNN ๋ ˆ์ด์–ด์—๋Š” ๊ฐ๊ฐ dependencies๊ฐ€ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ™์€ ์ธ์ฝ”๋” ๋ธ”๋ก ์•ˆ์—์„œ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋Š” ์ ์ด ์ค‘์š”ํ•˜๋‹ค.

 

Self-attention์„ ๊ฐœ๋…์ ์œผ๋กœ ๋ณธ๋‹ค๋ฉด, ์ž…๋ ฅ ์‹œํ€€์Šค๋ผ๋ฆฌ์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์žฅ์—์„œ 'it'์ด ์–ด๋–ค ํ† ํฐ๊ณผ ํฐ ์—ฐ๊ด€์„ฑ์„ ๊ฐ–๋Š”์ง€, ์ฆ‰ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”์ง€ ์Šค์ฝ”์–ดํ™” ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

The animal didn't cross the street because it was too tired

Query / Key / Value

  Self-attention์„ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

๋จผ์ € Self-attention์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ์˜ ์ธํ’‹ ๋ฒกํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ 3์ข…๋ฅ˜์˜ ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค.

  • Q(Query) : ํ˜„์žฌ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๋‹จ์–ด์˜ representation. ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ scoringํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฐ’.
  • K(Key) : ์ฟผ๋ฆฌ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ relevantํ•œ ๋‹จ์–ด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๋ฒกํ„ฐ์™€ ๊ฐ™์ด ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.
                   ๋งˆ์น˜ ๋ ˆ์ด๋ธ”๊ณผ ๊ฐ™๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๊ณ , softmax score๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
  • V(Value) : key๋ฅผ ๋ ˆ์ด๋ธ”๋กœ ๋ณธ๋‹ค๋ฉด, value๋Š” ์‹ค์ œ ๊ฐ’์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ตœ์ข… ๊ฐ’์ธ z๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณฑํ•ด์ง€๋Š” ๊ฐ’์ด๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ 'Thinking' / 'Mechines' ๋‘ ํ† ํฐ์— ๋Œ€ํ•ด q, k, v๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์„ ๋„์‹ํ™” ํ•œ๋‹ค.

๋ชจ๋ธ์ด ํ•™์Šตํ•˜๋Š” ๊ฐ€์ค‘์น˜๋Š” $W^Q W^K W^V$์ด๋‹ค

 

Step1

  q, k, v๋Š” ๊ฐ๊ฐ์˜ ์ธํ’‹ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ฐ ์ธํ’‹ ์ž„๋ฒ ๋”ฉ๊ณผ ํ•™์Šต ๋Œ€์ƒ์ด ๋˜๋Š” $W^Q, W^K, W^V$ ๊ฐ€์ค‘์น˜ ๋ฉ”ํŠธ๋ฆญ์Šค ๊ณฑํ•œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์—์„œ 'Thinking' ํ† ํฐ์€ $X_1$์ด๋ผ๋Š” 4์ฐจ์› ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ ๋˜์—ˆ๋‹ค. ์ด๋ฅผ 4x3 ๋ฉ”ํŠธ๋ฆญ์Šค $W^Q$์™€ ๊ณฑํ•˜๋ฉด 1x3 ๋ฒกํ„ฐ์ธ $q_1$์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. $q_i, k_i, v_i$ ๋ชจ๋‘ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ $W^Q, W^K, W^V$์˜ ์ฐจ์›์€ ์ธํ’‹ ์ž„๋ฒ ๋”ฉ์˜ ์ฐจ์›๋ณด๋‹ค๋Š” ์ž‘๊ฒŒ ์„ค์ •ํ•œ๋‹ค.

๊ผญ ๊ทธ๋Ÿด ํ•„์š”๋Š” ์—†์ง€๋งŒ, ์ดํ›„ Multi-head embedding์—์„œ ์ตœ์ข… z๊ฐ’์„ concat์„ ํ•˜๊ธฐ์— ํšจ์œจ์ ์ด๋‹ค.

 

Step2

  ์•ž์„œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์šฐ๋ฆฌ๊ฐ€ ๊ด€์‹ฌ์žˆ๋Š” ‘it’ ๋‹จ์–ด์˜ ์ฟผ๋ฆฌ์™€ ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ์ด ๋†’์€ ๋‹จ์–ด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด score๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํ™•๋ฅ  ๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ํ† ํฐ์˜ ์ฟผ๋ฆฌ์™€, ๋‚˜๋ฅผ ํฌํ•จํ•œ ๋‚˜๋จธ์ง€ ํ† ํฐ๋“ค์˜ key๋“ค์„ ๊ณฑํ•ด์ค€๋‹ค. ์ด ๊ฐ’์€ ์Šค์นผ๋ผ๋กœ ํ‘œํ˜„๋˜๊ณ  ์ด ๊ฐ’์„ ์ž„๋ฒ ๋”ฉ ์ฐจ์›์˜ ๋ฃจํŠธ ์“ฐ์šด ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ softmax๋ฅผ ์ ์šฉํ•œ๋‹ค. ์ด ์Šค์ฝ”์–ด๋Š” ๊ฐ ๋‹จ์–ด๊ฐ€ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ์ฟผ๋ฆฌ์˜ ๋‹จ์–ด์™€ ์–ผ๋งˆ๋‚˜ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ฟผ๋ฆฌ์™€ ํ‚ค๋ฅผ ํ†ตํ•ด ๊ด€๋ จ์„ฑ ์Šค์ฝ”์–ด๋ฅผ ๊ตฌํ•˜๊ณ , ์ด softmax score์™€ ์‹ค์ œ value ๊ฐ’์„ ๊ณฑํ•œ๋‹ค. ์ด๋Š” ๋‹จ์–ด์˜ ์ค‘์š”๋„์— ๋”ฐ๋ผ Weight๋ฅผ ์ค€ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์œ„ ๊ทธ๋ฆผ์€ v1, v2์˜ ํˆฌ๋ช…๋„๋กœ ์ค‘์š”๋„๋ฅผ ํ‘œํ˜„ํžŒ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ๋‹จ์–ด์— ๋Œ€ํ•œ v๋ฅผ ๋”ํ•˜๋ฉด Thinking์˜ self-attention layer ์•„์›ƒํ’‹์ด ๋œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์€ ๋ชจ๋“  ๋‹จ์–ด์— ๋Œ€ํ•œ softmax ์Šค์ฝ”์–ด๋ฅผ ๊ตฌํ•œ ํ›„ Weighted sum์„ ํ•˜์—ฌ ์ตœ์ข… z ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ทธ๋ฆผ์ด๋‹ค.

 

 

์œ„ ํ‘œ๋Š” ๋ชจ๋“  ํ† ํฐ์— ๋Œ€ํ•ด softmax ์Šค์ฝ”์–ด๋ฅผ ๊ตฌํ•œ ๊ณผ์ •์„ ๋ณด์—ฌ์ค€๋‹ค.

์œ„ ๊ณผ์ •์„ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๋ฉด  ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. ์ตœ์ข… z๊ฐ’์˜ ์ฐจ์›์€ ๊ฐ q,k,v ์ฐจ์›๊ณผ ๊ฐ™๋‹ค๋Š” ์ ์ด ์ค‘์š”ํ•˜๋‹ค.

 

  

Multi-head attention

 

์ง€๊ธˆ๊นŒ์ง€๋Š” single attention์—์„œ z๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ–ˆ๋‹ค, Multi-head attention์€ ๊ฐ single attention์„ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ํ›„ ์ด๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” 8๊ฐœ์˜ single attention ๊ฐ๊ฐ ๋”ฐ๋กœ ๊ณ„์‚ฐํ•œ๋‹คMulti-head attention์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ‘it’์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ฌธ์žฅ ๋‚ด์—์„œ ํ•˜๋‚˜์˜ ๊ด€๊ณ„๋งŒ์„ ๊ฐ–์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ Attention Head๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„ ์ตœ์ข…์ ์œผ๋กœ ๊ณ„์‚ฐ๋œ Z๊ฐ’๋“ค์„ concat ํ•œ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ Attention Head์˜ Z๊ฐ’์„ concat๋ฒกํ„ฐ๋ฅผ, ๊ฐ€์ค‘์น˜์ธ $W^Q$์— ๊ณฑํ•ด์„œ ์ธํ’‹ ์ฐจ์›๊ณผ ๋™์ผํ•œ ๋””๋ฉ˜์ „์„ ๊ฐ–๋„๋ก ๋งŒ๋“ ๋‹ค. $W^O$๋Š” ๋ชจ๋ธ์˜ ํ•™์Šต ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฐ’์ด๋‹ค. ์ตœ์ข… Multi-Head Self-Attention ๋‹จ๊ณ„์˜ ๊ทธ๋ฆผ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

 

The Residuals & FFNN

์ง€๊ธˆ๊นŒ์ง€ ์ธํ’‹ ํ† ํฐ์— ๋Œ€ํ•ด์„œ ์ž„๋ฒ ๋”ฉ์„ ํ•˜๊ณ , Positional encoding๊ณผ ๋”ํ•œ ํ›„์— Self-Attention์„ ํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์•˜๋‹ค.

Add & Norm ์ธต์€ ๊ฐ„๋‹จํ•˜๋‹ค. Residual์„ ๊ทธ๋Œ€๋กœ ๋”ํ•ด์ฃผ๊ณ  layer normalization์„ ์ง„ํ–‰ํ•œ๋‹ค. Residual์€ ResNet์ฒ˜๋Ÿผ input ์ž๊ธฐ ์ž์‹ ์„ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์„œ FFNN์— ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋  z1, z2..zi ๊ฐ’์ด ๋งŒ๋“ค์–ด ์ง„๋‹ค.

 

๊ฐ ํ† ํฐ์˜ z๊ฐ’์€ ๋…๋ฆฝ์ ์œผ๋กœ FFNN์ธต์œผ๋กœ ๋“ค์–ด๊ฐ€๊ณ  fully connected ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค. ์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

$$FFN(x) = max(0, xW_1 + b_1)W_2 + b_2 $$

max(0, x)๋Š” RuLU ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ z1, z2์€ ๋…๋ฆฝ์ ์œผ๋กœ FFNN์„ ์ง„ํ–‰ํ•˜์ง€๋งŒ, ํ•˜๋‚˜์˜ ์ธ์ฝ”๋” ๋ธ”๋ฝ ๋‚ด์—์„œ ๊ฐ€์ค‘์น˜๋Š” ๊ณต์œ ํ•œ๋‹ค.

 

Decoder

Masked Multi-Head-Attention

๋ชจ๋“  ์ธํ’‹์„ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์ธ์ฝ”๋”์™€ ๋‹ฌ๋ฆฌ, ๋””์ฝ”๋”๋Š” ๋ฐ˜๋“œ์‹œ ์ž๊ธฐ ์ž์‹ ๋ณด๋‹ค ์•ž์ชฝ์— ํ•ด๋‹นํ•˜๋Š” ํ† ํฐ๋งŒ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด, ๋’ค ํ† ํฐ๋“ค์„ -inf๋กœ ๊ฐ•์ œํ•ด์„œ softmax score๊ฐ€ 0์ด ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ attention์˜ softmax score๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์—์„œ masking์„ ์ ์šฉํ•œ ๊ฒƒ์„ ์ง๊ด€์ ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค.

 

Multi-Head-Attention with Encoder Outputs

์ธ์ฝ”๋”์˜ ์•„์›ƒํ’‹๊ณผ ๋””์ฝ”๋”๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๋งˆ์ง€๋ง‰ ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์€ ๋ชจ๋“  ๋””์ฝ”๋”์˜ Multi-Head-Attention with Encoder Ouputs ์ธต๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•œ๋‹ค. ์ด๋•Œ attention vector์ธ K์™€ V๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. Masked self attention์ธต์„ ์ง€๋‚œ ๋””์ฝ”๋”์˜ ์ธํ’‹์€ ์ธ์ฝ”๋”์˜ K, V ๊ฐ’๊ณผ ๋‹ค์‹œ Multi-head attention ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

 

๋””์ฝ”๋”๋Š” ๊ฐ ์ธํ’‹์— ๋Œ€ํ•ด์„œ ์—ฐ์‚ฐ์„ ์‹œํ€€์…œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์ ์ด ์ธ์ฝ”๋”์™€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด๋‹ค.

 

 

Final Linear Layer

๋งˆ์ง€๋ง‰์œผ๋กœ ๋””์ฝ”๋”์˜ stack output์€  fc์ธต๊ณผ ์†Œํ”„ํŠธ ๋งฅ์Šค ์ธต์„ ์ง€๋‚˜, vocab_size๋งŒํผ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•œ๋‹ค.

Final linear layer๋Š” ๋‹จ์ˆœ ์™„์ „์—ฐ๊ฒฐ์ธต์ด๋‹ค. 

 

์ด๋ ‡๊ฒŒ Transfomer์˜ ์ž„๋ฒ ๋”ฉ๋ถ€ํ„ฐ Fc ์ธต๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์‚ดํŽด ๋ณด์•˜๋‹ค.

์ด์ œ๋Š” model architecture๊ฐ€ ์กฐ๊ธˆ์€ ์นœ์ˆ™ํ•˜๊ฒŒ ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

 

๋ฐ˜์‘ํ˜•

'DL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[DL] Gradient descent algorithm  (0) 2022.07.21