๐ ๋ชฉ์ฐจ
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์๋งํผ ์ ๋ฐฉํฅ๊ณผ ์ญ๋ฐฉํฅ์ ๋ํด ํ๋ จ๋๋ค.
โ๏ธ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๋ ผ๋ฌธ์ ๋งค์ฐ ๋ฐ์ด๋ ํ์ฌ๋ ๋ง์ด ์ฌ์ฉ ๋ฐ ์์ฉ์ด ๊ฐ์ฅ ๋ง์ด๋๋ ๋ชจ๋ธ์ด๋ค.
๊ธฐ์กด์ 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์ ํ์ฉ์ ์ง์์๋ต๋ฌธ์ ์ ๋ํด ์ฌ๋๋ณด๋ค ๋ฐ์ด๋ ํด๊ฒฐ๋ฅ๋ ฅ์ ๊ฐ๋ ์ ๊ฒฝ๋ง์ ์์ฝ๊ฒ ์ป์ ์ ์์๋ค.