์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ๊น์ด์ฐ์ ํ์
- ์๊ณ ๋ฆฌ์ฆ
- ์ฐ์ ์์ํ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ์ํ
- ๋์ ํฉ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ทธ๋ํํ์
- DP
- ๋๋น์ฐ์ ํ์
- ํ์ด์ฌ
- ๊ทธ๋ฆฌ๋
- ์ ๋ ฌ
- ๋ณํฉ์ ๋ ฌ
- db
- ๋จธ์ง์ํธ
- ๊ทธ๋ํ
- ๋์ ๊ณํ๋ฒ
- ์์๊ตฌํ๊ธฐ
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ์์ํ์
- ์๋ฃ๊ตฌ์กฐ
- ์ค๋ธ์
- ๊ตฌํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- BFS
- LIS
- SQL
- DFS
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding - BERT ๋ฐ๋ฅ๊น์ง ์ดํดํ๊ธฐ ๋ณธ๋ฌธ
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding - BERT ๋ฐ๋ฅ๊น์ง ์ดํดํ๊ธฐ
.23 2025. 2. 24. 20:42๋จ๋ค DeepSeek ์ฝ์๋ ์ด์ ์์ผ BERT ์ฝ๊ณ ์ ๋ฆฌํ๋ค
https://arxiv.org/abs/1810.04805
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
NLP๊ณ์ ์กฐ์๋, ํ์ , ์ด์ฉ๊ณ ์๋ "๊ทธ" ๋ ผ๋ฌธ
๋ง์นจ ๋ฐํํ ๊ธฐํ๊ฐ ์ฐพ์ ์์ ์ฝ๊ณ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
Abstract
BERT๋?
Bidirectional Encoder Representation from Transformers
์ง์ญํ๋ฉด Transformer ๊ธฐ๋ฐ ์๋ฐฉํฅ ์ธ์ฝ๋ representation
Label ๋์ง ์์ text๋ฅผ ๋ชจ๋ layer์ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๋ฌธ๋งฅ ๋ชจ๋์์ ๊ณต๋์ผ๋ก(jointly) conditioning*
* conditioning: ์ด๋ค ์ ๋ณด๋ฅผ ์ ๋ ฅ(์กฐ๊ฑด)์ผ๋ก ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ตํ๊ฑฐ๋ ์์ธก์ ์ํํ๋ ๊ฒ
→ ๋ฌธ์ฅ์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์ ๋ณด๋ฅผ ๋์์ ๊ณ ๋ คํ์ฌ ๋ชจ๋ธ์ด ํ์ต
Pre-trained BERT ๋ชจ๋ธ์ ๋จ ํ๋์ additional output layer๋ก fine-tuning → ๋ค์ํ ๋ฒ์์ task(e.g. ์ง์์๋ต, ์ธ์ด์ถ๋ก ๋ฑ) ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ชจ๋ธ ์์ฑ ๊ฐ๋ฅ
Introduction
BERT๊ฐ ๋ญ๋ฐ?; Language model pre-training
์ฌ์ ํ์ต๋ ์ธ์ด ๋ชจ๋ธ๋ค์ ๋ํ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์์ฐ์ด ์ฒ๋ฆฌ ๋ฌธ์ (downstream task)๋ฅผ ํด๊ฒฐํด์๋ค.
๋ฌธ์ฅ ๋จ์๋ก ํด์ํ๋ฉด sentence-level task, ๋ฌธ์ฅ์ ์ชผ๊ฐ์ด ํด์ํ๋ฉด token-level task๋ผ๊ณ ํ๋ค.
โ๏ธ Sentence-level task(์์ฐ์ด ์ถ๋ก , paraphrasing): ๋ฌธ์ฅ ์ ์ฒด์ ์๋ฏธ๋ฅผ ์ดํดํ๊ณ , ๋ฌธ์ฅ ๊ฐ ๊ด๊ณ๋ฅผ ํ๋จํ๋ task
- ์์ฐ์ด ์ถ๋ก (Natural language inference): ์ฃผ์ด์ง ๋ ๋ฌธ์ฅ์ด ํฌํจ(entailment) / ๋ชจ์(contradiction) / ์ค๋ฆฝ(neutral) ๊ด๊ณ์ธ์ง ๋ถ๋ฅ
e.g. ํ๋์ ์ฒญ๋ช
ํ๋ค. / ๋น๊ฐ ์ค์ง ์๋๋ค. → ํฌํจ ๊ด๊ณ
- ๋ฌธ์ฅ ์ ์ฌ๋ ํ๋ณ(paraphrasing): ๋ ๋ฌธ์ฅ์ด ๊ฐ์ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์๋์ง ํ๋จํ๋ task
e.g. ๊ทธ๋ ์ฐจ๋ฅผ ์๋ก ์๋ค. / ๊ทธ ์๋์ฐจ๋ ๊ทธ์ ์ํด ๊ตฌ๋งค๋์๋ค. → paraphrase
- ๊ฐ์ ๋ถ์(Sentiment analysis): ๋ฌธ์ฅ์ด ๊ธ์ ์ ์ธ์ง, ๋ถ์ ์ ์ธ์ง ๋ถ๋ฅํ๋ task
โ๏ธ Token-level task(named-entity recognition, question-answering): ๋ฌธ์ฅ ๋ด ๊ฐ๋ณ ๋จ์ด๋ ๊ตฌ(phrase)์ ์๋ฏธ๋ฅผ ์์ธกํ๋ task
- Named-Entity Recognition(NER, ๊ฐ์ฒด๋ช ์ธ์): ๋ฌธ์ฅ์์ ์ฌ๋, ์ฅ์, ์กฐ์ง๋ช ๋ฑ ํ๊น ํ๋ ํ์คํฌ
e.g. ์ ํ(Apple)์ ์คํฐ๋ธ ์ก์ค์ ์ํด ์บ๋ฆฌํฌ๋์์์ ์ค๋ฆฝ๋์๋ค.
- Apple → ๊ธฐ์
- ์คํฐ๋ธ ์ก์ค → ์ธ๋ฌผ
- ์บ๋ฆฌํฌ๋์ → ์ง๋ช
- Question Answering(QA): ๋ฌธ์ฅ์์ ์ง๋ฌธ์ ๋ํ ์ ๋ต์ด ๋๋ ๋ถ๋ถ์ ์ฐพ์๋ด๋ ํ์คํฌ
e.g.
๋ฌธ์ฅ: ์ ํ(Apple)์ ์คํฐ๋ธ ์ก์ค์ ์ํด ์บ๋ฆฌํฌ๋์์์ ์ค๋ฆฝ๋์๋ค.
Q. ๋๊ฐ ์ ํ์ ์ค๋ฆฝํ๋๊ฐ?
→ A. ์คํฐ๋ธ ์ก์ค
- Part-of-Speech Tagging(POS, ํ์ฌ ํ๊น ): ๋ฌธ์ฅ์ ๊ฐ ๋จ์ด์ ๋ํด ํ์ฌ๋ฅผ ๋ถ์ฌํ๋ ํ์คํฌ
์๋ ์ด๋ป๊ฒ ํ๋๋ฐ?; Downstream task* ์ pre-trained language representation ์ ์ฉํ๊ธฐ ์ํ ๊ธฐ์กด์ ์ ๋ต
* downstream task: ์์ฐ์ด์ฒ๋ฆฌ๋ก ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ฌธ์
์์ ์๊ฐํ ๋ค์ํ downstream task๋ค์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ ํ์ต ์ธ์ด ๋ชจ๋ธ๋ค์ ๋ค์ํ๊ฒ ์งํํด์๋๋ฐ,
๋ชจ๋ธ์ ์ด๋ป๊ฒ ํ์ตํ๋๋์ ๋ฐ๋ผ ํฌ๊ฒ Feature-based approach์ Fine-tuning based approach๋ก ๋๋ ์ ์๋ค.
โ๏ธ Feature-based approach
- ์ฌ์ ํ์ต๋ representation์ ์ถ๊ฐ์ feature๋ก ํฌํจํ๋ task๋ณ ๊ตฌ์กฐ ์ฌ์ฉ
- ์ฆ, ์ฌ์ ํ์ต๋ ํํ → task ๋ณ ๋ชจ๋ธ์ ๋ถ์ด๋ ๋ฐฉ์, ๋ฐ๋ผ์ task ๋ณ ๋ชจ๋ธ ์ถ๊ฐ์ ์ผ๋ก ํ์
- ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ์์ฒด๋ ๊ฑด๋ค์ง ์๊ณ , ํด๋น ๋ชจ๋ธ์์ ๋์จ ํํ๋ง ์ฌ์ฉ
๋ค์ ๋งํ์๋ฉด ์๋ pre-trained model(ELMo, …) ๋ฑ์ ๊ทธ๋ฅ ๋จ์ํ feature extractor๋ก๋ง ์ฌ์ฉ → task ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ธ์ ๋ณ๋๋ก ์ ์
โ๏ธ Fine-tuning based approach
- ์ต์ํ์ task๋ณ ํ๋ผ๋ฏธํฐ ๋์ ,๋ชจ๋ ํ๋ผ๋ฏธํฐ fine-tuningํ์ฌ task์์ ํ์ต
- ์ฆ, ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ์์ฒด๋ฅผ task๋ณ๋ก fine-tuning์ ์งํํ์ฌ ํ์ตํ๋ ๋ฐฉ์
- ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ fine-tuning → ๊ทธ ๋ชจ๋ธ๋ก task ํ์ต ์งํ
์๋ pre-trained model ์์ฒด๋ฅผ ํ์ตํด์ task๊น์ง ์ฒ๋ฆฌํจ. BERT ์ญ์ fine-tuning based approach
→ ๋ ๋ค ๊ฒฐ๊ตญ์ pre-training ๊ณผ์ ๊น์ง๋ ๋์ผํ ๋ชฉ์ ์ํ(๋ฌธ์ฅ์ผ๋ก๋ถํฐ representation ์์ฑ)
๊ธฐ์กด ๋ฐฉ์๋ค์ ํน์ง:
- ์ด๋ฌํ ๋ฐฉ์๋ค์ pre-trained representation ๋ฅ๋ ฅ ์ ํ(ํนํ fine-tuning ๊ธฐ๋ฐ ๋ฐฉ๋ฒ๋ก ๋ค)
- ๊ทธ representation์ ์ป์ ๋ ๋จ๋ฐฉํฅ ์ธ์ด ๋ชจ๋ธ(unidirectional language model) ์ฌ์ฉ
๊ทธ๋์ ์ BERT๊ฐ ์ ์์ด ๋์๋๋ฐ?; ๊ธฐ์กด pre-trained language model๋ค์ ํ๊ณ
โ๏ธ ๋จ๋ฐฉํฅ(unidirectional) ํ์ต
→ pre-training ๋์ค ํ์ฉ๋ ์ ์๋ ๊ตฌ์กฐ(architecture) ์ ํ์ ์ ํ๋จ.
- OpenAI GPT๊ฐ์ ์น๊ตฌ๋ค์ left-to-right architecture ์ฌ์ฉ → ๋ชจ๋ ํ ํฐ์ ์ด์ ํ ํฐ๋ง ์ฐธ๊ณ (attend) ๊ฐ๋ฅํจ(causal masking)
- ๋จ๋ฐฉํฅ ํ์ต๋ชจ๋ธ์ ๋ฌธ๋งฅ ํ์ ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ sentence-level task๋ fine-tuning ๊ธฐ๋ฐ ๋ชจ๋ธ์ด token-level task๋ฅผ ํด๊ฒฐํ๋ ค ํ ๋ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์์
OpenAI GPT: auto-regressive model*
* auto-regressive model: ์๊ธฐํ๊ท ๋ชจํ, ์ถ๋ ฅ ๋ณ์๊ฐ ์์ ์ ์ด์ ๊ฐ๊ณผ ํ๋ฅ ์ ํญ์ ์ ํ์ ์ผ๋ก ์์กดํจ
The cat sat on the mat.
→ GPT์์ 'sat' ์ฒ๋ฆฌ(์ถ๋ก ) ์, ‘The’, ‘cat’ ๋ง ์ฐธ๊ณ ๊ฐ๋ฅ, ์ดํ ‘on’, ‘the’, ‘mat’์ ๋ณผ ์ ์์. ์ดํ ๋จ์ด๋ฅผ ๋ณด๋ ค ํ๋ฉด ์ ๋ต์ง(’sat’)๋ฅผ ๋ณด๊ฒ ๋ ์ ์์.
๋ญ๊ฐ ์๋กญ์ง?; Contribution
โ๏ธ ์ธ์ด ํํ(language representation)์ ์ํ ์๋ฐฉํฅ ์ฌ์ ํ์ต ๋ชจ๋ธ ์ ์
- ๋ง์คํน ์ฒ๋ฆฌ๋ ์ธ์ด ๋ชจ๋ธ ์ฌ์ฉ → ์ข์ฐ ๋ฌธ๋งฅ ๋์์ ํ์ → ๋ ๊น์ ๋ฌธ๋งฅ ํ์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์๋ฐฉํฅ ์ฌ์ธต ํํ ํ์ต(deep bidirectional representation) ๊ฐ๋ฅ
โ๏ธ ์ฌ์ ํ์ต๋ ํํ์ ๋ง์ task๋ณ architecture์ ํ์์ฑ์ ์ค์ฌ์ค ์ ์์ → ๊ตณ์ด representation learning์ ์๋ก์ด architecture๋ฅผ ์ค๊ณํ์ง ์์๋ ๋จ
- ์์ ์๋ ๊ฐ NLP ํ์คํฌ๋ง๋ค ๋ง์ถคํ ๋ชจ๋ธ์ด ํ์ํ๋ค.
- Task-specificํ/๋ณต์กํ ๊ตฌ์กฐ ์์ด BERT๋ฅผ ํตํด ์ข์ ์ฑ๋ฅ ๋ผ ์ ์์
BERT๋: [fine-tuning ๊ธฐ๋ฐ ์ฌ์ ํ์ต ์ธ์ด๋ชจ๋ธ]
โ๏ธ MLM(Masked-Language Model) ์ฌ์ฉํ์ฌ ๋จ๋ฐฉํฅ ๋ชจ๋ธ์ ํ๊ณ ๊ทน๋ณต
- ์ ๋ ฅ ๋ฌธ์ฅ์ ์ผ๋ถ ํ ํฐ์ ๋ฌด์์๋ก ๋ง์คํน ์งํ
- ๋ชฉ์ ์ ๋ฌธ์ฅ์ ๋ฌธ๋งฅ’๋ง’ ํ์ ํ์ฌ ๋ง์คํน ๋ ๋จ์ด์ ์๋ id ์์ธก
- ๋จ๋ฐฉํฅ ์ฌ์ ํ์ต ๋ชจ๋ธ๊ณผ ๋น๊ตํ์ ๋ MLM์ ์๋ฐฉํฅ์ ๋ฌธ๋งฅ์ ์ตํฉํ์ฌ deep bidirectional Transformer ์ฌ์ ํ์ต ๊ฐ๋ฅ
โ๏ธ NSP(Next Senetence Prediction; ๋ค์ ๋ฌธ์ฅ ์์ธก) ์ํ
- ์ด์ด์ง๋ ๋ฌธ์ฅ์์ ํ๋์ ์ ๋ ฅ ๋ฌธ์ฅ/์ํ์ค๋ก ์ฌ์ฉํ์ฌ ์ฌ์ ํ์ต(pre-training) ์งํ
Model Architecture
BERT์ ๋ชจ๋ธ ๊ตฌ์กฐ: multi-layer bidirectional Transfomer encoder → ์ค์ Transformer์ encoder์ ๊ฑฐ์ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํจ
์คํ์ ์ํด ์ฌ์ฉํ ๋ชจ๋ธ๋ก๋ BERTBASE, BERTLARGE
โ๏ธ BERTBASE
- L (encoder layer): 12
- H (hidden size(ํ ํฐ๋น ํ์ต๋๋ ์ฐจ์์ ๊ธธ์ด)): 768
- ์ต๋ 512๊ฐ ํ ํฐ๊น์ง ์ ๋ ฅ ๊ฐ๋ฅ → ์ต๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ (512, 768)
- A (Self-attention head): 12
- feed-forward/filter size to be 4H (3072 for the H=768)
โ๏ธ BERTLARGE
- L: 24
- H: 1024
- A: 16
- feed-forward/filter size to be 4H (4096 for the H=1024)
BERT
ํ์ต ๋จ๊ณ: ์ฌ์ ํ์ต(pre-training) & ๋ฏธ์ธ ์กฐ์ (fine-tuning).
Pre-training ๋จ๊ณ๋ฅผ ํตํด ๋ฒ์ฉ์ ์ธ ์ธ์ด ํจํด์ ํ์ตํ ํ, fine-tuning ๋จ๊ณ๋ฅผ ํตํด ์์ฐ์ด ์ฒ๋ฆฌ ๋ฌธ์ (NLP downstream task) ๋ฅผ ํด๊ฒฐํ๋ค. ์๋ฅผ ๋ค์๋ฉด, ์ฌ์ ํ์ต ๋จ๊ณ๋ ๋จ์ด์ฌ์ ์ ๋ง๋๋ ๊ณผ์ ์ด๊ณ , ๋ฏธ์ธ ์กฐ์ ๋จ๊ณ์์๋ ๋จ์ด์ฌ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ณต ์ฉ์ด ์ฌ์ ์ ๋ง๋ ๋ค.
โ๏ธ Pre-training: label ๋์ง ์์ ๋ฐ์ดํฐ๋ก pre-trainned task(MLM / NSP) ์ํํ๋ฉฐ represenation ํ์ต
- ์ฆ, ์ฌ๋์ด ์ ๋ต(๋ผ๋ฒจ)์ ์ ๊ณตํ์ง ์์ ๋ฌธ์ฅ๋ค์ ํ์ต(self-supervised learning ๊ด์ → ๋ชจ๋ธ์ด label ์ค์ค๋ก ์์ฑ)
โ๏ธ Fine-tuning: ์ฌ์ ํ์ต๋ parameter๋ก ์ด๊ธฐํ → downstream task์ labeled data ํ์ฉํ์ฌ parameter๋ค fine-tuning ์ํ(supervised learning์ ์์ญ)
BERT์ ๊ฐ์ฅ ํฐ ํน์ง์ task์ ๊ด๊ณ ์์ด ๋จ์ผ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ด๋ค.
- ์ฌ์ ํ์ต์ ์ฌ์ฉํ๋ ๋ชจ๋ธ ๊ตฌ์กฐ์ ๋ฏธ์ธ ์กฐ์ ์ ์ํด ์ค๊ณ๋ ๋ชจ๋ธ์๋ ๊ฑฐ์ ์ฐจ์ด ์กด์ฌํ์ง ์์. Fine-tuning ๋จ๊ณ์์ task์ ๋ง๋ layer(e.g. ๋ฌธ์ฅ ๋ถ๋ฅ๋ฅผ ์ํ ๋ถ๋ฅ๊ธฐ) ์ถ๊ฐํ์ฌ ํ์ต ์งํํจ
Input/Output Representations
โ๏ธ ์ ๋ ฅ ํํ(input representation)
- ์ ๋ ฅ ์ํ์ค๋ ๋จ์ผ ๋ฌธ์ฅ, ๋ฌธ์ฅ ์(์ง์์๋ต, ์์ฐ์ด ์ถ๋ก ๋ฑ์ ์ฌ์ฉ) ์ ๋ถ ์ปค๋ฒ ๊ฐ๋ฅํ๋ค.
- ๊ฐ ๋ฌธ์ฅ๋ค์ ํ ํฐํํ์ฌ ํํํ๋ค. ์ด๋, ํ ํฐํ์๋ WordPiece embedding์ ์ฌ์ฉํ๋ค.
ใป WordPiece๋ 3๋ง์ฌ๊ฐ์ token vocabulary๋ก ๊ตฌ์ฑ๋์ด์๋ค.
ใป ์ ๋ ฅ ์ํ์ค๋ค์ WordPiece ํ ํฌ๋์ด์ ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ํฐํ๋ฅผ ํ๋, ํ ํฐ์ subword๋ฅผ ๊ธฐ์ค(subword-level)์ผ๋ก ์งํ๋๋ค.
e.g. "I love cats" → ["I", "love", "cats"], "unhappiness" → ["un", "##happiness"], "electroencephalography" → ["electro", "##ence", "##phal", "##ography"]
์ดํ ๊ฐ ํ ํฐ๋ณ๋ก ‘Token embeddings’ + ‘Segment Embeddings’ + ‘Position Embeddings’๋ฅผ ์ฐ์ฐ ํ concatํ์ฌ ์ต์ข input embedding ๋๋ representation ๊ตฌ์ฑํ๋ค.
๐ก Input representation vs Output representation ?
- Input representation์ transformer Encoder์ ์ ๋ ฅ๋๋ Token, Segment, Position Embedding์ ์กฐํฉ์ด๋ค.
- Output Representation์ Transformer Encoder๋ฅผ ๊ฑฐ์น ํ ์์ฑ๋๋ ์ต์ข Hidden Representation์ผ๋ก, ๋ค์ํ ๋ค์ด์คํธ๋ฆผ ํ์คํฌ์์ ํ์ฉ๋๋ค.
ํน์ง 1. ์ ๋ ฅ ํํ์ ํญ์ ๊ฐ์ฅ ์ฒ์ ํ ํฐ์ [CLS]
- ์ด ํ ํฐ์ ์ต์ข ํ์ต ๊ฒฐ๊ณผ๋ ๋ฌธ์ฅ ์ ์ฒด์ ์ ๋ณด๋ฅผ ์์ถํ ๋ฒกํฐ(aggregate sequence representation)
- ๋ฌธ์ฅ ๋จ์ ๋ถ๋ฅ(Classification Task)๋ฅผ ์งํํ ๋, ์ ์ฒด ๋ฌธ์ฅ์ ์๋ฏธ๋ฅผ ๋ํํ๋ ๋ฒกํฐ๋ก ์ฌ์ฉ๋จ
ํน์ง 2. QA task๋ฅผ ์ํด ๋ ๋ฌธ์ฅ์์ ๊ฐ์ด ํ์ตํ๋ ๊ฒฝ์ฐ, ๋ ๋ฌธ์ฅ ๊ฐ ๊ตฌ๋ถ์๋ [SEP] ํ ํฐ ์ฌ์ฉ
- Segment embeddings: ๊ฐ ํ ํฐ์ด ๋ฌธ์ฅ A ๋๋ ๋ฌธ์ฅ B์ ์ํ๋์ง๋ฅผ ๋ํ๋ด๋ "Segment Embedding"์ ์ถ๊ฐ์ ์ผ๋ก ํ์ต โฌ ๏ธ Transformer์ ๋ค๋ฅธ์
โ๏ธ Output representation
- Transformer Encoder์ ์ต์ข ๋ฒกํฐ
- Token + Position + Segment Embedding(์ ๋ ฅ ํํ)๊ณผ ๋์ผํ ์ฐจ์, ๋์ผํ ํํ
BERT BASE๋ชจ๋ธ์์๋ ์ , ์ถ๋ ฅ ๋ฒกํฐ ๋ชจ๋ (์ ๋ ฅ ํ ํฐ ์ x 768), BERT LARGE ๋ชจ๋ธ์์๋ (์ ๋ ฅ ํ ํฐ ์ x 1024)
- ๋ค๋ง, downstream task์ ์ต์ ํ๋ ์ ๊ตํ embedding ๊ฒฐ๊ณผ ์ถ๋ ฅ
Pre-training ๊ฒฐ๊ณผ (General Representation) | MLM(๋ง์คํฌ๋ ๋จ์ด ์์ธก)๊ณผ NSP(๋ฌธ์ฅ ๊ด๊ณ ์์ธก)๋ฅผ ํ์ตํ ๋ฒ์ฉ์ ์ธ ํํ |
Fine-tuning ๊ฒฐ๊ณผ (Task-Specific Representation) | ๋ค์ด์คํธ๋ฆผ ํ์คํฌ(๊ฐ์ฑ ๋ถ์, QA ๋ฑ)์ ์ต์ ํ๋ ํํ๋ก ๋ณํ๋จ |
Pre-training BERT
์ฌ์ ํ์ต ๋จ๊ณ์์๋ ๋๊ฐ์ง ๋น์ง๋ํ์ต ๊ธฐ๋ฐ task ํ์ฉํ์ฌ BERT์ pre-training์ ์งํํ๋ค.
Task #1: Masked LM
GPT์ ๊ฐ์ ๊ธฐ์กด ์ธ์ด ๋ชจ๋ธ๋ค์ด ํ์ชฝ์ผ๋ก๋ง ํ์ต์ ํ๋ ์ด์ ๋ ์๋ฐฉํฅ์ผ๋ก ํ์ตํ๊ฒ ๋๋ฉด ์์ธก ๋์ ๋จ์ด๋ฅผ ํ์ต ์ ๋ด๋ฒ๋ฆฌ๋๋ฐ, ๊ทธ๋ผ ๋ชจ๋ธ์ด ์์ธกํ๋ ค๋ ๋จ์ด๋ฅผ ์ด๋ฏธ ์๊ฒ ๋์ด ์์ธก ์์ฒด๊ฐ ๋ฌด์๋ฏธํด์ง ์ ์๋ค. ๋ฐ๋ผ์ BERT์์๋ ํ์ต์ ๊ฐ ์ํ์ค ๋ณ ๋ฌด์์๋ก ์ผ๋ถ(15%) ํ ํฐ์ ๋ง์คํนํด์ ๊ฐ๋ ค๋ฒ๋ฆฌ๊ณ , ๋ง์คํน ๋ ํ ํฐ([MASKED] ์ํ)์ ํ ํฐ ID๋ฅผ ์์ธกํ๊ฒ ํ๋ค. ์ด๋ฅผ MLM(Masked-Language Model)์ด๋ผ ํ๋ค.
๊ทธ๋ฌ๋ fine-tuning ๋จ๊ณ์์๋ ํ์ต ์ [MASK] ํ ํฐ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ ๋ฌธ์ฅ์ ํ์ตํ๋๋ผ๋ ๋ ํ์ต ๋จ๊ณ์์ ๊ฐ์ ํ ํฐ์ด ์๋ก ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ํ์ต ๋ ์ ์๋ค. ์ด๋ฅผ mismatch ๋ฌธ์ ๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด,
'The cat is lying on the couch.' ๋ผ๋ ๋ฌธ์ฅ์ BERT์ ์ ํ์ต ๋จ๊ณ์์ ํ์ตํ๋ค๊ณ ๊ฐ์ ํ ๋,
Pre-training ๋จ๊ณ์์ 'The cat is [MASKED] on the couch.' ๋ผ๋ ๋ฌธ์ฅ์ด ๋ค์ด์์ ๋ฌธ๋งฅ ํ์ต์ ํตํด [MASKED] ๋ ์๋ฆฌ์ lying์ด ์๋ ์๋ค(sleeping), ์๋ค(sit) ๋ฑ์ ํ ํฐ์ด ์์ธก๋์ด '๋๋ค'๊ฐ ์๋ ๋ค๋ฅธ ๋ฌธ๋งฅ์ ์ธ ์๋ฏธ์ ๋จ์ด ํํ์ด ํ์ต ๋ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ค. ๊ทธ๋ฌ๋ fine-tuning ๋จ๊ณ์์๋ ์จ์ ํ 'The cat is lying on the couch.' ๋ฌธ์ฅ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์, ๋ ํํ์ด ๋ฌ๋ผ์ง๋ mismatch ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์์ ๊ฐ์ mismatch ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด BERT์์๋ 15%์ ํ ํฐ์ ๋ฌด์์๋ก ์ ํํ์ฌ ์ ํํ ํ ํฐ ์ค
- 80%๋ [MASK] ํ ํฐ์ผ๋ก ๋์ฒด
- 10%๋ ๋ฌด์์ ํ ํฐ
- 10%๋ ๋ณ๊ฒฝํ์ง ์๋๋ค. (๋ฐ๋ผ์ ์ค์ ๋ก๋ 13.5%์ ํ ํฐ๋ง ์ค์ ํ ํฐ์ด ์๋ ๋ค๋ฅธ ํ ํฐ์ผ๋ก ๋ณ๊ฒฝ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค.)
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ์ตํ์ฌ ์๋์ ์ผ๋ก ํ์ต ๋ฐ์ดํฐ์ ๋ ธ์ด์ฆ๋ฅผ ๋ผ์์ค์ผ๋ก์จ ๋ชจ๋ธ์ด ํน์ ๋ฐฉํฅ์ผ๋ก ๊ณผ์ ํฉ ๋์ง ์๋๋ก ์ผ๋ฐํ ๋ฅ๋ ฅ์ ํค์ด๋ค.
Task #2: Next Sentence Prediction(NSP)
์ง์์๋ต๊ฐ์ task์์ ์ค์ํ ๊ฒ์ ‘๋ ๋ฌธ์ฅ ์ฌ์ด ๊ด๊ณ’์ด๋ค. ๋ฐ๋ผ์ NSP task์์๋ ๋ ๊ฐ์ ๋ฌธ์ฅ์ ์ ๋ ฅ ๋ฐ์, ์ด๋ค์ด ์ค์ ์ฐ์๋ ๋ฌธ์ฅ์ธ์ง ์๋์ง๋ฅผ ๋งํ๋ ์ด์ง ๋ถ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ํ์ต ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
โ๏ธ ๋ฌธ์ฅ A์ B๊ฐ ๋ค์ด์จ๋ค๊ณ ํ ๋, ์ค์ B๊ฐ A ๋ค์ ์ด์ด์ง ๋ฌธ์ฅ์ด ๋ ํ๋ฅ ์ 50%์ด๋ค.
- B๊ฐ A์ ์ด์ด์ง๋ ๋ฌธ์ฅ์ธ ๊ฒฝ์ฐ 'IsNext'
- B๊ฐ corpus์์ ์ถ์ถํ ๋ฌด์์ ๋ฌธ์ฅ์ธ ๊ฒฝ์ฐ 'NotNext'
โ๏ธ ์ด๋์ [CLS] ํ ํฐ์ ๋ฌธ๋งฅ์ ๋ด์ฉ ๋ด๊ณ ์๋ vector๋ก์ ํ์ต๋๋ค.
- ์ต์ข ๋ฒกํฐ๋ ๋ ๋ฌธ์ฅ(A, B) ์ ์ฒด์ ๋ฌธ๋งฅ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ๋ฒกํฐ๋ก ํ์ต๋๋ค.
์ด์ ๊ฐ์ ํ์ต ๋ฐฉ์์ ํ์ต ๋ฐ์ดํฐ๊ฐ ๋ ๋ฌธ์ฅ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ง์์๋ต(QA)๊ณผ ์์ฐ์ด ์ถ๋ก (NLI) task์์ ๋งค์ฐ ์ ์ฉํ๋ค.
์ ๋ฆฌํ์๋ฉด, Pre-training ๋จ๊ณ์์๋ MLM๊ณผ NSP ๋ ๊ฐ์ Loss๋ฅผ ๋์์ ์ต์ ํ(๊ณต๋ ํ์ต)ํ๋ ๋ฐฉ์์ผ๋ก ํ์ต๋๋ค. ์ ๋ ฅ ๋ฌธ์ฅ์ด ์ฃผ์ด์ง๋ฉด, ๋ชจ๋ธ์ด ๋์์ '๋จ์ด ๋ณต์(MLM)'๊ณผ '๋ฌธ์ฅ ๊ด๊ณ ์์ธก(NSP)'์ ์ํํ๋๋ก ํ์ตํ์ฌ ๋ณด๋ค ์ผ๋ฐํ๋ ์ธ์ด ํจํด์ ํ์ตํ๋ค.
Fine-tuning BERT
๊ธฐ์กด์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ก์จ ๋ฌธ์ฅ ์์ ํ์ตํ๋ application๋ค์ ๋ณดํต ๋ฌธ์ฅ ์์ ๋ ๋ฆฝ์ ์ผ๋ก encoding ํ๋ค. ๊ทธ๋ฌ๋ BERT๋ self-attention ํตํด ์ผ→์ค, ์ค→์ผ ์๋ฐฉํฅ์ ๋ฌธ๋งฅ ํ์ต์ ํตํฉํ์๊ณ , ์ด๋ฅผ ํตํด ํ์ต์ ํจ์จ์ฑ์ ํฅ์์์ผฐ๋ค.
+ BiLSTM์ ์๋ฐฉํฅ ํ์ต๋ชจ๋ธ์ด์ง๋ง, ๋จ๋ฐฉํฅ์ผ๋ก ๋ ๋ฒ ํ์ต์ ์งํํ๊ธฐ ๋๋ฌธ์ BERT์ ๋นํด ํจ์จ์ฑ์ด ๋จ์ด์ง๋ ํ๊ณ๊ฐ ์กด์ฌํ๋ค.
BERT์์์ self-attention์ ๊ฐ ํ ํฐ์ด ๋ฌธ์ฅ ๋ด ๋ชจ๋ ๋จ์ด๋ค๊ณผ ์ง์ ์ฐ๊ฒฐ๋ ์ ์๋๋ก ํ์ฌ ๋ฌธ๋งฅ์ ๋ ๊น์ด ์ดํดํ๋ ๋ฐ ๋์์ ์ฃผ๋ ์ญํ ์ ํ๋ค. Transformer ๋ด Encoder์ Multi-Head Attention ๋ถ๋ถ์์ ๊ฐ head๋ณ๋ก ์๋ก ๋ค๋ฅธ ๋จ์ด·ํจํด(e.g. ์ฃผ์ด-๋ชฉ์ ์ด, ์ฃผ์ด-๋์ฌ, ๋ชฉ์ ์ด-๋์ฌ, ...)์ ์ง์ค์ ์ผ๋ก ํ์ตํ๊ฒ ๋๋๋ฐ, BERT์์๋ Multi-Head Attention ๋ฉ์ปค๋์ฆ์ ํ์ฉํ์ฌ ๋ฌธ์ฅ์ ๊ฐ ํ ํฐ์ด ๋ฌธ์ฅ ๋ด ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ๊ณผ ์ํธ์์ฉํ ์ ์๋๋ก ํ์ต๋๋ค. ์ด๋ฌํ self-attention์ ํตํด ์ฐ๊ฒฐ๋ ๋ฌธ์ฅ ์ ๊ฐ์ ๊ด๊ณ๋ฅผ encodingํ๊ฒ ๋๋ฉด ๋ ๋ฌธ์ฅ ์ฌ์ด bidirectional cross attention ํจ๊ณผ์ ์ผ๋ก ํฌํจ ๊ฐ๋ฅํ๋ค. ์ฆ, self-attention์ ๋ฌธ์ฅ A์ B๊ฐ ์๋ก๋ฅผ ์ฐธ๊ณ ํ๋ฉด์ ์ด๋ฌํ ๋ฌธ๋งฅ์ด encoding์ ์ ์ฉ๋๋ค. ๋ํ, ๊ทธ์ ๋ฐ๋ผ ๋ฌธ์ฅ A์ ํน์ ๋จ์ด๊ฐ ๋ฌธ์ฅ B์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํ ์ ์๊ณ , ๋ฐ๋๋ก๋ ๊ฐ๋ฅํ๊ฒ ๋๋ค.
BERT์ fine-tuning ๋จ๊ฒ์์๋ task ๋ณ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ BERT์ ์ฐ๊ฒฐ์ง์ด parameter๋ค์ end-to-end๋ก ๋ฏธ์ธ ์กฐ์ ํ์ฌ ํ์ตํ๋ค. ๊ฐ task๋ณ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ฌธ์ฅ ์ ํ์ต ๋ฐ์ดํฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
- Paraphrasing(์ ์์ด ์ฒ๋ฆฌ): ์ ์ฌ๋ ์ธก์ ํ๊ณ ์ ํ๋ ๋ฌธ์ฅ ์
- Entailment(์์ฐ์ด ์ถ๋ก ): ๊ฐ์ค - ์ ์ ์
- QA(์ง์์๋ต): ์ง๋ฌธ-(์ ๋ณด๊ฐ ์ฃผ์ด์ง)๋ฌธ์ฅ ์
- ๋ฌธ์ฅ ๋ถ๋ฅ: ๋จ์ผ ๋ฌธ์ฅ-๊ณต์งํฉ ์(ํ์ฌ ํ๊น /๋ฌธ์ฅ ์์ฝ๊ณผ ๊ฐ์ task์๋ ๋ฌธ์ฅ์ด ์์ผ๋ก ์กด์ฌํ์ง ์์๋ ๋จ)
ํ์ต ํ ์ฃผ์ด์ง๋ output์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ฐ๋ณ token: ๊ฐ ๊ฐ๋ณ token์ ํ์ํ representation์ด ํ์ต๋๋ค.
- [CLS]: ํ์ต๋ ๋ฌธ์ฅ์ ์ ์ฒด์ ์ธ ์์ฝ๊ณผ ๊ฐ์ ๋ด์ฉ, ํฌํจ๊ด๊ณ ์์ธก, ๊ฐ์ ๋ถ์ ๋ฑ์ ์ฌ์ฉ๋๋ representation์ด ํ์ต๋๋ค.
'machine learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
A Tutorial on Spectral Clustering - ์คํํธ๋ด ํด๋ฌ์คํฐ๋ง (1) | 2023.03.21 |
---|