[NLP] Attention & Transformer

yoonene·2021년 12월 8일
0

ML/DL

목록 보기
2/17

Attention

기계가 집중해야할 곳을 알려주는 매커니즘.
구글에서 개발.
언어의 경우 기계에 Attention을 어떻게 하는지 알아보겠다.

Text에서 Attention할 단어를 찾는 법

: 유사도를 통해 알아냄.
각 단어들은 임베딩된 벡터값이므로, 두 단어 사이의 유사도를 계산하기 위해서 코사인유사도로 거리 측정.
코사인유사도가 1에 가까울수록, 즉 내적이 클수록 두 단어가 유사한 것. => Attention Score

Self-Attention

  • 내가 들어있는 문장의 단어들과 나를 비교해서 self-attention
  • BertGPT에 들어있음.
  • Query: 궁금한 애, Key: Query와 내적할 애, Value: 두 관계의 가중치

Transformer Network

Summary

  • 구글에서 2017년 attention을 사용하여 발표한 네트워크
  • Translate에 효과적 (attention을 사용하기 때문)
  • => Encoder, Decoder로 구성
  • Encoder나 Decoder나 Multi-head Self-Attention을 먼저 적용한 다음, Position-Wise Feed Forward Neural Network를 적용.
  • multi-head self-attention 사용.
    - 여러 개의 scaled dot-product attention으로 구성.
  • position-wise feed-forward neural network를 항상 마지막에 통과함. (여러 개를 한꺼번에 학습시킬 때)

Scaled dot-product attention

  • Attention Score = softmax(QKT/루트dk)*V
  • 문장을 구성하는 각 단어들의 attention을 구하는 과정

Multi-head Self-Attention

  • 여러 개의 Scaled dot-product attention으로 구성.
    -> 각 단어들에 대한 결과를 여기서 합한다고 생각하면 될 듯
    -> 다양한 특징에 대한 attention을 볼 수 있게 한 방법
  • 입력받은 q,k,v를 헤드 수만큼 나누어 병렬적으로 계산

Position-Wise Feedforward Network

  • 잘 모르겠음^^~ 나중에 공부해서 수정 약속
  • Position Encoding해서 단어의 위치도 같이 학습
  • FFNN은 한꺼번에 처리한다는 의미로 항상 거침

마무리

앞선 글에서 소개한 Pretrained 모델 중 GPTBERT는 이 Attention을 사용한 Transformer Network를 사용함. 아이디어가 비슷한데도
BERT가 더 뛰어난 이유
1. 엄청나게 큰 학습 parameters 수
2. 양방향 학습

profile
NLP Researcher / Information Retrieval / Search

0개의 댓글