본문 바로가기

MAD Learning/NLP

[ 논문 리뷰 ] BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding

이번에는 Transformer의 Encoder를 사용하여 만든 모델 BERT를 읽어 보았다. BERT(Bidirectional Encoder Representations from Transformers)는 2018년 Google AI에 의해 소개된 자연어 처리(NLP)를 위한 혁신적인 전이 학습(Transfer Learning) 모델로문장 혹은 단어의 맥락을 양방향에서 이해할 수 있는 능력을 통해, Transfer Learning(기계 번역), QA(질문 응답 시스템), Sementic Analysis(감정 분석) 등 다양한 NLP 태스크에서 뛰어난 성능을 보여주었다. 당시의 NLP 분야에서 SOTA로 여겨졌던 ELMo를 제치고 약 7개의 task에서 좋은 성능을 보였다. 

BERT vs GPT vs ELMo

ELMo는 아직 자세하게 뜯어 보지 못했지만 논문에 따르면 ELMo는 shallow Bidirectionality를 구성하고 있고, GPT-1은 Unidirectionality를 구성하고 있기에 여러 논문을 통해 그때까지 좋은 성능을 보여준 Pre-training 방식에 대하여 제한이 있다고 하였다. 이에 대한 이해를 위해 아래에 간단한 예시를 들어 보았다. 

예시를 확인해보면, 1번의 it과 2번의 it의 의미가 다름을 알 수 있다. 이는 맥락을 파악하여야 알 수 있는 문제로, GPT-1과 같이 Masked Self-Attension을 이용한 단방향 해석 모델은 이를 파악하기 힘들다. GPT는 이러한 NLU(Natural Language Understanding) task보다는 NLG(Natural Language Generation) task에 특화되어 있다. ELMo 또한 이러한 Birectionality 기능이 완전하지 않기에 Pre-training을 온전한 이점으로 학습시킬 수는 없다고 한다.

Tansformer의 Encoder을 기반으로 한 BERT는 2 단계의 Framework를 통해 작동한다고 하는데, 이는 Pre-training → Fine-tuning을 말한다. 사전 학습 과정(Pre-training)에서는 Masked Language Model(MLM)과 Next Sentence Prediction(NSP) 태스크를 통해 단어의 양방향 문맥을 모두 학습할 수 있다. 또한 이렇게 Pre-training된 모델을 통해 여러 test dataset에 따른 Fine-tuning을 진행한다. 논문에서 여러 데이터 셋에 대한 내용과 사용 방식에 대하여 간단하게 설명하였고 이는 노션에 정리를 하였다. 


모델에 대한 이해는 가지만 아직 수식 하나하나에 대한 이해는 부족한 것 같다. 이는 이후 여러 BERT를 코드로 깊이 다뤄보며 정리할 예정이다. 또한 이전에 딥러닝 코딩 공부를 하면서 BERT model을 사용할 때, [CLS], [SEP] 등과 같은 token을 붙이지 않았거나 다른 word piece tokenizer를 이용하였을 때 왜 오류가 났는지는 근본적인 이해를 하기 어려웠지만, 논문을 읽으며 baseline 아키텍쳐를 파악할 수 있어 궁금증을 해결할 수있는 시간이 되었다.

 

※ 해당 논문은 Notion에 정리하였다.