[NLP] Contextual Embedding(transformer

건너별·2022년 3월 9일
0

NLP 및 추천시스템

목록 보기
10/13

Contextual Embedding

ELMO

  • Embedding from Language MOdels
  • biLSTM
  • Deep representation :
    - 이전에는 마지막 layer의 embedding만을 중요하게 생각했으나, 여기서는 각 layer의 linear combination 을 반영
    • 이는 각 layer의 weight가 표현하는 의미가 달랐기 때문
      ex) 첫 layer는 syntactic(pos tagging), 두번째 layer는 semantic(similarity)
  • pre-trained model

Transformer

  • LSTM의 단점
    - LSTM은 병렬학습이 불가능
    • weight decay, long term dependency
  • LSTM 단점(Backpropagation)을 Positional Encoding으로 보완
  • 긴 문장에도 각 단어가 다른단어와 연산 수행
  • 병렬연산 가능
  • Encoder-Decoder 구조는 Machine Translation에 이용됨

아래 과정은 하나의 sequence가 input으로 들어갔을 떄를 가정

Positional Encoding

  • 단어의 순서에 관한 정보를 담고 있음
  • Tokenizing 후 생성된 Input Embedding vector(shape: (Token 개수) * (Dimension)) 에 더해지는 값

Query, Key, Value

  • sequence에 대응되는 Attention 값 계산을 위한 설정값
  • key* Query는 weight의 개념이 되고, normalize 및 softmax 함수에 의해 확률값으로 매핑
  • 이를 value와 곱해서 생성되는 것이 attention matrix
  • Key, Query, value는 각각 sequence 와 곱하질 parameter(weight)를 가지고 있으며 backprop으로 update되는 값

Multi-head self attention

  • sequence 당 self-attention을 head 개수(base 는 8) 만큼 수행
  • 이후 각 self attention matrix를 concat함
  • 이를 weight matrix와 곱하여 Embedding vector 차원을 맞춰줌.

BERT

  • Transformer의 encoder 이용
  • Token embedding(Context) + positional embedding(문장 내 위치) + segment embedding(문장 간 위치)

Pre-training

  • MLM
  • NSP

Fine-tuning

Parameters

  • vocab_size = tokenizing 후 lookup table. 쉽게 말해 학습 후 mapping 가능한 token의 개수
  • hidden_size = token embedding의 차원
  • num_hidden_layers = encoder의 개수
  • num_attention_heads = 각 인코더 layer의 attention head 개수
  • max_position_embedding = input 입력 시 최대 입력 토큰 개수
profile
romantic ai developer

0개의 댓글