ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Bert 요약 설명, 조사
    프로젝트/NLP Core 2019. 4. 30. 18:20

    Bert

    1. 참고링크

    1. 1) Illustrated Bert
      2) Bert 톺아보기

    2. 설명

    1. -핵심 아이디어
      1. Transformer 모델에서 Encoder부분만 사용하여 Input을 Embedding한다.
      2. Base 모델은 12개, Large 모델은 24개의 Encoder로 구성되는데, Encoder가 많을수록 관계를 잘 파악한다.
      3. 각 Encoder는 이전의 출력값을 입력값으로 사용하였는데, non-linear activations를 거치지 않아 Explode 또는 Vanishing Gradients 문제를 최소화 하고자 하였다. 대신 병렬처리가 안된다.
      4. Bert는 다이나믹 임베딩값을 갖는다.(같은 단어라도 문장에 따라, 위치에 따라 각기 다른 벡터 값을 갖는다.)
    2. -Input Embeddings
      1. Bert는 Transformer와 달리 Positional Encoding을 사용하지 않고 Position Embeddings를 사용한다.
      2. 여기에 Segment Embeddings를 추가해 각각의 임베딩, 즉 3개의 임베딩을 합산한 결과를 취한다.
    3. -FeedForward
      1. 음수에 대해서도 미분이 가능한 GELU를 사용하였다.
    4. -학습 방법
      1. Masked Language Model과 Next Sentence Prediction을 사용하여 Bi-Direction으로 학습한다.
      2. 이를 위해 Input Embeddings에 아래의 두 태그를 추가하였다.
        1. 1) [CLS] : 문장의 맨 앞에 클래스를 뜻하는 태그
        2. 2) [SEP] : 문장의 끝을 나타내는 태그, 구분자로 쓰이기도 함
    5. -Masked Language Model
      1. 보통과는 달리 다음 단어를 예측하지 않고, 문장의 랜덤한 단어를 마스킹하고 이를 예측한다.
      2. Word2Vec의 CBOW와 유사
      3. 마스킹은 전체 단어의 15%, 이 15% 중 80%는 <mask>로 치환, 10%는 랜덤한 단어로 치환, 나머지 10%는 그대로 둔다.
      4. <mask>로만 치환하면 Fine-tuning(파라미터 미세조정)시 이 태그를 무시할 것이고, 예측할 필요가 없다고 판단한다.
      5. <mask>가 아닌 것도 예측하도록 학습하여 모든 단어에 대한 문맥 표현이 학습되도록 한다.
    6. -Next Sentence Prediction
      1. 두 문장을 주고 두 번째 문장이 글에서 첫 번째 문장의 바로 다음에 오는지 예측하는 방법이다.
      2. QA나 NLI등에서는 Masked Language Model만으로는 부족하여 [CLS]를 맞추도록 한다.

    댓글

Designed by Tistory.