๋๋์ด ๋์ค์ จ์ต๋๋ค. Transformer! ๐ฅ ๋๋ฅํ!
https://arxiv.org/abs/1706.03762
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org
"Attention Is All You Need" ๋ ผ๋ฌธ์ด ๋์ค๊ฒ ๋ ๊ณ๊ธฐ๋ ๊ธฐ์กด RNN(Recurrent Neural Network) ๊ณผ CNN(Convolutional Neural Network) ๊ธฐ๋ฐ ๋ชจ๋ธ๋ค์ด ๊ฐ์ง ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์ ์ ๋๋ค!
RNN๊ณผ LSTM์ ํ๊ณ
- Sequential Processing
- RNN์ด๋ LSTM์ ์ ๋ ฅ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ณ๋ ฌํ๊ฐ ์ด๋ ต๊ณ , ์๋๊ฐ ๋๋ฆผ
- ๊ธด ๋ฌธ์ฅ์์ ์ฅ๊ธฐ ์์กด์ฑ(long-range dependency) ์ ํ์ตํ๋ ๋ฐ ์ด๋ ค์
- Vanishing Gradient ๋ฌธ์
- LSTM์ด๋ GRU ๊ฐ์ ๊ฐ์ ๋ ๊ตฌ์กฐ๊ฐ ์๊ธด ํ์ง๋ง, ์ฌ์ ํ ๊ธด ์ํ์ค์์๋ ๊ธฐ์ธ๊ธฐ ์์ค(vanishing gradient) ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์
- CNN์ ํ๊ณ
- CNN์ ์ํ์ค ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ง์ญ์ ํจํด์๋ ๊ฐํ์ง๋ง, ๊ธ๋ก๋ฒ ์์กด์ฑ(global dependency) ์ ํ์ตํ๋ ๋ฐ ์ฝํจ
"Attention Is All You Need"์ ํต์ฌ ๋๊ธฐ
- ๋ณ๋ ฌํ ๊ฐ๋ฅ
- Attention ๋ฉ์ปค๋์ฆ์ ๋ชจ๋ ์
๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ด์ ๋ณ๋ ฌ ์ฐ์ฐ์ด ๊ฐ๋ฅํจ
=> Dot-Product Attention - ๋๋ถ์ ๊ธฐ์กด RNN ๊ธฐ๋ฐ ๋ชจ๋ธ๋ณด๋ค ํ์ต ์๋๊ฐ ํจ์ฌ ๋น ๋ฆ
- Attention ๋ฉ์ปค๋์ฆ์ ๋ชจ๋ ์
๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ด์ ๋ณ๋ ฌ ์ฐ์ฐ์ด ๊ฐ๋ฅํจ
- ๋ ๊น์ ์ปจํ
์คํธ ํ์ต
- Attention์ ์
๋ ฅ ์ํ์ค์ ๋ชจ๋ ์์น๋ฅผ ๋์์ ๊ณ ๋ คํ ์ ์์ด์ ์ฅ๊ธฐ ์์กด์ฑ์ ๋ ์ ํ์ต
=> Positioning Encoding
- Attention์ ์
๋ ฅ ์ํ์ค์ ๋ชจ๋ ์์น๋ฅผ ๋์์ ๊ณ ๋ คํ ์ ์์ด์ ์ฅ๊ธฐ ์์กด์ฑ์ ๋ ์ ํ์ต
- Self-Attention์ ๋จ์ํจ๊ณผ ํ์ฅ์ฑ
- RNN์ฒ๋ผ ๋ณต์กํ ์ํ ๊ตฌ์กฐ๋ฅผ ์์ ๊ณ , Self-Attention๋ง์ผ๋ก ๋ ๋จ์ํ ๊ตฌ์กฐ์ ๋ชจ๋ธ์ ๋ง๋ฌ
- ์ดํ Transformer ๊ตฌ์กฐ๊ฐ NLP๋ฟ๋ง ์๋๋ผ ์์ฑ ์ธ์, ์ปดํจํฐ ๋น์ ๋ฑ ์ฌ๋ฌ ๋ถ์ผ๋ก ํ์ฅ๋จ
"Attention Is All You Need"์ Contribution
- RNN/CNN ์์ ์ ๊ฑฐ
- ์ด์ ์ ๋๋ถ๋ถ์ ๋ชจ๋ธ์ Attention์ ๋ณด์กฐ ๊ธฐ๋ฒ์ผ๋ก ์ฌ์ฉํ์ง๋ง, Transformer๋ ์ค์ง Attention๋ง ์ฌ์ฉ
- Self-Attention + Positional Encoding
- ์์น ์ ๋ณด๋ฅผ ํ์ตํ๊ธฐ ์ํด Positional Encoding์ ์ถ๊ฐํ๊ณ , Self-Attention์ ์ฌ์ฉํด ๋ชจ๋ ํ ํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ต
- ๋ณ๋ ฌ ์ฐ์ฐ์ผ๋ก ํ์ต ์๋ ๋ํญ ํฅ์
- ๋จ์ผ GPU๋ก๋ ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋จ
Transformer ์ํคํ ์ฒ: ์ ์ฒด ๊ตฌ์กฐ
Transformer๋ ํฌ๊ฒ ๋ ๊ฐ์ ์คํ(stack)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- Encoder Stack (6๊ฐ Layer๋ก ๊ตฌ์ฑ)
- ์ ๋ ฅ ์ํ์ค๋ฅผ Self-Attention๊ณผ Feed-Forward Network๋ฅผ ํตํด ์ธ์ฝ๋ฉํด ๊ณ ์ฐจ์ ํํ์ผ๋ก ๋ณํ.
- Self-Attention ๊ณผ Feed-forward Network ๋ sub layers ๋ฅผ ๊ตฌ์ฑ. ์ด ๋๊ฐ์ ์ธต์ด ํ๊ฐ์ layer๋ฅผ ๊ตฌ์ฑ.
- output์ผ๋ก dmodel = 512 ์ฐจ์์ด ๋์จ๋ค. (๊ท ํ์ ๋ง์ถฐ์ ์ด์ ๋๋ก output์ด ๋์ค๋๋ก ์ค์ )
- Decoder Stack (6๊ฐ Layer๋ก ๊ตฌ์ฑ)
- Encoder์ ์ถ๋ ฅ์ ๋ฐํ์ผ๋ก Self-Attention, Encoder-Decoder Attention, Feed-Forward Network๋ฅผ ์ฌ์ฉํด ์ถ๋ ฅ ์ํ์ค๋ฅผ ์์ฑ.
- Self-Attention ๊ณผ Feed-forward Network ๋ sub layers ๋ฅผ ๊ตฌ์ฑ. ์ด ๋๊ฐ์ ์ธต์ด ํ๊ฐ์ layer๋ฅผ ๊ตฌ์ฑ.
- Encoder์ ์ถ๋ ฅ์ ๋ฐํ์ผ๋ก Self-Attention, Encoder-Decoder Attention, Feed-Forward Network๋ฅผ ์ฌ์ฉํด ์ถ๋ ฅ ์ํ์ค๋ฅผ ์์ฑ.

Encoder ๊ตฌ์ฑ ์์
- Input Representation
- ์ ๋ ฅ ๋ฐ์ดํฐ(๋ฌธ์ฅ)๋ฅผ ์๋ฒ ๋ฉ(Embedding) ์ผ๋ก ๋ณํํ๊ณ , Positional Encoding์ ์ถ๊ฐํด ์์น ์ ๋ณด๋ฅผ ๋ฐ์
- Positional Encoding ์ sin ๊ณผ cos ํจ์๋ฅผ ์ฌ์ฉํด ๊ฐ ์์น์ ๊ณ ์ ํ ๊ฐ์ ๋ถ์ฌ
- pos: ๋จ์ด๊ฐ ๋ช๋ฒ์งธ ๋จ์ด์ธ์ง
- i: ํ์ฌ ๋ช ๋ฒ์งธ ์ฐจ์์ ๊ณ์ฐ ์ค์ธ์ง ๋ํ๋ด๋ ์ธ๋ฑ์ค
- dmodel: ์ ์ฒด ์๋ฒ ๋ฉ ๋ฒกํฐ์ ํฌ๊ธฐ (๋ช ์ฐจ์์ผ๋ก ํํํ ์ง ๊ฒฐ์ )
- ์ง์ ์ฐจ์์ sin ๊ฐ ์ฌ์ฉ, ํ์ ์ฐจ์์ cos ๊ฐ ์ฌ์ฉ
- Self Attention Mechanism (Encoder/Decoder ๊ณตํต)
- ์
๋ ฅ ์ํ์ค์ ๋ชจ๋ ํ ํฐ์ด ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ๊ณผ์ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํด ์๋ก ์์กด์ฑ์ ํ์ต
- Q, K, V ํ๋ ฌ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ (3. Multi-Head Attetion ์ธ์
์์ ์ข ๋ ์์ธํ ๊ณ์ฐ๋ฐฉ๋ฒ ์์ )
- ์ ๋ ฅ ๋ฐ์ดํฐ(์๋ฒ ๋ฉ+ํฌ์ง ์ ๋ ์ธ์ฝ๋ฉ) ํ๋ ฌ์ ๋๊ฐ์ด 3๊ฐ๋ก ๋ณต์ฌ
- Q ํ๋ ฌ์ ๊ตฌํ๊ธฐ ์ํด ์์์ ์ ์ฌ๊ฐ ํ๋ ฌ(dmodel x dk ํฌ๊ธฐ์)์ ๊ณฑํด์ค๋ค.
- K์ V ๋ํ ์์์ ์ ์ฌ๊ฐ ํ๋ ฌ์ ๊ฐ๊ฐ ๊ณฑํด์ค๋ค. (์์์ ์ ์ฌ๊ฐํ๋ ฌ์ Q, K, V ๋ชจ๋ ๋ค๋ฆ)
- Self-Attention์ ํต์ฌ์ Query(Q), Key(K), Value(V) ํ๋ ฌ์ ์์ ๊ฐ์ด ์์ฑํ๊ณ , ๊ฐ์คํฉ(weighted sum)์ ๊ณ์ฐ
- ์ธ์ฝ๋ฉ ๋ถ๋ถ์์๋ Mask ๋ถ๋ถ์ Skip ํ๋ค.
- attention ๊ฒฐ๊ณผ๋ฅผ softmax ์ฒ๋ฆฌํ๋ค.
- Q, K, V ํ๋ ฌ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ (3. Multi-Head Attetion ์ธ์
์์ ์ข ๋ ์์ธํ ๊ณ์ฐ๋ฐฉ๋ฒ ์์ )
- ์
๋ ฅ ์ํ์ค์ ๋ชจ๋ ํ ํฐ์ด ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ๊ณผ์ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํด ์๋ก ์์กด์ฑ์ ํ์ต
- Multi-Head Attention
- Self-Attention ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฌ๋ฌ ๋ฒ(Head) ์ํํ ํ ๊ฒฐ๊ณผ๋ฅผ ํฉ์นจ.
- ๋ชจ๋ธ์ ์ ์ฒด ์ฐจ์ dmodel = 512
- head ์ ๊ฐ์ h = 8 (๋ ผ๋ฌธ์์ ์ค์ )
- ๊ฐ Query, Key, Value ํ๋ ฌ์ dmodel/h = 64 ์ฐจ์์ผ๋ก ๋ถํ
์ฆ, ํ๋์ head ๋ 64 ์ฐจ์์ ๋ฒกํฐ๋ก ์ฐ์ฐ์ ์ํ
- ์ด๋ฅผ ํตํด ๋ค์ํ ๊ด์ ์์์ ๊ด๊ณ๋ฅผ ํ์ตํ ์ ์์
Q, K, V ํ๋ ฌ์ ์์ฑ ๋ฐฉ์ - Multi-Head Attention์์๋ ์ ๋ ฅ X์ ๋ํด ๊ฐ head๋ง๋ค ๋ค๋ฅธ ์ ํ ๋ณํ์ด ์ ์ฉ
- ๊ฐ head๋ณ๋ก Query, Key, Value๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ
- 8 ๊ฐ์ head ๊ฐ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ Q, K, V ๋ฅผ ์์ฑํ๊ณ ๋ณ๋ ฌ์ ์ผ๋ก attention ๊ณ์ฐ์ ์ํ
- ์ต์ข
์ ์ผ๋ก ์ ํ ๋ณํ์ ํตํด ๋ชจ๋ธ์ ์ถ๋ ฅ dmodel = 512 ๋ก ๋ณต์๋๋ค
- MultiHead(Q,K,V) = Concat(head1โ,...,head8โ)WO
- WO: ์ต์ข ์ ํ ๋ณํ์ ์ํ ๊ฐ์ค์น ํ๋ ฌ ((8 x dv) x dmodel) (512 x 512)
- WO ๋ฅผ ๊ณฑํด์ฃผ๋ ์ด์ ๋ Concat ๋ head ์ ์ถ๋ ฅ์ ๋จ์ํ ๊ฐ์ด ๋์ด๋ ์ํ์ผ ๋ฟ, ์ด๋ฅผ ํ๋์ ํตํฉ๋ ํํ์ผ๋ก ๋ณํํด์ค์ผํ๊ธฐ ๋๋ฌธ.
- Self-Attention ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฌ๋ฌ ๋ฒ(Head) ์ํํ ํ ๊ฒฐ๊ณผ๋ฅผ ํฉ์นจ.
- Feed-Forward Network(FNN)
- Attention์ ์ถ๋ ฅ์ด ๊ฐ ํ ํฐ๋ง๋ค ๋
๋ฆฝ์ ์ผ๋ก FNN ์ ํตํด ๋น์ ํ ๋ณํ์ด ์ด๋ฃจ์ด์ง
- ๋น์ ํ ๋ณํ์ ReLU ๋ก ์ธํ ๊ฒ์.
- ๋น์ ํ ๋ณํ์ ReLU ๋ก ์ธํ ๊ฒ์.
- ๋๊ฐ์ Fully-connected Layer๋ก ๊ตฌ์ฑ๋์ด ์์
- [์ ๋ ฅ๋ฒกํฐ] ----> Linear ----> [์ค๊ฐ๋ฒกํฐ] ----> ReLU ----> [์ค๊ฐ๋ฒกํฐ] ----> Linear ----> [๋ง๋ค์ด์ง ๋ฒกํฐ]
- ์ฒซ๋ฒ์งธ Linear Layer: ์ ๋ ฅ dmodel=512 -> ๋ด๋ถ ์ฐจ์ dff = 2048 ๋ก ํ์ฅ
- ๋๋ฒ์งธ Linear Layer: dff=2048 -> ๋ค์ dmodel=512 ๋ก ์ถ์
- ์ dff=2048๋ก ํ์ฅํ ๊น?
- 2048 ์ฐจ์์ผ๋ก ํ์ฅํ๋ฉด์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ ๊ณ ์ฐจ์ ๊ณต๊ฐ์ผ๋ก ๋ณํ (๋น์ ํ ํํ๋ ฅ ๊ฐํ)
- Attention์ ์ถ๋ ฅ์ด ๊ฐ ํ ํฐ๋ง๋ค ๋
๋ฆฝ์ ์ผ๋ก FNN ์ ํตํด ๋น์ ํ ๋ณํ์ด ์ด๋ฃจ์ด์ง
- Residual Connection & Layer Normalization
- ๊ฐ Self-Attention ๊ณผ Feed-Forward Layer ์๋ Residual Connection ๊ณผ Layer Normalization ์ด ์ ์ฉ๋จ
- ์ด๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ์ํํ๊ณ , ๋ ๊น์ ํ์ต์ ๊ฐ๋ฅํ๊ฒ ํจ

Decoding ๊ตฌ์ฑ ์์
Transformer ์ Decoder ๋ 6๊ฐ์ ๋์ผํ layer ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๊ฐ ๋ ์ด์ด๋ ์ธ๊ฐ์ง ์๋ธ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.

- Masked Multi-Head Self-Attention
- ์๊ธฐ ์์ (์ด์ ์ถ๋ ฅ ํ ํฐ๋ค)๊ณผ์ ๊ด๊ณ๋ฅผ ๊ณ์ฐ
- ๋ฏธ๋์ ํ ํฐ์ ๋ง์คํน ํ์ฌ ํ์ฌ ์์ ๊น์ง์ ์ ๋ณด๋ง ์ด์ฉ
- Decoder ๊ฐ ์ด๋ฏธ ์์ฑ๋ ์ด์ ํ ํฐ๋ค๋ง ์ฐธ๊ณ ํ๋๋ก... ๋ฏธ๋ ์ ๋ณด๋ฅผ ๋ง์คํนํจ
- ๋ง์คํฌ ํ๋ ฌ(mask matrix) ๋ฅผ ์ด์ฉํด์ softmax ๊ฒฐ๊ณผ๋ฅผ 0์ผ๋ก ๋ง๋ค์ด ๋ฏธ๋ ์ ๋ณด๋ฅผ ๋ฌด์ํจ
- ๋ง์ฝ Decoder ๊ฐ '"The cat" ๊น์ง ์์ฑํ ์ํ๋ผ๋ฉด ๊ทธ ๋ค์ ๋จ์ด "sat" ์ ์์ธกํ ๋๋ "the", "cat" ์ ๋ณด๋ง ์ฐธ๊ณ
- Multi-Head Cross-Attetion (Encoder-Decoder Attention)
- Encoder์ ์ถ๋ ฅ(์
๋ ฅ ์ํ์ค์ ์ธ์ฝ๋ฉ ํํ, Key, Value)๊ณผ ํ์ฌ Decoder ์
๋ ฅ(Query)์ ๊ด๊ณ๋ฅผ ํ์ตํ์ฌ ์
๋ ฅ-์ถ๋ ฅ ๊ฐ์ ์์กด์ฑ์ ๋ชจ๋ธ๋ง (Cross Attention)
- Q ๋ Decoder ์ ๊ฒ์ด๊ณ , K์ V ๋ Encoder ์ ๊ฒ
- ์ ๋ ฅ ์ํ์ค์ ์ค์ํ ์ ๋ณด๋ฅผ ๊ฐ์กฐํด ์ถ๋ ฅ ์ํ์ค ์์ธก ๋์์ ์ค
- Encoder์ ์ถ๋ ฅ(์
๋ ฅ ์ํ์ค์ ์ธ์ฝ๋ฉ ํํ, Key, Value)๊ณผ ํ์ฌ Decoder ์
๋ ฅ(Query)์ ๊ด๊ณ๋ฅผ ํ์ตํ์ฌ ์
๋ ฅ-์ถ๋ ฅ ๊ฐ์ ์์กด์ฑ์ ๋ชจ๋ธ๋ง (Cross Attention)
- Position-wise Feed-Forward Network(FNN)
- ๊ฐ ํ ํฐ๋ณ๋ก ๋น์ ํ ๋ณํ์ ์ํํด ๋ ๋ณต์กํ ๊ด๊ณ๋ฅผ ํ์ต
- Encoder ์ FNN ๊ณผ ๋์ผํ๊ฒ ReLU ๋ก ๋น์ ํ์ฑ ์ ์ฉ
๐ฒ ๋ฐ์ดํฐ ํ๋ฆ (ํ๋์ ์์ฝ!)
Encoding ๋จ๊ณ:
- ์ ๋ ฅ ์ํ์ค โ ์๋ฒ ๋ฉ + Positional Encoding (๊ฐ๊ฐ์ ๋ฒกํฐ๋ฅผ ๋ํด์ฃผ๋ฉด ๋)
- Self-Attention โ Feed-Forward Network
- 6๊ฐ Encoder Layer๋ฅผ ํต๊ณผํด ์ต์ข ์ธ์ฝ๋ฉ ํํ ์์ฑ
Decoding ๋จ๊ณ:
- ์ด์ ์ถ๋ ฅ ์ํ์ค โ ์๋ฒ ๋ฉ + Positional Encoding
- Self-Attention (Decoder์์ ๋ง์คํน ์ ์ฉ)
- Encoder-Decoder Attention (Encoder์ ์ธ์ฝ๋ฉ ํํ๊ณผ์ ๊ด๊ณ ํ์ต)
- Feed-Forward Network
- 6๊ฐ Decoder Layer๋ฅผ ํต๊ณผํด ์ต์ข ์ถ๋ ฅ ์์ฑ
๊ฒฐ๋ก
- Self-Attention์ ๊ณ์ฐ ํจ์จ์ฑ, ๋ณ๋ ฌํ ๊ฐ๋ฅ์ฑ, ์ฅ๊ธฐ ์์กด์ฑ ํ์ต์์ ๊ธฐ์กด RNN๊ณผ CNN๋ณด๋ค ๋ฐ์ด๋ฉ๋๋ค.
- RNN์ ๋๋ฆฌ๊ณ ์์ฐจ์ , CNN์ ๋ณ๋ ฌํ๋ ๋์ง๋ง ์ฅ๊ธฐ ์์กด์ฑ ํ์ต์ ํ๊ณ๊ฐ ์์ต๋๋ค.
- Self-Attention์ ๋ชจ๋ธ ํด์ ๊ฐ๋ฅ์ฑ๋ ๋์, ๋ ์ง๊ด์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.