๊ด€๋ฆฌ ๋ฉ”๋‰ด

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

BERT๋ž€ ๋ณธ๋ฌธ

Computer ๐Ÿ’ป/Deep Learning

BERT๋ž€

yeon42 2022. 2. 19. 10:49
728x90
Reference

 

 

ํŠธ๋žœ์Šคํฌ๋จธ(transformer)

: 2017๋…„ ๊ตฌ๊ธ€์ด ์ œ์•ˆํ•œ seq2seq ๋ชจ๋ธ

- ์ตœ๊ทผ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ BERT๋‚˜ GPT๊ฐ™์€ ํŠธ๋žœ์Šคํฌ๋จธ ๊ธฐ๋ฐ˜ ์–ธ์–ด๋ชจ๋ธ์ด ๊ฐ๊ด‘๋ฐ›๊ณ  ์žˆ์Œ

 

๐Ÿฅ• seq2seq: ํŠน์ • ์†์„ฑ์„ ์ง€๋‹Œ ์‹œํ€€์Šค๋ฅผ ๋‹ค๋ฅธ ์†์„ฑ์˜ ์‹œํ€€์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…

 

 

 

BERT

- BERT ๋“ฑ์žฅ ์ด์ „์—๋Š” ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์ž„๋ฒ ๋”ฉ์„ Word2Vec ๋“ฑ์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์š”์ฆ˜์€ ๋Œ€๋ถ€๋ถ„ BERT๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•จ

 

๐Ÿฅ• ์ž„๋ฒ ๋”ฉ

: ์ž์—ฐ์–ด๋ฅผ ์ˆซ์ž์˜ ๋‚˜์—ด์ธ (๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•œ) ๋ฒกํ„ฐ(vector)๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ

 

[ ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ • ]

๐Ÿฅ‘ BERT๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด

: ๋ถ„๋ฅ˜๋ฅผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ -> LSTM, CNN ๋“ฑ์˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ -> ๋ถ„๋ฅ˜

 

๐Ÿฅ‘ BERT๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ๋ง

: ๊ด€๋ จ ๋Œ€๋Ÿ‰ ์ฝ”ํผ์Šค(๋ง๋ญ‰์น˜) -> BERT -> ๋ถ„๋ฅ˜๋ฅผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ -> LSTM, CNN ๋“ฑ์˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ -> ๋ถ„๋ฅ˜

 

 

 

๋Œ€๋Ÿ‰ ์ฝ”ํผ์Šค๋กœ BERT ์–ธ์–ด๋ชจ๋ธ์„ ์ ์šฉํ•˜๊ณ , ์ถœ๋ ฅ์— ์ถ”๊ฐ€์ ์ธ ๋ชจ๋ธ (RNN, CNN ๋“ฑ์˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ)์„ ์Œ“์•„ ์›ํ•˜๋Š” Task๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ.

 

 

[ BERT Input: Token Embedding + Segment Embedding + Position Embedding ]

 

Token Embedding

BERT๋Š” ํ…์ŠคํŠธ์˜ tokenizer๋กœ Word Piece model์ด๋ผ๋Š” subword tokenizer๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌธ์ž(char) ๋‹จ์œ„๋กœ ์ž„๋ฒ ๋”ฉํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด์ง€๋งŒ, ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๊ธด ๊ธธ์ด์˜ subword๋„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ž์ฃผ ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š” ๋‹จ์–ด๋Š” ๋‹ค์‹œ subword ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ค€๋‹ค. ์ด๋Š” ์ž์ฃผ ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š” ๋‹จ์–ด๊ฐ€ OOV(Out-of-vocabulary) ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด์ฃผ๋Š” ์žฅ์ ๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ Word Piece ๋ชจ๋ธ์˜ ๊ฐ ์ž„๋ฒ ๋”ฉ์ด ์ž…๋ ฅ๋œ๋‹ค.

 

Segment Embedding

- ๊ธฐ์กด Transformer์— ์—†๋˜ ๋…ํŠนํ•œ ์ž„๋ฒ ๋”ฉ. ์ด๋Š” ๊ฐ ๋‹จ์–ด๊ฐ€ ์–ด๋А ๋ฌธ์žฅ์— ํฌํ•จ๋˜๋Š”์ง€ ๊ทธ ์—ญํ• ์„ ๊ทœ์ •ํ•˜๋Š” ๊ฒƒ. ์ด์ „ ์Šคํ…์—์„œ KorQuAD ๋ฐ์ดํ„ฐ์…‹์„ ๋ถ„์„ํ•˜๋ฉฐ ์‚ดํŽด๋ณด์•˜์ง€๋งŒ, ํŠนํžˆ QA ๋ฌธ์ œ์ฒ˜๋Ÿผ ์ด ๋‹จ์–ด๊ฐ€ Question ๋ฌธ์žฅ์— ์†ํ•˜๋Š”์ง€, Context ๋ฌธ์žฅ์— ์†ํ•˜๋Š”์ง€ ๊ตฌ๋ถ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์ž„๋ฒ ๋”ฉ์€ ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

- Sentence Embedding์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ํ† ํฐ์‹œํ‚จ ๋‹จ์–ด๋“ค์„ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด๋‹ค. BERT์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ๋ฌธ์žฅ์„ ๊ตฌ๋ถ„์ž([SEP])๋ฅผ ๋„ฃ์–ด ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ทธ ๋‘ ๋ฌธ์žฅ์„ ํ•˜๋‚˜์˜ Segment๋กœ ์ง€์ •ํ•˜์—ฌ ์ž…๋ ฅํ•œ๋‹ค. BERT์—์„œ๋Š” ์ด ํ•œ Segment๋ฅผ 512 sub-word ๊ธธ์ด๋กœ ์ œํ•œํ•˜๋Š”๋ฐ, ํ•œ๊ตญ์–ด๋Š” ๋ณดํ†ต 20 sub-word๊ฐ€ ํ•œ ๋ฌธ์žฅ์„ ์ด๋ฃฌ๋‹ค๊ณ  ํ•˜๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์žฅ์€ 60 sub-word๊ฐ€ ๋„˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜๋‹ˆ BERT๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•˜๋‚˜์˜ Segment์— 128๋กœ ์ œํ•œํ•˜์—ฌ๋„ ์ถฉ๋ถ„ํžˆ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

 

Position Embedding

- ์ด ์ž„๋ฒ ๋”ฉ์€ ๊ธฐ์กด์˜ Transformer์—์„œ ์‚ฌ์šฉ๋˜๋˜ position embedding๊ณผ ๋™์ผํ•˜๋‹ค.

- BERT์˜ ์ €์ž๋Š” ์ด์ „์— Transformer ๋ชจ๋ธ์„ ๋ฐœํ‘œํ•˜์˜€๋Š”๋ฐ, Transformer๋ž€ CNN, RNN๊ณผ ๊ฐ™์€ ๋ชจ๋ธ ๋Œ€์‹  Self-Attention์ด๋ž€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์ด๋‹ค. BERT๋Š” Transformer์˜ ์ธ์ฝ”๋”, ๋””์ฝ”๋” ์ค‘ ์ธ์ฝ”๋”๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

- Token ์ˆœ์„œ๋Œ€๋กœ ์ธ์ฝ”๋”ฉ์„ ํ•œ๋‹ค.

 

> BERT๋Š” ์ด๋ฏธ ์ด 3.3์–ต๊ฐœ์˜ ๋‹จ์–ด(BookCorpus + Wikipedia Data)์˜ ๊ฑฐ๋Œ€ ์ฝ”ํผ์Šค๋ฅผ ์ •์ œํ•˜๊ณ , ์ž„๋ฒ ๋”ฉํ•˜์—ฌ ํ•™์Šต์‹œํ‚จ ๋ชจ๋ธ์ด๋‹ค.

 

 

 

Pre-training

: ๋ฐ์ดํ„ฐ๋“ค์„ ์ž„๋ฒ ๋”ฉํ•˜์—ฌ ํ›ˆ๋ จ์‹œํ‚ฌ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ชจ๋‘ ์ธ์ฝ”๋”ฉํ•˜์˜€์œผ๋ฉด, ์‚ฌ์ „ ํ›ˆ๋ จ์„ ์‹œํ‚ฌ ๋‹จ๊ณ„์ด๋‹ค. ๋ณดํ†ต ๊ธฐ์กด์—๋Š” ๋ฌธ์žฅ์„ ์™ผ์ชฝ -> ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•™์Šตํ•ด ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์ด๊ฑฐ๋‚˜, ์˜ˆ์ธกํ•  ๋‹จ์–ด์˜ ์ขŒ์šฐ ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•ด ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ BERT๋Š” ์–ธ์–ด์˜ ํŠน์„ฑ์„ ์ž˜ ํ•™์Šตํ•˜๋„๋ก,

- MLM (Masked Language Model)

- NSP (Next Sentence Prediction)

์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

MLM (Masked Language Model)

- ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ '๋‚˜๋Š” <mask> ๋จน์—ˆ๋‹ค' ์ผ ๋•Œ BERT ๋ชจ๋ธ์ด '<mask>'๊ฐ€ '๋ฐฅ์„' ์ž„์„ ๋งž์ถœ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋‹จ์–ด ๋ชจ๋ธ. ์ด์ „์˜ Next Token Prediction Language Model๊ณผ ๋Œ€๋น„์‹œ์ผœ ์ด๋ฅธ๋ฐ” '๋‹ค์Œ ๋นˆ์นธ์— ์•Œ๋งž์€ ๋ง์€' ๋ฌธ์ œ๋ฅผ ์—„์ฒญ๋‚˜๊ฒŒ ํ’€์–ด๋ณด๋Š” ์–ธ์–ด ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค.

- ์ž…๋ ฅ ๋ฌธ์žฅ์—์„œ ์ž„์˜์˜ ํ† ํฐ(<mask>)์„ ๋ฒ„๋ฆฌ๊ณ , ๊ทธ ํ† ํฐ์„ ๋งž์ถ”๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต ์ง„ํ–‰

 

NSP (Next Sentence Prediction)

 

- ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ '๋‚˜๋Š” ๋ฐฅ์„ ๋จน์—ˆ๋‹ค. <SEP> ๊ทธ๋ž˜์„œ ์ง€๊ธˆ ๋ฐฐ๊ฐ€ ๋ถ€๋ฅด๋‹ค.' ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ <SEP>๋ฅผ ๊ฒฝ๊ณ„๋กœ ์ขŒ์šฐ ๋‘ ๋ฌธ์žฅ์ด ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด์ง€๋Š” ๋ฌธ์žฅ์ด ๋งž๋Š”์ง€๋ฅผ ๋งž์ถ”๋Š” ๋ฌธ์ œ. BERT ๋ชจ๋ธ์€ ์ด ๋‘ ๋ฌธ์žฅ์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•˜์„ ๋•Œ ์ฒซ ๋ฒˆ์งธ ๋ฐ”์ดํŠธ์— NSP ๊ฒฐ๊ด๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋จ.

 

- BERT ๋ชจ๋ธ์˜ ์ž…๋ ฅ ๋ถ€๋ถ„์„ ๋ณด๋ฉด ํ…์ŠคํŠธ ์ž…๋ ฅ์ด [Input] ์ฒ˜๋Ÿผ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์‹ค์ œ ๋ชจ๋ธ์— ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์€ Token, Segment, Position Embedding 3๊ฐ€์ง€๊ฐ€ ๋”ํ•ด์ง„ ํ˜•ํƒœ์ด๋‹ค. ์‹ค์ œ๋กœ๋Š” ๊ทธ ์ดํ›„ layer normaliation๊ณผ dropout์ด ์ถ”๊ฐ€๋กœ ์ ์šฉ๋œ๋‹ค.

 

 

 

๊ฑฐ ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค ์–ด๋ ค์›Œ ,, !

Comments