[study] BERT[작성중]

리쫑·2023년 12월 1일
0

Study

목록 보기
4/6

🧢이번글에 대한 소개

  • 이번 글 에서는 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 논문을 리뷰하고자 합니다.

🧢BERT

1. Introduction

  • 사전 훈련 언어 모델은 많은 자연어 처리 테스크에서 좋은 성능을 보여주고 있다. 문장들의 관계를 예측하는 자연어 추론(NLI), 의역(parapharsing)과 같은 문장 단위의 테스크 뿐만 아니라 개체명 인식(NER), 질의 응답(QA)등의 토큰 단위의 테스크에서도 좋은 성능을 내고 있다.

  • 사전 훈련 언어 모델은 사전 훈련된 모델을 전이 훈련할 때 2가지 방식으로 진행된다. ELMo에서 사용한 목표 테스크에 부합하는 Architecture를 추가하는 방식인 "Feature-based" 방식과 GPT1에서 사용한 테스크에 맞게 최소한의 parameter를 추가하는 "fine-tunning"방식이 있다. 두 방식 모두 사전 훈련 과정에서 단방향으로 언어 모델을 학습한다.

  • 본 논문에서는 fine-tuning 방식의 접근을 하는 BERT(Bidirectional Encoder Representations from Transformers)를 제안한다. 그리고, 위에서 제기한 문제들을 사전 훈련 과정에서 MLM(maked language model) 목표를 사용하여 개선한다. MLM은 입력 토큰들중 일부를 랜덤으로 masking하고 오로지 문맥을 고려하여 masking된 단어의 원본을 맞추는 방식이다. Left-to-Right방식과 달리 MLM은 왼쪽 오른쪽 단어들을 모두 참고하며 이를 통해 deep bidirectional Transformer를 사용할 수 있다. 또한, BERT는 사전훈련 과정에서 "Next Sentence Prediction"을 추가했다.

  • 본 논문의 Contribution은 다음과 같다.
    1. 언어 표현을 학습하기 위해서 사전훈련과정에서 양방향으로 훈련하는 것의 중요성을 발견하였다.
    2. BERT를 통해 사전훈련된 모델은 Target Task에 맞게 크게 변형할 필요가 없으며, 처음으로 문장 단위, 토큰 단위의 테스크에서 SOTA를 달성했다.
    3. BERT는 17개의 NLP Task에서 SOTA를 달성했다.

2.1 Unsupervised Feature-based Approaches

  • Word Embedding 벡터를 사전 학습하기 위해 다음 단어를 예측하는 방식과 왼쪽과 오른쪽 단어가 올바른 단어인지 구분하는 방식을 사용하였다. 이러한 방식은 문장 단위의 임베딩과 구문 단위의 임베딩으로 일반화 할 수 있다. 이전 연구에서는 문장 표현(Sentence representation)을 훈련하기 위해 다음 문장 후보들을 예측하거나, 이전 문장을 사용하여 다음 문장을 생성하는 방식을 사용했다.

  • ELMo는 전통적인 word Embedding을 다른 방식으로 일반화했다. ELMo는 left-to-right과 right-to-left feature 언어 모델을 사용하여 문맥에 민감한 feature를 추출했다. ELMo는 사전 훈련으로 만든 contextual word embedding과 테스크에 맞게 설계된 구조를 사용하여 QA, 감성 분석, 개체 인식에서 SOTA를 달성했다.


2.2 Unsupervised Fine-tuning Approaches

  • "Fine-tuning" 방식은 unlabeled text로 비지도 사전 훈련한 뒤 Target Task에 맞게 지도학습하여 fine-tunning을 한다. 이런 방식은 Target Task에 맞게 fine-tunning하는 과정에서 적은 파라미터만 추가하면 된다는 장점이 있다. OpenAI의 GPT1은 많은 문장 단위 테스크에서 SOTA를 달성했다.

2.3 Transfer Learning from Supervised Data

  • NLI나 기계번역에서 대량의 데이터셋으로 사전훈련한 모델을 사용하여 지도학습을 하면 좋은 성능을 낸다는 것이 입증되었다.

3.BERT

  • BERT는 pre-training과 fine-tuning을 통해 학습된다.
    • 1) Pre-training
      • unlabeled 데이터와 MLM(Masked Language Model)과 NSP(Next Sentence Prediction)를 통해 사전훈련된다.
    • 2) Fine-tuning
      • 사전 훈련된 파라미터를 초기 파라미터로 설정하고 Target Task에 맞게 모든 파라미터를 지도 훈련하여 업데이트 한다.
    • 모든 downstream task에서 똑같이 사전 훈련된 모델의 파라미터로 초기화된다. 또한, 약간의 변형을 통해 downstream task를 수행한다.

  • Model Architecture
    • BERT의 구조는 여러 층의 양방향 Transformer Encoder로 이루어져 있다.
    • 모델에서 표기하는 BERT_BASE와 BERT_LARGE는 다음과 같다.
      • BERTBASEBERT_{BASE} : (L=12, H=768, A=12, Total Params = 110M)
      • BERTLARGEBERT_{LARGE} : (L=24, H=1024, A=16, Total Params = 340M)
        - L : number of layers, H : hidden size, A : number of self attention head
    • BERT_BASE는 OpenAI GPT와 같은 크기로 비교 목적으로 사용된다.

  • Input/Output Representations
    • BERT가 다양한 down-stream 테스크를 처리하기 위해서 input representation이 하나의 문장인지 여러 문장들의 결합(ex. QA)인지 명확하게 구분해줘야 했다.
    • BERT에서는 30,000개의 단어 토큰을 가진 WordPiece embedding을 사용했다.

  • 모든 시퀀스의 첫번 째 토큰은 special classification token([CLS][CLS])을 사용했다. 마지막 hidden state의 CLS 토큰에 모든 시퀀스 정보를 통합하여 넣어주고 이 CLS 토큰을 활용하여 분류 작업을 수행한다.

  • 문장들은 하나의 시퀀스로 결합해서 사용했고, 두 가지를 통해 두 문장을 구분했다.
    • 두 문장 사이에 special token([SEP][SEP])를 넣어줌.
    • 문장A인지 문장B인지를 구별해주는 학습된 embedding을 넣어줌.
  • 즉, Input token은 token embedding(WordPiece embedding, Speical Token) + segment(문장 A or B) + position embedding으로 결합되어 완성된다.
    • transformer에서 사용된 고정된 position embedding과 달리 학습가능하도록 설정함.

3.1 Pre-training BERT

  • BERT는 마스킹된 단어를 맞추고 다음 문장을 예측하는 두가지 비지도학습을 통해 사전 훈련된다.

Task #1 Masked LM(MLM)

  • BERT는 양방향으로 언어를 학습합니다. 양방향 학습은 각 단어가 "자기 자신을 볼 수 있게"하고 이를 통해 making된 target 단어를 여러 차원의 문맥을 고려하여 예측할 수 있다.

  • Masked LM(MLM) : 깊은 양방향 표현을 학습하기 위해 일정 비율의 입력 token을 랜덤하게 masking하고 이를 예측한다. 각 시퀀스의 모든 WordPiece 토큰의 15%를 랜덤하게 마스킹했다. BERT에서는 마지막 hidden 벡터들 중 mask token에 해당하는 token들을 출력 softmax에 넣어주어 단어를 예측하는 방식으로 MLM을 한다.

  • MLM으로 양방향 표현을 학습한 사전 훈련 모델을 학습할 수 있지만, Fine-tuning과정에서 [MASK] 토큰을 쓸 수 없다. 이런 문제를 완화하고자 masking과정에서 항상 [MASK] 토큰을 사용하지 않는다.

    • 훈련 데이터 제너레이터는 15%의 masking token을 선별한다. 선별된 token이 i번째 토큰이라면 이 토큰은 아래와 같이 변형된다.
      • 80%는 [MASK] 토큰으로
      • 10%는 다른 랜덤 토큰으로
      • 10%는 원래 토큰으로(변형하지 않음)
    • Masking 단어로 선별된 i번째 토큰(Ti)는 Cross Entropy loss를 활용하여 원래 토큰을 예측한다.

Task #2 Next Sentence Prediction(NSP)

  • 질의 응답, 자연어 추론 문제들은 두 문장사이의 관계를 이해해야 하며 언어 모델로 바로 포착되지 않는다. BERT는 문장 사이의 관계를 학습하기 위해 같은 언어로 이루어진 두 문장 A, B에 대해서 문장 B가 문장A의 다음 문장인지 여부를 맞추는 이진 분류 Next Sentence Prediction 사전훈련을 했다. 마지막 hidden layer의 CLS 토큰이 NSP에 사용된다.

Pre-training data

  • 사전 훈련 과정은 기존의 사전 훈련 모델과 같이 일반적인 사전 훈련 절차를 따라 진행된다GPT1 사전훈련. 사전 훈련과정에서 BooksCorpus(800M 단어), English Wikipedia(2500M 단어)를 사용했다. 긴 연속적인 시퀀스 정보를 추출하기 위해 문장 레벨의 말뭉치(Billion Work Benchmark)보다 문서 레벨의 말뭉치를 사용하였다.

3.2 Fine-tunning BERT

  • Transformer의 Self attention 메커니즘을 사용한 덕분에 BERT의 down stream 테스크에 대해서 Fine-tunning 과정이 간단했다. Input과 output을 적절하게 바꿔주기만 하면 된다.

  • 각각의 테스크에 대해서 단순히 테스크에 맞는 입력과 출력을 만들어 주면 되며 fine-tuning과정에서는 모든 파라미터를 튜닝한다.

  • fine-tuning을 하는 4가지 유형의 입력 데이터
    • (1) Sentence pairs in paraphrasing : 두 개의 문장을 입력받고 두 문장의 관계를 구하는 문제
    • (2) Hypothesis-premise pair in entailment : 한 문장을 입력하고, 문장의 종류를 분류하는 문제
    • (3) Question-passage pairs in question answering : 질문과 문단을 넣으면, 문단 내에 원하는 정답의 위치의 시작, 끝을 구하는 문제
    • (4) Degenerate Text-θ\theta pair in text classification or sequence tagging : 입력 문장 토큰들의 개체명이나, 품사 등을 구하는 문제.

  • 출력 단계에서 사용되는 token Representation 종류
    • (1) Sequence 태깅이나 질의응답 같은 token-level 테스트에서는 token representation이 out layer에 사용된다.
    • (2) Entailment와 감정 분석과 같은 분류 테스트에서는 [CLS] representation이 출력 레이어에 사용된다.

4. Experiments

  • BERT는 총 11개의 NLP task에 대해서 Fine-tuning을 진행했다.

4.1 GLUE(General Language Understanding Evaluation)

  • GLUE benchmark를 사용하여 언어이해 정도를 테스트함. GLUE를 미세 조정 할 때 classification layer(WRK×H)classification \space layer(W R^{K\times H})만 추가했다.
    • K : number of labels
  • 분류에 사용된 목적함수는 일반적인 분류 함수인 Classification loss=log(softmax(CWT))Classification \space loss = log(softmax(CW^T))를 사용했다.
  • BERT_BASE, BERT_LARGE 모두 모든 테스크에서 기존의 모델들에 비해 좋은 성능을 냈다.
profile
AI, Data Scientist 취업 준비생 입니다. 공부한 내용을 포스팅하고자 합니다. 방문해주셔서 감사합니다

0개의 댓글