본문 바로가기
딥러닝

BERT 개념 정리 (특징/구조/동작 방식/종류/장점/BERT 모델 설명)

by 오 복 이 2022. 1. 10.
반응형

BERT논문[1]과 여러 자료를 종합하여 이해한만큼 적은 글입니다.

 

딥러닝 기술은 빠르게 발전하면서 자연어, 이미지, 영상 등 다양한 분야에서 높은 성능을 보였고 많이 활용되고 있습니다.

 특히 문서의 내재된 의미를 이해하고, 요약하는 자연어 처리 분야에서 딥러닝 기반의 모델들이 최근 들어 뛰어난 성능을 보이고 있습니다.

그에 따라 딥러닝 모델을 문서 분류에도 활용하는 연구들이 많이 진행되고 있는데 그중에서 특히 BERT(Bidirectional Encoder Representations from Transformers)는 다양한 자연어 처리 분야에서 가장 좋은 성능을 내면서 여러 가지 일들을 수행하는데 사용되고 있습니다.

 

1 BERT의 특징

전이학습 모델 

구글의 Devlin(2018)이 제안한 BERT는 사전 학습된 대용량의 레이블링 되지 않는(unlabeled) 데이터를 이용하여 언어 모델(Language Model)을 학습하고 이를 토대로 특정 작업( 문서 분류, 질의응답, 번역 등)을 위한 신경망을 추가하는 전이 학습 방법입니다.

사전 학습 모델

 대용량의 데이터를 직접 학습시키기 위해서는 매우 많은 자원과 시간이 필요하지만 BERT 모델은 기본적으로 대량의 단어 임베딩 등에 대해 사전 학습이 되어 있는 모델을 제공하기 때문에 상대적으로 적은 자원만으로도 충분히 자연어 처리의 여러 일을 수행할 수 있습니다.

이전에는 단어 임베딩을 위해 Word2Vec, Glove, Fasttext 방식을 사용했지만, BERT가 자연어 처리 분야의 11개 실험에서 가장 좋은 성능을 차지하면서 많이 사용되고 있습니다.

 

2 BERT 구조

2-1 BERTinput representation

 Devlin, Jacob, et al의 figure 2

 

BERTinput representation은 그림과 같이 세 가지 임베딩 값의 합으로 구성됩니다 

1) Token Embeddings

Token EmbeddingsWord piece 임베딩 방식을 사용합니다

Word Piece 임베딩은 자주 등장하면서 가장 긴 길이의 sub-word을 하나의 단위로 만듭니다

, 자주 등장하는 단어(sub-word)는 그 자체가 단위가 되고, 자주 등장하지 않는 단어(rare word)는 더 작은 sub-word로 쪼개어집니다.

이는 이전에 자주 등장하지 않은 단어를 전부 Out-of-vocabulary(OOV)로 처리하여 모델링의 성능을 저하했던 문제를 해결할 수 있습니다.

입력받은 모든 문장의 시작으로 [CLS] 토큰(special classification token)이 주어지며 이 [CLS] 토큰은 모델의 전체 계층을 다 거친 후 토큰 시퀀스의 결합된 의미를 가지게 됩니다.

여기에 간단한 classifier을 붙이면 단일 문장, 또는 연속된 문장을 분류할 수 있고

만약 분류 작업이 아니라면 이 토큰을 무시합니다

또한 문장의 구분을 위해 문장의 끝에 [SEP] 토큰을 사용 합니다.

 

2) Segment Embeddings

Segment Embeddings는 토큰으로 나누어진 단어들을 다시 하나의 문장으로 만들고

첫 번째 [SEP] 토큰까지는 0으로 그 이후 [SEP] 토큰까지는 1 값으로 마스크를 만들어 각 문장들을 구분합니다.

 

3) Position Embeddings

Position Embeddings는 토큰의 순서를 인코딩합니다..

그 이유는  BERTtransformerencoder를 사용하는데 TransformerSelf-Attention 모델을 사용합니다.

Self-Attention은 입력의 위치에 대해 고려하지 못하므로 입력 토큰의 위치 정보를 주어야 합니다..

그래서 Transformer 에서는 Sigsoid 함수를 이용한 Positional encoding을 사용하였고,

BERT에서는 이를 변형하여 Position Encodings을 사용합니다.

앞서 언급한 각 임베딩들의 토큰 별로 모두 더하여 BERT의 입력 벡터로 사용합니다.

 

2-2) BERT의 Pre-training과  Fine-Tuning

 Devlin, Jacob, et al의 figure 1

그림과 같이 BERT를 이용한 자연어 처리는2단계로 진행되며

거대 Encoder가 입력 문장들을 임베딩하여 언어를 모델링하는 Pre-training 과정과

이를 fine-tuning하여 여러 자연어 처리 Task를 수행하는 과정입니다.

 

BERT와 다른 사전 학습 모델(OpenAI GPT, ELMo) 구조 비교

 Devlin, Jacob, et al의 figure3

 

사전학습 모델인 BERT, OpenAI GPT, ELMo의 모델 구조입니다.

화살표는 한 계층에서 다음 계층으로의 정보의 흐름을 나타내고 상단의 녹색 상자는 각 입력 단어의 최종 상황 별 표현을 나타냅니다.

기존의 사전 학습 모델로 ELMo, OpenAI GPT은 등이 있었지만 그림과 같이

ELMo는 좌-(left-to-right), 우-좌(right-to-left)우-좌(right-to-left) 문맥을 각각 독립적으로 계산하여 접합한 형태이고,

OpenAI GPT는 좌-우(left-to-right)로만-우(left-to-right) 계산하는데 두 방법 모두 공통적으로 양방향 문맥 등을 보지 못하여 충분히 언어 표현을 하지 못하는 단점이 존재하였습니다

이에 비해 BERT는 사전 학습을 위해 두 가지 방법 (Masked Language Model(MLM)과 Next Sentence Prediction(NSP))를 사용하는데 이 방법들은 BERT가 양방향으로 학습되어 문맥을 더 잘 파악할 수 있게 합니다.

 

3 Transformer기반의 BERT

 

BERTMLMNSP를 위해 Transformer을 기반으로 구성됩니다.

아래의 그림은 트랜스포머 모델 구조를 가진 인코더-디코더 모델로 번역 영역에서 최고의 성능을 기록했습니다

기존 인코더-디코더 모델과 달리 TransformerCNN RNN을 사용하지 않고 self-attention 개념을 도입했습니다

BERTTransformer의 인코더-디코더 중 인코더만 사용합니다.

 

출처 : Vaswani, Ashish, et al 의 figure 1

1) BERT의 MLM(Masked Language Model)

MLM(Masked Language Model)은 일련의 단어가 주어지면 그 단어를 예측하는 작업입니다.

 이때 모든 다음 토큰을 예측하는 것이 아닌 입력에서 무작위 하게 몇 개의 토큰을 마스킹하고

이를 Transformer 구조에 넣어 주변 단어의 맥락으로 마스킹된 토큰만 예측합니다

BERT에서 MLM이 수행되는 과정은 우선 토큰 중 15%는 무작위로 [MASK]토큰으로 바꿉니다.

토큰은 위에서 설명한 input representation 방법으로 토큰화 되어있습니다.

이때 15% 토큰을 생성하는 과정에서 80%는 토큰을 [MASK]로 바꾸고 10%은 토큰을 무작위 단어로 바꿉니다.

이전의 좌-, 혹은 우-좌를 통하여 문장 전체를 예측하는 사전학습 언어 모델 방법과는 달리, [MASK] 토큰만을 예측하는 pre-training 작업을 수행합니다.

[MASK] 토큰은 pre-training에만 사용되고, fine-tuning시에는 사용되지 않습니다

MLM을 수행하며 BERT는 문맥을 파악하는 능력을 길러내게 됩니다.

 

2) BERT의 NSP(Next Sentence Prediction) 

NSP(Next Sentence Prediction)는 두 문장의 관계를 이해하기 위해 BERT의 학습 과정에서 두 번째 문장이 첫 번째 문장의 바로 다음에 오는 문장인지 예측하는 방식입니다.

이러한 종류의 이해를 갖춘 사전 학습 모델은 질문 답변과 같은 작업이 가능합니다.

아래 그림은 NSP의 예시를 보여주는데 MLM이 적용되어 있습니다. 

 

출처 : Devlin, Jacob, et al의  Next Sentence Prediction 부분

 

 

위의 input representation 과정에서 살펴본 것처럼 BERT[SEP] 특수 토큰으로 문장을 분리합니다.

학습 중에 모델에 입력으로 두 개의 문장이 동시에 제공됩니다.

50%의 경우 실제 두 번째 문장이 첫 번째 문장 뒤에 오고 50%는 전체 말뭉치에서 나오는 임의의 문장입니다.

그런 다음 BERT는 임의의 문장이 첫 번째 문장에서 분리된다는 가정 하에 두 번째 문장이 임의의 문장인 여부를 예측합니다

 이를 위해 완전한 입력 시퀀스는 Transformer 기반 모델을 거치며,

[CLS] 토큰의 출력은 간단한 분류 계층을 사용하여 2x1 모양의 벡터로 변환됩니다.

IsNext-Labelsoftmax를 사용하여 할당됩니다.

BERT는 손실 함수를 최소화하기 위해 MLMNSP을 함께 학습합니다

 

 

 

4 두 종류의 BERT(BERT-base 모델과 BERT-large 모델)

BERT는 아키텍처의 규모에 따라서 baselarge 2가지 유형의 모델이 있습니다.

L = 트랜스포머 블록

H =  히든 레이어 차원 수

A = self-attention의 헤드(head) 수

라고 정의하는데,

BERT-base 모델의 하이퍼 파라미터는 L = 12, H =768, A = 12이고,이고,

BERT-large 모델은 L= 24, H = 1024, A= 16입니다

그리고 대소문자를 구분하여 사용하거나(cased)

모두 소문자로 변환한 뒤 (uncased) 사용할 수 있습니다.

 

 

<참고>

Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018). https://arxiv.org/abs/1810.04805

Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017. https://arxiv.org/abs/1706.03762

https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270

 

BERT Explained: State of the art language model for NLP

An approachable and understandable explanation of BERT, a recent paper by Google that achieved SOTA results in wide variety of NLP tasks.

towardsdatascience.com

https://medium.com/@shoray.goel/bert-f6d23b06069f

 

BERT

We will discuss BERT in this article.

medium.com

https://mino-park7.github.io/nlp/2018/12/12/bert-%EB%85%BC%EB%AC%B8%EC%A0%95%EB%A6%AC/?fbclid=IwAR3S-8iLWEVG6FGUVxoYdwQyA-zG0GpOUzVEsFBd0ARFg4eFXqCyGLznu7w 

 

BERT 논문정리 · MinhoPark

Batch size: 16, 32 Learning rage (Adam): 5e-5, 3e-5, 2e-5 Number of epochs : 3, 4

mino-park7.github.io

https://wikidocs.net/31379

 

1) 트랜스포머(Transformer)

* 이번 챕터는 앞서 설명한 어텐션 메커니즘 챕터에 대한 사전 이해가 필요합니다. 트랜스포머(Transformer)는 2017년 구글이 발표한 논문인

wikidocs.net

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=winddori2002&logNo=222022178447 

 

[바람돌이/딥러닝] BERT 논문 리뷰(Pre-training of Deep Bidirectional Transformers for Language Understanding)

안녕하세요. 오늘은 저번 Transformer, Attention is all you need 논문 리뷰 이후 나온 BERT 논문 ...

blog.naver.com

 

728x90
반응형