Hello Computer Vision

비전공생의 BERT(2019) 논문 리뷰 본문

Self,Semi-supervised learning

비전공생의 BERT(2019) 논문 리뷰

지웅쓰 2023. 4. 25. 21:22

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

 

BeiT나 SSL 관련 논문을 볼 예정인데 BERT를 먼저 봐야겠다 생각해 논문을 살펴보았다. 일단 자연어처리 부분 논문이기 때문에 자세한 부분까지 다 이해할 수 없었기 때문에 큰 맥락에서 이해해보려고 노력했다.

 

Introduction

기존의 연구들은 pre-trained representation을 억제한다고 합니다. 이 representation이라 함은 뒤에서도 나오지만 문장에 대한 이해를 나타내는 거 같네요.  이러한 단점들은 기존 모델들이 unidirectional(단방향성)하기 때문이라고 합니다.  한가지 대표적인 예로 OpenAI에서 발표한 GPT 가 나오는데, 이 구조는 left- to - right 구조이기 때문에 모든 토큰들이 단지 이전 토큰한테서만 영향을 받는다고 합니다. 

 

BERT는 Bidirectional Encoder Representations from Transformers의 약자이다. 따라서 BERT에서는 이러한 단점들을 masked language 모델과 bidirectional(양방향성) 을 이용해 완화시킨다고 합니다. 이러한 방법들을 이용해서 다양한 downstream task들을 수행할 수 있고 NLP 쪽에서 SOTA 를 달성했다고 합니다. 추가로 Transformer의 구조는 Encoder와 Decoder두가지 부분이 다 있지만 BERT에서는 Encoder부분만을 사용합니다.

 

BERT 

기본적으로 2가지 단계로 이루어지는데  pre-training, fine-tuning 으로 이루어진다. 

위 이미지가 BERT의 구조이며 살펴보면 두 단계의 구조가 모두 같음을 확인할 수 있다. BERT는 기본적으로 Transformer구조를 가지고 있는데 BERT(base)의 하이퍼 파라미터는 L(Transformer block): 12, H(Embedding size): 768, A(Self attention head): 12 로 구성되어 있으며 base의 총 파라미터는 110M이고 이는 GPT 와 비교를 위해 같은 크기로 세팅되었다. 

 

Embedding vector는 초기부터 훈련시킨 것이 아니라 WordPiece Embedding을 사용하는데 이는 30,000개의 단어가 임베딩 되어있다. 매 문장 첫번째에는 [CLS] 가 들어있고 2문장 이상이 들어갈 때는 [SEP]가 들어가 있다.

 

BERT의 큰 특징이라고 할 수 있는 Masked LM. 각각의 sequence에서 15%를 랜덤하게 mask하는 과정을 거친다고 한다. 그러나 이러한 과정에서도 문제(downside)가 있는데, 이러한 mask 토큰은 pre-trained 할 때만 사용되고 fine tuning할 때는 용되지 않기 때문에 두 단계에서의 mismatch가 발생할 수 있다고 한다. 그렇기 때문에 저자들은 해결책을 제시하는데

1) 15%의 masked 토큰중에서 80%는 그대로 mask

2)  10%는 mask를 하는 것이 아닌 random 토큰으로 대체

3) 10%는 아무 것도 하지 않고 그대로

직관적으로 생각할 수 있는 문제는 random으로 토큰을 바꾸는 것인데 이는 큰 비중을 차지하는 것이 아니기 때문에 성능이 큰 문제가 없다고 한다. 

 

두번째로 중요한 특징인 NSP(Next Sentence Prediction). NLP에서는 Question Answering과 Natural Language Inference 를 수행하는 것이 중요한데 이러한 task를 수행하려면 두 문장에 대해 relationship을 이해해야 한다고 합니다. 따라서 이러한 task를 수행하기 위해 저자들은 50% 확률로 두개의 이어지는 문장을 훈련하며, 50%확률로는 전혀 관계없는 문장2개를 합친 것으로 훈련시킨다고 합니다. 이러한 단순성으로도 훌륭한 성능을 보인다고 합니다.

 

pre-training을 위해 사용된 데이터들은 BookCorpus와 Englist Wikipedia의 데이터들을 훈련시켰다고 합니다. 

 

지금까지는 pre-trained 과정이었고 fine tuning하는 과정은 더 간단하고 비용이 들지않는다고 합니다. pre-trained 된 모델에서의 파라미터들은 모두 fine tuning과정에서 업데이트 될 수 있습니다. 논문에서는 다양한 fine-tuning task들을 수행하는데요, GLUE, SQuAD v1.1 ... 등을 수행하고 각각 SOTA를 달성합니다.

위 이미지는 BERT와 다른 모델들의 성능을 비교한 것이고, 다음 이미지는 모델의 크기에 따라 어느정도 성능이 좋아지는지 실험한 표입니다.

 

 

재밌게 읽은 논문이었습니다. 지금 알고봐서 그런건지 모르겠지만 mask 를 이용해 예측하는 방법은 비전분야에서도 충분히 중요한 방법이 될 수 있을 거 같습니다. 다음에는 VAE 나 BeiT 논문을 읽어볼 예정입니다.

 


References

https://arxiv.org/abs/1810.04805