subinium / Deep-Papers

Deep Learning Paper Simple Review + Helpful Article

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

subinium opened this issue · comments

Concept

  • 인용수가 15000회가 넘어가는 최근 NLP의 근본이 아닐까 싶다. (대NLP의 시대의 서막)

  • 우선 제목에서 3가지가 핵심이다.

    • Pre-training : 이 논문을 시작으로 대규모 Pre-training
    • Bidirectional : ELMo와 유사하게 양방향이고, transformer를 사용했다.
    • ELMo를 이은 세서미스트리트 시리즈. 이 때부터인가요 논문 작명 보는 것만으로도 기대하게 된게..
  • 이전에도 Transformer + 대규모 데이터셋은 GPT로 그 가능성을 맛봄

    • 하지만 GPT는 uni-direction이고 단방향은 사전학습에 제한적이다.
    • 양방향 컨텍스트를 통합하는 QA 테스크 등에 부적합.
    • 그래서 이제 양방향 transformer encoder를 만들어봄
  • 훈련은 unsupervised task 2가지로 진행

    • Masked LM (MLM)
      • 입력의 특정 퍼센트의 단어를 랜덤으로 왜곡
      • 논문에서는 15% 마스킹하며, 이중 80% [MASK], 10%는 치환, 10%만 유지
      • 왜곡 이후 Transformer Encoding을 거친후에 해당 파트를 예측하는 구성
      • 빈칸 뚫어놓고 맞추기를 사용하여 컨텍스트 이해를 도왔다고 생각하면 된다.
    • Next Sentence Prediction (NSP)
      • 대량 Corpus에서 한 문장과 다른 문장을 이어 붙여 이게 이어지는 문장인지 아닌지 classsification
      • balanced하게 50:50으로 맞추어 훈련 진행
  • BERT의 Input Embedding

    • Token Embedding
      • WordPiece Tokenizing : Bye Pair Encoding 알고리즘 이용, 빈도수 기반 Vocab(subword) 추출
      • [CLS], [SEP] = 시작 토큰, 문장 구분 토큰
      • [UNK] = 처음보는 토큰
    • Segment Embedding : 문장 2개에서 앞문장인지 뒷문장인지
    • Position Embedding : 위치 정보 제공
  • 성과로 보여주는 구글. GLUE+SQuAD 등 11개 task에서 기존 논문들(ELMo, GPT)를 압도...

  • pre-trained model을 공개했고, 이를 downstream task에 fine-tuning해서 쓰기만 하면 된다.

ETC

  • BERT와 GPT에서는 Activation Function을 GELU를 사용했다. 왜 이게 잘될까?

    • 해보니까 잘된다. 이외의 답을 찾을 수 있을까?
    • 좀 더 근본적으로 task에 따라 적합한 activation의 이유가 궁금... (관련 자료가 있다면 이슈로 달아주시면 감사하겠습니다.)
  • BERT를 중심으로 한 논문은 thunlp/PLMpapers에 많다.

    • 속도, 효율성, 다른 task 적용 등의 여러 고민점을 개선한 논문들.
  • 대표적으로 읽어야 하는 몇 개 논문. 대략적인 컨셉만 알거나, 모르는 논문이라 다른 이슈에서 또 다뤄볼 예정

  • 자연어에 크게(?) 관심없지만 읽다보면 대규모 모델의 Interpretability + Explainability의 아이디어를 찾을 수 있지 않을까.

도움되는 자료