NLP_BERT

안지호·2023년 8월 1일
0

NLP 이론과 코드

목록 보기
2/2

BERT

  1. 사전 훈련된 워드 임베딩

    • 태스크에 사용하기 위한 데이터가 적다면 사전 훈련된 임베딩을 사용했을 시 성능향샹 기대
    • 임베딩 층을 랜덤 초기화 하여 처음부터 학습하는 방법 총 2가지 방법 존재
  2. 워드 임베딩의 문제

    • 다의어나 동음이의어를 구분하지 못한다.
    • 이를 해결하기 위해 사전 훈련되 언어 모델을 사용
    • ELMo , BERT 를 사용 가능
  3. Transformer

    • Transformer가 도입되면서 성능이 향상 됬으며 , LSTM을 사용하지 않게 되었다.
    • 그러나 LSTM을 이용하지 않게 되었을 때 생기는 문제(이전 단어와의 유사성, 단어 위치)는 이전 단어들의 정보를 받아 오지 못하는 문제가 발생
    • 다음의 수식으로 Transformer는 이전 데이터의 정보를 가져올 수 있음
  4. GPT

    • Transformer Decoder 12개의 층을 쌓은 후에 방대한 텍스트 데이터를 학습시켰음
  5. Masked Lasnguage Model

    • 입력 텍스트의 단어 집합의 15%의 단어를 랜덤으로 가림 = 마스킹
    • 예시 = “나는 [MASK]에 가서 그곳에서 빵과 [MASK]를 샀다”
  6. BERT

    • 2018년 구글이 공개한 사전 훈련된 모델
    • 레이블이 없는 방대한 데이터로 사전 훈련된 모델을 가지고, 레이블이 있는 다른 작업(Task)에서 추가 훈련과 함께 하이퍼파라미터를 재조정하여 이 모델을 사용하면 성능이 높게 나오는 기존의 사례들을 참고
  7. BERT의 크기

    • Base , Large
    • Base의 layer는 12개 Large 는 Base에 2배이다.
  8. BERT의 문맥을 반영한 임베딩

    • 출력 임베딩이 문맥을 모두 참고한 문맥을 반영한 임베딩 벡터가 된다.

  9. BERT의 서브워드 토크나이저 : WordPiece

    • BERT가 사용한 토크나이저는 WordPiece 토크나이저로 서브워드 토크나이저 챕터에서 공부한 바이트 페어 인코딩(Byte Pair Encoding, BPE)의 유사 알고리즘
    • 만약, 예를 들어 embeddings이라는 단어가 입력으로 들어왔을 때 BERT의 단어 집합에
      em, ##bed, ##ding, #s라는 서브 워드들이 존재한다면, embeddings는 em, ##bed, ##ding, #s 로 분리
  10. BERT 의 포지션 임베딩

    • 위치 정보를 확인하는 임베딩 층을 사용한다.
  1. BERT의 사전훈련 모델

    • 마스크드 언어 모델

      • 입력 텍스트의 단어 집합의 15%의 단어를 랜덤으로 가림 = 마스킹

      • 예시 = “나는 [MASK]에 가서 그곳에서 빵과 [MASK]를 샀다”

      • mask 표시 단어 맞추기에서는 해당 마스크 된 부분의 출력층 벡터만을 이용한다.

      • 만약 마스크가 된 부분을 제외한 다른 부분이 원레의 데이터 입력과 다르것도 찾는 작업을 동시에 해야 한다면 어떻게 될까

        • BERT 입장에서는 이것이 변경된 단어인지 아닌지 모르므로 마찬가지로 원래 단어를 예측해야 한다.
    • 다음 문장 예측

      • 두 개의 문장을 준 후에 이 문장이 이어지는 문장인지 아닌지 맞추는 방식으로 훈련

      • SEP = 문장 구분 토큰

      • CLS = 실제 이어지는 문장인지 아닌지를 푸는 이진 분류 문제

      • MASKED model과 두 문장 합치기는 따로 학습이 아닌 loss를 합하여 학습이 동시에 이뤄짐

      • 정리 마스크가 된 곳과 두문장이 주어지는 경우 loss를 합쳐서 같이 학습한다.

  2. 세그먼트 임베딩 (Segment Embedding)

  • Segment = 또 하나의 임베딩 층 첫번째 문장에는 0 두번째 문장에 1
    • 결론적으로 BERT는 총 3개의 임베딩 층이 사용
      • WordPiece Embedding - 실질적인 입력
      • Position Embedding - 위치 정보를 학습하기 위함
      • Segment Embedding - 두 개의 문장 구분
    • 주의
      • SEP , 세그먼트 임베딩으로 구분되는 BERT의 입력에서의 두 개의 문장은 실제로는 두 종류의 텍스트 두개의 문서일 수 있다. 우리가 아는 문장이 아닐 수 있다. 보다 더 큰 의미

출처 - https://wikidocs.net/24996

profile
DataScience_Study

0개의 댓글