0. word to word translation
- ๋ฒ์ญ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์? ๊ฐ๊ฐ์ ๋จ์ด๋ฅผ ๋ฒ์ญํ๋ ๊ฒ
- ๋ฌธ์ 1) English and Korean has differnet word order
- I love you →๋ฒ์ญ → ๋ ์ฌ๋ํด ๋ (์ด์)
- ๋ฌธ์ 2) output always have same word count with input, while it should not!
- How are you (3 words) → ์ ์ง๋ด (2words)
1. RNN
- Context vector: I love you ๋ผ๋ information์ ํจ์ถํ๊ณ ์์
2. Seqence to Seqence
- ๋ฌธ๋งฅ ๋ฒกํฐ(Context vector) ๋ก๋ถํฐ ๋ฒ์ญ์ ์์
- ๊ฐ ๋์ฌ ๋๊น์ง ๋ฒ์ญ์ ์ด์ด๊ฐ
- ์ด๋ ๊ฒํ๋ฉด ๋จ์ด๊ฐ ์ธ๊ฐ๋ค์ด์๋๋ฐ, ๋๊ฐ๋ง์ ๋๋ ์๋ ์๊ฒ ๊ณ , ํ์ต๊ณผ์ ์์ S V O → S O V ๋ ๊ฐ๋ฅ
- ์ด๋ฐ๊ฑธ ์ธ์ฝ๋, ๋์ฝ๋ ์ํคํ ์ณ ๋๋ ์ํ์คํฌ์คํ์ค ๋ชจ๋ธ์ด๋ผ๊ณ ํจ
- Encoder์ ์ญํ : ๊ฐ ๋จ์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐ์์ผ๋ก์จ ์ต์ข ์ ์ผ๋ก context vector๋ฅผ ๋ง๋ฆ
- Decoder์ ์ญํ : ๋ฌธ๋งฅ ๋ฒกํฐ๋ฅผ ๋ฐ์์ Start ๋ถํฐ End ๊น์ง ๋ฐ์์ ๊ทธ ์์ ์๋ ๋จ์ด๋ค์ ์์๊ธฐ๋ฐ ๊ธฐ๊ณ๋ฒ์ญ์ ์์
- ๋ฌธ์ : ๋จ์ด์ ์ฌ์ด์ฆ๊ฐ ์ ์ ๊ฒฝ์ฐ๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ๋จ์ด์ ์ฌ์ด์ฆ๊ฐ ๋ง์ ๋ ๋ฌธ์ ๊ฐ ์๊น
- ์๋ํ๋ฉด ๋ฌธ๋งฅ ๋ฒกํฐ๊ฐ ํ๋์ ๊ณ ์ ๋ ์ฌ์ด์ฆ์ ๋ฒกํฐ์ด๊ธฐ ๋๋ฌธ
- ์ปจํ ์คํธ ๋ฒกํฐ ์ฌ์ด์ฆ๊ฐ ์ถฉ๋ถํ ํฌ์ง ์๋ค๋ฉด ๋ชจ๋ ์ ๋ณด๋ฅผ ํจ์ถํ๊ธฐ์๋ ์ฌ์ด์ฆ๊ฐ ์๋ค
- ์ด๋ป๊ฒ ํด๊ฒฐ? attention mechanism ํ์ฉ
3. ์ธ์ฝ๋ ๋์ฝ๋ , ์ดํ ์ ๋น๊ต
1) ์ธ์ฝ๋ ๋์ฝ๋
- ์ธ์ฝ๋ ๋์ฝ๋ ์ํคํ ์ณ์์๋ ์ธ์ฝ๋์์ ๋์๋ ๋ชจ๋ state๋ค์ ํ์ฉํ์ง ์๊ณ
- ๋จ์ํ ๋ง์ง๋ง์ ๋์จ ๋ฒกํฐ๋ฅผ context vector๋ผ๊ณ ๋ถ๋ ๊ณ
- ํ๋์ context vector์์ translation์ด ์ด๋ฃจ์ด์ง
2) ์ดํ ์
- (ํน์ง1) Encode info into sequence of vectors not in a single context vector
- ์ธ์ฝ๋์์ ๋์จ ๊ฐ๊ฐ์, ๋ชจ๋ Rnn Cell์ state๋ฅผ ํ์ฉํ์๋ ๊ฒ
- ์ด state๋ฅผ ํ์ฉํ์ฌ dinamic ํ๊ฒ ๊ฐ๊ฐ์ state๋ณ๋ก cotext vector๋ฅผ ๋ง๋ค์ด๊ฐ์ง๊ณ ๋ฒ์ญ์ ํ๋ฉด, ๊ณ ์ ๋ ์ฌ์ด์ฆ์ context vector๋ฅผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์
- ๋์ด์ ํ๋์ ๊ณ ์ ๋ ์ฌ์ด์ฆ์ context vector๊ฐ ์๋
- ๊ฐ๊ฐ์ state๋ณ๋ก context vector๋ฅผ ์๋กญ๊ฒ ๋ง๋๋ ๊ฒ
- (ํน์ง2) Chooses a subset of these vectors adaptively while decoding the translation
- ์ธ์ฝ๋์ ์๋ ๋ชจ๋ state ๋ค ์์์ ์ฐ๋ฆฌ๊ฐ ์ง์คํด์ผ๋ ๋จ์ด๋ค์๊ฒ๋ง ์ง์คํ ์ ์๋mechanism์ ๋ฐ๋ก ์ค๊ณํ ์ ์์
3) I love you ๋ฅผ ๋ ๋์ฌ๋ํด๋ก ๋ฒ์ญํ๋ ๊ณผ์
- FC : ์ธ์ฝ๋ part์์ ๋์๋ ๋ชจ๋ rnn cell์ state ๋ค์ ํ์ฉํจ
- FC(h3) : ์ต์ข ์ผ๋ก ๋์๋ h3๋ ๋ฃ์, ์์ง ๋์ฝ๋์์ ๋์จ state ๊ฐ์ด ์๊ธฐ ๋๋ฌธ
- Softmax : ๊ฐ ์ธ์ฝ๋์ ์๋ rnn cell์ state ๋ค์ score๋ค์ ์์ฑ ⇒ Attention weight
- cv1(์ฒซ๋ฒ์งธ context vector) : rnn cell์ ๊ฐ state * attention weight ๋ค์ ํฉ
- cv1์ ์ ํจ๊ป ๋์ฝ๋ part์ ์ฒซ๋ฒ์งธ rnn cell์ ๋ฃ์ด์ค
- ouput : ‘๋’
- dh1 ์์ฑ
- dh1 : ๋์ฝ๋์ state ๊ฐ dh1์ด FC layer์ ๋ค์ด๊ฐ ⇒ FC(dh1)
- cv2: cv1์ ๋ค๋ฅธ context vector
- cv2๋ฅผ ‘๋’ ๊ณผ ํจ๊ป ๋์ฝ๋์ ๋๋ฒ์งธ rnn cell์ ๋ฃ์ด์ค
- output : ‘๋’
- dh2 ์์ฑ
- dh2: ๋์ฝ๋์ state๊ฐ dh2๋ฅผ FC layer์ ๋ฃ์ ⇒ FC(dh2)
- cv3 ์์ฑ
- cv3๋ฅผ ‘๋’ ๊ณผ ํจ๊ป ๋์ฝ๋์ ์ธ๋ฒ์งธ rnn cell์ ๋ฃ์ด์ค
- output: ‘์ฌ๋ํด’
- dh3 ์์ฑ
- dh3: ๋์ฝ๋์ state๊ฐ dh3๋ฅผ FC layer์ ๋ฃ์ ⇒ FC(dh3)
- cv4 ์์ฑ
- ouput :
- ๋ฒ์ญ ๋
key point
- attention weight๋ ์ธ์ฝ๋์์ ๋์จ State์์ ์ด๋๋ฅผ focusํด์ ๋ณผ ๊ฒ์ธ์ง ๋ณธ๋ค
์์ฝ
- ์ํ์คํฌ์ํ์ค๋ ์ธ์ฝ๋, ๋์ฝ๋ ์ํคํ ์ณ์ด๋ค
- ์ํ์คํฌ์ํ์ค๋ ์ธ์ฝ๋์์ ๋์๋ ๋ชจ๋ state๋ค์ ํ์ฉํ์ง ์๊ณ , ๋จ์ํ ๋ง์ง๋ง์ ๋์จ ๋ฒกํฐ์ธ context vector ๋ง์ ์ฌ์ฉํด์ ๋ฒ์ญ์ ํ๋ค.
- ์ด๋ฌ๋ฉด ๋จ์ด์ ์ฌ์ด์ฆ๊ฐ ์ปค์ง ๊ฒฝ์ฐ, ๋ชจ๋ ๋จ์ด์ ์ ๋ณด๋ฅผ ํจ์ถํ๊ธฐ์๋ ์ฌ์ด์ฆ๊ฐ ์๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ฒ Attention Mechanism์ด๋ค.
- Attention Mechanism์ ๊ฐ๊ฐ์ rnn cell์ state๋ณ๋ก context vector๋ฅผ ์๋กญ๊ฒ ๋ง๋ค์ด ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ญ์ ๊ฐ๊ฐ์ state๋ค์ ๋ชจ๋ ํ์ฉํ ์ ์๋ค.
References
'ML > NLP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํธ๋์คํฌ๋จธ (Attention is all you need) (3) | 2022.01.19 |
---|---|
Attention Mechanism์ด๋? (0) | 2021.12.26 |