BERT ๊ฐ๋
1. BERT์ ๊ธฐ๋ณธ ๊ฐ๋
BERT(Bidirectional Encoder Representation from Transformer)๋ ๊ตฌ๊ธ์์ ๋ฐํํ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ด๋ค. ์ง๋ฌธ์ ๋ํ ๋๋ต, ํ ์คํธ ์์ฑ, ๋ฌธ์ฅ ๋ถ๋ฅ ๋ฑ๊ณผ ๊ฐ์ ํ์คํฌ์์ ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๋์ถํด ์์ฐ์ด ์ฒ๋ฆฌ ๋ถ์ผ์ ํฌ๊ฒ ๊ธฐ์ฌํด์๋ค.
A ๋ฌธ์ฅ : He got bit by Python (ํ์ด์ฌ์ด ๊ทธ๋ฅผ ๋ฌผ์๋ค)
B ๋ฌธ์ฅ : Python is my favorite programming language(๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํ์ด์ฌ์ด๋ค)
์ ๋ ๋ฌธ์ฅ์์ ํ์ด์ฌ์ด๋ผ๋ ๋จ์ด์ ์๋ฏธ๋ ๋ค๋ฅด๊ฒ ์ ์ฉ๋๋ค. word2vec๊ณผ ๊ฐ์ ์๋ฒ ๋ฉ์ ๋์ผํ ๋จ์ด์ด๊ธฐ ๋๋ฌธ์ ๋์ผํ๊ฒ ํํ์ด ๋๋ค. BERT๋ word2vec๊ณผ ๋ค๋ฅด๊ฒ ๋ฌธ๋งฅ ๋ ๋ฆฝ ๋ชจ๋ธ์ด ์๋ ๋ฌธ๋งฅ ๊ธฐ๋ฐ ๋ชจ๋ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ฅ์ ๋ฌธ๋งฅ์ ์ดํดํ ๋ค์ ๋ฌธ๋งฅ์ ๋ฐ๋ผ ๋จ์ด ์๋ฒ ๋ฉ์ ์์ฑํ๋ค.
2. BERT์ ๋์ ๋ฐฉ์
BERT๋ ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ธ์ฝ๋-๋์ฝ๋ ํํ๊ฐ ์๋ ์ธ์ฝ๋๋ง ์ฌ์ฉํ๋ค.

3. BERT ๊ตฌ์กฐ
- ์ธ์ฝ๋ ๋ ์ด์ด ์๋ L๋ก ํ์
- ์ดํ ์ ํค๋๋ A๋ก ํ์
- ํ๋ ์ ๋์ H๋ก ํ์
3.1. BERT-base
BERT-base๋ 12๊ฐ์ ์ธ์ฝ๋ ๋ ์ด์ด๊ฐ ์คํ์ฒ๋ผ ์์ธ ํํ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋ชจ๋ ์ธ์ฝ๋๋ 12๊ฐ์ ์ดํ
์
ํค๋๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ธ์ฝ๋์ ํผ๋ํฌ์๋ ๋คํธ์ํฌ๋ 768๊ฐ ์ฐจ์์ ํค๋ ์ ๋์ผ๋ก ๊ตฌ์ฑ๋๋ค.
L = 12, A = 12, H = 768
3.2. BERT-lage
BERT-lage๋ 24์ ์ธ์ฝ๋ ๋ ์ด์ด๊ฐ ์คํ์ฒ๋ผ ์์ธ ํํ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋ชจ๋ ์ธ์ฝ๋๋ 16๊ฐ์ ์ดํ
์
ํค๋๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ธ์ฝ๋์ ํผ๋ํฌ์๋ ๋คํธ์ํฌ๋ 1024๊ฐ ์ฐจ์์ ํค๋ ์ ๋์ผ๋ก ๊ตฌ์ฑ๋๋ค.
L = 24, A = 16, H = 1024
3.3. ๊ทธ๋ฐ์ ์ฌ๋ฌ BERT ๊ตฌ์กฐ
- BERT-tiny : L = 2, A = 2, H = 128
- BERT-mini : L = 4, A = 4, H = 256
- BERT-small : L = 4, A = 8, H = 521
- BERT-medium : L = 8, A = 8, H = 521
4. BERT์ pre-trained
๋ชจ๋ธ์ ํ์ต์ํฌ๋ ํน์ ํ์คํฌ์ ๋ํ ๋ฐฉ๋ํ ๋ฐ์ดํฐ์ ์ผ๋ก ๋ชจ๋ธ์ ์ํค๊ณ ํ์ต๋ ๋ชจ๋ธ์ ์ ์ฅํ๋ค. ์ ํ์คํฌ๊ฐ ์ฃผ์ด์ง๋ฉด ์์ ๊ฐ์ค์น๋ก ๋ชจ๋ธ์ ์ด๊ธฐํํ๋ ๋์ ์ด๋ฏธ ํ์ต๋ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ก ๋ชจ๋ธ์ ์ด๊ธฐํํ๋ค. ๋ชจ๋ธ์ด ์ด๋ฏธ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ํ์ต๋์ด์์ผ๋ฏ๋ก ์ ํ์คํฌ๋ฅผ ์ํด ์๋ก์ด ๋ชจ๋ธ๋ก ์ฒ์๋ถํฐ ํ์ต์ํค๋ ๋์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ์๋ก์ด ํ์คํฌ์ ๋ฐ๋ผ ๊ฐ์ค์น๋ฅผ ์กฐ์ (fine tuning)ํ๋ค.
BERT๋ MLM(Masked Language Model)๊ณผ NSP(Next Sentence Prediction)๋ผ๋ ๋ ๊ฐ์ง ํ์คํฌ๋ฅผ ์ด์ฉํด ๊ฑฐ๋ํ ๋ง๋ญ์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ ํ์ต๋๋ค. ์ฌ์ ํ์ต ํ ์ฌ์ ํ์ต๋ BERT๋ฅผ ์ ์ฅํด๋๊ณ , ์๋ก์ด ํ์คํฌ๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ BERT๋ฅผ ์ฒ์๋ถํฐ ํ์ต์ํค๋ ๋์ ์ฌ์ ํ์ต๋ BERT๋ฅผ ์ฌ์ฉํ๋ค.
4.1. BERT์ ์ ๋ ฅ ํํ
BERT์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ธฐ ์ ์ ์ธ ๊ฐ์ง ์๋ฒ ๋ฉ ๋ ์ด์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํด์ผ ํ๋ค.
- ํ ํฐ ์๋ฒ ๋ฉ(token embedding)
- ์ธ๊ทธ๋จผํธ ์๋ฒ ๋ฉ(segment embedding)
- ์์น ์๋ฒ ๋ฉ(position embedding)
4.1.1. ํ ํฐ ์๋ฒ ๋ฉ
๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋์คํฌ๋จธ์ ๊ฐ์ด ๋จ์ด๋ฅผ ํ ํฐํํ๋ค.
A : Paris is a beautiful city
B : I love paris
tokens = [Paris, is , a, beautiful, city, I, love, Paris]
๊ทธ ํ ์ฒซ ๋ฒ์งธ ๋ฌธ์ฅ์ ์์ ๋ถ๋ถ์๋ง [CLS] ํ ํฐ์ด๋ผ๋ ์ ํ ํฐ์ ์ถ๊ฐํ๋ค.
token = [[CLS], Paris, is , a, beautiful, city, I, love, Paris]
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ๋ฌธ์ฅ ๋์ [SEP]๋ผ๋ ํ ํฐ์ ์ถ๊ฐํ๋ค.
token = [[CLS], Paris, is , a, beautiful, city, [SEP], I, love, Paris, [SEP]]
[CLS] ํ ํฐ์ ๋ถ๋ฅ ์์ ์ ์ฌ์ฉ๋๋ฉฐ, [SEP] ํ ํฐ์ ๋ชจ๋ ๋ฌธ์ฅ์ ๋์ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋๋ค.
4.1.2. ์ธ๊ทธ๋จผํธ ์๋ฒ ๋ฉ
์ธ๊ทธ๋จผํธ ์๋ฒ ๋ฉ์ ์ฃผ์ด์ง ๋ ๋ฌธ์ฅ์ ๊ตฌ๋ถํ ๋ ์ฌ์ฉ๋๋ค.

4.1.3. ์์น ์๋ฒ ๋ฉ
ํธ๋์คํฌ๋จธ์ ํฌ์ง์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋จ์ด๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ค. BERT๋ ๋ณธ์ง์ ์ผ๋ก ํธ๋์คํฌ๋จธ์ ์ธ์ฝ๋์ด๋ฏ๋ก BERT ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ๋ ฅํ๊ธฐ ์ ์ ๋ฌธ์ฅ์์ ํ ํฐ์ ์์น์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผํ๋ค.
4.1.4. ์ ๋ ฅ ๋ฐ์ดํฐ

์ต์ข ์ ์ผ๋ก BERT๋ ์ฃผ์ด์ง ๋ฌธ์ฅ์ ํ ํฐ์ผ๋ก ๋ณํํ๊ณ ํ ํฐ์ ํ ํฐ ์๋ฒ ๋ฉ, ์ธ๊ทธ๋จผํธ ์๋ฒ ๋ฉ, ์์น ์๋ฒ ๋ฉ ๋ ์ด์ด์ ๋ฃ๊ณ ์๋ฒ ๋ฉ์ ์ป๋๋ค. ๊ทธ ๋ค์ ๋ชจ๋ ์๋ฒ ๋ฉ์ ํฉ์ฐํด BERT์ ์ ๋ ฅ์ผ๋ก ์ ๊ณตํ๋ค.
4.2. ์ฌ์ ํ์ต ์ ๋ต
BERT๋ ๋ ๊ฐ์ง ํ์คํฌ์ ๋ํด ์ฌ์ ํ์ต๋๋ค.
- ๋ง์คํฌ ์ธ์ด ๋ชจ๋ธ๋ง(MLM)
- ๋ค์ ๋ฌธ์ฅ ์์ธก(NSP)
4.2.1. ์ธ์ด ๋ชจ๋ธ๋ง
์ธ์ด ๋ชจ๋ธ๋ง์ ์ผ๋ฐ์ ์ผ๋ก ์์์ ๋ฌธ์ฅ์ด ์ฃผ์ด์ง๊ณ ๋จ์ด๋ฅผ ์์๋๋ก ๋ณด๋ฉด์ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ก ํ์ต์ํจ๋ค.
- ์๋ ํ๊ท ์ธ์ด ๋ชจ๋ธ๋ง(auto-regressive language modeling)
- ์๋ ์ธ์ฝ๋ฉ ์ธ์ด ๋ชจ๋ธ๋ง(auto-encding language modeling)
์๋ ํ๊ท ์ธ์ด ๋ชจ๋ธ๋ง์ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌ๋ถ ํ ์ ์๋ค.
- ์ ๋ฐฉ(์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ) ์์ธก(forward prediction)
- ํ๋ฐฉ(์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ) ์์ธก(backward prediction)
Paris is a beautiful ___. I love Paris.
๋ชจ๋ธ์ ๊ณต๋ฐฑ์ ์์ธกํด์ผ ํ๋ค. ์ ๋ฐฉ ์์ธก์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชจ๋ธ์ ์์ธก์ ์ํํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ณต๋ฐฑ๊น์ง ๋ชจ๋ ๋จ์ด๋ฅผ ์ฝ๋๋ค.
Paris is a beautiful ___.
ํ๋ฐฉ ์์ธก์ ์ฌ์ฉํ๋ฉด ์์ธก์ ์ํํ๊ธฐ ์ํด ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๊ณต๋ฐฑ๊น์ง ๋ชจ๋ ๋จ์ด๋ฅผ ์ฝ๋๋ค.
___. I love Paris.
์๋ ์ธ์ฝ๋ฉ ์ธ์ด ๋ชจ๋ธ๋ง์ ์ ๋ฐฉ ๋ฐ ํ๋ฐฉ ์์ธก์ ๋ชจ๋ ํ์ฉํ๋ค. ์์ธก์ ํ๋ฉด์ ์๋ฐฉํฅ์ผ๋ก ๋ฌธ์ฅ์ ์ฝ๋๋ค.
Paris is a beautiful ___. I love Paris.
4.2.2. ๋ง์คํฌ ์ธ์ด ๋ชจ๋ธ๋ง(MLM)
๋ง์คํฌ ์ธ์ด ๋ชจ๋ธ๋ง์๋ 80%-10%-10% ๊ท์น์ ์ ์ฉํ๋ค. ๋ฌธ์ฅ์์ ํ ํฐ์ 15%๋ฅผ ๋ฌด์์๋ก ๋ง์คํน์ ํ๋ค.
- 15% ์ค 80% ํ ํฐ์ [MASK] ํ ํฐ์ผ๋ก ๊ต์ฒด
token = [[CLS], Paris, is , a, beautiful, [MASK], [SEP], I, love, Paris, [SEP]]
- 15% ์ค 10% ํ ํฐ์ ์์์ ํ ํฐ์ผ๋ก ๊ต์ฒด
token = [[CLS], Paris, is , a, beautiful, love, [SEP], I, love, Paris, [SEP]]
- 15% ์ค ๋๋จธ์ง 10% ํ ํฐ์ ์ด๋ ํ ๋ณ๊ฒฝ๋ ํ์ง ์๋๋ค
token = [[CLS], Paris, is , a, beautiful, city, [SEP], I, love, Paris, [SEP]]

์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด 'city'๋ผ๋ ๋จ์ด๊ฐ ๋ง์คํฌ๋ ๋จ์ด์ผ ํ๋ฅ ์ด ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ง์คํฌ๋ ๋จ์ด๋ 'city'๋ก ์์ธกํ๋ค.
๋ง์คํฌ ์ธ์ด ๋ชจ๋ธ๋ง ํ์คํฌ๋ ๋น์นธ ์ฑ์ฐ๊ธฐ ํ์คํฌ(cloze task)๋ผ๊ณ ๋ ํ๋ค.
4.2.3. ๋ค์ ๋ฌธ์ฅ ์์ธก(NSP)
๋ค์ ๋ฌธ์ฅ ์์ธก์ BERT ํ์ต์ ์ฌ์ฉ๋๋ ์ด์ง ๋ถ๋ฅ ํ ์คํธ๋ค. BERT์ ๋ ๋ฌธ์ฅ์ ์ ๋ ฅํ๊ณ ๋ ๋ฒ์งธ ๋ฌธ์ฅ์ด ์ฒซ ๋ฒ์งธ ๋ฌธ์ฅ์ ๋ค์ ๋ฌธ์ฅ์ธ์ง ์์ธกํ๋ค.
๋ฌธ์ฅ ์ | ๋ ์ด๋ธ |
---|---|
She cooked pasta(๊ทธ๋
๋ ํ์คํ๋ฅผ ์๋ฆฌํ๋ค) It was delicious(๋ง์์๋ค) | isNext |
Jack loves songwriting(์ญ์ ์๊ณก์ ์ข์ํ๋ค) He wrote a new song(๊ทธ๋ ์ ๋ ธ๋๋ฅผ ์ผ๋ค) | isNext |
Birds fly in the sky(์๋ค์ ํ๋์ ๋๋ค) He was reading(๊ทธ๋ ์ฝ๊ณ ์์๋ค) | notNext |
Turn the radio on(๋ผ๋์ค ์ผ์ค) She bought a new hat(๊ทธ๋ ๋ ์ ๋ชจ์๋ฅผ ์๋ค) | notNext |
tokens = [[CLS], She, cooked, pasta, [SEP], It, was, delicious, [SEP]]

[CLS] ํ ํฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ ํฐ์ ์ง๊ณ ํํ์ ๋ณด์ ํ๊ณ ์์ผ๋ฏ๋ก ๋ฌธ์ฅ ์ ์ฒด์ ๋ํ ํํ์ ๋ด๊ณ ์๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ์ ํํ์ ๋ฌด์ํ๊ณ [CLS] ํ ํฐ์ ํํ์ ๊ฐ์ ธ์ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ฌ์ฉํด ์ด์ง ๋ถ๋ฅํ๋ค.
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(BERT ๊ฐ๋ ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@lgd1820/BERT-๊ฐ๋ ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค