Transformer - beyondnlp/nlp GitHub Wiki
3๊ฐ์ Multi-Head Attention์ด ์๋ค.
(1). Input Embedding์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ MH Attention (2). Output Embedding์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ MH Attention (3). ์ ๋๊ฐ์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ MH Attention
Scaled Dot-Product Attention
- Scale : Embedding๋ ๊ฐ ์ค ํน์ ๊ฐ์ด ๋๋ฌด ํฐ ๊ฐ์ด ์ค๋ฉด ํ์ต์ ์ง์ฅ์ ์ฃผ๊ธฐ ๋๋ฌธ์ normalizing์ ํด์ค๋ค.
- Mask(opt) : (1)์ ์ ๋ ฅ์ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ mask๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋๋ฐ 2, 3๋ฒ์ ์์ฐจ์ ์ผ๋ก ์์ฑ์ ํ๋ ๋ฐฉ์์ด๋ผ์ ์ ํจํ ๋ฒ์์ ๋ํ ๋ง์คํน์ด ํ์ํ๋ค( ์ฆ ์์์ 1 0 0 0 ๋๋ฒ์งธ๋ 1 1 0 0, ์ธ๋ฒ์งธ๋ 1 1 1 0 , ๋ค๋ฒ์งธ๋ 1 1 1 1 ์ผ๋ก ์ ํจ๋ฒ์๋ฅผ ๋ง์คํนํ๋ค )
- Softmax : ๊ณ์ฐ๋ ๊ฐ์ ๊ฐ์ค์น์ ๋ฐ๋ผ ํ๋ฅ ๋ก ํํ( ํ๋ฅ : ํฉ์ด 1 )
Multi-Head Atteion์์
- Linear์ Fully Connected Netword๋ฅผ ์๋ฏธ
- MH์ 3๊ฐ์ input์ด ์กด์ฌ ( Q, K, V )
- root(Dk) = scaling Factor
(1). Query : Input, Key : Input Vec, Value : Input (2). Query : Output, Key : Output, Value : Output Hidden (3). Query : Output Vec, Key : Input Vec , Value : Input Hidden