๐Ÿ“Œ ๋ชฉ์ฐจ

1. Transfer Learning์ด๋ž€?
2. ๊ธฐ์กด pre-train ๋ฐฉ์‹

3. ELMo
4. BERT.  &.  Metric
5. GPT-2

๐Ÿ˜š ๊ธ€์„ ๋งˆ์น˜๋ฉฐ...

 

 

 


1. Transfer Learning

1.1 ์ „์ดํ•™์Šต(Transfer Learning)
โˆ™์ „์ดํ•™์Šต: ์‹ ๊ฒฝ๋ง์˜ ์ผ๋ถ€or์ „์ฒด๋ฅผ MLE๋ฅผ ํ†ตํ•ด trainํ•˜๊ธฐ ์ „, ๋‹ค๋ฅธ dataset์ด๋‚˜ ๋ชฉ์ ํ•จ์ˆ˜๋กœ ๋ฏธ๋ฆฌ ํ›ˆ๋ จํ•œ ํ›„, ๋ณธ๊ฒฉ์ ์ธ ํ•™์Šต์—์„œ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ฏธ ์˜ˆ์ „๋ถ€ํ„ฐ Vision๋ถ„์•ผ์—์„œ๋Š” ImageNet๊ฐ™์€ weight๊ฐ’์„ ๋‹ค๋ฅธ ๋ฌธ์ œ์— ์ „์ดํ•™์Šต์„ ์ ์šฉํ•˜๋Š” ์ ‘๊ทผ๋ฐฉ์‹์ด ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ NLP์—์„œ ์—ฌ๋Ÿฌ ์ „์ดํ•™์Šต ๋ฐฉ๋ฒ•๋“ค์ด ์ œ์‹œ๋˜๋ฉด์„œ ์ ์ฐจ ์ฃผ๋ฅ˜๋กœ ์žก์•„๊ฐ€๊ณ  ์žˆ๋‹ค.

๋” ๋„“์€ ๋ฒ”์œ„์˜ ๋ชฉ์ (objective)์„ ๊ฐ–๋Š” Unsupervised Learning๋ฌธ์ œ์˜ Global-minima๋Š”
๋” ์ž‘์€ ๋ฒ”์œ„์˜ ๋ชฉ์ ์„ ๊ฐ–๋Š” Supervised Learning์˜ Global-minima๋ฅผ ํฌํ•จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
๋”ฐ๋ผ์„œ ๋น„์ง€๋„ํ•™์Šต์„ ํ†ตํ•ด local-minima๋ฅผ ์ฐพ์œผ๋ฉด,
์ง€๋„ํ•™์Šต์—์„œ ๋” ๋‚ฎ์€ ์ง€์ ์˜ local-minima์— ๋„๋‹ฌ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

์ฆ‰, random ์ดˆ๊ธฐ๊ฐ’์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ dataset์˜ noise๋กœ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์ง€๋งŒ
pretrained_weight์—์„œ ์ตœ์ ํ™”๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์•ž์„  ๋ฌธ์ œ๋ฅผ ๋‹ค์†Œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ์ข€ ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 


2. ๊ธฐ์กด Pre-train ๋ฐฉ์‹

2.1 pretrain๋œ ๊ฐ€์ค‘์น˜๋กœ ์‚ฌ์šฉ.
word2vec์˜ ๋“ฑ์žฅ ์ดํ›„, ๊พธ์ค€ํžˆ pretrained word embedding์„ ์‚ฌ์šฉํ•ด DNN๊ฐœ์„ ์„ ํ•˜๋ ค ํ–ˆ์ง€๋งŒ, ์ด๋Š” ์ƒ๊ฐ๋ณด๋‹ค ํฐ ํšจ๊ณผ๋ฅผ ๊ฑฐ๋‘˜ ์ˆ˜ ์—†์—ˆ๊ธฐ์— pretrained word embedding๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•์„ transfer learning์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋จผ์ € ์•Œ์•„๋ณด์ž.

์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ RNN์„ ์‚ฌ์šฉํ•œ ๊ฐ„๋‹จํ•œ text classification์‹ ๊ฒฝ๋ง์„ ๊ฐ€์ •ํ•ด๋ณด์ž.
์•ž์„œ text classification๊ด€๋ จ ๋‚ด์šฉ์—์„œ ๋‹ค๋ค˜๋“ฏ์ด ์‹ ๊ฒฝ๋ง์€ Softmax์ธต๊ณผ RNN์ธต๋“ค, embedding์ธต์œผ๋กœ ์ด๋ค„์ ธ์žˆ๋‹ค.
One-Hot encoding vector๋“ค์„ ๋ฌธ์žฅ ๋‚ด ๋‹จ์–ด ๋Œ€์‹  ์ž…๋ ฅ x๋กœ ๋„ฃ๊ณ , ์‹ ๊ฒฝ๋ง fθ๋ฅผ ํ†ต๊ณผ์‹œ์ผœ ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ถ„ํฌ y_hat์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค.
์ด์ „์— ๋‹ค๋ฃจ์—ˆ๋“ฏ, One-Hot vector์˜ ํŠน์ง•์œผ๋กœ์ธํ•ด 1 ์œ„์น˜์˜ ๊ฐ’๋งŒ ์‚ด์•„๋‚จ์„ ๊ฒƒ์ด๋‹ค.
∴ embedding์ธต์˜ ๊ฐ€์ค‘์น˜ํŒŒ๋ผ๋ฏธํ„ฐ W์˜ ๊ฐ ํ–‰(row) = ํ•ด๋‹น ๋‹จ์–ด์˜ embedding vector

 

์‹ ๊ฒฝ๋ง ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
โˆ™ ๊ฐ word embedding vector → pretrained word embedding vector๋กœ ์น˜ํ™˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ดํ›„ ํ•ด๋‹น embedding์ธต์˜ ๊ฐ€์ค‘์น˜๊ฐ’๊ณผ ๊ธฐํƒ€ ์‹ ๊ฒฝ๋ง์˜ random์ดˆ๊ธฐํ™” ๊ฐ€์ค‘์น˜๊ฐ’์— ๋Œ€ํ•ด BP์™€ ์ตœ์ ํ™” ๋“ฑ์„ ํ†ตํ•ด ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.


โˆ™ ์ด๋•Œ, ๊ฐ ๋‹จ์–ด์— ํ•ด๋‹นํ•˜๋Š” word embedding vector๋Š” ์œ„์˜ ๊ทธ๋ฆผ์—์„œ์ฒ˜๋Ÿผ embedding์ธต์˜ ๊ฐ€์ค‘์น˜์˜ ํ•ด๋‹น ํ–‰(row)์„ ๋Œ€์ฒดํ•˜์—ฌ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ ๊ฒฝ๋ง ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๊ณ ์ •
์ด ๋ฐฉ๋ฒ•์€ embedding์ธต์˜ ๊ฐ€์ค‘์น˜๋Š” ์ตœ์ ํ™”๋Œ€์ƒ์—์„œ ์ œ์™ธ๋œ๋‹ค.
embedding์ธต์„ ์ œ์™ธํ•œ ์‹ ๊ฒฝ๋ง์˜ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜๋“ค๋งŒ ํ•™์Šตํ•˜๊ฒŒ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด optimizer๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
# ๊ธฐ์กด
optimizer = optim.Adam(model.parameters())

# embedding์ธต ์ œ์™ธ ๋‚˜๋จธ์ง€ param ํ•™์Šต
optimizer = optim.Adam(model.softmax_layer.parameters() + model.rnn.parameters())


๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 0๋ฒˆ dataset์„ ํ†ตํ•ด pretrained word embedding vector๋ฅผ embedding์ธต์— ์ ์šฉํ–ˆ์œผ๋‚˜, ์ดํ›„ ํ›ˆ๋ จ์—์„œ embedding์ธต์„ ์ œ์™ธํ•œ ๋นจ๊ฐ„์ ์„ ์•ˆ์ชฝ๋ถ€๋ถ„์˜ ์‹ ๊ฒฝ๋ง๋งŒ MLE๋ฅผ ํ†ตํ•ด update๊ฐ€ ๋œ๋‹ค.
์‹ ๊ฒฝ๋ง ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ .&. Slow training
๋งˆ์ง€๋ง‰์œผ๋กœ embedding์ธต์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ตœ์ ํ™”์—์„œ ์ œ์™ธํ•˜๋Š” ๋Œ€์‹ , ์ฒœ์ฒœํžˆ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
๋‹ค๋งŒ ์ด๋•Œ, ๋˜๋‹ค๋ฅธ Learning Rate๊ฐ€ hyper-parameter๋กœ ์ถ”๊ฐ€๋œ๋‹ค.
optimizer = optim.Adam(model.softmax_layer.parameters() + model.rnn.parameters())
optimizer_emb = optim.Adam(model.emb_layer.parameters(), lr=1e-6)


์ด์ „ ๋ฐฉ๋ฒ•๋“ค์ฒ˜๋Ÿผ embedding์ธต์„ ์ดˆ๊ธฐํ™”ํ–ˆ์œผ๋‚˜, ์ด๋ฒˆ์—๋Š” 2๊ฐœ์˜ ๋‹ค๋ฅธ ํ•™์Šต๋ฅ ์„ ์‚ฌ์šฉ, embedding์ธต์€ ๋นจ๊ฐ„ ์ ์„ ๋ถ€๋ถ„๊ณผ ๋‹ฌ๋ฆฌ ์ฒœ์ฒœํžˆ update๋˜๊ฒŒ ํ•œ๋‹ค.

 

 

2.2 pretrain๋œ word embedding vector๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 
๋‹ค๋งŒ ์ด์ „์— ๋งํ–ˆ๋“ฏ, ์ด๋Ÿฐ ๋ฐฉ์‹์˜ ์ „์ดํ•™์Šต์€ ๊ทธ๋‹ค์ง€ ํฐ ํšจ๊ณผ๋ฅผ ๊ฑฐ๋‘˜ ์ˆ˜ ์—†๋‹ค.
[๋ฌธ๋งฅ๋ฐ˜์˜๋ชปํ•˜๋Š” ๊ธฐ์กด word embedding ์•Œ๊ณ ๋ฆฌ์ฆ˜]
word2vec์˜ Skip-Gram์ด๋‚˜ GloVe๋Š” ์„ฑ๊ณต์ ์œผ๋กœ ๋‹จ์–ด๋ฅผ latent space์— embeddingํ–ˆ์ง€๋งŒ, ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋ฌธ์žฅ์— ํ•จ๊ป˜ ์ถœํ˜„ํ•œ ๋‹จ์–ด๋“ค(co-occurence words)์„ ์˜ˆ์ธกํ•˜๋Š”๋ฐ ๊ธฐ๋ฐ˜ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ embedding ์ •๋ณด(feature)๊ฐ€ ๋งค์šฐ ํ•œ์ •์ ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๋ฌธ์ œํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋ชฉ์ ํ•จ์ˆ˜์™€ ์œ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ชฉ์ ํ•จ์ˆ˜๋Š” ์ƒ๋‹นํžˆ ์ƒ์ดํ•  ๊ฒƒ์ด๊ณ , ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ๋Š” ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ๊ธฐ์กด word embedding ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ๊ฒฐ๊ณผ๋Š” context๋ฅผ ๊ณ ๋ คํ•œ ๋‹จ์–ด์˜ ์˜๋ฏธ๋ฅผ embeddingํ•˜๊ธฐ์—” ์ง€๋‚˜์น˜๊ฒŒ ๋‹จ์ˆœํ•œ๋ฐ, ๊ฐ™์€ ๋‹จ์–ด๋ผ ํ• ์ง€๋ผ๋„ ๋ฌธ์žฅ์˜ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ๊ทธ ์˜๋ฏธ๊ฐ€ ํ™•์—ฐํžˆ ๋‹ฌ๋ผ์ง„๋‹ค.
๋˜ํ•œ, ๋ฌธ์žฅ ๋‚ด ๋‹จ์–ด์˜ ์œ„์น˜์— ๋”ฐ๋ผ์„œ ์“ฐ์ž„์ƒˆ ๋ฐ ์˜๋ฏธ๋„ ๋‹ฌ๋ผ์ง„๋‹ค.
์ด๋Ÿฐ ์ •๋ณด๋“ค์ด embedding์ธต์˜ ์ƒ์œ„์ธต์—์„œ ์ œ๋Œ€๋กœ ์ถ”์ถœ ๋ฐ ๋ฐ˜์˜๋˜๋”๋ผ๋„ word embedding ์‹œ ๊ณ ๋ ค๋˜์–ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฒƒ์— ๋น„ํ•ด ๋ถˆ๋ฆฌํ•˜๋‹ค.
[์‹ ๊ฒฝ๋ง ์ž…๋ ฅ์ธต์˜ ๊ฐ€์ค‘์น˜์—๋งŒ ์ ์šฉ]
์œ„์˜ ์ ์šฉ๋ฐฉ๋ฒ•์˜ ์„ค๋ช…์—์„œ ๋ณด์•˜๋“ฏ, ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ์กด ์ ์šฉ๋ฐฉ๋ฒ•๋“ค์€ embedding์ธต์— ๊ตญํ•œ๋œ๋‹ค.
embedding์ธต์˜ ๊ฐ€์ค‘์น˜๋งŒ ํ•œ์ •ํ•ด ๋ณธ๋‹ค๋ฉด Global minima์— ๋” ๊ฐ€๊นŒ์šธ์ง€๋ผ๋„, ์‹ ๊ฒฝ๋ง ์ „์ฒด ๊ฐ€์ค‘์น˜๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ์ตœ์ ํ™”์— ์œ ๋ฆฌํ• ์ง€๋Š” ์•Œ ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ "์‹ ๊ฒฝ๋ง ์ „์ฒด์— ๋Œ€ํ•ด ์‚ฌ์ „ํ›ˆ๋ จํ•˜๋Š” ๋ฐฉ๋ฒ•"์„ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ๋” ๋‚ซ๋‹ค.

 

2.3 NLP์—์„œ pretrain์˜ ํšจ๊ณผ
Vision์—์„œ ImageNet์„ ์ด์šฉํ•ด pretrainํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ NLP์—์„œ๋„ ์ˆ˜๋งŽ์€ ๋ฌธ์žฅ์„ ์ˆ˜์ง‘ํ•ด ํ•™์Šตํ•œ ์‹ ๊ฒฝ๋ง์œผ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ์— ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋งˆ๋ จ๋˜์—ˆ๋‹ค.

[NLP๋ถ„์•ผ์—์„œ์˜ Transfer-Learning ๋ถ„๋ฅ˜]
NLP์—์„œ์˜ pretrain์€ ๋‹ค๋ฅธ ๋ถ„์•ผ์˜ pretrain๋ณด๋‹ค ์œ ๋ฆฌํ•œ ์ ์„ ๋ช‡๊ฐ€์ง€ ๊ฐ–๋Š”๋‹ค.
โ‘  ์ผ๋ฐ˜ ๋ฌธ์žฅ๋“ค์— ๋Œ€ํ•ด ๋‹จ์ˆœ LMํ›ˆ๋ จํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋งค์šฐ ํฐ ์ „์ดํ•™์Šต์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅํ–ฅ์ƒ์ด ๊ฐ€๋Šฅ
โ‘ก ํŠนํžˆ, ์ˆ˜์ง‘์— ๋น„์šฉ์ด ๋“ค์–ด๊ฐ€๋Š” parallel corpus, labeled text์™€ ๋‹ฌ๋ฆฌ ์ผ๋ฐ˜์  ๋ฌธ์žฅ๋“ค์˜ ์ˆ˜์ง‘์€ ๋งค์šฐ ์‰ฝ๊ณ  ๊ฐ’์‹ธ๋‹ค.
์ฆ‰, ๊ธฐ์กด dataset์ˆ˜์ง‘์— ๋น„ํ•ด ์ผ๋ฐ˜ corpus์ˆ˜์ง‘์€ ๊ฑฐ์˜ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š๊ธฐ์— ๋งค์šฐ ํฐ ์„ฑ๊ณผ๋ฅผ ์œ„ํ—˜๋ถ€๋‹ด์—†์ด ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 


3.  ELMo 

3.1 ELMo (Embedding from Language Model)
ELMo๋…ผ๋ฌธ์—์„œ๋Š” ์•ž์„œ ์ œ๊ธฐํ•œ ๊ธฐ์กด pretrainํ›ˆ๋ จ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ–ˆ๋‹ค.

โˆ™ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์„ ๋‹จ๋ฐฉํ–ฅ LSTM(Uni-Directional LSTM)์— ๋„ฃ๊ณ , ์ •๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ LM์„ ๊ฐ๊ฐ ํ›ˆ๋ จํ•œ๋‹ค.
์ด๋•Œ, LM์€ AR(์ž๊ธฐํšŒ๊ท€)๋ชจ๋ธ์ด๋‹ค.(= ์–‘๋ฐฉํ–ฅ LSTM์œผ๋กœ ํ›ˆ๋ จ๋ถˆ๊ฐ€)
์ด๋•Œ, LSTM์€ ์—ฌ๋Ÿฌ ์ธต์œผ๋กœ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ฐ ์ธต์ด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ ๋‚ด์˜ token์ˆ˜๋งŒํผ ์ •๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ํ›ˆ๋ จ๋œ๋‹ค.
๊ฐ time-step์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์— ๋”ฐ๋ฅธ ๋‚ด๋ถ€ LSTM์˜ ์ •๋ฐฉํ–ฅ ๋ฐ ์—ญ๋ฐฉํ–ฅ hidden_state

โ—๏ธembedding์ธต๊ณผ softmax์ธต์€ ์ •๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ๊ณต์œ ๋˜๋ฉฐ, ์ด์ „์ธต์˜ ๊ฐ ๋ฐฉํ–ฅ๋ณ„ ์ถœ๋ ฅ๊ฐ’์ด ๊ฐ™์€ ๋ฐฉํ–ฅ์˜ ๋‹ค์Œ ์ธต์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

์ด๋•Œ, ์ •๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ LSTM์€ ๋”ฐ๋กœ ๊ตฌ์„ฑ๋˜์ง€๋งŒ LSTM์˜ ์ž…๋ ฅ์„ ์œ„ํ•œ embedding์ธต๊ณผ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” softmax์ธต์˜ ๊ฒฝ์šฐ, weight_parameter๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด word_embedding_vector๋Š” ๋ฌผ๋ก , LSTM์˜ ์ธต๋ณ„ hidden_state๋ฅผ time-step๋ณ„๋กœ ์–ป์„ ์ˆ˜ ์žˆ๊ณ 
์ด๋“ค์— ๋Œ€ํ•œ ๊ฐ€์ค‘ํ•ฉ์„ ๊ตฌํ•ด ํ•ด๋‹น ๋‹จ์–ด๋‚˜ ํ† ํฐ์— ๋Œ€ํ•œ ๋ฌธ์žฅ ๋‚ด์—์„œ์˜ embedding representation์ธ ELMoktask๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
ELMoktask๋Š” ๊ฐ time-step๋ณ„ L๊ฐœ์˜ LSTM_hidden state๋“ค์„ ๊ฐ€์ค‘์น˜ sjtask์— ๋”ฐ๋ผ ๊ฐ€์ค‘ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.
์ด๋•Œ, j=0์ผ ๋•Œ, ๋‹จ์–ด์˜ embedding vector๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ
j > 0์ผ ๋•Œ, ์ •๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ์˜ LSTM์˜ hidden_state์ธ hj,kLM ; hk,jLM๊ฐ€ ์—ฐ๊ณ„๋˜์–ด ๊ตฌ์„ฑ๋œ๋‹ค.
์ด ELMoktask(= representation)๋“ค์€ ํ’€๊ณ ์žํ•˜๋Š” ๋ฌธ์ œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๊ธฐ์— task๋ผ ํ‘œํ˜„ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์–ป์–ด์ง„ ELMoํ‘œํ˜„์€ ์‹ค์ œ ๋ฌธ์ œ์ˆ˜ํ–‰์„ ์œ„ํ•œ ์‹ ๊ฒฝ๋ง์˜ ์ž…๋ ฅ๋ฒกํ„ฐ์— ์—ฐ๊ณ„๋˜์–ด ์‚ฌ์šฉ๋œ๋‹ค.
์ด๋•Œ, ELMoํ‘œํ˜„์„ ์œ„ํ•œ ์‹ ๊ฒฝ๋ง๊ฐ€์ค‘์น˜ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” update๋˜์ง€ ์•Š๋Š”๋‹ค.


ELMo๋Š” ์ด๋Ÿฐ ๋ฐฉ๋ฒ•๋“ค๋กœ ์ „์ดํ•™์Šต์„ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ SQuAD(Stanford Question Answering Dataset)์™€ ๊ฐ™์€ ๊ณ ๋‚œ๋„ ์ข…ํ•ฉ๋…ํ•ด(Reading Comprehension)๋ฌธ์ œ์—์„œ SRL(Semantic Role Labeling), NER(Named Entity Recognition)๋“ฑ์˜ NLP์ฒ˜๋ฆฌ๋ฌธ์ œ๊นŒ์ง€ ํฐ ์„ฑ๋Šฅ๊ฐœ์„ ์„ ์ด๋ฃฉํ–ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 


4. BERT (Bidirectional Encoder Representations from Transformer)

ELMo์— ์ด์–ด ํ•ด๋‹น๋…„๋„์ธ 2018๋…„ ๋ง์— ์ถœ์‹œ๋œ BERT๋…ผ๋ฌธ์€ ๋งค์šฐ ๋›ฐ์–ด๋‚˜ ํ˜„์žฌ๋„ ๋งŽ์ด ์‚ฌ์šฉ ๋ฐ ์‘์šฉ์ด ๊ฐ€์žฅ ๋งŽ์ด๋˜๋Š” ๋ชจ๋ธ์ด๋‹ค.

 

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unla

arxiv.org

๊ธฐ์กด์˜ ELMo์™€ ๋‹ฌ๋ฆฌ BERT๋Š” Fine-Tuning์„ ํ†ตํ•ด ์ ‘๊ทผํ•œ๋‹ค. ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋ณด์ž๋ฉด,

โˆ™ELMo: pretrained LM์˜ ์ธต๋ณ„ hidden_state๋“ค์„ ๊ฐ€์ค‘ํ•ฉํ•ด ํ•ด๋‹น time-step์˜ embedding vector๋กœ ์‚ฌ์šฉ

  - ์ฆ‰, ELMo + task์ „์šฉ ์‹ ๊ฒฝ๋ง์ด ํ•„์š”ํ–ˆ์—ˆ์Œ

 

โˆ™BERT: ํ›ˆ๋ จ๋œ LM์— ๋‹จ์ˆœํžˆ ์•„์ฃผ ์•ฝ๊ฐ„์˜ ์ธต์„ ์ถ”๊ฐ€ํ•ด ํ•™์Šต, ํŠน์ • task์— ๋งž๋Š” ์‹ ๊ฒฝ๋ง์„ ์ƒ์„ฑ

  - Fine-Tuning์œผ๋กœ taskํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋˜๋‹ค๋ฅธ ์‹ ๊ฒฝ๋ง ๊ตฌํ˜„๋“ฑ์˜ ์ถ”๊ฐ€์  ๋…ธ๋ ฅ์š”์†Œ๊ฐ€ ์ ์Œ

  - ๋˜ํ•œ, MLM์„ ํ†ตํ•ด ๊ธฐ์กด์˜ AR์†์„ฑ์œผ๋กœ ์ธํ•œ ๋‹จ๋ฐฉํ–ฅ์˜ ์ œ์•ฝ์„ ๋›ฐ์–ด ๋„˜์–ด ์–‘๋ฐฉํ–ฅ์‹œํ€€์…œ๋ชจ๋ธ๋ง์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋ฃฉํ–ˆ๋‹ค.

  - ๋งˆ์ง€๋ง‰์œผ๋กœ, ํ•œ๊ฐœ์˜ ๋ฌธ์žฅ๋งŒ์„ ๋ชจ๋ธ๋งํ•˜๋Š” ๋Œ€์‹ , 2๊ฐœ์˜ ๋ฌธ์žฅ์„ ๋™์‹œ์— ํ•™์Šตํ•˜๋„๋ก ํ•˜์—ฌ ์งˆ์˜์‘๋‹ต๊ฐ™์€ 2๊ฐœ์ด์ƒ์˜ ๋ฌธ์žฅ์ด ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ œ์—๋„ ์„ฑ๊ณต์  ์˜ˆ์ธก์„ ๊ฐ€๋Šฅ์ผ€ํ•œ๋‹ค.

 

4.1 MLM (Masked Language Model)
LM๋˜ํ•œ AR๋ชจ๋ธ์ด๊ธฐ์— ์–‘๋ฐฉํ–ฅ RNN์œผ๋กœ ํ›ˆ๋ จํ•  ์ˆ˜ ์—†๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ, BERT๋Š” Masked LM๊ธฐ๋ฒ•์œผ๋กœ LMํ›ˆ๋ จ์„ ๋‹จ์ˆœํžˆ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ํ›ˆ๋ จํ•˜๋Š” ๊ธฐ์กด๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜ "์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋‹จ์–ด token ์ผ๋ถ€๋ฅผ masking, ๋ชจ๋ธ์ด ๋ฌธ๋งฅ์„ ํ†ตํ•ด ์›๋ž˜ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•ด ๋นˆ์นธ์„ ์ฑ„์šฐ๋Š” ํ˜•ํƒœ์˜ ๋ฌธ์ œ๋กœ ๋ฐ”๊ฟˆ"์œผ๋กœ์จ Bi-Directional Encoding์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.

[MASK] token์„ ์ž„์˜์˜ ๋‹จ์–ด์™€ ์น˜ํ™˜(๋ณดํ†ต masking์‹œ, 15% ๋‹จ์–ด๋งŒ masking.)ํ•œ ํ›„, ์‹ ๊ฒฝ๋ง์ด ๊ธฐ์กด ๋‹จ์–ด๋ฅผ ๋งž์ถ”๊ฒŒ ํ•™์Šตํ•˜๋Š”๋ฐ ์ด๋Š” ๋งˆ์น˜ Denoising Auto-Encoder์™€ ๋น„์Šทํ•œ ๋งฅ๋ฝ์œผ๋กœ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์ž‡๋”ฐ.

๋‹ค๋งŒ MLM์€ ํ•™์Šต์ˆ˜๋ ด์†๋„๊ฐ€ ๋Šฆ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ํ›จ์”ฌ ๋” ํฐ ์„ฑ๋Šฅ์˜ ๊ฐœ์„ ์„ ์ด๋ฃฉํ•˜๊ธฐ์— ํ˜„์žฌ๋„ ์œ ์šฉํžˆ ์‚ฌ์šฉ๋œ๋‹ค.

 

4.2 NSP (Next Sentence Prediction)
์‚ฌ์‹ค ์งˆ์˜์‘๋‹ต๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋Š” ์ž…๋ ฅ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฌธ์žฅ์ด ์ฃผ์–ด์ง„๋‹ค.
์ด ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์‚ฌ์ด์˜ ๊ด€๊ณ„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๊ธฐ์— ๋‹จ์ˆœ LM์œผ๋กœ๋Š” ๋ฌธ์žฅ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
์ด๋•Œ, BERT๋Š” ๋ฌธ์žฅ์˜ ์Œ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ผ์•„ ์‚ฌ์ „ํ›ˆ๋ จ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‚ฌํ›„ fine-tuning๋‹จ๊ณ„์—์„œ ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ œ์— ํšจ๊ณผ์  ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

NSP๋Š” "2๊ฐœ์˜ ๋ฌธ์žฅ์„ ์ฃผ๊ณ  ์ด ๋ฌธ์žฅ๋“ค์ด ์ด์–ด์ง„ ๋ฌธ์žฅ์ธ์ง€ ๋งž์ถ”๋„๋ก ํ•™์Šต, ๋ฌธ์žฅ๋งˆ๋‹ค ๋ฌธ์žฅ๋์— [SEP]๋ผ๋Š” token์„ ๋ถ™์—ฌ ๋ฌธ์žฅ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•"์ด๋‹ค.


์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฌธ์žฅ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋ณด๋ฅผ ์ถ”๊ฐ€๋กœ embedding,
๊ธฐ์กด์˜ word embedding ๋ฐ position embedding์˜ ํ•ฉ์— ๋”ํ•ด์ค€๋‹ค.

[CLS]๋ผ๋Š” ํŠน๋ณ„ token์„ ์ถ”๊ฐ€๋กœ ๋„์ž…ํ•ด ํ˜„์žฌ ๋ถ„๋ฅ˜์ž‘์—…์ด ์ง„ํ–‰์ค‘์ž„์„ ์•Œ๋ฆฌ๊ณ ,
[SEP]๋ผ๋Š” ํŠน๋ณ„ token์„ ์ถ”๊ฐ€๋กœ ๋„์ž…ํ•ด ๋ฌธ์žฅ์‚ฌ์ด ๊ฒฝ๊ณ„๋ฅผ ์‹ ๊ฒฝ๋ง์— ์•Œ๋ ค์ค€๋‹ค.

 corpus์—์„œ ์‹ค์ œ ์•ž๋’ค ๋‘ ๋ฌธ์žฅ์„ ์ถ”์ถœํ•ด ํ•™์Šตํ•˜๊ธฐ๋„ํ•˜๊ณ 
์ž„์˜์˜ ๊ด€๊ณ„์—†๋Š” ๋‘ ๋ฌธ์žฅ์„ ์ถ”์ถœํ•ด ํ•™์Šตํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
[CLS] the man went to [MASK] stor [SEP] he bought a gallon [MASK] milk [SEP]
[CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight less birds [SEP]

 

4.3 ๋ฌธ์žฅ ์Œ ๋ถ„๋ฅ˜๋ฌธ์ œ
๋Œ€ํ‘œ์ ์ธ NLP Metric์ธ GLUE(General Langauge Understanding)๋Š” ๋‹ค์–‘ํ•œ ์ž์—ฐ์–ด ์ดํ•ด๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ฑ๋Šฅํ‰๊ฐ€๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด, QNLI test(Question Natural Language Inference)๋Š” SQuAD์—์„œ ์ถ”์ถœ๋˜์–ด ๋ณ€ํ˜•๋œ ๋ฌธ์ œ๋“ค๋กœ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์งˆ๋ฌธ๊ณผ ์ด์–ด์ง€๋Š” ๋ฌธ์žฅ์ด ์˜ฌ๋ฐ”๋ฅธ Q-A๊ด€๊ณ„์ธ์ง€ ๋งž์ถ”๋Š” ์ด์ง„๋ถ„๋ฅ˜๋ฌธ์ œ์ด๋‹ค.


์ด๋Ÿฐ ๋ถ„๋ฅ˜๋ฌธ์ œ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด transformer encoder์˜ ๊ฐ€์žฅ ์ฒซ time-step ์ž…๋ ฅ์€ [CLS]๋ผ๋Š” ํŠน๋ณ„ token์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค.
ํ•ด๋‹น time-step์˜ ์ถœ๋ ฅ๋ฒกํ„ฐ์— softmax์ธต์„ ์ถ”๊ฐ€ํ•ด Fine-tuning์„ ํ•จ์œผ๋กœ์จ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ถ„๋ฅ˜์‹ ๊ฒฝ๋ง์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
[CLS]์— ํ•ด๋‹นํ•˜๋Š” transformer encoder์˜ ์ถœ๋ ฅ๋ฒกํ„ฐ๋ฅผ C ∈ โ„H๋ผ ํ•˜์ž. (์ด๋•Œ, H๋Š” vector์˜ ์ฐจ์›์ด๋‹ค.)
์ด๋•Œ, softmax์ธต์˜ ๊ฐ€์ค‘์น˜ํŒŒ๋ผ๋ฏธํ„ฐ W ∈ โ„K×H๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (์ด๋•Œ, K๋Š” ํ›„๋ณดํด๋ž˜์Šค์˜ ๊ฐœ์ˆ˜์ด๋‹ค.)
์ด์ œ, ๊ฐ ํด๋ž˜์Šค์— ์†ํ•  ํ™•๋ฅ ๋ถ„ํฌ P ∈ โ„K๋ฅผ ๊ตฌํ•ด๋ณด์ž.


[ํŠน์ง•๊ธฐ๋ฐ˜ ์ „์ดํ•™์Šต๋ฐฉ๋ฒ•์ธ ELMo์™€ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ]

ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ train dataset์— MLE๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ, ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ W๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๊ธฐ์กด BERT์˜ ๊ฐ€์ค‘์น˜๊นŒ์ง€ ํ•œ๊บผ๋ฒˆ์— ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ.

 

4.4 ๋‹จ์ผ๋ฌธ์žฅ ๋ถ„๋ฅ˜๋ฌธ์ œ
Text Classification์ด ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ด ์œ ํ˜•์— ์†ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ [CLS]ํ† ํฐ์˜ transformer์ถœ๋ ฅ์— ๋Œ€ํ•ด softmax์ธต์„ ์ถ”๊ฐ€ํ•ด Fine-tuning์œผ๋กœ ์‹ ๊ฒฝ๋ง์„ ํ›ˆ๋ จํ•œ๋‹ค.
์ธํ„ฐ๋„ท ๋“ฑ์œผ๋กœ ์ˆ˜์ง‘ํ•œ corpus์— ๋Œ€ํ•ด LM์„ ํ›ˆ๋ จํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด task์— ๋Œ€ํ•œ dataset๋งŒ์œผ๋กœ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ์„ ํ›จ์”ฌ ์ƒํšŒํ•˜๋Š” ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ฒƒ์ฒ˜๋Ÿผ ๋ถ„์ ˆ์ด ์™„๋ฃŒ๋œ ํŒŒ์ผ์„ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
์ดํ›„

 

4.5 ์งˆ์˜์‘๋‹ต ๋ฌธ์ œ
BERT๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ข…ํ•ฉ๋…ํ•ด๋ฌธ์ œ์—๋„ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ–ˆ๋‹ค.
SQuAD์—์„œ๋„ ํ›Œ๋ฅญํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ๊ณ , ํ•œ๊ตญ์–ด dataset์ธ KorSQuAD์—์„œ๋„ ๋งค์šฐ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฑฐ๋’€๋‹ค.

SQuAD์™€ ๊ฐ™์€ ๋ฌธ์ œ๋Š” ์งˆ๋ฌธ๊ณผ ๋ฌธ์žฅ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์žฅ ๋‚ด์—์„œ ์งˆ๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ๋‹ต์„ ์˜ˆ์ธกํ•˜๋„๋ก ํ•™์Šตํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ์ •๋‹ต๋‹จ์–ด๋‚˜ ๊ตฌ์ ˆ์ด ์œ„์น˜ํ•œ time-step์˜ ์‹œ์ž‘๊ณผ ๋์„ ์ถœ๋ ฅํ•™ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์ฆ‰, ์—ฌ๋Ÿญ time-step์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์—ฌ๋Ÿฌ time-step์˜ ์ถœ๋ ฅ๊ฐ’์„ ๋‚ด๋„๋ก ํ•œ๋‹ค.
SQuAD๋ฌธ์ œ๋Š” BERT๋ฅผ ์ด์šฉํ•œ ์ฃผ๋ฅ˜๊ฐ€ ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜์˜€์œผ๋ฉฐ(KorSQuAD), ์ด๋ฏธ ํ•ด๋‹น task์—์„œ ์‚ฌ๋žŒ์˜ ๋Šฅ๋ ฅ์น˜๋ฅผ ๋›ฐ์–ด๋„˜์—ˆ๋‹ค.

 

4.6 ๋‹จ์ผ๋ฌธ์žฅ Tagging๋ฌธ์ œ
์ด์™ธ์—๋„ BERT๋Š” NER, SRL๊ฐ™์€ ๋ฌธ์žฅ ๋‚ด ์ •๋ณด tagging๋ฌธ์ œ ๋“ฑ์—๋„ ์ ์šฉ๋˜์–ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค.
ํ•˜๋‚˜์˜ ๊ณ ์ •๋œ architecture์—์„œ ๋‹จ์ˆœํžˆ ์ˆ˜๋งŽ์€ corpus๋ฅผ ํ›ˆ๋ จํ•œ ๊ฒฐ๊ณผ๋กœ NLP์ „๋ฐ˜์— ๊ฑธ์ณ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฑฐ๋‘์—ˆ๋Š”๋ฐ,
์ด ๊ฒฝ์šฐ, ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ ๊ฐ ๋‹จ์–ด๋‚˜ ํ† ํฐ์— ๋Œ€ํ•œ tagging์ •๋ณด ๋“ฑ์„ ์ถœ๋ ฅ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ถ”๊ฐ€์  ํ›ˆ๋ จ์„ ์ง„ํ–‰ํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 


5. GPT-2

5.1 Architecture
GPT-2๋…ผ๋ฌธ์—์„œ๋„ BERT์™€ ๊ฐ™์ด Transformer Decoder๊ตฌ์กฐ๋ฅผ ํ™œ์šฉ, LM์„ ๋น„์ง€๋„ํ•™์Šต์œผ๋กœ ์‚ฌ์ „ํ•™์Šต ํ›„ ์ถ”๊ฐ€์ ์ธ ์ง€๋„ํ•™์Šต์œผ๋กœ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์–ป๋Š”๋‹ค.
GPT-2์ด์ „, GPT-1๋…ผ๋ฌธ์ด ๋ฐœํ‘œ๋˜์—ˆ์—ˆ๋Š”๋ฐ, ์‚ฌ์‹ค GPT-1๊ณผ์˜ ์ฐจ์ด์ ์€ Decoder๋ฅผ ๋” ํฌ๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ , ๋ช‡๊ฐ€์ง€ ์ˆ˜์ •์‚ฌํ•ญ๋งŒ ์ œ์™ธํ•˜๋ฉด ๊ฑฐ์˜ ์—†๋‹ค.

GPT-2๋Š” ๊ธฐ์กด์˜ Transformer์—์„œ ํ™œ์šฉ๋œ MHA๋ธ”๋ก์„ ๊ต‰์žฅํžˆ ๋„“๊ณ  ๊นŠ๊ฒŒ ์Œ“์•„ parameter๊ฐœ์ˆ˜๋ฅผ ํฌ๊ฒŒ ๋Š˜๋ ค ์ˆ˜์šฉ๋ ฅ์„ ๊ทน๋Œ€ํ™” ํ–ˆ๋Š”๋ฐ, ์ด๋Š” ์—ญ์ „ํŒŒ์˜ ์ „๋‹ฌ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” skip-connection๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹ค๋งŒ, ๋…ผ๋ฌธ์— ๋”ฐ๋ฅด๋ฉด ์ด๋ ‡๊ฒŒ ํฐ ๋ชจ๋ธ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ–ˆ์Œ์—๋„ ์—ฌ์ „ํžˆ LM-๋น„์ง€๋„ ์‚ฌ์ „ํ•™์Šต์— ์‚ฌ์šฉ๋œ dataset์— ๋Œ€ํ•ด underfitting์ด ๋  ๋งŒํผ ํฐ dataset์„ ์‚ฌ์šฉํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

5.2 pretrained Dataset ์˜ˆ์‹œ
โˆ™ ๊ธฐ์กด์˜ ๋‹ค์–‘ํ•˜์ง€ ์•Š์€ ๋„๋ฉ”์ธ๋“ค
  ex) ๋‰ด์Šค๊ธฐ์‚ฌ, Wikipedia, ์†Œ์„ค ๋“ฑ์˜ corpus

โˆ™ WebText: ์ง์ ‘ crawling์„ ํ†ตํ•ด ์ตœ๋Œ€ํ•œ ๋งŽ์€ corpus๋ฅผ ๋ชจ์€ dataset

 

5.3 ์ „์ฒ˜๋ฆฌ ๋ฐ LM-Unsupervised pretraining
์ด ๋…ผ๋ฌธ์—์„œ๋Š” ์ˆ˜์ง‘๋œ ์›นํŽ˜์ด์ง€๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ๋“ค์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด 'Dragnet'๊ณผ 'Newspaper'๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ–ˆ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด 800๋งŒ๊ฐœ์˜ ๋ฌธ์„œ๋กœ ๊ตฌ์„ฑ๋œ 40GB์— ์ด๋ฅด๋Š” dataset์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•ด LM์„ pretrain์‹œ์ผœ ์ตœ๊ณ ์„ฑ๋Šฅ LM์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ดํ›„ subword๊ณผ์ •์—์„œ BPE๋งŒ์„ ํ™œ์šฉํ•˜๋ฉฐ, ์ด๋•Œ BPE train๊ณผ์ •์—์„œ merge๊ฐ€ ๊ฐ™์€ wordset ๋‚ด์—์„œ๋งŒ ์ผ์–ด๋‚˜๊ฒŒ ์ œ์•ฝ์„ ๋‘ ์œผ๋กœ์จ BPE ๋ถ„์ ˆ์˜ ์„ฑ๋Šฅ์„ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ทน๋Œ€ํ™” ํ•˜์˜€๋‹ค.
์ด๋•Œ, subword์˜ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ฐ™์€ ๊ทธ๋ฃน์˜ character๋ผ๋ฆฌ๋งŒ merge๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ex) "์ž…๋‹ˆ๋‹ค."์™€ ๊ฐ™์€ ๋งˆ์นจํ‘œ(.)๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ํ•œ๊ธ€๊ณผ ๋ถ™์–ด ๋‚˜ํƒ€๋‚œ๋‹ค๋ฉด, ๋งˆ์นจํ‘œ์™€ ์•ž์„œ ๋‚˜ํƒ€๋‚œ ๋ฌธ์ž๋“ค์€ ๋‹ค๋ฅธ ๊ทธ๋ฃน์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ๋„๊ฐ€ ์•„๋ฌด๋ฆฌ ๋†’๋”๋ผ๋„ BPE ํ›ˆ๋ จ ๋ฐ ์ ์šฉ๊ณผ์ •์—์„œ ๊ฒฐํ•ฉ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. (= ์—ฌ์ „ํžˆ ๋–จ์–ด์ ธ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋  ๊ฒƒ)

๋”ฐ๋ผ์„œ BPE๋ฅผ ํ†ตํ•ด GPT-2๋Š” ์ถ”๊ฐ€์ ์ธ ํฐ ๋…ธ๋ ฅ์—†์ด ์ค€์ˆ˜ํ•œ ์„ฑ๋Šฅ์˜ ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

5.4 ์‹คํ—˜ ๊ฒฐ๊ณผ
GPT-2๋Š” ๋งค์šฐ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ crawling data๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , transformer๋ชจ๋ธ์˜ ๊ตฌ์กฐ๋ฅผ ๋งค์šฐ ๊นŠ๊ณ  ๋„“๊ฒŒ ๊ฐ€์ ธ๊ฐ”๋‹ค.
์ด๋ฅผ ํ†ตํ•ด GPT-2๋Š” ๋งค์šฐ ๊ทธ๋Ÿด์‹ธํ•œ ๋Š๋‚Œ์ด ๋“ค ์ •๋„๋กœ ์ˆ˜์ค€๋†’์€ LM์ž„์„ ์ž๋ž‘ํ•œ๋‹ค.
parameter # LAMBADA WikiText-2 PTB WikiText-103 1B Words
previous SOTA 99.8 39.14 46.54 18.3 21.8
117M 35.13 29.41 65.85 37.50 75.20
345M 15.60 22.76 47.33 26.37 55.72
762M 10.87 19.93 40.31 22.05 44.58
1542M 8.63 18.34 35.76 17.48 42.16

์œ„์˜ ํ‘œ๋Š” GPT-2์˜ ๊ฐ dataset์— ๋Œ€ํ•œ PPL(perplexity)์„ฑ๋Šฅ์œผ๋กœ
ํ‘œ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ, ๋Œ€๋ถ€๋ถ„์˜ datsaset์—์„œ S.O.T.A๋ฅผ ๋ณด์—ฌ์คฌ๋‹ค.
ํŠนํžˆ๋‚˜ LAMBADA datatset์˜ ๊ฒฝ์šฐ, parameter์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๋งค์šฐ ํฐ ํญ์˜ PPL์˜ ๊ฐ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Conclusion
GPT-2๋Š” ๋งค์šฐ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ corpus๋ฅผ ์ˆ˜์ง‘ํ•ด training๊ณผ์ •์— ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ํฐ ํŠน์ง•์ด๋‹ค.
๋•๋ถ„์— ๋งค์šฐ ๊นŠ๊ณ  ๋„“์€ ๋ชจ๋ธ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ํ›Œ๋ฅญํ•œ LM์„ ๊ฐ–๋Š”๋‹ค.
์ฆ‰, ๋น„์ง€๋„ํ•™์Šต์—์„œ ์ข€ ๋” Global-minima์— ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.
→ ์ถ”๊ฐ€์  ์ง€๋„ํ•™์Šต์œผ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์—์„œ๋„ ํฐ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


๋งˆ์น˜๋ฉฐ...

์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” ์ „์ดํ•™์Šต(transfer learning)์„ ํ™œ์šฉํ•ด NLP์„ฑ๋Šฅ์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค.
๊ธฐ์กด์˜ word2vec๊ณผ ๊ฐ™์€ ์‚ฌ์ „ํ›ˆ๋ จ๋ฒ•๊ณผ ๋‹ฌ๋ฆฌ ์ด๋ฒˆ์— ์†Œ๊ฐœํ•œ
โˆ™ELMo์ฒ˜๋Ÿผ "๋ฌธ๋งฅ์„ ๋ฐ˜์˜ํ•œ word embedding vector"๋ฅผ ๊ตฌํ•˜๊ฑฐ๋‚˜
โˆ™BERT์ฒ˜๋Ÿผ "์‹ ๊ฒฝ๋ง ์ „์ฒด์— ๋Œ€ํ•ด ์‚ฌ์ „ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜"๋ฅผ ์ œ๊ณตํ•œ๋‹ค.


ํŠนํžˆ ๊ธฐ์กด Vision๋ถ„์•ผ์—์„œ๋Š” ์ด๋ฏธ ImageNet์„ pretrain_weight_parameter๋กœ ๋‘๊ณ  ๋‹ค๋ฅธ dataset์˜ training์— ์‚ฌ์šฉ์„ ์ง„ํ–‰ํ•ด ์™”์—ˆ๋‹ค.
์ด ํšจ๊ณผ๋ฅผ NLP์—์„œ๋„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ธฐ์— BERT๋Š” ๋งค์šฐ ํšจ๊ณผ์ ์ด๋‹ค. (by MLM. &. NSP)
BERT๋Š” ์†์‰ฝ๊ฒŒ ์ˆ˜์ง‘๊ฐ€๋Šฅํ•œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์žฅ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ์–‘๋ฐฉํ–ฅ ์–ธ์–ด๋ชจ๋ธ์„ ํ•™์Šตํ•œ ํ›„, ์ด๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ œํ•ด๊ฒฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐ๊ณ„๋ฒˆ์—ญ๊ณผ ๊ฐ™์ด parallel corpus๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜
text classification๊ณผ ๊ฐ™์ด labeling๋œ corpus๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
์ œํ•œ์ ์œผ๋กœ dataset์„ ์ˆ˜์ง‘ํ•ด์•ผํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ „์ดํ•™์Šต์„ ํ†ตํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ์–‘์˜ corpus๋กœ๋ถ€ํ„ฐ ๋ฌธ์žฅ์˜ ํŠน์ง•์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ ๊ฒฝ๋ง์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
BERT์˜ ํ™œ์šฉ์€ ์งˆ์˜์‘๋‹ต๋ฌธ์ œ์— ๋Œ€ํ•ด ์‚ฌ๋žŒ๋ณด๋‹ค ๋›ฐ์–ด๋‚œ ํ•ด๊ฒฐ๋Šฅ๋ ฅ์„ ๊ฐ–๋Š” ์‹ ๊ฒฝ๋ง์„ ์†์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

+ Recent posts