๐ ๋ชฉ์ฐจ
1. Multi-Lingual. with. Zero-shot Learning
2. Mono-Lingual Corpus
3. Transformer
๐ ๊ธ์ ๋ง์น๋ฉฐ...
1. Mutli-Lingual. with. Zero-shot. Learning
์ด์ , NMT performance๋ฅผ ๋์ด์ฌ๋ฆฌ๊ธฐ ์ํ ๊ณ ๊ธ๊ธฐ๋ฒ๋ค์ ์ค๋ช ํด๋ณด๋ ค ํ๋ค.
ํ๋์ end2end๋ชจ๋ธ์์ ์ฌ๋ฌ ์ธ์ด์์ ๋ฒ์ญ์ ๋์์ ์ ๊ณตํ๋ mulilingual NMT์ ๋ํด ์์๋ณด์.
1.1 Zero-Shot Learning
NMT์์ Zero-Shot Learning์ด๋ผ๋ ํฅ๋ฏธ๋ก์ด ๋ ผ๋ฌธ์ด ์ ์๋์๋ค.[Enabling Zero-shot translation; 2017]
์ด ๋ฐฉ์์ ํน์ง์ ์ฌ๋ฌ ์ธ์ด์์ parallel corpus๋ฅผ ํ๋์ ๋ชจ๋ธ์ ํ๋ จํ๋ฉด ๋ถ๊ฐ์ ํ์ต์ ์ฐธ์ฌํ corpus์ ์กด์ฌํ์ง ์๋ ์ธ์ด์๋ ๋ฒ์ญ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์ด๋ค.
์ฆ, ํ๋ฒ๋ NMT์ data๋ฅผ ๋ณด์ฌ์ฃผ์ง ์์๋ ํด๋น ์ธ์ด์ ๋ฒ์ญ์ ์ฒ๋ฆฌํ ์ ์๋ค.
(์ฝ๊ฒ ๋งํ์๋ฉด, ๋ชจ๋ธ์ด train data์ ์ง์ ๋ ธ์ถ๋์ง ์์ ํด๋์ค๋ฅผ ์ธ์ํ๊ณ ๋ถ๋ฅํ ์ ์๋ ๋ฅ๋ ฅ์ ์๋ฏธ)
[๊ตฌํ๋ฐฉ๋ฒ]
โ ๊ธฐ์กด ๋ณ๋ ฌ์ฝํผ์ค์ ๋งจ ์์ ํน์ token์ ์ฝ์ , ํ๋ จํ๋ฉด ๋๋ค.
โ ์ด๋, ์ฝ์ ๋ token์ ๋ฐ๋ผ target์ธ์ด๊ฐ ๊ฒฐ์ ๋๋ค.
์์ ๋ชฉํ๋ ๋จ์ํ ๋ค๊ตญ์ด NMT end2end๋ชจ๋ธ๊ตฌํ์ด ์๋,
src์ธ์ด target์ธ์ด ๊ธฐ์กด Hello, how are you? Hola, ¿ cómo estás? Zero-Shot <2es> Hello, how are you? Hola, ¿ cómo estás?
์๋ก ๋ค๋ฅธ ์ธ์ด์์ corpus๋ฅผ ํ์ฉํด NMT์ ๋ชจ๋ ์ธ์ด์์ ๋ํด ์ ์ฒด์ ์ธ ์ฑ๋ฅ์ ์ฌ๋ฆด ์ ์๋์ง ํ์ธํ๋ ค๋ ๊ด์ ์ด๋ค.
์ด์ ๋ํด ์๋ 4๊ฐ์ ๊ด์ ์ผ๋ก ์คํ์ด ์งํ๋ ๊ฒ์ด๋ค.
Many-to-One
โ ๋ค์์ ์ธ์ด๋ฅผ encoder์ ๋ฃ๊ณ train
์ด ๋ฐฉ๋ฒ์ ์ค์ ๋ฌธ์ ๋ก ์ฃผ์ด์ง ์ธ์ด dataset์ธ์๋, ๋์์ ํ๋ จ๋ ๋ค๋ฅธ์ธ์ด์ dataset์ ํตํด
ํด๋น ์ธ์ด์ ๋ฒ์ญ์ฑ๋ฅ์ ๋์ด๋ ์ ๋ณด๋ฅผ ์ถ๊ฐ๋ก ์ป์ ์ ์๋ค.
One-to-Many
โ ๋ค์์ ์ธ์ด๋ฅผ decoder์ ๋ฃ๊ณ train
์ด ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ๋ฒ๊ณผ ๋ฌ๋ฆฌ, ์ฑ๋ฅํฅ์์ด ์๋ค๋ณด๊ธด ์ด๋ ต๋ค.
๊ฒ๋ค๊ฐ ์์ด ์ถฉ๋ถํ(ex. ENG-FRA) corpus์ ๊ฒฝ์ฐ, oversampling์ ํ๊ฒ๋๋ฉด ๋ ํฐ ์ํด๋ฅผ ๋ณด๊ฒ ๋๋ค.
Many-to-Many
โ ๋ค์์ ์ธ์ด๋ฅผ encoder, decoder ๋ชจ๋์ ๋ฃ๊ณ train
์ด ๋ฐฉ๋ฒ์ ๋๋ถ๋ถ์ ์คํ๊ฒฐ๊ณผ๊ฐ ํ๋ฝ์ธ์ด๋ค.
(๋ค๋ง ๋ค์ํ ์ธ์ด์์ ํ๋์ ๋ชจ๋ธ์ ๋ฃ๊ณ ํ๋ จํ ๊ฒ ์น๊ณ ๋ BLEU Score๋ ๊ด์ธํํธ)
Zero-Shot.NMT test
โ ์์ ๋ฐฉ๋ฒ์ผ๋ก train๋ ๋ชจ๋ธ์์ train corpus์ ์๋ ์ธ์ด์์ ๋ฒ์ญ์ฑ๋ฅ์ ํ๊ฐ
(a), (b)
Method Zero-Shot ์ ๋ฌด BLEU (a) PBMT. Bridge X 28.99 (b) NMT. Bridge X 30.91 (c) NMT. POR→SPA X 31.50 (d) ๋ชจ๋ธ1] POR→ENG,ENG→SPA O 21.62 (e) ๋ชจ๋ธ2] ENG↔POR,SPA O 24.75 (f) ๋ชจ๋ธ2 + ์ ์งํ์ต X 31.77
Bridge๋ฐฉ๋ฒ์ ์ค๊ฐ์ธ์ด๋ฅผ ์์ด๋ก ํ์ฌ 2๋จ๊ณ์ ๊ฑธ์ณ ๋ฒ์ญํ๋ค.
๊ตฌ๋ฌธ๊ธฐ๋ฐ๊ธฐ๊ณ๋ฒ์ญ(PBMT: Phrase-Based Machine Translation)๋ฐฉ์์ ํต๊ณ๊ธฐ๋ฐ๊ธฐ๊ณ๋ฒ์ญ(SMT)์ ์ผ์ข ์ด๋ค.
(c)
NMT 'ํฌ๋ฅดํฌ๊ฐ์ด→์คํ์ธ์ด'๋ ๋จ์๋ณ๋ ฌ์ฝํผ์ค๋ฅผ ํ์ฉํด ๊ธฐ์กด ๋ฐฉ๋ฒ๋๋ก ํ๋ จํ baseline์ด๋ค.
๋ฌผ๋ก , zero-shot ํ๋ จ๋ฐฉ์์ผ๋ก๋ ๋์ ์ ์๋ ์์น์ด๋ค.
(d), (e)
๋ชจ๋ธ 1์ POR→ENG,ENG→SPA์ ๋จ์ผ๋ชจ๋ธ์ ํ๋ จํ ๋ฐฉ๋ฒ์ด๊ณ
๋ชจ๋ธ 2๋ ENG↔POR, ENG↔SPA๋ฅผ ๋จ์ผ๋ชจ๋ธ์ ํ๋ จํ ๋ฐฉ๋ฒ์ด๋ค.
(f)
๋ชจ๋ธ2 + ์ ์ง(incremental)ํ์ต๋ฐฉ์์ (c)๋ณด๋ค ์ ์ ์์ corpus๋ก ํ๋ จํ ๊ธฐ์กด ๋ชจ๋ธ์ ์ถ๊ฐ๋ก ๋ชจ๋ธ 2๋ฐฉ์์ผ๋ก ํ๋ จํ ๋ชจ๋ธ์ด๋ค.
๋น๋ก ๋ชจ๋ธ1๊ณผ ๋ชจ๋ธ2๋ ํ๋ จ์ค ํ๋ฒ๋ POR→SPA parallel corpus๋ฅผ ๋ณด์ง ๋ชปํ์ง๋ง, 20์ด ๋๋ BLEU๋ฅผ ๋ณด์ฌ์ค๋ค.
ํ์ง๋ง, ๋ฌผ๋ก (a), (b)๋ณด๋ค๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
๋คํํ๋ (f)์ ๊ฒฝ์ฐ, (c)๋ณด๋ค ํฐ ์ฐจ์ด๋ ์๋๋ ์ฑ๋ฅ์ด ๋ฐ์ด๋จ์ ํ์ธํ ์ ์๋ค.
∴ parallel corpus์ ์์ด ์ผ๋ง๋์ง์๋ ์ธ์ด์์ ๋ฒ์ญ๊ธฐ ํ๋ จ ์, ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆด ์ ์๋ค.
(ํนํ ํ๊ตญ์ด-์ผ์ด, ์คํ์ธ์ด-ํฌ๋ฅดํฌ๊ฐ์ด ์ ๊ฐ์ด ๋งค์ฐ ๋น์ทํ ์ธ์ด์์ ๊ฐ์ src, tgt์ธ์ด๋ก ์ฌ์ฉ ์ ๊ทธ ํจ๊ณผ๊ฐ ์ฆํญ๋๋ค.)
2. Mono-Lingual Corpus
NMTํ๋ จ์ ์ํด ๋ค๋์ parallel corpus๊ฐ ํ์ํ๋ค.
๋ณดํต ์๋ฒฝํ์ง๋ ์์ง๋ง ๋๋ฆ ์ฌ์ฉํ ๋งํ ๋ฒ์ญ๊ธฐ๊ฐ ๋์ค๋ ค๋ฉด ์ต์ 300๋ง ๋ฌธ์ฅ ์์ด์์ด ํ์ํ๋ค.
ํ์ง๋ง, ์ธํฐ๋ท์์ monolingual corpus๋ ๋ง์ง๋ง multilingual corpus๋ฅผ ๋๋์ผ๋ก ์ป๊ธฐ๋ ๋งค์ฐ ํ๋ ์ผ์ด๋ค.
๋ํ, ๋จ์ผ ์ธ์ด corpus๊ฐ ์์ด ๋์ฑ ๋ง๊ธฐ์ ์ค์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ธ์ด์ ํ๋ฅ ๋ถํฌ์ ๊ฐ๊น์ธ ์ ์๊ณ
๋ฐ๋ผ์ ๋ ๋์ LM์ ํ์ตํ๊ธฐ์ monolingual corpus๊ฐ ํจ์ฌ ์ ๋ฆฌํ๋ค.
์ด๋ฒ Section์๋ ์ ๋ ดํ monolingual corpus๋ฅผ ํ์ฉํด NMT์ฑ๋ฅ์ ์ฅ์ด์ง๋ณด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
2.1 LM Ensemble
์์ ๋ฐฉ๋ฒ์ ๋ฅ๋ฌ๋์ ๊ฑฐ๋, Yoshua Bengio๊ต์๋๊ป์ ์ ์ํ์ ๋ฐฉ๋ฒ์ด๋ค.
์ฌ๊ธฐ์ LM์ ๋ช ์์ ์ผ๋ก ์์๋ธํ์ฌ Decoder์ฑ๋ฅ์ ์ฌ๋ฆฌ๊ณ ์ ํ๋ค.
[Shallow Fusion ๋ฐฉ๋ฒ]
โ 2๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
[Deep Fusion ๋ฐฉ๋ฒ]
โ LM์ seq2seq์ ํฌํจ์์ผ end2endํ์ต์ ํตํด ํ๋์ ๋ชจ๋ธ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ
์์ ๋ ๋ฐฉ์์์ Deep Fusion๋ฐฉ๋ฒ์ด ๋ ๋์ ์ฑ๋ฅ์ ๋ํ๋๋ค.
๋ ๋ฐฉ์ ๋ชจ๋ monolingual corpus๋ฅผ ํ์ฉํด LM์ ํ์ต,
์ค์ ๋ฒ์ญ๊ธฐ ํ๋ จ ์ ์ ๊ฒฝ๋ง์ ํ๋ผ๋ฏธํฐ๊ฐ์ ๊ณ ์ ํ ์ฑ๋ก seq2seq๋ชจ๋ธ์ ํ์ต์ํจ๋ค.
์๋ ํ๋ 'ํฐํค์ด→์์ด' NMT ์ฑ๋ฅ์ ๊ฐ ๋ฐฉ๋ฒ์ ์ ์ฉํด ์คํํ ๊ฒฐ๊ณผ์ด๋ค.
๋ค์ ๋์ฌ back-translation์ด๋ copied-translation๋ค ๋ณด๋ค ์ฑ๋ฅ์ ์ธก๋ฉด์์ ์ด๋์ด ์ ๋ค.
ํ์ง๋ง ์์งํ ๋จ์ผ์ธ์ด์ฝํผ์ค๋ฅผ ์ ๋ถ ํ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค.
2.2 Dummy-Sentence ํ์ฉ
์์ ๋ช ์์ ์ผ๋ก LM์ ์์๋ธํ๋ ๋์ Decoder๋ก ํ์ฌ๊ธ ๋จ์ผ์ธ์ด์ฝํผ์ค๋ฅผ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ๋ ผ๋ฌธ์ ์ ์ํ๋ค.[https://arxiv.org/abs/1508.07909, https://arxiv.org/abs/1511.06709]
์ด ๋ฐฉ๋ฒ์ ํต์ฌ์ src๋ฌธ์ฅ์ธ X๋ฅผ ๋น ์ ๋ ฅ์ผ๋ก ๋ฃ์ด์ค์ผ๋ก์จ, ๊ทธ๋ฆฌ๊ณ attention๋ฑ์ ๋ชจ๋ Dropout์ผ๋ก ๋์ด์ค์ผ๋ก์จ Encoder๋ก๋ถํฐ ์ ๋ฌ๋๋ ์ ๋ณด๋ค์ ์์ ๋ ๊ฒ์ด๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด Decoder๊ฐ ๋จ์ผ์ธ์ด์ฝํผ์ค๋ฅผ ํ์ฉํด LMํ์ตํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
2.3 Back-Translation
ํํธ, ์์ ๋ ผ๋ฌธ๋ค์์ ์ข ๋ ๋ฐ์ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ํจ๊ป ์ ์๋์๋ค.
๊ธฐ์กด์ ํ๋ จ๋ ์ญ๋ฐฉํฅ๋ฒ์ญ๊ธฐ(Back-Translation)๋ฅผ ์ฌ์ฉํด mono-lingual corpus๋ฅผ ๊ธฐ๊ณ๋ฒ์ญ ํ ํฉ์ฑ๋ณ๋ ฌ์ฝํผ์ค(synthetic parallel corpus)๋ฅผ ๋ง๋ ํ, ์ด๋ฅผ ๊ธฐ์กด ์๋ฐฉํฅ๋ณ๋ ฌ์ฝํผ์ค์ ์ถ๊ฐํด ํ๋ จ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
โ๏ธ์ค์ํ ์ ์ NMT๋ก ๋ง๋ค์ด์ง ํฉ์ฑ๋ณ๋ ฌ์ฝํผ์ค ์ฌ์ฉ ์, Back-Translation์ ํ๋ จ์ ์ฌ์ฉํ๋ค๋ ์ ์ด๋ค.
์ฌ์ค, ๋ฒ์ญ๊ธฐ๋ฅผ ๋ง๋ค๋ฉด ํ๋์ parallel corpus๋ก 2๊ฐ์ NMT๋ชจ๋ธ์ ๋ง๋ค ์ ์๋ค.
๋ฐ๋ผ์ ์ด๋ ๊ฒ ๋์์ ์ป์ด์ง๋ 2๊ฐ์ ๋ชจ๋ธ์ ํ์ฉํด ์๋ก ๋ณด์์ ํตํด ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฆ, Back Translation์ ๋ฐ๋๋ฐฉํฅ์ ๋ฒ์ญ๊ธฐ๋ฅผ ํตํด ์ป์ด์ง๋ ํฉ์ฑ๋ณ๋ ฌ์ฝํผ์ค๋ฅผ target์ ๊ฒฝ๋ง์ ๋ฃ๋๋ค.
์๋ฅผ๋ค์ด, KOR๋จ์ผ์ฝํผ์ค๊ฐ ์์ ๋, ์๋ ๊ณผ์ ์ ๋ฐ๋ฅธ๋ค.
โ ๊ธฐ์กด์ ํ๋ จ๋ ํ→์ ๋ฒ์ญ๊ธฐ์ ๊ธฐ๊ณ๋ฒ์ญ์ ์ํด
โ ํ์ ํฉ์ฑ ๋ณ๋ ฌ์ฝํผ์ค๋ฅผ ์์ฑ
โ ์ด๋ฅผ ๊ธฐ์กด์ ์์งํ ํ์ ๋ณ๋ ฌ์ฝํผ์ค์ ํฉ์น๋ค.
โ ์ด๋ฅผ ์→ํ ๋ฒ์ญ๊ธฐ๋ฅผ ํ๋ จ์ํค๋ ๋ฐ ์ฌ์ฉํ๋ค.
๋ค๋ง, ์ง๋์น๊ฒ ๋ง์ ํฉ์ฑ ๋ณ๋ ฌ ์ฝํผ์ค์ ์์ฑ์ ์ฌ์ฉํ๋ฉด,
์ฃผ๊ฐ์ ๋ ํ์์ด ๋ ์ ์์ด ๊ทธ ์์ ์ ํํด ํ๋ จ์ ์ฌ์ฉํด์ผํ๋ค.
cf) ์ถ๊ฐ์ ์ธ ์ค๋ช (https://chan4im.tistory.com/205)
2.4 Copied Translation
์ด ๋ฐฉ์์ Sennrich๊ต์๋์ด ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์์ ์ค๋ช ํ ๊ธฐ์กด์ Dummy๋ฌธ์ฅ์ ํ์ฉํ ๋ฐฉ์์์ ์ข ๋ ๋ฐ์ ํ ๋ฐฉ์์ด๋ค.
๊ธฐ์กด์ Dummy๋ฐฉ๋ฒ๋์ , src์ tgt์ชฝ์ ๊ฐ์ data๋ฅผ ๋ฃ์ด ํ๋ จ์ํจ๋ค.
โ๊ธฐ์กด์ Dummy๋ฌธ์ฅ์ Encoder์ ๋ฃ๋ ๋ฐฉ์์ Encoder์์ Decoder๋ก ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ํ๋ จ ์, DropOut์ด ํ์
โ์ด ๋ฐฉ์์ ๊ทธ๋ด ํ์๊ฐ ์์ง๋ง, src์ธ์ด์ vocabulary์ tgt์ธ์ด์ ์ดํ๊ฐ ํฌํจ๋๋ ๋ถํ์ํจ์ ๊ฐ์ํ๊ธด ํด์ผํ๋ค.
๋ฐ๋ผ์ ๋ณดํต Back-Translation๋ฐฉ์๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
Method TUR→ENG ENG→TUR Back-Translation 19.7 14.7 Back Translation + Copied 19.7 15.6
Conclusion
์์ ๊ฐ์ด ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค์ด ์ ์๋์๋ค.
๋ค๋ง, ์๊ฐ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค ์ค, ๊ตฌํ์ ์ฉ์ด์ฑ ๋ฐ ํจ์จ์ฑ์ผ๋ก ์ธํด ์๋ 2๊ฐ์ง๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ค.
โ Back Translation
โ Copied Translation
์์ ๋ ๋ฐฉ๋ฒ๋ค์ ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๊ฐ๋จํ๋ฉด์ ํจ๊ณผ์ ์ธ ์ฑ๋ฅํฅ์์ ์ป์ ์ ์๋ค.
3. Transformer (Attention is all you need)
์ ๋ชฉ์์๋ถํฐ ์ ์ ์๋ฏ, ๊ธฐ์กด์ attention์ฐ์ฐ๋ง์ ํ์ฉํด seq2seq๋ฅผ ๊ตฌํ, ์ฑ๋ฅ๊ณผ ์๋ ๋ ๋ค ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ์ก์๋๋ค.
๊ฐ์ด๋ณด๋ฉด ์ข์ ๋ด์ฉ(https://chan4im.tistory.com/162)
3.1 Architecture
Transformer๋ ์ค์ง attention๋ง์ ์ฌ์ฉํด Encoding๊ณผ Decoding์ ์ ๋ถ ์ํํ๋ค.
์ด๋, Skip-Connection์ ํ์ฉํด ์ ๊ฒฝ๋ง์ ๊น๊ฒ ์๋๋ก ๋์์ค๋ค.
Transformer์ Encoder์ Decoder๋ฅผ ์ด๋ฃจ๋ Sub-Module์ ํฌ๊ฒ ๋ค์ 3๊ฐ์ง๋ก ๋๋๋ค.
โ Self-Attention: ์ด์ ์ธต์ ์ถ๋ ฅ์ ๋ํด attention์ฐ์ฐ์ ์ํ
โ Attention: ๊ธฐ์กด seq2seq์ ๊ฐ์ด encoder์ ๊ฒฐ๊ณผ์ ๋ํด attention์ฐ์ฐ์ ์ํ
โ Feed-Forward: attention์ธต์ ๊ฑฐ์ณ ์ป์ ๊ฒฐ๊ณผ๋ฌผ์ ์ต์ข ์ ์ผ๋ก ์ ๋ฆฌ
Position Embedding
๊ธฐ์กด RNN์ ์์ฐจ์ ์ผ๋ก ๋ฐ์ ์๋์ผ๋ก ์์์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ค.
ํ์ง๋ง Transformer๋ RNN์ ์ฌ์ฉํ์ง ์๋๋ค.
๋ฐ๋ผ์, ์์์ ๋ณด๋ฅผ ๋จ์ด์ ํจ๊ป ์ ๊ณตํด์ผ ๋๋ค. (๊ฐ์ ๋จ์ด๋ผ๋ ์์น์ ๋ฐ๋ผ ์ฐ์์, ์ญํ ์ด ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ.)
๊ฒฐ๊ณผ์ ์ผ๋ก ์์น์ ๋ณด๋ฅผ Positional Embedding์ด๋ผ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ํ๋ธ๋ค.
[Positional Embedding ์ผ๋ฐ์]
Positional Embedding ๊ฒฐ๊ณผ๊ฐ์ ์ฐจ์ = word embedding vector ์ฐจ์
∴ Positional Embeddingํ๋ ฌ + ๋ฌธ์ฅ์๋ฒ ๋ฉํ๋ ฌ → Encoder, Decoder์ ์ ๋ ฅ.
cf) ๋ฌธ์ฅ ์๋ฒ ๋ฉํ๋ ฌ = ๋จ์ด์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ํฉ์น ํ๋ ฌ
Attention
[MHA]
Transformer๋ ์ฌ๋ฌ๊ฐ์ Attention์ผ๋ก ๊ตฌ์ฑ๋ Multi-Head Attention(MHA)๋ฐฉ์์ ์ ์ํ๋ค.
๋ง์น CNN์์ ์ฌ๋ฌ kernel์ด ๋ค์ํ feature๋ฅผ ์ถ์ถํ๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฆฌ๋ผ ๋ณผ ์ ์๋ค.
์ด์ ์๊ฐ, Q๋ฅผ ์์ฑํ๊ธฐ ์ํ linear transformation์ ๋ฐฐ์ฐ๋ ๊ณผ์ ์ด๋ผ ์๊ฐํ๋ค.
์ด๋, ๋ค์ํ Q๋ฅผ ์์ฑํด ๋ค์ํ ์ ๋ณด๋ค์ ์ถ์ถํ๋ค๋ฉด, ๋์ฑ ์ ์ฉํ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ Multi-Head๋ก ์ฌ๋ฌ attention์ ๋์์ ์ํํ๋ค.
Q,K,V๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ ๊ธฐ๋ณธ์ ์ธ Attention ์์์ ๋ค์๊ณผ ๊ฐ๋ค.
์์ Attentionํจ์๋ฅผ ํ์ฉํ MHA ์์์ ๋ค์๊ณผ ๊ฐ๋ค.
โ Self-Attention์ ๊ฒฝ์ฐ, Q,K,V ๋ชจ๋ ๊ฐ์๊ฐ์ผ๋ก์จ ์ด์ ์ธต์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์จ๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ Attention์ ๊ฒฝ์ฐ, Q๋ ์ด์ ์ธต์ ๊ฒฐ๊ณผ์ด๊ณ
K, V๋ encoder์ ๋ง์ง๋ง ์ธต ๊ฒฐ๊ณผ๊ฐ ๋๋ค.
์ด๋, Q,K,V์ tensor_size๋ ๋ค์๊ณผ ๊ฐ๋ค. (์ด๋, n = src_length, m = tgt_length)
โ |Q| = (batch_size, n, hidden_size)
โ |K| = |V| = (batch_size, m, hidden_size)
๋ํ, MHA์ ์ ๊ฒฝ๋ง ๊ฐ์ค์น WiQ, WiK, WiV, WO์ ํฌ๊ธฐ๋ ์๋์ ๊ฐ๋ค.
โ |WiQ|=|WiK|=|WiV| = (hidden_size, head_size)
โ |WO| = (hidden_size×h , hidden_size)
์ด๋, hidden_size=head_size×h์ด๋ฉฐ ๋ณดํต 512๊ฐ์ ๊ฐ๋๋ค.
transformer์์๋ tgt_sentence์ ๋ชจ๋ time-step์ encoder๋ ๋์ tensor์ ๋ชจ๋ time-step์ ๋ํด ํ๋ฒ์ attention์ ์ํํ๋ค.
์ด์ ์ฅ์ attention๊ฒฐ๊ณผ, tensor์ ํฌ๊ธฐ๋ (batch_size, 1, hidden_size)์์ง๋ง
MHA์ ๊ฒฐ๊ณผ tensor์ ํฌ๊ธฐ๋ (batch_size, m, hidden_size)๊ฐ ๋๋ค.
Self-Attention๋ K,V๊ฐ Q์ ๊ฐ์ tensor์ผ ๋ฟ, ์๋ฆฌ๋ ๊ฐ๊ธฐ์ m=n์ด๋ค.
Decoder์ Self-attention
Decoder์์ Self-Attention์ Encoder์ ๊ฒฐ์ด ์ด์ง ๋ฌ๋ฆฌํ๋๋ฐ, ์ด์ ์ธต์ ์ถ๋ ฅ๊ฐ์ผ๋ก Q,K,V๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ ๊ฐ์ง๋ง ์ฝ๊ฐ์ ์ ์ฝ์ด ๊ฐ๋ฏธ๋๋ค. ์๋ํ๋ฉด inference time์์ ๋ค์ time-step์ ์ ๋ ฅ๊ฐ์ ๋น์ฐํ ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ train์์๋ ์ด์ ์ธต์ ๊ฒฐ๊ณผ๊ฐ์ K์ V๋ก ํ์ฉํ๋ self-attention์ ์ํํ๋๋ผ๋ ๋ฏธ๋์ time-step์ ์ ๊ทผํ ์ ์๋๋ก ๋๊ฐ์ด ๊ตฌํํด์ค ํ์๊ฐ ์๋ค. ์ด๋ฅผ ์ํด attention์ฐ์ฐ ์, masking์ ์ถ๊ฐํด์ค์ผํ๋ค.
์ด๋ฅผ ํตํด ๋ฏธ๋์ time-step์ ๋ํด attention_weight๋ฅผ ๊ฐ์ง ์ ์๊ฒ ํ๋ค.
[Attention์ ์ํ Mask์์ฑ ๋ฐฉ๋ฒ]
mini-batch๋ด๋ถ์ ๋ฌธ์ฅ๋ค์ ๊ธธ์ด๊ฐ ์๋ก ๋ค๋ฅผ ์ ์๋๋ฐ, masking์ ํตํด ์ ํ์ ์ผ๋ก attention์ํ์ด ๊ฐ๋ฅํ๋ค.
mini-batch์ ํฌ๊ธฐ๋ mini-batch ๋ด๋ถ์ ๊ฐ์ฅ ๊ธด ๋ฌธ์ฅ์ ๊ธธ์ด(max_length)์ ์ํด ๊ฒฐ์ ๋๋ค.
๊ธธ์ด๊ฐ ์งง์ ๋ฌธ์ฅ๋ค์ ๋ฌธ์ฅ์ ์ข ๋ฃ ํ์ padding์ผ๋ก ์ฑ์์ง๋ค.
๋ฐ๋ผ์ ํด๋น mini-batch๊ฐ encoder๋ฅผ ํต๊ณผํ๊ณ decoder์์ attention์ฐ์ฐ์ ์ํ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
padding์ด ์กด์ฌํ๋ time-step์๋ attention๊ฐ์ค์น๊ฐ ๋์ด๊ฐ Decoder์ ์ธ๋ฐ์๋ ์ ๋ณด๋ฅผ ๋๊ฒจ์ค ์ ์๋ค.
๋ฐ๋ผ์ ํด๋น time-step์ attention๊ฐ์ค์น๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ๋ค์ 0์ผ๋ก ๋ง๋ค์ด์ค์ผ ํ๋ค.
Feed Forward. &. Skip-Connection
โ FFN์ attention๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํ๋ฉฐ
โ attention๋ธ๋ก์ ์ถ๋ ฅ๊ฐ์ attention๋ธ๋ก์ ์ ๋ ฅ๊ฐ์ ๋ํด skip-connection์ ๊ตฌํํด์ค๋ค.
3.2 Pytorch์ MHAํด๋์ค
Attention์ ์ง์ ๊ตฌํํ ํ์์์ด pytorch์์ ์ ๊ณตํ๋ attentionํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ ์ ์๋ค.
(https://pytorch.org/docs/stable/nn.html#multiheadattention)
๋ค๋ง ์ด attentionํด๋์ค๋ ์ด์ (https://chan4im.tistory.com/201#n4)์ ์๊ฐํ ๊ธฐ๋ณธattention์ด ์๋, transformer์ ์ฌ์ฉ๋ attention์ด๋ผ๋ ์ ๋ง ์ฃผ์ํ์.
3.3 ํ๊ฐ
Google์ transformer๊ฐ ๊ธฐ์กด ์ฌํ ์๊ณ ๋ฆฌ์ฆ๋ค๋ณด๋ค ํจ์ฌ ์ข์ ์ฑ๋ฅ์ ๋ฌ์ฑํ์์ ๋ฐํ๋๋ฐ, ๊ธฐ์กด RNN ๋ฐ meta(facebook)์ ConvS2S(Convolutional Sequence to Sequence)๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ์๋๋ก ํ๋ จํ์์ ๋ฐํ๋ค(FLOPs).
Models BLEU(ENG→GER) FLOPs(ํ๋ จ๋น์ฉ) BLEU(ENG→FRA) FLOPs(ํ๋ จ๋น์ฉ) GNMT + RL 24.6 2.3 × 1019 39.92 1.4 × 1020 ConvS2S 25.16 9.6 × 1018 40.46 1.5 × 1020 Transformer 27.3 3.3 × 1018 38.1 3.3 × 1018 Transformer(Big) 28.4 2.3 × 1018 41.8 2.3 × 1019
์ด๋ฐ ์๋์ ๊ฐ์ ์ ์์ธ ์ค ํ๋๋ก transformer๊ตฌ์กฐ์ ํจ๊ป input feeding์ ์ ๊ฑฐ 2๊ฐ์ง ์์ธ์ด ๊ธฐ์ธํ๋ค ๋ณด๋ ์๊ฐ์ด ๋ง์๋ฐ, ๊ธฐ์กด RNN ๊ธฐ๋ฐ seq2seq๋ฐฉ์์ input feeding์ด ๋์ ๋๋ฉด์ decoderํ๋ จ ์ ๋ชจ๋ time-step์ ํ๋ฒ์ ํ ์ ์๊ฒ ๋์๋ค.
๋ฐ๋ผ์ FLOPs ๋๋ถ๋ถ์ bottleneck๋ฌธ์ ๊ฐ decoder์์ ๋ฐ์ํ๊ฒ ๋๋ค.
ํ์ง๋ง transformer์ ๊ฒฝ์ฐ, input feeding์ด ์๊ธฐ์ ํ๋ จ ์ ํ๋ฒ์ ๋ชจ๋ time-step์ ๋ํ ๋ณ๋ ฌ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
Conclusion
transformer์ ํ์ ์ ์ธ ๊ตฌ์กฐ์ ์ฐจ์ด๋ seq2seq๋ฅผ ํ์ฉํ NMT ๋ฐ ์์ฐ์ด ์์ฑ์๋ ์ฌ์ฉ๋์๋ค.
๋ํ, BERT์ ๊ฐ์ ์์ฐ์ด์ดํด์ ๋ฒ์ฃผ๋ก๊น์ง ํญ๋๊ฒ ์ฌ์ฉ๋๊ณ ์๋ค.
๋ง์น๋ฉฐ...
์ด๋ฒ์๊ฐ์๋ NMT์ ์ฑ๋ฅ์ ๋ ํฅ์์ํค๋ ๋ฐฉ๋ฒ๋ค์ ๋ค๋ฃจ์๋ค.
์ ๊ฒฝ๋ง์ data๊ฐ ๋ง์์ง์๋ก ๊ทธ ์ฑ๋ฅ์ด ํฅ์๋๋๋ฐ, ๋ฒ์ญ๊ณผ ๊ฐ์ seq2seq๋ฅผ ํ์ฉํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋, train data์ธ parallel corpus๊ฐ ๋ง์์๋ก ์ข๋ค.
๋ค๋ง, parallel corpus๋ ๋งค์ฐ ์์ง์ด ์ด๋ ต๊ณ ์ ํ์ ์ด๋ค. (๋ณดํต ์๋ฒฝํ์ง๋ ์์ง๋ง ๋๋ฆ ์ฌ์ฉํ ๋งํ ๋ฒ์ญ๊ธฐ๊ฐ ๋์ค๋ ค๋ฉด ์ต์ 300๋ง ์ด์์ ๋ฌธ์ฅ ์์ด ํ์)
๋ฐ๋ผ์ zero-shot learning์ ์ฌ์ฉํ๋ค.
zero-shot learning์ ๋ชจ๋ธ์ด train data์ ์ง์ ๋ ธ์ถ๋์ง ์์ ํด๋์ค๋ฅผ ์ธ์ํ๊ณ ๋ถ๋ฅํ ์ ์๋ ๋ฅ๋ ฅ์ผ๋ก parallel corpus์ ์์ด ์ผ๋ง๋์ง์๋ ์ธ์ด์์ ๋ฒ์ญ๊ธฐ ํ๋ จ ์, ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆด ์ ์๋ค.
(ํนํ ํ๊ตญ์ด-์ผ์ด, ์คํ์ธ์ด-ํฌ๋ฅดํฌ๊ฐ์ด ์ ๊ฐ์ด ๋งค์ฐ ๋น์ทํ ์ธ์ด์์ ๊ฐ์ src, tgt์ธ์ด๋ก ์ฌ์ฉ ์ ๊ทธ ํจ๊ณผ๊ฐ ์ฆํญ๋๋ค.)
์ด๋ฐ ์ ํ์ ์ธ ์ํฉ์ ๋ํด ๋จ์ผ์ธ์ด(monolingual corpus)๋ฅผ ํ์ฉํด NMT ์ฑ๋ฅ์ ํฅ์ํ๋ ๋ฐฉ๋ฒ ๋ํ ๋ค๋ค๋ณด์๋ค.
๋ค์์ ๋จ์ผ์ธ์ด์ฝํผ์ค๋ฅผ ํ์ฉํ ์ฑ๋ฅํฅ์์ ๋ํด์๋ ์ค์ ์ ์ผ๋ก ๋ค๋ฃฐ ๊ฒ์ด๋ค.
๋ํ transformer๋ผ๋ ๋ชจ๋ธ๊ตฌ์กฐ๋ก ์ธํด seq2seq๊ฐ ๋์ฑ ๋ค์ํ๊ฒ ๊ตฌํ๋ ์ ์์๋ค.
ํนํ transformer๋ attention๋ง์ผ๋ก seq2seq๋ฅผ ๊ตฌํํ์๊ธฐ์ ์๋์ ์ฑ๋ฅ ๋ ๋ค ์ก์๋๋ค.